mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-17 03:53:07 +01:00
Remove unused declarations and functions
This commit is contained in:
@@ -19,6 +19,10 @@
|
||||
#include "../world/Surface.h"
|
||||
#include "GameAction.h"
|
||||
|
||||
/**
|
||||
*
|
||||
* rct2: 0x006C5B69
|
||||
*/
|
||||
DEFINE_GAME_ACTION(TrackRemoveAction, GAME_COMMAND_REMOVE_TRACK, GameActionResult)
|
||||
{
|
||||
private:
|
||||
|
||||
@@ -71,10 +71,6 @@ extern colour_t gStaffHandymanColour;
|
||||
extern colour_t gStaffMechanicColour;
|
||||
extern colour_t gStaffSecurityColour;
|
||||
|
||||
void game_command_hire_new_staff_member(
|
||||
int32_t* eax, int32_t* ebx, int32_t* ecx, int32_t* edx, int32_t* esi, int32_t* edi, int32_t* ebp);
|
||||
void game_command_callback_hire_new_staff_member(
|
||||
int32_t eax, int32_t ebx, int32_t ecx, int32_t edx, int32_t esi, int32_t edi, int32_t ebp);
|
||||
void game_command_set_staff_name(
|
||||
int32_t* eax, int32_t* ebx, int32_t* ecx, int32_t* edx, int32_t* esi, int32_t* edi, int32_t* ebp);
|
||||
void game_command_pickup_staff(
|
||||
|
||||
@@ -1098,8 +1098,6 @@ int32_t ride_get_random_colour_preset_index(uint8_t ride_type);
|
||||
money32 ride_get_common_price(Ride* forRide);
|
||||
rct_ride_name get_ride_naming(const uint8_t rideType, rct_ride_entry* rideEntry);
|
||||
void game_command_create_ride(int32_t* eax, int32_t* ebx, int32_t* ecx, int32_t* edx, int32_t* esi, int32_t* edi, int32_t* ebp);
|
||||
void game_command_callback_ride_construct_new(
|
||||
int32_t eax, int32_t ebx, int32_t ecx, int32_t edx, int32_t esi, int32_t edi, int32_t ebp);
|
||||
void game_command_demolish_ride(
|
||||
int32_t* eax, int32_t* ebx, int32_t* ecx, int32_t* edx, int32_t* esi, int32_t* edi, int32_t* ebp);
|
||||
money32 ride_create_command(int32_t type, int32_t subType, int32_t flags, ride_id_t* outRideIndex, uint8_t* outRideColour);
|
||||
@@ -1167,12 +1165,6 @@ enum class RideSetSetting : uint8_t;
|
||||
money32 set_operating_setting(ride_id_t rideId, RideSetSetting setting, uint8_t value);
|
||||
money32 set_operating_setting_nested(ride_id_t rideId, RideSetSetting setting, uint8_t value, uint8_t flags);
|
||||
|
||||
void game_command_set_ride_vehicles(
|
||||
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_ride_entrance_or_exit(
|
||||
int32_t* eax, int32_t* ebx, int32_t* ecx, int32_t* edx, int32_t* esi, int32_t* edi, int32_t* ebp);
|
||||
|
||||
void sub_6CB945(Ride* ride);
|
||||
|
||||
void sub_6C94D8();
|
||||
|
||||
@@ -944,324 +944,6 @@ bool track_remove_station_element(int32_t x, int32_t y, int32_t z, int32_t direc
|
||||
return true;
|
||||
}
|
||||
|
||||
static money32 track_remove(
|
||||
uint8_t type, uint8_t sequence, int16_t originX, int16_t originY, int16_t originZ, uint8_t rotation, uint8_t flags)
|
||||
{
|
||||
gCommandExpenditureType = RCT_EXPENDITURE_TYPE_RIDE_CONSTRUCTION;
|
||||
gCommandPosition.x = originX + 16;
|
||||
gCommandPosition.y = originY + 16;
|
||||
gCommandPosition.z = originZ;
|
||||
int16_t trackpieceZ = originZ;
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case TRACK_ELEM_BEGIN_STATION:
|
||||
case TRACK_ELEM_MIDDLE_STATION:
|
||||
type = TRACK_ELEM_END_STATION;
|
||||
break;
|
||||
}
|
||||
|
||||
if (!(flags & (1 << 3)) && game_is_paused() && !gCheatsBuildInPauseMode)
|
||||
{
|
||||
gGameCommandErrorText = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
|
||||
bool found = false;
|
||||
bool isGhost = flags & GAME_COMMAND_FLAG_GHOST;
|
||||
TileElement* tileElement = map_get_first_element_at(originX / 32, originY / 32);
|
||||
if (tileElement == nullptr)
|
||||
{
|
||||
log_warning("Invalid coordinates for track removal. x = %d, y = %d", originX, originY);
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
do
|
||||
{
|
||||
if (tileElement->base_height * 8 != originZ)
|
||||
continue;
|
||||
|
||||
if (tileElement->GetType() != TILE_ELEMENT_TYPE_TRACK)
|
||||
continue;
|
||||
|
||||
if ((tileElement->GetDirection()) != rotation)
|
||||
continue;
|
||||
|
||||
if (tileElement->AsTrack()->GetSequenceIndex() != sequence)
|
||||
continue;
|
||||
|
||||
if (tileElement->IsGhost() != isGhost)
|
||||
continue;
|
||||
|
||||
uint8_t track_type = tileElement->AsTrack()->GetTrackType();
|
||||
switch (track_type)
|
||||
{
|
||||
case TRACK_ELEM_BEGIN_STATION:
|
||||
case TRACK_ELEM_MIDDLE_STATION:
|
||||
track_type = TRACK_ELEM_END_STATION;
|
||||
break;
|
||||
}
|
||||
|
||||
if (track_type != type)
|
||||
continue;
|
||||
|
||||
found = true;
|
||||
break;
|
||||
} while (!(tileElement++)->IsLastForTile());
|
||||
|
||||
if (!found)
|
||||
{
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
|
||||
if (tileElement->AsTrack()->IsIndestructible())
|
||||
{
|
||||
gGameCommandErrorText = STR_YOU_ARE_NOT_ALLOWED_TO_REMOVE_THIS_SECTION;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
|
||||
ride_id_t rideIndex = tileElement->AsTrack()->GetRideIndex();
|
||||
type = tileElement->AsTrack()->GetTrackType();
|
||||
bool isLiftHill = tileElement->AsTrack()->HasChain();
|
||||
|
||||
Ride* ride = get_ride(rideIndex);
|
||||
const rct_preview_track* trackBlock = get_track_def_from_ride(ride, type);
|
||||
trackBlock += tileElement->AsTrack()->GetSequenceIndex();
|
||||
|
||||
uint8_t originDirection = tileElement->GetDirection();
|
||||
switch (originDirection)
|
||||
{
|
||||
case 0:
|
||||
originX -= trackBlock->x;
|
||||
originY -= trackBlock->y;
|
||||
break;
|
||||
case 1:
|
||||
originX -= trackBlock->y;
|
||||
originY += trackBlock->x;
|
||||
break;
|
||||
case 2:
|
||||
originX += trackBlock->x;
|
||||
originY += trackBlock->y;
|
||||
break;
|
||||
case 3:
|
||||
originX += trackBlock->y;
|
||||
originY -= trackBlock->x;
|
||||
break;
|
||||
}
|
||||
|
||||
originZ -= trackBlock->z;
|
||||
|
||||
money32 cost = 0;
|
||||
|
||||
trackBlock = get_track_def_from_ride(ride, type);
|
||||
for (; trackBlock->index != 255; trackBlock++)
|
||||
{
|
||||
int16_t x = originX, y = originY, z = originZ;
|
||||
|
||||
switch (originDirection)
|
||||
{
|
||||
case 0:
|
||||
x += trackBlock->x;
|
||||
y += trackBlock->y;
|
||||
break;
|
||||
case 1:
|
||||
x += trackBlock->y;
|
||||
y -= trackBlock->x;
|
||||
break;
|
||||
case 2:
|
||||
x -= trackBlock->x;
|
||||
y -= trackBlock->y;
|
||||
break;
|
||||
case 3:
|
||||
x -= trackBlock->y;
|
||||
y += trackBlock->x;
|
||||
break;
|
||||
}
|
||||
|
||||
z += trackBlock->z;
|
||||
|
||||
map_invalidate_tile_full(x, y);
|
||||
|
||||
trackpieceZ = z;
|
||||
|
||||
found = false;
|
||||
tileElement = map_get_first_element_at(x / 32, y / 32);
|
||||
do
|
||||
{
|
||||
if (tileElement == nullptr)
|
||||
break;
|
||||
|
||||
if (tileElement->base_height != z / 8)
|
||||
continue;
|
||||
|
||||
if (tileElement->GetType() != TILE_ELEMENT_TYPE_TRACK)
|
||||
continue;
|
||||
|
||||
if (tileElement->GetDirection() != rotation)
|
||||
continue;
|
||||
|
||||
if (tileElement->AsTrack()->GetSequenceIndex() != trackBlock->index)
|
||||
continue;
|
||||
|
||||
if (tileElement->AsTrack()->GetTrackType() != type)
|
||||
continue;
|
||||
|
||||
if (tileElement->IsGhost() != isGhost)
|
||||
continue;
|
||||
|
||||
found = true;
|
||||
break;
|
||||
} while (!(tileElement++)->IsLastForTile());
|
||||
|
||||
if (!found)
|
||||
{
|
||||
log_error("Track map element part not found!");
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
|
||||
int32_t entranceDirections;
|
||||
if (ride_type_has_flag(ride->type, RIDE_TYPE_FLAG_FLAT_RIDE))
|
||||
{
|
||||
entranceDirections = FlatRideTrackSequenceProperties[type][0];
|
||||
}
|
||||
else
|
||||
{
|
||||
entranceDirections = TrackSequenceProperties[type][0];
|
||||
}
|
||||
|
||||
if (entranceDirections & TRACK_SEQUENCE_FLAG_ORIGIN && (tileElement->AsTrack()->GetSequenceIndex() == 0))
|
||||
{
|
||||
if (!track_remove_station_element(x, y, z / 8, rotation, rideIndex, 0))
|
||||
{
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
}
|
||||
|
||||
TileElement* surfaceElement = map_get_surface_element_at({ x, y });
|
||||
if (surfaceElement == nullptr)
|
||||
{
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
|
||||
int8_t _support_height = tileElement->base_height - surfaceElement->base_height;
|
||||
if (_support_height < 0)
|
||||
{
|
||||
_support_height = 10;
|
||||
}
|
||||
|
||||
cost += (_support_height / 2) * RideTrackCosts[ride->type].support_price;
|
||||
|
||||
if (!(flags & GAME_COMMAND_FLAG_APPLY))
|
||||
continue;
|
||||
|
||||
if (entranceDirections & (1 << 4) && (tileElement->AsTrack()->GetSequenceIndex() == 0))
|
||||
{
|
||||
if (!track_remove_station_element(x, y, z / 8, rotation, rideIndex, GAME_COMMAND_FLAG_APPLY))
|
||||
{
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
}
|
||||
|
||||
if (ride_type_has_flag(ride->type, RIDE_TYPE_FLAG_TRACK_MUST_BE_ON_WATER))
|
||||
{
|
||||
surfaceElement->AsSurface()->SetHasTrackThatNeedsWater(false);
|
||||
}
|
||||
|
||||
invalidate_test_results(ride);
|
||||
footpath_queue_chain_reset();
|
||||
if (!gCheatsDisableClearanceChecks || !(tileElement->IsGhost()))
|
||||
{
|
||||
footpath_remove_edges_at(x, y, tileElement);
|
||||
}
|
||||
tile_element_remove(tileElement);
|
||||
sub_6CB945(ride);
|
||||
if (!(flags & GAME_COMMAND_FLAG_GHOST))
|
||||
{
|
||||
ride->UpdateMaxVehicles();
|
||||
}
|
||||
}
|
||||
|
||||
if (flags & GAME_COMMAND_FLAG_APPLY)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case TRACK_ELEM_ON_RIDE_PHOTO:
|
||||
ride->lifecycle_flags &= ~RIDE_LIFECYCLE_ON_RIDE_PHOTO;
|
||||
break;
|
||||
case TRACK_ELEM_CABLE_LIFT_HILL:
|
||||
ride->lifecycle_flags &= ~RIDE_LIFECYCLE_CABLE_LIFT_HILL_COMPONENT_USED;
|
||||
break;
|
||||
case TRACK_ELEM_BLOCK_BRAKES:
|
||||
ride->num_block_brakes--;
|
||||
if (ride->num_block_brakes == 0)
|
||||
{
|
||||
ride->window_invalidate_flags |= RIDE_INVALIDATE_RIDE_OPERATING;
|
||||
ride->mode = RIDE_MODE_CONTINUOUS_CIRCUIT;
|
||||
if (ride->type == RIDE_TYPE_LIM_LAUNCHED_ROLLER_COASTER)
|
||||
{
|
||||
ride->mode = RIDE_MODE_POWERED_LAUNCH;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case TRACK_ELEM_25_DEG_UP_TO_FLAT:
|
||||
case TRACK_ELEM_60_DEG_UP_TO_FLAT:
|
||||
case TRACK_ELEM_DIAG_25_DEG_UP_TO_FLAT:
|
||||
case TRACK_ELEM_DIAG_60_DEG_UP_TO_FLAT:
|
||||
if (!isLiftHill)
|
||||
break;
|
||||
[[fallthrough]];
|
||||
case TRACK_ELEM_CABLE_LIFT_HILL:
|
||||
ride->num_block_brakes--;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
money32 price = RideTrackCosts[ride->type].track_price;
|
||||
if (ride_type_has_flag(ride->type, RIDE_TYPE_FLAG_FLAT_RIDE))
|
||||
{
|
||||
price *= FlatRideTrackPricing[type];
|
||||
}
|
||||
else
|
||||
{
|
||||
price *= TrackPricing[type];
|
||||
}
|
||||
price >>= 16;
|
||||
price = (price + cost) / 2;
|
||||
if (ride->lifecycle_flags & RIDE_LIFECYCLE_EVER_BEEN_OPENED)
|
||||
price *= -7;
|
||||
else
|
||||
price *= -10;
|
||||
|
||||
if (gGameCommandNestLevel == 1)
|
||||
{
|
||||
LocationXYZ16 coord;
|
||||
coord.x = originX + 16;
|
||||
coord.y = originY + 16;
|
||||
coord.z = trackpieceZ;
|
||||
network_set_player_last_action_coord(network_get_player_index(game_command_playerid), coord);
|
||||
}
|
||||
|
||||
if (gParkFlags & PARK_FLAGS_NO_MONEY)
|
||||
return 0;
|
||||
else
|
||||
return price;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* rct2: 0x006C5B69
|
||||
*/
|
||||
void game_command_remove_track(
|
||||
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)
|
||||
{
|
||||
*ebx = track_remove(
|
||||
*edx & 0xFF, (*edx >> 8) & 0xFF, *eax & 0xFFFF, *ecx & 0xFFFF, *edi & 0xFFFF, (*ebx >> 8) & 0xFF, *ebx & 0xFF);
|
||||
}
|
||||
|
||||
void track_circuit_iterator_begin(track_circuit_iterator* it, CoordsXYE first)
|
||||
{
|
||||
it->last = first;
|
||||
|
||||
@@ -547,9 +547,6 @@ int32_t track_get_actual_bank_3(rct_vehicle* vehicle, TileElement* tileElement);
|
||||
bool track_add_station_element(int32_t x, int32_t y, int32_t z, int32_t direction, ride_id_t rideIndex, int32_t flags);
|
||||
bool track_remove_station_element(int32_t x, int32_t y, int32_t z, int32_t direction, ride_id_t rideIndex, int32_t flags);
|
||||
|
||||
void game_command_remove_track(
|
||||
int32_t* eax, int32_t* ebx, int32_t* ecx, int32_t* edx, int32_t* esi, int32_t* edi, int32_t* ebp);
|
||||
|
||||
void game_command_set_maze_track(
|
||||
int32_t* eax, int32_t* ebx, int32_t* ecx, int32_t* edx, int32_t* esi, int32_t* edi, int32_t* ebp);
|
||||
money32 maze_set_track(
|
||||
|
||||
@@ -176,8 +176,6 @@ TileElement* map_get_footpath_element(int32_t x, int32_t y, int32_t z);
|
||||
struct PathElement;
|
||||
PathElement* map_get_footpath_element_slope(int32_t x, int32_t y, int32_t z, int32_t slope);
|
||||
void footpath_interrupt_peeps(int32_t x, int32_t y, int32_t z);
|
||||
void game_command_remove_footpath(
|
||||
int32_t* eax, int32_t* ebx, int32_t* ecx, int32_t* edx, int32_t* esi, int32_t* edi, int32_t* ebp);
|
||||
money32 footpath_remove(int32_t x, int32_t y, int32_t z, int32_t flags);
|
||||
money32 footpath_provisional_set(int32_t type, int32_t x, int32_t y, int32_t z, int32_t slope);
|
||||
void footpath_provisional_remove();
|
||||
|
||||
@@ -186,12 +186,9 @@ bool map_can_construct_with_clear_at(
|
||||
int32_t map_can_construct_at(int32_t x, int32_t y, int32_t zLow, int32_t zHigh, QuarterTile bl);
|
||||
void rotate_map_coordinates(int16_t* x, int16_t* y, int32_t rotation);
|
||||
LocationXY16 coordinate_3d_to_2d(const LocationXYZ16* coordinate_3d, int32_t rotation);
|
||||
money32 map_clear_scenery(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t clear, int32_t flags);
|
||||
|
||||
void game_command_place_park_entrance(
|
||||
int32_t* eax, int32_t* ebx, int32_t* ecx, int32_t* edx, int32_t* esi, int32_t* edi, int32_t* ebp);
|
||||
void game_command_set_banner_name(
|
||||
int32_t* eax, int32_t* ebx, int32_t* ecx, int32_t* edx, int32_t* esi, int32_t* edi, int32_t* ebp);
|
||||
void game_command_modify_tile(int32_t* eax, int32_t* ebx, int32_t* ecx, int32_t* edx, int32_t* esi, int32_t* edi, int32_t* ebp);
|
||||
|
||||
struct tile_element_iterator
|
||||
|
||||
Reference in New Issue
Block a user