aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormegamage <none@none>2009-08-22 21:25:35 -0500
committermegamage <none@none>2009-08-22 21:25:35 -0500
commit39accddb5f4d7d53fb465b525e812c6989c1c38d (patch)
treec554a7bea80534e79b84a1f2c6719670845e8c22 /src
parent336fd3f4edb6690aa0ed6ccc3bb3e2350eda9a61 (diff)
*Let all accessories enterevademode when vehicle enter evade mode.
--HG-- branch : trunk
Diffstat (limited to 'src')
-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
}