diff --git a/src/server/game/Entities/Vehicle/Vehicle.cpp b/src/server/game/Entities/Vehicle/Vehicle.cpp index 6db14bb4e17..bf8c30f34ad 100644 --- a/src/server/game/Entities/Vehicle/Vehicle.cpp +++ b/src/server/game/Entities/Vehicle/Vehicle.cpp @@ -737,12 +737,6 @@ void Vehicle::RemovePendingEventsForPassenger(Unit* passenger) } } -VehicleJoinEvent::~VehicleJoinEvent() -{ - if (Target) - Target->RemovePendingEvent(this); -} - /** * @fn bool VehicleJoinEvent::Execute(uint64, uint32) * @@ -860,6 +854,9 @@ void VehicleJoinEvent::Abort(uint64) TC_LOG_DEBUG("entities.vehicle", "Passenger GuidLow: %u, Entry: %u, board on vehicle GuidLow: %u, Entry: %u SeatId: %d cancelled", Passenger->GetGUID().GetCounter(), Passenger->GetEntry(), Target->GetBase()->GetGUID().GetCounter(), Target->GetBase()->GetEntry(), (int32)Seat->first); + /// Remove the pending event when Abort was called on the event directly + Target->RemovePendingEvent(this); + /// @SPELL_AURA_CONTROL_VEHICLE auras can be applied even when the passenger is not (yet) on the vehicle. /// When this code is triggered it means that something went wrong in @Vehicle::AddPassenger, and we should remove /// the aura manually. diff --git a/src/server/game/Entities/Vehicle/Vehicle.h b/src/server/game/Entities/Vehicle/Vehicle.h index f8992708a46..8f618e765c9 100644 --- a/src/server/game/Entities/Vehicle/Vehicle.h +++ b/src/server/game/Entities/Vehicle/Vehicle.h @@ -123,7 +123,6 @@ class TC_GAME_API VehicleJoinEvent : public BasicEvent friend class Vehicle; protected: VehicleJoinEvent(Vehicle* v, Unit* u) : Target(v), Passenger(u), Seat(Target->Seats.end()) { } - ~VehicleJoinEvent(); bool Execute(uint64, uint32) override; void Abort(uint64) override;