Fix placing track designs when ride 0 is not allocated

This commit is contained in:
Ted John 2019-08-07 21:25:28 +01:00
parent cd4eb86a7c
commit 746d784b0e
3 changed files with 6 additions and 6 deletions

View File

@ -267,7 +267,7 @@ static void window_track_place_toolupdate(rct_window* w, rct_widgetindex widgetI
// Check if tool map position has changed since last update // Check if tool map position has changed since last update
if (mapX == _window_track_place_last_x && mapY == _window_track_place_last_y) if (mapX == _window_track_place_last_x && mapY == _window_track_place_last_y)
{ {
place_virtual_track(_trackDesign, PTD_OPERATION_DRAW_OUTLINES, true, get_ride(0), mapX, mapY, 0); place_virtual_track(_trackDesign, PTD_OPERATION_DRAW_OUTLINES, true, GetOrAllocateRide(0), mapX, mapY, 0);
return; return;
} }
@ -306,7 +306,7 @@ static void window_track_place_toolupdate(rct_window* w, rct_widgetindex widgetI
widget_invalidate(w, WIDX_PRICE); widget_invalidate(w, WIDX_PRICE);
} }
place_virtual_track(_trackDesign, PTD_OPERATION_DRAW_OUTLINES, true, get_ride(0), mapX, mapY, mapZ); place_virtual_track(_trackDesign, PTD_OPERATION_DRAW_OUTLINES, true, GetOrAllocateRide(0), mapX, mapY, mapZ);
} }
/** /**
@ -436,7 +436,7 @@ static int32_t window_track_place_get_base_z(int32_t x, int32_t y)
if (tileElement->AsSurface()->GetWaterHeight() > 0) if (tileElement->AsSurface()->GetWaterHeight() > 0)
z = std::max(z, tileElement->AsSurface()->GetWaterHeight() << 4); z = std::max(z, tileElement->AsSurface()->GetWaterHeight() << 4);
return z + place_virtual_track(_trackDesign, PTD_OPERATION_GET_PLACE_Z, true, get_ride(0), x, y, z); return z + place_virtual_track(_trackDesign, PTD_OPERATION_GET_PLACE_Z, true, GetOrAllocateRide(0), x, y, z);
} }
static void window_track_place_attempt_placement( static void window_track_place_attempt_placement(

View File

@ -1750,7 +1750,7 @@ static bool track_design_place_preview(rct_track_td6* td6, money32* cost, Ride**
int32_t mapSize = gMapSize << 4; int32_t mapSize = gMapSize << 4;
_currentTrackPieceDirection = 0; _currentTrackPieceDirection = 0;
int32_t z = place_virtual_track(td6, PTD_OPERATION_GET_PLACE_Z, true, get_ride(0), mapSize, mapSize, 16); int32_t z = place_virtual_track(td6, PTD_OPERATION_GET_PLACE_Z, true, GetOrAllocateRide(0), mapSize, mapSize, 16);
if (_trackDesignPlaceStateHasScenery) if (_trackDesignPlaceStateHasScenery)
{ {

View File

@ -989,7 +989,7 @@ static bool track_design_save_to_td6_for_maze(const Ride* ride, rct_track_td6* t
// Save global vars as they are still used by scenery // Save global vars as they are still used by scenery
int16_t startZ = gTrackPreviewOrigin.z; int16_t startZ = gTrackPreviewOrigin.z;
place_virtual_track(td6, PTD_OPERATION_DRAW_OUTLINES, true, get_ride(0), 4096, 4096, 0); place_virtual_track(td6, PTD_OPERATION_DRAW_OUTLINES, true, GetOrAllocateRide(0), 4096, 4096, 0);
gTrackPreviewOrigin = { startX, startY, startZ }; gTrackPreviewOrigin = { startX, startY, startZ };
gMapSelectFlags &= ~MAP_SELECT_FLAG_ENABLE_CONSTRUCT; gMapSelectFlags &= ~MAP_SELECT_FLAG_ENABLE_CONSTRUCT;
@ -1180,7 +1180,7 @@ static bool track_design_save_to_td6_for_tracked_ride(const Ride* ride, rct_trac
td6->entrance_elements, numEntranceElements * sizeof(rct_td6_entrance_element) + 1); td6->entrance_elements, numEntranceElements * sizeof(rct_td6_entrance_element) + 1);
*((uint8_t*)&td6->entrance_elements[numEntranceElements]) = 0xFF; *((uint8_t*)&td6->entrance_elements[numEntranceElements]) = 0xFF;
place_virtual_track(td6, PTD_OPERATION_DRAW_OUTLINES, true, get_ride(0), 4096, 4096, 0); place_virtual_track(td6, PTD_OPERATION_DRAW_OUTLINES, true, GetOrAllocateRide(0), 4096, 4096, 0);
// Resave global vars for scenery reasons. // Resave global vars for scenery reasons.
gTrackPreviewOrigin = { start_x, start_y, start_z }; gTrackPreviewOrigin = { start_x, start_y, start_z };