/* * Triplane Classic - a side-scrolling dogfighting game. * Copyright (C) 1996,1997,2009 Dodekaedron Software Creations Oy * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * tjt@users.sourceforge.net */ #ifndef SETTINGS_H #define SETTINGS_H #include #define ROSTER_FILENAME "roster.dta" #define MAX_PLAYERS_IN_ROSTER 150 #define CONFIGURATION_FILENAME "triplane.cfg" #define KEYSET_FILENAME "keyset.dta" struct keymap { int32_t up; int32_t down; int32_t roll; int32_t power; int32_t guns; int32_t bombs; }; extern keymap player_keys[4]; //\\ Rosterdata #define ROSTERI_MAGIC 0x5a409187 #define ROSTERI_VERSION 0 struct rosteri_header { uint32_t magic; uint32_t version; }; struct rosteri { char pilotname[32]; int32_t solo_mis_flown; int32_t solo_mis_success; int32_t solo_mis_drops; int32_t solo_mis_shotsf; int32_t solo_mis_shotshit; int32_t solo_mis_bombs; int32_t solo_mis_bombshit; int32_t solo_mis_totals; int32_t solo_mis_dropped; int32_t solo_mis_scores[4][7]; int32_t multi_mis_flown; int32_t multi_mis_success; int32_t multi_mis_drops; int32_t multi_mis_shotsf; int32_t multi_mis_shotshit; int32_t multi_mis_bombs; int32_t multi_mis_bombshit; int32_t multi_mis_totals; int32_t multi_mis_dropped; int32_t up; int32_t down; int32_t roll; int32_t power; int32_t guns; int32_t bombs; }; struct dos_roster { char pilotname[32]; int32_t solo_mis_flown; int32_t solo_mis_success; int32_t solo_mis_drops; int32_t solo_mis_shotsf; int32_t solo_mis_shotshit; int32_t solo_mis_bombs; int32_t solo_mis_bombshit; int32_t solo_mis_totals; int32_t solo_mis_dropped; int32_t solo_mis_scores[4][7]; int32_t multi_mis_flown; int32_t multi_mis_success; int32_t multi_mis_drops; int32_t multi_mis_shotsf; int32_t multi_mis_shotshit; int32_t multi_mis_bombs; int32_t multi_mis_bombshit; int32_t multi_mis_totals; int32_t multi_mis_dropped; uint8_t up; uint8_t down; uint8_t roll; uint8_t power; uint8_t guns; uint8_t bombs; }; extern rosteri roster[MAX_PLAYERS_IN_ROSTER]; struct configuration { int32_t current_multilevel; int32_t player_type[4]; int32_t player_number[4]; // Graphics int32_t shots_visible; int32_t it_shots_visible; int32_t aa_mg_shots_visible; int32_t flags; int32_t flames; int32_t structure_smoke; int32_t svga; // Audio int32_t sound_on; int32_t music_on; int32_t sfx_on; int32_t explosion_sounds; int32_t gunshot_sounds; int32_t ground_i_sounds; int32_t splash; int32_t infantry_sounds; // General Flying int32_t poweronoff; int32_t powerrev; // Multiplayer Game int32_t all_planes_are; int32_t nocollision; int32_t partcollision; int32_t stop; int32_t alliance; int32_t aa_mgs; int32_t it_guns; int32_t infantry; int32_t unlimited_ammo; int32_t unlimited_gas; int32_t joystick[2]; int32_t joystick_calibrated[2]; }; extern configuration config; void load_keyset(void); void save_keyset(void); int select_key(int player, int old); void wait_relase(void); void load_roster(void); void save_roster(void); void load_config(void); void save_config(void); FILE *settings_open(const char *filename, const char *mode); #endif