Integrate track pricing

This commit is contained in:
Marijn van der Werf 2016-08-07 14:16:51 +02:00
parent ba4df424cb
commit 897fc0591b
5 changed files with 529 additions and 8 deletions

View File

@ -1395,8 +1395,8 @@ static money32 track_place(int rideIndex, int type, int originX, int originY, in
money32 price = RideTrackCosts[ride->type].track_price;
price *= (rideTypeFlags & RIDE_TYPE_FLAG_FLAT_RIDE) ?
RCT2_ADDRESS(0x0099DE34, money32)[type] :
RCT2_ADDRESS(0x0099DA34, money32)[type];
FlatRideTrackPricing[type] :
TrackPricing[type];
price >>= 16;
price = cost + ((price / 2) * 10);
@ -1675,10 +1675,10 @@ static money32 track_remove(uint8 type, uint8 sequence, sint16 originX, sint16 o
money32 price = RideTrackCosts[ride->type].track_price;
if (ride_type_has_flag(ride->type, RIDE_TYPE_FLAG_FLAT_RIDE)) {
price *= RCT2_ADDRESS(0x0099DE34, money32)[type];
price *= FlatRideTrackPricing[type];
}
else {
price *= RCT2_ADDRESS(0x0099DA34, money32)[type];
price *= TrackPricing[type];
}
price >>= 16;
price = (price + cost) / 2;
@ -1833,7 +1833,7 @@ static money32 set_maze_track(uint16 x, uint8 flags, uint8 direction, uint16 y,
rct_ride *ride = get_ride(rideIndex);
money32 price = (((RideTrackCosts[ride->type].track_price * RCT2_GLOBAL(0x0099DBC8, money32)) >> 16));
money32 price = (((RideTrackCosts[ride->type].track_price * TrackPricing[TRACK_ELEM_MAZE]) >> 16));
RCT2_GLOBAL(0x00F4413E, money32) = price / 2 * 10;
if (!(flags & GAME_COMMAND_FLAG_APPLY)) {

View File

@ -30439,3 +30439,520 @@ const sint16 AlternativeTrackTypes[256] = {
-1,
-1,
};
/** rct2: 0x0099DA34 */
const money32 TrackPricing[] = {
65536, // TRACK_ELEM_FLAT
98304, // TRACK_ELEM_END_STATION
98304, // TRACK_ELEM_BEGIN_STATION
98304, // TRACK_ELEM_MIDDLE_STATION
79872, // TRACK_ELEM_25_DEG_UP
114688, // TRACK_ELEM_60_DEG_UP
73728, // TRACK_ELEM_FLAT_TO_25_DEG_UP
96256, // TRACK_ELEM_25_DEG_UP_TO_60_DEG_UP
96256, // TRACK_ELEM_60_DEG_UP_TO_25_DEG_UP
73728, // TRACK_ELEM_25_DEG_UP_TO_FLAT
79872, // TRACK_ELEM_25_DEG_DOWN
114688, // TRACK_ELEM_60_DEG_DOWN
73728, // TRACK_ELEM_FLAT_TO_25_DEG_DOWN
96256, // TRACK_ELEM_25_DEG_DOWN_TO_60_DEG_DOWN
96256, // TRACK_ELEM_60_DEG_DOWN_TO_25_DEG_DOWN
73728, // TRACK_ELEM_25_DEG_DOWN_TO_FLAT
257359, // TRACK_ELEM_LEFT_QUARTER_TURN_5_TILES
257359, // TRACK_ELEM_RIGHT_QUARTER_TURN_5_TILES
69632, // TRACK_ELEM_FLAT_TO_LEFT_BANK
69632, // TRACK_ELEM_FLAT_TO_RIGHT_BANK
69632, // TRACK_ELEM_LEFT_BANK_TO_FLAT
69632, // TRACK_ELEM_RIGHT_BANK_TO_FLAT
273443, // TRACK_ELEM_BANKED_LEFT_QUARTER_TURN_5_TILES
273443, // TRACK_ELEM_BANKED_RIGHT_QUARTER_TURN_5_TILES
78336, // TRACK_ELEM_LEFT_BANK_TO_25_DEG_UP
78336, // TRACK_ELEM_RIGHT_BANK_TO_25_DEG_UP
78336, // TRACK_ELEM_25_DEG_UP_TO_LEFT_BANK
78336, // TRACK_ELEM_25_DEG_UP_TO_RIGHT_BANK
78336, // TRACK_ELEM_LEFT_BANK_TO_25_DEG_DOWN
78336, // TRACK_ELEM_RIGHT_BANK_TO_25_DEG_DOWN
78336, // TRACK_ELEM_25_DEG_DOWN_TO_LEFT_BANK
78336, // TRACK_ELEM_25_DEG_DOWN_TO_RIGHT_BANK
69632, // TRACK_ELEM_LEFT_BANK
69632, // TRACK_ELEM_RIGHT_BANK
313656, // TRACK_ELEM_LEFT_QUARTER_TURN_5_TILES_25_DEG_UP
313656, // TRACK_ELEM_RIGHT_QUARTER_TURN_5_TILES_25_DEG_UP
313656, // TRACK_ELEM_LEFT_QUARTER_TURN_5_TILES_25_DEG_DOWN
313656, // TRACK_ELEM_RIGHT_QUARTER_TURN_5_TILES_25_DEG_DOWN
229376, // TRACK_ELEM_S_BEND_LEFT
229376, // TRACK_ELEM_S_BEND_RIGHT
491520, // TRACK_ELEM_LEFT_VERTICAL_LOOP
491520, // TRACK_ELEM_RIGHT_VERTICAL_LOOP
154415, // TRACK_ELEM_LEFT_QUARTER_TURN_3_TILES
154415, // TRACK_ELEM_RIGHT_QUARTER_TURN_3_TILES
164065, // TRACK_ELEM_LEFT_QUARTER_TURN_3_TILES_BANK
164065, // TRACK_ELEM_RIGHT_QUARTER_TURN_3_TILES_BANK
270226, // TRACK_ELEM_LEFT_QUARTER_TURN_3_TILES_25_DEG_UP
270226, // TRACK_ELEM_RIGHT_QUARTER_TURN_3_TILES_25_DEG_UP
270226, // TRACK_ELEM_LEFT_QUARTER_TURN_3_TILES_25_DEG_DOWN
270226, // TRACK_ELEM_RIGHT_QUARTER_TURN_3_TILES_25_DEG_DOWN
51471, // TRACK_ELEM_LEFT_QUARTER_TURN_1_TILE
51471, // TRACK_ELEM_RIGHT_QUARTER_TURN_1_TILE
212992, // TRACK_ELEM_LEFT_TWIST_DOWN_TO_UP
212992, // TRACK_ELEM_RIGHT_TWIST_DOWN_TO_UP
212992, // TRACK_ELEM_LEFT_TWIST_UP_TO_DOWN
212992, // TRACK_ELEM_RIGHT_TWIST_UP_TO_DOWN
294912, // TRACK_ELEM_HALF_LOOP_UP
294912, // TRACK_ELEM_HALF_LOOP_DOWN
229376, // TRACK_ELEM_LEFT_CORKSCREW_UP
229376, // TRACK_ELEM_RIGHT_CORKSCREW_UP
229376, // TRACK_ELEM_LEFT_CORKSCREW_DOWN
229376, // TRACK_ELEM_RIGHT_CORKSCREW_DOWN
98304, // TRACK_ELEM_FLAT_TO_60_DEG_UP
98304, // TRACK_ELEM_60_DEG_UP_TO_FLAT
98304, // TRACK_ELEM_FLAT_TO_60_DEG_DOWN
98304, // TRACK_ELEM_60_DEG_DOWN_TO_FLAT
524288, // TRACK_ELEM_TOWER_BASE
65536, // TRACK_ELEM_TOWER_SECTION
69632, // TRACK_ELEM_FLAT_COVERED
83968, // TRACK_ELEM_25_DEG_UP_COVERED
118784, // TRACK_ELEM_60_DEG_UP_COVERED
77824, // TRACK_ELEM_FLAT_TO_25_DEG_UP_COVERED
100352, // TRACK_ELEM_25_DEG_UP_TO_60_DEG_UP_COVERED
100352, // TRACK_ELEM_60_DEG_UP_TO_25_DEG_UP_COVERED
77824, // TRACK_ELEM_25_DEG_UP_TO_FLAT_COVERED
83968, // TRACK_ELEM_25_DEG_DOWN_COVERED
118784, // TRACK_ELEM_60_DEG_DOWN_COVERED
77824, // TRACK_ELEM_FLAT_TO_25_DEG_DOWN_COVERED
100352, // TRACK_ELEM_25_DEG_DOWN_TO_60_DEG_DOWN_COVERED
100352, // TRACK_ELEM_60_DEG_DOWN_TO_25_DEG_DOWN_COVERED
77824, // TRACK_ELEM_25_DEG_DOWN_TO_FLAT_COVERED
261455, // TRACK_ELEM_LEFT_QUARTER_TURN_5_TILES_COVERED
261455, // TRACK_ELEM_RIGHT_QUARTER_TURN_5_TILES_COVERED
233472, // TRACK_ELEM_S_BEND_LEFT_COVERED
233472, // TRACK_ELEM_S_BEND_RIGHT_COVERED
158511, // TRACK_ELEM_LEFT_QUARTER_TURN_3_TILES_COVERED
158511, // TRACK_ELEM_RIGHT_QUARTER_TURN_3_TILES_COVERED
328192, // TRACK_ELEM_LEFT_HALF_BANKED_HELIX_UP_SMALL
328192, // TRACK_ELEM_RIGHT_HALF_BANKED_HELIX_UP_SMALL
328192, // TRACK_ELEM_LEFT_HALF_BANKED_HELIX_DOWN_SMALL
328192, // TRACK_ELEM_RIGHT_HALF_BANKED_HELIX_DOWN_SMALL
547072, // TRACK_ELEM_LEFT_HALF_BANKED_HELIX_UP_LARGE
547072, // TRACK_ELEM_RIGHT_HALF_BANKED_HELIX_UP_LARGE
547072, // TRACK_ELEM_LEFT_HALF_BANKED_HELIX_DOWN_LARGE
547072, // TRACK_ELEM_RIGHT_HALF_BANKED_HELIX_DOWN_LARGE
126976, // TRACK_ELEM_LEFT_QUARTER_TURN_1_TILE_60_DEG_UP
126976, // TRACK_ELEM_RIGHT_QUARTER_TURN_1_TILE_60_DEG_UP
126976, // TRACK_ELEM_LEFT_QUARTER_TURN_1_TILE_60_DEG_DOWN
126976, // TRACK_ELEM_RIGHT_QUARTER_TURN_1_TILE_60_DEG_DOWN
90112, // TRACK_ELEM_BRAKES
77824, // TRACK_ELEM_ROTATION_CONTROL_TOGGLE
65536, // TRACK_ELEM_INVERTED_90_DEG_UP_TO_FLAT_QUARTER_LOOP / TRACK_ELEM_MAZE
273539, // TRACK_ELEM_LEFT_QUARTER_BANKED_HELIX_LARGE_UP
273539, // TRACK_ELEM_RIGHT_QUARTER_BANKED_HELIX_LARGE_UP
273539, // TRACK_ELEM_LEFT_QUARTER_BANKED_HELIX_LARGE_DOWN
273539, // TRACK_ELEM_RIGHT_QUARTER_BANKED_HELIX_LARGE_DOWN
273539, // TRACK_ELEM_LEFT_QUARTER_HELIX_LARGE_UP
273539, // TRACK_ELEM_RIGHT_QUARTER_HELIX_LARGE_UP
273539, // TRACK_ELEM_LEFT_QUARTER_HELIX_LARGE_DOWN
273539, // TRACK_ELEM_RIGHT_QUARTER_HELIX_LARGE_DOWN
83968, // TRACK_ELEM_25_DEG_UP_LEFT_BANKED
83968, // TRACK_ELEM_25_DEG_UP_RIGHT_BANKED
143360, // TRACK_ELEM_WATERFALL
118784, // TRACK_ELEM_RAPIDS
196608, // TRACK_ELEM_ON_RIDE_PHOTO
83968, // TRACK_ELEM_25_DEG_DOWN_LEFT_BANKED
83968, // TRACK_ELEM_25_DEG_DOWN_RIGHT_BANKED
393216, // TRACK_ELEM_WATER_SPLASH
376832, // TRACK_ELEM_FLAT_TO_60_DEG_UP_LONG_BASE
376832, // TRACK_ELEM_60_DEG_UP_TO_FLAT_LONG_BASE
126976, // TRACK_ELEM_WHIRLPOOL
376832, // TRACK_ELEM_FLAT_TO_60_DEG_DOWN_LONG_BASE
376832, // TRACK_ELEM_60_DEG_UP_TO_FLAT_LONG_BASE_122
643072, // TRACK_ELEM_CABLE_LIFT_HILL
491520, // TRACK_ELEM_REVERSE_WHOA_BELLY_SLOPE
65536, // TRACK_ELEM_REVERSE_WHOA_BELLY_VERTICAL
69632, // TRACK_ELEM_90_DEG_UP
69632, // TRACK_ELEM_90_DEG_DOWN
114688, // TRACK_ELEM_60_DEG_UP_TO_90_DEG_UP
114688, // TRACK_ELEM_90_DEG_DOWN_TO_60_DEG_DOWN
114688, // TRACK_ELEM_90_DEG_UP_TO_60_DEG_UP
114688, // TRACK_ELEM_60_DEG_DOWN_TO_90_DEG_DOWN
147456, // TRACK_ELEM_BRAKE_FOR_DROP
180151, // TRACK_ELEM_LEFT_EIGHTH_TO_DIAG
180151, // TRACK_ELEM_RIGHT_EIGHTH_TO_DIAG
180151, // TRACK_ELEM_LEFT_EIGHTH_TO_ORTHOGONAL
180151, // TRACK_ELEM_RIGHT_EIGHTH_TO_ORTHOGONAL
190960, // TRACK_ELEM_LEFT_EIGHTH_BANK_TO_DIAG
190960, // TRACK_ELEM_RIGHT_EIGHTH_BANK_TO_DIAG
190960, // TRACK_ELEM_LEFT_EIGHTH_BANK_TO_ORTHOGONAL
190960, // TRACK_ELEM_RIGHT_EIGHTH_BANK_TO_ORTHOGONAL
92681, // TRACK_ELEM_DIAG_FLAT
111820, // TRACK_ELEM_DIAG_25_DEG_UP
147456, // TRACK_ELEM_DIAG_60_DEG_UP
102400, // TRACK_ELEM_DIAG_FLAT_TO_25_DEG_UP
129024, // TRACK_ELEM_DIAG_25_DEG_UP_TO_60_DEG_UP
129024, // TRACK_ELEM_DIAG_60_DEG_UP_TO_25_DEG_UP
102400, // TRACK_ELEM_DIAG_25_DEG_UP_TO_FLAT
111820, // TRACK_ELEM_DIAG_25_DEG_DOWN
147456, // TRACK_ELEM_DIAG_60_DEG_DOWN
102400, // TRACK_ELEM_DIAG_FLAT_TO_25_DEG_DOWN
129024, // TRACK_ELEM_DIAG_25_DEG_DOWN_TO_60_DEG_DOWN
129024, // TRACK_ELEM_DIAG_60_DEG_DOWN_TO_25_DEG_DOWN
102400, // TRACK_ELEM_DIAG_25_DEG_DOWN_TO_FLAT
107008, // TRACK_ELEM_DIAG_FLAT_TO_60_DEG_UP
107008, // TRACK_ELEM_DIAG_60_DEG_UP_TO_FLAT
107008, // TRACK_ELEM_DIAG_FLAT_TO_60_DEG_DOWN
107008, // TRACK_ELEM_DIAG_60_DEG_DOWN_TO_FLAT
96777, // TRACK_ELEM_DIAG_FLAT_TO_LEFT_BANK
96777, // TRACK_ELEM_DIAG_FLAT_TO_RIGHT_BANK
96777, // TRACK_ELEM_DIAG_LEFT_BANK_TO_FLAT
96777, // TRACK_ELEM_DIAG_RIGHT_BANK_TO_FLAT
106496, // TRACK_ELEM_DIAG_LEFT_BANK_TO_25_DEG_UP
106496, // TRACK_ELEM_DIAG_RIGHT_BANK_TO_25_DEG_UP
106496, // TRACK_ELEM_DIAG_25_DEG_UP_TO_LEFT_BANK
106496, // TRACK_ELEM_DIAG_25_DEG_UP_TO_RIGHT_BANK
106496, // TRACK_ELEM_DIAG_LEFT_BANK_TO_25_DEG_DOWN
106496, // TRACK_ELEM_DIAG_RIGHT_BANK_TO_25_DEG_DOWN
106496, // TRACK_ELEM_DIAG_25_DEG_DOWN_TO_LEFT_BANK
106496, // TRACK_ELEM_DIAG_25_DEG_DOWN_TO_RIGHT_BANK
96777, // TRACK_ELEM_DIAG_LEFT_BANK
96777, // TRACK_ELEM_DIAG_RIGHT_BANK
282624, // TRACK_ELEM_LOG_FLUME_REVERSER
217088, // TRACK_ELEM_SPINNING_TUNNEL
221184, // TRACK_ELEM_LEFT_BARREL_ROLL_UP_TO_DOWN
221184, // TRACK_ELEM_RIGHT_BARREL_ROLL_UP_TO_DOWN
221184, // TRACK_ELEM_LEFT_BARREL_ROLL_DOWN_TO_UP
221184, // TRACK_ELEM_RIGHT_BARREL_ROLL_DOWN_TO_UP
270226, // TRACK_ELEM_LEFT_BANK_TO_LEFT_QUARTER_TURN_3_TILES_25_DEG_UP
270226, // TRACK_ELEM_RIGHT_BANK_TO_RIGHT_QUARTER_TURN_3_TILES_25_DEG_UP
270226, // TRACK_ELEM_LEFT_QUARTER_TURN_3_TILES_25_DEG_DOWN_TO_LEFT_BANK
270226, // TRACK_ELEM_RIGHT_QUARTER_TURN_3_TILES_25_DEG_DOWN_TO_RIGHT_BANK
96384, // TRACK_ELEM_POWERED_LIFT
884736, // TRACK_ELEM_LEFT_LARGE_HALF_LOOP_UP
884736, // TRACK_ELEM_RIGHT_LARGE_HALF_LOOP_UP
884736, // TRACK_ELEM_RIGHT_LARGE_HALF_LOOP_DOWN
884736, // TRACK_ELEM_LEFT_LARGE_HALF_LOOP_DOWN
221184, // TRACK_ELEM_LEFT_FLYER_TWIST_UP
221184, // TRACK_ELEM_RIGHT_FLYER_TWIST_UP
221184, // TRACK_ELEM_LEFT_FLYER_TWIST_DOWN
221184, // TRACK_ELEM_RIGHT_FLYER_TWIST_DOWN
294912, // TRACK_ELEM_FLYER_HALF_LOOP_UP
294912, // TRACK_ELEM_FLYER_HALF_LOOP_DOWN
229376, // TRACK_ELEM_LEFT_FLYER_CORKSCREW_UP
229376, // TRACK_ELEM_RIGHT_FLYER_CORKSCREW_UP
229376, // TRACK_ELEM_LEFT_FLYER_CORKSCREW_DOWN
229376, // TRACK_ELEM_RIGHT_FLYER_CORKSCREW_DOWN
294912, // TRACK_ELEM_HEARTLINE_TRANSFER_UP
294912, // TRACK_ELEM_HEARTLINE_TRANSFER_DOWN
417792, // TRACK_ELEM_LEFT_HEARTLINE_ROLL
417792, // TRACK_ELEM_RIGHT_HEARTLINE_ROLL
159744, // TRACK_ELEM_MINI_GOLF_HOLE_A
167936, // TRACK_ELEM_MINI_GOLF_HOLE_B
172032, // TRACK_ELEM_MINI_GOLF_HOLE_C
184320, // TRACK_ELEM_MINI_GOLF_HOLE_D
184320, // TRACK_ELEM_MINI_GOLF_HOLE_E
360448, // TRACK_ELEM_MULTIDIM_INVERTED_FLAT_TO_90_DEG_QUARTER_LOOP_DOWN
360448, // TRACK_ELEM_90_DEG_TO_INVERTED_FLAT_QUARTER_LOOP_UP
360448, // TRACK_ELEM_INVERTED_FLAT_TO_90_DEG_QUARTER_LOOP_DOWN
270226, // TRACK_ELEM_LEFT_CURVED_LIFT_HILL
270226, // TRACK_ELEM_RIGHT_CURVED_LIFT_HILL
393216, // TRACK_ELEM_LEFT_REVERSER
393216, // TRACK_ELEM_RIGHT_REVERSER
65536, // TRACK_ELEM_AIR_THRUST_TOP_CAP
65536, // TRACK_ELEM_AIR_THRUST_VERTICAL_DOWN
491520, // TRACK_ELEM_AIR_THRUST_VERTICAL_DOWN_TO_LEVEL
94208, // TRACK_ELEM_BLOCK_BRAKES
287115, // TRACK_ELEM_LEFT_BANKED_QUARTER_TURN_3_TILE_25_DEG_UP
287115, // TRACK_ELEM_RIGHT_BANKED_QUARTER_TURN_3_TILE_25_DEG_UP
287115, // TRACK_ELEM_LEFT_BANKED_QUARTER_TURN_3_TILE_25_DEG_DOWN
287115, // TRACK_ELEM_RIGHT_BANKED_QUARTER_TURN_3_TILE_25_DEG_DOWN
333259, // TRACK_ELEM_LEFT_BANKED_QUARTER_TURN_5_TILE_25_DEG_UP
333259, // TRACK_ELEM_RIGHT_BANKED_QUARTER_TURN_5_TILE_25_DEG_UP
333259, // TRACK_ELEM_LEFT_BANKED_QUARTER_TURN_5_TILE_25_DEG_DOWN
333259, // TRACK_ELEM_RIGHT_BANKED_QUARTER_TURN_5_TILE_25_DEG_DOWN
83968, // TRACK_ELEM_25_DEG_UP_TO_LEFT_BANKED_25_DEG_UP
83968, // TRACK_ELEM_25_DEG_UP_TO_RIGHT_BANKED_25_DEG_UP
83968, // TRACK_ELEM_LEFT_BANKED_25_DEG_UP_TO_25_DEG_UP
83968, // TRACK_ELEM_RIGHT_BANKED_25_DEG_UP_TO_25_DEG_UP
83968, // TRACK_ELEM_25_DEG_DOWN_TO_LEFT_BANKED_25_DEG_DOWN
83968, // TRACK_ELEM_25_DEG_DOWN_TO_RIGHT_BANKED_25_DEG_DOWN
83968, // TRACK_ELEM_LEFT_BANKED_25_DEG_DOWN_TO_25_DEG_DOWN
83968, // TRACK_ELEM_RIGHT_BANKED_25_DEG_DOWN_TO_25_DEG_DOWN
77824, // TRACK_ELEM_LEFT_BANKED_FLAT_TO_LEFT_BANKED_25_DEG_UP
77824, // TRACK_ELEM_RIGHT_BANKED_FLAT_TO_RIGHT_BANKED_25_DEG_UP
77824, // TRACK_ELEM_LEFT_BANKED_25_DEG_UP_TO_LEFT_BANKED_FLAT
77824, // TRACK_ELEM_RIGHT_BANKED_25_DEG_UP_TO_RIGHT_BANKED_FLAT
77824, // TRACK_ELEM_LEFT_BANKED_FLAT_TO_LEFT_BANKED_25_DEG_DOWN
77824, // TRACK_ELEM_RIGHT_BANKED_FLAT_TO_RIGHT_BANKED_25_DEG_DOWN
77824, // TRACK_ELEM_LEFT_BANKED_25_DEG_DOWN_TO_LEFT_BANKED_FLAT
77824, // TRACK_ELEM_RIGHT_BANKED_25_DEG_DOWN_TO_RIGHT_BANKED_FLAT
77824, // TRACK_ELEM_FLAT_TO_LEFT_BANKED_25_DEG_UP
77824, // TRACK_ELEM_FLAT_TO_RIGHT_BANKED_25_DEG_UP
77824, // TRACK_ELEM_LEFT_BANKED_25_DEG_UP_TO_FLAT
77824, // TRACK_ELEM_RIGHT_BANKED_25_DEG_UP_TO_FLAT
77824, // TRACK_ELEM_FLAT_TO_LEFT_BANKED_25_DEG_DOWN
77824, // TRACK_ELEM_FLAT_TO_RIGHT_BANKED_25_DEG_DOWN
77824, // TRACK_ELEM_LEFT_BANKED_25_DEG_DOWN_TO_FLAT
77824, // TRACK_ELEM_RIGHT_BANKED_25_DEG_DOWN_TO_FLAT
151552, // TRACK_ELEM_LEFT_QUARTER_TURN_1_TILE_90_DEG_UP
151552, // TRACK_ELEM_RIGHT_QUARTER_TURN_1_TILE_90_DEG_UP
151552, // TRACK_ELEM_LEFT_QUARTER_TURN_1_TILE_90_DEG_DOWN
151552, // TRACK_ELEM_RIGHT_QUARTER_TURN_1_TILE_90_DEG_DOWN
360448, // TRACK_ELEM_MULTIDIM_90_DEG_UP_TO_INVERTED_FLAT_QUARTER_LOOP
360448, // TRACK_ELEM_MULTIDIM_FLAT_TO_90_DEG_DOWN_QUARTER_LOOP
360448, //
};
/** rct2: 0x0099DE34 */
const money32 FlatRideTrackPricing[] = {
65536,
98304,
98304,
98304,
79872,
114688,
73728,
96256,
96256,
73728,
79872,
114688,
73728,
96256,
96256,
73728,
257359,
257359,
69632,
69632,
69632,
69632,
273443,
273443,
78336,
78336,
78336,
78336,
78336,
78336,
78336,
78336,
69632,
69632,
313656,
313656,
313656,
313656,
229376,
229376,
491520,
491520,
154415,
154415,
164065,
164065,
270226,
270226,
270226,
270226,
51471,
51471,
212992,
212992,
212992,
212992,
294912,
294912,
229376,
229376,
229376,
229376,
98304,
98304,
98304,
98304,
524288,
65536,
69632,
83968,
118784,
77824,
100352,
100352,
77824,
83968,
118784,
77824,
100352,
100352,
77824,
261455,
261455,
233472,
233472,
158511,
158511,
328192,
328192,
328192,
328192,
547072,
547072,
547072,
547072,
262144, // FLAT_TRACK_ELEM_1_X_4_A
126976,
126976,
126976,
90112,
77824,
65536,
273539,
273539,
273539,
273539,
273539,
273539,
273539,
273539,
262144, // FLAT_TRACK_ELEM_2_X_2
1048576, // FLAT_TRACK_ELEM_4_X_4
143360,
118784,
196608,
524288,
327680, // FLAT_TRACK_ELEM_1_X_5
393216,
65536, // FLAT_TRACK_ELEM_1_X_1_A
262144, // FLAT_TRACK_ELEM_1_X_4_B
126976,
65536, // FLAT_TRACK_ELEM_1_X_1_B
262144, // FLAT_TRACK_ELEM_1_X_4_C
524288, // FLAT_TRACK_ELEM_3_X_3
491520,
65536,
69632,
69632,
114688,
114688,
114688,
114688,
147456,
180151,
180151,
180151,
180151,
190960,
190960,
190960,
190960,
92681,
111820,
147456,
102400,
129024,
129024,
102400,
111820,
147456,
102400,
129024,
129024,
102400,
107008,
107008,
107008,
107008,
96777,
96777,
96777,
96777,
106496,
106496,
106496,
106496,
106496,
106496,
106496,
106496,
96777,
96777,
282624,
217088,
221184,
221184,
221184,
221184,
270226,
270226,
270226,
270226,
96384,
884736,
884736,
884736,
884736,
221184,
221184,
221184,
221184,
294912,
294912,
229376,
229376,
229376,
229376,
294912,
294912,
417792,
417792,
159744,
167936,
172032,
184320,
184320,
159744,
159744,
159744,
270226,
270226,
393216,
393216,
65536,
65536,
491520,
94208,
287115,
287115,
287115,
287115,
333259,
333259,
333259,
333259,
83968,
83968,
83968,
83968,
83968,
83968,
83968,
83968,
77824,
77824,
77824,
77824,
77824,
77824,
77824,
77824,
77824,
77824,
77824,
77824,
77824,
77824,
77824,
77824,
151552,
151552,
151552,
151552,
};

View File

@ -60,3 +60,6 @@ typedef struct {
extern const rct_vehicle_info_list **gTrackVehicleInfo[17];
extern const sint16 AlternativeTrackTypes[256];
extern const money32 TrackPricing[256];
extern const money32 FlatRideTrackPricing[256];

View File

@ -1582,7 +1582,7 @@ static money32 place_maze_design(uint8 flags, uint8 rideIndex, uint16 mazeEntry,
// Calculate price
money32 price = 0;
if (!(gParkFlags & PARK_FLAGS_NO_MONEY)) {
price = RideTrackCosts[ride->type].track_price * RCT2_GLOBAL(0x0099DBC8, money32);
price = RideTrackCosts[ride->type].track_price * TrackPricing[TRACK_ELEM_MAZE];
price = (price >> 17) * 10;
}

View File

@ -33,6 +33,7 @@
#include "../world/scenery.h"
#include "../ride/ride_data.h"
#include "../sprites.h"
#include "../ride/track_data.h"
#define _window_new_ride_current_tab RCT2_GLOBAL(RCT2_ADDRESS_WINDOW_RIDE_LIST_SELECTED_TAB, uint8)
@ -912,9 +913,9 @@ static void window_new_ride_paint_ride_information(rct_window *w, rct_drawpixeli
int unk2 = RideConstructionDefaultTrackType[item.type];
money32 price = RideTrackCosts[item.type].track_price;
if (ride_type_has_flag(item.type, RIDE_TYPE_FLAG_FLAT_RIDE)) {
price *= RCT2_ADDRESS(0x0099DE34, uint32)[unk2];
price *= FlatRideTrackPricing[unk2];
} else {
price *= RCT2_ADDRESS(0x0099DA34, uint32)[unk2];
price *= TrackPricing[unk2];
}
price = (price >> 17) * 10 * RideData5[item.type].price;