mirror of https://github.com/OpenRCT2/OpenRCT2.git
Merge pull request #4181 from marijnvdwerf/clean/data-1
Misc RCT data integration
This commit is contained in:
commit
97b0245697
|
@ -26,6 +26,21 @@
|
|||
#include "news_item.h"
|
||||
|
||||
rct_news_item *gNewsItems = RCT2_ADDRESS(RCT2_ADDRESS_NEWS_ITEM_LIST, rct_news_item);
|
||||
|
||||
/** rct2: 0x0097BE7C */
|
||||
const uint8 news_type_properties[] = {
|
||||
0, // NEWS_ITEM_NULL
|
||||
NEWS_TYPE_HAS_LOCATION | NEWS_TYPE_HAS_SUBJECT, // NEWS_ITEM_RIDE
|
||||
NEWS_TYPE_HAS_LOCATION | NEWS_TYPE_HAS_SUBJECT, // NEWS_ITEM_PEEP_ON_RIDE
|
||||
NEWS_TYPE_HAS_LOCATION | NEWS_TYPE_HAS_SUBJECT, // NEWS_ITEM_PEEP
|
||||
NEWS_TYPE_HAS_SUBJECT, // NEWS_ITEM_MONEY
|
||||
NEWS_TYPE_HAS_LOCATION, // NEWS_ITEM_BLANK
|
||||
NEWS_TYPE_HAS_SUBJECT, // NEWS_ITEM_RESEARCH
|
||||
NEWS_TYPE_HAS_SUBJECT, // NEWS_ITEM_PEEPS
|
||||
NEWS_TYPE_HAS_SUBJECT, // NEWS_ITEM_AWARD
|
||||
NEWS_TYPE_HAS_SUBJECT, // NEWS_ITEM_GRAPH
|
||||
};
|
||||
|
||||
void window_game_bottom_toolbar_invalidate_news_item();
|
||||
static int news_item_get_new_history_slot();
|
||||
|
||||
|
|
|
@ -32,6 +32,13 @@ enum {
|
|||
NEWS_ITEM_GRAPH
|
||||
};
|
||||
|
||||
enum {
|
||||
NEWS_TYPE_HAS_LOCATION = 1,
|
||||
NEWS_TYPE_HAS_SUBJECT = 2,
|
||||
};
|
||||
|
||||
extern const uint8 news_type_properties[10];
|
||||
|
||||
#pragma pack(push, 1)
|
||||
/**
|
||||
* News item structure.
|
||||
|
|
|
@ -692,12 +692,12 @@ void path_paint(uint8 direction, uint16 height, rct_map_element * map_element)
|
|||
}
|
||||
|
||||
if (footpath_element_path_scenery_is_ghost(map_element)) {
|
||||
sceneryImageFlags = RCT2_ADDRESS(0x993CC4, uint32_t)[gConfigGeneral.construction_marker_colour];
|
||||
sceneryImageFlags = construction_markers[gConfigGeneral.construction_marker_colour];
|
||||
}
|
||||
|
||||
if (map_element->flags & MAP_ELEMENT_FLAG_GHOST) {
|
||||
gPaintInteractionType = VIEWPORT_INTERACTION_ITEM_NONE;
|
||||
imageFlags = RCT2_ADDRESS(0x993CC4, uint32_t)[gConfigGeneral.construction_marker_colour];
|
||||
imageFlags = construction_markers[gConfigGeneral.construction_marker_colour];
|
||||
}
|
||||
|
||||
sint16 x = RCT2_GLOBAL(0x009DE56A, sint16), y = RCT2_GLOBAL(0x009DE56E, sint16);
|
||||
|
|
|
@ -59,7 +59,7 @@ void scenery_paint(uint8 direction, int height, rct_map_element* mapElement) {
|
|||
}
|
||||
if (mapElement->flags & MAP_ELEMENT_FLAG_GHOST) {
|
||||
gPaintInteractionType = VIEWPORT_INTERACTION_ITEM_NONE;
|
||||
baseImageid = RCT2_ADDRESS(0x993CC4, uint32_t)[gConfigGeneral.construction_marker_colour];
|
||||
baseImageid = construction_markers[gConfigGeneral.construction_marker_colour];
|
||||
}
|
||||
uint32 dword_F64EB0 = baseImageid;
|
||||
|
||||
|
|
|
@ -204,7 +204,7 @@ void scenery_multiple_paint(uint8 direction, uint16 height, rct_map_element *map
|
|||
}
|
||||
if (mapElement->flags & MAP_ELEMENT_FLAG_GHOST) {
|
||||
gPaintInteractionType = VIEWPORT_INTERACTION_ITEM_NONE;
|
||||
ebp = RCT2_ADDRESS(0x993CC4, uint32_t)[gConfigGeneral.construction_marker_colour];
|
||||
ebp = construction_markers[gConfigGeneral.construction_marker_colour];
|
||||
image_id &= 0x7FFFF;
|
||||
dword_F4387C = ebp;
|
||||
image_id |= dword_F4387C;
|
||||
|
|
|
@ -19,6 +19,32 @@
|
|||
#include "../paint/paint.h"
|
||||
#include "supports.h"
|
||||
|
||||
/** rct2: 0x0097AF20, 0x0097AF21 */
|
||||
const rct_xy8 loc_97AF20[] = {
|
||||
{4, 4},
|
||||
{28, 4},
|
||||
{4, 28},
|
||||
{28, 28},
|
||||
{16, 16},
|
||||
{16, 4},
|
||||
{4, 16},
|
||||
{28, 16},
|
||||
{16, 28}
|
||||
};
|
||||
|
||||
/** rct2: 0x0097B052, 0x0097B053 */
|
||||
const rct_xy16 loc_97B052[] = {
|
||||
{-15, -1},
|
||||
{0, -2},
|
||||
{-2, -1},
|
||||
{-1, -15},
|
||||
{-26, -1},
|
||||
{0, -2},
|
||||
{-2, -1},
|
||||
{-1, -26}
|
||||
};
|
||||
|
||||
|
||||
typedef struct supports_id_desc {
|
||||
uint16 full;
|
||||
uint16 half;
|
||||
|
@ -371,10 +397,10 @@ bool metal_a_supports_paint_setup(int supportType, int segment, int special, int
|
|||
|
||||
uint8 ebp = esi[segment * 8 + 1];
|
||||
|
||||
sint8 xOffset = RCT2_ADDRESS(0x0097AF20, sint8)[segment * 2];
|
||||
sint8 yOffset = RCT2_ADDRESS(0x0097AF20 + 1, sint8)[segment * 2];
|
||||
xOffset += RCT2_ADDRESS(0x0097B052, sint8)[ebp * 2];
|
||||
yOffset += RCT2_ADDRESS(0x0097B052 + 1, sint8)[ebp * 2];
|
||||
sint8 xOffset = loc_97AF20[segment].x;
|
||||
sint8 yOffset = loc_97AF20[segment].y;
|
||||
xOffset += loc_97B052[ebp].x;
|
||||
yOffset += loc_97B052[ebp].y;
|
||||
|
||||
sint16 boundBoxLengthX = RCT2_ADDRESS(0x0097B062, uint8)[ebp * 2];
|
||||
sint16 boundBoxLengthY = RCT2_ADDRESS(0x0097B062 + 1, uint8)[ebp * 2];
|
||||
|
@ -393,8 +419,8 @@ bool metal_a_supports_paint_setup(int supportType, int segment, int special, int
|
|||
|
||||
height = gSupportSegments[segment].height;
|
||||
}else{
|
||||
sint8 xOffset = RCT2_ADDRESS(0x0097AF20, sint8)[segment * 2];
|
||||
sint8 yOffset = RCT2_ADDRESS(0x0097AF20 + 1, sint8)[segment * 2];
|
||||
sint8 xOffset = loc_97AF20[segment].x;
|
||||
sint8 yOffset = loc_97AF20[segment].y;
|
||||
|
||||
uint32 image_id = RCT2_ADDRESS(0x0097B15C, uint16)[supportType * 2];
|
||||
image_id += RCT2_ADDRESS(0x0097B404, sint16)[gSupportSegments[segment].slope & 0x1F];
|
||||
|
@ -416,8 +442,8 @@ bool metal_a_supports_paint_setup(int supportType, int segment, int special, int
|
|||
heightDiff -= height;
|
||||
|
||||
if (heightDiff > 0) {
|
||||
sint8 xOffset = RCT2_ADDRESS(0x0097AF20, sint8)[segment * 2];
|
||||
sint8 yOffset = RCT2_ADDRESS(0x0097AF20 + 1, sint8)[segment * 2];
|
||||
sint8 xOffset = loc_97AF20[segment].x;
|
||||
sint8 yOffset = loc_97AF20[segment].y;
|
||||
|
||||
uint32 image_id = RCT2_ADDRESS(0x0097B15C + 2, uint16)[supportType * 2];
|
||||
image_id += heightDiff - 1;
|
||||
|
@ -443,8 +469,8 @@ bool metal_a_supports_paint_setup(int supportType, int segment, int special, int
|
|||
if (z <= 0)
|
||||
break;
|
||||
|
||||
sint8 xOffset = RCT2_ADDRESS(0x0097AF20, sint8)[segment * 2];
|
||||
sint8 yOffset = RCT2_ADDRESS(0x0097AF20 + 1, sint8)[segment * 2];
|
||||
sint8 xOffset = loc_97AF20[segment].x;
|
||||
sint8 yOffset = loc_97AF20[segment].y;
|
||||
|
||||
uint32 image_id = RCT2_ADDRESS(0x0097B15C + 2, uint16)[supportType * 2];
|
||||
image_id += z - 1;
|
||||
|
@ -470,8 +496,8 @@ bool metal_a_supports_paint_setup(int supportType, int segment, int special, int
|
|||
height--;
|
||||
}
|
||||
|
||||
sint16 boundBoxOffsetX = RCT2_ADDRESS(0x0097AF20, uint8)[segment * 2];
|
||||
sint16 boundBoxOffsetY = RCT2_ADDRESS(0x0097AF21, uint8)[segment * 2];
|
||||
sint16 boundBoxOffsetX = loc_97AF20[segment].x;
|
||||
sint16 boundBoxOffsetY = loc_97AF20[segment].y;
|
||||
sint16 boundBoxOffsetZ = height;
|
||||
si = height + special;
|
||||
|
||||
|
@ -485,8 +511,8 @@ bool metal_a_supports_paint_setup(int supportType, int segment, int special, int
|
|||
if (z <= 0)
|
||||
break;
|
||||
|
||||
sint8 xOffset = RCT2_ADDRESS(0x0097AF20, sint8)[segment * 2];
|
||||
sint8 yOffset = RCT2_ADDRESS(0x0097AF20 + 1, sint8)[segment * 2];
|
||||
sint8 xOffset = loc_97AF20[segment].x;
|
||||
sint8 yOffset = loc_97AF20[segment].y;
|
||||
|
||||
uint32 image_id = RCT2_ADDRESS(0x0097B15C + 2, uint16)[supportType * 2];
|
||||
image_id += z - 1;
|
||||
|
|
|
@ -3802,6 +3802,18 @@ static void peep_update_ride(rct_peep* peep){
|
|||
}
|
||||
}
|
||||
|
||||
static const uint32 loc_992A18[9] = {
|
||||
(1 << 14) | (1 << 13) | (1 << 12) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 7),
|
||||
(1 << 14) | (1 << 13) | (1 << 12) | (1 << 2) | (1 << 1),
|
||||
(1 << 14) | (1 << 13) | (1 << 12) | (1 << 4) | (1 << 1),
|
||||
(1 << 14) | (1 << 13) | (1 << 12) | (1 << 3) | (1 << 1),
|
||||
(1 << 14) | (1 << 13) | (1 << 12) | (1 << 5) | (1 << 1),
|
||||
(1 << 14) | (1 << 13) | (1 << 12) | (1 << 6) | (1 << 1),
|
||||
(1 << 14) | (1 << 13) | (1 << 12) | (1 << 11)| (1 << 9),
|
||||
(1 << 14) | (1 << 13) | (1 << 12) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 7),
|
||||
(1 << 14) | (1 << 13) | (1 << 12) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 7),
|
||||
};
|
||||
|
||||
/**
|
||||
*
|
||||
* rct2: 0x006C0E8B
|
||||
|
@ -3886,10 +3898,10 @@ static void peep_update_fixing(int steps, rct_peep* peep){
|
|||
}
|
||||
|
||||
int subState = peep->sub_state;
|
||||
uint32 ebp = RCT2_ADDRESS(0x992A18, uint32)[8];
|
||||
uint32 ebp = loc_992A18[8];
|
||||
|
||||
if (peep->state != PEEP_STATE_INSPECTING) {
|
||||
ebp = RCT2_ADDRESS(0x992A18, uint32)[ride->breakdown_reason_pending];
|
||||
ebp = loc_992A18[ride->breakdown_reason_pending];
|
||||
}
|
||||
|
||||
do {
|
||||
|
@ -9661,7 +9673,7 @@ static void peep_easter_egg_peep_interactions(rct_peep *peep)
|
|||
*/
|
||||
static bool sub_69101A(rct_map_element *esi) {
|
||||
rct_ride *ride = get_ride(esi->properties.track.ride_index);
|
||||
if (RCT2_ADDRESS(0x97C3AF, uint8)[ride->type] != 0) {
|
||||
if (gRideClassifications[ride->type] != RIDE_CLASS_RIDE) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -44,21 +44,12 @@ rct_crooked_house_bound_box crooked_house_data[] = {
|
|||
* @param (edx) height
|
||||
*/
|
||||
static void sub_88ABA4(uint8 direction, uint8 x_offset, uint8 y_offset, uint32 segment, int height) {
|
||||
//RCT2_CALLPROC_X(0x88ABA4, al, segment, cl, height, 0, direction, 0);
|
||||
//return;
|
||||
|
||||
// push dword_9DE578
|
||||
rct_map_element *original_map_element = g_currently_drawn_item;
|
||||
// push edx
|
||||
RCT2_GLOBAL(0x14281B0, uint32) = segment;
|
||||
RCT2_GLOBAL(0x14281B4, uint32) = direction;
|
||||
|
||||
rct_ride *ride = get_ride(original_map_element->properties.track.ride_index);
|
||||
|
||||
rct_ride_entry *ride_type = get_ride_entry(ride->subtype);
|
||||
|
||||
RCT2_GLOBAL(0x0014281B8, uint32) = ride_type->vehicles[0].base_image_id;
|
||||
|
||||
if (ride->lifecycle_flags & RIDE_LIFECYCLE_ON_TRACK) {
|
||||
if (ride->vehicles[0] != (uint16)-1) {
|
||||
rct_sprite *sprite = get_sprite(ride->vehicles[0]);
|
||||
|
|
|
@ -53,6 +53,7 @@
|
|||
|
||||
#pragma region Ride classification table
|
||||
|
||||
/** rct2: 0x0097C3AF */
|
||||
const uint8 gRideClassifications[255] = {
|
||||
RIDE_CLASS_RIDE, RIDE_CLASS_RIDE, RIDE_CLASS_RIDE, RIDE_CLASS_RIDE,
|
||||
RIDE_CLASS_RIDE, RIDE_CLASS_RIDE, RIDE_CLASS_RIDE, RIDE_CLASS_RIDE,
|
||||
|
@ -5830,7 +5831,7 @@ static int ride_get_random_colour_preset_index(uint8 ride_type)
|
|||
return 0;
|
||||
}
|
||||
|
||||
colourPresets = RCT2_ADDRESS(0x0097D934, track_colour_preset_list*)[ride_type];
|
||||
colourPresets = &RideColourPresets[ride_type];
|
||||
|
||||
// 200 attempts to find a colour preset that hasn't already been used in the park for this ride type
|
||||
for (int i = 0; i < 200; i++) {
|
||||
|
@ -5852,7 +5853,7 @@ static void ride_set_colour_preset(rct_ride *ride, uint8 index) {
|
|||
const track_colour_preset_list *colourPresets;
|
||||
const track_colour *colours;
|
||||
|
||||
colourPresets = RCT2_ADDRESS(0x0097D934, track_colour_preset_list*)[ride->type];
|
||||
colourPresets = &RideColourPresets[ride->type];
|
||||
colours = &colourPresets->list[index];
|
||||
for (int i = 0; i < 4; i++) {
|
||||
ride->track_colour_main[i] = colours->main;
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
#include "track.h"
|
||||
#include "../audio/audio.h"
|
||||
#include "../sprites.h"
|
||||
#include "../interface/colour.h"
|
||||
|
||||
const bool hasRunningTrack[0x60] = {
|
||||
true, // 0 Spiral Roller coaster
|
||||
|
@ -2483,3 +2484,559 @@ const uint8 RideConstructionDefaultTrackType[] = {
|
|||
TRACK_ELEM_END_STATION, // RIDE_TYPE_59
|
||||
TRACK_ELEM_END_STATION, // RIDE_TYPE_LIM_LAUNCHED_ROLLER_COASTER
|
||||
};
|
||||
|
||||
#define TRACK_COLOUR_PRESETS(...) {countof(((track_colour[]){__VA_ARGS__})), {__VA_ARGS__}}
|
||||
|
||||
#define DEFAULT_FLAT_RIDE_COLOUR_PRESET TRACK_COLOUR_PRESETS( { COLOUR_BRIGHT_RED, COLOUR_LIGHT_BLUE, COLOUR_YELLOW } )
|
||||
#define DEFAULT_STALL_COLOUR_PRESET TRACK_COLOUR_PRESETS( { COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED } )
|
||||
|
||||
const track_colour_preset_list RideColourPresets[] = {
|
||||
// RIDE_TYPE_SPIRAL_ROLLER_COASTER
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED, COLOUR_DARK_GREEN },
|
||||
{ COLOUR_GREY, COLOUR_GREY, COLOUR_BORDEAUX_RED },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_STAND_UP_ROLLER_COASTER
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_BLACK },
|
||||
{ COLOUR_BLACK, COLOUR_LIGHT_BLUE, COLOUR_BLACK },
|
||||
{ COLOUR_LIGHT_ORANGE, COLOUR_WHITE, COLOUR_LIGHT_ORANGE },
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_YELLOW, COLOUR_BORDEAUX_RED },
|
||||
{ COLOUR_MOSS_GREEN, COLOUR_MOSS_GREEN, COLOUR_WHITE },
|
||||
{ COLOUR_SATURATED_BROWN, COLOUR_LIGHT_ORANGE, COLOUR_SATURATED_BROWN },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_SUSPENDED_SWINGING_COASTER
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_OLIVE_GREEN, COLOUR_OLIVE_GREEN, COLOUR_LIGHT_BROWN },
|
||||
{ COLOUR_BLACK, COLOUR_LIGHT_BLUE, COLOUR_BLACK },
|
||||
{ COLOUR_SATURATED_BROWN, COLOUR_YELLOW, COLOUR_SATURATED_BROWN },
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED, COLOUR_OLIVE_GREEN },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_INVERTED_ROLLER_COASTER
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED, COLOUR_BLACK },
|
||||
{ COLOUR_WHITE, COLOUR_YELLOW, COLOUR_WHITE },
|
||||
{ COLOUR_SALMON_PINK, COLOUR_SALMON_PINK, COLOUR_GREY },
|
||||
{ COLOUR_BLACK, COLOUR_BRIGHT_RED, COLOUR_BLACK },
|
||||
{ COLOUR_SATURATED_BROWN, COLOUR_WHITE, COLOUR_SATURATED_BROWN },
|
||||
{ COLOUR_YELLOW, COLOUR_YELLOW, COLOUR_BLACK },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_JUNIOR_ROLLER_COASTER
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_YELLOW, COLOUR_YELLOW, COLOUR_SATURATED_BROWN },
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED, COLOUR_DARK_OLIVE_GREEN },
|
||||
{ COLOUR_TEAL, COLOUR_YELLOW, COLOUR_TEAL },
|
||||
{ COLOUR_SATURATED_BROWN, COLOUR_SATURATED_BROWN, COLOUR_OLIVE_GREEN },
|
||||
{ COLOUR_BLACK, COLOUR_LIGHT_BLUE, COLOUR_BLACK },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_MINIATURE_RAILWAY
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_LIGHT_BLUE, COLOUR_WHITE, COLOUR_DARK_BROWN },
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_WHITE, COLOUR_BLACK },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_MONORAIL
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_GREY, COLOUR_GREY, COLOUR_DARK_OLIVE_GREEN },
|
||||
{ COLOUR_GREY, COLOUR_GREY, COLOUR_SATURATED_BROWN },
|
||||
{ COLOUR_GREY, COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED },
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED, COLOUR_BLACK },
|
||||
{ COLOUR_OLIVE_GREEN, COLOUR_OLIVE_GREEN, COLOUR_WHITE },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_MINI_SUSPENDED_COASTER
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BLACK, COLOUR_BLACK, COLOUR_SATURATED_BROWN },
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_BLACK },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_BOAT_RIDE
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_MOSS_GREEN, COLOUR_MOSS_GREEN, COLOUR_WHITE },
|
||||
{ COLOUR_BLACK, COLOUR_BLACK, COLOUR_DARK_GREEN },
|
||||
{ COLOUR_LIGHT_BROWN, COLOUR_LIGHT_BROWN, COLOUR_YELLOW },
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_WOODEN_WILD_MOUSE
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_WHITE },
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_SATURATED_BROWN },
|
||||
{ COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE, COLOUR_SATURATED_BROWN },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_STEEPLECHASE
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE, COLOUR_BLACK },
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_BLACK },
|
||||
{ COLOUR_BRIGHT_GREEN, COLOUR_BRIGHT_GREEN, COLOUR_BLACK },
|
||||
{ COLOUR_YELLOW, COLOUR_YELLOW, COLOUR_BLACK },
|
||||
{ COLOUR_LIGHT_ORANGE, COLOUR_LIGHT_ORANGE, COLOUR_BLACK },
|
||||
{ COLOUR_WHITE, COLOUR_WHITE, COLOUR_BLACK },
|
||||
{ COLOUR_BRIGHT_PINK, COLOUR_BRIGHT_PINK, COLOUR_BLACK },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_CAR_RIDE
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_SATURATED_BROWN, COLOUR_SATURATED_BROWN, COLOUR_GREY },
|
||||
{ COLOUR_LIGHT_PURPLE, COLOUR_LIGHT_PURPLE, COLOUR_WHITE },
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED, COLOUR_OLIVE_GREEN },
|
||||
{ COLOUR_GREY, COLOUR_GREY, COLOUR_BLACK },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_LAUNCHED_FREEFALL
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_WHITE, COLOUR_BRIGHT_RED, COLOUR_LIGHT_PURPLE },
|
||||
{ COLOUR_DARK_GREEN, COLOUR_YELLOW, COLOUR_WHITE },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_BOBSLEIGH_COASTER
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_WHITE, COLOUR_BRIGHT_RED, COLOUR_WHITE },
|
||||
{ COLOUR_LIGHT_BLUE, COLOUR_WHITE, COLOUR_BLACK },
|
||||
{ COLOUR_YELLOW, COLOUR_BRIGHT_RED, COLOUR_BLACK },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_OBSERVATION_TOWER
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BLACK, COLOUR_GREY },
|
||||
{ COLOUR_LIGHT_BLUE, COLOUR_YELLOW, COLOUR_GREY },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_LOOPING_ROLLER_COASTER
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_LIGHT_BROWN, COLOUR_LIGHT_BROWN, COLOUR_BLACK },
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_BLACK },
|
||||
{ COLOUR_WHITE, COLOUR_WHITE, COLOUR_SATURATED_RED },
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED, COLOUR_WHITE },
|
||||
{ COLOUR_LIGHT_PURPLE, COLOUR_LIGHT_PURPLE, COLOUR_DARK_GREEN },
|
||||
{ COLOUR_OLIVE_GREEN, COLOUR_OLIVE_GREEN, COLOUR_LIGHT_BROWN },
|
||||
{ COLOUR_GREY, COLOUR_LIGHT_ORANGE, COLOUR_GREY },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_DINGHY_SLIDE
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_DARK_GREEN, COLOUR_SATURATED_BROWN, COLOUR_DARK_GREEN },
|
||||
{ COLOUR_TEAL, COLOUR_BORDEAUX_RED, COLOUR_TEAL },
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_GREY, COLOUR_SATURATED_RED },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_MINE_TRAIN_COASTER
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_DARK_BROWN, COLOUR_GREY, COLOUR_DARK_BROWN },
|
||||
{ COLOUR_DARK_BROWN, COLOUR_GREY, COLOUR_BLACK },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_CHAIRLIFT
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED, COLOUR_GREY },
|
||||
{ COLOUR_WHITE, COLOUR_WHITE, COLOUR_OLIVE_GREEN },
|
||||
{ COLOUR_LIGHT_BROWN, COLOUR_LIGHT_BROWN, COLOUR_WHITE },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_CORKSCREW_ROLLER_COASTER
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED, COLOUR_BLACK },
|
||||
{ COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE, COLOUR_WHITE },
|
||||
{ COLOUR_BLACK, COLOUR_BORDEAUX_RED, COLOUR_BLACK },
|
||||
{ COLOUR_WHITE, COLOUR_WHITE, COLOUR_DARK_GREEN },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_MAZE
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_GREY, COLOUR_GREY, COLOUR_GREY },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_SPIRAL_SLIDE
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_YELLOW, COLOUR_DARK_BROWN },
|
||||
{ COLOUR_LIGHT_BLUE, COLOUR_BRIGHT_PINK, COLOUR_LIGHT_PURPLE },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_GO_KARTS
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED, COLOUR_DARK_BROWN },
|
||||
{ COLOUR_YELLOW, COLOUR_YELLOW, COLOUR_BORDEAUX_RED },
|
||||
{ COLOUR_DARK_GREEN, COLOUR_DARK_GREEN, COLOUR_DARK_GREEN },
|
||||
{ COLOUR_DARK_BROWN, COLOUR_DARK_BROWN, COLOUR_BLACK },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_LOG_FLUME
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_DARK_BROWN, COLOUR_DARK_BROWN, COLOUR_GREY },
|
||||
{ COLOUR_OLIVE_GREEN, COLOUR_BLACK, COLOUR_GREY },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_RIVER_RAPIDS
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_WHITE, COLOUR_BLACK, COLOUR_DARK_BROWN },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_DODGEMS
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_SATURATED_BROWN, COLOUR_SATURATED_BROWN },
|
||||
{ COLOUR_LIGHT_BLUE, COLOUR_GREY, COLOUR_GREY },
|
||||
{ COLOUR_DARK_GREEN, COLOUR_BLACK, COLOUR_DARK_GREEN },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_PIRATE_SHIP
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_DARK_BROWN, COLOUR_DARK_BROWN, COLOUR_BLACK },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_SWINGING_INVERTER_SHIP
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_YELLOW, COLOUR_BLACK },
|
||||
{ COLOUR_BLACK, COLOUR_SATURATED_BROWN, COLOUR_BLACK },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_FOOD_STALL
|
||||
DEFAULT_STALL_COLOUR_PRESET,
|
||||
|
||||
// RIDE_TYPE_1D
|
||||
DEFAULT_STALL_COLOUR_PRESET,
|
||||
|
||||
// RIDE_TYPE_DRINK_STALL
|
||||
DEFAULT_STALL_COLOUR_PRESET,
|
||||
|
||||
// RIDE_TYPE_1F
|
||||
DEFAULT_STALL_COLOUR_PRESET,
|
||||
|
||||
// RIDE_TYPE_SHOP
|
||||
DEFAULT_STALL_COLOUR_PRESET,
|
||||
|
||||
// RIDE_TYPE_MERRY_GO_ROUND
|
||||
DEFAULT_FLAT_RIDE_COLOUR_PRESET,
|
||||
|
||||
// RIDE_TYPE_22
|
||||
DEFAULT_STALL_COLOUR_PRESET,
|
||||
|
||||
// RIDE_TYPE_INFORMATION_KIOSK
|
||||
DEFAULT_STALL_COLOUR_PRESET,
|
||||
|
||||
// RIDE_TYPE_TOILETS
|
||||
DEFAULT_FLAT_RIDE_COLOUR_PRESET,
|
||||
|
||||
// RIDE_TYPE_FERRIS_WHEEL
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BLACK, COLOUR_BLACK, COLOUR_BLACK },
|
||||
{ COLOUR_GREY, COLOUR_GREY, COLOUR_GREY },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_MOTION_SIMULATOR
|
||||
DEFAULT_FLAT_RIDE_COLOUR_PRESET,
|
||||
|
||||
// RIDE_TYPE_3D_CINEMA
|
||||
DEFAULT_FLAT_RIDE_COLOUR_PRESET,
|
||||
|
||||
// RIDE_TYPE_TOP_SPIN
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_YELLOW, COLOUR_YELLOW },
|
||||
{ COLOUR_TEAL, COLOUR_WHITE, COLOUR_WHITE },
|
||||
{ COLOUR_DARK_GREEN, COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_SPACE_RINGS
|
||||
DEFAULT_FLAT_RIDE_COLOUR_PRESET,
|
||||
|
||||
// RIDE_TYPE_REVERSE_FREEFALL_COASTER
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_DARK_GREEN, COLOUR_YELLOW, COLOUR_DARK_GREEN },
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED, COLOUR_YELLOW },
|
||||
{ COLOUR_GREY, COLOUR_SALMON_PINK, COLOUR_GREY },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_LIFT
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED, COLOUR_GREY },
|
||||
{ COLOUR_DARK_GREEN, COLOUR_DARK_GREEN, COLOUR_GREY },
|
||||
{ COLOUR_BLACK, COLOUR_BLACK, COLOUR_GREY },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_VERTICAL_DROP_ROLLER_COASTER
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BLACK, COLOUR_GREY, COLOUR_BLACK },
|
||||
{ COLOUR_DARK_GREEN, COLOUR_DARK_GREEN, COLOUR_GREY },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_CASH_MACHINE
|
||||
DEFAULT_FLAT_RIDE_COLOUR_PRESET,
|
||||
|
||||
// RIDE_TYPE_TWIST
|
||||
DEFAULT_FLAT_RIDE_COLOUR_PRESET,
|
||||
|
||||
// RIDE_TYPE_HAUNTED_HOUSE
|
||||
DEFAULT_FLAT_RIDE_COLOUR_PRESET,
|
||||
|
||||
// RIDE_TYPE_FIRST_AID
|
||||
DEFAULT_FLAT_RIDE_COLOUR_PRESET,
|
||||
|
||||
// RIDE_TYPE_CIRCUS_SHOW
|
||||
DEFAULT_FLAT_RIDE_COLOUR_PRESET,
|
||||
|
||||
// RIDE_TYPE_GHOST_TRAIN
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_DARK_GREEN, COLOUR_BORDEAUX_RED, COLOUR_BLACK },
|
||||
{ COLOUR_TEAL, COLOUR_WHITE, COLOUR_DARK_BROWN },
|
||||
{ COLOUR_DARK_BROWN, COLOUR_BORDEAUX_RED, COLOUR_BLACK },
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_YELLOW, COLOUR_BLACK },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_TWISTER_ROLLER_COASTER
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_YELLOW, COLOUR_YELLOW, COLOUR_BORDEAUX_RED },
|
||||
{ COLOUR_AQUAMARINE, COLOUR_AQUAMARINE, COLOUR_DARK_PURPLE },
|
||||
{ COLOUR_WHITE, COLOUR_WHITE, COLOUR_LIGHT_BLUE },
|
||||
{ COLOUR_DARK_GREEN, COLOUR_MOSS_GREEN, COLOUR_DARK_BROWN },
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_LIGHT_ORANGE, COLOUR_WHITE },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_WOODEN_ROLLER_COASTER
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_BLACK, COLOUR_WHITE },
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BLACK, COLOUR_GREY },
|
||||
{ COLOUR_YELLOW, COLOUR_DARK_BROWN, COLOUR_DARK_BROWN },
|
||||
{ COLOUR_TEAL, COLOUR_BORDEAUX_RED, COLOUR_WHITE },
|
||||
{ COLOUR_LIGHT_BLUE, COLOUR_BLACK, COLOUR_BLACK },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_SIDE_FRICTION_ROLLER_COASTER
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_WHITE, COLOUR_DARK_BROWN, COLOUR_WHITE },
|
||||
{ COLOUR_SATURATED_BROWN, COLOUR_WHITE, COLOUR_SATURATED_BROWN },
|
||||
{ COLOUR_DARK_BROWN, COLOUR_LIGHT_BROWN, COLOUR_DARK_BROWN },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_WILD_MOUSE
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE, COLOUR_YELLOW },
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_WHITE },
|
||||
{ COLOUR_DARK_PURPLE, COLOUR_BRIGHT_PINK, COLOUR_DARK_PURPLE },
|
||||
{ COLOUR_LIGHT_BROWN, COLOUR_LIGHT_BROWN, COLOUR_BORDEAUX_RED },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BRIGHT_PINK, COLOUR_YELLOW, COLOUR_YELLOW },
|
||||
{ COLOUR_LIGHT_PURPLE, COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED },
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_WHITE, COLOUR_WHITE },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_38
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BRIGHT_PINK, COLOUR_YELLOW, COLOUR_YELLOW },
|
||||
{ COLOUR_LIGHT_PURPLE, COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED },
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_WHITE, COLOUR_WHITE },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_FLYING_ROLLER_COASTER
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_OLIVE_GREEN, COLOUR_OLIVE_GREEN, COLOUR_TEAL },
|
||||
{ COLOUR_TEAL, COLOUR_TEAL, COLOUR_BORDEAUX_RED },
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_DARK_PURPLE },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_3A
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_OLIVE_GREEN, COLOUR_OLIVE_GREEN, COLOUR_TEAL },
|
||||
{ COLOUR_TEAL, COLOUR_TEAL, COLOUR_BORDEAUX_RED },
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_DARK_PURPLE },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_VIRGINIA_REEL
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_SATURATED_BROWN, COLOUR_GREY, COLOUR_SATURATED_BROWN },
|
||||
{ COLOUR_BLACK, COLOUR_DARK_BROWN, COLOUR_DARK_BROWN },
|
||||
{ COLOUR_DARK_BROWN, COLOUR_BORDEAUX_RED, COLOUR_DARK_BROWN },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_SPLASH_BOATS
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_DARK_BROWN, COLOUR_DARK_BROWN, COLOUR_BLACK },
|
||||
{ COLOUR_DARK_GREEN, COLOUR_DARK_GREEN, COLOUR_GREY },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_MINI_HELICOPTERS
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_DARK_PURPLE, COLOUR_YELLOW, COLOUR_DARK_PURPLE },
|
||||
{ COLOUR_WHITE, COLOUR_WHITE, COLOUR_BRIGHT_RED },
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_YELLOW },
|
||||
{ COLOUR_BRIGHT_PINK, COLOUR_BRIGHT_PINK, COLOUR_WHITE },
|
||||
{ COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE, COLOUR_WHITE },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_LAY_DOWN_ROLLER_COASTER
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_YELLOW },
|
||||
{ COLOUR_DARK_PURPLE, COLOUR_DARK_PURPLE, COLOUR_YELLOW },
|
||||
{ COLOUR_YELLOW, COLOUR_YELLOW, COLOUR_DARK_GREEN },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_SUSPENDED_MONORAIL
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_BLACK, COLOUR_BLACK },
|
||||
{ COLOUR_DARK_PURPLE, COLOUR_DARK_PURPLE, COLOUR_BLACK },
|
||||
{ COLOUR_DARK_GREEN, COLOUR_DARK_GREEN, COLOUR_BLACK },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_40
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_YELLOW },
|
||||
{ COLOUR_DARK_PURPLE, COLOUR_DARK_PURPLE, COLOUR_YELLOW },
|
||||
{ COLOUR_YELLOW, COLOUR_YELLOW, COLOUR_DARK_GREEN },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_REVERSER_ROLLER_COASTER
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_DARK_BROWN, COLOUR_LIGHT_BROWN, COLOUR_DARK_BROWN },
|
||||
{ COLOUR_SATURATED_BROWN, COLOUR_BORDEAUX_RED, COLOUR_SATURATED_BROWN },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_HEARTLINE_TWISTER_COASTER
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_WHITE, COLOUR_LIGHT_BLUE, COLOUR_WHITE },
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_YELLOW, COLOUR_BLACK },
|
||||
{ COLOUR_DARK_PURPLE, COLOUR_WHITE, COLOUR_DARK_GREEN },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_MINI_GOLF
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_SATURATED_GREEN, COLOUR_DARK_BROWN, COLOUR_BLACK },
|
||||
{ COLOUR_MOSS_GREEN, COLOUR_BORDEAUX_RED, COLOUR_DARK_BROWN },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_GIGA_COASTER
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_WHITE },
|
||||
{ COLOUR_WHITE, COLOUR_WHITE, COLOUR_YELLOW },
|
||||
{ COLOUR_YELLOW, COLOUR_YELLOW, COLOUR_BORDEAUX_RED },
|
||||
{ COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE, COLOUR_BLACK },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_ROTO_DROP
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_YELLOW, COLOUR_GREY },
|
||||
{ COLOUR_BLACK, COLOUR_LIGHT_BLUE, COLOUR_GREY },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_FLYING_SAUCERS
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_DARK_PURPLE, COLOUR_GREY, COLOUR_BLACK },
|
||||
{ COLOUR_BLACK, COLOUR_YELLOW, COLOUR_BLACK },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_CROOKED_HOUSE
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BLACK, COLOUR_GREY },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_MONORAIL_CYCLES
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_DARK_BROWN, COLOUR_GREY, COLOUR_DARK_BROWN },
|
||||
{ COLOUR_GREY, COLOUR_BLACK, COLOUR_GREY },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_COMPACT_INVERTED_COASTER
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BRIGHT_YELLOW, COLOUR_BRIGHT_YELLOW, COLOUR_BRIGHT_RED },
|
||||
{ COLOUR_ICY_BLUE, COLOUR_ICY_BLUE, COLOUR_DARK_GREEN },
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_BRIGHT_YELLOW },
|
||||
{ COLOUR_WHITE, COLOUR_WHITE, COLOUR_DARK_GREEN },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_WATER_COASTER
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_DARK_GREEN, COLOUR_DARK_GREEN, COLOUR_BLACK },
|
||||
{ COLOUR_DARK_BROWN, COLOUR_DARK_BROWN, COLOUR_BORDEAUX_RED },
|
||||
{ COLOUR_WHITE, COLOUR_WHITE, COLOUR_DARK_PURPLE },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_AIR_POWERED_VERTICAL_COASTER
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_WHITE, COLOUR_BRIGHT_RED, COLOUR_DARK_BROWN },
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_LIGHT_BLUE, COLOUR_WHITE },
|
||||
{ COLOUR_LIGHT_ORANGE, COLOUR_BRIGHT_RED, COLOUR_BRIGHT_YELLOW },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_INVERTED_HAIRPIN_COASTER
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BRIGHT_YELLOW, COLOUR_BRIGHT_YELLOW, COLOUR_BRIGHT_RED },
|
||||
{ COLOUR_BLACK, COLOUR_ICY_BLUE, COLOUR_BLACK },
|
||||
{ COLOUR_WHITE, COLOUR_WHITE, COLOUR_YELLOW },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_MAGIC_CARPET
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_DARK_PURPLE, COLOUR_WHITE, COLOUR_BLACK },
|
||||
{ COLOUR_YELLOW, COLOUR_WHITE, COLOUR_BLACK },
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_YELLOW, COLOUR_BLACK },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_SUBMARINE_RIDE
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_GREY, COLOUR_GREY, COLOUR_BLACK },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_RIVER_RAFTS
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BLACK, COLOUR_BLACK, COLOUR_SATURATED_BROWN },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_50
|
||||
DEFAULT_FLAT_RIDE_COLOUR_PRESET,
|
||||
|
||||
// RIDE_TYPE_ENTERPRISE
|
||||
DEFAULT_FLAT_RIDE_COLOUR_PRESET,
|
||||
|
||||
// RIDE_TYPE_52
|
||||
DEFAULT_FLAT_RIDE_COLOUR_PRESET,
|
||||
|
||||
// RIDE_TYPE_53
|
||||
DEFAULT_FLAT_RIDE_COLOUR_PRESET,
|
||||
|
||||
// RIDE_TYPE_54
|
||||
DEFAULT_FLAT_RIDE_COLOUR_PRESET,
|
||||
|
||||
// RIDE_TYPE_55
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_GREY },
|
||||
{ COLOUR_YELLOW, COLOUR_YELLOW, COLOUR_SATURATED_BROWN },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_INVERTED_IMPULSE_COASTER
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_GREY },
|
||||
{ COLOUR_YELLOW, COLOUR_YELLOW, COLOUR_WHITE },
|
||||
{ COLOUR_BRIGHT_PURPLE, COLOUR_BRIGHT_PURPLE, COLOUR_BORDEAUX_RED },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_MINI_ROLLER_COASTER
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_GREY, COLOUR_GREY, COLOUR_DARK_BROWN },
|
||||
{ COLOUR_MOSS_GREEN, COLOUR_MOSS_GREEN, COLOUR_DARK_BROWN },
|
||||
{ COLOUR_SALMON_PINK, COLOUR_SALMON_PINK, COLOUR_BORDEAUX_RED },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_MINE_RIDE
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_DARK_BROWN, COLOUR_DARK_BROWN, COLOUR_BLACK },
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED, COLOUR_DARK_BROWN },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_59
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE, COLOUR_YELLOW },
|
||||
),
|
||||
|
||||
// RIDE_TYPE_LIM_LAUNCHED_ROLLER_COASTER
|
||||
TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BRIGHT_GREEN, COLOUR_BRIGHT_GREEN, COLOUR_WHITE },
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_DARK_BROWN },
|
||||
{ COLOUR_YELLOW, COLOUR_YELLOW, COLOUR_SATURATED_GREEN },
|
||||
),
|
||||
};
|
||||
|
|
|
@ -166,4 +166,6 @@ extern const rct_shop_item_stats ShopItemStats[SHOP_ITEM_COUNT];
|
|||
|
||||
extern const uint8 RideConstructionDefaultTrackType[91];
|
||||
|
||||
extern const track_colour_preset_list RideColourPresets[91];
|
||||
|
||||
#endif
|
||||
|
|
|
@ -47,7 +47,7 @@ static void paint_motionsimulator_vehicle(sint8 offsetX, sint8 offsetY, uint8 di
|
|||
uint16 spriteIndex = ride->vehicles[0];
|
||||
if (spriteIndex != SPRITE_INDEX_NULL) {
|
||||
vehicle = GET_VEHICLE(spriteIndex);
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_PAINT_SETUP_CURRENT_TYPE, uint8) = 2;
|
||||
gPaintInteractionType = VIEWPORT_INTERACTION_ITEM_SPRITE;
|
||||
g_currently_drawn_item = vehicle;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,6 +26,13 @@
|
|||
#include "../track_data.h"
|
||||
#include "../track_paint.h"
|
||||
|
||||
/** rct2: 0x014280BC */
|
||||
static sint16 TopSpinSeatHeightOffset[] = {
|
||||
-10, -10, -9, -7, -4, -1, 2, 6, 11, 16, 21, 26, 31, 37, 42, 47,
|
||||
52, 57, 61, 64, 67, 70, 72, 73, 73, 73, 72, 70, 67, 64, 61, 57,
|
||||
52, 47, 42, 37, 31, 26, 21, 16, 11, 6, 2, -1, -4, -7, -9, -10,
|
||||
};
|
||||
|
||||
/**
|
||||
*
|
||||
* rct2: 0x0142811C
|
||||
|
@ -36,7 +43,6 @@ static sint8 TopSpinSeatPositionOffset[] = {
|
|||
0, 4, 9, 13, 17, 21, 24, 27, 29, 31, 33, 34, 34, 34, 33, 31,
|
||||
29, 27, 24, 21, 17, 13, 9, 4, 0, -3, -8, -12, -16, -20, -23, -26,
|
||||
-28, -30, -32, -33, -33, -33, -32, -30, -28, -26, -23, -20, -16, -12, -8, -3,
|
||||
0
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -147,7 +153,8 @@ static void top_spin_paint_vehicle(sint8 al, sint8 cl, uint8 rideIndex, uint8 di
|
|||
.y = cl,
|
||||
.z = height
|
||||
};
|
||||
seatCoords.z += RCT2_ADDRESS(0x14280BC, sint16)[armRotation];
|
||||
|
||||
seatCoords.z += TopSpinSeatHeightOffset[armRotation];
|
||||
|
||||
assert(armRotation < sizeof(TopSpinSeatPositionOffset));
|
||||
switch (direction) {
|
||||
|
@ -165,10 +172,6 @@ static void top_spin_paint_vehicle(sint8 al, sint8 cl, uint8 rideIndex, uint8 di
|
|||
break;
|
||||
}
|
||||
|
||||
RCT2_GLOBAL(0x014280B8, sint8) = (sint8)seatCoords.x;
|
||||
RCT2_GLOBAL(0x014280B9, sint8) = (sint8)seatCoords.y;
|
||||
RCT2_GLOBAL(0x014280BA, sint16) = seatCoords.z;
|
||||
|
||||
sub_98199C(image_id, (sint8) seatCoords.x, (sint8) seatCoords.y, lengthX, lengthY, 90, seatCoords.z, boundBoxOffsetX, boundBoxOffsetY, boundBoxOffsetZ, rotation);
|
||||
|
||||
rct_drawpixelinfo* dpi = unk_140E9A8;
|
||||
|
|
|
@ -1763,7 +1763,7 @@ static money32 set_maze_track(uint16 x, uint8 flags, uint8 direction, uint16 y,
|
|||
gCommandPosition.y = y + 8;
|
||||
gCommandPosition.z = z;
|
||||
|
||||
RCT2_GLOBAL(0xF4413E, money32) = 0;
|
||||
money32 cost = 0;
|
||||
|
||||
if (!sub_68B044()) {
|
||||
return MONEY32_UNDEFINED;
|
||||
|
@ -1834,14 +1834,14 @@ 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 * TrackPricing[TRACK_ELEM_MAZE]) >> 16));
|
||||
RCT2_GLOBAL(0x00F4413E, money32) = price / 2 * 10;
|
||||
cost = price / 2 * 10;
|
||||
|
||||
if (!(flags & GAME_COMMAND_FLAG_APPLY)) {
|
||||
if (gParkFlags & PARK_FLAGS_NO_MONEY) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return RCT2_GLOBAL(0xF4413E, money32);
|
||||
return cost;
|
||||
}
|
||||
|
||||
uint16 flooredX = floor2(x, 32);
|
||||
|
@ -1877,7 +1877,7 @@ static money32 set_maze_track(uint16 x, uint8 flags, uint8 direction, uint16 y,
|
|||
return 0;
|
||||
}
|
||||
|
||||
return RCT2_GLOBAL(0xF4413E, money32);
|
||||
return cost;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1958,7 +1958,7 @@ static money32 set_maze_track(uint16 x, uint8 flags, uint8 direction, uint16 y,
|
|||
return 0;
|
||||
}
|
||||
|
||||
return RCT2_GLOBAL(0xF4413E, money32);
|
||||
return cost;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1248,7 +1248,7 @@ void track_paint(uint8 direction, int height, rct_map_element *mapElement)
|
|||
RCT2_GLOBAL(0x00F441A0, uint32) = 0x20000000;
|
||||
RCT2_GLOBAL(0x00F441A4, uint32) = 0x20C00000;
|
||||
RCT2_GLOBAL(0x00F4419C, uint32) = (ride->track_colour_supports[trackColourScheme] << 19) | 0x20000000;
|
||||
if (mapElement->type & 0x40) {
|
||||
if (mapElement->type & MAP_ELEMENT_TYPE_FLAG_HIGHLIGHT) {
|
||||
RCT2_GLOBAL(0x00F44198, uint32) = 0x21600000;
|
||||
RCT2_GLOBAL(0x00F4419C, uint32) = 0x21600000;
|
||||
RCT2_GLOBAL(0x00F441A0, uint32) = 0x21600000;
|
||||
|
|
|
@ -289,7 +289,7 @@ static void window_game_bottom_toolbar_invalidate(rct_window *w)
|
|||
if (x == SPRITE_LOCATION_NULL)
|
||||
w->disabled_widgets |= (1 << WIDX_NEWS_LOCATE);
|
||||
|
||||
if (!((RCT2_ADDRESS(0x0097BE7C, char))[newsItem->type] & 2)) {
|
||||
if (!(news_type_properties[newsItem->type] & NEWS_TYPE_HAS_SUBJECT)) {
|
||||
w->disabled_widgets |= (1 << WIDX_NEWS_SUBJECT);
|
||||
window_game_bottom_toolbar_widgets[WIDX_NEWS_SUBJECT].type = WWT_EMPTY;
|
||||
}
|
||||
|
|
|
@ -1602,7 +1602,7 @@ void window_guest_rides_update(rct_window *w)
|
|||
uint8 ride_id_offset = ride_id / 8;
|
||||
if (peep->rides_been_on[ride_id_offset] & (1 << ride_id_bit)){
|
||||
rct_ride* ride = get_ride(ride_id);
|
||||
if (RCT2_ADDRESS(0x97C3AF, uint8)[ride->type] == 0){
|
||||
if (gRideClassifications[ride->type] == RIDE_CLASS_RIDE){
|
||||
w->list_item_positions[curr_list_position] = ride_id;
|
||||
curr_list_position++;
|
||||
}
|
||||
|
|
|
@ -221,12 +221,12 @@ static void window_news_scrollmousedown(rct_window *w, int scrollIndex, int x, i
|
|||
buttonIndex = 0;
|
||||
break;
|
||||
} else if (x < 351) {
|
||||
if (RCT2_ADDRESS(0x0097BE7C, uint8)[newsItem->type] & 2) {
|
||||
if (news_type_properties[newsItem->type] & NEWS_TYPE_HAS_SUBJECT) {
|
||||
buttonIndex = 1;
|
||||
break;
|
||||
}
|
||||
} else if (x < 376) {
|
||||
if (RCT2_ADDRESS(0x0097BE7C, uint8)[newsItem->type] & 1) {
|
||||
if (news_type_properties[newsItem->type] & NEWS_TYPE_HAS_LOCATION) {
|
||||
buttonIndex = 2;
|
||||
break;
|
||||
}
|
||||
|
@ -304,7 +304,7 @@ static void window_news_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int s
|
|||
gfx_draw_string_left_wrapped(dpi, &ch, 2, y + 10, 325, STR_STRING, 14);
|
||||
|
||||
// Subject button
|
||||
if ((RCT2_ADDRESS(0x0097BE7C, uint8)[newsItem->type] & 2) && !(newsItem->flags & 1)) {
|
||||
if ((news_type_properties[newsItem->type] & NEWS_TYPE_HAS_SUBJECT) && !(newsItem->flags & 1)) {
|
||||
x = 328;
|
||||
yy = y + 14;
|
||||
|
||||
|
@ -368,7 +368,7 @@ static void window_news_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int s
|
|||
}
|
||||
|
||||
// Location button
|
||||
if ((RCT2_ADDRESS(0x0097BE7C, uint8)[newsItem->type] & 1) && !(newsItem->flags & 1)) {
|
||||
if ((news_type_properties[newsItem->type] & NEWS_TYPE_HAS_LOCATION) && !(newsItem->flags & 1)) {
|
||||
x = 352;
|
||||
yy = y + 14;
|
||||
|
||||
|
|
|
@ -649,7 +649,7 @@ static void window_ride_list_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi,
|
|||
break;
|
||||
case INFORMATION_TYPE_GUESTS_FAVOURITE:
|
||||
formatSecondary = 0;
|
||||
if (RCT2_ADDRESS(0x0097C3AF, uint8)[ride->type] == PAGE_RIDES) {
|
||||
if (gRideClassifications[ride->type] == RIDE_CLASS_RIDE) {
|
||||
set_format_arg(2, uint16, ride->guests_favourite);
|
||||
formatSecondary = ride->guests_favourite == 1 ? STR_GUESTS_FAVOURITE_LABEL : STR_GUESTS_FAVOURITE_PLURAL_LABEL;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue