SpaceCadetPinball/SpaceCadetPinball/options.h

53 lines
1.5 KiB
C
Raw Normal View History

2020-11-05 16:44:34 +01:00
#pragma once
#include <map>
2020-11-06 14:56:32 +01:00
struct optionsStruct
2020-11-06 14:56:32 +01:00
{
int Sounds;
int Music;
int FullScreen;
int Players;
int LeftFlipperKey;
int RightFlipperKey;
int PlungerKey;
int LeftTableBumpKey;
int RightTableBumpKey;
int BottomTableBumpKey;
2020-12-13 14:05:19 +01:00
int LeftFlipperKeyDft;
int RightFlipperKeyDft;
int PlungerKeyDft;
int LeftTableBumpKeyDft;
int RightTableBumpKeyDft;
int BottomTableBumpKeyDft;
int Resolution;
2021-02-09 16:09:44 +01:00
bool UniformScaling;
2020-11-06 14:56:32 +01:00
};
2020-11-05 16:44:34 +01:00
class options
{
public:
static optionsStruct Options;
static void init();
static void uninit();
static int get_int(LPCSTR lpValueName, int defaultValue);
static void set_int(LPCSTR lpValueName, int data);
static std::string get_string(LPCSTR lpValueName, LPCSTR defaultValue);
static void set_string(LPCSTR lpValueName, LPCSTR value);
static float get_float(LPCSTR lpValueName, float defaultValue);
static void set_float(LPCSTR lpValueName, float data);
static void toggle(uint32_t uIDCheckItem);
2020-12-13 14:05:19 +01:00
2020-12-02 18:12:34 +01:00
static void keyboard();
2020-11-05 16:44:34 +01:00
private:
2020-12-13 14:05:19 +01:00
static short vk_list[28];
static std::map<std::string, std::string> settings;
static void MyUserData_ReadLine(ImGuiContext* ctx, ImGuiSettingsHandler* handler, void* entry, const char* line);
static void* MyUserData_ReadOpen(ImGuiContext* ctx, ImGuiSettingsHandler* handler, const char* name);
static void MyUserData_WriteAll(ImGuiContext* ctx, ImGuiSettingsHandler* handler, ImGuiTextBuffer* buf);
static const std::string& GetSetting(const std::string& key, const std::string& value);
static void SetSetting(const std::string& key, const std::string& value);
2020-11-05 16:44:34 +01:00
};