mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-17 20:13:07 +01:00
Save invisible flags to config
This commit is contained in:
@@ -11,6 +11,7 @@
|
||||
#include <openrct2-ui/interface/Widget.h>
|
||||
#include <openrct2-ui/windows/Window.h>
|
||||
#include <openrct2/Context.h>
|
||||
#include <openrct2/config/Config.h>
|
||||
#include <openrct2/localisation/StringIds.h>
|
||||
#include <openrct2/world/Footpath.h>
|
||||
|
||||
@@ -20,7 +21,8 @@ static rct_widget window_main_widgets[] = {
|
||||
WIDGETS_END,
|
||||
};
|
||||
|
||||
void WindowMainPaint(rct_window *w, rct_drawpixelinfo *dpi);
|
||||
static void WindowMainSetViewportFlags(rct_viewport& viewport);
|
||||
static void WindowMainPaint(rct_window *w, rct_drawpixelinfo *dpi);
|
||||
|
||||
static rct_window_event_list window_main_events([](auto& events)
|
||||
{
|
||||
@@ -42,7 +44,10 @@ rct_window* WindowMainOpen()
|
||||
window->widgets = window_main_widgets;
|
||||
|
||||
viewport_create(window, window->windowPos, window->width, window->height, Focus(CoordsXYZ(0x0FFF, 0x0FFF, 0)));
|
||||
window->viewport->flags |= VIEWPORT_FLAG_SOUND_ON;
|
||||
if (window->viewport != nullptr)
|
||||
{
|
||||
WindowMainSetViewportFlags(*window->viewport);
|
||||
}
|
||||
gCurrentRotation = 0;
|
||||
gShowGridLinesRefCount = 0;
|
||||
gShowLandRightsRefCount = 0;
|
||||
@@ -52,13 +57,30 @@ rct_window* WindowMainOpen()
|
||||
return window;
|
||||
}
|
||||
|
||||
static void WindowMainSetViewportFlags(rct_viewport& viewport)
|
||||
{
|
||||
viewport.flags |= VIEWPORT_FLAG_SOUND_ON;
|
||||
if (gConfigGeneral.invisible_rides)
|
||||
viewport.flags |= VIEWPORT_FLAG_INVISIBLE_RIDES;
|
||||
if (gConfigGeneral.invisible_vehicles)
|
||||
viewport.flags |= VIEWPORT_FLAG_INVISIBLE_VEHICLES;
|
||||
if (gConfigGeneral.invisible_trees)
|
||||
viewport.flags |= VIEWPORT_FLAG_INVISIBLE_TREES;
|
||||
if (gConfigGeneral.invisible_scenery)
|
||||
viewport.flags |= VIEWPORT_FLAG_INVISIBLE_SCENERY;
|
||||
if (gConfigGeneral.invisible_paths)
|
||||
viewport.flags |= VIEWPORT_FLAG_INVISIBLE_PATHS;
|
||||
if (gConfigGeneral.invisible_supports)
|
||||
viewport.flags |= VIEWPORT_FLAG_INVISIBLE_SUPPORTS;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* rct2: 0x66CCAE
|
||||
* This function immediately jumps to 0x00685BE1 this is the second function
|
||||
* decompiled.
|
||||
*/
|
||||
void WindowMainPaint(rct_window* w, rct_drawpixelinfo* dpi)
|
||||
static void WindowMainPaint(rct_window* w, rct_drawpixelinfo* dpi)
|
||||
{
|
||||
viewport_render(dpi, w->viewport, { { dpi->x, dpi->y }, { dpi->x + dpi->width, dpi->y + dpi->height } });
|
||||
}
|
||||
|
||||
@@ -183,21 +183,33 @@ private:
|
||||
break;
|
||||
case WIDX_INVISIBLE_RIDES:
|
||||
wflags ^= VIEWPORT_FLAG_INVISIBLE_RIDES;
|
||||
gConfigGeneral.invisible_rides = wflags & VIEWPORT_FLAG_INVISIBLE_RIDES;
|
||||
config_save_default();
|
||||
break;
|
||||
case WIDX_INVISIBLE_VEHICLES:
|
||||
wflags ^= VIEWPORT_FLAG_INVISIBLE_VEHICLES;
|
||||
gConfigGeneral.invisible_vehicles = wflags & VIEWPORT_FLAG_INVISIBLE_VEHICLES;
|
||||
config_save_default();
|
||||
break;
|
||||
case WIDX_INVISIBLE_SCENERY:
|
||||
wflags ^= VIEWPORT_FLAG_INVISIBLE_SCENERY;
|
||||
gConfigGeneral.invisible_scenery = wflags & VIEWPORT_FLAG_INVISIBLE_SCENERY;
|
||||
config_save_default();
|
||||
break;
|
||||
case WIDX_INVISIBLE_TREES:
|
||||
wflags ^= VIEWPORT_FLAG_INVISIBLE_TREES;
|
||||
gConfigGeneral.invisible_trees = wflags & VIEWPORT_FLAG_INVISIBLE_TREES;
|
||||
config_save_default();
|
||||
break;
|
||||
case WIDX_INVISIBLE_PATHS:
|
||||
wflags ^= VIEWPORT_FLAG_INVISIBLE_PATHS;
|
||||
gConfigGeneral.invisible_paths = wflags & VIEWPORT_FLAG_INVISIBLE_PATHS;
|
||||
config_save_default();
|
||||
break;
|
||||
case WIDX_INVISIBLE_SUPPORTS:
|
||||
wflags ^= VIEWPORT_FLAG_INVISIBLE_SUPPORTS;
|
||||
gConfigGeneral.invisible_supports = wflags & VIEWPORT_FLAG_INVISIBLE_SUPPORTS;
|
||||
config_save_default();
|
||||
break;
|
||||
case WIDX_INVISIBLE_GUESTS:
|
||||
wflags ^= VIEWPORT_FLAG_HIDE_GUESTS;
|
||||
|
||||
@@ -216,6 +216,14 @@ namespace Config
|
||||
model->allow_early_completion = reader->GetBoolean("allow_early_completion", false);
|
||||
model->transparent_screenshot = reader->GetBoolean("transparent_screenshot", true);
|
||||
model->transparent_water = reader->GetBoolean("transparent_water", true);
|
||||
|
||||
model->invisible_rides = reader->GetBoolean("invisible_rides", false);
|
||||
model->invisible_vehicles = reader->GetBoolean("invisible_vehicles", false);
|
||||
model->invisible_trees = reader->GetBoolean("invisible_trees", false);
|
||||
model->invisible_scenery = reader->GetBoolean("invisible_scenery", false);
|
||||
model->invisible_paths = reader->GetBoolean("invisible_paths", false);
|
||||
model->invisible_supports = reader->GetBoolean("invisible_supports", false);
|
||||
|
||||
model->last_version_check_time = reader->GetInt64("last_version_check_time", 0);
|
||||
}
|
||||
}
|
||||
@@ -293,6 +301,12 @@ namespace Config
|
||||
writer->WriteEnum<VirtualFloorStyles>("virtual_floor_style", model->virtual_floor_style, Enum_VirtualFloorStyle);
|
||||
writer->WriteBoolean("transparent_screenshot", model->transparent_screenshot);
|
||||
writer->WriteBoolean("transparent_water", model->transparent_water);
|
||||
writer->WriteBoolean("invisible_rides", model->invisible_rides);
|
||||
writer->WriteBoolean("invisible_vehicles", model->invisible_vehicles);
|
||||
writer->WriteBoolean("invisible_trees", model->invisible_trees);
|
||||
writer->WriteBoolean("invisible_scenery", model->invisible_scenery);
|
||||
writer->WriteBoolean("invisible_paths", model->invisible_paths);
|
||||
writer->WriteBoolean("invisible_supports", model->invisible_supports);
|
||||
writer->WriteInt64("last_version_check_time", model->last_version_check_time);
|
||||
}
|
||||
|
||||
|
||||
@@ -60,6 +60,13 @@ struct GeneralConfiguration
|
||||
bool transparent_screenshot;
|
||||
bool transparent_water;
|
||||
|
||||
bool invisible_rides;
|
||||
bool invisible_vehicles;
|
||||
bool invisible_trees;
|
||||
bool invisible_scenery;
|
||||
bool invisible_paths;
|
||||
bool invisible_supports;
|
||||
|
||||
// Localisation
|
||||
int32_t language;
|
||||
MeasurementFormat measurement_format;
|
||||
|
||||
Reference in New Issue
Block a user