mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2025-12-24 00:03:11 +01:00
Added game speed button and other changes
Game speed button with up to 4/5 speeds. Debugging tools option to enable non-playable changes. Cheat window is now a setting. Game speeds 5-7 are removed. Game speed 8 added with enabling debugging tools. Windows and news ticker update once per tick instead of based on game speed.
This commit is contained in:
@@ -91,12 +91,14 @@ enum WINDOW_OPTIONS_WIDGET_IDX {
|
||||
WIDX_HOTKEY_DROPDOWN,
|
||||
WIDX_TOOLBAR_SHOW_FINANCES,
|
||||
WIDX_TOOLBAR_SHOW_RESEARCH,
|
||||
WIDX_TOOLBAR_SHOW_CHEATS,
|
||||
|
||||
WIDX_REAL_NAME_CHECKBOX,
|
||||
WIDX_SAVE_PLUGIN_DATA_CHECKBOX,
|
||||
WIDX_AUTOSAVE,
|
||||
WIDX_AUTOSAVE_DROPDOWN,
|
||||
WIDX_ALLOW_SUBTYPE_SWITCHING,
|
||||
WIDX_DEBUGGING_TOOLS,
|
||||
WINDOW_OPTIONS_WIDGETS_SIZE // Marks the end of the widget list, leave as last item
|
||||
};
|
||||
|
||||
@@ -149,13 +151,15 @@ static rct_widget window_options_widgets[] = {
|
||||
{ WWT_DROPDOWN_BUTTON, 0, 26, 185, 68, 78, STR_HOTKEY, STR_HOTKEY_TIP },
|
||||
{ WWT_CHECKBOX, 2, 10, 299, 82, 93, 5120, STR_NONE },
|
||||
{ WWT_CHECKBOX, 2, 10, 299, 97, 108, 5121, STR_NONE },
|
||||
{ WWT_CHECKBOX, 2, 10, 299, 112, 123, 5147, STR_NONE },
|
||||
|
||||
// Misc
|
||||
{ WWT_CHECKBOX, 2, 10, 299, 53, 64, STR_REAL_NAME, STR_REAL_NAME_TIP },
|
||||
{ WWT_CHECKBOX, 2, 10, 299, 68, 79, STR_SAVE_PLUGIN_DATA, STR_SAVE_PLUGIN_DATA_TIP },
|
||||
{ WWT_DROPDOWN, 0, 155, 299, 83, 94, STR_NONE, STR_NONE },
|
||||
{ WWT_DROPDOWN_BUTTON, 0, 288, 298, 84, 93, 876, STR_NONE },
|
||||
{ WWT_CHECKBOX, 2, 10, 299, 98, 109, 5122, STR_NONE }, // allow subtype switching
|
||||
{ WWT_CHECKBOX, 2, 10, 299, 98, 109, 5122, STR_NONE }, // allow subtype
|
||||
{ WWT_CHECKBOX, 2, 10, 299, 113, 124, 5150, STR_NONE }, // enabled debugging tools
|
||||
{ WIDGETS_END },
|
||||
};
|
||||
|
||||
@@ -252,6 +256,7 @@ void window_options_open()
|
||||
(1ULL << WIDX_SCREEN_EDGE_SCROLLING) |
|
||||
(1ULL << WIDX_TOOLBAR_SHOW_FINANCES) |
|
||||
(1ULL << WIDX_TOOLBAR_SHOW_RESEARCH) |
|
||||
(1ULL << WIDX_TOOLBAR_SHOW_CHEATS) |
|
||||
(1ULL << WIDX_REAL_NAME_CHECKBOX) |
|
||||
(1ULL << WIDX_CONSTRUCTION_MARKER) |
|
||||
(1ULL << WIDX_CONSTRUCTION_MARKER_DROPDOWN) |
|
||||
@@ -262,7 +267,8 @@ void window_options_open()
|
||||
(1ULL << WIDX_SAVE_PLUGIN_DATA_CHECKBOX) |
|
||||
(1ULL << WIDX_AUTOSAVE) |
|
||||
(1ULL << WIDX_AUTOSAVE_DROPDOWN) |
|
||||
(1ULL << WIDX_ALLOW_SUBTYPE_SWITCHING);
|
||||
(1ULL << WIDX_ALLOW_SUBTYPE_SWITCHING) |
|
||||
(1ULL << WIDX_DEBUGGING_TOOLS);
|
||||
|
||||
w->page = WINDOW_OPTIONS_PAGE_DISPLAY;
|
||||
window_init_scroll_widgets(w);
|
||||
@@ -313,12 +319,23 @@ static void window_options_mouseup()
|
||||
window_invalidate(w);
|
||||
window_invalidate_by_class(WC_TOP_TOOLBAR);
|
||||
break;
|
||||
case WIDX_TOOLBAR_SHOW_CHEATS:
|
||||
gConfigInterface.toolbar_show_cheats ^= 1;
|
||||
config_save_default();
|
||||
window_invalidate(w);
|
||||
window_invalidate_by_class(WC_TOP_TOOLBAR);
|
||||
break;
|
||||
case WIDX_ALLOW_SUBTYPE_SWITCHING:
|
||||
gConfigInterface.allow_subtype_switching ^= 1;
|
||||
config_save_default();
|
||||
window_invalidate(w);
|
||||
window_invalidate_by_class(WC_RIDE);
|
||||
break;
|
||||
case WIDX_DEBUGGING_TOOLS:
|
||||
gConfigGeneral.debugging_tools ^= 1;
|
||||
config_save_default();
|
||||
window_invalidate(w);
|
||||
break;
|
||||
case WIDX_REAL_NAME_CHECKBOX:
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_PARK_FLAGS, uint32) ^= PARK_FLAGS_SHOW_REAL_GUEST_NAMES;
|
||||
RCT2_CALLPROC_X(0x0069C52F, RCT2_GLOBAL(RCT2_ADDRESS_PARK_FLAGS, uint32) & PARK_FLAGS_SHOW_REAL_GUEST_NAMES ? 0 : 1, 0, 0, 0, 0, 0, 0);
|
||||
@@ -750,11 +767,13 @@ static void window_options_invalidate()
|
||||
widget_set_checkbox_value(w, WIDX_SCREEN_EDGE_SCROLLING, gConfigGeneral.edge_scrolling);
|
||||
widget_set_checkbox_value(w, WIDX_TOOLBAR_SHOW_FINANCES, gConfigInterface.toolbar_show_finances);
|
||||
widget_set_checkbox_value(w, WIDX_TOOLBAR_SHOW_RESEARCH, gConfigInterface.toolbar_show_research);
|
||||
widget_set_checkbox_value(w, WIDX_TOOLBAR_SHOW_CHEATS, gConfigInterface.toolbar_show_cheats);
|
||||
|
||||
window_options_widgets[WIDX_SCREEN_EDGE_SCROLLING].type = WWT_CHECKBOX;
|
||||
window_options_widgets[WIDX_HOTKEY_DROPDOWN].type = WWT_DROPDOWN_BUTTON;
|
||||
window_options_widgets[WIDX_TOOLBAR_SHOW_FINANCES].type = WWT_CHECKBOX;
|
||||
window_options_widgets[WIDX_TOOLBAR_SHOW_RESEARCH].type = WWT_CHECKBOX;
|
||||
window_options_widgets[WIDX_TOOLBAR_SHOW_CHEATS].type = WWT_CHECKBOX;
|
||||
break;
|
||||
case WINDOW_OPTIONS_PAGE_MISC:
|
||||
widget_set_checkbox_value(w, WIDX_ALLOW_SUBTYPE_SWITCHING, gConfigInterface.allow_subtype_switching);
|
||||
@@ -781,11 +800,14 @@ static void window_options_invalidate()
|
||||
else
|
||||
window_options_widgets[WIDX_SAVE_PLUGIN_DATA_CHECKBOX].type = WWT_CHECKBOX;
|
||||
|
||||
widget_set_checkbox_value(w, WIDX_DEBUGGING_TOOLS, gConfigGeneral.debugging_tools);
|
||||
|
||||
window_options_widgets[WIDX_REAL_NAME_CHECKBOX].type = WWT_CHECKBOX;
|
||||
window_options_widgets[WIDX_SAVE_PLUGIN_DATA_CHECKBOX].type = WWT_CHECKBOX;
|
||||
window_options_widgets[WIDX_AUTOSAVE].type = WWT_DROPDOWN;
|
||||
window_options_widgets[WIDX_AUTOSAVE_DROPDOWN].type = WWT_DROPDOWN_BUTTON;
|
||||
window_options_widgets[WIDX_ALLOW_SUBTYPE_SWITCHING].type = WWT_CHECKBOX;
|
||||
window_options_widgets[WIDX_DEBUGGING_TOOLS].type = WWT_CHECKBOX;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user