mirror of https://github.com/OpenRCT2/OpenRCT2.git
Make Map::map_get_track_element_at_of_type_seq() use CoordsXYZ
This commit is contained in:
parent
77503fee97
commit
21435a4d01
|
@ -243,7 +243,7 @@ static bool sub_6DF01A_loop(rct_vehicle* vehicle)
|
||||||
_vehicleVAngleEndF64E36 = TrackDefinitions[trackType].vangle_end;
|
_vehicleVAngleEndF64E36 = TrackDefinitions[trackType].vangle_end;
|
||||||
_vehicleBankEndF64E37 = TrackDefinitions[trackType].bank_end;
|
_vehicleBankEndF64E37 = TrackDefinitions[trackType].bank_end;
|
||||||
TileElement* trackElement = map_get_track_element_at_of_type_seq(
|
TileElement* trackElement = map_get_track_element_at_of_type_seq(
|
||||||
vehicle->track_x, vehicle->track_y, vehicle->track_z / 8, trackType, 0);
|
{ vehicle->track_x, vehicle->track_y, vehicle->track_z }, trackType, 0);
|
||||||
|
|
||||||
CoordsXYE input;
|
CoordsXYE input;
|
||||||
CoordsXYE output;
|
CoordsXYE output;
|
||||||
|
@ -321,7 +321,7 @@ static bool sub_6DF21B_loop(rct_vehicle* vehicle)
|
||||||
_vehicleBankEndF64E37 = TrackDefinitions[trackType].bank_start;
|
_vehicleBankEndF64E37 = TrackDefinitions[trackType].bank_start;
|
||||||
|
|
||||||
TileElement* trackElement = map_get_track_element_at_of_type_seq(
|
TileElement* trackElement = map_get_track_element_at_of_type_seq(
|
||||||
vehicle->track_x, vehicle->track_y, vehicle->track_z / 8, trackType, 0);
|
{ vehicle->track_x, vehicle->track_y, vehicle->track_z }, trackType, 0);
|
||||||
|
|
||||||
CoordsXYE input;
|
CoordsXYE input;
|
||||||
|
|
||||||
|
|
|
@ -4729,7 +4729,7 @@ static void ride_create_vehicles_find_first_block(Ride* ride, CoordsXYE* outXYEl
|
||||||
if (trackElement->HasChain())
|
if (trackElement->HasChain())
|
||||||
{
|
{
|
||||||
TileElement* tileElement = map_get_track_element_at_of_type_seq(
|
TileElement* tileElement = map_get_track_element_at_of_type_seq(
|
||||||
trackBeginEnd.begin_x, trackBeginEnd.begin_y, trackBeginEnd.begin_z / 8, trackType, 0);
|
{ trackBeginEnd.begin_x, trackBeginEnd.begin_y, trackBeginEnd.begin_z }, trackType, 0);
|
||||||
|
|
||||||
if (tileElement != nullptr)
|
if (tileElement != nullptr)
|
||||||
{
|
{
|
||||||
|
|
|
@ -7846,7 +7846,7 @@ static void sub_6DBF3E(rct_vehicle* vehicle)
|
||||||
if (map_is_location_valid({ vehicle->track_x, vehicle->track_y }))
|
if (map_is_location_valid({ vehicle->track_x, vehicle->track_y }))
|
||||||
{
|
{
|
||||||
tileElement = map_get_track_element_at_of_type_seq(
|
tileElement = map_get_track_element_at_of_type_seq(
|
||||||
vehicle->track_x, vehicle->track_y, vehicle->track_z >> 3, trackType, 0);
|
{ vehicle->track_x, vehicle->track_y, vehicle->track_z }, trackType, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tileElement == nullptr)
|
if (tileElement == nullptr)
|
||||||
|
@ -7925,7 +7925,7 @@ static bool vehicle_update_track_motion_forwards_get_new_track(
|
||||||
_vehicleVAngleEndF64E36 = TrackDefinitions[trackType].vangle_end;
|
_vehicleVAngleEndF64E36 = TrackDefinitions[trackType].vangle_end;
|
||||||
_vehicleBankEndF64E37 = TrackDefinitions[trackType].bank_end;
|
_vehicleBankEndF64E37 = TrackDefinitions[trackType].bank_end;
|
||||||
TileElement* tileElement = map_get_track_element_at_of_type_seq(
|
TileElement* tileElement = map_get_track_element_at_of_type_seq(
|
||||||
vehicle->track_x, vehicle->track_y, vehicle->track_z >> 3, trackType, 0);
|
{ vehicle->track_x, vehicle->track_y, vehicle->track_z }, trackType, 0);
|
||||||
|
|
||||||
if (tileElement == nullptr)
|
if (tileElement == nullptr)
|
||||||
{
|
{
|
||||||
|
@ -8360,7 +8360,7 @@ static bool vehicle_update_track_motion_backwards_get_new_track(
|
||||||
_vehicleVAngleEndF64E36 = TrackDefinitions[trackType].vangle_start;
|
_vehicleVAngleEndF64E36 = TrackDefinitions[trackType].vangle_start;
|
||||||
_vehicleBankEndF64E37 = TrackDefinitions[trackType].bank_start;
|
_vehicleBankEndF64E37 = TrackDefinitions[trackType].bank_start;
|
||||||
TileElement* tileElement = map_get_track_element_at_of_type_seq(
|
TileElement* tileElement = map_get_track_element_at_of_type_seq(
|
||||||
vehicle->track_x, vehicle->track_y, vehicle->track_z >> 3, trackType, 0);
|
{ vehicle->track_x, vehicle->track_y, vehicle->track_z }, trackType, 0);
|
||||||
|
|
||||||
if (tileElement == nullptr)
|
if (tileElement == nullptr)
|
||||||
return false;
|
return false;
|
||||||
|
@ -8820,7 +8820,7 @@ loc_6DC476:
|
||||||
_vehicleVAngleEndF64E36 = TrackDefinitions[trackType].vangle_end;
|
_vehicleVAngleEndF64E36 = TrackDefinitions[trackType].vangle_end;
|
||||||
_vehicleBankEndF64E37 = TrackDefinitions[trackType].bank_end;
|
_vehicleBankEndF64E37 = TrackDefinitions[trackType].bank_end;
|
||||||
tileElement = map_get_track_element_at_of_type_seq(
|
tileElement = map_get_track_element_at_of_type_seq(
|
||||||
vehicle->track_x, vehicle->track_y, vehicle->track_z >> 3, trackType, 0);
|
{ vehicle->track_x, vehicle->track_y, vehicle->track_z }, trackType, 0);
|
||||||
}
|
}
|
||||||
int16_t x, y, z;
|
int16_t x, y, z;
|
||||||
int32_t direction;
|
int32_t direction;
|
||||||
|
@ -9075,7 +9075,7 @@ loc_6DCA9A:
|
||||||
_vehicleBankEndF64E37 = TrackDefinitions[trackType].bank_end;
|
_vehicleBankEndF64E37 = TrackDefinitions[trackType].bank_end;
|
||||||
|
|
||||||
tileElement = map_get_track_element_at_of_type_seq(
|
tileElement = map_get_track_element_at_of_type_seq(
|
||||||
vehicle->track_x, vehicle->track_y, vehicle->track_z >> 3, trackType, 0);
|
{ vehicle->track_x, vehicle->track_y, vehicle->track_z }, trackType, 0);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
track_begin_end trackBeginEnd;
|
track_begin_end trackBeginEnd;
|
||||||
|
@ -9865,7 +9865,7 @@ void vehicle_update_crossings(const rct_vehicle* vehicle)
|
||||||
xyElement.y = frontVehicle->track_y;
|
xyElement.y = frontVehicle->track_y;
|
||||||
z = frontVehicle->track_z;
|
z = frontVehicle->track_z;
|
||||||
xyElement.element = map_get_track_element_at_of_type_seq(
|
xyElement.element = map_get_track_element_at_of_type_seq(
|
||||||
frontVehicle->track_x, frontVehicle->track_y, frontVehicle->track_z >> 3, frontVehicle->track_type >> 2, 0);
|
{ frontVehicle->track_x, frontVehicle->track_y, frontVehicle->track_z }, frontVehicle->track_type >> 2, 0);
|
||||||
|
|
||||||
if (xyElement.element && vehicle->status != VEHICLE_STATUS_ARRIVING)
|
if (xyElement.element && vehicle->status != VEHICLE_STATUS_ARRIVING)
|
||||||
{
|
{
|
||||||
|
@ -9939,7 +9939,7 @@ void vehicle_update_crossings(const rct_vehicle* vehicle)
|
||||||
xyElement.y = backVehicle->track_y;
|
xyElement.y = backVehicle->track_y;
|
||||||
z = backVehicle->track_z;
|
z = backVehicle->track_z;
|
||||||
xyElement.element = map_get_track_element_at_of_type_seq(
|
xyElement.element = map_get_track_element_at_of_type_seq(
|
||||||
backVehicle->track_x, backVehicle->track_y, backVehicle->track_z >> 3, backVehicle->track_type >> 2, 0);
|
{ backVehicle->track_x, backVehicle->track_y, backVehicle->track_z }, backVehicle->track_type >> 2, 0);
|
||||||
|
|
||||||
if (xyElement.element)
|
if (xyElement.element)
|
||||||
{
|
{
|
||||||
|
|
|
@ -2182,16 +2182,17 @@ TileElement* map_get_track_element_at_of_type(const CoordsXYZ& trackPos, int32_t
|
||||||
* @param y y units, not tiles.
|
* @param y y units, not tiles.
|
||||||
* @param z Base height.
|
* @param z Base height.
|
||||||
*/
|
*/
|
||||||
TileElement* map_get_track_element_at_of_type_seq(int32_t x, int32_t y, int32_t z, int32_t trackType, int32_t sequence)
|
TileElement* map_get_track_element_at_of_type_seq(const CoordsXYZ& trackPos, int32_t trackType, int32_t sequence)
|
||||||
{
|
{
|
||||||
TileElement* tileElement = map_get_first_element_at({ x, y });
|
TileElement* tileElement = map_get_first_element_at(trackPos);
|
||||||
|
auto trackTilePos = TileCoordsXYZ{ trackPos };
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
if (tileElement == nullptr)
|
if (tileElement == nullptr)
|
||||||
break;
|
break;
|
||||||
if (tileElement->GetType() != TILE_ELEMENT_TYPE_TRACK)
|
if (tileElement->GetType() != TILE_ELEMENT_TYPE_TRACK)
|
||||||
continue;
|
continue;
|
||||||
if (tileElement->base_height != z)
|
if (tileElement->base_height != trackTilePos.z)
|
||||||
continue;
|
continue;
|
||||||
if (tileElement->AsTrack()->GetTrackType() != trackType)
|
if (tileElement->AsTrack()->GetTrackType() != trackType)
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -231,7 +231,7 @@ ScreenCoordsXY translate_3d_to_2d_with_z(int32_t rotation, const CoordsXYZ& pos)
|
||||||
|
|
||||||
TrackElement* map_get_track_element_at(const CoordsXYZ& trackPos);
|
TrackElement* map_get_track_element_at(const CoordsXYZ& trackPos);
|
||||||
TileElement* map_get_track_element_at_of_type(const CoordsXYZ& trackPos, int32_t trackType);
|
TileElement* map_get_track_element_at_of_type(const CoordsXYZ& trackPos, int32_t trackType);
|
||||||
TileElement* map_get_track_element_at_of_type_seq(int32_t x, int32_t y, int32_t z, int32_t trackType, int32_t sequence);
|
TileElement* map_get_track_element_at_of_type_seq(const CoordsXYZ& trackPos, int32_t trackType, int32_t sequence);
|
||||||
TrackElement* map_get_track_element_at_of_type(CoordsXYZD location, int32_t trackType);
|
TrackElement* map_get_track_element_at_of_type(CoordsXYZD location, int32_t trackType);
|
||||||
TrackElement* map_get_track_element_at_of_type_seq(CoordsXYZD location, int32_t trackType, int32_t sequence);
|
TrackElement* map_get_track_element_at_of_type_seq(CoordsXYZD location, int32_t trackType, int32_t sequence);
|
||||||
TileElement* map_get_track_element_at_of_type_from_ride(
|
TileElement* map_get_track_element_at_of_type_from_ride(
|
||||||
|
|
Loading…
Reference in New Issue