aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/game/CreatureAI.cpp4
-rw-r--r--src/game/Vehicle.cpp6
2 files changed, 9 insertions, 1 deletions
diff --git a/src/game/CreatureAI.cpp b/src/game/CreatureAI.cpp
index e12baa137d5..fe7e0c1a2c5 100644
--- a/src/game/CreatureAI.cpp
+++ b/src/game/CreatureAI.cpp
@@ -23,6 +23,7 @@
#include "Creature.h"
#include "World.h"
#include "SpellMgr.h"
+#include "Vehicle.h"
//Disable CreatureAI when charmed
void CreatureAI::OnCharmed(bool apply)
@@ -211,6 +212,9 @@ void CreatureAI::EnterEvadeMode()
me->GetMotionMaster()->MoveTargetedHome();
}
+ if(me->isVehicle())
+ ((Vehicle*)me)->InstallAllAccessories();
+
Reset();
}
diff --git a/src/game/Vehicle.cpp b/src/game/Vehicle.cpp
index 3398030e735..7dcff65fe06 100644
--- a/src/game/Vehicle.cpp
+++ b/src/game/Vehicle.cpp
@@ -254,8 +254,12 @@ void Vehicle::InstallAccessory(uint32 entry, int8 seatId)
{
// already installed
if(passenger->GetEntry() == entry)
+ {
+ assert(passenger->GetTypeId() == TYPEID_UNIT);
+ if(IsInEvadeMode() && ((Creature*)passenger)->AI())
+ ((Creature*)passenger)->AI()->EnterEvadeMode();
return;
-
+ }
passenger->ExitVehicle(); // this should not happen
}