Extract new struct

This commit is contained in:
Marijn van der Werf 2016-04-03 14:53:17 +02:00
parent e4fadc5a66
commit 0fd42f408a
11 changed files with 133 additions and 26 deletions

View File

@ -1585,7 +1585,7 @@ void viewport_track_paint_setup(uint8 direction, int height, rct_map_element *ma
if ((RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_VIEWPORT_FLAGS, uint16) & VIEWPORT_FLAG_TRACK_HEIGHTS) && dpi->zoom_level == 0) {
RCT2_GLOBAL(RCT2_ADDRESS_PAINT_SETUP_CURRENT_TYPE, uint8) = 0;
if (RCT2_ADDRESS(0x00999694, uint32)[trackType] & (1 << trackSequence)) {
uint16 ax = RCT2_GLOBAL(0x0097D21A + (ride->type * 8), uint8);
uint16 ax = RideData5[ride->type].z_offset;
uint32 ebx = 0x20381689 + (height + 8) / 16;
ebx += RCT2_GLOBAL(RCT2_ADDRESS_CONFIG_HEIGHT_MARKERS, uint16);
ebx -= RCT2_GLOBAL(0x01359208, uint16);

View File

@ -1902,7 +1902,7 @@ void peep_update_ride_sub_state_1(rct_peep* peep){
RCT2_GLOBAL(0xF1AECA, uint16) += 4;
if (xy_distance < RCT2_GLOBAL(0xF1AECA, uint16)){
z += RCT2_ADDRESS(0x0097D21C, uint8)[ride->type * 8];
z += RideData5[ride->type].z;
}
sprite_move(x, y, z, (rct_sprite*)peep);
@ -2078,7 +2078,7 @@ void peep_update_ride_sub_state_1(rct_peep* peep){
* rct2: 0x0069321D
*/
static void peep_go_to_ride_exit(rct_peep* peep, rct_ride* ride, sint16 x, sint16 y, sint16 z, uint8 exit_direction){
z += RCT2_ADDRESS(0x0097D21C, uint8)[ride->type * 8];
z += RideData5[ride->type].z;
sprite_move(x, y, z, (rct_sprite*)peep);
invalidate_sprite_2((rct_sprite*)peep);
@ -2537,7 +2537,7 @@ void peep_update_ride_sub_state_7(rct_peep* peep){
sint16 exit_y = y + vehicle_type->peep_loading_positions[(peep->var_37 + 1) * 2 + 2];
z *= 8;
z += RCT2_ADDRESS(0x0097D21C, uint8)[ride->type * 8];
z += RideData5[ride->type].z;
if (ride->type == RIDE_TYPE_MOTION_SIMULATOR)
z += 15;
@ -2627,7 +2627,7 @@ static void peep_update_ride_sub_state_9(rct_peep* peep){
if (xy_distance >= 16){
sint16 z = ride->station_heights[peep->current_ride_station] * 8;
z += RCT2_ADDRESS(0x97D21C, uint8)[ride->type * 8];
z += RideData5[ride->type].z;
sprite_move(x, y, z, (rct_sprite*)peep);
invalidate_sprite_2((rct_sprite*)peep);
return;
@ -4005,7 +4005,7 @@ static bool peep_update_fixing_sub_state_14(bool firstRun, rct_peep *peep, rct_r
uint16 z = ride->station_heights[peep->current_ride_station] * 8;
if (xy_distance >= 16) {
z += RCT2_ADDRESS(0x0097D21C, uint8)[ride->type * 8];
z += RideData5[ride->type].z;
}
sprite_move(x, y, z, (rct_sprite *) peep);
@ -5063,7 +5063,7 @@ static void peep_update_heading_to_inspect(rct_peep* peep){
int z = ride->station_heights[peep->current_ride_station] * 8;
if (delta_y < 20){
z += RCT2_ADDRESS(0x0097D21C, uint8)[ride->type * 8];
z += RideData5[ride->type].z;
}
sprite_move(x, y, z, (rct_sprite*)peep);
@ -5176,7 +5176,7 @@ static void peep_update_answering(rct_peep* peep){
int z = ride->station_heights[peep->current_ride_station] * 8;
if (delta_y < 20){
z += RCT2_ADDRESS(0x0097D21C, uint8)[ride->type * 8];
z += RideData5[ride->type].z;
}
sprite_move(x, y, z, (rct_sprite*)peep);

View File

@ -2,6 +2,7 @@
#include "cable_lift.h"
#include "ride.h"
#include "track.h"
#include "ride_data.h"
static void cable_lift_update_moving_to_end_of_station(rct_vehicle *vehicle);
static void cable_lift_update_waiting_to_depart(rct_vehicle *vehicle);
@ -58,7 +59,7 @@ rct_vehicle *cable_lift_segment_create(int rideIndex, int x, int y, int z, int d
z = z * 8;
current->track_z = z;
z += RCT2_GLOBAL(0x0097D21A + (ride->type * 8), sint8);
z += RideData5[ride->type].z_offset;
sprite_move(16, 16, z, (rct_sprite*)current);
current->track_type = (TRACK_ELEM_CABLE_LIFT_HILL << 2) | (current->sprite_direction >> 3);
@ -262,7 +263,7 @@ bool sub_6DF01A_loop(rct_vehicle* vehicle) {
unk.z += vehicle->track_z;
uint8 bx = 0;
unk.z += RCT2_GLOBAL(0x0097D21A + (ride->type * 8), sint8);
unk.z += RideData5[ride->type].z_offset;
if (unk.x != unk_F64E20->x)
bx |= (1 << 0);
if (unk.y != unk_F64E20->y)
@ -348,7 +349,7 @@ bool sub_6DF21B_loop(rct_vehicle* vehicle) {
unk.z += vehicle->track_z;
uint8 bx = 0;
unk.z += RCT2_GLOBAL(0x0097D21A + (ride->type * 8), sint8);
unk.z += RideData5[ride->type].z_offset;
if (unk.x != unk_F64E20->x)
bx |= (1 << 0);
if (unk.y != unk_F64E20->y)

View File

@ -4437,7 +4437,7 @@ rct_vehicle *vehicle_create_car(
vehicle->track_z = z;
vehicle->current_station = map_get_station(mapElement);
z += RCT2_GLOBAL(0x0097D21A + (ride->type * 8), sint8);
z += RideData5[ride->type].z_offset;
vehicle->track_type = mapElement->properties.track.type << 2;
vehicle->track_progress = 0;
@ -4511,7 +4511,7 @@ rct_vehicle *vehicle_create_car(
vehicle->current_station = map_get_station(mapElement);
z = mapElement->base_height * 8;
z += RCT2_GLOBAL(0x0097D21A + (ride->type * 8), uint8);
z += RideData5[ride->type].z_offset;
sprite_move(x, y, z, (rct_sprite*)vehicle);
vehicle->track_type = (mapElement->properties.track.type << 2) | (vehicle->sprite_direction >> 3);
@ -7427,7 +7427,7 @@ void ride_update_max_vehicles(int rideIndex)
return;
stationLength = (stationLength * 0x44180) - 0x16B2A;
int maxFriction = RCT2_GLOBAL(0x0097D21B + (ride->type * 8), uint8) << 8;
int maxFriction = RideData5[ride->type].max_friction << 8;
int maxCarsPerTrain = 1;
for (int numCars = rideEntry->max_cars_in_train; numCars > 0; numCars--) {
ride_entry_get_train_layout(ride->subtype, numCars, trainLayout);

View File

@ -1177,6 +1177,100 @@ const ride_cost RideTrackCosts[91] = {
{ 95, 5 }, // RIDE_TYPE_LIM_LAUNCHED_ROLLER_COASTER
};
// 0x0097D218
const rct_ride_data_5 RideData5[91] = {
{ 19, 24, 9, 31, 11, 50, 85, 0 }, // RIDE_TYPE_SPIRAL_ROLLER_COASTER
{ 25, 24, 9, 18, 11, 50, 90, 0 }, // RIDE_TYPE_STAND_UP_ROLLER_COASTER
{ 24, 40, 29, 26, 8, 50, 90, 0 }, // RIDE_TYPE_SUSPENDED_SWINGING_COASTER
{ 38, 40, 29, 27, 8, 50, 100, 0 }, // RIDE_TYPE_INVERTED_ROLLER_COASTER
{ 12, 24, 4, 10, 7, 40, 60, 0 }, // RIDE_TYPE_JUNIOR_ROLLER_COASTER
{ 7, 32, 5, 39, 9, 50, 50, 0 }, // RIDE_TYPE_MINIATURE_RAILWAY
{ 8, 32, 8, 78, 9, 50, 60, 0 }, // RIDE_TYPE_MONORAIL
{ 10, 24, 24, 3, 8, 40, 50, 0 }, // RIDE_TYPE_MINI_SUSPENDED_COASTER
{ 255, 16, 0, 255, 3, 5, 40, 0 }, // RIDE_TYPE_BOAT_RIDE
{ 14, 24, 4, 4, 7, 40, 55, 0 }, // RIDE_TYPE_WOODEN_WILD_MOUSE
{ 14, 24, 7, 4, 7, 40, 60, 0 }, // RIDE_TYPE_STEEPLECHASE
{ 6, 24, 4, 2, 7, 30, 50, 0 }, // RIDE_TYPE_CAR_RIDE
{ 255, 32, 3, 15, 2, 4, 65, 0 }, // RIDE_TYPE_LAUNCHED_FREEFALL
{ 19, 24, 5, 25, 7, 45, 75, 0 }, // RIDE_TYPE_BOBSLEIGH_COASTER
{ 255, 32, 3, 15, 2, 4, 45, 0 }, // RIDE_TYPE_OBSERVATION_TOWER
{ 35, 24, 5, 18, 7, 50, 95, 0 }, // RIDE_TYPE_LOOPING_ROLLER_COASTER
{ 15, 24, 5, 5, 7, 40, 55, 0 }, // RIDE_TYPE_DINGHY_SLIDE
{ 21, 24, 4, 15, 7, 50, 85, 0 }, // RIDE_TYPE_MINE_TRAIN_COASTER
{ 40, 32, 28, 18, 2, 30, 55, 0 }, // RIDE_TYPE_CHAIRLIFT
{ 28, 24, 8, 18, 11, 50, 100, 0 }, // RIDE_TYPE_CORKSCREW_ROLLER_COASTER
{ 6, 24, 0, 18, 1, 8, 40, 0 }, // RIDE_TYPE_MAZE
{ 15, 128, 0, 255, 2, 1, 40, 0 }, // RIDE_TYPE_SPIRAL_SLIDE
{ 7, 24, 2, 255, 1, 20, 55, 0 }, // RIDE_TYPE_GO_KARTS
{ 9, 24, 7, 255, 9, 40, 65, 0 }, // RIDE_TYPE_LOG_FLUME
{ 9, 32, 14, 255, 15, 40, 70, 0 }, // RIDE_TYPE_RIVER_RAPIDS
{ 9, 48, 2, 255, 2, 1, 35, 0 }, // RIDE_TYPE_DODGEMS
{ 12, 112, 7, 255, 11, 1, 35, 0 }, // RIDE_TYPE_PIRATE_SHIP
{ 15, 176, 7, 255, 11, 1, 35, 0 }, // RIDE_TYPE_SWINGING_INVERTER_SHIP
{ 12, 64, 0, 255, 0, 1, 15, 0 }, // RIDE_TYPE_FOOD_STALL
{ 12, 64, 0, 255, 0, 1, 15, 0 }, // RIDE_TYPE_1D
{ 12, 64, 0, 255, 0, 1, 15, 0 }, // RIDE_TYPE_DRINK_STALL
{ 12, 64, 0, 255, 0, 1, 15, 0 }, // RIDE_TYPE_1F
{ 12, 64, 0, 255, 0, 1, 15, 0 }, // RIDE_TYPE_SHOP
{ 12, 64, 3, 255, 2, 1, 45, 0 }, // RIDE_TYPE_MERRY_GO_ROUND
{ 12, 64, 0, 255, 0, 1, 15, 0 }, // RIDE_TYPE_22
{ 12, 48, 0, 255, 0, 1, 15, 0 }, // RIDE_TYPE_INFORMATION_KIOSK
{ 12, 32, 0, 255, 0, 1, 5, 0 }, // RIDE_TYPE_TOILETS
{ 16, 176, 3, 255, 2, 1, 45, 0 }, // RIDE_TYPE_FERRIS_WHEEL
{ 12, 64, 3, 255, 2, 1, 45, 0 }, // RIDE_TYPE_MOTION_SIMULATOR
{ 12, 128, 3, 255, 2, 1, 45, 0 }, // RIDE_TYPE_3D_CINEMA
{ 16, 112, 3, 255, 2, 1, 55, 0 }, // RIDE_TYPE_TOP_SPIN
{ 16, 48, 3, 255, 2, 1, 30, 0 }, // RIDE_TYPE_SPACE_RINGS
{ 255, 32, 4, 255, 7, 45, 70, 0 }, // RIDE_TYPE_REVERSE_FREEFALL_COASTER
{ 255, 32, 3, 15, 2, 4, 45, 0 }, // RIDE_TYPE_LIFT
{ 53, 24, 8, 25, 11, 42, 95, 0 }, // RIDE_TYPE_VERTICAL_DROP_ROLLER_COASTER
{ 12, 32, 0, 255, 0, 1, 5, 0 }, // RIDE_TYPE_CASH_MACHINE
{ 12, 64, 3, 255, 2, 1, 40, 0 }, // RIDE_TYPE_TWIST
{ 16, 160, 3, 255, 2, 1, 22, 0 }, // RIDE_TYPE_HAUNTED_HOUSE
{ 12, 48, 0, 255, 0, 1, 5, 0 }, // RIDE_TYPE_FIRST_AID
{ 12, 128, 3, 255, 2, 1, 39, 0 }, // RIDE_TYPE_CIRCUS_SHOW
{ 8, 24, 6, 2, 7, 30, 50, 0 }, // RIDE_TYPE_GHOST_TRAIN
{ 54, 24, 8, 31, 9, 55, 120, 0 }, // RIDE_TYPE_TWISTER_ROLLER_COASTER
{ 41, 24, 8, 15, 11, 50, 105, 0 }, // RIDE_TYPE_WOODEN_ROLLER_COASTER
{ 15, 24, 4, 15, 11, 37, 65, 0 }, // RIDE_TYPE_SIDE_FRICTION_ROLLER_COASTER
{ 16, 24, 4, 4, 7, 40, 55, 0 }, // RIDE_TYPE_WILD_MOUSE
{ 40, 24, 8, 78, 11, 50, 100, 0 }, // RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER
{ 40, 24, 8, 78, 11, 50, 100, 0 }, // RIDE_TYPE_38
{ 30, 24, 8, 35, 11, 50, 100, 0 }, // RIDE_TYPE_FLYING_ROLLER_COASTER
{ 30, 24, 8, 35, 11, 50, 100, 0 }, // RIDE_TYPE_3A
{ 14, 24, 6, 15, 7, 25, 50, 0 }, // RIDE_TYPE_VIRGINIA_REEL
{ 16, 24, 7, 255, 11, 30, 65, 0 }, // RIDE_TYPE_SPLASH_BOATS
{ 7, 24, 4, 2, 7, 30, 45, 0 }, // RIDE_TYPE_MINI_HELICOPTERS
{ 26, 24, 8, 25, 11, 50, 100, 0 }, // RIDE_TYPE_LAY_DOWN_ROLLER_COASTER
{ 12, 40, 32, 78, 8, 50, 60, 0 }, // RIDE_TYPE_SUSPENDED_MONORAIL
{ 26, 24, 8, 25, 11, 50, 100, 0 }, // RIDE_TYPE_40
{ 18, 24, 8, 15, 11, 37, 65, 0 }, // RIDE_TYPE_REVERSER_ROLLER_COASTER
{ 22, 24, 15, 18, 9, 30, 35, 0 }, // RIDE_TYPE_HEARTLINE_TWISTER_COASTER
{ 7, 32, 2, 255, 2, 20, 23, 0 }, // RIDE_TYPE_MINI_GOLF
{ 86, 24, 9, 31, 11, 55, 120, 0 }, // RIDE_TYPE_GIGA_COASTER
{ 255, 32, 3, 15, 2, 4, 45, 0 }, // RIDE_TYPE_ROTO_DROP
{ 9, 48, 2, 255, 2, 1, 35, 0 }, // RIDE_TYPE_FLYING_SAUCERS
{ 16, 96, 3, 255, 2, 1, 22, 0 }, // RIDE_TYPE_CROOKED_HOUSE
{ 5, 24, 8, 2, 7, 30, 45, 0 }, // RIDE_TYPE_MONORAIL_CYCLES
{ 27, 40, 29, 18, 8, 50, 80, 0 }, // RIDE_TYPE_COMPACT_INVERTED_COASTER
{ 18, 24, 4, 13, 7, 40, 60, 0 }, // RIDE_TYPE_WATER_COASTER
{ 255, 32, 4, 255, 7, 45, 70, 0 }, // RIDE_TYPE_AIR_POWERED_VERTICAL_COASTER
{ 16, 24, 24, 4, 7, 40, 55, 0 }, // RIDE_TYPE_INVERTED_HAIRPIN_COASTER
{ 15, 176, 7, 255, 11, 1, 35, 0 }, // RIDE_TYPE_MAGIC_CARPET
{ 255, 16, 0, 255, 3, 5, 40, 0 }, // RIDE_TYPE_SUBMARINE_RIDE
{ 12, 24, 7, 255, 11, 30, 65, 0 }, // RIDE_TYPE_RIVER_RAFTS
{ 12, 64, 0, 255, 0, 1, 15, 0 }, // RIDE_TYPE_50
{ 16, 160, 3, 255, 2, 1, 45, 0 }, // RIDE_TYPE_ENTERPRISE
{ 12, 48, 0, 255, 0, 1, 15, 0 }, // RIDE_TYPE_52
{ 12, 64, 0, 255, 0, 1, 15, 0 }, // RIDE_TYPE_53
{ 12, 48, 0, 255, 0, 1, 15, 0 }, // RIDE_TYPE_54
{ 44, 24, 8, 18, 11, 50, 100, 0 }, // RIDE_TYPE_55
{ 45, 40, 29, 23, 8, 25, 75, 0 }, // RIDE_TYPE_INVERTED_IMPULSE_COASTER
{ 16, 24, 9, 10, 11, 40, 60, 0 }, // RIDE_TYPE_MINI_ROLLER_COASTER
{ 13, 24, 9, 27, 11, 40, 70, 0 }, // RIDE_TYPE_MINE_RIDE
{ 16, 24, 4, 4, 7, 40, 55, 0 }, // RIDE_TYPE_59
{ 35, 24, 5, 18, 7, 50, 95, 0 }, // RIDE_TYPE_LIM_LAUNCHED_ROLLER_COASTER
};
// rct2: 0x00982358

View File

@ -61,6 +61,17 @@ typedef struct {
uint16 support_price;
} ride_cost;
typedef struct {
uint8 max_height;
uint8 clearance_height;
sint8 z_offset;
uint8 max_friction;
uint8 z;
uint8 price;
uint8 bonus_value; // Deprecated. Use rideBonusValue instead
uint8 pad;
} rct_ride_data_5;
typedef struct {
uint8 sound_id;
uint8 minimum_speed;
@ -105,6 +116,7 @@ extern const rct_ride_lift_data RideLiftData[91];
extern const rct_ride_data_4 RideData4[91];
extern const ride_cost RideTrackCosts[91];
extern const rct_ride_data_5 RideData5[91];
extern const money8 DefaultShopItemPrice[SHOP_ITEM_COUNT];
extern const rct_shop_item_string_types ShopItemStringIds[SHOP_ITEM_COUNT];

View File

@ -3438,7 +3438,7 @@ money32 place_maze_design(uint8 flags, uint8 rideIndex, uint16 mazeEntry, sint16
uint8 supportZ = (z + 32) >> 3;
if (supportZ > mapElement->base_height) {
uint8 supportHeight = (supportZ - mapElement->base_height) / 2;
uint8 maxSupportHeight = RCT2_GLOBAL(0x0097D218 + (RIDE_TYPE_MAZE * 8), uint8);
uint8 maxSupportHeight = RideData5[RIDE_TYPE_MAZE].max_height;
if (supportHeight > maxSupportHeight) {
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_TOO_HIGH_FOR_SUPPORTS;
return MONEY32_UNDEFINED;
@ -4570,11 +4570,11 @@ static money32 track_place(int rideIndex, int type, int originX, int originY, in
int baseZ = (originZ + trackBlock->z) / 8;
int clearanceZ = trackBlock->var_07;
if (trackBlock->var_09 & (1 << 2) && RCT2_GLOBAL(0x0097D219 + (ride->type * 8), uint8) > 24){
if (trackBlock->var_09 & (1 << 2) && RideData5[ride->type].clearance_height > 24) {
clearanceZ += 24;
}
else{
clearanceZ += RCT2_GLOBAL(0x0097D219 + (ride->type * 8), uint8);
clearanceZ += RideData5[ride->type].clearance_height;
}
clearanceZ = (clearanceZ / 8) + baseZ;
@ -4718,7 +4718,7 @@ static money32 track_place(int rideIndex, int type, int originX, int originY, in
if (ride_height >= 0) {
int maxHeight = rideEntry->max_height;
if (maxHeight == 0) {
maxHeight = RCT2_GLOBAL(0x0097D218 + (ride->type * 8), uint8);
maxHeight = RideData5[ride->type].max_height;
}
ride_height /= 2;
if (ride_height > maxHeight && !(RCT2_GLOBAL(0x009D8150, uint8) & 1)) {
@ -5264,7 +5264,7 @@ money32 set_maze_track(uint16 x, uint8 flags, uint8 direction, uint16 y, uint8 r
if (heightDifference >= 0 && !gCheatsDisableSupportLimits) {
heightDifference = heightDifference >> 1;
if (heightDifference > RCT2_GLOBAL(0x0097D218 + (RIDE_TYPE_MAZE * 8), uint8)) {
if (heightDifference > RideData5[RIDE_TYPE_MAZE].max_height) {
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_TOO_HIGH_FOR_SUPPORTS;
return MONEY32_UNDEFINED;
}

View File

@ -6917,7 +6917,7 @@ loc_6DAEB9:
);
sint16 x = vehicle->track_x + moveInfo->x;
sint16 y = vehicle->track_y + moveInfo->y;
sint16 z = vehicle->track_z + moveInfo->z + RCT2_GLOBAL(0x0097D21A + (ride->type * 8), sint8);
sint16 z = vehicle->track_z + moveInfo->z + RideData5[ride->type].z_offset;
trackType = vehicle->track_type >> 2;
regs.ebx = 0;
@ -7226,7 +7226,7 @@ loc_6DBA33:;
sint16 x = vehicle->track_x + moveInfo->x;
sint16 y = vehicle->track_y + moveInfo->y;
sint16 z = vehicle->track_z + moveInfo->z + RCT2_GLOBAL(0x0097D21A + (ride->type * 8), sint8);
sint16 z = vehicle->track_z + moveInfo->z + RideData5[ride->type].z_offset;
regs.ebx = 0;
if (x != unk_F64E20->x) { regs.ebx |= 1; }
@ -7559,7 +7559,7 @@ loc_6DC743:
// loc_6DC8A1
x = vehicle->track_x + moveInfo->x;
y = vehicle->track_y + moveInfo->y;
z = vehicle->track_z + moveInfo->z + RCT2_GLOBAL(0x0097D21A + (ride->type * 8), sint8);
z = vehicle->track_z + moveInfo->z + RideData5[ride->type].z_offset;
// Investigate redundant code
regs.ebx = 0;
@ -7699,7 +7699,7 @@ loc_6DCC2C:
moveInfo = vehicle_get_move_info(vehicle->var_CD, vehicle->track_type, vehicle->track_progress);
x = vehicle->track_x + moveInfo->x;
y = vehicle->track_y + moveInfo->y;
z = vehicle->track_z + moveInfo->z + RCT2_GLOBAL(0x0097D21A + (ride->type * 8), sint8);
z = vehicle->track_z + moveInfo->z + RideData5[ride->type].z_offset;
// Investigate redundant code
regs.ebx = 0;

View File

@ -918,7 +918,7 @@ static void window_new_ride_paint_ride_information(rct_window *w, rct_drawpixeli
} else {
price *= RCT2_ADDRESS(0x0099DA34, uint32)[unk2];
}
price = (price >> 17) * 10 * RCT2_GLOBAL(0x0097D21D + (item.type * 8), uint8);
price = (price >> 17) * 10 * RideData5[item.type].price;
//
rct_string_id stringId = 1691;

View File

@ -2328,7 +2328,7 @@ static void sub_6CBCE2(
x = originX + offsetX;
y = originY + offsetY;
baseZ = (originZ + trackBlock->z) >> 3;
clearanceZ = ((trackBlock->var_07 + RCT2_GLOBAL(0x0097D219 + (ride->type * 8), uint8)) >> 3) + baseZ + 4;
clearanceZ = ((trackBlock->var_07 + RideData5[ride->type].clearance_height) >> 3) + baseZ + 4;
int tileX = x >> 5;
int tileY = y >> 5;

View File

@ -1682,7 +1682,7 @@ static money32 map_set_land_height(int flags, int x, int y, int height, int styl
int rideIndex = mapElement->properties.track.ride_index;
int maxHeight = get_ride_entry_by_ride(get_ride(rideIndex))->max_height;
if(maxHeight == 0)
maxHeight = RCT2_GLOBAL(0x97D218 + 8 * get_ride(rideIndex)->type, uint8);
maxHeight = RideData5[get_ride(rideIndex)->type].max_height;
int zDelta = mapElement->clearance_height - height;
if(zDelta >= 0 && zDelta/2 > maxHeight)
{