Fix type issues

This commit is contained in:
hdpoliveira 2020-06-14 21:18:16 -03:00
parent 23cf4b580e
commit 4ce425b436
3 changed files with 21 additions and 19 deletions

View File

@ -1130,7 +1130,7 @@ bool track_element_is_block_start(TileElement* trackElement)
return false;
}
int32_t track_get_actual_bank(TileElement* tileElement, int32_t bank)
bank_type_t track_get_actual_bank(TileElement* tileElement, bank_type_t bank)
{
auto ride = get_ride(tileElement->AsTrack()->GetRideIndex());
if (ride != nullptr)
@ -1141,7 +1141,7 @@ int32_t track_get_actual_bank(TileElement* tileElement, int32_t bank)
return bank;
}
int32_t track_get_actual_bank_2(int32_t rideType, bool isInverted, int32_t bank)
bank_type_t track_get_actual_bank_2(int32_t rideType, bool isInverted, bank_type_t bank)
{
if (RideTypeDescriptors[rideType].Flags & RIDE_TYPE_FLAG_HAS_ALTERNATIVE_TRACK_TYPE)
{
@ -1160,7 +1160,7 @@ int32_t track_get_actual_bank_2(int32_t rideType, bool isInverted, int32_t bank)
return bank;
}
int32_t track_get_actual_bank_3(bool useInvertedSprites, TileElement* tileElement)
bank_type_t track_get_actual_bank_3(bool useInvertedSprites, TileElement* tileElement)
{
auto trackType = tileElement->AsTrack()->GetTrackType();
auto bankStart = TrackDefinitions[trackType].bank_start;

View File

@ -18,15 +18,17 @@ constexpr const uint16_t RideConstructionSpecialPieceSelected = 0x100;
constexpr const int32_t BLOCK_BRAKE_BASE_SPEED = 0x20364;
using track_type_t = uint16_t;
using bank_type_t = uint8_t;
using vangle_type_t = uint8_t;
#pragma pack(push, 1)
struct rct_trackdefinition
{
uint8_t type;
uint8_t vangle_end;
uint8_t vangle_start;
uint8_t bank_end;
uint8_t bank_start;
vangle_type_t vangle_end;
vangle_type_t vangle_start;
bank_type_t bank_end;
bank_type_t bank_start;
int8_t preview_z_offset;
uint8_t pad[2] = {};
};
@ -35,14 +37,14 @@ assert_struct_size(rct_trackdefinition, 8);
struct VAngleAndBank
{
uint8_t VAngle;
uint8_t Bank;
vangle_type_t VAngle;
bank_type_t Bank;
};
bool operator==(const VAngleAndBank& vb1, const VAngleAndBank& vb2)
constexpr bool operator==(const VAngleAndBank& vb1, const VAngleAndBank& vb2)
{
return vb1.VAngle == vb2.VAngle && vb1.Bank == vb2.Bank;
}
bool operator!=(const VAngleAndBank& vb1, const VAngleAndBank& vb2)
constexpr bool operator!=(const VAngleAndBank& vb1, const VAngleAndBank& vb2)
{
return !(vb1 == vb2);
}
@ -573,9 +575,9 @@ bool track_element_is_block_start(TileElement* trackElement);
bool track_element_is_covered(int32_t trackElementType);
bool track_type_is_station(track_type_t trackType);
int32_t track_get_actual_bank(TileElement* tileElement, int32_t bank);
int32_t track_get_actual_bank_2(int32_t rideType, bool isInverted, int32_t bank);
int32_t track_get_actual_bank_3(bool useInvertedSprites, TileElement* tileElement);
bank_type_t track_get_actual_bank(TileElement* tileElement, bank_type_t bank);
bank_type_t track_get_actual_bank_2(int32_t rideType, bool isInverted, bank_type_t bank);
bank_type_t track_get_actual_bank_3(bool useInvertedSprites, TileElement* tileElement);
bool track_add_station_element(CoordsXYZD loc, ride_id_t rideIndex, int32_t flags, bool fromTrackDesign);
bool track_remove_station_element(int32_t x, int32_t y, int32_t z, Direction direction, ride_id_t rideIndex, int32_t flags);

View File

@ -7481,7 +7481,7 @@ static void vehicle_update_scenery_door(Vehicle* vehicle)
*/
static VAngleAndBank VAngleAndBankStart(bool useInvertedSprites, TileElement* tileElement)
{
int32_t trackType = tileElement->AsTrack()->GetTrackType();
auto trackType = tileElement->AsTrack()->GetTrackType();
return VAngleAndBank{ TrackDefinitions[trackType].vangle_start, track_get_actual_bank_3(useInvertedSprites, tileElement) };
}
@ -8789,7 +8789,6 @@ loc_6DC476:
}
}
auto vangleAndBankEnd = track_vangle_and_bank_end(GetTrackType());
tileElement = map_get_track_element_at_of_type_seq(TrackLocation, GetTrackType(), 0);
int32_t direction;
{
@ -8805,7 +8804,8 @@ loc_6DC476:
direction = outDirection;
}
if (VAngleAndBankStart(HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES), tileElement) != vangleAndBankEnd)
if (VAngleAndBankStart(HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES), tileElement)
!= track_vangle_and_bank_end(GetTrackType()))
{
goto loc_6DC9BC;
}
@ -8999,7 +8999,6 @@ loc_6DCA9A:
goto loc_6DCC2C;
}
auto vangleAndBankEnd = track_vangle_and_bank_end(GetTrackType());
tileElement = map_get_track_element_at_of_type_seq(TrackLocation, GetTrackType(), 0);
{
track_begin_end trackBeginEnd;
@ -9012,7 +9011,8 @@ loc_6DCA9A:
tileElement = trackBeginEnd.begin_element;
}
if (VAngleAndBankStart(HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES), tileElement) != vangleAndBankEnd)
if (VAngleAndBankStart(HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES), tileElement)
!= track_vangle_and_bank_end(GetTrackType()))
{
goto loc_6DCD4A;
}