mirror of https://github.com/OpenRCT2/OpenRCT2.git
Write config fields
This commit is contained in:
parent
23fef54b14
commit
bd6d31fed6
|
@ -15,6 +15,7 @@
|
|||
#pragma endregion
|
||||
|
||||
#include <memory>
|
||||
#include "../core/Console.hpp"
|
||||
#include "../core/Exception.hpp"
|
||||
#include "../interface/window.h"
|
||||
#include "../network/network.h"
|
||||
|
@ -193,6 +194,68 @@ namespace Config
|
|||
|
||||
static void WriteGeneral(IIniWriter * writer)
|
||||
{
|
||||
auto model = &gConfigGeneral;
|
||||
writer->WriteSection("general");
|
||||
writer->WriteBoolean("always_show_gridlines", model->always_show_gridlines != 0);
|
||||
writer->WriteSint32("autosave", model->autosave_frequency);
|
||||
writer->WriteBoolean("confirmation_prompt", model->confirmation_prompt != 0);
|
||||
writer->WriteBoolean("construction_marker_colour", model->construction_marker_colour != 0);
|
||||
writer->WriteEnum<sint32>("currency_format", model->currency_format, Enum_Currency);
|
||||
writer->WriteSint32("custom_currency_rate", model->custom_currency_rate != 0);
|
||||
writer->WriteEnum<sint32>("custom_currency_affix", model->custom_currency_affix, Enum_CurrencySymbolAffix);
|
||||
writer->WriteString("custom_currency_symbol", model->custom_currency_symbol);
|
||||
writer->WriteBoolean("edge_scrolling", model->edge_scrolling != 0);
|
||||
writer->WriteSint32("fullscreen_mode", model->fullscreen_mode);
|
||||
writer->WriteSint32("fullscreen_height", model->fullscreen_height);
|
||||
writer->WriteSint32("fullscreen_width", model->fullscreen_width);
|
||||
writer->WriteString("rct1_path", model->rct1_path);
|
||||
writer->WriteString("game_path", model->rct2_path);
|
||||
writer->WriteBoolean("landscape_smoothing", model->landscape_smoothing != 0);
|
||||
writer->WriteEnum<sint32>("language", model->language, Enum_LanguageEnum);
|
||||
writer->WriteEnum<sint32>("measurement_format", model->measurement_format, Enum_MeasurementFormat);
|
||||
writer->WriteBoolean("play_intro", model->play_intro != 0);
|
||||
writer->WriteBoolean("save_plugin_data", model->save_plugin_data != 0);
|
||||
writer->WriteBoolean("debugging_tools", model->debugging_tools != 0);
|
||||
writer->WriteBoolean("show_height_as_units", model->show_height_as_units != 0);
|
||||
writer->WriteEnum<sint32>("temperature_format", model->temperature_format, Enum_Temperature);
|
||||
writer->WriteSint32("window_height", model->window_height);
|
||||
writer->WriteSint32("window_snap_proximity", model->window_snap_proximity);
|
||||
writer->WriteSint32("window_width", model->window_width);
|
||||
writer->WriteEnum<sint32>("drawing_engine", model->drawing_engine, Enum_DrawingEngine);
|
||||
writer->WriteBoolean("uncap_fps", model->uncap_fps != 0);
|
||||
writer->WriteBoolean("test_unfinished_tracks", model->test_unfinished_tracks != 0);
|
||||
writer->WriteBoolean("no_test_crashes", model->no_test_crashes != 0);
|
||||
writer->WriteEnum<sint32>("date_format", model->date_format, Enum_DateFormat);
|
||||
writer->WriteBoolean("auto_staff", model->auto_staff_placement != 0);
|
||||
writer->WriteBoolean("handymen_mow_default", model->handymen_mow_default != 0);
|
||||
writer->WriteSint32("default_inspection_interval", model->default_inspection_interval);
|
||||
writer->WriteString("last_run_version", model->last_run_version);
|
||||
writer->WriteBoolean("invert_viewport_drag", model->invert_viewport_drag != 0);
|
||||
writer->WriteSint32("load_save_sort", model->load_save_sort);
|
||||
writer->WriteBoolean("minimize_fullscreen_focus_loss", model->minimize_fullscreen_focus_loss != 0);
|
||||
writer->WriteBoolean("day_night_cycle", model->day_night_cycle != 0);
|
||||
writer->WriteBoolean("enable_light_fx", model->enable_light_fx != 0);
|
||||
writer->WriteBoolean("upper_case_banners", model->upper_case_banners != 0);
|
||||
writer->WriteBoolean("disable_lightning_effect", model->disable_lightning_effect != 0);
|
||||
writer->WriteBoolean("allow_loading_with_incorrect_checksum", model->allow_loading_with_incorrect_checksum != 0);
|
||||
writer->WriteBoolean("steam_overlay_pause", model->steam_overlay_pause != 0);
|
||||
writer->WriteFloat("window_scale", model->window_scale);
|
||||
writer->WriteSint32("scale_quality", model->scale_quality);
|
||||
writer->WriteBoolean("use_nn_at_integer_scales", model->use_nn_at_integer_scales != 0);
|
||||
writer->WriteBoolean("show_fps", model->show_fps != 0);
|
||||
writer->WriteBoolean("trap_cursor", model->trap_cursor != 0);
|
||||
writer->WriteBoolean("auto_open_shops", model->auto_open_shops != 0);
|
||||
writer->WriteSint32("scenario_select_mode", model->scenario_select_mode);
|
||||
writer->WriteBoolean("scenario_unlocking_enabled", model->scenario_unlocking_enabled != 0);
|
||||
writer->WriteBoolean("scenario_hide_mega_park", model->scenario_hide_mega_park != 0);
|
||||
writer->WriteString("last_game_directory", model->last_save_game_directory);
|
||||
writer->WriteString("last_landscape_directory", model->last_save_landscape_directory);
|
||||
writer->WriteString("last_scenario_directory", model->last_save_scenario_directory);
|
||||
writer->WriteString("last_track_directory", model->last_save_track_directory);
|
||||
writer->WriteSint32("window_limit", model->window_limit);
|
||||
writer->WriteBoolean("zoom_to_cursor", model->zoom_to_cursor != 0);
|
||||
writer->WriteBoolean("render_weather_effects", model->render_weather_effects != 0);
|
||||
writer->WriteBoolean("render_weather_gloom", model->render_weather_gloom != 0);
|
||||
}
|
||||
|
||||
static void ReadInterface(IIniReader * reader)
|
||||
|
@ -214,6 +277,17 @@ namespace Config
|
|||
|
||||
static void WriteInterface(IIniWriter * writer)
|
||||
{
|
||||
auto model = &gConfigInterface;
|
||||
writer->WriteSection("interface");
|
||||
writer->WriteBoolean("toolbar_show_finances", model->toolbar_show_finances != 0);
|
||||
writer->WriteBoolean("toolbar_show_research", model->toolbar_show_research != 0);
|
||||
writer->WriteBoolean("toolbar_show_cheats", model->toolbar_show_cheats != 0);
|
||||
writer->WriteBoolean("toolbar_show_news", model->toolbar_show_news != 0);
|
||||
writer->WriteBoolean("select_by_track_type", model->select_by_track_type != 0);
|
||||
writer->WriteBoolean("console_small_font", model->console_small_font != 0);
|
||||
writer->WriteString("current_theme", model->current_theme_preset);
|
||||
writer->WriteString("current_title_sequence", model->current_title_sequence_preset);
|
||||
writer->WriteSint32("object_selection_filter_flags", model->object_selection_filter_flags);
|
||||
}
|
||||
|
||||
static void ReadSound(IIniReader * reader)
|
||||
|
@ -234,6 +308,16 @@ namespace Config
|
|||
|
||||
static void WriteSound(IIniWriter * writer)
|
||||
{
|
||||
auto model = &gConfigSound;
|
||||
writer->WriteSection("sound");
|
||||
writer->WriteSint32("master_volume", model->master_volume);
|
||||
writer->WriteSint32("title_music", model->title_music);
|
||||
writer->WriteBoolean("sound", model->sound_enabled != 0);
|
||||
writer->WriteSint32("sound_volume", model->sound_volume);
|
||||
writer->WriteBoolean("ride_music", model->ride_music_enabled != 0);
|
||||
writer->WriteSint32("ride_music_volume", model->ride_music_volume);
|
||||
writer->WriteBoolean("audio_focus", model->audio_focus != 0);
|
||||
writer->WriteString("audio_device", model->device);
|
||||
}
|
||||
|
||||
static void ReadNetwork(IIniReader * reader)
|
||||
|
@ -261,6 +345,23 @@ namespace Config
|
|||
|
||||
static void WriteNetwork(IIniWriter * writer)
|
||||
{
|
||||
auto model = &gConfigNetwork;
|
||||
writer->WriteSection("network");
|
||||
writer->WriteString("player_name", model->player_name);
|
||||
writer->WriteSint32("default_port", model->default_port);
|
||||
writer->WriteString("default_password", model->default_password);
|
||||
writer->WriteBoolean("stay_connected", model->stay_connected != 0);
|
||||
writer->WriteBoolean("advertise", model->advertise != 0);
|
||||
writer->WriteSint32("maxplayers", model->maxplayers);
|
||||
writer->WriteString("server_name", model->server_name);
|
||||
writer->WriteString("server_description", model->server_description);
|
||||
writer->WriteString("server_greeting", model->server_greeting);
|
||||
writer->WriteString("master_server_url", model->master_server_url);
|
||||
writer->WriteString("provider_name", model->provider_name);
|
||||
writer->WriteString("provider_email", model->provider_email);
|
||||
writer->WriteString("provider_website", model->provider_website);
|
||||
writer->WriteBoolean("known_keys_only", model->known_keys_only != 0);
|
||||
writer->WriteBoolean("log_chat", model->log_chat != 0);
|
||||
}
|
||||
|
||||
static void ReadNotifications(IIniReader * reader)
|
||||
|
@ -290,6 +391,25 @@ namespace Config
|
|||
|
||||
static void WriteNotifications(IIniWriter * writer)
|
||||
{
|
||||
auto model = &gConfigNotifications;
|
||||
writer->WriteSection("notifications");
|
||||
writer->WriteBoolean("park_award", model->park_award != 0);
|
||||
writer->WriteBoolean("park_marketing_campaign_finished", model->park_marketing_campaign_finished != 0);
|
||||
writer->WriteBoolean("park_warnings", model->park_warnings != 0);
|
||||
writer->WriteBoolean("park_rating_warnings", model->park_rating_warnings != 0);
|
||||
writer->WriteBoolean("ride_broken_down", model->ride_broken_down != 0);
|
||||
writer->WriteBoolean("ride_crashed", model->ride_crashed != 0);
|
||||
writer->WriteBoolean("ride_warnings", model->ride_warnings != 0);
|
||||
writer->WriteBoolean("ride_researched", model->ride_researched != 0);
|
||||
writer->WriteBoolean("guest_warnings", model->guest_warnings != 0);
|
||||
writer->WriteBoolean("guest_lost", model->guest_lost != 0);
|
||||
writer->WriteBoolean("guest_left_park", model->guest_left_park != 0);
|
||||
writer->WriteBoolean("guest_queuing_for_ride", model->guest_queuing_for_ride != 0);
|
||||
writer->WriteBoolean("guest_on_ride", model->guest_on_ride != 0);
|
||||
writer->WriteBoolean("guest_left_ride", model->guest_left_ride != 0);
|
||||
writer->WriteBoolean("guest_bought_item", model->guest_bought_item != 0);
|
||||
writer->WriteBoolean("guest_used_facility", model->guest_used_facility != 0);
|
||||
writer->WriteBoolean("guest_died", model->guest_died != 0);
|
||||
}
|
||||
|
||||
static void ReadTwitch(IIniReader * reader)
|
||||
|
@ -308,6 +428,14 @@ namespace Config
|
|||
|
||||
static void WriteTwitch(IIniWriter * writer)
|
||||
{
|
||||
auto model = &gConfigTwitch;
|
||||
writer->WriteSection("twitch");
|
||||
writer->WriteString("channel", model->channel);
|
||||
writer->WriteBoolean("follower_peep_names", model->enable_follower_peep_names != 0);
|
||||
writer->WriteBoolean("follower_peep_tracking", model->enable_follower_peep_tracking != 0);
|
||||
writer->WriteBoolean("chat_peep_names", model->enable_chat_peep_names != 0);
|
||||
writer->WriteBoolean("chat_peep_tracking", model->enable_chat_peep_tracking != 0);
|
||||
writer->WriteBoolean("news", model->enable_news != 0);
|
||||
}
|
||||
|
||||
static void ReadFont(IIniReader * reader)
|
||||
|
@ -332,6 +460,20 @@ namespace Config
|
|||
|
||||
static void WriteFont(IIniWriter * writer)
|
||||
{
|
||||
auto model = &gConfigFonts;
|
||||
writer->WriteSection("font");
|
||||
writer->WriteString("file_name", model->file_name);
|
||||
writer->WriteString("font_name", model->font_name);
|
||||
writer->WriteSint32("x_offset", model->x_offset);
|
||||
writer->WriteSint32("y_offset", model->y_offset);
|
||||
writer->WriteSint32("size_tiny", model->size_tiny);
|
||||
writer->WriteSint32("size_small", model->size_small);
|
||||
writer->WriteSint32("size_medium", model->size_medium);
|
||||
writer->WriteSint32("size_big", model->size_big);
|
||||
writer->WriteSint32("height_tiny", model->height_tiny);
|
||||
writer->WriteSint32("height_small", model->height_small);
|
||||
writer->WriteSint32("height_medium", model->height_medium);
|
||||
writer->WriteSint32("height_big", model->height_big);
|
||||
}
|
||||
|
||||
static bool ReadFile(const std::string &path)
|
||||
|
@ -368,8 +510,10 @@ namespace Config
|
|||
WriteFont(writer.get());
|
||||
return true;
|
||||
}
|
||||
catch (const Exception &)
|
||||
catch (const Exception &ex)
|
||||
{
|
||||
Console::WriteLine("Error saving to '%s'", path.c_str());
|
||||
Console::WriteLine(ex.GetMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,9 +34,9 @@ interface IIniWriter
|
|||
void WriteEnum(const std::string &name, T value, const IConfigEnum<T> &configEnum)
|
||||
{
|
||||
std::string key = configEnum.GetName(value);
|
||||
if (key.empty)
|
||||
if (key.empty())
|
||||
{
|
||||
WriteSint32(value);
|
||||
WriteSint32(name, value);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue