aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPolarCookie <sei009@post.uit.no>2019-04-07 20:04:14 +0200
committerGiacomo Pozzoni <giacomopoz@gmail.com>2019-04-07 20:04:14 +0200
commit73e3fdc8b4545cca52b66032a5f2465183d14c71 (patch)
tree0eef63a7597d2151abf90d73c2f13c085ba16dce /src
parent36f5114a87c12765100bc971f70df0b267e2f795 (diff)
Core: VehicleJoinEvent crash fix (#23136)
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Entities/Vehicle/Vehicle.cpp5
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);