diff options
| author | Kudlaty <none@none> | 2009-08-16 19:38:18 +0200 |
|---|---|---|
| committer | Kudlaty <none@none> | 2009-08-16 19:38:18 +0200 |
| commit | 81ee07fa2a2ac050e56ed5666892e96997dd17bf (patch) | |
| tree | c28b27d471b782a923b343ef5e8b32113009b3de /src/bindings/scripts/base | |
| parent | ec5515ee49eb10074521812f7f58d9baf4611ce3 (diff) | |
Merge [SD2]
r1313 Implement new class SystemMgr for storage and management of script data.
Move database load to new class and instead use functions in class to retrieve data from storage.
--HG--
branch : trunk
Diffstat (limited to 'src/bindings/scripts/base')
| -rw-r--r-- | src/bindings/scripts/base/escort_ai.cpp | 26 | ||||
| -rw-r--r-- | src/bindings/scripts/base/escort_ai.h | 5 |
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); |
