From 3ad72baaae388114f684a995c941a1d5c2fcb417 Mon Sep 17 00:00:00 2001 From: ZehMatt Date: Mon, 2 Aug 2021 07:24:52 +0300 Subject: [PATCH] Cast fixes --- src/openrct2-ui/WindowManager.cpp | 13 +- .../windows/DemolishRidePrompt.cpp | 12 +- .../windows/EditorObjectiveOptions.cpp | 8 +- src/openrct2-ui/windows/Guest.cpp | 5 +- src/openrct2-ui/windows/GuestList.cpp | 6 +- src/openrct2-ui/windows/MazeConstruction.cpp | 6 +- src/openrct2-ui/windows/NewCampaign.cpp | 9 +- src/openrct2-ui/windows/Ride.cpp | 255 +++++++++--------- src/openrct2-ui/windows/RideConstruction.cpp | 10 +- src/openrct2-ui/windows/RideList.cpp | 2 +- src/openrct2-ui/windows/TileInspector.cpp | 2 +- src/openrct2-ui/windows/TrackDesignPlace.cpp | 13 +- src/openrct2/actions/ParkMarketingAction.cpp | 2 +- src/openrct2/actions/RideDemolishAction.cpp | 18 +- .../actions/RideSetAppearanceAction.cpp | 2 +- src/openrct2/actions/RideSetPriceAction.cpp | 2 +- src/openrct2/actions/RideSetSettingAction.cpp | 2 +- src/openrct2/actions/RideSetStatusAction.cpp | 8 +- src/openrct2/actions/RideSetVehicleAction.cpp | 2 +- src/openrct2/interface/InteractiveConsole.cpp | 14 +- src/openrct2/management/NewsItem.cpp | 2 +- src/openrct2/peep/GuestPathfinding.cpp | 4 +- src/openrct2/rct12/RCT12.cpp | 4 +- src/openrct2/ride/Ride.cpp | 40 +-- src/openrct2/ride/RideConstruction.cpp | 4 +- src/openrct2/ride/RideRatings.cpp | 10 +- src/openrct2/ride/TrackDesign.cpp | 9 +- src/openrct2/ride/Vehicle.cpp | 11 +- src/openrct2/scripting/ScriptEngine.cpp | 2 +- 29 files changed, 256 insertions(+), 221 deletions(-) diff --git a/src/openrct2-ui/WindowManager.cpp b/src/openrct2-ui/WindowManager.cpp index 850a2122ef..bdcb8a0c9a 100644 --- a/src/openrct2-ui/WindowManager.cpp +++ b/src/openrct2-ui/WindowManager.cpp @@ -184,9 +184,9 @@ public: case WD_BANNER: return window_banner_open(id); case WD_DEMOLISH_RIDE: - return window_ride_demolish_prompt_open(get_ride(id)); + return window_ride_demolish_prompt_open(get_ride(static_cast(id))); case WD_REFURBISH_RIDE: - return window_ride_refurbish_prompt_open(get_ride(id)); + return window_ride_refurbish_prompt_open(get_ride(static_cast(id))); case WD_NEW_CAMPAIGN: return window_new_campaign_open(id); case WD_SIGN: @@ -264,7 +264,8 @@ public: } case WC_RIDE: { - auto ride = get_ride(intent->GetSIntExtra(INTENT_EXTRA_RIDE_ID)); + const auto rideId = static_cast(intent->GetSIntExtra(INTENT_EXTRA_RIDE_ID)); + auto ride = get_ride(rideId); return ride == nullptr ? nullptr : window_ride_main_open(ride); } case WC_TRACK_DESIGN_PLACE: @@ -343,13 +344,13 @@ public: if (w == nullptr || w->number != rideIndex) { window_close_construction_windows(); - _currentRideIndex = rideIndex; + _currentRideIndex = static_cast(rideIndex); w = OpenWindow(WC_RIDE_CONSTRUCTION); } else { ride_construction_invalidate_current_track(); - _currentRideIndex = rideIndex; + _currentRideIndex = static_cast(rideIndex); } break; } @@ -395,7 +396,7 @@ public: case INTENT_ACTION_INVALIDATE_VEHICLE_WINDOW: { auto vehicle = static_cast(intent.GetPointerExtra(INTENT_EXTRA_VEHICLE)); - auto w = window_find_by_number(WC_RIDE, vehicle->ride); + auto w = window_find_by_number(WC_RIDE, static_cast(vehicle->ride)); if (w == nullptr) return; diff --git a/src/openrct2-ui/windows/DemolishRidePrompt.cpp b/src/openrct2-ui/windows/DemolishRidePrompt.cpp index 395bd145cf..88f61a5d8b 100644 --- a/src/openrct2-ui/windows/DemolishRidePrompt.cpp +++ b/src/openrct2-ui/windows/DemolishRidePrompt.cpp @@ -84,7 +84,7 @@ rct_window* window_ride_demolish_prompt_open(Ride* ride) w->widgets = window_ride_demolish_widgets; w->enabled_widgets = (1ULL << WIDX_CLOSE) | (1ULL << WIDX_CANCEL) | (1ULL << WIDX_DEMOLISH); WindowInitScrollWidgets(w); - w->number = ride->id; + w->number = static_cast(ride->id); _demolishRideCost = -ride_get_refund_price(ride); return w; @@ -109,7 +109,7 @@ rct_window* window_ride_refurbish_prompt_open(Ride* ride) w->widgets = window_ride_refurbish_widgets; w->enabled_widgets = (1ULL << WIDX_CLOSE) | (1ULL << WIDX_CANCEL) | (1ULL << WIDX_REFURBISH); WindowInitScrollWidgets(w); - w->number = ride->id; + w->number = static_cast(ride->id); _demolishRideCost = -ride_get_refund_price(ride); return w; @@ -125,7 +125,7 @@ static void window_ride_demolish_mouseup(rct_window* w, rct_widgetindex widgetIn { case WIDX_DEMOLISH: { - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); ride_action_modify(ride, RIDE_MODIFY_DEMOLISH, GAME_COMMAND_FLAG_APPLY); break; } @@ -142,7 +142,7 @@ static void window_ride_refurbish_mouseup(rct_window* w, rct_widgetindex widgetI { case WIDX_REFURBISH: { - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); ride_action_modify(ride, RIDE_MODIFY_RENEW, GAME_COMMAND_FLAG_APPLY); break; } @@ -161,7 +161,7 @@ static void window_ride_demolish_paint(rct_window* w, rct_drawpixelinfo* dpi) { WindowDrawWidgets(w, dpi); - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride != nullptr) { auto stringId = (gParkFlags & PARK_FLAGS_NO_MONEY) ? STR_DEMOLISH_RIDE_ID : STR_DEMOLISH_RIDE_ID_MONEY; @@ -178,7 +178,7 @@ static void window_ride_refurbish_paint(rct_window* w, rct_drawpixelinfo* dpi) { WindowDrawWidgets(w, dpi); - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride != nullptr) { auto stringId = (gParkFlags & PARK_FLAGS_NO_MONEY) ? STR_REFURBISH_RIDE_ID_NO_MONEY : STR_REFURBISH_RIDE_ID_MONEY; diff --git a/src/openrct2-ui/windows/EditorObjectiveOptions.cpp b/src/openrct2-ui/windows/EditorObjectiveOptions.cpp index bd3c0357ae..50bb176749 100644 --- a/src/openrct2-ui/windows/EditorObjectiveOptions.cpp +++ b/src/openrct2-ui/windows/EditorObjectiveOptions.cpp @@ -972,7 +972,7 @@ static void window_editor_objective_options_rides_update(rct_window* w) { if (ride.IsRide()) { - w->list_item_positions[numItems] = ride.id; + w->list_item_positions[numItems] = static_cast(ride.id); numItems++; } } @@ -1005,7 +1005,8 @@ static void window_editor_objective_options_rides_scrollmousedown( if (i < 0 || i >= w->no_list_items) return; - auto ride = get_ride(w->list_item_positions[i]); + const auto rideId = static_cast(w->list_item_positions[i]); + auto ride = get_ride(rideId); if (ride != nullptr) { ride->lifecycle_flags ^= RIDE_LIFECYCLE_INDESTRUCTIBLE; @@ -1098,7 +1099,8 @@ static void window_editor_objective_options_rides_scrollpaint(rct_window* w, rct } // Checkbox mark - auto ride = get_ride(w->list_item_positions[i]); + const auto rideId = static_cast(w->list_item_positions[i]); + auto ride = get_ride(rideId); if (ride != nullptr) { if (ride->lifecycle_flags & RIDE_LIFECYCLE_INDESTRUCTIBLE) diff --git a/src/openrct2-ui/windows/Guest.cpp b/src/openrct2-ui/windows/Guest.cpp index 4e62cf9142..4c35e18d02 100644 --- a/src/openrct2-ui/windows/Guest.cpp +++ b/src/openrct2-ui/windows/Guest.cpp @@ -1456,7 +1456,7 @@ void window_guest_rides_update(rct_window* w) { if (ride.IsRide() && guest->HasRidden(&ride)) { - w->list_item_positions[curr_list_position] = ride.id; + w->list_item_positions[curr_list_position] = static_cast(ride.id); curr_list_position++; } } @@ -1607,7 +1607,8 @@ void window_guest_rides_scroll_paint(rct_window* w, rct_drawpixelinfo* dpi, int3 stringId = STR_WINDOW_COLOUR_2_STRINGID; } - auto ride = get_ride(w->list_item_positions[list_index]); + const auto rideId = static_cast(w->list_item_positions[list_index]); + auto ride = get_ride(rideId); if (ride != nullptr) { auto ft = Formatter(); diff --git a/src/openrct2-ui/windows/GuestList.cpp b/src/openrct2-ui/windows/GuestList.cpp index d1b2d29c4b..cc3b1254c9 100644 --- a/src/openrct2-ui/windows/GuestList.cpp +++ b/src/openrct2-ui/windows/GuestList.cpp @@ -182,7 +182,7 @@ public: { case GuestListFilterType::GuestsOnRide: { - auto guestRide = get_ride(index); + auto guestRide = get_ride(static_cast(index)); if (guestRide != nullptr) { ft.Add( @@ -198,7 +198,7 @@ public: } case GuestListFilterType::GuestsInQueue: { - auto guestRide = get_ride(index); + auto guestRide = get_ride(static_cast(index)); if (guestRide != nullptr) { ft.Add(STR_QUEUING_FOR); @@ -213,7 +213,7 @@ public: } case GuestListFilterType::GuestsThinkingAboutRide: { - auto guestRide = get_ride(index); + auto guestRide = get_ride(static_cast(index)); if (guestRide != nullptr) { ft.Add(STR_NONE); diff --git a/src/openrct2-ui/windows/MazeConstruction.cpp b/src/openrct2-ui/windows/MazeConstruction.cpp index 8ba2e75354..9d7a3654cc 100644 --- a/src/openrct2-ui/windows/MazeConstruction.cpp +++ b/src/openrct2-ui/windows/MazeConstruction.cpp @@ -130,7 +130,7 @@ rct_window* window_maze_construction_open() WindowInitScrollWidgets(w); - w->number = _currentRideIndex; + w->number = static_cast(_currentRideIndex); window_push_others_right(w); show_gridlines(); @@ -169,7 +169,7 @@ static void window_maze_construction_close(rct_window* w) else { auto intent = Intent(WC_RIDE); - intent.putExtra(INTENT_EXTRA_RIDE_ID, ride->id); + intent.putExtra(INTENT_EXTRA_RIDE_ID, static_cast(ride->id)); context_open_intent(&intent); } } @@ -181,7 +181,7 @@ static void window_maze_construction_entrance_mouseup(rct_window* w, rct_widgeti return; gRideEntranceExitPlaceType = widgetIndex == WIDX_MAZE_ENTRANCE ? ENTRANCE_TYPE_RIDE_ENTRANCE : ENTRANCE_TYPE_RIDE_EXIT; - gRideEntranceExitPlaceRideIndex = static_cast(w->number); + gRideEntranceExitPlaceRideIndex = static_cast(w->number); gRideEntranceExitPlaceStationIndex = 0; input_set_flag(INPUT_FLAG_6, true); diff --git a/src/openrct2-ui/windows/NewCampaign.cpp b/src/openrct2-ui/windows/NewCampaign.cpp index d1ad6aa8d9..78139854cb 100644 --- a/src/openrct2-ui/windows/NewCampaign.cpp +++ b/src/openrct2-ui/windows/NewCampaign.cpp @@ -22,7 +22,9 @@ static constexpr const rct_string_id WINDOW_TITLE = STR_NONE; static constexpr const int32_t WH = 109; static constexpr const int32_t WW = 350; -constexpr uint16_t SELECTED_RIDE_UNDEFINED = 0xFFFF; + +constexpr auto SELECTED_RIDE_UNDEFINED = RIDE_ID_NULL; +constexpr uint16_t SELECTED_ITEM_UNDEFINED = 0xFFFF; // clang-format off enum WINDOW_NEW_CAMPAIGN_WIDGET_IDX { @@ -252,7 +254,8 @@ public: break; case WIDX_START_BUTTON: { - auto gameAction = ParkMarketingAction(campaign.campaign_type, campaign.RideId, campaign.no_weeks); + auto gameAction = ParkMarketingAction( + campaign.campaign_type, static_cast(campaign.RideId), campaign.no_weeks); gameAction.SetCallback([](const GameAction* ga, const GameActions::Result* result) { if (result->Error == GameActions::Status::Ok) { @@ -322,7 +325,7 @@ public: widgets[WIDX_RIDE_DROPDOWN].type = WindowWidgetType::DropdownMenu; widgets[WIDX_RIDE_DROPDOWN_BUTTON].type = WindowWidgetType::Button; widgets[WIDX_RIDE_LABEL].text = STR_MARKETING_ITEM; - if (campaign.ShopItemId != SELECTED_RIDE_UNDEFINED) + if (campaign.ShopItemId != SELECTED_ITEM_UNDEFINED) { widgets[WIDX_RIDE_DROPDOWN].text = GetShopItemDescriptor(ShopItem(campaign.ShopItemId)).Naming.Plural; } diff --git a/src/openrct2-ui/windows/Ride.cpp b/src/openrct2-ui/windows/Ride.cpp index b79a7cec0e..e014523787 100644 --- a/src/openrct2-ui/windows/Ride.cpp +++ b/src/openrct2-ui/windows/Ride.cpp @@ -958,7 +958,7 @@ static void window_ride_draw_tab_main(rct_drawpixelinfo* dpi, rct_window* w) rct_widgetindex widgetIndex = WIDX_TAB_1 + WINDOW_RIDE_PAGE_MAIN; if (!(w->disabled_widgets & (1LL << widgetIndex))) { - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride != nullptr) { int32_t spriteIndex = 0; @@ -1014,7 +1014,7 @@ static void window_ride_draw_tab_vehicle(rct_drawpixelinfo* dpi, rct_window* w) screenCoords = ScreenCoordsXY{ widget->width() / 2, widget->height() - 12 }; - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return; @@ -1108,7 +1108,7 @@ static void window_ride_draw_tab_images(rct_drawpixelinfo* dpi, rct_window* w) static void window_ride_disable_tabs(rct_window* w) { uint32_t disabled_tabs = 0; - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return; @@ -1192,12 +1192,12 @@ static void window_ride_update_overall_view(Ride* ride) maxz = std::max(maxz, clearZ); } - if (ride->id >= ride_overall_views.size()) + if (static_cast(ride->id) >= ride_overall_views.size()) { - ride_overall_views.resize(ride->id + 1); + ride_overall_views.resize(static_cast(ride->id) + 1); } - auto& view = ride_overall_views[ride->id]; + auto& view = ride_overall_views[static_cast(ride->id)]; view.x = (minx + maxx) / 2 + 16; view.y = (miny + maxy) / 2 + 16; view.z = (minz + maxz) / 2 - 8; @@ -1234,7 +1234,7 @@ static rct_window* window_ride_open(Ride* ride) w->widgets = window_ride_page_widgets[WINDOW_RIDE_PAGE_MAIN]; w->enabled_widgets = window_ride_page_enabled_widgets[WINDOW_RIDE_PAGE_MAIN]; w->hold_down_widgets = window_ride_page_hold_down_widgets[WINDOW_RIDE_PAGE_MAIN]; - w->number = ride->id; + w->number = static_cast(ride->id); w->page = WINDOW_RIDE_PAGE_MAIN; w->vehicleIndex = 0; @@ -1264,7 +1264,7 @@ rct_window* window_ride_main_open(Ride* ride) return nullptr; } - rct_window* w = window_bring_to_front_by_number(WC_RIDE, ride->id); + rct_window* w = window_bring_to_front_by_number(WC_RIDE, static_cast(ride->id)); if (w == nullptr) { w = window_ride_open(ride); @@ -1305,7 +1305,7 @@ static rct_window* window_ride_open_station(Ride* ride, StationIndex stationInde if (ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_NO_VEHICLES)) return window_ride_main_open(ride); - auto w = window_bring_to_front_by_number(WC_RIDE, ride->id); + auto w = window_bring_to_front_by_number(WC_RIDE, static_cast(ride->id)); if (w == nullptr) { w = window_ride_open(ride); @@ -1407,7 +1407,7 @@ rct_window* window_ride_open_vehicle(Vehicle* vehicle) view++; } - rct_window* w = window_find_by_number(WC_RIDE, ride->id); + rct_window* w = window_find_by_number(WC_RIDE, static_cast(ride->id)); if (w != nullptr) { w->Invalidate(); @@ -1442,7 +1442,8 @@ rct_window* window_ride_open_vehicle(Vehicle* vehicle) } } - w = openedPeepWindow ? window_find_by_number(WC_RIDE, ride->id) : window_bring_to_front_by_number(WC_RIDE, ride->id); + w = openedPeepWindow ? window_find_by_number(WC_RIDE, static_cast(ride->id)) + : window_bring_to_front_by_number(WC_RIDE, static_cast(ride->id)); } if (w == nullptr) @@ -1584,7 +1585,7 @@ static void window_ride_init_viewport(rct_window* w) if (w->page != WINDOW_RIDE_PAGE_MAIN) return; - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return; @@ -1716,7 +1717,7 @@ static void window_ride_init_viewport(rct_window* w) */ static void window_ride_rename(rct_window* w) { - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride != nullptr) { auto rideName = ride->GetName(); @@ -1750,11 +1751,11 @@ static void window_ride_main_mouseup(rct_window* w, rct_widgetindex widgetIndex) break; case WIDX_CONSTRUCTION: { - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride != nullptr) { ride_construct(ride); - if (window_find_by_number(WC_RIDE_CONSTRUCTION, ride->id) != nullptr) + if (window_find_by_number(WC_RIDE_CONSTRUCTION, static_cast(ride->id)) != nullptr) { window_close(w); } @@ -1775,7 +1776,7 @@ static void window_ride_main_mouseup(rct_window* w, rct_widgetindex widgetIndex) case WIDX_TEST_LIGHT: case WIDX_OPEN_LIGHT: { - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride != nullptr) { RideStatus status; @@ -1813,7 +1814,7 @@ static void window_ride_main_resize(rct_window* w) { minHeight += 20 + RCT1_LIGHT_OFFSET; - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride != nullptr) { #ifdef __SIMULATE_IN_RIDE_WINDOW__ @@ -1845,7 +1846,7 @@ static void window_ride_main_resize(rct_window* w) static void window_ride_show_view_dropdown(rct_window* w, rct_widget* widget) { rct_widget* dropdownWidget = widget - 1; - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return; @@ -1961,7 +1962,7 @@ static void window_ride_set_dropdown(RideStatusDropdownInfo& info, RideStatus st static void window_ride_show_open_dropdown(rct_window* w, rct_widget* widget) { RideStatusDropdownInfo info; - info.Ride = get_ride(w->number); + info.Ride = get_ride(static_cast(w->number)); if (info.Ride == nullptr) return; @@ -2029,7 +2030,7 @@ static void populate_ride_type_dropdown() static void window_ride_show_ride_type_dropdown(rct_window* w, rct_widget* widget) { - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return; @@ -2125,7 +2126,7 @@ static void populate_vehicle_type_dropdown(Ride* ride) static void window_ride_show_vehicle_type_dropdown(rct_window* w, rct_widget* widget) { - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return; @@ -2192,7 +2193,7 @@ static void window_ride_main_dropdown(rct_window* w, rct_widgetindex widgetIndex if (dropdownIndex == -1) { dropdownIndex = w->ride.view + 1; - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride != nullptr) { if (dropdownIndex != 0 && dropdownIndex <= ride->num_vehicles @@ -2213,7 +2214,7 @@ static void window_ride_main_dropdown(rct_window* w, rct_widgetindex widgetIndex break; case WIDX_OPEN: { - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride != nullptr) { auto status = RideStatus::Closed; @@ -2250,7 +2251,8 @@ static void window_ride_main_dropdown(rct_window* w, rct_widgetindex widgetIndex uint8_t rideType = RideDropdownData[rideLabelId].ride_type_id; if (rideType < RIDE_TYPE_COUNT) { - auto rideSetSetting = RideSetSettingAction(w->number, RideSetSetting::RideType, rideType); + const auto rideId = static_cast(w->number); + auto rideSetSetting = RideSetSettingAction(rideId, RideSetSetting::RideType, rideType); rideSetSetting.SetCallback([](const GameAction* ga, const GameActions::Result* result) { // Reset ghost track if ride construction window is open, prevents a crash // Will get set to the correct Alternative variable during set_default_next_piece. @@ -2276,7 +2278,7 @@ static void window_ride_main_update(rct_window* w) widget_invalidate(w, WIDX_TAB_1); // Update status - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride != nullptr) { if (!(ride->window_invalidate_flags & RIDE_INVALIDATE_RIDE_MAIN)) @@ -2311,7 +2313,7 @@ static void window_ride_main_textinput(rct_window* w, rct_widgetindex widgetInde if (widgetIndex != WIDX_RENAME || text == nullptr) return; - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride != nullptr) { ride_set_name(ride, text, 0); @@ -2345,7 +2347,7 @@ static void window_ride_main_invalidate(rct_window* w) window_ride_set_pressed_tab(w); - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return; @@ -2477,7 +2479,7 @@ static void window_ride_main_invalidate(rct_window* w) static rct_string_id window_ride_get_status_overall_view(rct_window* w, Formatter& ft) { auto stringId = STR_NONE; - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride != nullptr) { ride->FormatStatusTo(ft); @@ -2496,7 +2498,7 @@ static rct_string_id window_ride_get_status_overall_view(rct_window* w, Formatte */ static rct_string_id window_ride_get_status_vehicle(rct_window* w, Formatter& ft) { - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return STR_EMPTY; @@ -2544,7 +2546,7 @@ static rct_string_id window_ride_get_status_vehicle(rct_window* w, Formatter& ft */ static rct_string_id window_ride_get_status_station(rct_window* w, Formatter& ft) { - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return STR_NONE; @@ -2595,7 +2597,7 @@ static rct_string_id window_ride_get_status_station(rct_window* w, Formatter& ft */ static rct_string_id window_ride_get_status(rct_window* w, Formatter& ft) { - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (w->ride.view == 0) return window_ride_get_status_overall_view(w, ft); if (ride != nullptr && w->ride.view <= ride->num_vehicles) @@ -2625,7 +2627,7 @@ static void window_ride_main_paint(rct_window* w, rct_drawpixelinfo* dpi) } // View dropdown - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return; @@ -2707,7 +2709,7 @@ static void window_ride_vehicle_resize(rct_window* w) */ static void window_ride_vehicle_mousedown(rct_window* w, rct_widgetindex widgetIndex, rct_widget* widget) { - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return; @@ -2750,7 +2752,7 @@ static void window_ride_vehicle_dropdown(rct_window* w, rct_widgetindex widgetIn case WIDX_VEHICLE_TYPE_DROPDOWN: if (dropdownIndex >= 0 && static_cast(dropdownIndex) < VehicleDropdownData.size()) { - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride != nullptr) { auto newRideType = VehicleDropdownData[dropdownIndex].subtype_id; @@ -2775,7 +2777,7 @@ static void window_ride_vehicle_update(rct_window* w) static OpenRCT2String window_ride_vehicle_tooltip( rct_window* const w, const rct_widgetindex widgetIndex, rct_string_id fallback) { - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return { STR_NONE, {} }; @@ -2842,7 +2844,7 @@ static void window_ride_vehicle_invalidate(rct_window* w) window_ride_set_pressed_tab(w); - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return; @@ -2922,7 +2924,7 @@ static void window_ride_vehicle_paint(rct_window* w, rct_drawpixelinfo* dpi) WindowDrawWidgets(w, dpi); window_ride_draw_tab_images(dpi, w); - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return; @@ -2997,7 +2999,7 @@ static rct_vehicle_paintinfo _sprites_to_draw[144]; */ static void window_ride_vehicle_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32_t scrollIndex) { - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return; @@ -3090,7 +3092,8 @@ static void window_ride_vehicle_scrollpaint(rct_window* w, rct_drawpixelinfo* dp */ static void window_ride_mode_tweak_increase(rct_window* w) { - auto ride = get_ride(w->number); + const auto rideId = static_cast(w->number); + auto ride = get_ride(rideId); if (ride == nullptr) return; @@ -3106,7 +3109,7 @@ static void window_ride_mode_tweak_increase(rct_window* w) uint8_t increment = ride->mode == RideMode::Dodgems ? 10 : 1; set_operating_setting( - w->number, RideSetSetting::Operation, std::clamp(ride->operation_option + increment, minValue, maxValue)); + rideId, RideSetSetting::Operation, std::clamp(ride->operation_option + increment, minValue, maxValue)); } /** @@ -3115,7 +3118,8 @@ static void window_ride_mode_tweak_increase(rct_window* w) */ static void window_ride_mode_tweak_decrease(rct_window* w) { - auto ride = get_ride(w->number); + const auto rideId = static_cast(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return; @@ -3130,7 +3134,7 @@ static void window_ride_mode_tweak_decrease(rct_window* w) uint8_t decrement = ride->mode == RideMode::Dodgems ? 10 : 1; set_operating_setting( - w->number, RideSetSetting::Operation, std::clamp(ride->operation_option - decrement, minValue, maxValue)); + rideId, RideSetSetting::Operation, std::clamp(ride->operation_option - decrement, minValue, maxValue)); } /** @@ -3142,7 +3146,8 @@ static void window_ride_mode_dropdown(rct_window* w, rct_widget* widget) rct_widget* dropdownWidget; dropdownWidget = widget - 1; - auto ride = get_ride(w->number); + const auto rideId = static_cast(w->number); + auto ride = get_ride(rideId); if (ride == nullptr) return; @@ -3181,7 +3186,8 @@ static void window_ride_mode_dropdown(rct_window* w, rct_widget* widget) */ static void window_ride_load_dropdown(rct_window* w, rct_widget* widget) { - auto ride = get_ride(w->number); + const auto rideId = static_cast(w->number); + auto ride = get_ride(rideId); if (ride == nullptr) return; @@ -3204,7 +3210,8 @@ static void window_ride_load_dropdown(rct_window* w, rct_widget* widget) */ static void window_ride_operating_mouseup(rct_window* w, rct_widgetindex widgetIndex) { - auto ride = get_ride(w->number); + const auto rideId = static_cast(w->number); + auto ride = get_ride(rideId); if (ride == nullptr) return; @@ -3226,23 +3233,21 @@ static void window_ride_operating_mouseup(rct_window* w, rct_widgetindex widgetI window_ride_set_page(w, widgetIndex - WIDX_TAB_1); break; case WIDX_LOAD_CHECKBOX: - set_operating_setting(w->number, RideSetSetting::Departure, ride->depart_flags ^ RIDE_DEPART_WAIT_FOR_LOAD); + set_operating_setting(rideId, RideSetSetting::Departure, ride->depart_flags ^ RIDE_DEPART_WAIT_FOR_LOAD); break; case WIDX_LEAVE_WHEN_ANOTHER_ARRIVES_CHECKBOX: set_operating_setting( - w->number, RideSetSetting::Departure, ride->depart_flags ^ RIDE_DEPART_LEAVE_WHEN_ANOTHER_ARRIVES); + rideId, RideSetSetting::Departure, ride->depart_flags ^ RIDE_DEPART_LEAVE_WHEN_ANOTHER_ARRIVES); break; case WIDX_MINIMUM_LENGTH_CHECKBOX: - set_operating_setting( - w->number, RideSetSetting::Departure, ride->depart_flags ^ RIDE_DEPART_WAIT_FOR_MINIMUM_LENGTH); + set_operating_setting(rideId, RideSetSetting::Departure, ride->depart_flags ^ RIDE_DEPART_WAIT_FOR_MINIMUM_LENGTH); break; case WIDX_MAXIMUM_LENGTH_CHECKBOX: - set_operating_setting( - w->number, RideSetSetting::Departure, ride->depart_flags ^ RIDE_DEPART_WAIT_FOR_MAXIMUM_LENGTH); + set_operating_setting(rideId, RideSetSetting::Departure, ride->depart_flags ^ RIDE_DEPART_WAIT_FOR_MAXIMUM_LENGTH); break; case WIDX_SYNCHRONISE_WITH_ADJACENT_STATIONS_CHECKBOX: set_operating_setting( - w->number, RideSetSetting::Departure, ride->depart_flags ^ RIDE_DEPART_SYNCHRONISE_WITH_ADJACENT_STATIONS); + rideId, RideSetSetting::Departure, ride->depart_flags ^ RIDE_DEPART_SYNCHRONISE_WITH_ADJACENT_STATIONS); break; } } @@ -3262,7 +3267,8 @@ static void window_ride_operating_resize(rct_window* w) */ static void window_ride_operating_mousedown(rct_window* w, rct_widgetindex widgetIndex, rct_widget* widget) { - auto ride = get_ride(w->number); + const auto rideId = static_cast(w->number); + auto ride = get_ride(rideId); if (ride == nullptr) return; @@ -3279,42 +3285,42 @@ static void window_ride_operating_mousedown(rct_window* w, rct_widgetindex widge upper_bound = gCheatsUnlockOperatingLimits ? 255 : ride->GetRideTypeDescriptor().LiftData.maximum_speed; lower_bound = gCheatsUnlockOperatingLimits ? 0 : ride->GetRideTypeDescriptor().LiftData.minimum_speed; set_operating_setting( - w->number, RideSetSetting::LiftHillSpeed, + rideId, RideSetSetting::LiftHillSpeed, std::clamp(ride->lift_hill_speed + 1, lower_bound, upper_bound)); break; case WIDX_LIFT_HILL_SPEED_DECREASE: upper_bound = gCheatsUnlockOperatingLimits ? 255 : ride->GetRideTypeDescriptor().LiftData.maximum_speed; lower_bound = gCheatsUnlockOperatingLimits ? 0 : ride->GetRideTypeDescriptor().LiftData.minimum_speed; set_operating_setting( - w->number, RideSetSetting::LiftHillSpeed, + rideId, RideSetSetting::LiftHillSpeed, std::clamp(ride->lift_hill_speed - 1, lower_bound, upper_bound)); break; case WIDX_MINIMUM_LENGTH_INCREASE: upper_bound = 250; lower_bound = 0; set_operating_setting( - w->number, RideSetSetting::MinWaitingTime, + rideId, RideSetSetting::MinWaitingTime, std::clamp(ride->min_waiting_time + 1, lower_bound, upper_bound)); break; case WIDX_MINIMUM_LENGTH_DECREASE: upper_bound = 250; lower_bound = 0; set_operating_setting( - w->number, RideSetSetting::MinWaitingTime, + rideId, RideSetSetting::MinWaitingTime, std::clamp(ride->min_waiting_time - 1, lower_bound, upper_bound)); break; case WIDX_MAXIMUM_LENGTH_INCREASE: upper_bound = 250; lower_bound = 0; set_operating_setting( - w->number, RideSetSetting::MaxWaitingTime, + rideId, RideSetSetting::MaxWaitingTime, std::clamp(ride->max_waiting_time + 1, lower_bound, upper_bound)); break; case WIDX_MAXIMUM_LENGTH_DECREASE: upper_bound = 250; lower_bound = 0; set_operating_setting( - w->number, RideSetSetting::MaxWaitingTime, + rideId, RideSetSetting::MaxWaitingTime, std::clamp(ride->max_waiting_time - 1, lower_bound, upper_bound)); break; case WIDX_MODE_DROPDOWN: @@ -3327,13 +3333,13 @@ static void window_ride_operating_mousedown(rct_window* w, rct_widgetindex widge upper_bound = gCheatsUnlockOperatingLimits ? 255 : MAX_CIRCUITS_PER_RIDE; lower_bound = 1; set_operating_setting( - w->number, RideSetSetting::NumCircuits, std::clamp(ride->num_circuits + 1, lower_bound, upper_bound)); + rideId, RideSetSetting::NumCircuits, std::clamp(ride->num_circuits + 1, lower_bound, upper_bound)); break; case WIDX_OPERATE_NUMBER_OF_CIRCUITS_DECREASE: upper_bound = gCheatsUnlockOperatingLimits ? 255 : MAX_CIRCUITS_PER_RIDE; lower_bound = 1; set_operating_setting( - w->number, RideSetSetting::NumCircuits, std::clamp(ride->num_circuits - 1, lower_bound, upper_bound)); + rideId, RideSetSetting::NumCircuits, std::clamp(ride->num_circuits - 1, lower_bound, upper_bound)); break; } } @@ -3347,7 +3353,8 @@ static void window_ride_operating_dropdown(rct_window* w, rct_widgetindex widget if (dropdownIndex == -1) return; - auto ride = get_ride(w->number); + const auto rideId = static_cast(w->number); + auto ride = get_ride(rideId); if (ride == nullptr) return; @@ -3371,12 +3378,12 @@ static void window_ride_operating_dropdown(rct_window* w, rct_widgetindex widget } } if (rideMode != RideMode::NullMode) - set_operating_setting(w->number, RideSetSetting::Mode, static_cast(rideMode)); + set_operating_setting(rideId, RideSetSetting::Mode, static_cast(rideMode)); break; } case WIDX_LOAD_DROPDOWN: set_operating_setting( - w->number, RideSetSetting::Departure, (ride->depart_flags & ~RIDE_DEPART_WAIT_FOR_LOAD_MASK) | dropdownIndex); + rideId, RideSetSetting::Departure, (ride->depart_flags & ~RIDE_DEPART_WAIT_FOR_LOAD_MASK) | dropdownIndex); break; } } @@ -3391,7 +3398,7 @@ static void window_ride_operating_update(rct_window* w) window_event_invalidate_call(w); widget_invalidate(w, WIDX_TAB_3); - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride != nullptr && ride->window_invalidate_flags & RIDE_INVALIDATE_RIDE_OPERATING) { ride->window_invalidate_flags &= ~RIDE_INVALIDATE_RIDE_OPERATING; @@ -3417,7 +3424,7 @@ static void window_ride_operating_invalidate(rct_window* w) window_ride_set_pressed_tab(w); - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return; @@ -3658,7 +3665,7 @@ static void window_ride_operating_paint(rct_window* w, rct_drawpixelinfo* dpi) WindowDrawWidgets(w, dpi); window_ride_draw_tab_images(dpi, w); - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return; @@ -3690,7 +3697,7 @@ static void window_ride_operating_paint(rct_window* w, rct_drawpixelinfo* dpi) */ static void window_ride_locate_mechanic(rct_window* w) { - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return; @@ -3780,7 +3787,7 @@ static void window_ride_maintenance_resize(rct_window* w) */ static void window_ride_maintenance_mousedown(rct_window* w, rct_widgetindex widgetIndex, rct_widget* widget) { - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return; @@ -3884,7 +3891,8 @@ static void window_ride_maintenance_dropdown(rct_window* w, rct_widgetindex widg if (dropdownIndex == -1) return; - auto ride = get_ride(w->number); + const auto rideId = static_cast(w->number); + auto ride = get_ride(rideId); if (ride == nullptr) return; @@ -3895,7 +3903,7 @@ static void window_ride_maintenance_dropdown(rct_window* w, rct_widgetindex widg switch (widgetIndex) { case WIDX_INSPECTION_INTERVAL_DROPDOWN: - set_operating_setting(w->number, RideSetSetting::InspectionInterval, dropdownIndex); + set_operating_setting(rideId, RideSetSetting::InspectionInterval, dropdownIndex); break; case WIDX_FORCE_BREAKDOWN: @@ -3990,7 +3998,7 @@ static void window_ride_maintenance_update(rct_window* w) window_event_invalidate_call(w); widget_invalidate(w, WIDX_TAB_4); - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride != nullptr && ride->window_invalidate_flags & RIDE_INVALIDATE_RIDE_MAINTENANCE) { ride->window_invalidate_flags &= ~RIDE_INVALIDATE_RIDE_MAINTENANCE; @@ -4013,7 +4021,7 @@ static void window_ride_maintenance_invalidate(rct_window* w) window_ride_set_pressed_tab(w); - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return; @@ -4055,7 +4063,7 @@ static void window_ride_maintenance_paint(rct_window* w, rct_drawpixelinfo* dpi) WindowDrawWidgets(w, dpi); window_ride_draw_tab_images(dpi, w); - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return; @@ -4210,7 +4218,7 @@ static void window_ride_set_track_colour_scheme(rct_window* w, const ScreenCoord return; if (info.Element->GetType() != TILE_ELEMENT_TYPE_TRACK) return; - if (info.Element->AsTrack()->GetRideIndex() != w->number) + if (info.Element->AsTrack()->GetRideIndex() != static_cast(w->number)) return; if (info.Element->AsTrack()->GetColourScheme() == newColourScheme) return; @@ -4288,7 +4296,7 @@ static void window_ride_colour_mousedown(rct_window* w, rct_widgetindex widgetIn int32_t i, numItems; rct_string_id stringId; - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return; @@ -4421,6 +4429,7 @@ static void window_ride_colour_dropdown(rct_window* w, rct_widgetindex widgetInd if (dropdownIndex == -1) return; + const auto rideId = static_cast(w->number); switch (widgetIndex) { case WIDX_TRACK_COLOUR_SCHEME_DROPDOWN: @@ -4430,28 +4439,28 @@ static void window_ride_colour_dropdown(rct_window* w, rct_widgetindex widgetInd case WIDX_TRACK_MAIN_COLOUR: { auto rideSetAppearanceAction = RideSetAppearanceAction( - w->number, RideSetAppearanceType::TrackColourMain, dropdownIndex, w->ride_colour); + rideId, RideSetAppearanceType::TrackColourMain, dropdownIndex, w->ride_colour); GameActions::Execute(&rideSetAppearanceAction); } break; case WIDX_TRACK_ADDITIONAL_COLOUR: { auto rideSetAppearanceAction = RideSetAppearanceAction( - w->number, RideSetAppearanceType::TrackColourAdditional, dropdownIndex, w->ride_colour); + rideId, RideSetAppearanceType::TrackColourAdditional, dropdownIndex, w->ride_colour); GameActions::Execute(&rideSetAppearanceAction); } break; case WIDX_TRACK_SUPPORT_COLOUR: { auto rideSetAppearanceAction = RideSetAppearanceAction( - w->number, RideSetAppearanceType::TrackColourSupports, dropdownIndex, w->ride_colour); + rideId, RideSetAppearanceType::TrackColourSupports, dropdownIndex, w->ride_colour); GameActions::Execute(&rideSetAppearanceAction); } break; case WIDX_MAZE_STYLE_DROPDOWN: { auto rideSetAppearanceAction = RideSetAppearanceAction( - w->number, RideSetAppearanceType::MazeStyle, dropdownIndex, w->ride_colour); + rideId, RideSetAppearanceType::MazeStyle, dropdownIndex, w->ride_colour); GameActions::Execute(&rideSetAppearanceAction); } break; @@ -4467,7 +4476,7 @@ static void window_ride_colour_dropdown(rct_window* w, rct_widgetindex widgetInd if (ddIndex == dropdownIndex) { auto rideSetAppearanceAction = RideSetAppearanceAction( - w->number, RideSetAppearanceType::EntranceStyle, ddIndex, 0); + rideId, RideSetAppearanceType::EntranceStyle, ddIndex, 0); GameActions::Execute(&rideSetAppearanceAction); break; } @@ -4479,7 +4488,7 @@ static void window_ride_colour_dropdown(rct_window* w, rct_widgetindex widgetInd case WIDX_VEHICLE_COLOUR_SCHEME_DROPDOWN: { auto rideSetAppearanceAction = RideSetAppearanceAction( - w->number, RideSetAppearanceType::VehicleColourScheme, dropdownIndex, 0); + rideId, RideSetAppearanceType::VehicleColourScheme, dropdownIndex, 0); GameActions::Execute(&rideSetAppearanceAction); w->vehicleIndex = 0; } @@ -4491,21 +4500,21 @@ static void window_ride_colour_dropdown(rct_window* w, rct_widgetindex widgetInd case WIDX_VEHICLE_MAIN_COLOUR: { auto rideSetAppearanceAction = RideSetAppearanceAction( - w->number, RideSetAppearanceType::VehicleColourBody, dropdownIndex, w->vehicleIndex); + rideId, RideSetAppearanceType::VehicleColourBody, dropdownIndex, w->vehicleIndex); GameActions::Execute(&rideSetAppearanceAction); } break; case WIDX_VEHICLE_ADDITIONAL_COLOUR_1: { auto rideSetAppearanceAction = RideSetAppearanceAction( - w->number, RideSetAppearanceType::VehicleColourTrim, dropdownIndex, w->vehicleIndex); + rideId, RideSetAppearanceType::VehicleColourTrim, dropdownIndex, w->vehicleIndex); GameActions::Execute(&rideSetAppearanceAction); } break; case WIDX_VEHICLE_ADDITIONAL_COLOUR_2: { auto rideSetAppearanceAction = RideSetAppearanceAction( - w->number, RideSetAppearanceType::VehicleColourTernary, dropdownIndex, w->vehicleIndex); + rideId, RideSetAppearanceType::VehicleColourTernary, dropdownIndex, w->vehicleIndex); GameActions::Execute(&rideSetAppearanceAction); } break; @@ -4562,7 +4571,7 @@ static void window_ride_colour_invalidate(rct_window* w) window_ride_set_pressed_tab(w); - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return; @@ -4788,7 +4797,7 @@ static void window_ride_colour_paint(rct_window* w, rct_drawpixelinfo* dpi) rct_drawpixelinfo clippedDpi; rct_widget* widget; - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return; @@ -4888,7 +4897,7 @@ static void window_ride_colour_paint(rct_window* w, rct_drawpixelinfo* dpi) */ static void window_ride_colour_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32_t scrollIndex) { - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return; @@ -4951,11 +4960,12 @@ static std::vector window_ride_current_music_style_order; */ static void window_ride_toggle_music(rct_window* w) { - auto ride = get_ride(w->number); + const auto rideId = static_cast(w->number); + auto ride = get_ride(rideId); if (ride != nullptr) { int32_t activateMusic = (ride->lifecycle_flags & RIDE_LIFECYCLE_MUSIC) ? 0 : 1; - set_operating_setting(w->number, RideSetSetting::Music, activateMusic); + set_operating_setting(rideId, RideSetSetting::Music, activateMusic); } } @@ -5027,7 +5037,7 @@ static void window_ride_music_mousedown(rct_window* w, rct_widgetindex widgetInd return; auto dropdownWidget = widget - 1; - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return; @@ -5106,7 +5116,7 @@ static void window_ride_music_dropdown(rct_window* w, rct_widgetindex widgetInde && static_cast(dropdownIndex) < window_ride_current_music_style_order.size()) { auto musicStyle = window_ride_current_music_style_order[dropdownIndex]; - set_operating_setting(w->number, RideSetSetting::MusicType, musicStyle); + set_operating_setting(static_cast(w->number), RideSetSetting::MusicType, musicStyle); } } @@ -5136,7 +5146,7 @@ static void window_ride_music_invalidate(rct_window* w) window_ride_set_pressed_tab(w); - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return; @@ -5227,7 +5237,7 @@ static void setup_scenery_selection(rct_window* w) while (tool_set(w, WIDX_BACKGROUND, Tool::Crosshair)) ; - gTrackDesignSaveRideIndex = w->number; + gTrackDesignSaveRideIndex = static_cast(w->number); track_design_save_init(); gGamePaused |= GAME_PAUSED_SAVING_TRACK; @@ -5290,7 +5300,7 @@ static void TrackDesignCallback(int32_t result, [[maybe_unused]] const utf8* pat */ static void window_ride_measurements_design_save(rct_window* w) { - Ride* ride = get_ride(w->number); + Ride* ride = get_ride(static_cast(w->number)); _trackDesign = ride->SaveToTrackDesign(); if (!_trackDesign) { @@ -5382,7 +5392,7 @@ static void window_ride_measurements_mousedown(rct_window* w, rct_widgetindex wi if (widgetIndex != WIDX_SAVE_TRACK_DESIGN) return; - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return; @@ -5508,7 +5518,8 @@ static void window_ride_measurements_invalidate(rct_window* w) window_ride_set_pressed_tab(w); - auto ride = get_ride(w->number); + const auto rideId = static_cast(w->number); + auto ride = get_ride(rideId); if (ride == nullptr) return; @@ -5517,7 +5528,7 @@ static void window_ride_measurements_invalidate(rct_window* w) window_ride_measurements_widgets[WIDX_SAVE_TRACK_DESIGN].tooltip = STR_SAVE_TRACK_DESIGN_NOT_POSSIBLE; window_ride_measurements_widgets[WIDX_SAVE_TRACK_DESIGN].type = WindowWidgetType::Empty; - if (gTrackDesignSaveMode && gTrackDesignSaveRideIndex == w->number) + if (gTrackDesignSaveMode && gTrackDesignSaveRideIndex == rideId) { window_ride_measurements_widgets[WIDX_SELECT_NEARBY_SCENERY].type = WindowWidgetType::Button; window_ride_measurements_widgets[WIDX_RESET_SELECTION].type = WindowWidgetType::Button; @@ -5570,7 +5581,7 @@ static void window_ride_measurements_paint(rct_window* w, rct_drawpixelinfo* dpi } else { - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return; @@ -5894,7 +5905,7 @@ static void window_ride_graphs_update(rct_window* w) x = w->scrolls[0].h_left; if (!(w->list_information_type & 0x8000)) { - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride != nullptr) { RideMeasurement* measurement{}; @@ -5919,7 +5930,7 @@ static void window_ride_graphs_scrollgetheight(rct_window* w, int32_t scrollInde *width = window_ride_graphs_widgets[WIDX_GRAPH].width() - 2; // Get measurement size - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride != nullptr) { RideMeasurement* measurement{}; @@ -5948,7 +5959,7 @@ static OpenRCT2String window_ride_graphs_tooltip(rct_window* w, const rct_widget { if (widgetIndex == WIDX_GRAPH) { - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride != nullptr) { auto [measurement, message] = ride->GetMeasurement(); @@ -5988,7 +5999,7 @@ static void window_ride_graphs_invalidate(rct_window* w) window_ride_set_pressed_tab(w); - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return; @@ -6054,7 +6065,7 @@ static void window_ride_graphs_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi gfx_clear(dpi, ColourMapA[COLOUR_SATURATED_GREEN].darker); auto widget = &window_ride_graphs_widgets[WIDX_GRAPH]; - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) { return; @@ -6247,7 +6258,8 @@ static void update_same_price_throughout_flags(ShopItem shop_item) */ static void window_ride_income_toggle_primary_price(rct_window* w) { - auto ride = get_ride(w->number); + const auto rideId = static_cast(w->number); + auto ride = get_ride(rideId); if (ride == nullptr) return; @@ -6273,7 +6285,7 @@ static void window_ride_income_toggle_primary_price(rct_window* w) update_same_price_throughout_flags(shop_item); - auto rideSetPriceAction = RideSetPriceAction(w->number, ride->price[0], true); + auto rideSetPriceAction = RideSetPriceAction(rideId, ride->price[0], true); GameActions::Execute(&rideSetPriceAction); } @@ -6283,7 +6295,8 @@ static void window_ride_income_toggle_primary_price(rct_window* w) */ static void window_ride_income_toggle_secondary_price(rct_window* w) { - auto ride = get_ride(w->number); + const auto rideId = static_cast(w->number); + auto ride = get_ride(rideId); if (ride == nullptr) return; @@ -6297,13 +6310,13 @@ static void window_ride_income_toggle_secondary_price(rct_window* w) update_same_price_throughout_flags(shop_item); - auto rideSetPriceAction = RideSetPriceAction(w->number, ride->price[1], false); + auto rideSetPriceAction = RideSetPriceAction(rideId, ride->price[1], false); GameActions::Execute(&rideSetPriceAction); } static void window_ride_income_set_primary_price(rct_window* w, money16 price) { - auto rideSetPriceAction = RideSetPriceAction(w->number, price, true); + auto rideSetPriceAction = RideSetPriceAction(static_cast(w->number), price, true); GameActions::Execute(&rideSetPriceAction); } @@ -6316,7 +6329,7 @@ static void window_ride_income_increase_primary_price(rct_window* w) if (!window_ride_income_can_modify_primary_price(w)) return; - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return; @@ -6336,7 +6349,7 @@ static void window_ride_income_decrease_primary_price(rct_window* w) if (!window_ride_income_can_modify_primary_price(w)) return; - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return; @@ -6349,7 +6362,7 @@ static void window_ride_income_decrease_primary_price(rct_window* w) static money16 window_ride_income_get_secondary_price(rct_window* w) { - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return 0; @@ -6359,13 +6372,13 @@ static money16 window_ride_income_get_secondary_price(rct_window* w) static void window_ride_income_set_secondary_price(rct_window* w, money16 price) { - auto rideSetPriceAction = RideSetPriceAction((w->number & 0x00FF), price, false); + auto rideSetPriceAction = RideSetPriceAction(static_cast(w->number), price, false); GameActions::Execute(&rideSetPriceAction); } static bool window_ride_income_can_modify_primary_price(rct_window* w) { - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return false; @@ -6430,7 +6443,7 @@ static void window_ride_income_mouseup(rct_window* w, rct_widgetindex widgetInde if (!window_ride_income_can_modify_primary_price(w)) return; - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride != nullptr) { money_to_string(static_cast(ride->price[0]), _moneyInputText, MONEY_STRING_MAXLENGTH, true); @@ -6500,7 +6513,7 @@ static void window_ride_income_update(rct_window* w) window_event_invalidate_call(w); widget_invalidate(w, WIDX_TAB_9); - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride != nullptr && ride->window_invalidate_flags & RIDE_INVALIDATE_RIDE_INCOME) { ride->window_invalidate_flags &= ~RIDE_INVALIDATE_RIDE_INCOME; @@ -6547,7 +6560,7 @@ static void window_ride_income_invalidate(rct_window* w) window_ride_set_pressed_tab(w); - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return; @@ -6658,7 +6671,7 @@ static void window_ride_income_paint(rct_window* w, rct_drawpixelinfo* dpi) WindowDrawWidgets(w, dpi); window_ride_draw_tab_images(dpi, w); - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return; @@ -6826,7 +6839,7 @@ static void window_ride_customer_update(rct_window* w) window_event_invalidate_call(w); widget_invalidate(w, WIDX_TAB_10); - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride != nullptr && ride->window_invalidate_flags & RIDE_INVALIDATE_RIDE_CUSTOMER) { ride->window_invalidate_flags &= ~RIDE_INVALIDATE_RIDE_CUSTOMER; @@ -6849,7 +6862,7 @@ static void window_ride_customer_invalidate(rct_window* w) window_ride_set_pressed_tab(w); - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride != nullptr) { auto ft = Formatter::Common(); @@ -6885,7 +6898,7 @@ static void window_ride_customer_paint(rct_window* w, rct_drawpixelinfo* dpi) WindowDrawWidgets(w, dpi); window_ride_draw_tab_images(dpi, w); - auto ride = get_ride(w->number); + auto ride = get_ride(static_cast(w->number)); if (ride == nullptr) return; diff --git a/src/openrct2-ui/windows/RideConstruction.cpp b/src/openrct2-ui/windows/RideConstruction.cpp index 8d6c70f41e..d8424785d3 100644 --- a/src/openrct2-ui/windows/RideConstruction.cpp +++ b/src/openrct2-ui/windows/RideConstruction.cpp @@ -509,7 +509,7 @@ static void close_ride_window_for_construction(rct_windownumber number) rct_window* window_ride_construction_open() { ride_id_t rideIndex = _currentRideIndex; - close_ride_window_for_construction(rideIndex); + close_ride_window_for_construction(static_cast(rideIndex)); auto ride = get_ride(rideIndex); if (ride == nullptr) @@ -543,7 +543,7 @@ rct_window* window_ride_construction_open() w->colours[1] = COLOUR_DARK_BROWN; w->colours[2] = COLOUR_DARK_BROWN; - w->number = rideIndex; + w->number = static_cast(rideIndex); window_push_others_right(w); show_gridlines(); @@ -620,7 +620,7 @@ static void window_ride_construction_close(rct_window* w) ride->SetToDefaultInspectionInterval(); auto intent = Intent(WC_RIDE); - intent.putExtra(INTENT_EXTRA_RIDE_ID, ride->id); + intent.putExtra(INTENT_EXTRA_RIDE_ID, static_cast(ride->id)); context_open_intent(&intent); } else @@ -1937,7 +1937,7 @@ static void window_ride_construction_mouseup_demolish(rct_window* w) _currentTrackPieceType, 0, { _currentTrackBegin.x, _currentTrackBegin.y, _currentTrackBegin.z, _currentTrackPieceDirection }); - const auto rideId = w->number; + const auto rideId = static_cast(w->number); trackRemoveAction.SetCallback([=](const GameAction* ga, const GameActions::Result* result) { if (result->Error != GameActions::Status::Ok) { @@ -2017,7 +2017,7 @@ static void window_ride_construction_exit_click(rct_window* w) else { gRideEntranceExitPlaceType = ENTRANCE_TYPE_RIDE_EXIT; - gRideEntranceExitPlaceRideIndex = w->number & 0xFF; + gRideEntranceExitPlaceRideIndex = static_cast(w->number); gRideEntranceExitPlaceStationIndex = 0; input_set_flag(INPUT_FLAG_6, true); ride_construction_invalidate_current_track(); diff --git a/src/openrct2-ui/windows/RideList.cpp b/src/openrct2-ui/windows/RideList.cpp index aa932db73e..94a51eb2c9 100644 --- a/src/openrct2-ui/windows/RideList.cpp +++ b/src/openrct2-ui/windows/RideList.cpp @@ -443,7 +443,7 @@ static void window_ride_list_scrollmousedown(rct_window* w, int32_t scrollIndex, else { auto intent = Intent(WC_RIDE); - intent.putExtra(INTENT_EXTRA_RIDE_ID, rideIndex); + intent.putExtra(INTENT_EXTRA_RIDE_ID, static_cast(rideIndex)); context_open_intent(&intent); } } diff --git a/src/openrct2-ui/windows/TileInspector.cpp b/src/openrct2-ui/windows/TileInspector.cpp index bfadeab869..575710c2ea 100644 --- a/src/openrct2-ui/windows/TileInspector.cpp +++ b/src/openrct2-ui/windows/TileInspector.cpp @@ -1931,7 +1931,7 @@ static void window_tile_inspector_paint(rct_window* w, rct_drawpixelinfo* dpi) // Details // Ride auto trackElement = tileElement->AsTrack(); - int16_t rideId = trackElement->GetRideIndex(); + ride_id_t rideId = trackElement->GetRideIndex(); auto ride = get_ride(rideId); if (ride != nullptr) { diff --git a/src/openrct2-ui/windows/TrackDesignPlace.cpp b/src/openrct2-ui/windows/TrackDesignPlace.cpp index ce83d160f7..35ad8b135b 100644 --- a/src/openrct2-ui/windows/TrackDesignPlace.cpp +++ b/src/openrct2-ui/windows/TrackDesignPlace.cpp @@ -268,7 +268,9 @@ static void window_track_place_toolupdate(rct_window* w, rct_widgetindex widgetI // Check if tool map position has changed since last update if (mapCoords == _windowTrackPlaceLast) { - place_virtual_track(_trackDesign.get(), PTD_OPERATION_DRAW_OUTLINES, true, GetOrAllocateRide(0), { mapCoords, 0 }); + place_virtual_track( + _trackDesign.get(), PTD_OPERATION_DRAW_OUTLINES, true, GetOrAllocateRide(static_cast(0)), + { mapCoords, 0 }); return; } @@ -308,7 +310,8 @@ static void window_track_place_toolupdate(rct_window* w, rct_widgetindex widgetI widget_invalidate(w, WIDX_PRICE); } - place_virtual_track(_trackDesign.get(), PTD_OPERATION_DRAW_OUTLINES, true, GetOrAllocateRide(0), trackLoc); + place_virtual_track( + _trackDesign.get(), PTD_OPERATION_DRAW_OUTLINES, true, GetOrAllocateRide(static_cast(0)), trackLoc); } /** @@ -348,7 +351,7 @@ static void window_track_place_tooldown(rct_window* w, rct_widgetindex widgetInd if (track_design_are_entrance_and_exit_placed()) { auto intent = Intent(WC_RIDE); - intent.putExtra(INTENT_EXTRA_RIDE_ID, result->rideIndex); + intent.putExtra(INTENT_EXTRA_RIDE_ID, static_cast(result->rideIndex)); context_open_intent(&intent); auto wnd = window_find_by_class(WC_TRACK_DESIGN_PLACE); window_close(wnd); @@ -469,7 +472,9 @@ static int32_t window_track_place_get_base_z(const CoordsXY& loc) if (surfaceElement->GetWaterHeight() > 0) z = std::max(z, surfaceElement->GetWaterHeight()); - return z + place_virtual_track(_trackDesign.get(), PTD_OPERATION_GET_PLACE_Z, true, GetOrAllocateRide(0), { loc, z }); + return z + + place_virtual_track( + _trackDesign.get(), PTD_OPERATION_GET_PLACE_Z, true, GetOrAllocateRide(static_cast(0)), { loc, z }); } /** diff --git a/src/openrct2/actions/ParkMarketingAction.cpp b/src/openrct2/actions/ParkMarketingAction.cpp index aa9c2abda4..665f00fbc5 100644 --- a/src/openrct2/actions/ParkMarketingAction.cpp +++ b/src/openrct2/actions/ParkMarketingAction.cpp @@ -70,7 +70,7 @@ GameActions::Result::Ptr ParkMarketingAction::Execute() const campaign.Flags = MarketingCampaignFlags::FIRST_WEEK; if (campaign.Type == ADVERTISING_CAMPAIGN_RIDE_FREE || campaign.Type == ADVERTISING_CAMPAIGN_RIDE) { - campaign.RideId = _item; + campaign.RideId = static_cast(_item); } else if (campaign.Type == ADVERTISING_CAMPAIGN_FOOD_OR_DRINK_FREE) { diff --git a/src/openrct2/actions/RideDemolishAction.cpp b/src/openrct2/actions/RideDemolishAction.cpp index e53af79c82..c59bc5c1c3 100644 --- a/src/openrct2/actions/RideDemolishAction.cpp +++ b/src/openrct2/actions/RideDemolishAction.cpp @@ -131,14 +131,16 @@ GameActions::Result::Ptr RideDemolishAction::DemolishRide(Ride* ride) const ride->ValidateStations(); ride_clear_leftover_entrances(ride); - News::DisableNewsItems(News::ItemType::Ride, _rideIndex); - UnlinkAllBannersForRide(_rideIndex); + const auto rideId = ride->id; + News::DisableNewsItems(News::ItemType::Ride, EnumValue(rideId)); - RideUse::GetHistory().RemoveValue(_rideIndex); + UnlinkAllBannersForRide(ride->id); + + RideUse::GetHistory().RemoveValue(ride->id); for (auto peep : EntityList()) { - peep->RemoveRideFromMemory(_rideIndex); + peep->RemoveRideFromMemory(ride->id); } MarketingCancelCampaignsForRide(_rideIndex); @@ -157,9 +159,9 @@ GameActions::Result::Ptr RideDemolishAction::DemolishRide(Ride* ride) const gParkValue = GetContext()->GetGameState()->GetPark().CalculateParkValue(); // Close windows related to the demolished ride - window_close_by_number(WC_RIDE_CONSTRUCTION, _rideIndex); - window_close_by_number(WC_RIDE, _rideIndex); - window_close_by_number(WC_DEMOLISH_RIDE_PROMPT, _rideIndex); + window_close_by_number(WC_RIDE_CONSTRUCTION, EnumValue(rideId)); + window_close_by_number(WC_RIDE, EnumValue(rideId)); + window_close_by_number(WC_DEMOLISH_RIDE_PROMPT, EnumValue(rideId)); window_close_by_class(WC_NEW_CAMPAIGN); // Refresh windows that display the ride name @@ -272,7 +274,7 @@ GameActions::Result::Ptr RideDemolishAction::RefurbishRide(Ride* ride) const res->Position = { location, tile_element_height(location) }; } - window_close_by_number(WC_DEMOLISH_RIDE_PROMPT, _rideIndex); + window_close_by_number(WC_DEMOLISH_RIDE_PROMPT, static_cast(_rideIndex)); return res; } diff --git a/src/openrct2/actions/RideSetAppearanceAction.cpp b/src/openrct2/actions/RideSetAppearanceAction.cpp index 53b76ff27a..bf8e9fc366 100644 --- a/src/openrct2/actions/RideSetAppearanceAction.cpp +++ b/src/openrct2/actions/RideSetAppearanceAction.cpp @@ -139,7 +139,7 @@ GameActions::Result::Ptr RideSetAppearanceAction::Execute() const gfx_invalidate_screen(); break; } - window_invalidate_by_number(WC_RIDE, _rideIndex); + window_invalidate_by_number(WC_RIDE, static_cast(_rideIndex)); auto res = std::make_unique(); if (!ride->overall_view.IsNull()) diff --git a/src/openrct2/actions/RideSetPriceAction.cpp b/src/openrct2/actions/RideSetPriceAction.cpp index caf508d1e0..268fd7d9a7 100644 --- a/src/openrct2/actions/RideSetPriceAction.cpp +++ b/src/openrct2/actions/RideSetPriceAction.cpp @@ -180,7 +180,7 @@ void RideSetPriceAction::RideSetCommonPrice(ShopItem shopItem) const } if (invalidate) { - window_invalidate_by_number(WC_RIDE, ride.id); + window_invalidate_by_number(WC_RIDE, static_cast(ride.id)); } } } diff --git a/src/openrct2/actions/RideSetSettingAction.cpp b/src/openrct2/actions/RideSetSettingAction.cpp index 220c0ced3d..233b19154e 100644 --- a/src/openrct2/actions/RideSetSettingAction.cpp +++ b/src/openrct2/actions/RideSetSettingAction.cpp @@ -233,7 +233,7 @@ GameActions::Result::Ptr RideSetSettingAction::Execute() const auto location = ride->overall_view.ToTileCentre(); res->Position = { location, tile_element_height(location) }; } - window_invalidate_by_number(WC_RIDE, _rideIndex); + window_invalidate_by_number(WC_RIDE, static_cast(_rideIndex)); return res; } diff --git a/src/openrct2/actions/RideSetStatusAction.cpp b/src/openrct2/actions/RideSetStatusAction.cpp index f6cffc84aa..5a79dae8bd 100644 --- a/src/openrct2/actions/RideSetStatusAction.cpp +++ b/src/openrct2/actions/RideSetStatusAction.cpp @@ -154,7 +154,7 @@ GameActions::Result::Ptr RideSetStatusAction::Execute() const ride->lifecycle_flags &= ~RIDE_LIFECYCLE_PASS_STATION_NO_STOPPING; ride->race_winner = SPRITE_INDEX_NULL; ride->window_invalidate_flags |= RIDE_INVALIDATE_RIDE_MAIN | RIDE_INVALIDATE_RIDE_LIST; - window_invalidate_by_number(WC_RIDE, _rideIndex); + window_invalidate_by_number(WC_RIDE, static_cast(_rideIndex)); break; case RideStatus::Simulating: { @@ -176,7 +176,7 @@ GameActions::Result::Ptr RideSetStatusAction::Execute() const ride->last_issue_time = 0; ride->GetMeasurement(); ride->window_invalidate_flags |= RIDE_INVALIDATE_RIDE_MAIN | RIDE_INVALIDATE_RIDE_LIST; - window_invalidate_by_number(WC_RIDE, _rideIndex); + window_invalidate_by_number(WC_RIDE, static_cast(_rideIndex)); break; } case RideStatus::Testing: @@ -195,7 +195,7 @@ GameActions::Result::Ptr RideSetStatusAction::Execute() const // Fix #3183: Make sure we close the construction window so the ride finishes any editing code before opening // otherwise vehicles get added to the ride incorrectly (such as to a ghost station) - rct_window* constructionWindow = window_find_by_number(WC_RIDE_CONSTRUCTION, _rideIndex); + rct_window* constructionWindow = window_find_by_number(WC_RIDE_CONSTRUCTION, static_cast(_rideIndex)); if (constructionWindow != nullptr) { window_close(constructionWindow); @@ -223,7 +223,7 @@ GameActions::Result::Ptr RideSetStatusAction::Execute() const ride->last_issue_time = 0; ride->GetMeasurement(); ride->window_invalidate_flags |= RIDE_INVALIDATE_RIDE_MAIN | RIDE_INVALIDATE_RIDE_LIST; - window_invalidate_by_number(WC_RIDE, _rideIndex); + window_invalidate_by_number(WC_RIDE, static_cast(_rideIndex)); break; } default: diff --git a/src/openrct2/actions/RideSetVehicleAction.cpp b/src/openrct2/actions/RideSetVehicleAction.cpp index 320aeafe12..bda774375f 100644 --- a/src/openrct2/actions/RideSetVehicleAction.cpp +++ b/src/openrct2/actions/RideSetVehicleAction.cpp @@ -199,7 +199,7 @@ GameActions::Result::Ptr RideSetVehicleAction::Execute() const } auto intent = Intent(INTENT_ACTION_RIDE_PAINT_RESET_VEHICLE); - intent.putExtra(INTENT_EXTRA_RIDE_ID, _rideIndex); + intent.putExtra(INTENT_EXTRA_RIDE_ID, static_cast(_rideIndex)); context_broadcast_intent(&intent); gfx_invalidate_screen(); diff --git a/src/openrct2/interface/InteractiveConsole.cpp b/src/openrct2/interface/InteractiveConsole.cpp index 3ad3c5fb25..a4f4e2b559 100644 --- a/src/openrct2/interface/InteractiveConsole.cpp +++ b/src/openrct2/interface/InteractiveConsole.cpp @@ -194,7 +194,7 @@ static int32_t cc_rides(InteractiveConsole& console, const arguments_t& argv) } else { - int32_t res = set_operating_setting(ride_index, RideSetSetting::RideType, type); + int32_t res = set_operating_setting(static_cast(ride_index), RideSetSetting::RideType, type); if (res == MONEY32_UNDEFINED) { if (!gCheatsAllowArbitraryRideTypeChanges) @@ -224,7 +224,7 @@ static int32_t cc_rides(InteractiveConsole& console, const arguments_t& argv) } else { - auto ride = get_ride(ride_index); + auto ride = get_ride(static_cast(ride_index)); if (mode >= static_cast(RideMode::Count)) { console.WriteFormatLine("Invalid ride mode."); @@ -256,7 +256,7 @@ static int32_t cc_rides(InteractiveConsole& console, const arguments_t& argv) } else { - auto ride = get_ride(ride_index); + auto ride = get_ride(static_cast(ride_index)); if (mass <= 0) { console.WriteFormatLine("Friction value must be strictly positive"); @@ -294,7 +294,7 @@ static int32_t cc_rides(InteractiveConsole& console, const arguments_t& argv) } else { - auto ride = get_ride(ride_index); + auto ride = get_ride(static_cast(ride_index)); if (excitement <= 0) { console.WriteFormatLine("Excitement value must be strictly positive"); @@ -325,7 +325,7 @@ static int32_t cc_rides(InteractiveConsole& console, const arguments_t& argv) } else { - auto ride = get_ride(ride_index); + auto ride = get_ride(static_cast(ride_index)); if (intensity <= 0) { console.WriteFormatLine("Intensity value must be strictly positive"); @@ -356,7 +356,7 @@ static int32_t cc_rides(InteractiveConsole& console, const arguments_t& argv) } else { - auto ride = get_ride(ride_index); + auto ride = get_ride(static_cast(ride_index)); if (nausea <= 0) { console.WriteFormatLine("Nausea value must be strictly positive"); @@ -426,7 +426,7 @@ static int32_t cc_rides(InteractiveConsole& console, const arguments_t& argv) } else { - auto rideSetPrice = RideSetPriceAction(rideId, price, true); + auto rideSetPrice = RideSetPriceAction(static_cast(rideId), price, true); GameActions::Execute(&rideSetPrice); } } diff --git a/src/openrct2/management/NewsItem.cpp b/src/openrct2/management/NewsItem.cpp index e9cd6b3147..bbd1d07af6 100644 --- a/src/openrct2/management/NewsItem.cpp +++ b/src/openrct2/management/NewsItem.cpp @@ -211,7 +211,7 @@ std::optional News::GetSubjectLocation(News::ItemType type, int32_t s { case News::ItemType::Ride: { - Ride* ride = get_ride(subject); + Ride* ride = get_ride(static_cast(subject)); if (ride == nullptr || ride->overall_view.IsNull()) { break; diff --git a/src/openrct2/peep/GuestPathfinding.cpp b/src/openrct2/peep/GuestPathfinding.cpp index 708aa59be2..91a3e633f7 100644 --- a/src/openrct2/peep/GuestPathfinding.cpp +++ b/src/openrct2/peep/GuestPathfinding.cpp @@ -2095,8 +2095,8 @@ int32_t guest_path_finding(Guest* peep) if (!(adjustedEdges & (1 << chosenDirection))) continue; - ride_id_t rideIndex, pathSearchResult; - pathSearchResult = footpath_element_destination_in_direction(loc, pathElement, chosenDirection, &rideIndex); + ride_id_t rideIndex = RIDE_ID_NULL; + auto pathSearchResult = footpath_element_destination_in_direction(loc, pathElement, chosenDirection, &rideIndex); switch (pathSearchResult) { case PATH_SEARCH_DEAD_END: diff --git a/src/openrct2/rct12/RCT12.cpp b/src/openrct2/rct12/RCT12.cpp index 96a9df55ca..560cd73cfd 100644 --- a/src/openrct2/rct12/RCT12.cpp +++ b/src/openrct2/rct12/RCT12.cpp @@ -1046,7 +1046,7 @@ ride_id_t RCT12RideIdToOpenRCT2RideId(const RCT12RideId rideId) if (rideId == RCT12_RIDE_ID_NULL) return RIDE_ID_NULL; - return rideId; + return static_cast(rideId); } RCT12RideId OpenRCT2RideIdToRCT12RideId(const ride_id_t rideId) @@ -1054,7 +1054,7 @@ RCT12RideId OpenRCT2RideIdToRCT12RideId(const ride_id_t rideId) if (rideId == RIDE_ID_NULL) return RCT12_RIDE_ID_NULL; - return rideId; + return static_cast(rideId); } static bool RCT12IsFormatChar(codepoint_t c) diff --git a/src/openrct2/ride/Ride.cpp b/src/openrct2/ride/Ride.cpp index 833a6c3250..392992b9ae 100644 --- a/src/openrct2/ride/Ride.cpp +++ b/src/openrct2/ride/Ride.cpp @@ -147,21 +147,23 @@ ride_id_t GetNextFreeRideId() Ride* GetOrAllocateRide(ride_id_t index) { - if (_rides.size() <= index) + const auto idx = static_cast(index); + if (_rides.size() <= idx) { - _rides.resize(index + 1); + _rides.resize(idx + 1); } - auto result = &_rides[index]; + auto result = &_rides[idx]; result->id = index; return result; } Ride* get_ride(ride_id_t index) { - if (index < _rides.size()) + const auto idx = static_cast(index); + if (idx < _rides.size()) { - auto& ride = _rides[index]; + auto& ride = _rides[idx]; if (ride.type != RIDE_TYPE_NULL) { assert(ride.id == index); @@ -1503,7 +1505,7 @@ void ride_breakdown_add_news_item(Ride* ride) { Formatter ft; ride->FormatNameTo(ft); - News::AddItemToQueue(News::ItemType::Ride, STR_RIDE_IS_BROKEN_DOWN, ride->id, ft); + News::AddItemToQueue(News::ItemType::Ride, STR_RIDE_IS_BROKEN_DOWN, static_cast(ride->id), ft); } } @@ -1530,7 +1532,7 @@ static void ride_breakdown_status_update(Ride* ride) { Formatter ft; ride->FormatNameTo(ft); - News::AddItemToQueue(News::ItemType::Ride, STR_RIDE_IS_STILL_NOT_FIXED, ride->id, ft); + News::AddItemToQueue(News::ItemType::Ride, STR_RIDE_IS_STILL_NOT_FIXED, static_cast(ride->id), ft); } } } @@ -2181,7 +2183,7 @@ static void ride_entrance_exit_connected(Ride* ride) ride->FormatNameTo(ft); if (gConfigNotifications.ride_warnings) { - News::AddItemToQueue(News::ItemType::Ride, STR_ENTRANCE_NOT_CONNECTED, ride->id, ft); + News::AddItemToQueue(News::ItemType::Ride, STR_ENTRANCE_NOT_CONNECTED, static_cast(ride->id), ft); } ride->connected_message_throttle = 3; } @@ -2193,7 +2195,7 @@ static void ride_entrance_exit_connected(Ride* ride) ride->FormatNameTo(ft); if (gConfigNotifications.ride_warnings) { - News::AddItemToQueue(News::ItemType::Ride, STR_EXIT_NOT_CONNECTED, ride->id, ft); + News::AddItemToQueue(News::ItemType::Ride, STR_EXIT_NOT_CONNECTED, static_cast(ride->id), ft); } ride->connected_message_throttle = 3; } @@ -2262,7 +2264,7 @@ static void ride_shop_connected(Ride* ride) { Formatter ft; ride->FormatNameTo(ft); - News::AddItemToQueue(News::ItemType::Ride, STR_ENTRANCE_NOT_CONNECTED, ride->id, ft); + News::AddItemToQueue(News::ItemType::Ride, STR_ENTRANCE_NOT_CONNECTED, static_cast(ride->id), ft); } ride->connected_message_throttle = 3; @@ -3795,13 +3797,13 @@ bool Ride::Test(RideStatus newStatus, bool isApplying) if (type == RIDE_TYPE_NULL) { - log_warning("Invalid ride type for ride %u", id); + log_warning("Invalid ride type for ride %u", static_cast(id)); return false; } if (newStatus != RideStatus::Simulating) { - window_close_by_number(WC_RIDE_CONSTRUCTION, id); + window_close_by_number(WC_RIDE_CONSTRUCTION, static_cast(id)); } StationIndex stationIndex = ride_mode_check_station_present(this); @@ -3928,9 +3930,11 @@ bool Ride::Open(bool isApplying) // to set the track to its final state and clean up ghosts. // We can't just call close as it would cause a stack overflow during shop creation // with auto open on. - if (WC_RIDE_CONSTRUCTION == gCurrentToolWidget.window_classification && id == gCurrentToolWidget.window_number - && (input_test_flag(INPUT_FLAG_TOOL_ACTIVE))) - window_close_by_number(WC_RIDE_CONSTRUCTION, id); + if (WC_RIDE_CONSTRUCTION == gCurrentToolWidget.window_classification + && static_cast(id) == gCurrentToolWidget.window_number && (input_test_flag(INPUT_FLAG_TOOL_ACTIVE))) + { + window_close_by_number(WC_RIDE_CONSTRUCTION, static_cast(id)); + } StationIndex stationIndex = ride_mode_check_station_present(this); if (stationIndex == STATION_INDEX_NULL) @@ -4637,7 +4641,7 @@ void invalidate_test_results(Ride* ride) } } } - window_invalidate_by_number(WC_RIDE, ride->id); + window_invalidate_by_number(WC_RIDE, static_cast(ride->id)); } /** @@ -5085,7 +5089,7 @@ void Ride::UpdateMaxVehicles() { num_cars_per_train = numCarsPerTrain; num_vehicles = numVehicles; - window_invalidate_by_number(WC_RIDE, id); + window_invalidate_by_number(WC_RIDE, static_cast(id)); } } @@ -5154,7 +5158,7 @@ void Ride::Crash(uint8_t vehicleIndex) { Formatter ft; FormatNameTo(ft); - News::AddItemToQueue(News::ItemType::Ride, STR_RIDE_HAS_CRASHED, id, ft); + News::AddItemToQueue(News::ItemType::Ride, STR_RIDE_HAS_CRASHED, static_cast(id), ft); } } diff --git a/src/openrct2/ride/RideConstruction.cpp b/src/openrct2/ride/RideConstruction.cpp index d0e06c9a88..df0b9c152c 100644 --- a/src/openrct2/ride/RideConstruction.cpp +++ b/src/openrct2/ride/RideConstruction.cpp @@ -122,7 +122,7 @@ static rct_window* ride_create_or_find_construction_window(ride_id_t rideIndex) { auto windowManager = GetContext()->GetUiContext()->GetWindowManager(); auto intent = Intent(INTENT_ACTION_RIDE_CONSTRUCTION_FOCUS); - intent.putExtra(INTENT_EXTRA_RIDE_ID, rideIndex); + intent.putExtra(INTENT_EXTRA_RIDE_ID, static_cast(rideIndex)); windowManager->BroadcastIntent(intent); return window_find_by_class(WC_RIDE_CONSTRUCTION); } @@ -239,7 +239,7 @@ void ride_clear_for_construction(Ride* ride) ride->RemoveVehicles(); ride_clear_blocked_tiles(ride); - auto w = window_find_by_number(WC_RIDE, ride->id); + auto w = window_find_by_number(WC_RIDE, static_cast(ride->id)); if (w != nullptr) window_event_resize_call(w); } diff --git a/src/openrct2/ride/RideRatings.cpp b/src/openrct2/ride/RideRatings.cpp index 515e710c43..19b7b1b03d 100644 --- a/src/openrct2/ride/RideRatings.cpp +++ b/src/openrct2/ride/RideRatings.cpp @@ -159,10 +159,10 @@ static void ride_ratings_update_state_0(RideRatingUpdateState& state) { ride_id_t currentRide = state.CurrentRide; - currentRide++; - if (currentRide >= MAX_RIDES) + currentRide = static_cast(static_cast(currentRide) + 1); + if (currentRide >= static_cast(MAX_RIDES)) { - currentRide = 0; + currentRide = {}; } auto ride = get_ride(currentRide); @@ -285,7 +285,7 @@ static void ride_ratings_update_state_3(RideRatingUpdateState& state) ride_ratings_calculate(state, ride); ride_ratings_calculate_value(ride); - window_invalidate_by_number(WC_RIDE, state.CurrentRide); + window_invalidate_by_number(WC_RIDE, static_cast(state.CurrentRide)); state.State = RIDE_RATINGS_STATE_FIND_NEXT_RIDE; } @@ -753,7 +753,7 @@ static void ride_ratings_calculate(RideRatingUpdateState& state, Ride* ride) // Create event args object auto obj = DukObject(ctx); - obj.Set("rideId", ride->id); + obj.Set("rideId", static_cast(ride->id)); obj.Set("excitement", originalExcitement); obj.Set("intensity", originalIntensity); obj.Set("nausea", originalNausea); diff --git a/src/openrct2/ride/TrackDesign.cpp b/src/openrct2/ride/TrackDesign.cpp index a8d3f0aa67..f419047418 100644 --- a/src/openrct2/ride/TrackDesign.cpp +++ b/src/openrct2/ride/TrackDesign.cpp @@ -319,7 +319,8 @@ rct_string_id TrackDesign::CreateTrackDesignTrack(const Ride& ride) } } - place_virtual_track(this, PTD_OPERATION_DRAW_OUTLINES, true, GetOrAllocateRide(0), { 4096, 4096, 0 }); + place_virtual_track( + this, PTD_OPERATION_DRAW_OUTLINES, true, GetOrAllocateRide(static_cast(0)), { 4096, 4096, 0 }); // Resave global vars for scenery reasons. _trackPreviewOrigin = startPos; @@ -438,7 +439,8 @@ rct_string_id TrackDesign::CreateTrackDesignMaze(const Ride& ride) // Save global vars as they are still used by scenery???? int32_t startZ = _trackPreviewOrigin.z; - place_virtual_track(this, PTD_OPERATION_DRAW_OUTLINES, true, GetOrAllocateRide(0), { 4096, 4096, 0 }); + place_virtual_track( + this, PTD_OPERATION_DRAW_OUTLINES, true, GetOrAllocateRide(static_cast(0)), { 4096, 4096, 0 }); _trackPreviewOrigin = { startLoc.x, startLoc.y, startZ }; gMapSelectFlags &= ~MAP_SELECT_FLAG_ENABLE_CONSTRUCT; @@ -1931,7 +1933,8 @@ static bool track_design_place_preview(TrackDesign* td6, money32* cost, Ride** o int32_t mapSize = gMapSize << 4; _currentTrackPieceDirection = 0; - int32_t z = place_virtual_track(td6, PTD_OPERATION_GET_PLACE_Z, true, GetOrAllocateRide(0), { mapSize, mapSize, 16 }); + int32_t z = place_virtual_track( + td6, PTD_OPERATION_GET_PLACE_Z, true, GetOrAllocateRide(static_cast(0)), { mapSize, mapSize, 16 }); if (_trackDesignPlaceStateHasScenery) { diff --git a/src/openrct2/ride/Vehicle.cpp b/src/openrct2/ride/Vehicle.cpp index 659d40b00c..7b29615007 100644 --- a/src/openrct2/ride/Vehicle.cpp +++ b/src/openrct2/ride/Vehicle.cpp @@ -1600,7 +1600,7 @@ void Vehicle::UpdateMeasurements() curRide->lifecycle_flags |= RIDE_LIFECYCLE_NO_RAW_STATS; curRide->lifecycle_flags &= ~RIDE_LIFECYCLE_TEST_IN_PROGRESS; ClearUpdateFlag(VEHICLE_UPDATE_FLAG_TESTING); - window_invalidate_by_number(WC_RIDE, ride); + window_invalidate_by_number(WC_RIDE, static_cast(ride)); return; } @@ -3114,7 +3114,7 @@ static void test_finish(Ride& ride) totalTime = std::max(totalTime, 1u); ride.average_speed = ride.average_speed / totalTime; - window_invalidate_by_number(WC_RIDE, ride.id); + window_invalidate_by_number(WC_RIDE, static_cast(ride.id)); } void Vehicle::UpdateTestFinish() @@ -3164,7 +3164,7 @@ static void test_reset(Ride& ride, StationIndex curStation) } ride.total_air_time = 0; ride.current_test_station = curStation; - window_invalidate_by_number(WC_RIDE, ride.id); + window_invalidate_by_number(WC_RIDE, static_cast(ride.id)); } void Vehicle::TestReset() @@ -3570,7 +3570,7 @@ void Vehicle::CheckIfMissing() curRide->FormatNameTo(ft); ft.Add(GetRideComponentName(GetRideTypeDescriptor(curRide->type).NameConvention.station).singular); - News::AddItemToQueue(News::ItemType::Ride, STR_NEWS_VEHICLE_HAS_STALLED, ride, ft); + News::AddItemToQueue(News::ItemType::Ride, STR_NEWS_VEHICLE_HAS_STALLED, static_cast(ride), ft); } } @@ -5305,7 +5305,8 @@ static void ride_train_crash(Ride* ride, uint16_t numFatalities) { ride->FormatNameTo(ft); News::AddItemToQueue( - News::ItemType::Ride, numFatalities == 1 ? STR_X_PERSON_DIED_ON_X : STR_X_PEOPLE_DIED_ON_X, ride->id, ft); + News::ItemType::Ride, numFatalities == 1 ? STR_X_PERSON_DIED_ON_X : STR_X_PEOPLE_DIED_ON_X, + static_cast(ride->id), ft); } if (gParkRatingCasualtyPenalty < 500) diff --git a/src/openrct2/scripting/ScriptEngine.cpp b/src/openrct2/scripting/ScriptEngine.cpp index 4b127d5a69..2f363306b6 100644 --- a/src/openrct2/scripting/ScriptEngine.cpp +++ b/src/openrct2/scripting/ScriptEngine.cpp @@ -893,7 +893,7 @@ DukValue ScriptEngine::GameActionResultToDuk(const GameAction& action, const std auto& rideCreateResult = static_cast(*result.get()); if (rideCreateResult.rideIndex != RIDE_ID_NULL) { - obj.Set("ride", rideCreateResult.rideIndex); + obj.Set("ride", static_cast(rideCreateResult.rideIndex)); } } else if (action.GetType() == GameCommand::HireNewStaffMember)