mirror of https://github.com/OpenRCT2/OpenRCT2.git
Allow TileCoordsXYZD to generate CoordsXYZD equivalent
This commit is contained in:
parent
c71c4284d0
commit
aea755bd70
|
@ -2970,11 +2970,9 @@ private:
|
|||
ride->stations[0].Entrance = entranceCoords;
|
||||
ride->stations[0].Exit = exitCoords;
|
||||
|
||||
auto entranceElement = map_get_ride_exit_element_at(
|
||||
{ entranceCoords.x << 5, entranceCoords.y << 5, entranceCoords.z << 3 }, false);
|
||||
auto entranceElement = map_get_ride_exit_element_at(entranceCoords.ToCoordsXYZD(), false);
|
||||
entranceElement->SetEntranceType(ENTRANCE_TYPE_RIDE_ENTRANCE);
|
||||
auto exitElement = map_get_ride_entrance_element_at(
|
||||
{ exitCoords.x << 5, exitCoords.y << 5, exitCoords.z << 3 }, false);
|
||||
auto exitElement = map_get_ride_entrance_element_at(exitCoords.ToCoordsXYZD(), false);
|
||||
exitElement->SetEntranceType(ENTRANCE_TYPE_RIDE_EXIT);
|
||||
|
||||
// Trigger footpath update
|
||||
|
|
|
@ -7677,8 +7677,7 @@ void determine_ride_entrance_and_exit_locations()
|
|||
// Skip if the station has no entrance
|
||||
if (!entranceLoc.isNull())
|
||||
{
|
||||
const EntranceElement* entranceElement = map_get_ride_entrance_element_at(
|
||||
{ entranceLoc.x << 5, entranceLoc.y << 5, entranceLoc.z << 3 }, false);
|
||||
const EntranceElement* entranceElement = map_get_ride_entrance_element_at(entranceLoc.ToCoordsXYZD(), false);
|
||||
|
||||
if (entranceElement == nullptr || entranceElement->GetRideIndex() != ride.id
|
||||
|| entranceElement->GetStationIndex() != stationIndex)
|
||||
|
@ -7693,8 +7692,7 @@ void determine_ride_entrance_and_exit_locations()
|
|||
|
||||
if (!exitLoc.isNull())
|
||||
{
|
||||
const EntranceElement* entranceElement = map_get_ride_exit_element_at(
|
||||
{ exitLoc.x << 5, exitLoc.y << 5, exitLoc.z << 3 }, false);
|
||||
const EntranceElement* entranceElement = map_get_ride_exit_element_at(exitLoc.ToCoordsXYZD(), false);
|
||||
|
||||
if (entranceElement == nullptr || entranceElement->GetRideIndex() != ride.id
|
||||
|| entranceElement->GetStationIndex() != stationIndex)
|
||||
|
|
|
@ -384,6 +384,11 @@ struct TileCoordsXYZD
|
|||
{
|
||||
return x == COORDS_NULL;
|
||||
};
|
||||
|
||||
CoordsXYZD ToCoordsXYZD() const
|
||||
{
|
||||
return { x * 32, y * 32, z * 8, direction };
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
@ -94,7 +94,8 @@ TEST_F(TileElementWantsFootpathConnection, Stall)
|
|||
TEST_F(TileElementWantsFootpathConnection, RideEntrance)
|
||||
{
|
||||
// Ride entrances and exits want a connection in one direction
|
||||
const EntranceElement* const entranceElement = map_get_ride_entrance_element_at({ 18 << 5, 8 << 5, 14 << 3 }, false);
|
||||
const EntranceElement* const entranceElement = map_get_ride_entrance_element_at(
|
||||
TileCoordsXYZ{ 18, 8, 14 }.ToCoordsXYZ(), false);
|
||||
ASSERT_NE(entranceElement, nullptr);
|
||||
EXPECT_TRUE(tile_element_wants_path_connection_towards({ 18, 8, 14, 0 }, nullptr));
|
||||
EXPECT_FALSE(tile_element_wants_path_connection_towards({ 18, 8, 14, 1 }, nullptr));
|
||||
|
@ -106,7 +107,7 @@ TEST_F(TileElementWantsFootpathConnection, RideEntrance)
|
|||
TEST_F(TileElementWantsFootpathConnection, RideExit)
|
||||
{
|
||||
// The exit has been rotated; it wants a path connection in direction 1, but not 0 like the entrance
|
||||
const EntranceElement* const exitElement = map_get_ride_exit_element_at({ 18 << 5, 10 << 5, 14 << 3 }, false);
|
||||
const EntranceElement* const exitElement = map_get_ride_exit_element_at(TileCoordsXYZ{ 18, 10, 14 }.ToCoordsXYZ(), false);
|
||||
ASSERT_NE(exitElement, nullptr);
|
||||
EXPECT_FALSE(tile_element_wants_path_connection_towards({ 18, 10, 14, 0 }, nullptr));
|
||||
EXPECT_TRUE(tile_element_wants_path_connection_towards({ 18, 10, 14, 1 }, nullptr));
|
||||
|
|
Loading…
Reference in New Issue