From 5842b851c21760f62368ec1f08dbdfa6fb7e8962 Mon Sep 17 00:00:00 2001 From: duncanspumpkin Date: Sun, 20 Oct 2019 15:23:36 +0100 Subject: [PATCH] Remove old game command for MazePlaceTrack --- src/openrct2/Game.cpp | 2 +- src/openrct2/Game.h | 2 +- src/openrct2/ride/TrackDesign.cpp | 142 ------------------------------ src/openrct2/ride/TrackDesign.h | 2 - 4 files changed, 2 insertions(+), 146 deletions(-) diff --git a/src/openrct2/Game.cpp b/src/openrct2/Game.cpp index 2032e8e63c..9272b34e13 100644 --- a/src/openrct2/Game.cpp +++ b/src/openrct2/Game.cpp @@ -1041,7 +1041,7 @@ GAME_COMMAND_POINTER* new_game_command_table[GAME_COMMAND_COUNT] = { nullptr, game_command_place_track_design, nullptr, - game_command_place_maze_design, + nullptr, nullptr, nullptr, nullptr, diff --git a/src/openrct2/Game.h b/src/openrct2/Game.h index 37b150210b..093608e296 100644 --- a/src/openrct2/Game.h +++ b/src/openrct2/Game.h @@ -68,7 +68,7 @@ enum GAME_COMMAND GAME_COMMAND_SET_RESEARCH_FUNDING, // GA GAME_COMMAND_PLACE_TRACK_DESIGN, GAME_COMMAND_START_MARKETING_CAMPAIGN, // GA - GAME_COMMAND_PLACE_MAZE_DESIGN, + GAME_COMMAND_PLACE_MAZE_DESIGN, // GA GAME_COMMAND_PLACE_BANNER, // GA GAME_COMMAND_REMOVE_BANNER, // GA GAME_COMMAND_SET_SCENERY_COLOUR, // GA diff --git a/src/openrct2/ride/TrackDesign.cpp b/src/openrct2/ride/TrackDesign.cpp index 85bbbf3c4b..d41b7e8082 100644 --- a/src/openrct2/ride/TrackDesign.cpp +++ b/src/openrct2/ride/TrackDesign.cpp @@ -2071,135 +2071,6 @@ static money32 place_track_design(int16_t x, int16_t y, int16_t z, uint8_t flags return cost; } -static money32 place_maze_design(uint8_t flags, Ride* ride, uint16_t mazeEntry, int16_t x, int16_t y, int16_t z) -{ - gCommandExpenditureType = RCT_EXPENDITURE_TYPE_RIDE_CONSTRUCTION; - gCommandPosition.x = x + 8; - gCommandPosition.y = y + 8; - gCommandPosition.z = z; - if (!map_check_free_elements_and_reorganise(1)) - { - return MONEY32_UNDEFINED; - } - - if ((z & 15) != 0) - { - return MONEY32_UNDEFINED; - } - - if (!(flags & GAME_COMMAND_FLAG_ALLOW_DURING_PAUSED)) - { - if (game_is_paused() && !gCheatsBuildInPauseMode) - { - gGameCommandErrorText = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED; - return MONEY32_UNDEFINED; - } - } - - if (flags & GAME_COMMAND_FLAG_APPLY) - { - if (!(flags & GAME_COMMAND_FLAG_GHOST)) - { - footpath_remove_litter(x, y, z); - wall_remove_at(floor2(x, 32), floor2(y, 32), z, z + 32); - } - } - - if (!gCheatsSandboxMode) - { - if (!map_is_location_owned({ x, y, z })) - { - return MONEY32_UNDEFINED; - } - } - - // Check support height - if (!gCheatsDisableSupportLimits) - { - auto surfaceElement = map_get_surface_element_at({ x, y }); - uint8_t supportZ = (z + 32) >> 3; - if (supportZ > surfaceElement->base_height) - { - uint8_t supportHeight = (supportZ - surfaceElement->base_height) / 2; - uint8_t maxSupportHeight = RideData5[RIDE_TYPE_MAZE].max_height; - if (supportHeight > maxSupportHeight) - { - gGameCommandErrorText = STR_TOO_HIGH_FOR_SUPPORTS; - return MONEY32_UNDEFINED; - } - } - } - - money32 cost = 0; - // Clearance checks - if (!gCheatsDisableClearanceChecks) - { - int32_t fx = floor2(x, 32); - int32_t fy = floor2(y, 32); - int32_t fz0 = z >> 3; - int32_t fz1 = fz0 + 4; - - if (!map_can_construct_with_clear_at( - fx, fy, fz0, fz1, &map_place_non_scenery_clear_func, { 0b1111, 0 }, flags, &cost, CREATE_CROSSING_MODE_NONE)) - { - return MONEY32_UNDEFINED; - } - - uint8_t elctgaw = gMapGroundFlags; - if (elctgaw & ELEMENT_IS_UNDERWATER) - { - gGameCommandErrorText = STR_RIDE_CANT_BUILD_THIS_UNDERWATER; - return MONEY32_UNDEFINED; - } - if (elctgaw & ELEMENT_IS_UNDERGROUND) - { - gGameCommandErrorText = STR_CAN_ONLY_BUILD_THIS_ABOVE_GROUND; - return MONEY32_UNDEFINED; - } - } - - // Calculate price - money32 price = 0; - if (!(gParkFlags & PARK_FLAGS_NO_MONEY)) - { - price = RideTrackCosts[ride->type].track_price * TrackPricing[TRACK_ELEM_MAZE]; - price = (price >> 17) * 10; - } - - cost += price; - - if (flags & GAME_COMMAND_FLAG_APPLY) - { - // Place track element - int32_t fx = floor2(x, 32); - int32_t fy = floor2(y, 32); - int32_t fz = z >> 3; - TileElement* tileElement = tile_element_insert({ fx >> 5, fy >> 5, fz }, 0b1111); - tileElement->clearance_height = fz + 4; - tileElement->SetType(TILE_ELEMENT_TYPE_TRACK); - tileElement->AsTrack()->SetTrackType(TRACK_ELEM_MAZE); - tileElement->AsTrack()->SetRideIndex(ride->id); - tileElement->AsTrack()->SetMazeEntry(mazeEntry); - if (flags & GAME_COMMAND_FLAG_GHOST) - { - tileElement->SetGhost(true); - } - - map_invalidate_element(fx, fy, tileElement); - - ride->maze_tiles++; - ride->stations[0].Height = tileElement->base_height; - ride->stations[0].Start.xy = 0; - if (ride->maze_tiles == 1) - { - ride->overall_view.x = fx / 32; - ride->overall_view.y = fy / 32; - } - } - - return cost; -} - /** * * rct2: 0x006D13FE @@ -2217,19 +2088,6 @@ void game_command_place_track_design( *edi = rideIndex; } -/** - * - * rct2: 0x006CDEE4 - */ -void game_command_place_maze_design( - int32_t* eax, int32_t* ebx, int32_t* ecx, int32_t* edx, [[maybe_unused]] int32_t* esi, int32_t* edi, - [[maybe_unused]] int32_t* ebp) -{ - auto ride = get_ride(*edx & 0xFF); - *ebx = place_maze_design( - *ebx & 0xFF, ride, ((*ebx >> 8) & 0xFF) | (((*edx >> 8) & 0xFF) << 8), *eax & 0xFFFF, *ecx & 0xFFFF, *edi & 0xFFFF); -} - #pragma region Track Design Preview /** diff --git a/src/openrct2/ride/TrackDesign.h b/src/openrct2/ride/TrackDesign.h index bb204abaf9..f14e3172d9 100644 --- a/src/openrct2/ride/TrackDesign.h +++ b/src/openrct2/ride/TrackDesign.h @@ -207,8 +207,6 @@ int32_t place_virtual_track( void game_command_place_track_design( int32_t* eax, int32_t* ebx, int32_t* ecx, int32_t* edx, int32_t* esi, int32_t* edi, int32_t* ebp); -void game_command_place_maze_design( - int32_t* eax, int32_t* ebx, int32_t* ecx, int32_t* edx, int32_t* esi, int32_t* edi, int32_t* ebp); /////////////////////////////////////////////////////////////////////////////// // Track design preview