From 39accddb5f4d7d53fb465b525e812c6989c1c38d Mon Sep 17 00:00:00 2001 From: megamage Date: Sat, 22 Aug 2009 21:25:35 -0500 Subject: *Let all accessories enterevademode when vehicle enter evade mode. --HG-- branch : trunk --- src/game/CreatureAI.cpp | 4 ++++ src/game/Vehicle.cpp | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) (limited to 'src') 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 } -- cgit v1.2.3