1 /* 2 3 Copyright (C) 2015-2018 Night Dive Studios, LLC. 4 5 This program is free software: you can redistribute it and/or modify 6 it under the terms of the GNU General Public License as published by 7 the Free Software Foundation, either version 3 of the License, or 8 (at your option) any later version. 9 10 This program is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 GNU General Public License for more details. 14 15 You should have received a copy of the GNU General Public License 16 along with this program. If not, see <http://www.gnu.org/licenses/>. 17 18 */ 19 //==================================================================================== 20 // 21 // System Shock - ©1994-1995 Looking Glass Technologies, Inc. 22 // 23 // Prefs.h - Handles saving and loading preferences. 24 // 25 //==================================================================================== 26 27 //-------------------- 28 // Types 29 //-------------------- 30 typedef struct { 31 short prefVer; // Version - set to 0 for now. 32 short prefPlayIntro; // Play intro at startup if non-zero. 33 34 // Game Options 35 short goMsgLength; // 0 - normal, 1 - brief 36 bool goPopupLabels; 37 bool goOnScreenHelp; 38 short goLanguage; // 0 - English, 1 - French, 2 - German 39 bool goCaptureMouse; 40 bool goInvertMouseY; 41 42 // Sound Options 43 bool soBackMusic; 44 bool soSoundFX; 45 short soMusicVolume; 46 short soSfxVolume; 47 short soAudioLogVolume; 48 short soMidiBackend; // 0 => adlmidi, 1 => native, 2 => fluidsynth 49 short soMidiOutput; // which of the MIDI backend's outputs to use 50 51 // Display Options 52 short doVideoMode; 53 short doResolution; // 0 - High, 1 - Low 54 short doDetail; // 0 - Min, 1-Low, 2-High, 3-Max 55 short doGamma; 56 bool doUseQD; 57 bool doUseOpenGL; 58 // 0 => unfiltered 59 // 1 => bilinear 60 // TODO: add trilinear, anisotropic? 61 short doTextureFilter; 62 } ShockPrefs; 63 64 //-------------------- 65 // Globals 66 //-------------------- 67 extern ShockPrefs gShockPrefs; 68 69 //-------------------- 70 // Prototypes 71 //-------------------- 72 void SetDefaultPrefs(void); 73 int16_t LoadPrefs(void); 74 int16_t SavePrefs(void); 75 76 //------------------- 77 // Enums 78 //------------------- 79 enum OPT_SEQ_ { // Must be in the same order as in wraper.h 80 OPT_SEQ_ADLMIDI = 0, 81 OPT_SEQ_NativeMI, 82 #ifdef USE_FLUIDSYNTH 83 OPT_SEQ_FluidSyn, 84 #endif // USE_FLUIDSYNTH 85 OPT_SEQ_Max 86 }; 87