Move common actions from debug menu into cheats menu (#8892)

This aims to make it less necessary for users to enable debugging tools.
This commit is contained in:
Aaron van Geffen 2019-03-17 12:52:32 +01:00 committed by GitHub
parent 2af13904c5
commit 97ba6eec08
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 98 additions and 72 deletions

View File

@ -2,6 +2,7 @@
------------------------------------------------------------------------
- Fix: [#5579] Network desync immediately after connecting.
- Fix: [#8873] Potential crash when placing footpaths.
- Change: [#8688] Move common actions from debug menu into cheats menu.
0.2.2 (2019-03-13)
------------------------------------------------------------------------

View File

@ -136,11 +136,7 @@ enum TOP_TOOLBAR_VIEW_MENU_DDIDX {
enum TOP_TOOLBAR_DEBUG_DDIDX {
DDIDX_CONSOLE = 0,
DDIDX_TILE_INSPECTOR = 1,
DDIDX_OBJECT_SELECTION = 2,
DDIDX_INVENTIONS_LIST = 3,
DDIDX_SCENARIO_OPTIONS = 4,
DDIDX_DEBUG_PAINT = 5,
DDIDX_DEBUG_PAINT = 1,
TOP_TOOLBAR_DEBUG_COUNT
};
@ -152,9 +148,16 @@ enum TOP_TOOLBAR_NETWORK_DDIDX {
enum {
DDIDX_CHEATS,
DDIDX_ENABLE_SANDBOX_MODE = 2,
DDIDX_DISABLE_CLEARANCE_CHECKS,
DDIDX_DISABLE_SUPPORT_LIMITS
DDIDX_TILE_INSPECTOR = 1,
DDIDX_OBJECT_SELECTION = 2,
DDIDX_INVENTIONS_LIST = 3,
DDIDX_SCENARIO_OPTIONS = 4,
// 5 is a separator
DDIDX_ENABLE_SANDBOX_MODE = 6,
DDIDX_DISABLE_CLEARANCE_CHECKS = 7,
DDIDX_DISABLE_SUPPORT_LIMITS = 8,
TOP_TOOLBAR_CHEATS_COUNT
};
enum {
@ -293,6 +296,8 @@ static void top_toolbar_init_fastforward_menu(rct_window* window, rct_widget* wi
static void top_toolbar_fastforward_menu_dropdown(int16_t dropdownIndex);
static void top_toolbar_init_rotate_menu(rct_window* window, rct_widget* widget);
static void top_toolbar_rotate_menu_dropdown(int16_t dropdownIndex);
static void top_toolbar_init_cheats_menu(rct_window* window, rct_widget* widget);
static void top_toolbar_cheats_menu_dropdown(int16_t dropdownIndex);
static void top_toolbar_init_debug_menu(rct_window* window, rct_widget* widget);
static void top_toolbar_debug_menu_dropdown(int16_t dropdownIndex);
static void top_toolbar_init_network_menu(rct_window* window, rct_widget* widget);
@ -496,30 +501,7 @@ static void window_top_toolbar_mousedown(rct_window* w, rct_widgetindex widgetIn
#endif
break;
case WIDX_CHEATS:
gDropdownItemsFormat[0] = STR_TOGGLE_OPTION;
gDropdownItemsFormat[1] = STR_EMPTY;
gDropdownItemsFormat[2] = STR_TOGGLE_OPTION;
gDropdownItemsFormat[3] = STR_TOGGLE_OPTION;
gDropdownItemsFormat[4] = STR_TOGGLE_OPTION;
gDropdownItemsArgs[0] = STR_CHEAT_TITLE;
gDropdownItemsArgs[2] = STR_ENABLE_SANDBOX_MODE;
gDropdownItemsArgs[3] = STR_DISABLE_CLEARANCE_CHECKS;
gDropdownItemsArgs[4] = STR_DISABLE_SUPPORT_LIMITS;
window_dropdown_show_text(
w->x + widget->left, w->y + widget->top, widget->bottom - widget->top + 1, w->colours[0] | 0x80, 0, 5);
if (gCheatsSandboxMode)
{
dropdown_set_checked(DDIDX_ENABLE_SANDBOX_MODE, true);
}
if (gCheatsDisableClearanceChecks)
{
dropdown_set_checked(DDIDX_DISABLE_CLEARANCE_CHECKS, true);
}
if (gCheatsDisableSupportLimits)
{
dropdown_set_checked(DDIDX_DISABLE_SUPPORT_LIMITS, true);
}
gDropdownDefaultIndex = DDIDX_CHEATS;
top_toolbar_init_cheats_menu(w, widget);
break;
case WIDX_VIEW_MENU:
top_toolbar_init_view_menu(w, widget);
@ -648,26 +630,7 @@ static void window_top_toolbar_dropdown(rct_window* w, rct_widgetindex widgetInd
}
break;
case WIDX_CHEATS:
switch (dropdownIndex)
{
case DDIDX_CHEATS:
context_open_window(WC_CHEATS);
break;
case DDIDX_ENABLE_SANDBOX_MODE:
game_do_command(
0, GAME_COMMAND_FLAG_APPLY, CHEAT_SANDBOXMODE, !gCheatsSandboxMode, GAME_COMMAND_CHEAT, 0, 0);
break;
case DDIDX_DISABLE_CLEARANCE_CHECKS:
game_do_command(
0, GAME_COMMAND_FLAG_APPLY, CHEAT_DISABLECLEARANCECHECKS, !gCheatsDisableClearanceChecks,
GAME_COMMAND_CHEAT, 0, 0);
break;
case DDIDX_DISABLE_SUPPORT_LIMITS:
game_do_command(
0, GAME_COMMAND_FLAG_APPLY, CHEAT_DISABLESUPPORTLIMITS, !gCheatsDisableSupportLimits,
GAME_COMMAND_CHEAT, 0, 0);
break;
}
top_toolbar_cheats_menu_dropdown(dropdownIndex);
break;
case WIDX_VIEW_MENU:
top_toolbar_view_menu_dropdown(dropdownIndex);
@ -3261,24 +3224,37 @@ static void top_toolbar_rotate_menu_dropdown(int16_t dropdownIndex)
}
}
static void top_toolbar_init_debug_menu(rct_window* w, rct_widget* widget)
static void top_toolbar_init_cheats_menu(rct_window* w, rct_widget* widget)
{
gDropdownItemsFormat[DDIDX_CONSOLE] = STR_TOGGLE_OPTION;
gDropdownItemsArgs[DDIDX_CONSOLE] = STR_DEBUG_DROPDOWN_CONSOLE;
gDropdownItemsFormat[DDIDX_CHEATS] = STR_TOGGLE_OPTION;
gDropdownItemsArgs[DDIDX_CHEATS] = STR_CHEAT_TITLE;
gDropdownItemsFormat[DDIDX_TILE_INSPECTOR] = STR_TOGGLE_OPTION;
gDropdownItemsArgs[DDIDX_TILE_INSPECTOR] = STR_DEBUG_DROPDOWN_TILE_INSPECTOR;
gDropdownItemsFormat[DDIDX_OBJECT_SELECTION] = STR_TOGGLE_OPTION;
gDropdownItemsArgs[DDIDX_OBJECT_SELECTION] = STR_DEBUG_DROPDOWN_OBJECT_SELECTION;
gDropdownItemsFormat[DDIDX_INVENTIONS_LIST] = STR_TOGGLE_OPTION;
gDropdownItemsArgs[DDIDX_INVENTIONS_LIST] = STR_DEBUG_DROPDOWN_INVENTIONS_LIST;
gDropdownItemsFormat[DDIDX_SCENARIO_OPTIONS] = STR_TOGGLE_OPTION;
gDropdownItemsArgs[DDIDX_SCENARIO_OPTIONS] = STR_DEBUG_DROPDOWN_SCENARIO_OPTIONS;
gDropdownItemsFormat[DDIDX_DEBUG_PAINT] = STR_TOGGLE_OPTION;
gDropdownItemsArgs[DDIDX_DEBUG_PAINT] = STR_DEBUG_DROPDOWN_DEBUG_PAINT;
gDropdownItemsFormat[5] = STR_EMPTY;
gDropdownItemsFormat[DDIDX_ENABLE_SANDBOX_MODE] = STR_TOGGLE_OPTION;
gDropdownItemsArgs[DDIDX_ENABLE_SANDBOX_MODE] = STR_ENABLE_SANDBOX_MODE;
gDropdownItemsFormat[DDIDX_DISABLE_CLEARANCE_CHECKS] = STR_TOGGLE_OPTION;
gDropdownItemsArgs[DDIDX_DISABLE_CLEARANCE_CHECKS] = STR_DISABLE_CLEARANCE_CHECKS;
gDropdownItemsFormat[DDIDX_DISABLE_SUPPORT_LIMITS] = STR_TOGGLE_OPTION;
gDropdownItemsArgs[DDIDX_DISABLE_SUPPORT_LIMITS] = STR_DISABLE_SUPPORT_LIMITS;
window_dropdown_show_text(
w->x + widget->left, w->y + widget->top, widget->bottom - widget->top + 1, w->colours[0] | 0x80,
DROPDOWN_FLAG_STAY_OPEN, TOP_TOOLBAR_DEBUG_COUNT);
w->x + widget->left, w->y + widget->top, widget->bottom - widget->top + 1, w->colours[0] | 0x80, 0,
TOP_TOOLBAR_CHEATS_COUNT);
// Disable items that are not yet available in multiplayer
if (network_get_mode() != NETWORK_MODE_NONE)
@ -3287,6 +3263,68 @@ static void top_toolbar_init_debug_menu(rct_window* w, rct_widget* widget)
dropdown_set_disabled(DDIDX_INVENTIONS_LIST, true);
}
if (gCheatsSandboxMode)
{
dropdown_set_checked(DDIDX_ENABLE_SANDBOX_MODE, true);
}
if (gCheatsDisableClearanceChecks)
{
dropdown_set_checked(DDIDX_DISABLE_CLEARANCE_CHECKS, true);
}
if (gCheatsDisableSupportLimits)
{
dropdown_set_checked(DDIDX_DISABLE_SUPPORT_LIMITS, true);
}
gDropdownDefaultIndex = DDIDX_CHEATS;
}
static void top_toolbar_cheats_menu_dropdown(int16_t dropdownIndex)
{
switch (dropdownIndex)
{
case DDIDX_CHEATS:
context_open_window(WC_CHEATS);
break;
case DDIDX_TILE_INSPECTOR:
context_open_window(WC_TILE_INSPECTOR);
break;
case DDIDX_OBJECT_SELECTION:
window_close_all();
context_open_window(WC_EDITOR_OBJECT_SELECTION);
break;
case DDIDX_INVENTIONS_LIST:
context_open_window(WC_EDITOR_INVENTION_LIST);
break;
case DDIDX_SCENARIO_OPTIONS:
context_open_window(WC_EDITOR_SCENARIO_OPTIONS);
break;
case DDIDX_ENABLE_SANDBOX_MODE:
game_do_command(0, GAME_COMMAND_FLAG_APPLY, CHEAT_SANDBOXMODE, !gCheatsSandboxMode, GAME_COMMAND_CHEAT, 0, 0);
break;
case DDIDX_DISABLE_CLEARANCE_CHECKS:
game_do_command(
0, GAME_COMMAND_FLAG_APPLY, CHEAT_DISABLECLEARANCECHECKS, !gCheatsDisableClearanceChecks, GAME_COMMAND_CHEAT, 0,
0);
break;
case DDIDX_DISABLE_SUPPORT_LIMITS:
game_do_command(
0, GAME_COMMAND_FLAG_APPLY, CHEAT_DISABLESUPPORTLIMITS, !gCheatsDisableSupportLimits, GAME_COMMAND_CHEAT, 0, 0);
break;
}
}
static void top_toolbar_init_debug_menu(rct_window* w, rct_widget* widget)
{
gDropdownItemsFormat[DDIDX_CONSOLE] = STR_TOGGLE_OPTION;
gDropdownItemsArgs[DDIDX_CONSOLE] = STR_DEBUG_DROPDOWN_CONSOLE;
gDropdownItemsFormat[DDIDX_DEBUG_PAINT] = STR_TOGGLE_OPTION;
gDropdownItemsArgs[DDIDX_DEBUG_PAINT] = STR_DEBUG_DROPDOWN_DEBUG_PAINT;
window_dropdown_show_text(
w->x + widget->left, w->y + widget->top, widget->bottom - widget->top + 1, w->colours[0] | 0x80,
DROPDOWN_FLAG_STAY_OPEN, TOP_TOOLBAR_DEBUG_COUNT);
dropdown_set_checked(DDIDX_DEBUG_PAINT, window_find_by_class(WC_DEBUG_PAINT) != nullptr);
}
@ -3316,19 +3354,6 @@ static void top_toolbar_debug_menu_dropdown(int16_t dropdownIndex)
console.Open();
break;
}
case DDIDX_TILE_INSPECTOR:
context_open_window(WC_TILE_INSPECTOR);
break;
case DDIDX_OBJECT_SELECTION:
window_close_all();
context_open_window(WC_EDITOR_OBJECT_SELECTION);
break;
case DDIDX_INVENTIONS_LIST:
context_open_window(WC_EDITOR_INVENTION_LIST);
break;
case DDIDX_SCENARIO_OPTIONS:
context_open_window(WC_EDITOR_SCENARIO_OPTIONS);
break;
case DDIDX_DEBUG_PAINT:
if (window_find_by_class(WC_DEBUG_PAINT) == nullptr)
{