aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bindings/scripts/scripts/zone/ghostlands/ghostlands.cpp61
1 files changed, 7 insertions, 54 deletions
diff --git a/src/bindings/scripts/scripts/zone/ghostlands/ghostlands.cpp b/src/bindings/scripts/scripts/zone/ghostlands/ghostlands.cpp
index 1eff1d97606..bf172c1566b 100644
--- a/src/bindings/scripts/scripts/zone/ghostlands/ghostlands.cpp
+++ b/src/bindings/scripts/scripts/zone/ghostlands/ghostlands.cpp
@@ -161,7 +161,8 @@ struct TRINITY_DLL_DECL npc_ranger_lilathaAI : public npc_escortAI
case 0:
{
m_creature->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
- setCage(true);
+ GameObject* Cage = FindGameObject(GO_CAGE);
+ Cage->SetGoState(0);
DoSay(SAY_START, LANG_UNIVERSAL, player);
break;
}
@@ -196,7 +197,8 @@ struct TRINITY_DLL_DECL npc_ranger_lilathaAI : public npc_escortAI
case 33:
m_creature->SetOrientation(5.858011);
DoSay(SAY_END2, LANG_UNIVERSAL, player);
- captainAnswer();
+ Unit* CaptainHelios = FindCreature(NPC_CAPTAIN_HELIOS, 50);
+ ((Creature*)CaptainHelios)->Say(CAPTAIN_ANSWER, LANG_UNIVERSAL, PlayerGUID);
break;
}
}
@@ -207,7 +209,9 @@ struct TRINITY_DLL_DECL npc_ranger_lilathaAI : public npc_escortAI
{
if (!IsBeingEscorted)
m_creature->setFaction(1602);
- setCage(false);
+
+ GameObject* Cage = FindGameObject(GO_CAGE);
+ Cage->SetGoState(1);
}
void JustDied(Unit* killer)
@@ -224,57 +228,6 @@ struct TRINITY_DLL_DECL npc_ranger_lilathaAI : public npc_escortAI
{
npc_escortAI::UpdateAI(diff);
}
-
- void setCage(bool open)
- {
- CellPair pair(Trinity::ComputeCellPair(m_creature->GetPositionX(), m_creature->GetPositionY()));
- Cell cell(pair);
- cell.data.Part.reserved = ALL_DISTRICT;
- cell.SetNoCreate();
-
- Trinity::AllGameObjectsWithEntryInGrid go_check(GO_CAGE);
- Trinity::GameObjectListSearcher<Trinity::AllGameObjectsWithEntryInGrid> go_search(CageList, go_check);
- TypeContainerVisitor
- <Trinity::GameObjectListSearcher<Trinity::AllGameObjectsWithEntryInGrid>, GridTypeMapContainer> go_visit(go_search);
- CellLock<GridReadGuard> cell_lock(cell, pair);
- cell_lock->Visit(cell_lock, go_visit, *(m_creature->GetMap()));
-
- if (!CageList.empty())
- {
- for(std::list<GameObject*>::iterator itr = CageList.begin(); itr != CageList.end(); ++itr)
- {
- if( open )
- (*itr)->SetGoState(0);
- else
- (*itr)->SetGoState(1);
- }
- } else error_log("SD2 ERROR: CageList is empty!");
- }
-
- void captainAnswer()
- {
- CellPair pair(Trinity::ComputeCellPair(m_creature->GetPositionX(), m_creature->GetPositionY()));
- Cell cell(pair);
- cell.data.Part.reserved = ALL_DISTRICT;
- cell.SetNoCreate();
-
- std::list<Creature*> NPCList;
-
- Trinity::AllCreaturesOfEntryInRange check(m_creature, NPC_CAPTAIN_HELIOS, 100);
- Trinity::CreatureListSearcher<Trinity::AllCreaturesOfEntryInRange> searcher(NPCList, check);
- TypeContainerVisitor<Trinity::CreatureListSearcher<Trinity::AllCreaturesOfEntryInRange>, GridTypeMapContainer> visitor(searcher);
-
- CellLock<GridReadGuard> cell_lock(cell, pair);
- cell_lock->Visit(cell_lock, visitor, *(m_creature->GetMap()));
-
- if (!NPCList.empty())
- {
- for(std::list<Creature*>::iterator itr = NPCList.begin(); itr != NPCList.end(); ++itr)
- {
- (*itr)->Say(CAPTAIN_ANSWER, LANG_UNIVERSAL, PlayerGUID);
- }
- }else error_log("SD2 ERROR: Captain Helios not found!");
- }
};
bool QuestAccept_npc_ranger_lilatha(Player* player, Creature* creature, Quest const* quest)