1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-20 13:33:02 +01:00

Rename VEHICLE_UPDATE_FLAG_1 to COLLISION_DISABLED (#13363)

Rename VEHICLE_UPDATE_FLAG_1
This commit is contained in:
Tulio Leao
2020-11-03 19:23:22 -03:00
committed by GitHub
4 changed files with 21 additions and 19 deletions

View File

@@ -74,7 +74,7 @@ Vehicle* cable_lift_segment_create(
current->MoveTo({ 16, 16, z });
current->track_type = (TrackElemType::CableLiftHill << 2) | (current->sprite_direction >> 3);
current->track_progress = 164;
current->update_flags = VEHICLE_UPDATE_FLAG_1;
current->update_flags = VEHICLE_UPDATE_FLAG_COLLISION_DISABLED;
current->SetState(Vehicle::Status::MovingToEndOfStation, 0);
current->num_peeps = 0;
current->next_free_seat = 0;

View File

@@ -4530,7 +4530,7 @@ static Vehicle* vehicle_create_car(
{
vehicle->track_progress = 15;
}
vehicle->update_flags = VEHICLE_UPDATE_FLAG_1;
vehicle->update_flags = VEHICLE_UPDATE_FLAG_COLLISION_DISABLED;
if (vehicleEntry->flags & VEHICLE_ENTRY_FLAG_HAS_INVERTED_SPRITE_SET)
{
if (trackElement->IsInverted())
@@ -4631,14 +4631,6 @@ static void vehicle_create_trains(ride_id_t rideIndex, const CoordsXYZ& trainsPo
lastTrain.tail->next_vehicle_on_ride = firstTrain.head->sprite_index;
}
static void vehicle_unset_update_flag_b1(Vehicle* head)
{
for (auto vehicle = head; vehicle != nullptr; vehicle = GetEntity<Vehicle>(vehicle->next_vehicle_on_train))
{
vehicle->ClearUpdateFlag(VEHICLE_UPDATE_FLAG_1);
}
}
/**
*
* rct2: 0x006DDE9E
@@ -4783,7 +4775,7 @@ static bool ride_create_vehicles(Ride* ride, const CoordsXYE& element, int32_t i
vehicle->UpdateTrackMotion(nullptr);
}
vehicle_unset_update_flag_b1(vehicle);
vehicle->EnableCollisionsForTrain();
}
}
}
@@ -4806,7 +4798,7 @@ void loc_6DDF9C(Ride* ride, TileElement* tileElement)
if (i == 0)
{
train->UpdateTrackMotion(nullptr);
vehicle_unset_update_flag_b1(train);
train->EnableCollisionsForTrain();
continue;
}
@@ -4827,7 +4819,7 @@ void loc_6DDF9C(Ride* ride, TileElement* tileElement)
tileElement->AsTrack()->SetBlockBrakeClosed(true);
for (Vehicle* car = train; car != nullptr; car = GetEntity<Vehicle>(car->next_vehicle_on_train))
{
car->ClearUpdateFlag(VEHICLE_UPDATE_FLAG_1);
car->ClearUpdateFlag(VEHICLE_UPDATE_FLAG_COLLISION_DISABLED);
car->SetState(Vehicle::Status::Travelling, car->sub_state);
if ((car->GetTrackType()) == TrackElemType::EndStation)
{

View File

@@ -3340,11 +3340,11 @@ void Vehicle::UpdateDeparting()
if (_vehicleBreakdown == BREAKDOWN_SAFETY_CUT_OUT)
{
SetUpdateFlag(VEHICLE_UPDATE_FLAG_ZERO_VELOCITY);
ClearUpdateFlag(VEHICLE_UPDATE_FLAG_1);
ClearUpdateFlag(VEHICLE_UPDATE_FLAG_COLLISION_DISABLED);
}
}
else
ClearUpdateFlag(VEHICLE_UPDATE_FLAG_1);
ClearUpdateFlag(VEHICLE_UPDATE_FLAG_COLLISION_DISABLED);
}
}
else
@@ -3358,11 +3358,11 @@ void Vehicle::UpdateDeparting()
if (_vehicleBreakdown == BREAKDOWN_SAFETY_CUT_OUT)
{
SetUpdateFlag(VEHICLE_UPDATE_FLAG_ZERO_VELOCITY);
ClearUpdateFlag(VEHICLE_UPDATE_FLAG_1);
ClearUpdateFlag(VEHICLE_UPDATE_FLAG_COLLISION_DISABLED);
}
}
else
ClearUpdateFlag(VEHICLE_UPDATE_FLAG_1);
ClearUpdateFlag(VEHICLE_UPDATE_FLAG_COLLISION_DISABLED);
}
}
}
@@ -7620,7 +7620,7 @@ void Vehicle::UpdateReverserCarBogies()
*/
bool Vehicle::UpdateMotionCollisionDetection(const CoordsXYZ& loc, uint16_t* otherVehicleIndex)
{
if (HasUpdateFlag(VEHICLE_UPDATE_FLAG_1))
if (HasUpdateFlag(VEHICLE_UPDATE_FLAG_COLLISION_DISABLED))
return false;
auto vehicleEntry = Entry();
@@ -9886,3 +9886,12 @@ bool Vehicle::IsGhost() const
auto r = GetRide();
return r != nullptr && r->status == RIDE_STATUS_SIMULATING;
}
void Vehicle::EnableCollisionsForTrain()
{
assert(this->IsHead());
for (auto vehicle = this; vehicle != nullptr; vehicle = GetEntity<Vehicle>(vehicle->next_vehicle_on_train))
{
vehicle->ClearUpdateFlag(VEHICLE_UPDATE_FLAG_COLLISION_DISABLED);
}
}

View File

@@ -331,6 +331,7 @@ struct Vehicle : SpriteBase
Ride* GetRide() const;
Vehicle* TrainHead() const;
Vehicle* TrainTail() const;
void EnableCollisionsForTrain();
uint16_t GetTrackType() const
{
@@ -513,7 +514,7 @@ enum
enum : uint32_t
{
VEHICLE_UPDATE_FLAG_ON_LIFT_HILL = (1 << 0),
VEHICLE_UPDATE_FLAG_1 = (1 << 1),
VEHICLE_UPDATE_FLAG_COLLISION_DISABLED = (1 << 1),
VEHICLE_UPDATE_FLAG_WAIT_ON_ADJACENT = (1 << 2),
VEHICLE_UPDATE_FLAG_REVERSING_SHUTTLE = (1 << 3), // Shuttle is in reverse
VEHICLE_UPDATE_FLAG_TRAIN_READY_DEPART = (1 << 4),