aboutsummaryrefslogtreecommitdiff
path: root/src/bindings/scripts/base
diff options
context:
space:
mode:
Diffstat (limited to 'src/bindings/scripts/base')
-rw-r--r--src/bindings/scripts/base/escort_ai.cpp26
-rw-r--r--src/bindings/scripts/base/escort_ai.h5
2 files changed, 17 insertions, 14 deletions
diff --git a/src/bindings/scripts/base/escort_ai.cpp b/src/bindings/scripts/base/escort_ai.cpp
index 3f4c8601f90..f4979487d31 100644
--- a/src/bindings/scripts/base/escort_ai.cpp
+++ b/src/bindings/scripts/base/escort_ai.cpp
@@ -11,6 +11,7 @@ EndScriptData */
#include "precompiled.h"
#include "escort_ai.h"
+#include "../system/system.h"
enum
{
@@ -18,8 +19,6 @@ enum
POINT_HOME = 0xFFFFFE
};
-extern std::list<PointMovement> PointMovementList;
-
void npc_escortAI::AttackStart(Unit* pWho)
{
if (!pWho)
@@ -218,6 +217,11 @@ void npc_escortAI::UpdateAI(const uint32 uiDiff)
m_uiPlayerCheckTimer -= uiDiff;
}
+ UpdateEscortAI(uiDiff);
+}
+
+void npc_escortAI::UpdateEscortAI(const uint32 uiDiff)
+{
if (CanMelee && UpdateVictim())
DoMeleeAttackIfReady();
}
@@ -308,17 +312,17 @@ void npc_escortAI::AddWaypoint(uint32 id, float x, float y, float z, uint32 Wait
void npc_escortAI::FillPointMovementListForCreature()
{
- UNORDERED_MAP<uint32, std::vector<PointMovement> >::iterator pPointsEntries = PointMovementMap.find(m_creature->GetEntry());
+ std::vector<ScriptPointMove> const &pPointsEntries = pSystemMgr.GetPointMoveList(m_creature->GetEntry());
- if (pPointsEntries != PointMovementMap.end())
- {
- std::vector<PointMovement>::iterator itr;
+ if (pPointsEntries.empty())
+ return;
- for (itr = pPointsEntries->second.begin(); itr != pPointsEntries->second.end(); ++itr)
- {
- Escort_Waypoint pPoint(itr->m_uiPointId,itr->m_fX,itr->m_fY,itr->m_fZ,itr->m_uiWaitTime);
- WaypointList.push_back(pPoint);
- }
+ std::vector<ScriptPointMove>::const_iterator itr;
+
+ for (itr = pPointsEntries.begin(); itr != pPointsEntries.end(); ++itr)
+ {
+ Escort_Waypoint pPoint(itr->uiPointId, itr->fX, itr->fY, itr->fZ, itr->uiWaitTime);
+ WaypointList.push_back(pPoint);
}
}
diff --git a/src/bindings/scripts/base/escort_ai.h b/src/bindings/scripts/base/escort_ai.h
index 8ce82eb370a..5d27aebfec6 100644
--- a/src/bindings/scripts/base/escort_ai.h
+++ b/src/bindings/scripts/base/escort_ai.h
@@ -7,8 +7,6 @@
#define DEFAULT_MAX_PLAYER_DISTANCE 50
-extern UNORDERED_MAP<uint32, std::vector<PointMovement> > PointMovementMap;
-
struct Escort_Waypoint
{
Escort_Waypoint(uint32 _id, float _x, float _y, float _z, uint32 _w)
@@ -50,7 +48,8 @@ struct TRINITY_DLL_DECL npc_escortAI : public ScriptedAI
void EnterEvadeMode();
- void UpdateAI(const uint32);
+ void UpdateAI(const uint32); //the "internal" update, calls UpdateEscortAI()
+ virtual void UpdateEscortAI(const uint32); //used when it's needed to add code in update (abilities, scripted events, etc)
void MovementInform(uint32, uint32);