2023-06-04 15:34:37 -04:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "common/util/FileUtil.h"
|
|
|
|
#include "common/util/json_util.h"
|
|
|
|
|
|
|
|
#include "game/system/hid/input_bindings.h"
|
2023-07-28 21:26:42 -04:00
|
|
|
#include "game/system/hid/sdl_util.h"
|
2023-06-04 15:34:37 -04:00
|
|
|
#include "game/tools/filter_menu/filter_menu.h"
|
|
|
|
|
|
|
|
namespace game_settings {
|
|
|
|
struct DebugSettings {
|
|
|
|
DebugSettings();
|
|
|
|
|
2023-06-07 20:04:16 -04:00
|
|
|
std::string version = "1.2";
|
2023-06-04 15:34:37 -04:00
|
|
|
|
|
|
|
bool show_imgui = false;
|
2023-06-07 20:04:16 -04:00
|
|
|
int imgui_font_size = 16;
|
2023-06-04 15:34:37 -04:00
|
|
|
bool monospaced_font = true;
|
|
|
|
bool alternate_style = false;
|
|
|
|
bool ignore_hide_imgui = false;
|
2023-09-08 21:21:02 -04:00
|
|
|
bool treat_pad0_as_pad1 = false;
|
2023-06-04 15:34:37 -04:00
|
|
|
|
|
|
|
std::vector<DebugTextFilter> text_filters = {};
|
|
|
|
bool text_check_range = false;
|
|
|
|
float text_max_range = 0;
|
2023-07-28 21:26:42 -04:00
|
|
|
u32 hide_imgui_key = SDLK_LALT;
|
2023-06-04 15:34:37 -04:00
|
|
|
|
|
|
|
void save_settings();
|
|
|
|
};
|
|
|
|
void to_json(json& j, const DebugSettings& obj);
|
|
|
|
void from_json(const json& j, DebugSettings& obj);
|
|
|
|
|
|
|
|
struct DisplaySettings {
|
|
|
|
DisplaySettings();
|
|
|
|
|
|
|
|
std::string version = "1.1";
|
|
|
|
|
|
|
|
int window_xpos = 50;
|
|
|
|
int window_ypos = 50;
|
|
|
|
int display_id = 0;
|
|
|
|
|
|
|
|
void save_settings();
|
|
|
|
};
|
|
|
|
|
|
|
|
void to_json(json& j, const DisplaySettings& obj);
|
|
|
|
void from_json(const json& j, DisplaySettings& obj);
|
|
|
|
|
|
|
|
struct InputSettings {
|
|
|
|
InputSettings();
|
|
|
|
|
|
|
|
std::string version = "1.0";
|
|
|
|
|
|
|
|
// NOTE - assumes only port 0
|
|
|
|
std::string last_selected_controller_guid = "";
|
|
|
|
std::unordered_map<std::string, int> controller_port_mapping;
|
|
|
|
std::unordered_map<std::string, InputBindingGroups> controller_binds;
|
|
|
|
InputBindingGroups keyboard_binds;
|
|
|
|
InputBindingGroups mouse_binds;
|
|
|
|
|
|
|
|
void save_settings();
|
|
|
|
};
|
|
|
|
|
|
|
|
void to_json(json& j, const InputSettings& obj);
|
|
|
|
void from_json(const json& j, InputSettings& obj);
|
|
|
|
|
|
|
|
} // namespace game_settings
|