diff options
author | megamage <none@none> | 2009-08-22 21:25:35 -0500 |
---|---|---|
committer | megamage <none@none> | 2009-08-22 21:25:35 -0500 |
commit | 39accddb5f4d7d53fb465b525e812c6989c1c38d (patch) | |
tree | c554a7bea80534e79b84a1f2c6719670845e8c22 | |
parent | 336fd3f4edb6690aa0ed6ccc3bb3e2350eda9a61 (diff) |
*Let all accessories enterevademode when vehicle enter evade mode.
--HG--
branch : trunk
-rw-r--r-- | src/game/CreatureAI.cpp | 4 | ||||
-rw-r--r-- | src/game/Vehicle.cpp | 6 |
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 } |