mirror of https://github.com/OpenRCT2/OpenRCT2.git
parent
78e40f5358
commit
b39a0037f0
|
@ -287,8 +287,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 (mapCoords.x == _window_track_place_last_x && mapCoords.y == _window_track_place_last_y)
|
if (mapCoords.x == _window_track_place_last_x && mapCoords.y == _window_track_place_last_y)
|
||||||
{
|
{
|
||||||
place_virtual_track(
|
place_virtual_track(_trackDesign.get(), PTD_OPERATION_DRAW_OUTLINES, true, GetOrAllocateRide(0), { mapCoords, 0 });
|
||||||
_trackDesign.get(), PTD_OPERATION_DRAW_OUTLINES, true, GetOrAllocateRide(0), mapCoords.x, mapCoords.y, 0);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -331,8 +330,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(
|
place_virtual_track(_trackDesign.get(), PTD_OPERATION_DRAW_OUTLINES, true, GetOrAllocateRide(0), trackLoc);
|
||||||
_trackDesign.get(), PTD_OPERATION_DRAW_OUTLINES, true, GetOrAllocateRide(0), trackLoc.x, trackLoc.y, trackLoc.z);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -436,8 +434,8 @@ static void window_track_place_clear_provisional()
|
||||||
if (ride != nullptr)
|
if (ride != nullptr)
|
||||||
{
|
{
|
||||||
place_virtual_track(
|
place_virtual_track(
|
||||||
_trackDesign.get(), PTD_OPERATION_REMOVE_GHOST, true, ride, _window_track_place_last_valid_x,
|
_trackDesign.get(), PTD_OPERATION_REMOVE_GHOST, true, ride,
|
||||||
_window_track_place_last_valid_y, _window_track_place_last_valid_z);
|
{ _window_track_place_last_valid_x, _window_track_place_last_valid_y, _window_track_place_last_valid_z });
|
||||||
_window_track_place_last_was_valid = false;
|
_window_track_place_last_was_valid = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -451,8 +449,8 @@ void TrackPlaceClearProvisionalTemporarily()
|
||||||
if (ride != nullptr)
|
if (ride != nullptr)
|
||||||
{
|
{
|
||||||
place_virtual_track(
|
place_virtual_track(
|
||||||
_trackDesign.get(), PTD_OPERATION_REMOVE_GHOST, true, ride, _window_track_place_last_valid_x,
|
_trackDesign.get(), PTD_OPERATION_REMOVE_GHOST, true, ride,
|
||||||
_window_track_place_last_valid_y, _window_track_place_last_valid_z);
|
{ _window_track_place_last_valid_x, _window_track_place_last_valid_y, _window_track_place_last_valid_z });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -500,7 +498,7 @@ static int32_t window_track_place_get_base_z(const CoordsXY& loc)
|
||||||
if (surfaceElement->GetWaterHeight() > 0)
|
if (surfaceElement->GetWaterHeight() > 0)
|
||||||
z = std::max(z, surfaceElement->GetWaterHeight());
|
z = std::max(z, surfaceElement->GetWaterHeight());
|
||||||
|
|
||||||
return z + place_virtual_track(_trackDesign.get(), PTD_OPERATION_GET_PLACE_Z, true, GetOrAllocateRide(0), loc.x, loc.y, z);
|
return z + place_virtual_track(_trackDesign.get(), PTD_OPERATION_GET_PLACE_Z, true, GetOrAllocateRide(0), { loc, z });
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
static int32_t place_virtual_track(
|
static int32_t place_virtual_track(
|
||||||
const TrackDesign& td6, uint8_t ptdOperation, bool placeScenery, Ride* ride, const CoordsXYZ& loc)
|
const TrackDesign& td6, uint8_t ptdOperation, bool placeScenery, Ride* ride, const CoordsXYZ& loc)
|
||||||
{
|
{
|
||||||
return place_virtual_track(const_cast<TrackDesign*>(&td6), ptdOperation, placeScenery, ride, loc.x, loc.y, loc.z);
|
return place_virtual_track(const_cast<TrackDesign*>(&td6), ptdOperation, placeScenery, ride, loc);
|
||||||
}
|
}
|
||||||
|
|
||||||
GameActionResult::Ptr TrackDesignAction::Query() const
|
GameActionResult::Ptr TrackDesignAction::Query() const
|
||||||
|
|
|
@ -333,7 +333,7 @@ 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(0), { 4096, 4096, 0 });
|
||||||
|
|
||||||
// Resave global vars for scenery reasons.
|
// Resave global vars for scenery reasons.
|
||||||
_trackPreviewOrigin = startPos;
|
_trackPreviewOrigin = startPos;
|
||||||
|
@ -452,7 +452,7 @@ rct_string_id TrackDesign::CreateTrackDesignMaze(const Ride& ride)
|
||||||
|
|
||||||
// Save global vars as they are still used by scenery????
|
// Save global vars as they are still used by scenery????
|
||||||
int32_t startZ = _trackPreviewOrigin.z;
|
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(0), { 4096, 4096, 0 });
|
||||||
_trackPreviewOrigin = { startLoc.x, startLoc.y, startZ };
|
_trackPreviewOrigin = { startLoc.x, startLoc.y, startZ };
|
||||||
|
|
||||||
gMapSelectFlags &= ~MAP_SELECT_FLAG_ENABLE_CONSTRUCT;
|
gMapSelectFlags &= ~MAP_SELECT_FLAG_ENABLE_CONSTRUCT;
|
||||||
|
@ -1793,8 +1793,7 @@ static bool track_design_place_ride(TrackDesign* td6, const CoordsXYZ& origin, R
|
||||||
* bl == 6, Clear white outlined track.
|
* bl == 6, Clear white outlined track.
|
||||||
* rct2: 0x006D01B3
|
* rct2: 0x006D01B3
|
||||||
*/
|
*/
|
||||||
int32_t place_virtual_track(
|
int32_t place_virtual_track(TrackDesign* td6, uint8_t ptdOperation, bool placeScenery, Ride* ride, const CoordsXYZ& coords)
|
||||||
TrackDesign* td6, uint8_t ptdOperation, bool placeScenery, Ride* ride, int16_t x, int16_t y, int16_t z)
|
|
||||||
{
|
{
|
||||||
// Previously byte_F4414E was cleared here
|
// Previously byte_F4414E was cleared here
|
||||||
_trackDesignPlaceStatePlaceScenery = placeScenery;
|
_trackDesignPlaceStatePlaceScenery = placeScenery;
|
||||||
|
@ -1811,22 +1810,18 @@ int32_t place_virtual_track(
|
||||||
}
|
}
|
||||||
_currentRideIndex = ride->id;
|
_currentRideIndex = ride->id;
|
||||||
|
|
||||||
_trackPreviewMin.x = x;
|
_trackPreviewMin = coords;
|
||||||
_trackPreviewMin.y = y;
|
_trackPreviewMax = coords;
|
||||||
_trackPreviewMin.z = z;
|
|
||||||
_trackPreviewMax.x = x;
|
|
||||||
_trackPreviewMax.y = y;
|
|
||||||
_trackPreviewMax.z = z;
|
|
||||||
|
|
||||||
_trackDesignPlaceSceneryZ = 0;
|
_trackDesignPlaceSceneryZ = 0;
|
||||||
uint8_t track_place_success = 0;
|
uint8_t track_place_success = 0;
|
||||||
if (td6->type == RIDE_TYPE_MAZE)
|
if (td6->type == RIDE_TYPE_MAZE)
|
||||||
{
|
{
|
||||||
track_place_success = track_design_place_maze(td6, { x, y, z }, ride);
|
track_place_success = track_design_place_maze(td6, coords, ride);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
track_place_success = track_design_place_ride(td6, { x, y, z }, ride);
|
track_place_success = track_design_place_ride(td6, coords, ride);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Scenery elements
|
// Scenery elements
|
||||||
|
@ -1935,7 +1930,7 @@ static bool track_design_place_preview(TrackDesign* td6, money32* cost, Ride** o
|
||||||
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, GetOrAllocateRide(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)
|
||||||
{
|
{
|
||||||
|
@ -1951,7 +1946,8 @@ static bool track_design_place_preview(TrackDesign* td6, money32* cost, Ride** o
|
||||||
*flags |= TRACK_DESIGN_FLAG_SCENERY_UNAVAILABLE;
|
*flags |= TRACK_DESIGN_FLAG_SCENERY_UNAVAILABLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
money32 resultCost = place_virtual_track(td6, PTD_OPERATION_PLACE_TRACK_PREVIEW, placeScenery, ride, mapSize, mapSize, z);
|
money32 resultCost = place_virtual_track(
|
||||||
|
td6, PTD_OPERATION_PLACE_TRACK_PREVIEW, placeScenery, ride, { mapSize, mapSize, z });
|
||||||
gParkFlags = backup_park_flags;
|
gParkFlags = backup_park_flags;
|
||||||
|
|
||||||
if (resultCost != MONEY32_UNDEFINED)
|
if (resultCost != MONEY32_UNDEFINED)
|
||||||
|
|
|
@ -205,8 +205,7 @@ std::unique_ptr<TrackDesign> track_design_open(const utf8* path);
|
||||||
|
|
||||||
void track_design_mirror(TrackDesign* td6);
|
void track_design_mirror(TrackDesign* td6);
|
||||||
|
|
||||||
int32_t place_virtual_track(
|
int32_t place_virtual_track(TrackDesign* td6, uint8_t ptdOperation, bool placeScenery, Ride* ride, const CoordsXYZ& coords);
|
||||||
TrackDesign* td6, uint8_t ptdOperation, bool placeScenery, Ride* ride, int16_t x, int16_t y, int16_t z);
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
// Track design preview
|
// Track design preview
|
||||||
|
|
Loading…
Reference in New Issue