1 //============================================================================= 2 // 3 // Adventure Game Studio (AGS) 4 // 5 // Copyright (C) 1999-2011 Chris Jones and 2011-20xx others 6 // The full list of copyright holders can be found in the Copyright.txt 7 // file, which is part of this source code distribution. 8 // 9 // The AGS source code is provided under the Artistic License 2.0. 10 // A copy of this license can be found in the file License.txt and at 11 // http://www.opensource.org/licenses/artistic-license-2.0.php 12 // 13 //============================================================================= 14 15 #ifndef __AC_GAMESETUP_H 16 #define __AC_GAMESETUP_H 17 18 #include "main/graphics_mode.h" 19 20 21 // Mouse control activation type 22 enum MouseControl 23 { 24 kMouseCtrl_Never, // never control mouse (track system mouse position) 25 kMouseCtrl_Fullscreen, // control mouse in fullscreen only 26 kMouseCtrl_Always, // always control mouse (fullscreen and windowed) 27 kNumMouseCtrlOptions 28 }; 29 30 // Mouse speed definition, specifies how the speed setting is applied to the mouse movement 31 enum MouseSpeedDef 32 { 33 kMouseSpeed_Absolute, // apply speed multiplier directly 34 kMouseSpeed_CurrentDisplay, // keep speed/resolution relation based on current system display mode 35 kNumMouseSpeedDefs 36 }; 37 38 struct GameSetup { 39 int digicard; 40 int midicard; 41 int mod_player; 42 int textheight; // text height used on the certain built-in GUI 43 bool no_speech_pack; 44 bool enable_antialiasing; 45 bool disable_exception_handling; 46 AGS::Common::String data_files_dir; 47 AGS::Common::String main_data_filename; 48 AGS::Common::String install_dir; // optional custom install dir path 49 AGS::Common::String install_audio_dir; // optional custom install audio dir path 50 AGS::Common::String install_voice_dir; // optional custom install voice-over dir path 51 AGS::Common::String user_data_dir; // directory to write savedgames and user files to 52 AGS::Common::String shared_data_dir; // directory to write shared game files to 53 AGS::Common::String translation; 54 bool mouse_auto_lock; 55 int override_script_os; 56 char override_multitasking; 57 bool override_upscale; 58 float mouse_speed; 59 MouseControl mouse_control; 60 MouseSpeedDef mouse_speed_def; 61 bool RenderAtScreenRes; // render sprites at screen resolution, as opposed to native one 62 int Supersampling; 63 64 ScreenSetup Screen; 65 66 GameSetup(); 67 }; 68 69 // TODO: setup object is used for two purposes: temporarily storing config 70 // options before engine is initialized, and storing certain runtime variables. 71 // Perhaps it makes sense to separate those two group of vars at some point. 72 extern GameSetup usetup; 73 74 #endif // __AC_GAMESETUP_H