mirror of https://github.com/OpenRCT2/OpenRCT2.git
Refactor IsChild to IsHead
This commit is contained in:
parent
ca807c5ed4
commit
bac3168a23
|
@ -4044,7 +4044,7 @@ void rct_peep::UpdateRideLeaveVehicle()
|
|||
|
||||
if (!ride_type_has_flag(ride->type, RIDE_TYPE_FLAG_16))
|
||||
{
|
||||
for (; vehicle->IsChild(); vehicle = GET_VEHICLE(vehicle->prev_vehicle_on_ride))
|
||||
for (; !vehicle->IsHead(); vehicle = GET_VEHICLE(vehicle->prev_vehicle_on_ride))
|
||||
{
|
||||
uint16_t trackType = vehicle->track_type >> 2;
|
||||
if (trackType == TRACK_ELEM_FLAT || trackType > TRACK_ELEM_MIDDLE_STATION)
|
||||
|
|
|
@ -2549,7 +2549,7 @@ bool rct_peep::UpdateFixingMoveToBrokenDownVehicle(bool firstRun, Ride* ride)
|
|||
|
||||
while (true)
|
||||
{
|
||||
if (!vehicle->IsChild())
|
||||
if (vehicle->IsHead())
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -1150,7 +1150,7 @@ private:
|
|||
ImportVehicle(vehicle, srcVehicle);
|
||||
|
||||
// If vehicle is the first car on a train add to train list
|
||||
if (!vehicle->IsChild())
|
||||
if (vehicle->IsHead())
|
||||
{
|
||||
move_sprite_to_list((rct_sprite*)vehicle, SPRITE_LIST_TRAIN * 2);
|
||||
}
|
||||
|
|
|
@ -4941,7 +4941,7 @@ static rct_vehicle* vehicle_create_car(
|
|||
}
|
||||
if (vehicleEntry->flags & VEHICLE_ENTRY_FLAG_4)
|
||||
{
|
||||
if (!vehicle->IsChild())
|
||||
if (vehicle->IsHead())
|
||||
{
|
||||
dl = 15;
|
||||
}
|
||||
|
|
|
@ -5280,7 +5280,7 @@ static void vehicle_crash_on_land(rct_vehicle* vehicle)
|
|||
ride->lifecycle_flags |= RIDE_LIFECYCLE_CRASHED;
|
||||
ride->window_invalidate_flags |= RIDE_INVALIDATE_RIDE_MAIN | RIDE_INVALIDATE_RIDE_LIST;
|
||||
|
||||
if (vehicle->IsChild() == 0)
|
||||
if (vehicle->IsHead())
|
||||
{
|
||||
vehicle_kill_all_passengers(vehicle);
|
||||
}
|
||||
|
@ -5334,7 +5334,7 @@ static void vehicle_crash_on_water(rct_vehicle* vehicle)
|
|||
ride->lifecycle_flags |= RIDE_LIFECYCLE_CRASHED;
|
||||
ride->window_invalidate_flags |= RIDE_INVALIDATE_RIDE_MAIN | RIDE_INVALIDATE_RIDE_LIST;
|
||||
|
||||
if (vehicle->IsChild() == 0)
|
||||
if (vehicle->IsHead())
|
||||
{
|
||||
vehicle_kill_all_passengers(vehicle);
|
||||
}
|
||||
|
@ -6192,12 +6192,7 @@ void vehicle_set_map_toolbar(const rct_vehicle* vehicle)
|
|||
int32_t vehicleIndex;
|
||||
|
||||
ride = get_ride(vehicle->ride);
|
||||
|
||||
while (vehicle->IsChild())
|
||||
{
|
||||
vehicle = GET_VEHICLE(vehicle->prev_vehicle_on_ride);
|
||||
}
|
||||
|
||||
vehicle = vehicle->GetHead();
|
||||
for (vehicleIndex = 0; vehicleIndex < 32; vehicleIndex++)
|
||||
if (ride->vehicles[vehicleIndex] == vehicle->sprite_index)
|
||||
break;
|
||||
|
@ -7561,7 +7556,7 @@ static void vehicle_update_handle_water_splash(rct_vehicle* vehicle)
|
|||
{
|
||||
if (rideEntry->flags & RIDE_ENTRY_FLAG_PLAY_SPLASH_SOUND_SLIDE)
|
||||
{
|
||||
if (!vehicle->IsChild())
|
||||
if (vehicle->IsHead())
|
||||
{
|
||||
if (track_element_is_covered(trackType))
|
||||
{
|
||||
|
@ -7588,7 +7583,7 @@ static void vehicle_update_handle_water_splash(rct_vehicle* vehicle)
|
|||
}
|
||||
}
|
||||
}
|
||||
if (!vehicle->IsChild())
|
||||
if (vehicle->IsHead())
|
||||
{
|
||||
if (trackType == TRACK_ELEM_WATER_SPLASH)
|
||||
{
|
||||
|
@ -8028,7 +8023,7 @@ loc_6DB358:
|
|||
if (tileElement->AsTrack()->GetTrackType() == TRACK_ELEM_LEFT_REVERSER
|
||||
|| tileElement->AsTrack()->GetTrackType() == TRACK_ELEM_RIGHT_REVERSER)
|
||||
{
|
||||
if (!vehicle->IsChild() && vehicle->velocity <= 0x30000)
|
||||
if (vehicle->IsHead() && vehicle->velocity <= 0x30000)
|
||||
{
|
||||
vehicle->velocity = 0;
|
||||
}
|
||||
|
@ -8192,7 +8187,7 @@ loc_6DAEB9:
|
|||
}
|
||||
if (trackType == TRACK_ELEM_BRAKE_FOR_DROP)
|
||||
{
|
||||
if (!vehicle->IsChild())
|
||||
if (vehicle->IsHead())
|
||||
{
|
||||
if (!(vehicle->update_flags & VEHICLE_UPDATE_FLAG_ON_BREAK_FOR_DROP))
|
||||
{
|
||||
|
@ -8761,7 +8756,7 @@ loc_6DC476:
|
|||
|
||||
if (vehicle->mini_golf_flags & (1 << 0))
|
||||
{
|
||||
regs.di = vehicle->IsChild() ? vehicle->prev_vehicle_on_ride : vehicle->next_vehicle_on_ride;
|
||||
regs.di = vehicle->IsHead() ? vehicle->next_vehicle_on_ride : vehicle->prev_vehicle_on_ride;
|
||||
rct_vehicle* vEDI = GET_VEHICLE(regs.di);
|
||||
if (!(vEDI->mini_golf_flags & (1 << 0)) || (vEDI->mini_golf_flags & (1 << 2)))
|
||||
{
|
||||
|
@ -8777,7 +8772,7 @@ loc_6DC476:
|
|||
|
||||
if (vehicle->mini_golf_flags & (1 << 1))
|
||||
{
|
||||
regs.di = vehicle->IsChild() ? vehicle->prev_vehicle_on_ride : vehicle->next_vehicle_on_ride;
|
||||
regs.di = vehicle->IsHead() ? vehicle->next_vehicle_on_ride : vehicle->prev_vehicle_on_ride;
|
||||
rct_vehicle* vEDI = GET_VEHICLE(regs.di);
|
||||
if (!(vEDI->mini_golf_flags & (1 << 1)) || (vEDI->mini_golf_flags & (1 << 2)))
|
||||
{
|
||||
|
@ -8802,7 +8797,7 @@ loc_6DC476:
|
|||
{
|
||||
break;
|
||||
}
|
||||
if (!vEDI->IsChild())
|
||||
if (vEDI->IsHead())
|
||||
continue;
|
||||
if (!(vEDI->mini_golf_flags & (1 << 4)))
|
||||
continue;
|
||||
|
@ -8883,7 +8878,7 @@ loc_6DC476:
|
|||
vehicle->track_y = y;
|
||||
vehicle->track_z = z;
|
||||
|
||||
if (vehicle->IsChild())
|
||||
if (!vehicle->IsHead())
|
||||
{
|
||||
rct_vehicle* prevVehicle = GET_VEHICLE(vehicle->prev_vehicle_on_ride);
|
||||
regs.al = prevVehicle->var_CD;
|
||||
|
@ -8901,7 +8896,7 @@ loc_6DC476:
|
|||
|
||||
loc_6DC743:
|
||||
vehicle->track_progress = regs.ax;
|
||||
if (vehicle->IsChild())
|
||||
if (!vehicle->IsHead())
|
||||
{
|
||||
vehicle->animation_frame++;
|
||||
if (vehicle->animation_frame >= 6)
|
||||
|
@ -8920,7 +8915,7 @@ loc_6DC743:
|
|||
switch (moveInfo->y)
|
||||
{
|
||||
case 0: // loc_6DC7B4
|
||||
if (vehicle->IsChild())
|
||||
if (!vehicle->IsHead())
|
||||
{
|
||||
vehicle->mini_golf_flags |= (1 << 3);
|
||||
}
|
||||
|
@ -9802,7 +9797,7 @@ int32_t vehicle_update_track_motion(rct_vehicle* vehicle, int32_t* outStation)
|
|||
|
||||
if (rideEntry->flags & RIDE_ENTRY_FLAG_PLAY_SPLASH_SOUND_SLIDE)
|
||||
{
|
||||
if (!vehicle->IsChild())
|
||||
if (vehicle->IsHead())
|
||||
{
|
||||
if (track_element_is_covered(vehicle->track_type >> 2))
|
||||
{
|
||||
|
@ -10011,9 +10006,14 @@ void vehicle_claxon(const rct_vehicle* vehicle)
|
|||
rct_vehicle* rct_vehicle::GetHead()
|
||||
{
|
||||
auto v = this;
|
||||
while (v != nullptr && v->IsChild())
|
||||
while (v != nullptr && !v->IsHead())
|
||||
{
|
||||
v = GET_VEHICLE(v->prev_vehicle_on_ride);
|
||||
}
|
||||
return v;
|
||||
}
|
||||
|
||||
const rct_vehicle* rct_vehicle::GetHead() const
|
||||
{
|
||||
return ((rct_vehicle*)this)->GetHead();
|
||||
}
|
||||
|
|
|
@ -221,8 +221,9 @@ struct rct_vehicle : rct_sprite_common
|
|||
uint8_t seat_rotation; // 0xD8
|
||||
uint8_t target_seat_rotation; // 0xD9
|
||||
|
||||
constexpr bool IsChild() const { return type != 0; }
|
||||
constexpr bool IsHead() const { return type == 0; }
|
||||
rct_vehicle* GetHead();
|
||||
const rct_vehicle* GetHead() const;
|
||||
};
|
||||
|
||||
struct train_ref
|
||||
|
|
|
@ -1250,13 +1250,13 @@ void vehicle_visual_splash_boats_or_water_coaster(
|
|||
paint_session* session, int32_t x, int32_t imageDirection, int32_t y, int32_t z, const rct_vehicle* vehicle,
|
||||
const rct_ride_entry_vehicle* vehicleEntry)
|
||||
{
|
||||
if (vehicle->IsChild())
|
||||
if (vehicle->IsHead())
|
||||
{
|
||||
vehicle = GET_VEHICLE(vehicle->prev_vehicle_on_ride);
|
||||
vehicle = GET_VEHICLE(vehicle->next_vehicle_on_ride);
|
||||
}
|
||||
else
|
||||
{
|
||||
vehicle = GET_VEHICLE(vehicle->next_vehicle_on_ride);
|
||||
vehicle = GET_VEHICLE(vehicle->prev_vehicle_on_ride);
|
||||
}
|
||||
session->CurrentlyDrawnItem = vehicle;
|
||||
imageDirection = ((session->CurrentRotation * 8) + vehicle->sprite_direction) & 0x1F;
|
||||
|
|
Loading…
Reference in New Issue