diff options
author | Neo2003 <none@none> | 2008-10-09 08:42:22 -0500 |
---|---|---|
committer | Neo2003 <none@none> | 2008-10-09 08:42:22 -0500 |
commit | f736567a374e718574763f545b9cdea5d97d9ce0 (patch) | |
tree | 5b0a617c7ef4e5c6bd4aa1df6a9c7afe31757a46 /src/game/HomeMovementGenerator.cpp | |
parent | e3079a1ba63ebe13a19e85db3f4e1e1a392a04ed (diff) |
[svn] * Updated to 6743 and 685
Moved language id used by Arena to a higher place to solve conflicts
Added the empty script folders
--HG--
branch : trunk
rename : 6731-680 => 6743-685
Diffstat (limited to 'src/game/HomeMovementGenerator.cpp')
-rw-r--r-- | src/game/HomeMovementGenerator.cpp | 172 |
1 files changed, 86 insertions, 86 deletions
diff --git a/src/game/HomeMovementGenerator.cpp b/src/game/HomeMovementGenerator.cpp index 281909b68de..79f312d3b8b 100644 --- a/src/game/HomeMovementGenerator.cpp +++ b/src/game/HomeMovementGenerator.cpp @@ -1,86 +1,86 @@ -/* - * Copyright (C) 2005-2008 MaNGOS <http://www.mangosproject.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 "HomeMovementGenerator.h" -#include "Creature.h" -#include "Traveller.h" -#include "MapManager.h" -#include "ObjectAccessor.h" -#include "DestinationHolderImp.h" -#include "ObjectMgr.h" -#include "WorldPacket.h" - -void -HomeMovementGenerator<Creature>::Initialize(Creature & owner) -{ - owner.RemoveUnitMovementFlag(MOVEMENTFLAG_WALK_MODE); - _setTargetLocation(owner); -} - -void -HomeMovementGenerator<Creature>::Reset(Creature &) -{ -} - -void -HomeMovementGenerator<Creature>::_setTargetLocation(Creature & owner) -{ - if( !&owner ) - return; - - if( owner.hasUnitState(UNIT_STAT_ROOT | UNIT_STAT_STUNDED | UNIT_STAT_DISTRACTED) ) - return; - - float x, y, z; - owner.GetRespawnCoord(x, y, z); - - CreatureTraveller traveller(owner); - - uint32 travel_time = i_destinationHolder.SetDestination(traveller, x, y, z); - modifyTravelTime(travel_time); - owner.clearUnitState(UNIT_STAT_ALL_STATE); -} - -bool -HomeMovementGenerator<Creature>::Update(Creature &owner, const uint32& time_diff) -{ - CreatureTraveller traveller( owner); - i_destinationHolder.UpdateTraveller(traveller, time_diff, false); - - if (time_diff > i_travel_timer) - { - owner.AddUnitMovementFlag(MOVEMENTFLAG_WALK_MODE); - - // restore orientation of not moving creature at returning to home - if(owner.GetDefaultMovementType()==IDLE_MOTION_TYPE) - { - if(CreatureData const* data = objmgr.GetCreatureData(owner.GetDBTableGUIDLow())) - { - owner.SetOrientation(data->orientation); - WorldPacket packet; - owner.BuildHeartBeatMsg(&packet); - owner.SendMessageToSet(&packet, false); - } - } - return false; - } - - i_travel_timer -= time_diff; - - return true; -} +/*
+ * Copyright (C) 2005-2008 MaNGOS <http://www.mangosproject.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 "HomeMovementGenerator.h"
+#include "Creature.h"
+#include "Traveller.h"
+#include "MapManager.h"
+#include "ObjectAccessor.h"
+#include "DestinationHolderImp.h"
+#include "ObjectMgr.h"
+#include "WorldPacket.h"
+
+void
+HomeMovementGenerator<Creature>::Initialize(Creature & owner)
+{
+ owner.RemoveUnitMovementFlag(MOVEMENTFLAG_WALK_MODE);
+ _setTargetLocation(owner);
+}
+
+void
+HomeMovementGenerator<Creature>::Reset(Creature &)
+{
+}
+
+void
+HomeMovementGenerator<Creature>::_setTargetLocation(Creature & owner)
+{
+ if( !&owner )
+ return;
+
+ if( owner.hasUnitState(UNIT_STAT_ROOT | UNIT_STAT_STUNNED | UNIT_STAT_DISTRACTED) )
+ return;
+
+ float x, y, z;
+ owner.GetRespawnCoord(x, y, z);
+
+ CreatureTraveller traveller(owner);
+
+ uint32 travel_time = i_destinationHolder.SetDestination(traveller, x, y, z);
+ modifyTravelTime(travel_time);
+ owner.clearUnitState(UNIT_STAT_ALL_STATE);
+}
+
+bool
+HomeMovementGenerator<Creature>::Update(Creature &owner, const uint32& time_diff)
+{
+ CreatureTraveller traveller( owner);
+ i_destinationHolder.UpdateTraveller(traveller, time_diff, false);
+
+ if (time_diff > i_travel_timer)
+ {
+ owner.AddUnitMovementFlag(MOVEMENTFLAG_WALK_MODE);
+
+ // restore orientation of not moving creature at returning to home
+ if(owner.GetDefaultMovementType()==IDLE_MOTION_TYPE)
+ {
+ if(CreatureData const* data = objmgr.GetCreatureData(owner.GetDBTableGUIDLow()))
+ {
+ owner.SetOrientation(data->orientation);
+ WorldPacket packet;
+ owner.BuildHeartBeatMsg(&packet);
+ owner.SendMessageToSet(&packet, false);
+ }
+ }
+ return false;
+ }
+
+ i_travel_timer -= time_diff;
+
+ return true;
+}
|