diff options
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/Entities/Vehicle/Vehicle.cpp | 11 | ||||
-rw-r--r-- | src/server/game/Entities/Vehicle/Vehicle.h | 2 |
2 files changed, 7 insertions, 6 deletions
diff --git a/src/server/game/Entities/Vehicle/Vehicle.cpp b/src/server/game/Entities/Vehicle/Vehicle.cpp index 20110a555cd..951b55d9160 100755 --- a/src/server/game/Entities/Vehicle/Vehicle.cpp +++ b/src/server/game/Entities/Vehicle/Vehicle.cpp @@ -742,16 +742,17 @@ void Vehicle::RemovePendingEvent(VehicleJoinEvent* e) * @param seatId Identifier for the seat. */ -void Vehicle::RemovePendingEventsForSeat(uint8 seatId) +void Vehicle::RemovePendingEventsForSeat(int8 seatId) { for (std::deque<VehicleJoinEvent*>::iterator itr = _pendingJoinEvents.begin(); itr != _pendingJoinEvents.end();) { - std::deque<VehicleJoinEvent*>::iterator cur = itr++; - if (uint8((*itr)->Seat->first) == seatId) + if ((*itr)->Seat->first == seatId) { (*itr)->to_Abort = true; - _pendingJoinEvents.erase(cur); + _pendingJoinEvents.erase(itr++); } + else + ++itr; } } @@ -775,7 +776,7 @@ bool VehicleJoinEvent::Execute(uint64, uint32) ASSERT(Passenger->IsInWorld()); ASSERT(Target->GetBase()->IsInWorld()); - Target->RemovePendingEventsForSeat(uint8(Seat->first)); + Target->RemovePendingEventsForSeat(Seat->first); Passenger->m_vehicle = Target; Seat->second.Passenger = Passenger->GetGUID(); diff --git a/src/server/game/Entities/Vehicle/Vehicle.h b/src/server/game/Entities/Vehicle/Vehicle.h index 65aa6f2517b..4f3d2eea4ec 100644 --- a/src/server/game/Entities/Vehicle/Vehicle.h +++ b/src/server/game/Entities/Vehicle/Vehicle.h @@ -96,7 +96,7 @@ class Vehicle : public TransportBase void CancelJoinEvent(VehicleJoinEvent* e); void RemovePendingEvent(VehicleJoinEvent* e); - void RemovePendingEventsForSeat(uint8 seatId); + void RemovePendingEventsForSeat(int8 seatId); private: Unit* _me; ///< The underlying unit with the vehicle kit. Can be player or creature. |