diff options
author | PolarCookie <sei009@post.uit.no> | 2019-04-07 20:04:14 +0200 |
---|---|---|
committer | Giacomo Pozzoni <giacomopoz@gmail.com> | 2019-04-07 20:04:14 +0200 |
commit | 73e3fdc8b4545cca52b66032a5f2465183d14c71 (patch) | |
tree | 0eef63a7597d2151abf90d73c2f13c085ba16dce /src | |
parent | 36f5114a87c12765100bc971f70df0b267e2f795 (diff) |
Core: VehicleJoinEvent crash fix (#23136)
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/Entities/Vehicle/Vehicle.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/server/game/Entities/Vehicle/Vehicle.cpp b/src/server/game/Entities/Vehicle/Vehicle.cpp index 8b7c3c357f7..37de19522f5 100755 --- a/src/server/game/Entities/Vehicle/Vehicle.cpp +++ b/src/server/game/Entities/Vehicle/Vehicle.cpp @@ -785,6 +785,11 @@ bool VehicleJoinEvent::Execute(uint64, uint32) return true; } + //It's possible that multiple vehicle join + //events are executed in the same update + if (Passenger->GetVehicle()) + Passenger->ExitVehicle(); + Passenger->SetVehicle(Target); Seat->second.Passenger.Guid = Passenger->GetGUID(); Seat->second.Passenger.IsUnselectable = Passenger->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); |