1 #ifndef _GAME_SETTINGS__H_ 2 #define _GAME_SETTINGS__H_ 3 4 #include "VanillaDataStructures.h" 5 #include "MessageBoxScreen.h" 6 7 #include <string_theory/string> 8 9 10 //If you add any options, MAKE sure you add the corresponding string to the Options Screen string array 11 enum 12 { 13 TOPTION_SPEECH, 14 TOPTION_MUTE_CONFIRMATIONS, 15 TOPTION_SUBTITLES, 16 TOPTION_KEY_ADVANCE_SPEECH, 17 TOPTION_ANIMATE_SMOKE, 18 // TOPTION_HIDE_BULLETS, 19 // TOPTION_CONFIRM_MOVE, 20 TOPTION_BLOOD_N_GORE, 21 TOPTION_DONT_MOVE_MOUSE, 22 TOPTION_OLD_SELECTION_METHOD, 23 TOPTION_ALWAYS_SHOW_MOVEMENT_PATH, 24 25 26 // TOPTION_TIME_LIMIT_TURNS, //moved to the game init screen 27 28 TOPTION_SHOW_MISSES, 29 30 TOPTION_RTCONFIRM, 31 32 33 // TOPTION_DISPLAY_ENEMY_INDICATOR, //Displays the number of enemies seen by the merc, ontop of their portrait 34 TOPTION_SLEEPWAKE_NOTIFICATION, 35 36 TOPTION_USE_METRIC_SYSTEM, //If set, uses the metric system 37 38 TOPTION_MERC_ALWAYS_LIGHT_UP, 39 40 TOPTION_SMART_CURSOR, 41 42 TOPTION_SNAP_CURSOR_TO_DOOR, 43 44 TOPTION_GLOW_ITEMS, 45 TOPTION_TOGGLE_TREE_TOPS, 46 TOPTION_TOGGLE_WIREFRAME, 47 TOPTION_3D_CURSOR, 48 49 NUM_GAME_OPTIONS, //Toggle up this will be able to be Toggled by the player 50 51 //These options will NOT be toggable by the Player 52 TOPTION_MERC_CASTS_LIGHT = NUM_GAME_OPTIONS, 53 TOPTION_HIDE_BULLETS, 54 TOPTION_TRACKING_MODE, 55 56 NUM_ALL_GAME_OPTIONS, 57 }; 58 59 60 struct GAME_SETTINGS 61 { 62 INT8 bLastSavedGameSlot; // The last saved game number goes in here 63 ST::string sCurrentSavedGameName; // The name of the current Savegame goes here. Only relevant for Dead is Dead games 64 65 //The following are set from the status of the toggle boxes in the Options Screen 66 UINT8 fOptions[ NUM_ALL_GAME_OPTIONS ]; 67 68 UINT32 uiMeanwhileScenesSeenFlags; 69 70 BOOLEAN fHideHelpInAllScreens; 71 72 UINT8 ubSizeOfDisplayCover; 73 UINT8 ubSizeOfLOS; 74 }; 75 76 77 //Enums for the difficulty levels 78 enum 79 { 80 DIF_LEVEL_EASY = 1, 81 DIF_LEVEL_MEDIUM = 2, 82 DIF_LEVEL_HARD = 3, 83 NUM_DIF_LEVELS = DIF_LEVEL_HARD 84 }; 85 86 //Enums for the difficulty levels 87 enum 88 { 89 DIF_CAN_SAVE, 90 DIF_IRON_MAN, 91 DIF_DEAD_IS_DEAD, 92 }; 93 94 95 struct GAME_OPTIONS 96 { 97 BOOLEAN fGunNut; 98 BOOLEAN fSciFi; 99 UINT8 ubDifficultyLevel; 100 BOOLEAN fTurnTimeLimit; 101 UINT8 ubGameSaveMode; 102 }; 103 104 //This structure will contain general Ja2 settings NOT individual game settings. 105 extern GAME_SETTINGS gGameSettings; 106 107 108 //This structure will contain the Game options set at the beginning of the game. 109 extern GAME_OPTIONS gGameOptions; 110 111 112 void SaveGameSettings(void); 113 void LoadGameSettings(void); 114 115 void InitGameOptions(void); 116 117 void DisplayGameSettings(void); 118 119 bool MeanwhileSceneSeen(UINT8 meanwhile_id); 120 void SetMeanwhileSceneSeen(UINT8 meanwhile_id); 121 122 BOOLEAN CanGameBeSaved(void); 123 124 void DoDeadIsDeadSaveIfNecessary(void); 125 126 void CDromEjectionErrorMessageBoxCallBack(MessageBoxReturnValue); 127 128 #endif 129