aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPolarCookie <sei009@post.uit.no>2019-04-07 20:04:14 +0200
committerShauren <shauren.trinity@gmail.com>2021-11-26 22:33:43 +0100
commitfe0cff0caeda48cd49f5d3898607bdb34704b868 (patch)
tree4119c4bd6ed309eff3d1dcac98ae6a000fdf3700 /src
parent7ea8331fa1a2f0c98afb3854bb9710534d19e6df (diff)
Core: VehicleJoinEvent crash fix (#23136)
(cherry picked from commit 73e3fdc8b4545cca52b66032a5f2465183d14c71)
Diffstat (limited to 'src')
-rw-r--r--src/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 ad8d4653ce2..75aef9ff7f9 100644
--- a/src/server/game/Entities/Vehicle/Vehicle.cpp
+++ b/src/server/game/Entities/Vehicle/Vehicle.cpp
@@ -778,6 +778,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->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE);