Skip to content

Commit

Permalink
Merge pull request #8543 from IntelOrca/refactor-ride
Browse files Browse the repository at this point in the history
Refactor ride structure
  • Loading branch information
Gymnasiast committed Jan 2, 2019
2 parents b7d1d49 + d979511 commit 31298bd
Show file tree
Hide file tree
Showing 41 changed files with 444 additions and 436 deletions.
2 changes: 1 addition & 1 deletion src/openrct2-ui/interface/ViewportInteraction.cpp
Expand Up @@ -303,7 +303,7 @@ int32_t viewport_interaction_get_item_right(int32_t x, int32_t y, viewport_inter
stationIndex = tileElement->AsTrack()->GetStationIndex();

for (i = stationIndex; i >= 0; i--)
if (ride->station_starts[i].xy == RCT_XY8_UNDEFINED)
if (ride->stations[i].Start.xy == RCT_XY8_UNDEFINED)
stationIndex--;
stationIndex++;
set_map_tooltip_format_arg(12, uint16_t, stationIndex);
Expand Down
30 changes: 15 additions & 15 deletions src/openrct2-ui/windows/Ride.cpp
Expand Up @@ -1625,7 +1625,7 @@ static rct_window* window_ride_open_station(int32_t rideIndex, int32_t stationIn
// View
for (i = stationIndex; i >= 0; i--)
{
if (ride->station_starts[i].xy == RCT_XY8_UNDEFINED)
if (ride->stations[i].Start.xy == RCT_XY8_UNDEFINED)
{
stationIndex--;
}
Expand Down Expand Up @@ -1873,17 +1873,17 @@ static void window_ride_init_viewport(rct_window* w)
do
{
stationIndex++;
if (ride->station_starts[stationIndex].xy != RCT_XY8_UNDEFINED)
if (ride->stations[stationIndex].Start.xy != RCT_XY8_UNDEFINED)
{
count--;
}
} while (count >= 0);

LocationXY8 location = ride->station_starts[stationIndex];
LocationXY8 location = ride->stations[stationIndex].Start;

focus.coordinate.x = location.x * 32;
focus.coordinate.y = location.y * 32;
focus.coordinate.z = ride->station_heights[stationIndex] << 3;
focus.coordinate.z = ride->stations[stationIndex].Height << 3;
focus.sprite.type |= VIEWPORT_FOCUS_TYPE_COORDINATE;
}
else
Expand Down Expand Up @@ -2697,7 +2697,7 @@ static rct_string_id window_ride_get_status_station(rct_window* w, void* argumen
do
{
stationIndex++;
if (ride->station_starts[stationIndex].xy != RCT_XY8_UNDEFINED)
if (ride->stations[stationIndex].Start.xy != RCT_XY8_UNDEFINED)
count--;
} while (count >= 0);

Expand All @@ -2718,7 +2718,7 @@ static rct_string_id window_ride_get_status_station(rct_window* w, void* argumen
// Queue length
if (stringId == 0)
{
int32_t queueLength = ride->queue_length[stationIndex];
int32_t queueLength = ride->stations[stationIndex].QueueLength;
set_format_arg_body(static_cast<uint8_t*>(arguments), 2, (uintptr_t)queueLength, sizeof(uint16_t));
stringId = STR_QUEUE_EMPTY;
if (queueLength == 1)
Expand Down Expand Up @@ -4386,13 +4386,13 @@ static void window_ride_colour_mousedown(rct_window* w, rct_widgetindex widgetIn
dropdown_set_checked(colourSchemeIndex, true);
break;
case WIDX_TRACK_MAIN_COLOUR:
window_dropdown_show_colour(w, widget, w->colours[1], ride->track_colour_main[colourSchemeIndex]);
window_dropdown_show_colour(w, widget, w->colours[1], ride->track_colour[colourSchemeIndex].main);
break;
case WIDX_TRACK_ADDITIONAL_COLOUR:
window_dropdown_show_colour(w, widget, w->colours[1], ride->track_colour_additional[colourSchemeIndex]);
window_dropdown_show_colour(w, widget, w->colours[1], ride->track_colour[colourSchemeIndex].additional);
break;
case WIDX_TRACK_SUPPORT_COLOUR:
window_dropdown_show_colour(w, widget, w->colours[1], ride->track_colour_supports[colourSchemeIndex]);
window_dropdown_show_colour(w, widget, w->colours[1], ride->track_colour[colourSchemeIndex].supports);
break;
case WIDX_MAZE_STYLE_DROPDOWN:
for (i = 0; i < 4; i++)
Expand All @@ -4405,7 +4405,7 @@ static void window_ride_colour_mousedown(rct_window* w, rct_widgetindex widgetIn
w->x + dropdownWidget->left, w->y + dropdownWidget->top, dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, 4, widget->right - dropdownWidget->left);

dropdown_set_checked(ride->track_colour_supports[colourSchemeIndex], true);
dropdown_set_checked(ride->track_colour[colourSchemeIndex].supports, true);
break;
case WIDX_ENTRANCE_STYLE_DROPDOWN:
{
Expand Down Expand Up @@ -4595,7 +4595,7 @@ static void window_ride_colour_invalidate(rct_window* w)
rct_widget* widgets;
rct_ride_entry* rideEntry;
Ride* ride;
track_colour trackColour;
TrackColour trackColour;
vehicle_colour vehicleColour;

widgets = window_ride_page_widgets[w->page];
Expand Down Expand Up @@ -4836,7 +4836,7 @@ static void window_ride_colour_paint(rct_window* w, rct_drawpixelinfo* dpi)
dpi, w->x + widget->left + 1, w->y + widget->top + 1, w->x + widget->right - 1, w->y + widget->bottom - 1,
PALETTE_INDEX_12);

track_colour trackColour = ride_get_track_colour(ride, w->ride_colour);
auto trackColour = ride_get_track_colour(ride, w->ride_colour);

//
if (rideEntry->shop_item == SHOP_ITEM_NONE)
Expand Down Expand Up @@ -4876,7 +4876,7 @@ static void window_ride_colour_paint(rct_window* w, rct_drawpixelinfo* dpi)
uint8_t shopItem = rideEntry->shop_item_secondary == SHOP_ITEM_NONE ? rideEntry->shop_item
: rideEntry->shop_item_secondary;
int32_t spriteIndex = ShopItemImage[shopItem];
spriteIndex |= SPRITE_ID_PALETTE_COLOUR_1(ride->track_colour_main[0]);
spriteIndex |= SPRITE_ID_PALETTE_COLOUR_1(ride->track_colour[0].main);

gfx_draw_sprite(dpi, spriteIndex, x, y, 0);
}
Expand Down Expand Up @@ -5581,7 +5581,7 @@ static void window_ride_measurements_paint(rct_window* w, rct_drawpixelinfo* dpi
int32_t numTimes = 0;
for (int32_t i = 0; i < ride->num_stations; i++)
{
time = ride->time[numTimes];
time = ride->stations[numTimes].SegmentTime;
if (time != 0)
{
set_format_arg(0 + (numTimes * 4), uint16_t, STR_RIDE_TIME_ENTRY_WITH_SEPARATOR);
Expand Down Expand Up @@ -5613,7 +5613,7 @@ static void window_ride_measurements_paint(rct_window* w, rct_drawpixelinfo* dpi
int32_t numLengths = 0;
for (int32_t i = 0; i < ride->num_stations; i++)
{
length = ride->length[numLengths];
length = ride->stations[numLengths].SegmentLength;
if (length != 0)
{
length >>= 16;
Expand Down
4 changes: 2 additions & 2 deletions src/openrct2/Cheats.cpp
Expand Up @@ -370,8 +370,8 @@ static void cheat_remove_all_guests()

for (size_t stationIndex = 0; stationIndex < MAX_STATIONS; stationIndex++)
{
ride->queue_length[stationIndex] = 0;
ride->last_peep_in_queue[stationIndex] = SPRITE_INDEX_NULL;
ride->stations[stationIndex].QueueLength = 0;
ride->stations[stationIndex].LastPeepInQueue = SPRITE_INDEX_NULL;
}

for (auto trainIndex : ride->vehicles)
Expand Down
4 changes: 2 additions & 2 deletions src/openrct2/actions/MazeSetTrackAction.hpp
Expand Up @@ -243,8 +243,8 @@ DEFINE_GAME_ACTION(MazeSetTrackAction, GAME_COMMAND_SET_MAZE_TRACK, GameActionRe
map_invalidate_tile_full(flooredX, flooredY);

ride->maze_tiles++;
ride->station_heights[0] = tileElement->base_height;
ride->station_starts[0].xy = 0;
ride->stations[0].Height = tileElement->base_height;
ride->stations[0].Start.xy = 0;

if (_initialPlacement && !(flags & GAME_COMMAND_FLAG_GHOST))
{
Expand Down
6 changes: 3 additions & 3 deletions src/openrct2/actions/RideCreateAction.hpp
Expand Up @@ -148,11 +148,11 @@ DEFINE_GAME_ACTION(RideCreateAction, GAME_COMMAND_CREATE_RIDE, RideCreateGameAct

for (int32_t i = 0; i < MAX_STATIONS; i++)
{
ride->station_starts[i].xy = RCT_XY8_UNDEFINED;
ride->stations[i].Start.xy = RCT_XY8_UNDEFINED;
ride_clear_entrance_location(ride, i);
ride_clear_exit_location(ride, i);
ride->train_at_station[i] = 255;
ride->queue_time[i] = 0;
ride->stations[i].TrainAtStation = 255;
ride->stations[i].QueueTime = 0;
}

for (auto& vehicle : ride->vehicles)
Expand Down
2 changes: 1 addition & 1 deletion src/openrct2/management/Award.cpp
Expand Up @@ -563,7 +563,7 @@ static bool award_is_deserved_most_dazzling_ride_colours(int32_t activeAwardType

countedRides++;

mainTrackColour = ride->track_colour_main[0];
mainTrackColour = ride->track_colour[0].main;
for (auto dazzling_ride_colour : dazzling_ride_colours)
{
if (mainTrackColour == dazzling_ride_colour)
Expand Down
6 changes: 3 additions & 3 deletions src/openrct2/paint/tile_element/Paint.Entrance.cpp
Expand Up @@ -79,12 +79,12 @@ static void ride_entrance_exit_paint(paint_session* session, uint8_t direction,
uint32_t transparant_image_id = 0, image_id = 0;
if (stationObj->Flags & STATION_OBJECT_FLAGS::IS_TRANSPARENT)
{
colour_1 = GlassPaletteIds[ride->track_colour_main[0]];
colour_1 = GlassPaletteIds[ride->track_colour[0].main];
transparant_image_id = (colour_1 << 19) | IMAGE_TYPE_TRANSPARENT;
}

colour_1 = ride->track_colour_main[0];
colour_2 = ride->track_colour_additional[0];
colour_1 = ride->track_colour[0].main;
colour_2 = ride->track_colour[0].additional;
image_id = (colour_1 << 19) | (colour_2 << 24) | IMAGE_TYPE_REMAP | IMAGE_TYPE_REMAP_2_PLUS;

session->InteractionType = VIEWPORT_INTERACTION_ITEM_RIDE;
Expand Down

0 comments on commit 31298bd

Please sign in to comment.