Include RideConstructionDefaultTrackType

This commit is contained in:
Marijn van der Werf 2016-08-05 14:11:25 +02:00 committed by Ted John
parent 082e4c76fa
commit 9288029bd6
5 changed files with 104 additions and 6 deletions

View File

@ -1429,7 +1429,7 @@ static void ride_construction_reset_current_piece()
ride = get_ride(_currentRideIndex);
if (!ride_type_has_flag(ride->type, RIDE_TYPE_FLAG_HAS_NO_TRACK) || ride->num_stations == 0) {
_currentTrackCurve = RCT2_GLOBAL(0x0097CC68 + (ride->type * 2), uint8) | 0x100;
_currentTrackCurve = RideConstructionDefaultTrackType[ride->type] | 0x100;
_currentTrackSlopeEnd = 0;
_currentTrackBankEnd = 0;
_currentTrackLiftHill = 0;
@ -1882,7 +1882,7 @@ int sub_6CC3FB(int rideIndex)
ride = get_ride(_currentRideIndex);
_currentTrackCurve = RCT2_ADDRESS(0x0097CC68, uint8)[ride->type * 2] | 0x100;
_currentTrackCurve = RideConstructionDefaultTrackType[ride->type] | 0x100;
_currentTrackSlopeEnd = 0;
_currentTrackBankEnd = 0;
_currentTrackLiftHill = 0;
@ -4578,8 +4578,8 @@ static rct_vehicle *vehicle_create_car(
direction = 4;
} else {
if (ride_type_has_flag(ride->type, RIDE_TYPE_FLAG_16)) {
if (RCT2_GLOBAL(0x0097CC68 + (ride->type * 2), uint8) != FLAT_TRACK_ELEM_1_X_4_B) {
if (RCT2_GLOBAL(0x0097CC68 + (ride->type * 2), uint8) != FLAT_TRACK_ELEM_1_X_4_A) {
if (RideConstructionDefaultTrackType[ride->type] != FLAT_TRACK_ELEM_1_X_4_B) {
if (RideConstructionDefaultTrackType[ride->type] != FLAT_TRACK_ELEM_1_X_4_A) {
if (ride->type == RIDE_TYPE_ENTERPRISE) {
direction += 5;
} else {

View File

@ -27,6 +27,7 @@
#include "../localisation/localisation.h"
#include "ride.h"
#include "ride_data.h"
#include "track.h"
#include "../audio/audio.h"
#include "../sprites.h"
@ -2387,3 +2388,98 @@ const rct_shop_item_stats ShopItemStats[SHOP_ITEM_COUNT] = {
{ 5, 16, 16, 20 }, // SHOP_ITEM_ROAST_SAUSAGE
{ 0, 0, 0, 0 }, // SHOP_ITEM_EMPTY_BOWL_BLUE
};
/** rct2: 0x0097CC68 */
const uint8 RideConstructionDefaultTrackType[] = {
TRACK_ELEM_END_STATION, // RIDE_TYPE_SPIRAL_ROLLER_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_STAND_UP_ROLLER_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_SUSPENDED_SWINGING_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_INVERTED_ROLLER_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_JUNIOR_ROLLER_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_MINIATURE_RAILWAY
TRACK_ELEM_END_STATION, // RIDE_TYPE_MONORAIL
TRACK_ELEM_END_STATION, // RIDE_TYPE_MINI_SUSPENDED_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_BOAT_RIDE
TRACK_ELEM_END_STATION, // RIDE_TYPE_WOODEN_WILD_MOUSE
TRACK_ELEM_END_STATION, // RIDE_TYPE_STEEPLECHASE
TRACK_ELEM_END_STATION, // RIDE_TYPE_CAR_RIDE
TRACK_ELEM_TOWER_BASE, // RIDE_TYPE_LAUNCHED_FREEFALL
TRACK_ELEM_END_STATION, // RIDE_TYPE_BOBSLEIGH_COASTER
TRACK_ELEM_TOWER_BASE, // RIDE_TYPE_OBSERVATION_TOWER
TRACK_ELEM_END_STATION, // RIDE_TYPE_LOOPING_ROLLER_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_DINGHY_SLIDE
TRACK_ELEM_END_STATION, // RIDE_TYPE_MINE_TRAIN_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_CHAIRLIFT
TRACK_ELEM_END_STATION, // RIDE_TYPE_CORKSCREW_ROLLER_COASTER
TRACK_ELEM_MAZE, // RIDE_TYPE_MAZE
FLAT_TRACK_ELEM_2_X_2, // RIDE_TYPE_SPIRAL_SLIDE
TRACK_ELEM_END_STATION, // RIDE_TYPE_GO_KARTS
TRACK_ELEM_END_STATION, // RIDE_TYPE_LOG_FLUME
TRACK_ELEM_END_STATION, // RIDE_TYPE_RIVER_RAPIDS
FLAT_TRACK_ELEM_4_X_4, // RIDE_TYPE_DODGEMS
FLAT_TRACK_ELEM_1_X_5, // RIDE_TYPE_PIRATE_SHIP
FLAT_TRACK_ELEM_1_X_4_B, // RIDE_TYPE_SWINGING_INVERTER_SHIP
FLAT_TRACK_ELEM_1_X_1_A, // RIDE_TYPE_FOOD_STALL
FLAT_TRACK_ELEM_1_X_1_B, // RIDE_TYPE_1D
FLAT_TRACK_ELEM_1_X_1_A, // RIDE_TYPE_DRINK_STALL
FLAT_TRACK_ELEM_1_X_1_B, // RIDE_TYPE_1F
FLAT_TRACK_ELEM_1_X_1_A, // RIDE_TYPE_SHOP
FLAT_TRACK_ELEM_3_X_3, // RIDE_TYPE_MERRY_GO_ROUND
FLAT_TRACK_ELEM_1_X_1_B, // RIDE_TYPE_22
FLAT_TRACK_ELEM_1_X_1_B, // RIDE_TYPE_INFORMATION_KIOSK
FLAT_TRACK_ELEM_1_X_1_A, // RIDE_TYPE_TOILETS
FLAT_TRACK_ELEM_1_X_4_C, // RIDE_TYPE_FERRIS_WHEEL
FLAT_TRACK_ELEM_2_X_2, // RIDE_TYPE_MOTION_SIMULATOR
FLAT_TRACK_ELEM_3_X_3, // RIDE_TYPE_3D_CINEMA
FLAT_TRACK_ELEM_3_X_3, // RIDE_TYPE_TOP_SPIN
FLAT_TRACK_ELEM_3_X_3, // RIDE_TYPE_SPACE_RINGS
TRACK_ELEM_END_STATION, // RIDE_TYPE_REVERSE_FREEFALL_COASTER
TRACK_ELEM_TOWER_BASE, // RIDE_TYPE_LIFT
TRACK_ELEM_END_STATION, // RIDE_TYPE_VERTICAL_DROP_ROLLER_COASTER
FLAT_TRACK_ELEM_1_X_1_A, // RIDE_TYPE_CASH_MACHINE
FLAT_TRACK_ELEM_3_X_3, // RIDE_TYPE_TWIST
FLAT_TRACK_ELEM_3_X_3, // RIDE_TYPE_HAUNTED_HOUSE
FLAT_TRACK_ELEM_1_X_1_A, // RIDE_TYPE_FIRST_AID
FLAT_TRACK_ELEM_3_X_3, // RIDE_TYPE_CIRCUS_SHOW
TRACK_ELEM_END_STATION, // RIDE_TYPE_GHOST_TRAIN
TRACK_ELEM_END_STATION, // RIDE_TYPE_TWISTER_ROLLER_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_WOODEN_ROLLER_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_SIDE_FRICTION_ROLLER_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_WILD_MOUSE
TRACK_ELEM_END_STATION, // RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_38
TRACK_ELEM_END_STATION, // RIDE_TYPE_FLYING_ROLLER_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_3A
TRACK_ELEM_END_STATION, // RIDE_TYPE_VIRGINIA_REEL
TRACK_ELEM_END_STATION, // RIDE_TYPE_SPLASH_BOATS
TRACK_ELEM_END_STATION, // RIDE_TYPE_MINI_HELICOPTERS
TRACK_ELEM_END_STATION, // RIDE_TYPE_LAY_DOWN_ROLLER_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_SUSPENDED_MONORAIL
TRACK_ELEM_END_STATION, // RIDE_TYPE_40
TRACK_ELEM_END_STATION, // RIDE_TYPE_REVERSER_ROLLER_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_HEARTLINE_TWISTER_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_MINI_GOLF
TRACK_ELEM_END_STATION, // RIDE_TYPE_GIGA_COASTER
TRACK_ELEM_TOWER_BASE, // RIDE_TYPE_ROTO_DROP
FLAT_TRACK_ELEM_4_X_4, // RIDE_TYPE_FLYING_SAUCERS
FLAT_TRACK_ELEM_3_X_3, // RIDE_TYPE_CROOKED_HOUSE
TRACK_ELEM_END_STATION, // RIDE_TYPE_MONORAIL_CYCLES
TRACK_ELEM_END_STATION, // RIDE_TYPE_COMPACT_INVERTED_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_WATER_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_AIR_POWERED_VERTICAL_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_INVERTED_HAIRPIN_COASTER
FLAT_TRACK_ELEM_1_X_4_A, // RIDE_TYPE_MAGIC_CARPET
TRACK_ELEM_END_STATION, // RIDE_TYPE_SUBMARINE_RIDE
TRACK_ELEM_END_STATION, // RIDE_TYPE_RIVER_RAFTS
FLAT_TRACK_ELEM_1_X_1_A, // RIDE_TYPE_50
FLAT_TRACK_ELEM_4_X_4, // RIDE_TYPE_ENTERPRISE
FLAT_TRACK_ELEM_1_X_1_A, // RIDE_TYPE_52
FLAT_TRACK_ELEM_1_X_1_A, // RIDE_TYPE_53
FLAT_TRACK_ELEM_1_X_1_A, // RIDE_TYPE_54
TRACK_ELEM_END_STATION, // RIDE_TYPE_55
TRACK_ELEM_END_STATION, // RIDE_TYPE_INVERTED_IMPULSE_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_MINI_ROLLER_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_MINE_RIDE
TRACK_ELEM_END_STATION, // RIDE_TYPE_59
TRACK_ELEM_END_STATION, // RIDE_TYPE_LIM_LAUNCHED_ROLLER_COASTER
};

View File

@ -164,4 +164,6 @@ extern const rating_tuple RideRatings[91];
extern const rct_shop_item_stats ShopItemStats[SHOP_ITEM_COUNT];
extern const uint8 RideConstructionDefaultTrackType[91];
#endif

View File

@ -909,7 +909,7 @@ static void window_new_ride_paint_ride_information(rct_window *w, rct_drawpixeli
// Price
if (!(gParkFlags & PARK_FLAGS_NO_MONEY)) {
// Get price of ride
int unk2 = RCT2_GLOBAL(0x0097CC68 + (item.type * 2), uint8);
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];

View File

@ -573,7 +573,7 @@ rct_window *window_ride_construction_open()
if (ride->type == RIDE_TYPE_AIR_POWERED_VERTICAL_COASTER)
RCT2_GLOBAL(0x00F440CE, uint8) = 30;
_currentTrackCurve = RCT2_ADDRESS(0x0097CC68, uint8)[ride->type * 2] | 0x100;
_currentTrackCurve = RideConstructionDefaultTrackType[ride->type] | 0x100;
_currentTrackSlopeEnd = 0;
_currentTrackBankEnd = 0;
_currentTrackLiftHill = 0;