diff options
| author | Anubisss <none@none> | 2009-07-12 01:17:04 +0200 |
|---|---|---|
| committer | Anubisss <none@none> | 2009-07-12 01:17:04 +0200 |
| commit | 87213301e7f363abe4ae17c0988fd7262a5feb19 (patch) | |
| tree | fa14c38d9c29b3e3a4c3398d015655b303549676 /src/bindings/scripts/include | |
| parent | 692c927e75c6c9a32d53da8d7f6319508d9b6fb9 (diff) | |
*Merge SD2.
*r1202: Added support for quest 12739(and 12742 to 12750). Patch by ckegg
*And merge a grid searcher from SD2.
--HG--
branch : trunk
Diffstat (limited to 'src/bindings/scripts/include')
| -rw-r--r-- | src/bindings/scripts/include/sc_creature.cpp | 21 | ||||
| -rw-r--r-- | src/bindings/scripts/include/sc_creature.h | 6 |
2 files changed, 27 insertions, 0 deletions
diff --git a/src/bindings/scripts/include/sc_creature.cpp b/src/bindings/scripts/include/sc_creature.cpp index 361385c85a9..159fc4419ba 100644 --- a/src/bindings/scripts/include/sc_creature.cpp +++ b/src/bindings/scripts/include/sc_creature.cpp @@ -742,3 +742,24 @@ void LoadOverridenDBCData() } } } + + +Creature* GetClosestCreatureWithEntry(WorldObject* pSource, uint32 Entry, float MaxSearchRange) +{ + Creature* pCreature = NULL; + + CellPair pair(Trinity::ComputeCellPair(pSource->GetPositionX(), pSource->GetPositionY())); + Cell cell(pair); + cell.data.Part.reserved = ALL_DISTRICT; + cell.SetNoCreate(); + + Trinity::NearestCreatureEntryWithLiveStateInObjectRangeCheck creature_check(*pSource, Entry, true, MaxSearchRange); + Trinity::CreatureLastSearcher<Trinity::NearestCreatureEntryWithLiveStateInObjectRangeCheck> searcher(pSource, pCreature, creature_check); + + TypeContainerVisitor<Trinity::CreatureLastSearcher<Trinity::NearestCreatureEntryWithLiveStateInObjectRangeCheck>, GridTypeMapContainer> creature_searcher(searcher); + + CellLock<GridReadGuard> cell_lock(cell, pair); + cell_lock->Visit(cell_lock, creature_searcher,*(pSource->GetMap())); + + return pCreature; +} diff --git a/src/bindings/scripts/include/sc_creature.h b/src/bindings/scripts/include/sc_creature.h index f145ff09942..13713a56100 100644 --- a/src/bindings/scripts/include/sc_creature.h +++ b/src/bindings/scripts/include/sc_creature.h @@ -243,5 +243,11 @@ struct TRINITY_DLL_DECL BossAI : public ScriptedAI void TeleportCheaters(); }; +// SD2's grid searchers + +//return closest creature alive in grid, with range from pSource +Creature* GetClosestCreatureWithEntry(WorldObject* pSource, uint32 Entry, float MaxSearchRange); + + #endif |
