mirror of https://github.com/OpenRCT2/OpenRCT2.git
Use big Z in more places
This commit is contained in:
parent
7759b54c2f
commit
ad91654a3d
|
@ -147,7 +147,7 @@ public:
|
||||||
banner->position.y = _loc.y / 32;
|
banner->position.y = _loc.y / 32;
|
||||||
newTileElement->SetType(TILE_ELEMENT_TYPE_BANNER);
|
newTileElement->SetType(TILE_ELEMENT_TYPE_BANNER);
|
||||||
BannerElement* bannerElement = newTileElement->AsBanner();
|
BannerElement* bannerElement = newTileElement->AsBanner();
|
||||||
bannerElement->clearance_height = newTileElement->base_height + 2;
|
bannerElement->SetClearanceZ(_loc.z + PATH_CLEARANCE);
|
||||||
bannerElement->SetPosition(_loc.direction);
|
bannerElement->SetPosition(_loc.direction);
|
||||||
bannerElement->ResetAllowedEdges();
|
bannerElement->ResetAllowedEdges();
|
||||||
bannerElement->SetIndex(_bannerIndex);
|
bannerElement->SetIndex(_bannerIndex);
|
||||||
|
|
|
@ -73,7 +73,7 @@ private:
|
||||||
res->Position.z = z;
|
res->Position.z = z;
|
||||||
res->Expenditure = ExpenditureType::Landscaping;
|
res->Expenditure = ExpenditureType::Landscaping;
|
||||||
|
|
||||||
uint8_t maxHeight = GetHighestHeight(validRange);
|
auto maxHeight = GetHighestHeight(validRange) / COORDS_Z_STEP;
|
||||||
bool hasChanged = false;
|
bool hasChanged = false;
|
||||||
for (int32_t y = validRange.GetTop(); y <= validRange.GetBottom(); y += COORDS_XY_STEP)
|
for (int32_t y = validRange.GetTop(); y <= validRange.GetBottom(); y += COORDS_XY_STEP)
|
||||||
{
|
{
|
||||||
|
@ -125,10 +125,10 @@ private:
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
uint8_t GetHighestHeight(MapRange validRange) const
|
uint16_t GetHighestHeight(MapRange validRange) const
|
||||||
{
|
{
|
||||||
// The highest height to raise the water to is the lowest water level in the selection
|
// The highest height to raise the water to is the lowest water level in the selection
|
||||||
uint8_t maxHeight{ 255 };
|
uint16_t maxHeight = 255 * COORDS_Z_STEP;
|
||||||
for (int32_t y = validRange.GetTop(); y <= validRange.GetBottom(); y += COORDS_XY_STEP)
|
for (int32_t y = validRange.GetTop(); y <= validRange.GetBottom(); y += COORDS_XY_STEP)
|
||||||
{
|
{
|
||||||
for (int32_t x = validRange.GetLeft(); x <= validRange.GetRight(); x += COORDS_XY_STEP)
|
for (int32_t x = validRange.GetLeft(); x <= validRange.GetRight(); x += COORDS_XY_STEP)
|
||||||
|
@ -137,10 +137,10 @@ private:
|
||||||
if (surfaceElement == nullptr)
|
if (surfaceElement == nullptr)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
uint8_t height = surfaceElement->base_height;
|
auto height = surfaceElement->GetBaseZ();
|
||||||
if (surfaceElement->GetWaterHeight() > 0)
|
if (surfaceElement->GetWaterHeight() > 0)
|
||||||
{
|
{
|
||||||
height = surfaceElement->GetWaterHeight() / COORDS_Z_STEP;
|
height = surfaceElement->GetWaterHeight();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (maxHeight > height)
|
if (maxHeight > height)
|
||||||
|
|
|
@ -1027,8 +1027,8 @@ public:
|
||||||
uint8_t tileElementType = src->GetType();
|
uint8_t tileElementType = src->GetType();
|
||||||
dst->ClearAs(tileElementType);
|
dst->ClearAs(tileElementType);
|
||||||
dst->SetDirection(src->GetDirection());
|
dst->SetDirection(src->GetDirection());
|
||||||
dst->base_height = src->base_height;
|
dst->SetBaseZ(src->base_height * COORDS_Z_STEP);
|
||||||
dst->clearance_height = src->clearance_height;
|
dst->SetClearanceZ(src->clearance_height * COORDS_Z_STEP);
|
||||||
|
|
||||||
// All saved in "flags"
|
// All saved in "flags"
|
||||||
dst->SetOccupiedQuadrants(src->GetOccupiedQuadrants());
|
dst->SetOccupiedQuadrants(src->GetOccupiedQuadrants());
|
||||||
|
|
|
@ -6858,7 +6858,6 @@ void sub_6CB945(Ride* ride)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
CoordsXYZ location = ride->stations[stationId].GetStart();
|
CoordsXYZ location = ride->stations[stationId].GetStart();
|
||||||
auto tileHeight = TileCoordsXYZ(location).z;
|
|
||||||
uint8_t direction = INVALID_DIRECTION;
|
uint8_t direction = INVALID_DIRECTION;
|
||||||
|
|
||||||
bool specialTrack = false;
|
bool specialTrack = false;
|
||||||
|
@ -6878,7 +6877,7 @@ void sub_6CB945(Ride* ride)
|
||||||
bool trackFound = false;
|
bool trackFound = false;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
if (tileElement->base_height != tileHeight)
|
if (tileElement->GetBaseZ() != location.z)
|
||||||
continue;
|
continue;
|
||||||
if (tileElement->GetType() != TILE_ELEMENT_TYPE_TRACK)
|
if (tileElement->GetType() != TILE_ELEMENT_TYPE_TRACK)
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -201,12 +201,11 @@ static void ride_ratings_update_state_2()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t x = gRideRatingsCalcData.proximity_x / 32;
|
auto loc = CoordsXYZ{ gRideRatingsCalcData.proximity_x, gRideRatingsCalcData.proximity_y,
|
||||||
int32_t y = gRideRatingsCalcData.proximity_y / 32;
|
gRideRatingsCalcData.proximity_z };
|
||||||
int32_t z = gRideRatingsCalcData.proximity_z / 8;
|
|
||||||
int32_t trackType = gRideRatingsCalcData.proximity_track_type;
|
int32_t trackType = gRideRatingsCalcData.proximity_track_type;
|
||||||
|
|
||||||
TileElement* tileElement = map_get_first_element_at(TileCoordsXY{ x, y }.ToCoordsXY());
|
TileElement* tileElement = map_get_first_element_at(loc);
|
||||||
if (tileElement == nullptr)
|
if (tileElement == nullptr)
|
||||||
{
|
{
|
||||||
gRideRatingsCalcData.state = RIDE_RATINGS_STATE_FIND_NEXT_RIDE;
|
gRideRatingsCalcData.state = RIDE_RATINGS_STATE_FIND_NEXT_RIDE;
|
||||||
|
@ -218,7 +217,7 @@ static void ride_ratings_update_state_2()
|
||||||
continue;
|
continue;
|
||||||
if (tileElement->GetType() != TILE_ELEMENT_TYPE_TRACK)
|
if (tileElement->GetType() != TILE_ELEMENT_TYPE_TRACK)
|
||||||
continue;
|
continue;
|
||||||
if (tileElement->base_height != z)
|
if (tileElement->GetBaseZ() != loc.z)
|
||||||
continue;
|
continue;
|
||||||
if (tileElement->AsTrack()->GetRideIndex() != ride->id)
|
if (tileElement->AsTrack()->GetRideIndex() != ride->id)
|
||||||
{
|
{
|
||||||
|
@ -254,19 +253,17 @@ static void ride_ratings_update_state_2()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
x = nextTrackElement.x;
|
loc = { nextTrackElement, nextTrackElement.element->GetBaseZ() };
|
||||||
y = nextTrackElement.y;
|
|
||||||
z = nextTrackElement.element->GetBaseZ();
|
|
||||||
tileElement = nextTrackElement.element;
|
tileElement = nextTrackElement.element;
|
||||||
if (x == gRideRatingsCalcData.proximity_start_x && y == gRideRatingsCalcData.proximity_start_y
|
if (loc.x == gRideRatingsCalcData.proximity_start_x && loc.y == gRideRatingsCalcData.proximity_start_y
|
||||||
&& z == gRideRatingsCalcData.proximity_start_z)
|
&& loc.z == gRideRatingsCalcData.proximity_start_z)
|
||||||
{
|
{
|
||||||
gRideRatingsCalcData.state = RIDE_RATINGS_STATE_CALCULATE;
|
gRideRatingsCalcData.state = RIDE_RATINGS_STATE_CALCULATE;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
gRideRatingsCalcData.proximity_x = x;
|
gRideRatingsCalcData.proximity_x = loc.x;
|
||||||
gRideRatingsCalcData.proximity_y = y;
|
gRideRatingsCalcData.proximity_y = loc.y;
|
||||||
gRideRatingsCalcData.proximity_z = z;
|
gRideRatingsCalcData.proximity_z = loc.z;
|
||||||
gRideRatingsCalcData.proximity_track_type = tileElement->AsTrack()->GetTrackType();
|
gRideRatingsCalcData.proximity_track_type = tileElement->AsTrack()->GetTrackType();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -318,12 +315,11 @@ static void ride_ratings_update_state_5()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t x = gRideRatingsCalcData.proximity_x / 32;
|
auto loc = CoordsXYZ{ gRideRatingsCalcData.proximity_x, gRideRatingsCalcData.proximity_y,
|
||||||
int32_t y = gRideRatingsCalcData.proximity_y / 32;
|
gRideRatingsCalcData.proximity_z };
|
||||||
int32_t z = gRideRatingsCalcData.proximity_z / 8;
|
|
||||||
int32_t trackType = gRideRatingsCalcData.proximity_track_type;
|
int32_t trackType = gRideRatingsCalcData.proximity_track_type;
|
||||||
|
|
||||||
TileElement* tileElement = map_get_first_element_at(TileCoordsXY{ x, y }.ToCoordsXY());
|
TileElement* tileElement = map_get_first_element_at(loc);
|
||||||
if (tileElement == nullptr)
|
if (tileElement == nullptr)
|
||||||
{
|
{
|
||||||
gRideRatingsCalcData.state = RIDE_RATINGS_STATE_FIND_NEXT_RIDE;
|
gRideRatingsCalcData.state = RIDE_RATINGS_STATE_FIND_NEXT_RIDE;
|
||||||
|
@ -335,7 +331,7 @@ static void ride_ratings_update_state_5()
|
||||||
continue;
|
continue;
|
||||||
if (tileElement->GetType() != TILE_ELEMENT_TYPE_TRACK)
|
if (tileElement->GetType() != TILE_ELEMENT_TYPE_TRACK)
|
||||||
continue;
|
continue;
|
||||||
if (tileElement->base_height != z)
|
if (tileElement->GetBaseZ() != loc.z)
|
||||||
continue;
|
continue;
|
||||||
if (tileElement->AsTrack()->GetRideIndex() != ride->id)
|
if (tileElement->AsTrack()->GetRideIndex() != ride->id)
|
||||||
{
|
{
|
||||||
|
@ -348,27 +344,27 @@ static void ride_ratings_update_state_5()
|
||||||
{
|
{
|
||||||
ride_ratings_score_close_proximity(tileElement);
|
ride_ratings_score_close_proximity(tileElement);
|
||||||
|
|
||||||
x = gRideRatingsCalcData.proximity_x;
|
loc.x = gRideRatingsCalcData.proximity_x;
|
||||||
y = gRideRatingsCalcData.proximity_y;
|
loc.y = gRideRatingsCalcData.proximity_y;
|
||||||
track_begin_end trackBeginEnd;
|
track_begin_end trackBeginEnd;
|
||||||
if (!track_block_get_previous(x, y, tileElement, &trackBeginEnd))
|
if (!track_block_get_previous(loc.x, loc.y, tileElement, &trackBeginEnd))
|
||||||
{
|
{
|
||||||
gRideRatingsCalcData.state = RIDE_RATINGS_STATE_CALCULATE;
|
gRideRatingsCalcData.state = RIDE_RATINGS_STATE_CALCULATE;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
x = trackBeginEnd.begin_x;
|
loc.x = trackBeginEnd.begin_x;
|
||||||
y = trackBeginEnd.begin_y;
|
loc.y = trackBeginEnd.begin_y;
|
||||||
z = trackBeginEnd.begin_z;
|
loc.z = trackBeginEnd.begin_z;
|
||||||
if (x == gRideRatingsCalcData.proximity_start_x && y == gRideRatingsCalcData.proximity_start_y
|
if (loc.x == gRideRatingsCalcData.proximity_start_x && loc.y == gRideRatingsCalcData.proximity_start_y
|
||||||
&& z == gRideRatingsCalcData.proximity_start_z)
|
&& loc.z == gRideRatingsCalcData.proximity_start_z)
|
||||||
{
|
{
|
||||||
gRideRatingsCalcData.state = RIDE_RATINGS_STATE_CALCULATE;
|
gRideRatingsCalcData.state = RIDE_RATINGS_STATE_CALCULATE;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
gRideRatingsCalcData.proximity_x = x;
|
gRideRatingsCalcData.proximity_x = loc.x;
|
||||||
gRideRatingsCalcData.proximity_y = y;
|
gRideRatingsCalcData.proximity_y = loc.y;
|
||||||
gRideRatingsCalcData.proximity_z = z;
|
gRideRatingsCalcData.proximity_z = loc.z;
|
||||||
gRideRatingsCalcData.proximity_track_type = trackBeginEnd.begin_element->AsTrack()->GetTrackType();
|
gRideRatingsCalcData.proximity_track_type = trackBeginEnd.begin_element->AsTrack()->GetTrackType();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -613,11 +609,11 @@ static void ride_ratings_score_close_proximity(TileElement* inputTileElement)
|
||||||
// Bonus for normal path
|
// Bonus for normal path
|
||||||
if (tileElement->AsPath()->GetSurfaceEntryIndex() != 0)
|
if (tileElement->AsPath()->GetSurfaceEntryIndex() != 0)
|
||||||
{
|
{
|
||||||
if (tileElement->clearance_height == inputTileElement->base_height)
|
if (tileElement->GetClearanceZ() == inputTileElement->GetBaseZ())
|
||||||
{
|
{
|
||||||
proximity_score_increment(PROXIMITY_PATH_TOUCH_ABOVE);
|
proximity_score_increment(PROXIMITY_PATH_TOUCH_ABOVE);
|
||||||
}
|
}
|
||||||
if (tileElement->base_height == inputTileElement->clearance_height)
|
if (tileElement->GetBaseZ() == inputTileElement->GetClearanceZ())
|
||||||
{
|
{
|
||||||
proximity_score_increment(PROXIMITY_PATH_TOUCH_UNDER);
|
proximity_score_increment(PROXIMITY_PATH_TOUCH_UNDER);
|
||||||
}
|
}
|
||||||
|
@ -625,15 +621,15 @@ static void ride_ratings_score_close_proximity(TileElement* inputTileElement)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Bonus for path in first object entry
|
// Bonus for path in first object entry
|
||||||
if (tileElement->clearance_height <= inputTileElement->base_height)
|
if (tileElement->GetClearanceZ() <= inputTileElement->GetBaseZ())
|
||||||
{
|
{
|
||||||
proximity_score_increment(PROXIMITY_PATH_ZERO_OVER);
|
proximity_score_increment(PROXIMITY_PATH_ZERO_OVER);
|
||||||
}
|
}
|
||||||
if (tileElement->clearance_height == inputTileElement->base_height)
|
if (tileElement->GetClearanceZ() == inputTileElement->GetBaseZ())
|
||||||
{
|
{
|
||||||
proximity_score_increment(PROXIMITY_PATH_ZERO_TOUCH_ABOVE);
|
proximity_score_increment(PROXIMITY_PATH_ZERO_TOUCH_ABOVE);
|
||||||
}
|
}
|
||||||
if (tileElement->base_height == inputTileElement->clearance_height)
|
if (tileElement->GetBaseZ() == inputTileElement->GetClearanceZ())
|
||||||
{
|
{
|
||||||
proximity_score_increment(PROXIMITY_PATH_ZERO_TOUCH_UNDER);
|
proximity_score_increment(PROXIMITY_PATH_ZERO_TOUCH_UNDER);
|
||||||
}
|
}
|
||||||
|
@ -656,7 +652,7 @@ static void ride_ratings_score_close_proximity(TileElement* inputTileElement)
|
||||||
if (inputTileElement->AsTrack()->GetRideIndex() != tileElement->AsTrack()->GetRideIndex())
|
if (inputTileElement->AsTrack()->GetRideIndex() != tileElement->AsTrack()->GetRideIndex())
|
||||||
{
|
{
|
||||||
proximity_score_increment(PROXIMITY_FOREIGN_TRACK_ABOVE_OR_BELOW);
|
proximity_score_increment(PROXIMITY_FOREIGN_TRACK_ABOVE_OR_BELOW);
|
||||||
if (tileElement->clearance_height == inputTileElement->base_height)
|
if (tileElement->GetClearanceZ() == inputTileElement->GetBaseZ())
|
||||||
{
|
{
|
||||||
proximity_score_increment(PROXIMITY_FOREIGN_TRACK_TOUCH_ABOVE);
|
proximity_score_increment(PROXIMITY_FOREIGN_TRACK_TOUCH_ABOVE);
|
||||||
}
|
}
|
||||||
|
@ -705,7 +701,7 @@ static void ride_ratings_score_close_proximity(TileElement* inputTileElement)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (inputTileElement->clearance_height == tileElement->base_height)
|
if (inputTileElement->GetClearanceZ() == tileElement->GetBaseZ())
|
||||||
{
|
{
|
||||||
proximity_score_increment(PROXIMITY_OWN_TRACK_TOUCH_ABOVE);
|
proximity_score_increment(PROXIMITY_OWN_TRACK_TOUCH_ABOVE);
|
||||||
if (isStation)
|
if (isStation)
|
||||||
|
|
|
@ -596,14 +596,14 @@ const rct_preview_track* get_track_def_from_ride_index(ride_id_t rideIndex, int3
|
||||||
return get_track_def_from_ride(get_ride(rideIndex), trackType);
|
return get_track_def_from_ride(get_ride(rideIndex), trackType);
|
||||||
}
|
}
|
||||||
|
|
||||||
static TileElement* find_station_element(int32_t x, int32_t y, int32_t z, int32_t direction, ride_id_t rideIndex)
|
static TileElement* find_station_element(const CoordsXYZ& loc, int32_t direction, ride_id_t rideIndex)
|
||||||
{
|
{
|
||||||
TileElement* tileElement = map_get_first_element_at({ x, y });
|
TileElement* tileElement = map_get_first_element_at(loc);
|
||||||
if (tileElement == nullptr)
|
if (tileElement == nullptr)
|
||||||
return nullptr;
|
return nullptr;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
if (z != tileElement->base_height)
|
if (loc.z != tileElement->GetBaseZ())
|
||||||
continue;
|
continue;
|
||||||
if (tileElement->GetType() != TILE_ELEMENT_TYPE_TRACK)
|
if (tileElement->GetType() != TILE_ELEMENT_TYPE_TRACK)
|
||||||
continue;
|
continue;
|
||||||
|
@ -681,7 +681,7 @@ bool track_add_station_element(int32_t x, int32_t y, int32_t z, int32_t directio
|
||||||
x -= CoordsDirectionDelta[direction].x;
|
x -= CoordsDirectionDelta[direction].x;
|
||||||
y -= CoordsDirectionDelta[direction].y;
|
y -= CoordsDirectionDelta[direction].y;
|
||||||
|
|
||||||
stationElement = find_station_element(x, y, z, direction, rideIndex);
|
stationElement = find_station_element({ x, y, z * COORDS_Z_STEP }, direction, rideIndex);
|
||||||
if (stationElement != nullptr)
|
if (stationElement != nullptr)
|
||||||
{
|
{
|
||||||
if (stationElement->AsTrack()->GetTrackType() == TRACK_ELEM_END_STATION)
|
if (stationElement->AsTrack()->GetTrackType() == TRACK_ELEM_END_STATION)
|
||||||
|
@ -706,7 +706,7 @@ bool track_add_station_element(int32_t x, int32_t y, int32_t z, int32_t directio
|
||||||
x += CoordsDirectionDelta[direction].x;
|
x += CoordsDirectionDelta[direction].x;
|
||||||
y += CoordsDirectionDelta[direction].y;
|
y += CoordsDirectionDelta[direction].y;
|
||||||
|
|
||||||
stationElement = find_station_element(x, y, z, direction, rideIndex);
|
stationElement = find_station_element({ x, y, z * COORDS_Z_STEP }, direction, rideIndex);
|
||||||
if (stationElement != nullptr)
|
if (stationElement != nullptr)
|
||||||
{
|
{
|
||||||
if (stationElement->AsTrack()->GetTrackType() == TRACK_ELEM_END_STATION)
|
if (stationElement->AsTrack()->GetTrackType() == TRACK_ELEM_END_STATION)
|
||||||
|
@ -745,7 +745,7 @@ bool track_add_station_element(int32_t x, int32_t y, int32_t z, int32_t directio
|
||||||
{
|
{
|
||||||
finaliseStationDone = true;
|
finaliseStationDone = true;
|
||||||
|
|
||||||
stationElement = find_station_element(x, y, z, direction, rideIndex);
|
stationElement = find_station_element({ x, y, z * COORDS_Z_STEP }, direction, rideIndex);
|
||||||
if (stationElement != nullptr)
|
if (stationElement != nullptr)
|
||||||
{
|
{
|
||||||
int32_t targetTrackType;
|
int32_t targetTrackType;
|
||||||
|
@ -825,7 +825,7 @@ bool track_remove_station_element(int32_t x, int32_t y, int32_t z, int32_t direc
|
||||||
// Search backwards for more station
|
// Search backwards for more station
|
||||||
x = stationX0;
|
x = stationX0;
|
||||||
y = stationY0;
|
y = stationY0;
|
||||||
while ((stationElement = find_station_element(x, y, z, direction, rideIndex)) != nullptr)
|
while ((stationElement = find_station_element({ x, y, z * COORDS_Z_STEP }, direction, rideIndex)) != nullptr)
|
||||||
{
|
{
|
||||||
if (stationElement->AsTrack()->GetTrackType() == TRACK_ELEM_END_STATION)
|
if (stationElement->AsTrack()->GetTrackType() == TRACK_ELEM_END_STATION)
|
||||||
{
|
{
|
||||||
|
@ -851,7 +851,7 @@ bool track_remove_station_element(int32_t x, int32_t y, int32_t z, int32_t direc
|
||||||
x += CoordsDirectionDelta[direction].x;
|
x += CoordsDirectionDelta[direction].x;
|
||||||
y += CoordsDirectionDelta[direction].y;
|
y += CoordsDirectionDelta[direction].y;
|
||||||
|
|
||||||
stationElement = find_station_element(x, y, z, direction, rideIndex);
|
stationElement = find_station_element({ x, y, z * COORDS_Z_STEP }, direction, rideIndex);
|
||||||
if (stationElement != nullptr)
|
if (stationElement != nullptr)
|
||||||
{
|
{
|
||||||
if (stationElement->AsTrack()->GetTrackType() == TRACK_ELEM_END_STATION)
|
if (stationElement->AsTrack()->GetTrackType() == TRACK_ELEM_END_STATION)
|
||||||
|
@ -891,7 +891,7 @@ bool track_remove_station_element(int32_t x, int32_t y, int32_t z, int32_t direc
|
||||||
|
|
||||||
if (x != removeX || y != removeY)
|
if (x != removeX || y != removeY)
|
||||||
{
|
{
|
||||||
stationElement = find_station_element(x, y, z, direction, rideIndex);
|
stationElement = find_station_element({ x, y, z * COORDS_Z_STEP }, direction, rideIndex);
|
||||||
if (stationElement != nullptr)
|
if (stationElement != nullptr)
|
||||||
{
|
{
|
||||||
int32_t targetTrackType;
|
int32_t targetTrackType;
|
||||||
|
|
|
@ -227,20 +227,20 @@ void TileElementBase::SetOccupiedQuadrants(uint8_t quadrants)
|
||||||
|
|
||||||
int32_t TileElementBase::GetBaseZ() const
|
int32_t TileElementBase::GetBaseZ() const
|
||||||
{
|
{
|
||||||
return base_height * 8;
|
return base_height * COORDS_Z_STEP;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TileElementBase::SetBaseZ(int32_t newZ)
|
void TileElementBase::SetBaseZ(int32_t newZ)
|
||||||
{
|
{
|
||||||
base_height = (newZ / 8);
|
base_height = (newZ / COORDS_Z_STEP);
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t TileElementBase::GetClearanceZ() const
|
int32_t TileElementBase::GetClearanceZ() const
|
||||||
{
|
{
|
||||||
return clearance_height * 8;
|
return clearance_height * COORDS_Z_STEP;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TileElementBase::SetClearanceZ(int32_t newZ)
|
void TileElementBase::SetClearanceZ(int32_t newZ)
|
||||||
{
|
{
|
||||||
clearance_height = (newZ / 8);
|
clearance_height = (newZ / COORDS_Z_STEP);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue