mirror of https://github.com/OpenRCT2/OpenRCT2.git
Move getting track sequence to struct methods
This commit is contained in:
parent
3b80d049ef
commit
ae4c464ce7
|
@ -2425,7 +2425,7 @@ static void sub_6CBCE2(
|
||||||
_tempTrackTileElement.base_height = baseZ;
|
_tempTrackTileElement.base_height = baseZ;
|
||||||
_tempTrackTileElement.clearance_height = clearanceZ;
|
_tempTrackTileElement.clearance_height = clearanceZ;
|
||||||
_tempTrackTileElement.AsTrack()->SetTrackType(trackType);
|
_tempTrackTileElement.AsTrack()->SetTrackType(trackType);
|
||||||
tile_element_set_track_sequence(&_tempTrackTileElement, trackBlock->index);
|
_tempTrackTileElement.AsTrack()->SetSequenceIndex(trackBlock->index);
|
||||||
track_element_clear_cable_lift(&_tempTrackTileElement);
|
track_element_clear_cable_lift(&_tempTrackTileElement);
|
||||||
track_element_set_inverted(&_tempTrackTileElement, (edx & 0x20000) ? true : false);
|
track_element_set_inverted(&_tempTrackTileElement, (edx & 0x20000) ? true : false);
|
||||||
track_element_set_colour_scheme(&_tempTrackTileElement, RIDE_COLOUR_SCHEME_MAIN);
|
track_element_set_colour_scheme(&_tempTrackTileElement, RIDE_COLOUR_SCHEME_MAIN);
|
||||||
|
|
|
@ -1853,7 +1853,7 @@ static void window_tile_inspector_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
||||||
gfx_draw_string_left(dpi, STR_TILE_INSPECTOR_TRACK_RIDE_NAME, gCommonFormatArgs, COLOUR_DARK_GREEN, x, y + 22);
|
gfx_draw_string_left(dpi, STR_TILE_INSPECTOR_TRACK_RIDE_NAME, gCommonFormatArgs, COLOUR_DARK_GREEN, x, y + 22);
|
||||||
// Track
|
// Track
|
||||||
int16_t trackType = tileElement->AsTrack()->GetTrackType();
|
int16_t trackType = tileElement->AsTrack()->GetTrackType();
|
||||||
int16_t sequenceNumber = tile_element_get_track_sequence(tileElement);
|
int16_t sequenceNumber = tileElement->AsTrack()->GetSequenceIndex();
|
||||||
gfx_draw_string_left(dpi, STR_TILE_INSPECTOR_TRACK_PIECE_ID, &trackType, COLOUR_DARK_GREEN, x, y + 33);
|
gfx_draw_string_left(dpi, STR_TILE_INSPECTOR_TRACK_PIECE_ID, &trackType, COLOUR_DARK_GREEN, x, y + 33);
|
||||||
gfx_draw_string_left(dpi, STR_TILE_INSPECTOR_TRACK_SEQUENCE, &sequenceNumber, COLOUR_DARK_GREEN, x, y + 44);
|
gfx_draw_string_left(dpi, STR_TILE_INSPECTOR_TRACK_SEQUENCE, &sequenceNumber, COLOUR_DARK_GREEN, x, y + 44);
|
||||||
|
|
||||||
|
|
|
@ -317,7 +317,7 @@ private:
|
||||||
{
|
{
|
||||||
money32 removePrice = game_do_command(
|
money32 removePrice = game_do_command(
|
||||||
x, GAME_COMMAND_FLAG_5 | GAME_COMMAND_FLAG_APPLY | (rotation << 8), y,
|
x, GAME_COMMAND_FLAG_5 | GAME_COMMAND_FLAG_APPLY | (rotation << 8), y,
|
||||||
type | (tile_element_get_track_sequence(it.element) << 8), GAME_COMMAND_REMOVE_TRACK, z, 0);
|
type | (it.element->AsTrack()->GetSequenceIndex() << 8), GAME_COMMAND_REMOVE_TRACK, z, 0);
|
||||||
|
|
||||||
if (removePrice == MONEY32_UNDEFINED)
|
if (removePrice == MONEY32_UNDEFINED)
|
||||||
tile_element_remove(it.element);
|
tile_element_remove(it.element);
|
||||||
|
|
|
@ -558,7 +558,7 @@ bool track_block_get_next_from_zero(
|
||||||
if (track_element_get_ride_index(tileElement) != rideIndex)
|
if (track_element_get_ride_index(tileElement) != rideIndex)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (tile_element_get_track_sequence(tileElement) != 0)
|
if (tileElement->AsTrack()->GetSequenceIndex() != 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (tileElement->IsGhost() != isGhost)
|
if (tileElement->IsGhost() != isGhost)
|
||||||
|
@ -607,7 +607,7 @@ bool track_block_get_next(CoordsXYE* input, CoordsXYE* output, int32_t* z, int32
|
||||||
Ride* ride = get_ride(rideIndex);
|
Ride* ride = get_ride(rideIndex);
|
||||||
|
|
||||||
const rct_preview_track* trackBlock = get_track_def_from_ride(ride, input->element->AsTrack()->GetTrackType());
|
const rct_preview_track* trackBlock = get_track_def_from_ride(ride, input->element->AsTrack()->GetTrackType());
|
||||||
uint8_t sequence = tile_element_get_track_sequence(input->element);
|
uint8_t sequence = input->element->AsTrack()->GetSequenceIndex();
|
||||||
trackBlock += sequence;
|
trackBlock += sequence;
|
||||||
|
|
||||||
const rct_track_coordinates* trackCoordinate = get_track_coord_from_ride(ride, input->element->AsTrack()->GetTrackType());
|
const rct_track_coordinates* trackCoordinate = get_track_coord_from_ride(ride, input->element->AsTrack()->GetTrackType());
|
||||||
|
@ -697,7 +697,7 @@ bool track_block_get_previous_from_zero(
|
||||||
const rct_preview_track* nextTrackBlock = get_track_def_from_ride(ride, tileElement->AsTrack()->GetTrackType());
|
const rct_preview_track* nextTrackBlock = get_track_def_from_ride(ride, tileElement->AsTrack()->GetTrackType());
|
||||||
const rct_track_coordinates* nextTrackCoordinate = get_track_coord_from_ride(ride, tileElement->AsTrack()->GetTrackType());
|
const rct_track_coordinates* nextTrackCoordinate = get_track_coord_from_ride(ride, tileElement->AsTrack()->GetTrackType());
|
||||||
|
|
||||||
nextTrackBlock += tile_element_get_track_sequence(tileElement);
|
nextTrackBlock += tileElement->AsTrack()->GetSequenceIndex();
|
||||||
if ((nextTrackBlock + 1)->index != 255)
|
if ((nextTrackBlock + 1)->index != 255)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -768,7 +768,7 @@ bool track_block_get_previous(int32_t x, int32_t y, rct_tile_element* tileElemen
|
||||||
Ride* ride = get_ride(rideIndex);
|
Ride* ride = get_ride(rideIndex);
|
||||||
|
|
||||||
const rct_preview_track* trackBlock = get_track_def_from_ride(ride, tileElement->AsTrack()->GetTrackType());
|
const rct_preview_track* trackBlock = get_track_def_from_ride(ride, tileElement->AsTrack()->GetTrackType());
|
||||||
uint8_t sequence = tile_element_get_track_sequence(tileElement);
|
uint8_t sequence = tileElement->AsTrack()->GetSequenceIndex();
|
||||||
trackBlock += sequence;
|
trackBlock += sequence;
|
||||||
|
|
||||||
const rct_track_coordinates* trackCoordinate = get_track_coord_from_ride(ride, tileElement->AsTrack()->GetTrackType());
|
const rct_track_coordinates* trackCoordinate = get_track_coord_from_ride(ride, tileElement->AsTrack()->GetTrackType());
|
||||||
|
@ -1290,7 +1290,7 @@ int32_t sub_6C683D(
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
successTileElement = tileElement;
|
successTileElement = tileElement;
|
||||||
if (tile_element_get_track_sequence(tileElement) == 0)
|
if (tileElement->AsTrack()->GetSequenceIndex() == 0)
|
||||||
break;
|
break;
|
||||||
} while (!(tileElement++)->IsLastForTile());
|
} while (!(tileElement++)->IsLastForTile());
|
||||||
|
|
||||||
|
@ -1301,7 +1301,7 @@ int32_t sub_6C683D(
|
||||||
// Possibly z should be & 0xF8
|
// Possibly z should be & 0xF8
|
||||||
const rct_preview_track* trackBlock = get_track_def_from_ride_index(track_element_get_ride_index(tileElement), type);
|
const rct_preview_track* trackBlock = get_track_def_from_ride_index(track_element_get_ride_index(tileElement), type);
|
||||||
|
|
||||||
int32_t sequence = tile_element_get_track_sequence(tileElement);
|
int32_t sequence = tileElement->AsTrack()->GetSequenceIndex();
|
||||||
uint8_t mapDirection = tileElement->GetDirection();
|
uint8_t mapDirection = tileElement->GetDirection();
|
||||||
|
|
||||||
switch (mapDirection)
|
switch (mapDirection)
|
||||||
|
@ -1366,7 +1366,7 @@ int32_t sub_6C683D(
|
||||||
if ((tileElement->GetDirection()) != direction)
|
if ((tileElement->GetDirection()) != direction)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (tile_element_get_track_sequence(tileElement) != trackBlock[i].index)
|
if (tileElement->AsTrack()->GetSequenceIndex() != trackBlock[i].index)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (type == tileElement->AsTrack()->GetTrackType())
|
if (type == tileElement->AsTrack()->GetTrackType())
|
||||||
|
@ -1472,7 +1472,7 @@ void ride_remove_provisional_track_piece()
|
||||||
int32_t flags = GAME_COMMAND_FLAG_APPLY | GAME_COMMAND_FLAG_ALLOW_DURING_PAUSED | GAME_COMMAND_FLAG_5
|
int32_t flags = GAME_COMMAND_FLAG_APPLY | GAME_COMMAND_FLAG_ALLOW_DURING_PAUSED | GAME_COMMAND_FLAG_5
|
||||||
| GAME_COMMAND_FLAG_GHOST;
|
| GAME_COMMAND_FLAG_GHOST;
|
||||||
uint8_t trackType = next_track.element->AsTrack()->GetTrackType();
|
uint8_t trackType = next_track.element->AsTrack()->GetTrackType();
|
||||||
int32_t trackSequence = tile_element_get_track_sequence(next_track.element);
|
int32_t trackSequence = next_track.element->AsTrack()->GetSequenceIndex();
|
||||||
game_do_command(
|
game_do_command(
|
||||||
next_track.x, flags | ((direction & 3) << 8), next_track.y, trackType | (trackSequence << 8),
|
next_track.x, flags | ((direction & 3) << 8), next_track.y, trackType | (trackSequence << 8),
|
||||||
GAME_COMMAND_REMOVE_TRACK, z, 0);
|
GAME_COMMAND_REMOVE_TRACK, z, 0);
|
||||||
|
@ -5140,7 +5140,7 @@ static void ride_create_vehicles_find_first_block(Ride* ride, CoordsXYE* outXYEl
|
||||||
continue;
|
continue;
|
||||||
if (tileElement->AsTrack()->GetTrackType() != trackType)
|
if (tileElement->AsTrack()->GetTrackType() != trackType)
|
||||||
continue;
|
continue;
|
||||||
if (tile_element_get_track_sequence(tileElement) != 0)
|
if (tileElement->AsTrack()->GetSequenceIndex() != 0)
|
||||||
continue;
|
continue;
|
||||||
if (tileElement->base_height != trackBeginEnd.begin_z / 8)
|
if (tileElement->base_height != trackBeginEnd.begin_z / 8)
|
||||||
continue;
|
continue;
|
||||||
|
@ -7157,7 +7157,7 @@ void ride_get_entrance_or_exit_position_from_screen_position(
|
||||||
|
|
||||||
int32_t eax = (direction + 2 - tileElement->GetDirection()) & TILE_ELEMENT_DIRECTION_MASK;
|
int32_t eax = (direction + 2 - tileElement->GetDirection()) & TILE_ELEMENT_DIRECTION_MASK;
|
||||||
if (FlatRideTrackSequenceProperties[tileElement->AsTrack()->GetTrackType()]
|
if (FlatRideTrackSequenceProperties[tileElement->AsTrack()->GetTrackType()]
|
||||||
[tile_element_get_track_sequence(tileElement)]
|
[tileElement->AsTrack()->GetSequenceIndex()]
|
||||||
& (1 << eax))
|
& (1 << eax))
|
||||||
{
|
{
|
||||||
gRideEntranceExitPlaceDirection = direction ^ 2;
|
gRideEntranceExitPlaceDirection = direction ^ 2;
|
||||||
|
@ -8010,7 +8010,7 @@ void sub_6CB945(int32_t rideIndex)
|
||||||
continue;
|
continue;
|
||||||
if (track_element_get_ride_index(tileElement) != rideIndex)
|
if (track_element_get_ride_index(tileElement) != rideIndex)
|
||||||
continue;
|
continue;
|
||||||
if (tile_element_get_track_sequence(tileElement) != 0)
|
if (tileElement->AsTrack()->GetSequenceIndex() != 0)
|
||||||
continue;
|
continue;
|
||||||
if (!(TrackSequenceProperties[tileElement->AsTrack()->GetTrackType()][0] & TRACK_SEQUENCE_FLAG_ORIGIN))
|
if (!(TrackSequenceProperties[tileElement->AsTrack()->GetTrackType()][0] & TRACK_SEQUENCE_FLAG_ORIGIN))
|
||||||
continue;
|
continue;
|
||||||
|
@ -8140,7 +8140,7 @@ void sub_6CB945(int32_t rideIndex)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
uint8_t trackType = trackElement->AsTrack()->GetTrackType();
|
uint8_t trackType = trackElement->AsTrack()->GetTrackType();
|
||||||
uint8_t trackSequence = tile_element_get_track_sequence(trackElement);
|
uint8_t trackSequence = trackElement->AsTrack()->GetSequenceIndex();
|
||||||
|
|
||||||
uint8_t direction = (tileElement->GetDirection() - trackElement->GetDirectionWithOffset(2)) & 3;
|
uint8_t direction = (tileElement->GetDirection() - trackElement->GetDirectionWithOffset(2)) & 3;
|
||||||
|
|
||||||
|
|
|
@ -210,7 +210,7 @@ static void ride_ratings_update_state_2()
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (trackType == 255
|
if (trackType == 255
|
||||||
|| (tile_element_get_track_sequence(tileElement) == 0 && trackType == tileElement->AsTrack()->GetTrackType()))
|
|| (tileElement->AsTrack()->GetSequenceIndex() == 0 && trackType == tileElement->AsTrack()->GetTrackType()))
|
||||||
{
|
{
|
||||||
if (trackType == TRACK_ELEM_END_STATION)
|
if (trackType == TRACK_ELEM_END_STATION)
|
||||||
{
|
{
|
||||||
|
@ -601,7 +601,7 @@ static void ride_ratings_score_close_proximity(rct_tile_element* inputTileElemen
|
||||||
int32_t trackType = tileElement->AsTrack()->GetTrackType();
|
int32_t trackType = tileElement->AsTrack()->GetTrackType();
|
||||||
if (trackType == TRACK_ELEM_LEFT_VERTICAL_LOOP || trackType == TRACK_ELEM_RIGHT_VERTICAL_LOOP)
|
if (trackType == TRACK_ELEM_LEFT_VERTICAL_LOOP || trackType == TRACK_ELEM_RIGHT_VERTICAL_LOOP)
|
||||||
{
|
{
|
||||||
int32_t sequence = tile_element_get_track_sequence(tileElement);
|
int32_t sequence = tileElement->AsTrack()->GetSequenceIndex();
|
||||||
if (sequence == 3 || sequence == 6)
|
if (sequence == 3 || sequence == 6)
|
||||||
{
|
{
|
||||||
if (tileElement->base_height - inputTileElement->clearance_height <= 10)
|
if (tileElement->base_height - inputTileElement->clearance_height <= 10)
|
||||||
|
|
|
@ -1457,7 +1457,7 @@ static money32 track_place(
|
||||||
}
|
}
|
||||||
tileElement->type = map_type;
|
tileElement->type = map_type;
|
||||||
|
|
||||||
tile_element_set_track_sequence(tileElement, trackBlock->index);
|
tileElement->AsTrack()->SetSequenceIndex(trackBlock->index);
|
||||||
track_element_set_ride_index(tileElement, rideIndex);
|
track_element_set_ride_index(tileElement, rideIndex);
|
||||||
tileElement->AsTrack()->SetTrackType(type);
|
tileElement->AsTrack()->SetTrackType(type);
|
||||||
|
|
||||||
|
@ -1609,7 +1609,7 @@ static money32 track_remove(
|
||||||
if ((tileElement->GetDirection()) != rotation)
|
if ((tileElement->GetDirection()) != rotation)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (tile_element_get_track_sequence(tileElement) != sequence)
|
if (tileElement->AsTrack()->GetSequenceIndex() != sequence)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (tileElement->IsGhost() != isGhost)
|
if (tileElement->IsGhost() != isGhost)
|
||||||
|
@ -1648,7 +1648,7 @@ static money32 track_remove(
|
||||||
|
|
||||||
Ride* ride = get_ride(rideIndex);
|
Ride* ride = get_ride(rideIndex);
|
||||||
const rct_preview_track* trackBlock = get_track_def_from_ride(ride, type);
|
const rct_preview_track* trackBlock = get_track_def_from_ride(ride, type);
|
||||||
trackBlock += tile_element_get_track_sequence(tileElement);
|
trackBlock += tileElement->AsTrack()->GetSequenceIndex();
|
||||||
|
|
||||||
uint8_t originDirection = tileElement->GetDirection();
|
uint8_t originDirection = tileElement->GetDirection();
|
||||||
switch (originDirection)
|
switch (originDirection)
|
||||||
|
@ -1722,7 +1722,7 @@ static money32 track_remove(
|
||||||
if (tileElement->GetDirection() != rotation)
|
if (tileElement->GetDirection() != rotation)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (tile_element_get_track_sequence(tileElement) != trackBlock->index)
|
if (tileElement->AsTrack()->GetSequenceIndex() != trackBlock->index)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (tileElement->AsTrack()->GetTrackType() != type)
|
if (tileElement->AsTrack()->GetTrackType() != type)
|
||||||
|
@ -1751,7 +1751,7 @@ static money32 track_remove(
|
||||||
entranceDirections = TrackSequenceProperties[type][0];
|
entranceDirections = TrackSequenceProperties[type][0];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (entranceDirections & TRACK_SEQUENCE_FLAG_ORIGIN && (tile_element_get_track_sequence(tileElement) == 0))
|
if (entranceDirections & TRACK_SEQUENCE_FLAG_ORIGIN && (tileElement->AsTrack()->GetSequenceIndex() == 0))
|
||||||
{
|
{
|
||||||
if (!track_remove_station_element(x, y, z / 8, rotation, rideIndex, 0))
|
if (!track_remove_station_element(x, y, z / 8, rotation, rideIndex, 0))
|
||||||
{
|
{
|
||||||
|
@ -1776,7 +1776,7 @@ static money32 track_remove(
|
||||||
if (!(flags & GAME_COMMAND_FLAG_APPLY))
|
if (!(flags & GAME_COMMAND_FLAG_APPLY))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (entranceDirections & (1 << 4) && (tile_element_get_track_sequence(tileElement) == 0))
|
if (entranceDirections & (1 << 4) && (tileElement->AsTrack()->GetSequenceIndex() == 0))
|
||||||
{
|
{
|
||||||
if (!track_remove_station_element(x, y, z / 8, rotation, rideIndex, GAME_COMMAND_FLAG_APPLY))
|
if (!track_remove_station_element(x, y, z / 8, rotation, rideIndex, GAME_COMMAND_FLAG_APPLY))
|
||||||
{
|
{
|
||||||
|
@ -2250,15 +2250,15 @@ void tile_element_set_station(rct_tile_element* tileElement, uint32_t stationInd
|
||||||
tileElement->properties.track.sequence |= (stationIndex << 4);
|
tileElement->properties.track.sequence |= (stationIndex << 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t tile_element_get_track_sequence(const rct_tile_element* tileElement)
|
uint8_t TrackElement::GetSequenceIndex() const
|
||||||
{
|
{
|
||||||
return tileElement->properties.track.sequence & MAP_ELEM_TRACK_SEQUENCE_SEQUENCE_MASK;
|
return sequence & MAP_ELEM_TRACK_SEQUENCE_SEQUENCE_MASK;
|
||||||
}
|
}
|
||||||
|
|
||||||
void tile_element_set_track_sequence(rct_tile_element* tileElement, int32_t trackSequence)
|
void TrackElement::SetSequenceIndex(uint8_t newSequenceIndex)
|
||||||
{
|
{
|
||||||
tileElement->properties.track.sequence &= ~MAP_ELEM_TRACK_SEQUENCE_SEQUENCE_MASK;
|
sequence &= ~MAP_ELEM_TRACK_SEQUENCE_SEQUENCE_MASK;
|
||||||
tileElement->properties.track.sequence |= (trackSequence & MAP_ELEM_TRACK_SEQUENCE_SEQUENCE_MASK);
|
sequence |= (newSequenceIndex & MAP_ELEM_TRACK_SEQUENCE_SEQUENCE_MASK);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool tile_element_get_green_light(const rct_tile_element* tileElement)
|
bool tile_element_get_green_light(const rct_tile_element* tileElement)
|
||||||
|
@ -2282,7 +2282,8 @@ int32_t tile_element_get_brake_booster_speed(const rct_tile_element* tileElement
|
||||||
|
|
||||||
void tile_element_set_brake_booster_speed(rct_tile_element* tileElement, int32_t speed)
|
void tile_element_set_brake_booster_speed(rct_tile_element* tileElement, int32_t speed)
|
||||||
{
|
{
|
||||||
tileElement->properties.track.sequence = tile_element_get_track_sequence(tileElement) | ((speed >> 1) << 4);
|
tileElement->properties.track.sequence &= ~0b11110000;
|
||||||
|
tileElement->properties.track.sequence |= ((speed >> 1) << 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool tile_element_is_taking_photo(const rct_tile_element* tileElement)
|
bool tile_element_is_taking_photo(const rct_tile_element* tileElement)
|
||||||
|
|
|
@ -572,8 +572,6 @@ uint8_t track_element_get_colour_scheme(const rct_tile_element* tileElement);
|
||||||
void track_element_set_colour_scheme(rct_tile_element* tileElement, uint8_t colourScheme);
|
void track_element_set_colour_scheme(rct_tile_element* tileElement, uint8_t colourScheme);
|
||||||
int32_t tile_element_get_station(const rct_tile_element* tileElement);
|
int32_t tile_element_get_station(const rct_tile_element* tileElement);
|
||||||
void tile_element_set_station(rct_tile_element* tileElement, uint32_t stationIndex);
|
void tile_element_set_station(rct_tile_element* tileElement, uint32_t stationIndex);
|
||||||
int32_t tile_element_get_track_sequence(const rct_tile_element* tileElement);
|
|
||||||
void tile_element_set_track_sequence(rct_tile_element* tileElement, int32_t trackSequence);
|
|
||||||
bool tile_element_get_green_light(const rct_tile_element* tileElement);
|
bool tile_element_get_green_light(const rct_tile_element* tileElement);
|
||||||
void tile_element_set_green_light(rct_tile_element* tileElement, bool greenLight);
|
void tile_element_set_green_light(rct_tile_element* tileElement, bool greenLight);
|
||||||
int32_t tile_element_get_brake_booster_speed(const rct_tile_element* tileElement);
|
int32_t tile_element_get_brake_booster_speed(const rct_tile_element* tileElement);
|
||||||
|
|
|
@ -2163,7 +2163,7 @@ void track_paint(paint_session* session, uint8_t direction, int32_t height, cons
|
||||||
&& !(gCurrentViewportFlags & VIEWPORT_FLAG_HIGHLIGHT_PATH_ISSUES))
|
&& !(gCurrentViewportFlags & VIEWPORT_FLAG_HIGHLIGHT_PATH_ISSUES))
|
||||||
{
|
{
|
||||||
int32_t trackType = tileElement->AsTrack()->GetTrackType();
|
int32_t trackType = tileElement->AsTrack()->GetTrackType();
|
||||||
int32_t trackSequence = tile_element_get_track_sequence(tileElement);
|
int32_t trackSequence = tileElement->AsTrack()->GetSequenceIndex();
|
||||||
int32_t trackColourScheme = track_element_get_colour_scheme(tileElement);
|
int32_t trackColourScheme = track_element_get_colour_scheme(tileElement);
|
||||||
|
|
||||||
if ((gCurrentViewportFlags & VIEWPORT_FLAG_TRACK_HEIGHTS) && dpi->zoom_level == 0)
|
if ((gCurrentViewportFlags & VIEWPORT_FLAG_TRACK_HEIGHTS) && dpi->zoom_level == 0)
|
||||||
|
|
|
@ -1371,7 +1371,7 @@ static void loc_6A6D7E(
|
||||||
}
|
}
|
||||||
|
|
||||||
const uint8_t trackType = tileElement->AsTrack()->GetTrackType();
|
const uint8_t trackType = tileElement->AsTrack()->GetTrackType();
|
||||||
const uint8_t trackSequence = tile_element_get_track_sequence(tileElement);
|
const uint8_t trackSequence = tileElement->AsTrack()->GetSequenceIndex();
|
||||||
if (!(FlatRideTrackSequenceProperties[trackType][trackSequence] & TRACK_SEQUENCE_FLAG_CONNECTS_TO_PATH))
|
if (!(FlatRideTrackSequenceProperties[trackType][trackSequence] & TRACK_SEQUENCE_FLAG_CONNECTS_TO_PATH))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
|
@ -1498,7 +1498,7 @@ static void loc_6A6C85(
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const uint8_t trackType = tileElement->AsTrack()->GetTrackType();
|
const uint8_t trackType = tileElement->AsTrack()->GetTrackType();
|
||||||
const uint8_t trackSequence = tile_element_get_track_sequence(tileElement);
|
const uint8_t trackSequence = tileElement->AsTrack()->GetSequenceIndex();
|
||||||
if (!(FlatRideTrackSequenceProperties[trackType][trackSequence] & TRACK_SEQUENCE_FLAG_CONNECTS_TO_PATH))
|
if (!(FlatRideTrackSequenceProperties[trackType][trackSequence] & TRACK_SEQUENCE_FLAG_CONNECTS_TO_PATH))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
|
@ -2475,7 +2475,7 @@ bool tile_element_wants_path_connection_towards(TileCoordsXYZD coords, const rct
|
||||||
break;
|
break;
|
||||||
|
|
||||||
const uint8_t trackType = tileElement->AsTrack()->GetTrackType();
|
const uint8_t trackType = tileElement->AsTrack()->GetTrackType();
|
||||||
const uint8_t trackSequence = tile_element_get_track_sequence(tileElement);
|
const uint8_t trackSequence = tileElement->AsTrack()->GetSequenceIndex();
|
||||||
if (FlatRideTrackSequenceProperties[trackType][trackSequence] & TRACK_SEQUENCE_FLAG_CONNECTS_TO_PATH)
|
if (FlatRideTrackSequenceProperties[trackType][trackSequence] & TRACK_SEQUENCE_FLAG_CONNECTS_TO_PATH)
|
||||||
{
|
{
|
||||||
uint16_t dx = ((coords.direction - tileElement->GetDirection()) & TILE_ELEMENT_DIRECTION_MASK);
|
uint16_t dx = ((coords.direction - tileElement->GetDirection()) & TILE_ELEMENT_DIRECTION_MASK);
|
||||||
|
|
|
@ -4669,7 +4669,7 @@ rct_tile_element* map_get_track_element_at_of_type_seq(int32_t x, int32_t y, int
|
||||||
continue;
|
continue;
|
||||||
if (tileElement->AsTrack()->GetTrackType() != trackType)
|
if (tileElement->AsTrack()->GetTrackType() != trackType)
|
||||||
continue;
|
continue;
|
||||||
if (tile_element_get_track_sequence(tileElement) != sequence)
|
if (tileElement->AsTrack()->GetSequenceIndex() != sequence)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
return tileElement;
|
return tileElement;
|
||||||
|
|
|
@ -743,7 +743,7 @@ int32_t tile_inspector_track_base_height_offset(int32_t x, int32_t y, int32_t el
|
||||||
uint8_t rideIndex = track_element_get_ride_index(trackElement);
|
uint8_t rideIndex = track_element_get_ride_index(trackElement);
|
||||||
Ride* ride = get_ride(rideIndex);
|
Ride* ride = get_ride(rideIndex);
|
||||||
const rct_preview_track* trackBlock = get_track_def_from_ride(ride, type);
|
const rct_preview_track* trackBlock = get_track_def_from_ride(ride, type);
|
||||||
trackBlock += tile_element_get_track_sequence(trackElement);
|
trackBlock += trackElement->AsTrack()->GetSequenceIndex();
|
||||||
|
|
||||||
uint8_t originDirection = trackElement->GetDirection();
|
uint8_t originDirection = trackElement->GetDirection();
|
||||||
switch (originDirection)
|
switch (originDirection)
|
||||||
|
@ -807,10 +807,10 @@ int32_t tile_inspector_track_base_height_offset(int32_t x, int32_t y, int32_t el
|
||||||
if (tileElement->GetType() != TILE_ELEMENT_TYPE_TRACK)
|
if (tileElement->GetType() != TILE_ELEMENT_TYPE_TRACK)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if ((tileElement->GetDirection()) != rotation)
|
if (tileElement->GetDirection() != rotation)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (tile_element_get_track_sequence(tileElement) != trackBlock->index)
|
if (tileElement->AsTrack()->GetSequenceIndex() != trackBlock->index)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (tileElement->AsTrack()->GetTrackType() != type)
|
if (tileElement->AsTrack()->GetTrackType() != type)
|
||||||
|
@ -876,7 +876,7 @@ int32_t tile_inspector_track_set_chain(
|
||||||
uint8_t rideIndex = track_element_get_ride_index(trackElement);
|
uint8_t rideIndex = track_element_get_ride_index(trackElement);
|
||||||
Ride* ride = get_ride(rideIndex);
|
Ride* ride = get_ride(rideIndex);
|
||||||
const rct_preview_track* trackBlock = get_track_def_from_ride(ride, type);
|
const rct_preview_track* trackBlock = get_track_def_from_ride(ride, type);
|
||||||
trackBlock += tile_element_get_track_sequence(trackElement);
|
trackBlock += trackElement->AsTrack()->GetSequenceIndex();
|
||||||
|
|
||||||
uint8_t originDirection = trackElement->GetDirection();
|
uint8_t originDirection = trackElement->GetDirection();
|
||||||
switch (originDirection)
|
switch (originDirection)
|
||||||
|
@ -940,10 +940,10 @@ int32_t tile_inspector_track_set_chain(
|
||||||
if (tileElement->GetType() != TILE_ELEMENT_TYPE_TRACK)
|
if (tileElement->GetType() != TILE_ELEMENT_TYPE_TRACK)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if ((tileElement->GetDirection()) != rotation)
|
if (tileElement->GetDirection() != rotation)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (tile_element_get_track_sequence(tileElement) != trackBlock->index)
|
if (tileElement->AsTrack()->GetSequenceIndex() != trackBlock->index)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (tileElement->AsTrack()->GetTrackType() != type)
|
if (tileElement->AsTrack()->GetTrackType() != type)
|
||||||
|
|
|
@ -63,7 +63,7 @@ static bool WallCheckObstructionWithTrack(
|
||||||
rct_scenery_entry* wall, int32_t z0, int32_t edge, rct_tile_element* trackElement, bool* wallAcrossTrack)
|
rct_scenery_entry* wall, int32_t z0, int32_t edge, rct_tile_element* trackElement, bool* wallAcrossTrack)
|
||||||
{
|
{
|
||||||
int32_t trackType = trackElement->AsTrack()->GetTrackType();
|
int32_t trackType = trackElement->AsTrack()->GetTrackType();
|
||||||
int32_t sequence = tile_element_get_track_sequence(trackElement);
|
int32_t sequence = trackElement->AsTrack()->GetSequenceIndex();
|
||||||
int32_t direction = (edge - trackElement->GetDirection()) & TILE_ELEMENT_DIRECTION_MASK;
|
int32_t direction = (edge - trackElement->GetDirection()) & TILE_ELEMENT_DIRECTION_MASK;
|
||||||
Ride* ride = get_ride(track_element_get_ride_index(trackElement));
|
Ride* ride = get_ride(track_element_get_ride_index(trackElement));
|
||||||
|
|
||||||
|
|
|
@ -185,17 +185,6 @@ void tile_element_set_station(rct_tile_element* tileElement, uint32_t stationInd
|
||||||
tileElement->properties.track.sequence |= (stationIndex << 4);
|
tileElement->properties.track.sequence |= (stationIndex << 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t tile_element_get_track_sequence(const rct_tile_element* tileElement)
|
|
||||||
{
|
|
||||||
return tileElement->properties.track.sequence & MAP_ELEM_TRACK_SEQUENCE_SEQUENCE_MASK;
|
|
||||||
}
|
|
||||||
|
|
||||||
void tile_element_set_track_sequence(rct_tile_element* tileElement, int trackSequence)
|
|
||||||
{
|
|
||||||
tileElement->properties.track.sequence &= ~MAP_ELEM_TRACK_SEQUENCE_SEQUENCE_MASK;
|
|
||||||
tileElement->properties.track.sequence |= (trackSequence & MAP_ELEM_TRACK_SEQUENCE_SEQUENCE_MASK);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool tile_element_get_green_light(const rct_tile_element* tileElement)
|
bool tile_element_get_green_light(const rct_tile_element* tileElement)
|
||||||
{
|
{
|
||||||
return (tileElement->properties.track.sequence & MAP_ELEM_TRACK_SEQUENCE_GREEN_LIGHT) != 0;
|
return (tileElement->properties.track.sequence & MAP_ELEM_TRACK_SEQUENCE_GREEN_LIGHT) != 0;
|
||||||
|
@ -217,7 +206,8 @@ int tile_element_get_brake_booster_speed(const rct_tile_element* tileElement)
|
||||||
|
|
||||||
void tile_element_set_brake_booster_speed(rct_tile_element* tileElement, int speed)
|
void tile_element_set_brake_booster_speed(rct_tile_element* tileElement, int speed)
|
||||||
{
|
{
|
||||||
tileElement->properties.track.sequence = tile_element_get_track_sequence(tileElement) | ((speed >> 1) << 4);
|
tileElement->properties.track.sequence &= ~0b11110000;
|
||||||
|
tileElement->properties.track.sequence |= ((speed >> 1) << 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool tile_element_is_taking_photo(const rct_tile_element* tileElement)
|
bool tile_element_is_taking_photo(const rct_tile_element* tileElement)
|
||||||
|
@ -302,6 +292,17 @@ void TrackElement::SetTrackType(uint8_t newType)
|
||||||
trackType = newType;
|
trackType = newType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint8_t TrackElement::GetSequenceIndex() const
|
||||||
|
{
|
||||||
|
return sequence & MAP_ELEM_TRACK_SEQUENCE_SEQUENCE_MASK;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TrackElement::SetSequenceIndex(uint8_t newSequenceIndex)
|
||||||
|
{
|
||||||
|
sequence &= ~MAP_ELEM_TRACK_SEQUENCE_SEQUENCE_MASK;
|
||||||
|
sequence |= (newSequenceIndex & MAP_ELEM_TRACK_SEQUENCE_SEQUENCE_MASK);
|
||||||
|
}
|
||||||
|
|
||||||
uint8_t track_element_get_ride_index(const rct_tile_element* tileElement)
|
uint8_t track_element_get_ride_index(const rct_tile_element* tileElement)
|
||||||
{
|
{
|
||||||
return tileElement->properties.track.ride_index;
|
return tileElement->properties.track.ride_index;
|
||||||
|
|
Loading…
Reference in New Issue