diff --git a/src/game.h b/src/game.h index 64a6f02c7d..a5113e53f1 100644 --- a/src/game.h +++ b/src/game.h @@ -42,7 +42,7 @@ enum GAME_COMMAND { GAME_COMMAND_PLACE_PATH, // 17 GAME_COMMAND_18, GAME_COMMAND_REMOVE_PATH, // 19 - GAME_COMMAND_20, + GAME_COMMAND_20, //Raise/lower land GAME_COMMAND_21, GAME_COMMAND_22, //To do with text input GAME_COMMAND_23, @@ -72,7 +72,7 @@ enum GAME_COMMAND { GAME_COMMAND_47, GAME_COMMAND_START_MARKETING_CAMPAIGN, // 48 GAME_COMMAND_49, - GAME_COMMAND_50, + GAME_COMMAND_50, // New banner? (possibly scenery) GAME_COMMAND_51, GAME_COMMAND_52, GAME_COMMAND_53, diff --git a/src/windows/game_top_toolbar.c b/src/windows/game_top_toolbar.c index 710fbaf186..fc99b3c810 100644 --- a/src/windows/game_top_toolbar.c +++ b/src/windows/game_top_toolbar.c @@ -639,10 +639,24 @@ static void window_game_top_toolbar_tool_down(){ RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_TOOL, uint8) = 12; break; case WIDX_LAND: - RCT2_CALLPROC_X(0x66CBF3, x, y, 0, widgetIndex, (int)w, 0, 0); + if (RCT2_GLOBAL(RCT2_ADDRESS_MAP_SELECTION_FLAGS, uint16)&(1 << 0)){ + RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_STRING_ID, rct_string_id) = 1387; + game_do_command( + RCT2_GLOBAL(RCT2_ADDRESS_MAP_SELECTION_A_X, uint16), + 1, + RCT2_GLOBAL(RCT2_ADDRESS_MAP_SELECTION_A_Y, uint16), + RCT2_GLOBAL(RCT2_ADDRESS_SELECTED_TERRAIN_SURFACE, uint8) | (RCT2_GLOBAL(RCT2_ADDRESS_SELECTED_TERRAIN_EDGE, uint8) << 8), + GAME_COMMAND_20, + RCT2_GLOBAL(RCT2_ADDRESS_MAP_SELECTION_B_X, uint16), + RCT2_GLOBAL(RCT2_ADDRESS_MAP_SELECTION_B_Y, uint16) + ); + RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_TOOL, uint8) = 3; + } break; case WIDX_WATER: - RCT2_CALLPROC_X(0x66CC48, x, y, 0, widgetIndex, (int)w, 0, 0); + if (RCT2_GLOBAL(RCT2_ADDRESS_MAP_SELECTION_FLAGS, uint16)&(1 << 0)){ + RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_TOOL, uint8) = 3; + } break; case WIDX_SCENERY: window_game_top_toolbar_scenery_tool_down(x, y, w, widgetIndex);