diff options
Diffstat (limited to 'src/game/PointMovementGenerator.cpp')
-rw-r--r-- | src/game/PointMovementGenerator.cpp | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/src/game/PointMovementGenerator.cpp b/src/game/PointMovementGenerator.cpp deleted file mode 100644 index 63787edda1d..00000000000 --- a/src/game/PointMovementGenerator.cpp +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/> - * - * Copyright (C) 2008-2010 Trinity <http://www.trinitycore.org/> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#include "PointMovementGenerator.h" -#include "Errors.h" -#include "Creature.h" -#include "CreatureAI.h" -#include "DestinationHolderImp.h" -#include "World.h" - -//----- Point Movement Generator -template<class T> -void PointMovementGenerator<T>::Initialize(T &unit) -{ - unit.StopMoving(); - Traveller<T> traveller(unit); - // knockback effect has UNIT_STAT_JUMPING set,so if here we disable sentmonstermove there will be creature position sync problem between client and server - i_destinationHolder.SetDestination(traveller,i_x,i_y,i_z, true /* !unit.hasUnitState(UNIT_STAT_JUMPING)*/); -} - -template<class T> -bool PointMovementGenerator<T>::Update(T &unit, const uint32 &diff) -{ - if (!&unit) - return false; - - if (unit.hasUnitState(UNIT_STAT_ROOT | UNIT_STAT_STUNNED)) - { - if (unit.hasUnitState(UNIT_STAT_CHARGING)) - return false; - else - return true; - } - - Traveller<T> traveller(unit); - - i_destinationHolder.UpdateTraveller(traveller, diff); - - if (i_destinationHolder.HasArrived()) - { - unit.clearUnitState(UNIT_STAT_MOVE); - arrived = true; - return false; - } - - return true; -} - -template<class T> -void PointMovementGenerator<T>:: Finalize(T &unit) -{ - if (unit.hasUnitState(UNIT_STAT_CHARGING)) - unit.clearUnitState(UNIT_STAT_CHARGING | UNIT_STAT_JUMPING); - if (arrived) // without this crash! - MovementInform(unit); -} - -template<class T> -void PointMovementGenerator<T>::MovementInform(T & /*unit*/) -{ -} - -template <> void PointMovementGenerator<Creature>::MovementInform(Creature &unit) -{ - if (id == EVENT_FALL_GROUND) - { - unit.setDeathState(JUST_DIED); - unit.SetFlying(true); - } - unit.AI()->MovementInform(POINT_MOTION_TYPE, id); -} - -template void PointMovementGenerator<Player>::Initialize(Player&); -template bool PointMovementGenerator<Player>::Update(Player &, const uint32 &diff); -template void PointMovementGenerator<Player>::MovementInform(Player&); -template void PointMovementGenerator<Player>::Finalize(Player&); - -template void PointMovementGenerator<Creature>::Initialize(Creature&); -template bool PointMovementGenerator<Creature>::Update(Creature&, const uint32 &diff); -template void PointMovementGenerator<Creature>::Finalize(Creature&); - -void AssistanceMovementGenerator::Finalize(Unit &unit) -{ - unit.ToCreature()->SetNoCallAssistance(false); - unit.ToCreature()->CallAssistance(); - if (unit.isAlive()) - unit.GetMotionMaster()->MoveSeekAssistanceDistract(sWorld.getConfig(CONFIG_CREATURE_FAMILY_ASSISTANCE_DELAY)); -} - |