From 0054493d41fca6256d5932d1ffb111ab55171447 Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Tue, 26 Jul 2016 23:12:01 +0200 Subject: [PATCH 01/12] Remove globals used by crooked house paint --- src/ride/gentle/crooked_house.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/ride/gentle/crooked_house.c b/src/ride/gentle/crooked_house.c index 983acbdb8d..ada2e86d23 100644 --- a/src/ride/gentle/crooked_house.c +++ b/src/ride/gentle/crooked_house.c @@ -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]); From f05a1b1e89212a344a76d46e7d6b64e6e31b4944 Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Tue, 26 Jul 2016 23:15:11 +0200 Subject: [PATCH 02/12] Clean up Top Spin --- src/ride/thrill/top_spin.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/ride/thrill/top_spin.c b/src/ride/thrill/top_spin.c index e28f0ad3bd..4342aecb5e 100644 --- a/src/ride/thrill/top_spin.c +++ b/src/ride/thrill/top_spin.c @@ -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; From 718c2906e9ab0f7d3e0dcb420bfde3096ad0a5f5 Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Wed, 27 Jul 2016 10:53:07 +0200 Subject: [PATCH 03/12] Include news type list --- src/management/news_item.c | 15 +++++++++++++++ src/management/news_item.h | 7 +++++++ src/windows/game_bottom_toolbar.c | 2 +- src/windows/news.c | 8 ++++---- 4 files changed, 27 insertions(+), 5 deletions(-) diff --git a/src/management/news_item.c b/src/management/news_item.c index 4af0c093d0..013752de30 100644 --- a/src/management/news_item.c +++ b/src/management/news_item.c @@ -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(); diff --git a/src/management/news_item.h b/src/management/news_item.h index 6a14361c60..816ad63cdc 100644 --- a/src/management/news_item.h +++ b/src/management/news_item.h @@ -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. diff --git a/src/windows/game_bottom_toolbar.c b/src/windows/game_bottom_toolbar.c index 2a0ce0e712..57325ec487 100644 --- a/src/windows/game_bottom_toolbar.c +++ b/src/windows/game_bottom_toolbar.c @@ -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; } diff --git a/src/windows/news.c b/src/windows/news.c index a497db93df..04af745830 100644 --- a/src/windows/news.c +++ b/src/windows/news.c @@ -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; From b428a95724d05af8c9b034ce51bb3a9e261ae07e Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Wed, 27 Jul 2016 11:17:51 +0200 Subject: [PATCH 04/12] Ride classes --- src/peep/peep.c | 2 +- src/ride/ride.c | 1 + src/windows/guest.c | 2 +- src/windows/ride_list.c | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/peep/peep.c b/src/peep/peep.c index 309c1d8817..47fc16acc6 100644 --- a/src/peep/peep.c +++ b/src/peep/peep.c @@ -9661,7 +9661,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; } diff --git a/src/ride/ride.c b/src/ride/ride.c index 164be62d61..4c5d5175dc 100644 --- a/src/ride/ride.c +++ b/src/ride/ride.c @@ -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, diff --git a/src/windows/guest.c b/src/windows/guest.c index 2d1d018409..377fdb33d8 100644 --- a/src/windows/guest.c +++ b/src/windows/guest.c @@ -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++; } diff --git a/src/windows/ride_list.c b/src/windows/ride_list.c index 92b837be00..0f24aa57a7 100644 --- a/src/windows/ride_list.c +++ b/src/windows/ride_list.c @@ -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; } From 040a35f2540adcd8d452c0124bf3640bbcb41d2e Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Wed, 3 Aug 2016 00:36:58 +0200 Subject: [PATCH 05/12] Inline `0xF4413E` as local variable --- src/ride/track.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/ride/track.c b/src/ride/track.c index 8245851d0a..7713b1c155 100644 --- a/src/ride/track.c +++ b/src/ride/track.c @@ -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; } /** From fc750583f9639e2dbe30c52ba987acc450c248d5 Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Wed, 3 Aug 2016 15:28:43 +0200 Subject: [PATCH 06/12] Use MAP_ELEMENT_TYPE_FLAG_HIGHLIGHT --- src/ride/track_paint.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ride/track_paint.c b/src/ride/track_paint.c index 638e03c4f6..1351708470 100644 --- a/src/ride/track_paint.c +++ b/src/ride/track_paint.c @@ -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; From 6bdc2206d9e2d6746107917ce0472d13d96951a6 Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Thu, 4 Aug 2016 10:28:09 +0200 Subject: [PATCH 07/12] Use `gPaintInteractionType` --- src/ride/thrill/motion_simulator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ride/thrill/motion_simulator.c b/src/ride/thrill/motion_simulator.c index 433270fc1f..41463fb3b5 100644 --- a/src/ride/thrill/motion_simulator.c +++ b/src/ride/thrill/motion_simulator.c @@ -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; } } From bb1ea5c9c7d3da0e400ace5d7e38b49b5984c840 Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Thu, 4 Aug 2016 14:35:08 +0200 Subject: [PATCH 08/12] Use `construction_markers` --- src/paint/map_element/path.c | 4 ++-- src/paint/map_element/scenery.c | 2 +- src/paint/map_element/scenery_multiple.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/paint/map_element/path.c b/src/paint/map_element/path.c index 9271bf19d3..b26b24304a 100644 --- a/src/paint/map_element/path.c +++ b/src/paint/map_element/path.c @@ -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); diff --git a/src/paint/map_element/scenery.c b/src/paint/map_element/scenery.c index 3d0ef8e0de..9b62a8b875 100644 --- a/src/paint/map_element/scenery.c +++ b/src/paint/map_element/scenery.c @@ -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; diff --git a/src/paint/map_element/scenery_multiple.c b/src/paint/map_element/scenery_multiple.c index f402e778f8..a4ef388648 100644 --- a/src/paint/map_element/scenery_multiple.c +++ b/src/paint/map_element/scenery_multiple.c @@ -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; From 80419556f47951c7fc69e3ea5941fa66818a6edc Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Fri, 5 Aug 2016 10:34:23 +0200 Subject: [PATCH 09/12] Include some supports data --- src/paint/supports.c | 54 ++++++++++++++++++++++++++++++++------------ 1 file changed, 40 insertions(+), 14 deletions(-) diff --git a/src/paint/supports.c b/src/paint/supports.c index a4872e29d7..ecd0dd475d 100644 --- a/src/paint/supports.c +++ b/src/paint/supports.c @@ -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; From 443d508fb0a766cb60739c252e8b47b22658d2c2 Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Fri, 5 Aug 2016 10:34:48 +0200 Subject: [PATCH 10/12] Include some peep data --- src/peep/peep.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/peep/peep.c b/src/peep/peep.c index 47fc16acc6..362308763a 100644 --- a/src/peep/peep.c +++ b/src/peep/peep.c @@ -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 { From d556281a5a17d65442dc9975a1c42387ec1c2e40 Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Fri, 5 Aug 2016 11:33:04 +0200 Subject: [PATCH 11/12] Include RideColourPresets --- src/ride/ride.c | 4 +- src/ride/ride_data.c | 598 +++++++++++++++++++++++++++++++++++++++++++ src/ride/ride_data.h | 2 + 3 files changed, 602 insertions(+), 2 deletions(-) diff --git a/src/ride/ride.c b/src/ride/ride.c index 4c5d5175dc..bb66dea383 100644 --- a/src/ride/ride.c +++ b/src/ride/ride.c @@ -5837,7 +5837,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++) { @@ -5859,7 +5859,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; diff --git a/src/ride/ride_data.c b/src/ride/ride_data.c index 75cb91fd5c..2b7e7c9e76 100644 --- a/src/ride/ride_data.c +++ b/src/ride/ride_data.c @@ -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,600 @@ 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__}} + +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 + TRACK_COLOUR_PRESETS( + { COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED }, + ), + + // RIDE_TYPE_1D + TRACK_COLOUR_PRESETS( + { COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED }, + ), + + // RIDE_TYPE_DRINK_STALL + TRACK_COLOUR_PRESETS( + { COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED }, + ), + + // RIDE_TYPE_1F + TRACK_COLOUR_PRESETS( + { COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED }, + ), + + // RIDE_TYPE_SHOP + TRACK_COLOUR_PRESETS( + { COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED }, + ), + + // RIDE_TYPE_MERRY_GO_ROUND + TRACK_COLOUR_PRESETS( + { COLOUR_BRIGHT_RED, COLOUR_LIGHT_BLUE, COLOUR_YELLOW }, + ), + + // RIDE_TYPE_22 + TRACK_COLOUR_PRESETS( + { COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED }, + ), + + // RIDE_TYPE_INFORMATION_KIOSK + TRACK_COLOUR_PRESETS( + { COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED }, + ), + + // RIDE_TYPE_TOILETS + TRACK_COLOUR_PRESETS( + { COLOUR_BRIGHT_RED, COLOUR_LIGHT_BLUE, COLOUR_YELLOW }, + ), + + // RIDE_TYPE_FERRIS_WHEEL + TRACK_COLOUR_PRESETS( + { COLOUR_BLACK, COLOUR_BLACK, COLOUR_BLACK }, + { COLOUR_GREY, COLOUR_GREY, COLOUR_GREY }, + ), + + // RIDE_TYPE_MOTION_SIMULATOR + TRACK_COLOUR_PRESETS( + { COLOUR_BRIGHT_RED, COLOUR_LIGHT_BLUE, COLOUR_YELLOW }, + ), + + // RIDE_TYPE_3D_CINEMA + TRACK_COLOUR_PRESETS( + { COLOUR_BRIGHT_RED, COLOUR_LIGHT_BLUE, COLOUR_YELLOW }, + ), + + // 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 + TRACK_COLOUR_PRESETS( + { COLOUR_BRIGHT_RED, COLOUR_LIGHT_BLUE, COLOUR_YELLOW }, + ), + + // 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 + TRACK_COLOUR_PRESETS( + { COLOUR_BRIGHT_RED, COLOUR_LIGHT_BLUE, COLOUR_YELLOW }, + ), + + // RIDE_TYPE_TWIST + TRACK_COLOUR_PRESETS( + { COLOUR_BRIGHT_RED, COLOUR_LIGHT_BLUE, COLOUR_YELLOW }, + ), + + // RIDE_TYPE_HAUNTED_HOUSE + TRACK_COLOUR_PRESETS( + { COLOUR_BRIGHT_RED, COLOUR_LIGHT_BLUE, COLOUR_YELLOW }, + ), + + // RIDE_TYPE_FIRST_AID + TRACK_COLOUR_PRESETS( + { COLOUR_BRIGHT_RED, COLOUR_LIGHT_BLUE, COLOUR_YELLOW }, + ), + + // RIDE_TYPE_CIRCUS_SHOW + TRACK_COLOUR_PRESETS( + { COLOUR_BRIGHT_RED, COLOUR_LIGHT_BLUE, COLOUR_YELLOW }, + ), + + // 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 + TRACK_COLOUR_PRESETS( + { COLOUR_BRIGHT_RED, COLOUR_LIGHT_BLUE, COLOUR_YELLOW }, + ), + + // RIDE_TYPE_ENTERPRISE + TRACK_COLOUR_PRESETS( + { COLOUR_BRIGHT_RED, COLOUR_LIGHT_BLUE, COLOUR_YELLOW }, + ), + + // RIDE_TYPE_52 + TRACK_COLOUR_PRESETS( + { COLOUR_BRIGHT_RED, COLOUR_LIGHT_BLUE, COLOUR_YELLOW }, + ), + + // RIDE_TYPE_53 + TRACK_COLOUR_PRESETS( + { COLOUR_BRIGHT_RED, COLOUR_LIGHT_BLUE, COLOUR_YELLOW }, + ), + + // RIDE_TYPE_54 + TRACK_COLOUR_PRESETS( + { COLOUR_BRIGHT_RED, COLOUR_LIGHT_BLUE, COLOUR_YELLOW }, + ), + + // 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 }, + ), +}; diff --git a/src/ride/ride_data.h b/src/ride/ride_data.h index 391f603757..307a38261d 100644 --- a/src/ride/ride_data.h +++ b/src/ride/ride_data.h @@ -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 From b707053fce425fb253c3f9b052fcf5edad6ece5a Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Fri, 5 Aug 2016 15:12:03 +0200 Subject: [PATCH 12/12] Add defines for colour groups --- src/ride/ride_data.c | 93 +++++++++++++------------------------------- 1 file changed, 26 insertions(+), 67 deletions(-) diff --git a/src/ride/ride_data.c b/src/ride/ride_data.c index 2b7e7c9e76..71d3797b15 100644 --- a/src/ride/ride_data.c +++ b/src/ride/ride_data.c @@ -2485,7 +2485,10 @@ const uint8 RideConstructionDefaultTrackType[] = { TRACK_ELEM_END_STATION, // RIDE_TYPE_LIM_LAUNCHED_ROLLER_COASTER }; -#define TRACK_COLOUR_PRESETS(...) {countof(((track_colour[]){__VA_ARGS__})), {__VA_ARGS__}} +#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 @@ -2693,49 +2696,31 @@ const track_colour_preset_list RideColourPresets[] = { ), // RIDE_TYPE_FOOD_STALL - TRACK_COLOUR_PRESETS( - { COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED }, - ), + DEFAULT_STALL_COLOUR_PRESET, // RIDE_TYPE_1D - TRACK_COLOUR_PRESETS( - { COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED }, - ), + DEFAULT_STALL_COLOUR_PRESET, // RIDE_TYPE_DRINK_STALL - TRACK_COLOUR_PRESETS( - { COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED }, - ), + DEFAULT_STALL_COLOUR_PRESET, // RIDE_TYPE_1F - TRACK_COLOUR_PRESETS( - { COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED }, - ), + DEFAULT_STALL_COLOUR_PRESET, // RIDE_TYPE_SHOP - TRACK_COLOUR_PRESETS( - { COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED }, - ), + DEFAULT_STALL_COLOUR_PRESET, // RIDE_TYPE_MERRY_GO_ROUND - TRACK_COLOUR_PRESETS( - { COLOUR_BRIGHT_RED, COLOUR_LIGHT_BLUE, COLOUR_YELLOW }, - ), + DEFAULT_FLAT_RIDE_COLOUR_PRESET, // RIDE_TYPE_22 - TRACK_COLOUR_PRESETS( - { COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED }, - ), + DEFAULT_STALL_COLOUR_PRESET, // RIDE_TYPE_INFORMATION_KIOSK - TRACK_COLOUR_PRESETS( - { COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED }, - ), + DEFAULT_STALL_COLOUR_PRESET, // RIDE_TYPE_TOILETS - TRACK_COLOUR_PRESETS( - { COLOUR_BRIGHT_RED, COLOUR_LIGHT_BLUE, COLOUR_YELLOW }, - ), + DEFAULT_FLAT_RIDE_COLOUR_PRESET, // RIDE_TYPE_FERRIS_WHEEL TRACK_COLOUR_PRESETS( @@ -2744,14 +2729,10 @@ const track_colour_preset_list RideColourPresets[] = { ), // RIDE_TYPE_MOTION_SIMULATOR - TRACK_COLOUR_PRESETS( - { COLOUR_BRIGHT_RED, COLOUR_LIGHT_BLUE, COLOUR_YELLOW }, - ), + DEFAULT_FLAT_RIDE_COLOUR_PRESET, // RIDE_TYPE_3D_CINEMA - TRACK_COLOUR_PRESETS( - { COLOUR_BRIGHT_RED, COLOUR_LIGHT_BLUE, COLOUR_YELLOW }, - ), + DEFAULT_FLAT_RIDE_COLOUR_PRESET, // RIDE_TYPE_TOP_SPIN TRACK_COLOUR_PRESETS( @@ -2761,9 +2742,7 @@ const track_colour_preset_list RideColourPresets[] = { ), // RIDE_TYPE_SPACE_RINGS - TRACK_COLOUR_PRESETS( - { COLOUR_BRIGHT_RED, COLOUR_LIGHT_BLUE, COLOUR_YELLOW }, - ), + DEFAULT_FLAT_RIDE_COLOUR_PRESET, // RIDE_TYPE_REVERSE_FREEFALL_COASTER TRACK_COLOUR_PRESETS( @@ -2786,29 +2765,19 @@ const track_colour_preset_list RideColourPresets[] = { ), // RIDE_TYPE_CASH_MACHINE - TRACK_COLOUR_PRESETS( - { COLOUR_BRIGHT_RED, COLOUR_LIGHT_BLUE, COLOUR_YELLOW }, - ), + DEFAULT_FLAT_RIDE_COLOUR_PRESET, // RIDE_TYPE_TWIST - TRACK_COLOUR_PRESETS( - { COLOUR_BRIGHT_RED, COLOUR_LIGHT_BLUE, COLOUR_YELLOW }, - ), + DEFAULT_FLAT_RIDE_COLOUR_PRESET, // RIDE_TYPE_HAUNTED_HOUSE - TRACK_COLOUR_PRESETS( - { COLOUR_BRIGHT_RED, COLOUR_LIGHT_BLUE, COLOUR_YELLOW }, - ), + DEFAULT_FLAT_RIDE_COLOUR_PRESET, // RIDE_TYPE_FIRST_AID - TRACK_COLOUR_PRESETS( - { COLOUR_BRIGHT_RED, COLOUR_LIGHT_BLUE, COLOUR_YELLOW }, - ), + DEFAULT_FLAT_RIDE_COLOUR_PRESET, // RIDE_TYPE_CIRCUS_SHOW - TRACK_COLOUR_PRESETS( - { COLOUR_BRIGHT_RED, COLOUR_LIGHT_BLUE, COLOUR_YELLOW }, - ), + DEFAULT_FLAT_RIDE_COLOUR_PRESET, // RIDE_TYPE_GHOST_TRAIN TRACK_COLOUR_PRESETS( @@ -3019,29 +2988,19 @@ const track_colour_preset_list RideColourPresets[] = { ), // RIDE_TYPE_50 - TRACK_COLOUR_PRESETS( - { COLOUR_BRIGHT_RED, COLOUR_LIGHT_BLUE, COLOUR_YELLOW }, - ), + DEFAULT_FLAT_RIDE_COLOUR_PRESET, // RIDE_TYPE_ENTERPRISE - TRACK_COLOUR_PRESETS( - { COLOUR_BRIGHT_RED, COLOUR_LIGHT_BLUE, COLOUR_YELLOW }, - ), + DEFAULT_FLAT_RIDE_COLOUR_PRESET, // RIDE_TYPE_52 - TRACK_COLOUR_PRESETS( - { COLOUR_BRIGHT_RED, COLOUR_LIGHT_BLUE, COLOUR_YELLOW }, - ), + DEFAULT_FLAT_RIDE_COLOUR_PRESET, // RIDE_TYPE_53 - TRACK_COLOUR_PRESETS( - { COLOUR_BRIGHT_RED, COLOUR_LIGHT_BLUE, COLOUR_YELLOW }, - ), + DEFAULT_FLAT_RIDE_COLOUR_PRESET, // RIDE_TYPE_54 - TRACK_COLOUR_PRESETS( - { COLOUR_BRIGHT_RED, COLOUR_LIGHT_BLUE, COLOUR_YELLOW }, - ), + DEFAULT_FLAT_RIDE_COLOUR_PRESET, // RIDE_TYPE_55 TRACK_COLOUR_PRESETS(