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
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;
}
@ -306,7 +306,7 @@ static void window_track_place_toolupdate(rct_window* w, rct_widgetindex widgetI
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)
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(

View File

@ -1750,7 +1750,7 @@ static bool track_design_place_preview(rct_track_td6* td6, money32* cost, Ride**
int32_t mapSize = gMapSize << 4;
_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)
{

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
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 };
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);
*((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.
gTrackPreviewOrigin = { start_x, start_y, start_z };