]> Shamusworld >> Repos - stargem2/blob - src/settings.h
Finally fixed problems with demo mode.
[stargem2] / src / settings.h
1 //
2 // SETTINGS.H: Header file
3 //
4 #ifndef __SETTINGS_H__
5 #define __SETTINGS_H__
6
7 // MAX_PATH isn't defined in stdlib.h on *nix, so we do it here...
8 #ifdef __GCCUNIX__
9 #include <limits.h>
10 #define MAX_PATH                _POSIX_PATH_MAX
11 #else
12 #include <stdlib.h>                                     // for MAX_PATH on MinGW/Darwin
13 #endif
14 #include <stdint.h>
15
16 enum { S_KEY_FIRE = 0, S_KEY_THRUST, S_KEY_SMARTBOMB, S_KEY_HYPERSPACE, S_KEY_REVERSE,
17         S_KEY_UP, S_KEY_DOWN, S_KEY_INVISO, S_KEY_1P_START, S_KEY_2P_START, S_KEY_LEFT_COIN,
18         S_KEY_CENTER_COIN, S_KEY_RIGHT_COIN, S_KEY_AUTO_UP, S_KEY_ADVANCE, S_KEY_HS_RESET,
19         S_KEY_SLAM_SWITCH };
20
21 // Settings struct
22
23 struct Settings
24 {
25         bool useJoystick;
26         int32_t joyport;                                // Joystick port
27         bool hardwareTypeNTSC;                  // Set to false for PAL
28         bool fullscreen;
29         bool useOpenGL;
30         uint32_t glFilter;
31         uint32_t frameSkip;
32         uint32_t renderType;
33         bool autoStateSaving;                   // Auto-state loading/saving on entry/exit
34
35         // Keybindings in order of fire, thrust, smartbomb, hyperspace, reverse,
36         // up, down, inviso, 1 player start, 2 player start, left coin, center
37         // coin, right coin, auto up, advance, high score reset, slam switch
38
39         uint16_t keyBindings[21];
40
41         // Paths
42
43         char BIOSPath[MAX_PATH];
44         char disksPath[MAX_PATH];
45         char diskImagePath1[MAX_PATH];
46         char diskImagePath2[MAX_PATH];
47         char autoStatePath[MAX_PATH];
48 };
49
50 // Exported functions
51
52 void LoadSettings(void);
53 void SaveSettings(void);
54
55 // Exported variables
56
57 extern Settings settings;
58
59 #endif  // __SETTINGS_H__