AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
InstanceScript Class Reference

#include "InstanceScript.h"

Inheritance diagram for InstanceScript:
ZoneScript instance_ahnkahet::instance_ahnkahet_InstanceScript instance_arcatraz::instance_arcatraz_InstanceMapScript instance_auchenai_crypts::instance_auchenai_crypts_InstanceMapScript instance_azjol_nerub::instance_azjol_nerub_InstanceScript instance_black_temple::instance_black_temple_InstanceMapScript instance_blackfathom_deeps::instance_blackfathom_deeps_InstanceMapScript instance_blackrock_depths instance_blackrock_spire instance_blackwing_lair instance_blood_furnace::instance_blood_furnace_InstanceMapScript instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript instance_deadmines::instance_deadmines_InstanceMapScript instance_dire_maul::instance_dire_maul_InstanceMapScript instance_drak_tharon_keep instance_eye_of_eternity instance_forge_of_souls::instance_forge_of_souls_InstanceScript instance_gnomeregan::instance_gnomeregan_InstanceMapScript instance_gruuls_lair::instance_gruuls_lair_InstanceMapScript instance_gundrak::instance_gundrak_InstanceMapScript instance_halls_of_lightning::instance_halls_of_lightning_InstanceMapScript instance_halls_of_reflection instance_halls_of_stone::instance_halls_of_stone_InstanceMapScript instance_hellfire_ramparts::instance_hellfire_ramparts_InstanceMapScript instance_hyjal::instance_mount_hyjal_InstanceMapScript instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript instance_karazhan::instance_karazhan_InstanceMapScript instance_magisters_terrace::instance_magisters_terrace_InstanceMapScript instance_magtheridons_lair::instance_magtheridons_lair_InstanceMapScript instance_mana_tombs::instance_mana_tombs_InstanceMapScript instance_maraudon::instance_maraudon_InstanceMapScript instance_mechanar::instance_mechanar_InstanceMapScript instance_molten_core instance_naxxramas instance_nexus::instance_nexus_InstanceMapScript instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript instance_oculus::instance_oculus_InstanceMapScript instance_old_hillsbrad::instance_old_hillsbrad_InstanceMapScript instance_onyxias_lair::instance_onyxias_lair_InstanceMapScript instance_pit_of_saron::instance_pit_of_saron_InstanceScript instance_ragefire_chasm::instance_ragefire_chasm_InstanceMapScript instance_razorfen_downs::instance_razorfen_downs_InstanceMapScript instance_razorfen_kraul::instance_razorfen_kraul_InstanceMapScript instance_ruby_sanctum::instance_ruby_sanctum_InstanceMapScript instance_ruins_of_ahnqiraj::instance_ruins_of_ahnqiraj_InstanceMapScript instance_scarlet_monastery::instance_scarlet_monastery_InstanceMapScript instance_scholomance::instance_scholomance_InstanceMapScript instance_serpent_shrine::instance_serpentshrine_cavern_InstanceMapScript instance_sethekk_halls::instance_sethekk_halls_InstanceMapScript instance_shadow_labyrinth::instance_shadow_labyrinth_InstanceMapScript instance_shadowfang_keep::instance_shadowfang_keep_InstanceMapScript instance_shattered_halls::instance_shattered_halls_InstanceMapScript instance_steam_vault::instance_steam_vault_InstanceMapScript instance_stratholme::instance_stratholme_InstanceMapScript instance_sunken_temple::instance_sunken_temple_InstanceMapScript instance_sunwell_plateau::instance_sunwell_plateau_InstanceMapScript instance_temple_of_ahnqiraj::instance_temple_of_ahnqiraj_InstanceMapScript instance_the_black_morass::instance_the_black_morass_InstanceMapScript instance_the_botanica::instance_the_botanica_InstanceMapScript instance_the_eye::instance_the_eye_InstanceMapScript instance_the_slave_pens::instance_the_slave_pens_InstanceMapScript instance_the_stockade::instance_the_stockade_InstanceMapScript instance_the_underbog::instance_the_underbog_InstanceMapScript instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript instance_trial_of_the_crusader::instance_trial_of_the_crusader_InstanceMapScript instance_uldaman::instance_uldaman_InstanceMapScript instance_ulduar::instance_ulduar_InstanceMapScript instance_utgarde_keep::instance_utgarde_keep_InstanceMapScript instance_utgarde_pinnacle::instance_utgarde_pinnacle_InstanceMapScript instance_vault_of_archavon::instance_vault_of_archavon_InstanceMapScript instance_violet_hold::instance_violet_hold_InstanceMapScript instance_wailing_caverns::instance_wailing_caverns_InstanceMapScript instance_zulaman::instance_zulaman_InstanceMapScript instance_zulfarrak::instance_zulfarrak_InstanceMapScript instance_zulgurub::instance_zulgurub_InstanceMapScript

Public Member Functions

 InstanceScript (Map *map)
 
 ~InstanceScript () override
 
virtual void Initialize ()
 
virtual void Load (char const *data)
 
virtual void CreatureLooted (Creature *, LootType)
 
virtual std::string GetSaveData ()
 
void SaveToDB ()
 
virtual void Update (uint32)
 
virtual bool IsEncounterInProgress () const
 
void OnCreatureCreate (Creature *creature) override
 
void OnCreatureRemove (Creature *creature) override
 
void OnGameObjectCreate (GameObject *go) override
 
void OnGameObjectRemove (GameObject *go) override
 
ObjectGuid GetObjectGuid (uint32 type) const
 
ObjectGuid GetGuidData (uint32 type) const override
 
CreatureGetCreature (uint32 type)
 
GameObjectGetGameObject (uint32 type)
 
virtual void OnPlayerEnter (Player *)
 
virtual void OnPlayerLeave (Player *)
 
virtual void OnPlayerAreaUpdate (Player *, uint32, uint32)
 
virtual void OnPlayerInWaterStateUpdate (Player *, bool)
 
void HandleGameObject (ObjectGuid guid, bool open, GameObject *go=nullptr)
 Open or close a GameObject by GUID.
 
void HandleGameObject (uint32 type, bool open)
 Open or close a GameObject registered via LoadObjectData.
 
void DoUseDoorOrButton (ObjectGuid guid, uint32 withRestoreTime=0, bool useAlternativeState=false)
 
void DoRespawnGameObject (ObjectGuid guid, uint32 timeToDespawn=MINUTE)
 
void DoRespawnGameObject (uint32 type)
 
void DoRespawnCreature (ObjectGuid guid, bool force=false)
 
void DoRespawnCreature (uint32 type, bool force=false)
 
void DoUpdateWorldState (uint32 worldstateId, uint32 worldstateValue)
 
void DoSendNotifyToInstance (char const *format,...)
 
void DoUpdateAchievementCriteria (AchievementCriteriaTypes type, uint32 miscValue1=0, uint32 miscValue2=0, Unit *unit=nullptr)
 
void DoStartTimedAchievement (AchievementCriteriaTimedTypes type, uint32 entry)
 
void DoStopTimedAchievement (AchievementCriteriaTimedTypes type, uint32 entry)
 
void DoRemoveAurasDueToSpellOnPlayers (uint32 spell)
 
void DoCastSpellOnPlayers (uint32 spell)
 
void DoCastSpellOnPlayer (Player *player, uint32 spell, bool includePets, bool includeControlled)
 
bool ServerAllowsTwoSideGroups ()
 
virtual bool SetBossState (uint32 id, EncounterState state)
 
EncounterState GetBossState (uint32 id) const
 
CreatureBoundary const * GetBossBoundary (uint32 id) const
 
BossInfo const * GetBossInfo (uint32 id) const
 
uint32 GetPersistentData (uint32 index) const
 
void StorePersistentData (uint32 index, uint32 data)
 
virtual bool CheckAchievementCriteriaMeet (uint32, Player const *, Unit const *=nullptr, uint32=0)
 
virtual bool CheckRequiredBosses (uint32, Player const *=nullptr) const
 
void SetCompletedEncountersMask (uint32 newMask, bool save)
 
uint32 GetCompletedEncounterMask () const
 
void SendEncounterUnit (uint32 type, Unit *unit=nullptr, uint8 param1=0, uint8 param2=0)
 
virtual void FillInitialWorldStates (WorldPackets::WorldState::InitWorldStates &)
 
uint32 GetEncounterCount () const
 
void MarkAreaTriggerDone (uint32 id)
 
void ResetAreaTriggerDone (uint32 id)
 
bool IsAreaTriggerDone (uint32 id) const
 
virtual void DoAction (int32)
 
void DoForAllMinions (uint32 id, std::function< void(Creature *)> exec)
 
void StoreGameObjectState (ObjectGuid::LowType spawnId, uint8 state)
 
uint8 GetStoredGameObjectState (ObjectGuid::LowType spawnId) const
 
void LoadInstanceSavedGameobjectStateData ()
 
bool IsBossDone (uint32 bossId) const
 
bool AllBossesDone () const
 
bool AllBossesDone (std::initializer_list< uint32 > bossIds) const
 
TeamId GetTeamIdInInstance () const
 
void SetTeamIdInInstance (TeamId teamId)
 
bool IsTwoFactionInstance () const
 
- Public Member Functions inherited from ZoneScript
 ZoneScript ()
 
virtual ~ZoneScript ()
 
virtual uint32 GetCreatureEntry (ObjectGuid::LowType, CreatureData const *data)
 
virtual uint32 GetGameObjectEntry (ObjectGuid::LowType, uint32 entry)
 
virtual void OnUnitDeath (Unit *)
 
virtual void OnCreatureEvade (Creature *)
 
virtual void SetGuidData (uint32, ObjectGuid)
 
virtual uint64 GetData64 (uint32) const
 
virtual void SetData64 (uint32, uint64)
 
virtual uint32 GetData (uint32) const
 
virtual void SetData (uint32, uint32)
 
virtual void ProcessEvent (WorldObject *, uint32)
 

Static Public Member Functions

static std::string GetBossStateName (uint8 state)
 

Public Attributes

Mapinstance
 
TaskScheduler scheduler
 

Protected Member Functions

void SetHeaders (std::string const &dataHeaders)
 
void SetBossNumber (uint32 number)
 
void SetPersistentDataCount (uint32 number)
 
void LoadBossBoundaries (BossBoundaryData const &data)
 
void LoadDoorData (DoorData const *data)
 
void LoadMinionData (MinionData const *data)
 
void LoadObjectData (ObjectData const *creatureData, ObjectData const *gameObjectData)
 
void LoadSummonData (ObjectData const *data)
 
void SetSummoner (Creature *creature)
 
void AddObject (Creature *obj, bool add=true)
 
void RemoveObject (Creature *obj)
 
void AddObject (GameObject *obj, bool add=true)
 
void RemoveObject (GameObject *obj)
 
void AddObject (WorldObject *obj, uint32 type, bool add=true)
 
void RemoveObject (WorldObject *obj, uint32 type)
 
void AddDoor (GameObject *door, bool add=true)
 
void RemoveDoor (GameObject *door)
 
void AddMinion (Creature *minion, bool add=true)
 
void RemoveMinion (Creature *minion)
 
void UpdateDoorState (GameObject *door)
 
void UpdateMinionState (Creature *minion, EncounterState state)
 
bool ReadSaveDataHeaders (std::istringstream &data)
 
void ReadSaveDataBossStates (std::istringstream &data)
 
void ReadSavePersistentData (std::istringstream &data)
 
virtual void ReadSaveDataMore (std::istringstream &)
 
void WriteSaveDataHeaders (std::ostringstream &data)
 
void WriteSaveDataBossStates (std::ostringstream &data)
 
void WritePersistentData (std::ostringstream &data)
 
virtual void WriteSaveDataMore (std::ostringstream &)
 

Static Private Member Functions

static void LoadObjectData (ObjectData const *creatureData, ObjectInfoMap &objectInfo)
 

Private Attributes

std::vector< char > headers
 
std::vector< BossInfobosses
 
std::vector< uint32persistentData
 
DoorInfoMap doors
 
MinionInfoMap minions
 
ObjectInfoMap _creatureInfo
 
ObjectInfoMap _gameObjectInfo
 
ObjectInfoMap _summonInfo
 
ObjectGuidMap _objectGuids
 
ObjectStateMap _objectStateMap
 
uint32 completedEncounters
 
TeamId _teamIdInInstance
 
std::unordered_set< uint32_activatedAreaTriggers
 

Detailed Description

Constructor & Destructor Documentation

◆ InstanceScript()

InstanceScript::InstanceScript ( Map map)
inlineexplicit
@ TEAM_NEUTRAL
Definition SharedDefines.h:750
uint32 completedEncounters
Definition InstanceScript.h:356
TeamId _teamIdInInstance
Definition InstanceScript.h:357
Map * instance
Definition InstanceScript.h:149

◆ ~InstanceScript()

InstanceScript::~InstanceScript ( )
inlineoverride
147{}

Member Function Documentation

◆ AddDoor()

void InstanceScript::AddDoor ( GameObject door,
bool  add = true 
)
protected
337{
338 DoorInfoMapBounds range = doors.equal_range(door->GetEntry());
339 if (range.first == range.second)
340 return;
341
342 for (; range.first != range.second; ++range.first)
343 {
344 DoorInfo const& data = range.first->second;
345
346 if (add)
347 {
348 data.bossInfo->door[data.type].insert(door);
349 }
350 else
351 data.bossInfo->door[data.type].erase(door);
352 }
353
354 if (add)
355 UpdateDoorState(door);
356}
std::pair< DoorInfoMap::const_iterator, DoorInfoMap::const_iterator > DoorInfoMapBounds
Definition InstanceScript.h:135
DoorInfoMap doors
Definition InstanceScript.h:349
void UpdateDoorState(GameObject *door)
Definition InstanceScript.cpp:257
uint32 GetEntry() const
Definition Object.h:117
DoorSet door[MAX_DOOR_TYPES]
Definition InstanceScript.h:115
Definition InstanceScript.h:121
BossInfo * bossInfo
Definition InstanceScript.h:124
DoorType type
Definition InstanceScript.h:125

References DoorInfo::bossInfo, BossInfo::door, doors, Object::GetEntry(), DoorInfo::type, and UpdateDoorState().

Referenced by instance_gundrak::instance_gundrak_InstanceMapScript::OnGameObjectCreate(), instance_nexus::instance_nexus_InstanceMapScript::OnGameObjectCreate(), instance_mechanar::instance_mechanar_InstanceMapScript::OnGameObjectCreate(), OnGameObjectCreate(), instance_ruby_sanctum::instance_ruby_sanctum_InstanceMapScript::OnGameObjectCreate(), instance_drak_tharon_keep::OnGameObjectCreate(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::OnGameObjectCreate(), instance_magtheridons_lair::instance_magtheridons_lair_InstanceMapScript::OnGameObjectCreate(), instance_arcatraz::instance_arcatraz_InstanceMapScript::OnGameObjectCreate(), and RemoveDoor().

◆ AddMinion()

void InstanceScript::AddMinion ( Creature minion,
bool  add = true 
)
protected
364{
365 MinionInfoMap::iterator itr = minions.find(minion->GetEntry());
366 if (itr == minions.end())
367 return;
368
369 if (add)
370 itr->second.bossInfo->minion.insert(minion);
371 else
372 itr->second.bossInfo->minion.erase(minion);
373}
MinionInfoMap minions
Definition InstanceScript.h:350

References Object::GetEntry(), and minions.

Referenced by OnCreatureCreate(), instance_blackrock_spire::OnCreatureCreate(), instance_molten_core::OnCreatureCreate(), instance_magtheridons_lair::instance_magtheridons_lair_InstanceMapScript::OnCreatureCreate(), and RemoveMinion().

◆ AddObject() [1/3]

void InstanceScript::AddObject ( Creature obj,
bool  add = true 
)
protected
288{
289 ObjectInfoMap::const_iterator j = _creatureInfo.find(obj->GetEntry());
290 if (j != _creatureInfo.end())
291 {
292 AddObject(obj, j->second, add);
293 }
294}
ObjectInfoMap _creatureInfo
Definition InstanceScript.h:351
void AddObject(Creature *obj, bool add=true)
Definition InstanceScript.cpp:287

References _creatureInfo, AddObject(), and Object::GetEntry().

Referenced by AddObject(), AddObject(), OnCreatureCreate(), OnGameObjectCreate(), RemoveObject(), RemoveObject(), and RemoveObject().

◆ AddObject() [2/3]

void InstanceScript::AddObject ( GameObject obj,
bool  add = true 
)
protected
302{
303 ObjectInfoMap::const_iterator j = _gameObjectInfo.find(obj->GetEntry());
304 if (j != _gameObjectInfo.end())
305 {
306 AddObject(obj, j->second, add);
307 }
308}
ObjectInfoMap _gameObjectInfo
Definition InstanceScript.h:352

References _gameObjectInfo, AddObject(), and Object::GetEntry().

◆ AddObject() [3/3]

void InstanceScript::AddObject ( WorldObject obj,
uint32  type,
bool  add = true 
)
protected
316{
317 if (add)
318 {
319 _objectGuids[type] = obj->GetGUID();
320 }
321 else
322 {
323 ObjectGuidMap::iterator i = _objectGuids.find(type);
324 if (i != _objectGuids.end() && i->second == obj->GetGUID())
325 {
326 _objectGuids.erase(i);
327 }
328 }
329}
ObjectGuidMap _objectGuids
Definition InstanceScript.h:354
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:114

References _objectGuids, and Object::GetGUID().

◆ AllBossesDone() [1/2]

◆ AllBossesDone() [2/2]

bool InstanceScript::AllBossesDone ( std::initializer_list< uint32 bossIds) const
823{
824 for (auto const& bossId : bossIds)
825 if (!IsBossDone(bossId))
826 return false;
827
828 return true;
829}
bool IsBossDone(uint32 bossId) const
Definition InstanceScript.h:295

References IsBossDone().

◆ CheckAchievementCriteriaMeet()

bool InstanceScript::CheckAchievementCriteriaMeet ( uint32  criteria_id,
Player const *  ,
Unit const *  = nullptr,
uint32  = 0 
)
virtual

Reimplemented in instance_onyxias_lair::instance_onyxias_lair_InstanceMapScript, instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript, instance_trial_of_the_crusader::instance_trial_of_the_crusader_InstanceMapScript, instance_forge_of_souls::instance_forge_of_souls_InstanceScript, instance_pit_of_saron::instance_pit_of_saron_InstanceScript, instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript, instance_naxxramas, instance_halls_of_lightning::instance_halls_of_lightning_InstanceMapScript, instance_halls_of_stone::instance_halls_of_stone_InstanceMapScript, instance_ulduar::instance_ulduar_InstanceMapScript, instance_utgarde_keep::instance_utgarde_keep_InstanceMapScript, instance_utgarde_pinnacle::instance_utgarde_pinnacle_InstanceMapScript, instance_vault_of_archavon::instance_vault_of_archavon_InstanceMapScript, instance_violet_hold::instance_violet_hold_InstanceMapScript, instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript, instance_eye_of_eternity, and instance_oculus::instance_oculus_InstanceMapScript.

737{
738 LOG_ERROR("scripts.ai", "Achievement system call InstanceScript::CheckAchievementCriteriaMeet but instance script for map {} not have implementation for achievement criteria {}",
739 instance->GetId(), criteria_id);
740 return false;
741}
#define LOG_ERROR(filterType__,...)
Definition Log.h:158
uint32 GetId() const
Definition Map.h:230

References Map::GetId(), instance, and LOG_ERROR.

Referenced by AchievementCriteriaData::Meets().

◆ CheckRequiredBosses()

◆ CreatureLooted()

virtual void InstanceScript::CreatureLooted ( Creature ,
LootType   
)
inlinevirtual

Reimplemented in instance_blackrock_spire.

158{}

◆ DoAction()

◆ DoCastSpellOnPlayer()

void InstanceScript::DoCastSpellOnPlayer ( Player player,
uint32  spell,
bool  includePets,
bool  includeControlled 
)
708{
709 if (!player)
710 return;
711
712 player->CastSpell(player, spell, true);
713
714 if (!includePets)
715 return;
716
717 for (uint8 itr2 = 0; itr2 < MAX_SUMMON_SLOT; ++itr2)
718 {
719 ObjectGuid summonGUID = player->m_SummonSlot[itr2];
720 if (!summonGUID.IsEmpty())
721 if (Creature* summon = instance->GetCreature(summonGUID))
722 summon->CastSpell(player, spell, true);
723 }
724
725 if (!includeControlled)
726 return;
727
728 for (auto itr2 = player->m_Controlled.begin(); itr2 != player->m_Controlled.end(); ++itr2)
729 {
730 if (Unit* controlled = *itr2)
731 if (controlled->IsInWorld() && controlled->IsCreature())
732 controlled->CastSpell(player, spell, true);
733 }
734}
std::uint8_t uint8
Definition Define.h:109
@ MAX_SUMMON_SLOT
Definition SharedDefines.h:3554
Definition Creature.h:47
Creature * GetCreature(ObjectGuid const &guid)
Definition Map.cpp:2336
Definition ObjectGuid.h:118
bool IsEmpty() const
Definition ObjectGuid.h:161
Definition Unit.h:664
ControlSet m_Controlled
Definition Unit.h:2074
SpellCastResult CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=nullptr, AuraEffect const *triggeredByAura=nullptr, ObjectGuid originalCaster=ObjectGuid::Empty)
Definition Unit.cpp:1350
ObjectGuid m_SummonSlot[MAX_SUMMON_SLOT]
Definition Unit.h:2078

References Unit::CastSpell(), Map::GetCreature(), instance, ObjectGuid::IsEmpty(), Unit::m_Controlled, Unit::m_SummonSlot, and MAX_SUMMON_SLOT.

Referenced by instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::OnPlayerEnter().

◆ DoCastSpellOnPlayers()

◆ DoForAllMinions()

void InstanceScript::DoForAllMinions ( uint32  id,
std::function< void(Creature *)>  exec 
)
443{
444 BossInfo* bossInfo = &bosses[id];
445 MinionSet listCopy = bossInfo->minion;
446
447 for (auto const& minion : listCopy)
448 {
449 if (minion)
450 {
451 exec(minion);
452 }
453 }
454}
std::set< Creature * > MinionSet
Definition InstanceScript.h:42
Definition InstanceScript.h:112
MinionSet minion
Definition InstanceScript.h:116

References bosses, and BossInfo::minion.

Referenced by boss_fathomlord_karathress::DoAction(), boss_hydromancer_thespia::JustDied(), boss_warlord_kalithresh::JustDied(), boss_fathomlord_karathress::JustEngagedWith(), boss_magtheridon::JustEngagedWith(), boss_fathomlord_karathress::JustReachedHome(), boss_fathomlord_karathress::Reset(), and boss_warlord_kalithresh::Reset().

◆ DoRemoveAurasDueToSpellOnPlayers()

void InstanceScript::DoRemoveAurasDueToSpellOnPlayers ( uint32  spell)
689{
690 instance->DoForAllPlayers([&](Player* player)
691 {
692 player->RemoveAurasDueToSpell(spell);
693 if (Pet* pet = player->GetPet())
694 pet->RemoveAurasDueToSpell(spell);
695 });
696}
Definition Pet.h:41
Pet * GetPet() const
Definition Player.cpp:8946
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint8 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
Definition Unit.cpp:5157

References Map::DoForAllPlayers(), Player::GetPet(), instance, and Unit::RemoveAurasDueToSpell().

Referenced by boss_blood_queen_lana_thel::boss_blood_queen_lana_thelAI::CleanAuras(), boss_sartharion_dragonAI::ClearInstance(), boss_sartharion_vesperon::ClearInstance(), boss_kalecgos::ClearPlayerAuras(), boss_hodir::DamageTaken(), boss_twin_valkyrAI::DoAction(), instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::DoAction(), boss_amanitar::EnterEvadeMode(), boss_sartharion_tenebron::ExecuteEvent(), npc_echo_of_medivh::HandlePieceJustDied(), boss_valithria_dreamwalker::boss_valithria_dreamwalkerAI::HealReceived(), boss_vexallus::JustDied(), boss_amanitar::JustDied(), boss_twin_valkyrAI::JustDied(), boss_deathbringer_saurfang::boss_deathbringer_saurfangAI::JustDied(), boss_rotface::boss_rotfaceAI::JustDied(), boss_sindragosa::boss_sindragosaAI::JustDied(), boss_toravon::boss_toravonAI::JustDied(), boss_moroes::JustDied(), boss_felmyst::JustDied(), boss_buru::JustDied(), boss_thaddius::boss_thaddiusAI::JustDied(), boss_deathbringer_saurfang::boss_deathbringer_saurfangAI::JustEngagedWith(), boss_professor_putricide::boss_professor_putricideAI::JustEngagedWith(), boss_professor_putricide::boss_professor_putricideAI::JustReachedHome(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::OnPlayerEnter(), instance_stratholme::instance_stratholme_InstanceMapScript::OnUnitDeath(), boss_baroness_anastari::boss_baroness_anastariAI::Reset(), boss_felmyst::Reset(), boss_sartharion::Reset(), boss_deathbringer_saurfang::boss_deathbringer_saurfangAI::Reset(), boss_thaddius::boss_thaddiusAI::Reset(), boss_hodir::Reset(), boss_yoggsaron_sara::Reset(), instance_blackwing_lair::SetData(), instance_karazhan::instance_karazhan_InstanceMapScript::SetData(), npc_echo_of_medivh::sGossipSelect(), boss_sartharion_vesperon::SummonedCreatureDies(), instance_stratholme::instance_stratholme_InstanceMapScript::Update(), instance_shattered_halls::instance_shattered_halls_InstanceMapScript::Update(), boss_icehowl::boss_icehowlAI::UpdateAI(), boss_professor_putricide::boss_professor_putricideAI::UpdateAI(), and boss_yoggsaron_sara::UpdateAI().

◆ DoRespawnCreature() [1/2]

void InstanceScript::DoRespawnCreature ( ObjectGuid  guid,
bool  force = false 
)

◆ DoRespawnCreature() [2/2]

void InstanceScript::DoRespawnCreature ( uint32  type,
bool  force = false 
)
619{
620 if (Creature* creature = instance->GetCreature(GetObjectGuid(type)))
621 {
622 creature->Respawn(force);
623 }
624}
ObjectGuid GetObjectGuid(uint32 type) const
Definition InstanceScript.cpp:98

References Map::GetCreature(), GetObjectGuid(), and instance.

◆ DoRespawnGameObject() [1/2]

void InstanceScript::DoRespawnGameObject ( ObjectGuid  guid,
uint32  timeToDespawn = MINUTE 
)
579{
580 if (GameObject* go = instance->GetGameObject(uiGuid))
581 {
582 switch (go->GetGoType())
583 {
588 // not expect any of these should ever be handled
589 LOG_ERROR("scripts", "InstanceScript: DoRespawnGameObject can't respawn gameobject entry {}, because type is {}.", go->GetEntry(), go->GetGoType());
590 return;
591 default:
592 break;
593 }
594
595 if (go->isSpawned())
596 return;
597
598 go->SetRespawnTime(uiTimeToDespawn);
599 }
600 else
601 LOG_DEBUG("scripts", "InstanceScript: DoRespawnGameObject failed");
602}
#define LOG_DEBUG(filterType__,...)
Definition Log.h:170
@ GAMEOBJECT_TYPE_BUTTON
Definition SharedDefines.h:1567
@ GAMEOBJECT_TYPE_TRAP
Definition SharedDefines.h:1572
@ GAMEOBJECT_TYPE_FISHINGNODE
Definition SharedDefines.h:1583
@ GAMEOBJECT_TYPE_DOOR
Definition SharedDefines.h:1566
Definition GameObject.h:120
GameObject * GetGameObject(ObjectGuid const &guid)
Definition Map.cpp:2341

References GAMEOBJECT_TYPE_BUTTON, GAMEOBJECT_TYPE_DOOR, GAMEOBJECT_TYPE_FISHINGNODE, GAMEOBJECT_TYPE_TRAP, Map::GetGameObject(), instance, LOG_DEBUG, and LOG_ERROR.

Referenced by npc_echo_of_medivh::HandlePieceJustDied(), instance_blood_furnace::instance_blood_furnace_InstanceMapScript::SetBossState(), instance_blackrock_depths::SetData(), instance_blackwing_lair::SetData(), instance_karazhan::instance_karazhan_InstanceMapScript::SetData(), and instance_oculus::instance_oculus_InstanceMapScript::SetData().

◆ DoRespawnGameObject() [2/2]

void InstanceScript::DoRespawnGameObject ( uint32  type)
605{
607 go->Respawn();
608}

References Map::GetGameObject(), GetObjectGuid(), and instance.

◆ DoSendNotifyToInstance()

void InstanceScript::DoSendNotifyToInstance ( char const *  format,
  ... 
)
644{
645 if (!instance->GetPlayers().IsEmpty())
646 {
647 va_list ap;
648 va_start(ap, format);
649 char buff[1024];
650 vsnprintf(buff, 1024, format, ap);
651 va_end(ap);
652
653 instance->DoForAllPlayers([&, buff](Player* player)
654 {
655 ChatHandler(player->GetSession()).SendNotification("{}", buff);
656 });
657 }
658}
Definition Chat.h:37
void SendNotification(std::string_view str)
Definition Chat.cpp:105
bool IsEmpty() const
Definition LinkedList.h:97
PlayerList const & GetPlayers() const
Definition Map.h:326
WorldSession * GetSession() const
Definition Player.h:2019

References Map::DoForAllPlayers(), Map::GetPlayers(), Player::GetSession(), instance, LinkedListHead::IsEmpty(), and ChatHandler::SendNotification().

◆ DoStartTimedAchievement()

◆ DoStopTimedAchievement()

◆ DoUpdateAchievementCriteria()

◆ DoUpdateWorldState()

void InstanceScript::DoUpdateWorldState ( uint32  worldstateId,
uint32  worldstateValue 
)
627{
628 Map::PlayerList const& lPlayers = instance->GetPlayers();
629
630 if (!lPlayers.IsEmpty())
631 {
632 for (Map::PlayerList::const_iterator itr = lPlayers.begin(); itr != lPlayers.end(); ++itr)
633 if (Player* player = itr->GetSource())
634 player->SendUpdateWorldState(uiStateId, uiStateData);
635 }
636 else
637 {
638 LOG_DEBUG("scripts.ai", "DoUpdateWorldState attempt send data but no players in map.");
639 }
640}
Definition LinkedList.h:139
Definition MapRefMgr.h:26
iterator begin()
Definition MapRefMgr.h:36
iterator end()
Definition MapRefMgr.h:37

References MapRefMgr::begin(), MapRefMgr::end(), Map::GetPlayers(), instance, LinkedListHead::IsEmpty(), and LOG_DEBUG.

Referenced by instance_zulaman::instance_zulaman_InstanceMapScript::DoAction(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::HandleDropAttempt(), spell_halion_twilight_division::HandleDummy(), instance_halls_of_reflection::HandleWaveWipe(), instance_violet_hold::instance_violet_hold_InstanceMapScript::InstanceCleanup(), instance_ulduar::instance_ulduar_InstanceMapScript::Load(), instance_hyjal::instance_mount_hyjal_InstanceMapScript::OnCreatureCreate(), instance_hyjal::instance_mount_hyjal_InstanceMapScript::OnUnitDeath(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::ReadSaveDataMore(), instance_the_black_morass::instance_the_black_morass_InstanceMapScript::ScheduleNextPortal(), instance_hyjal::instance_mount_hyjal_InstanceMapScript::ScheduleWaves(), instance_zulaman::instance_zulaman_InstanceMapScript::SetBossState(), instance_ruby_sanctum::instance_ruby_sanctum_InstanceMapScript::SetBossState(), instance_halls_of_reflection::SetBossState(), instance_hyjal::instance_mount_hyjal_InstanceMapScript::SetData(), instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::SetData(), instance_old_hillsbrad::instance_old_hillsbrad_InstanceMapScript::SetData(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::SetData(), instance_oculus::instance_oculus_InstanceMapScript::SetData(), instance_ulduar::instance_ulduar_InstanceMapScript::SetData(), instance_violet_hold::instance_violet_hold_InstanceMapScript::SetData(), instance_halls_of_reflection::StartNextWave(), instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::Update(), instance_old_hillsbrad::instance_old_hillsbrad_InstanceMapScript::Update(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::Update(), instance_ulduar::instance_ulduar_InstanceMapScript::Update(), instance_violet_hold::instance_violet_hold_InstanceMapScript::Update(), npc_arthas::npc_arthasAI::UpdateAI(), npc_halion_controller::npc_halion_controllerAI::UpdateCorporeality(), and instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::UpdateEventState().

◆ DoUseDoorOrButton()

void InstanceScript::DoUseDoorOrButton ( ObjectGuid  guid,
uint32  withRestoreTime = 0,
bool  useAlternativeState = false 
)
558{
559 if (!uiGuid)
560 return;
561
562 GameObject* go = instance->GetGameObject(uiGuid);
563
564 if (go)
565 {
567 {
568 if (go->getLootState() == GO_READY)
569 go->UseDoorOrButton(uiWithRestoreTime, bUseAlternativeState);
570 else if (go->getLootState() == GO_ACTIVATED)
571 go->ResetDoorOrButton();
572 }
573 else
574 LOG_ERROR("scripts.ai", "SD2: Script call DoUseDoorOrButton, but gameobject entry {} is type {}.", go->GetEntry(), go->GetGoType());
575 }
576}
@ GO_ACTIVATED
Definition GameObject.h:112
@ GO_READY
Definition GameObject.h:111
void UseDoorOrButton(uint32 time_to_restore=0, bool alternative=false, Unit *user=nullptr)
Definition GameObject.cpp:1405
LootState getLootState() const
Definition GameObject.h:223
GameobjectTypes GetGoType() const
Definition GameObject.h:202
void ResetDoorOrButton()
Definition GameObject.cpp:1395

References GAMEOBJECT_TYPE_BUTTON, GAMEOBJECT_TYPE_DOOR, Object::GetEntry(), Map::GetGameObject(), GameObject::GetGoType(), GameObject::getLootState(), GO_ACTIVATED, GO_READY, instance, LOG_ERROR, GameObject::ResetDoorOrButton(), and GameObject::UseDoorOrButton().

Referenced by instance_stratholme::instance_stratholme_InstanceMapScript::gate_delay(), boss_bigbadwolf::JustEngagedWith(), instance_stratholme::instance_stratholme_InstanceMapScript::Update(), and npc_barnes::npc_barnesAI::WaypointReached().

◆ FillInitialWorldStates()

◆ GetBossBoundary()

◆ GetBossInfo()

BossInfo const * InstanceScript::GetBossInfo ( uint32  id) const
inline
255{ return &bosses[id]; }

References bosses.

Referenced by instance_nexus::instance_nexus_InstanceMapScript::SetBossState().

◆ GetBossState()

EncounterState InstanceScript::GetBossState ( uint32  id) const
inline
252{ return id < bosses.size() ? bosses[id].state : TO_BE_DECIDED; }
@ TO_BE_DECIDED
Definition InstanceScript.h:63

References bosses, and TO_BE_DECIDED.

Referenced by BossAI::_EnterEvadeMode(), boss_hakkar::boss_hakkarAI::ApplyHakkarPowerStacks(), boss_wrath_scryer_soccothrates::boss_wrath_scryer_soccothrates(), boss_majordomo::CanAIAttack(), npc_gunship_mage::npc_gunship_mageAI::CanAIAttack(), npc_gunship_rocketeer::npc_gunship_rocketeerAI::CanAIAttack(), npc_high_overlord_saurfang_igb::npc_high_overlord_saurfang_igbAI::CanAIAttack(), npc_muradin_bronzebeard_igb::npc_muradin_bronzebeard_igbAI::CanAIAttack(), npc_igb_ship_crew::npc_igb_ship_crewAI::CanAIAttack(), npc_gunship_boarding_addAI::CanAIAttack(), npc_gunship_gunner::npc_gunship_gunnerAI::CanAIAttack(), boss_keristrasza::CanRemovePrison(), BossAI::CanRespawn(), instance_naxxramas::CheckAchievementCriteriaMeet(), spell_igb_rocket_pack_useable_aura::CheckAreaTarget(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::CheckCrimsonHalls(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::CheckFrostwingHalls(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::CheckLichKingAvailability(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::CheckLowerSpire(), instance_molten_core::CheckMajordomoExecutus(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::CheckPlagueworks(), instance_blackwing_lair::CheckRequiredBosses(), npc_core_rager::DamageTaken(), npc_gunship::npc_gunshipAI::DamageTaken(), boss_freya::DamageTaken(), npc_ulduar_flash_freeze::DamageTaken(), go_suppression_device::DoAction(), instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::DoAction(), boss_blood_queen_lana_thel::boss_blood_queen_lana_thelAI::DoAction(), npc_strangulate_vehicle::npc_strangulate_vehicleAI::DoAction(), npc_crok_scourgebane::npc_crok_scourgebaneAI::DoAction(), boss_hadronox::DoAction(), npc_anub_ar_crusher::DoEngagedWith(), instance_blackrock_spire::Dragonspireroomcheck(), boss_sartharion::EnterEvadeMode(), boss_kologarn::EnterEvadeMode(), SendEncounterUnit::Execute(), boss_sartharion_tenebron::ExecuteEvent(), instance_zulgurub::instance_zulgurub_InstanceMapScript::GetData(), go_chromaggus_lever::GossipHello(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::HandleDropAttempt(), instance_commandscript::HandleInstanceGetBossStateCommand(), spell_serpentshrine_cavern_coilfang_water::HandlePeriodic(), boss_valithria_dreamwalker::boss_valithria_dreamwalkerAI::HealReceived(), boss_yoggsaron_sara::InitFight(), go_suppression_device::InitializeAI(), boss_majordomo::InitializeAI(), boss_priestess_delrissa::InitializeAI(), boss_felmyst::InitializeAI(), boss_flame_leviathan::InitializeAI(), instance_ahnkahet::instance_ahnkahet_InstanceScript::IsAllSpheresActivated(), IsBossDone(), instance_ulduar::instance_ulduar_InstanceMapScript::IsEncounterInProgress(), npc_taldaram_flamesphere::IsSummonedBy(), npc_oculus_drake::npc_oculus_drakeAI::IsSummonedBy(), boss_sartharion_dragonAI::JustDied(), npc_gunship::npc_gunshipAI::JustDied(), boss_sartharion_dragonAI::JustEngagedWith(), boss_hakkar::boss_hakkarAI::JustEngagedWith(), boss_sartharion::JustEngagedWith(), boss_freya::JustEngagedWith(), boss_hodir::JustEngagedWith(), npc_green_dragon_combat_trigger::npc_green_dragon_combat_triggerAI::JustEngagedWith(), boss_blood_queen_lana_thel::boss_blood_queen_lana_thelAI::JustEngagedWith(), boss_majordomo::JustReachedHome(), npc_tirion_fordring_tft::npc_tirion_fordringAI::JustReachedHome(), npc_green_dragon_combat_trigger::npc_green_dragon_combat_triggerAI::JustReachedHome(), npc_akama_illidan::JustReachedHome(), boss_sartharion_dragonAI::JustSummoned(), npc_gluttonous_abomination::npc_gluttonous_abominationAI::JustSummoned(), instance_ulduar::instance_ulduar_InstanceMapScript::Load(), npc_medivh_bm::MoveInLineOfSight(), npc_crok_scourgebane::npc_crok_scourgebaneAI::npc_crok_scourgebaneAI(), npc_ulduar_expedition_commander::npc_ulduar_expedition_commanderAI::npc_ulduar_expedition_commanderAI(), spell_blood_queen_vampiric_bite::OnCast(), instance_blackrock_spire::OnCreatureCreate(), instance_karazhan::instance_karazhan_InstanceMapScript::OnCreatureCreate(), instance_temple_of_ahnqiraj::instance_temple_of_ahnqiraj_InstanceMapScript::OnCreatureCreate(), instance_halls_of_reflection::OnCreatureCreate(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::OnCreatureCreate(), instance_naxxramas::OnCreatureCreate(), instance_ulduar::instance_ulduar_InstanceMapScript::OnCreatureCreate(), instance_black_temple::instance_black_temple_InstanceMapScript::OnCreatureCreate(), instance_gundrak::instance_gundrak_InstanceMapScript::OnGameObjectCreate(), instance_nexus::instance_nexus_InstanceMapScript::OnGameObjectCreate(), instance_ulduar::instance_ulduar_InstanceMapScript::OnGameObjectCreate(), instance_blackrock_spire::OnGameObjectCreate(), instance_blackwing_lair::OnGameObjectCreate(), instance_molten_core::OnGameObjectCreate(), instance_karazhan::instance_karazhan_InstanceMapScript::OnGameObjectCreate(), instance_zulgurub::instance_zulgurub_InstanceMapScript::OnGameObjectCreate(), instance_ahnkahet::instance_ahnkahet_InstanceScript::OnGameObjectCreate(), instance_halls_of_reflection::OnGameObjectCreate(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::OnGameObjectCreate(), instance_naxxramas::OnGameObjectCreate(), instance_black_temple::instance_black_temple_InstanceMapScript::OnGameObjectCreate(), instance_steam_vault::instance_steam_vault_InstanceMapScript::OnGameObjectCreate(), npc_high_overlord_saurfang_icc::OnGossipHello(), npc_muradin_bronzebeard_icc::OnGossipHello(), npc_ulduar_expedition_commander::OnGossipHello(), npc_high_overlord_saurfang_icc::OnGossipSelect(), npc_muradin_bronzebeard_icc::OnGossipSelect(), npc_ulduar_expedition_commander::OnGossipSelect(), instance_ruby_sanctum::instance_ruby_sanctum_InstanceMapScript::OnPlayerEnter(), instance_the_black_morass::instance_the_black_morass_InstanceMapScript::OnPlayerEnter(), instance_ruins_of_ahnqiraj::instance_ruins_of_ahnqiraj_InstanceMapScript::OnPlayerEnter(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::OnPlayerEnter(), at_icc_saurfang_portal::OnTrigger(), at_naxxramas_hub_portal::OnTrigger(), at_blackrock_stadium::OnTrigger(), instance_karazhan::instance_karazhan_InstanceMapScript::OnUnitDeath(), instance_hyjal::instance_mount_hyjal_InstanceMapScript::OnUnitDeath(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::OnUnitDeath(), instance_ulduar::instance_ulduar_InstanceMapScript::OnUnitDeath(), instance_ulduar::instance_ulduar_InstanceMapScript::OpenIfDone(), boss_kologarn::PassengerBoarded(), spell_dreamwalker_nightmare_cloud_aura::PeriodicTick(), instance_blackrock_spire::ProcessEvent(), instance_sethekk_halls::instance_sethekk_halls_InstanceMapScript::ProcessEvent(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::ProcessEvent(), boss_gyth::Reset(), boss_pyroguard_emberseer::Reset(), boss_rend_blackhand::Reset(), npc_core_rager::Reset(), boss_majordomo::Reset(), npc_kiljaeden_controller::Reset(), boss_archimonde::Reset(), npc_medivh_bm::Reset(), npc_xerestrasza::npc_xerestraszaAI::Reset(), boss_general_zarithrian::boss_general_zarithrianAI::Reset(), npc_blood_queen_lana_thel::npc_blood_queen_lana_thelAI::Reset(), boss_blood_queen_lana_thel::boss_blood_queen_lana_thelAI::Reset(), boss_professor_putricide::boss_professor_putricideAI::Reset(), npc_tirion_fordring_tft::npc_tirion_fordringAI::Reset(), npc_green_dragon_combat_trigger::npc_green_dragon_combat_triggerAI::Reset(), npc_arthas_teleport_visual::npc_arthas_teleport_visualAI::Reset(), npc_icc_gauntlet_controller::npc_icc_gauntlet_controllerAI::Reset(), boss_algalon_the_observer::Reset(), boss_flame_leviathan::Reset(), npc_akama_illidan::Reset(), npc_akama_shade::Reset(), instance_hyjal::instance_mount_hyjal_InstanceMapScript::ScheduleWaves(), instance_ruby_sanctum::instance_ruby_sanctum_InstanceMapScript::SetBossState(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::SetBossState(), instance_blackrock_spire::SetData(), instance_hyjal::instance_mount_hyjal_InstanceMapScript::SetData(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::SetData(), instance_magtheridons_lair::instance_magtheridons_lair_InstanceMapScript::SetData(), boss_victor_nefarius::sGossipSelect(), npc_akama_illidan::sGossipSelect(), boss_kologarn::SummonedCreatureDespawn(), instance_molten_core::SummonMajordomoExecutus(), boss_flame_leviathan::TurnGates(), instance_blackrock_spire::Update(), instance_halls_of_reflection::Update(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::Update(), instance_naxxramas::Update(), boss_mandokir::boss_mandokirAI::UpdateAI(), npc_time_rift::UpdateAI(), boss_jedoga_shadowseeker::UpdateAI(), boss_halion::boss_halionAI::UpdateAI(), npc_high_overlord_saurfang_igb::npc_high_overlord_saurfang_igbAI::UpdateAI(), npc_muradin_bronzebeard_igb::npc_muradin_bronzebeard_igbAI::UpdateAI(), npc_gunship_boarding_leader::npc_gunship_boarding_leaderAI::UpdateAI(), npc_gunship_boarding_add::npc_gunship_boarding_add_realAI::UpdateAI(), npc_gunship_mage::npc_gunship_mageAI::UpdateAI(), npc_gunship_gunner::npc_gunship_gunnerAI::UpdateAI(), npc_bone_spike::npc_bone_spikeAI::UpdateAI(), boss_valithria_dreamwalker::boss_valithria_dreamwalkerAI::UpdateAI(), npc_the_lich_king_controller::npc_the_lich_king_controllerAI::UpdateAI(), npc_valithria_cloud::npc_valithria_cloudAI::UpdateAI(), boss_hodir::UpdateAI(), npc_vrykul_skeleton::UpdateAI(), npc_gunship::npc_gunshipAI::UpdateAI(), and npc_gunship_rocketeer::npc_gunship_rocketeerAI::UpdateAI().

◆ GetBossStateName()

std::string InstanceScript::GetBossStateName ( uint8  state)
static
832{
833 // See enum EncounterState in InstanceScript.h
834 switch (state)
835 {
836 case NOT_STARTED:
837 return "NOT_STARTED";
838 case IN_PROGRESS:
839 return "IN_PROGRESS";
840 case FAIL:
841 return "FAIL";
842 case DONE:
843 return "DONE";
844 case SPECIAL:
845 return "SPECIAL";
846 case TO_BE_DECIDED:
847 return "TO_BE_DECIDED";
848 default:
849 return "INVALID";
850 }
851}
@ IN_PROGRESS
Definition InstanceScript.h:59
@ FAIL
Definition InstanceScript.h:60
@ SPECIAL
Definition InstanceScript.h:62
@ NOT_STARTED
Definition InstanceScript.h:58

References DONE, FAIL, IN_PROGRESS, NOT_STARTED, SPECIAL, and TO_BE_DECIDED.

Referenced by instance_commandscript::HandleInstanceGetBossStateCommand(), instance_commandscript::HandleInstanceSetBossStateCommand(), and SmartScript::ProcessAction().

◆ GetCompletedEncounterMask()

uint32 InstanceScript::GetCompletedEncounterMask ( ) const
inline
270{ return completedEncounters; }

References completedEncounters.

Referenced by InstanceMap::AddPlayerToMap().

◆ GetCreature()

Creature * InstanceScript::GetCreature ( uint32  type)
116{
117 return instance->GetCreature(GetObjectGuid(type));
118}

References Map::GetCreature(), GetObjectGuid(), and instance.

Referenced by instance_blood_furnace::instance_blood_furnace_InstanceMapScript::ActivateCell(), instance_ruins_of_ahnqiraj::instance_ruins_of_ahnqiraj_InstanceMapScript::CallNextRajaxxLeader(), instance_forge_of_souls::instance_forge_of_souls_InstanceScript::CheckAchievementCriteriaMeet(), instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::CheckAchievementCriteriaMeet(), boss_sacrolash::CheckInRoom(), instance_the_black_morass::instance_the_black_morass_InstanceMapScript::CleanupInstance(), CountAliveBosses(), instance_naxxramas::CreatureTalk(), boss_kologarn_eyebeam::DamageDealt(), boss_attumen::DamageTaken(), boss_romulo::DamageTaken(), boss_illidari_council_memberAI::DamageTaken(), npc_akama_shade::DamageTaken(), npc_ulduar_flash_freeze::DamageTaken(), boss_thorim_start_npcs::DamageTaken(), boss_bug_trio::DamageTaken(), boss_yoggsaron_brain::DamageTaken(), DespawnAll(), boss_yoggsaron_sara::DespawnGossipKeepers(), boss_julianne::DoAction(), instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::DoAction(), npc_hor_lich_king::DoAction(), npc_high_overlord_saurfang_igb::npc_high_overlord_saurfang_igbAI::DoAction(), npc_muradin_bronzebeard_igb::npc_muradin_bronzebeard_igbAI::DoAction(), boss_razuvious_minion::boss_razuvious_minionAI::DoAction(), instance_karazhan::instance_karazhan_InstanceMapScript::DoAction(), boss_sacrolash::DoAction(), boss_alythess::DoAction(), boss_kalecgos::DoAction(), npc_molten_golem::DoAction(), boss_thorim_sif::DoAction(), npc_xt002_heart::DoAction(), boss_yoggsaron_sara::DoAction(), boss_yoggsaron_brain::DoAction(), boss_illidan_stormrage::DoAction(), npc_maiev_illidan::DoAction(), boss_illidari_council::DoAction(), DoActions(), boss_razorgore::DoChangePhase(), npc_anub_ar_crusher::DoEngagedWith(), npc_time_rift::DoSummonAtRift(), boss_ahune::Emerge(), boss_bug_trio::EnterCombatWithTrio(), boss_attumen::EnterEvadeMode(), boss_priestess_lackey_commonAI::EnterEvadeMode(), boss_sartharion::EnterEvadeMode(), boss_four_horsemen::boss_four_horsemenAI::EnterEvadeMode(), boss_thaddius_summon::boss_thaddius_summonAI::EnterEvadeMode(), boss_illidan_stormrage::EnterEvadeMode(), boss_illidari_council::EnterEvadeMode(), boss_fathomguard_sharkkis::EnterEvadeMode(), boss_fathomguard_tidalvess::EnterEvadeMode(), boss_fathomguard_caribdis::EnterEvadeMode(), boss_ahune::EnterEvadeMode(), boss_halazzi::EnterPhase(), boss_bug_trio::EvadeAllBosses(), boss_ahune::ExecuteEvent(), boss_krik_thir::boss_krik_thirAI::GetData(), SmartScript::GetTargets(), boss_twinemperorsAI::GetTwin(), go_ossirian_crystal::go_ossirian_crystalAI::GossipHello(), go_chromaggus_lever::GossipHello(), go_ahune_ice_stone::GossipSelect(), boss_warbringer_omrogg::HandleHeadTalk(), instance_forge_of_souls::instance_forge_of_souls_InstanceScript::HandleOutro(), spell_illidari_council_circle_of_healing::HandleSharedRule(), instance_halls_of_reflection::HandleWaveWipe(), npc_toxic_slime::InitializeAI(), IsEncounterComplete(), boss_aeonus::IsSummonedBy(), boss_kologarn_eyebeam::IsSummonedBy(), boss_attumen::JustDied(), boss_sacrolash::JustDied(), boss_alythess::JustDied(), boss_thekal::JustDied(), npc_zealot_lorkhan::JustDied(), npc_zealot_zath::JustDied(), boss_eye_of_cthun::JustDied(), npc_gunship::npc_gunshipAI::JustDied(), boss_thaddius_summon::boss_thaddius_summonAI::JustDied(), npc_mr_bigglesworth::JustDied(), npc_ulduar_saronite_vapors::JustDied(), npc_ulduar_saronite_animus::JustDied(), npc_ulduar_hodir_priest::JustDied(), npc_ulduar_hodir_druid::JustDied(), npc_ulduar_hodir_shaman::JustDied(), npc_ulduar_hodir_mage::JustDied(), boss_kologarn_arms::JustDied(), boss_thorim_start_npcs::JustDied(), boss_thorim_runic_colossus::JustDied(), npc_xt002_heart::JustDied(), boss_yoggsaron::JustDied(), boss_skadi_grauf::boss_skadi_graufAI::JustDied(), boss_fathomguard_sharkkis::JustDied(), boss_fathomguard_tidalvess::JustDied(), boss_fathomguard_caribdis::JustDied(), boss_ahune::JustDied(), npc_frozen_core::JustDied(), boss_dalliah_the_doomsayer::JustDied(), boss_brutallus::JustDied(), boss_azgalor::JustDied(), npc_buru_egg::JustDied(), boss_kurinnaxx::JustDied(), npc_general_andorov::JustDied(), boss_cthun::JustDied(), npc_anub_ar_crusher::JustDied(), boss_flame_leviathan_defense_turret::JustDied(), boss_freya_elder_stonebark::JustDied(), boss_freya_elder_brightleaf::JustDied(), boss_freya_elder_ironbranch::JustDied(), boss_shade_of_akama::JustDied(), boss_fathomlord_karathress::JustDied(), boss_warchief_kargath_bladefist::JustDied(), boss_sathrovarr::JustEngagedWith(), npc_zealot_lorkhan::JustEngagedWith(), boss_freya::JustEngagedWith(), boss_illidari_council_memberAI::JustEngagedWith(), boss_dalliah_the_doomsayer::JustEngagedWith(), npc_buru_egg::JustEngagedWith(), boss_thaddius_summon::boss_thaddius_summonAI::JustEngagedWith(), boss_priestess_lackey_commonAI::JustEngagedWith(), boss_sacrolash::JustEngagedWith(), boss_alythess::JustEngagedWith(), boss_krik_thir::boss_krik_thirAI::JustEngagedWith(), boss_razuvious_minion::boss_razuvious_minionAI::JustEngagedWith(), boss_steelbreaker::JustEngagedWith(), boss_runemaster_molgeim::JustEngagedWith(), boss_stormcaller_brundir::JustEngagedWith(), boss_illidan_stormrage::JustEngagedWith(), boss_fathomguard_sharkkis::JustEngagedWith(), boss_fathomguard_tidalvess::JustEngagedWith(), boss_fathomguard_caribdis::JustEngagedWith(), boss_warchief_kargath_bladefist::JustEngagedWith(), boss_romulo::JustReachedHome(), boss_aeonus::JustReachedHome(), npc_akama_illidan::JustReachedHome(), boss_yoggsaron_cloud::JustSummoned(), npc_warchief_portal::JustSummoned(), boss_attumen::JustSummoned(), npc_hive_zara_larva::JustSummoned(), boss_eye_of_cthun::JustSummoned(), npc_gothik_trigger::npc_gothik_triggerAI::JustSummoned(), npc_creature_generator_akama::JustSummoned(), npc_buru_egg::JustSummoned(), boss_midnight::KilledUnit(), boss_priestess_lackey_commonAI::KilledUnit(), instance_sunwell_plateau::instance_sunwell_plateau_InstanceMapScript::Load(), npc_earthen_ring_flamecaller::LookOpening(), boss_bug_trio::MovementInform(), npc_twilight_volunteer::MovementInform(), npc_akama_illidan::MovementInform(), boss_shade_of_akama::MovementInform(), npc_xt002_scrapbot::MovementInform(), npc_ulduar_saronite_animus::npc_ulduar_saronite_animus(), achievement_yogg_saron_darkness::OnCheck(), achievement_yogg_saron_he_waits_dreaming::OnCheck(), instance_blackwing_lair::OnCreatureCreate(), instance_karazhan::instance_karazhan_InstanceMapScript::OnCreatureCreate(), instance_zulgurub::instance_zulgurub_InstanceMapScript::OnCreatureCreate(), instance_ulduar::instance_ulduar_InstanceMapScript::OnCreatureCreate(), instance_azjol_nerub::instance_azjol_nerub_InstanceScript::OnCreatureEvade(), instance_onyxias_lair::instance_onyxias_lair_InstanceMapScript::OnGameObjectCreate(), instance_temple_of_ahnqiraj::instance_temple_of_ahnqiraj_InstanceMapScript::OnGameObjectCreate(), instance_naxxramas::OnGameObjectRemove(), npc_ulduar_expedition_commander::OnGossipHello(), go_ulduar_working_harpoon::OnGossipHello(), npc_ulduar_expedition_commander::OnGossipSelect(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::OnPlayerEnter(), instance_utgarde_keep::instance_utgarde_keep_InstanceMapScript::OnPlayerEnter(), instance_hyjal::instance_mount_hyjal_InstanceMapScript::OnUnitDeath(), instance_azjol_nerub::instance_azjol_nerub_InstanceScript::OnUnitDeath(), instance_halls_of_reflection::OnUnitDeath(), instance_ulduar::instance_ulduar_InstanceMapScript::OnUnitDeath(), instance_shadow_labyrinth::instance_shadow_labyrinth_InstanceMapScript::OnUnitDeath(), boss_kaelthas::PrepareAdvisors(), instance_magisters_terrace::instance_magisters_terrace_InstanceMapScript::ProcessEvent(), instance_eye_of_eternity::ProcessEvent(), instance_sethekk_halls::instance_sethekk_halls_InstanceMapScript::ProcessEvent(), boss_sacrolash::Reset(), boss_alythess::Reset(), boss_kalecgos::Reset(), boss_kiljaeden::Reset(), boss_thekal::Reset(), npc_ancient_wisp::Reset(), boss_krik_thir::boss_krik_thirAI::Reset(), npc_xt002_scrapbot::Reset(), npc_xt002_boombot::Reset(), boss_skadi::boss_skadiAI::Reset(), boss_illidan_stormrage::Reset(), boss_warchief_kargath_bladefist::Reset(), boss_dalliah_the_doomsayer::Reset(), boss_wrath_scryer_soccothrates::Reset(), instance_zulaman::instance_zulaman_InstanceMapScript::ResetAkilzonGauntlet(), instance_ruins_of_ahnqiraj::instance_ruins_of_ahnqiraj_InstanceMapScript::ResetRajaxxWaves(), instance_hyjal::instance_mount_hyjal_InstanceMapScript::ResetWaves(), RespawnAssemblyOfIron(), RestoreAssemblyHealth(), boss_thekal::ReviveZealot(), boss_julianne::ScheduleCombat(), boss_romulo::ScheduleCombat(), instance_the_black_morass::instance_the_black_morass_InstanceMapScript::ScheduleNextPortal(), boss_cthun::ScheduleTasks(), boss_gathios_the_shatterer::SelectCouncilMember(), instance_naxxramas::SetBossState(), instance_the_black_morass::instance_the_black_morass_InstanceMapScript::SetBossState(), instance_halls_of_reflection::SetBossState(), instance_eye_of_eternity::SetBossState(), instance_ulduar::instance_ulduar_InstanceMapScript::SetBossState(), instance_black_temple::instance_black_temple_InstanceMapScript::SetBossState(), npc_ulduar_harpoonfirestate::SetData(), instance_hyjal::instance_mount_hyjal_InstanceMapScript::SetData(), instance_halls_of_reflection::SetData(), instance_ulduar::instance_ulduar_InstanceMapScript::SetData(), instance_utgarde_keep::instance_utgarde_keep_InstanceMapScript::SetData(), instance_shattered_halls::instance_shattered_halls_InstanceMapScript::SetData(), instance_arcatraz::instance_arcatraz_InstanceMapScript::SetData(), instance_ahnkahet::instance_ahnkahet_InstanceScript::SetData(), instance_serpent_shrine::instance_serpentshrine_cavern_InstanceMapScript::SetData(), instance_gruuls_lair::instance_gruuls_lair_InstanceMapScript::SetData(), SetSummoner(), boss_attumen::SpellHit(), boss_skadi_grauf::boss_skadi_graufAI::SpellHit(), boss_yoggsaron_voice::SpellHitTarget(), instance_halls_of_reflection::StartNextWave(), boss_ahune::Submerge(), npc_gothik_trigger::npc_gothik_triggerAI::SummonedCreatureDespawn(), instance_blackwing_lair::Update(), instance_halls_of_reflection::Update(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::Update(), instance_ulduar::instance_ulduar_InstanceMapScript::Update(), npc_madrigosa::UpdateAI(), npc_time_rift::UpdateAI(), npc_twilight_volunteer::UpdateAI(), npc_fos_corrupted_soul_fragment::UpdateAI(), npc_hor_leader::npc_hor_leaderAI::UpdateAI(), npc_hor_lich_king::UpdateAI(), npc_hor_leader_second::npc_hor_leader_secondAI::UpdateAI(), boss_kelthuzad::boss_kelthuzadAI::UpdateAI(), boss_thaddius_summon::boss_thaddius_summonAI::UpdateAI(), npc_power_spark::UpdateAI(), boss_algalon_the_observer::UpdateAI(), npc_brann_bronzebeard_algalon::UpdateAI(), npc_ulduar_hodir_priest::UpdateAI(), npc_ulduar_hodir_druid::UpdateAI(), npc_ulduar_hodir_shaman::UpdateAI(), npc_ulduar_hodir_mage::UpdateAI(), npc_ulduar_expedition_engineer::UpdateAI(), boss_yoggsaron_sara::UpdateAI(), boss_skadi::boss_skadiAI::UpdateAI(), boss_skadi_grauf::boss_skadi_graufAI::UpdateAI(), boss_veras_darkshadow::UpdateAI(), npc_frozen_core::UpdateAI(), npc_ahune_bunny::UpdateAI(), npc_gunship::npc_gunshipAI::UpdateAI(), npc_xt002_scrapbot::UpdateAI(), npc_xt002_boombot::UpdateAI(), npc_general_andorov::UpdateEscortAI(), and instance_halls_of_reflection::UpdateOutro().

◆ GetEncounterCount()

uint32 InstanceScript::GetEncounterCount ( ) const
inline
276{ return bosses.size(); }

References bosses.

Referenced by instance_commandscript::HandleInstanceSetBossStateCommand().

◆ GetGameObject()

GameObject * InstanceScript::GetGameObject ( uint32  type)
121{
122 return instance->GetGameObject(GetObjectGuid(type));
123}

References Map::GetGameObject(), GetObjectGuid(), and instance.

Referenced by instance_blood_furnace::instance_blood_furnace_InstanceMapScript::ActivateCell(), instance_naxxramas::ActivateWingPortal(), instance_zulaman::instance_zulaman_InstanceMapScript::CheckInstanceStatus(), npc_harrison_jones::DoAction(), boss_the_lurker_below::EnterEvadeMode(), boss_hodir::GetHardmodeChest(), instance_ulduar::instance_ulduar_InstanceMapScript::GetHodirChest(), SmartScript::GetTargets(), boss_thorim::GetThorimObject(), go_chromaggus_lever::GossipHello(), HandleGameObject(), boss_kologarn::JustDied(), boss_thorim_runic_colossus::JustDied(), boss_xt002::JustDied(), boss_yoggsaron::JustDied(), boss_talon_king_ikiss::JustDied(), boss_felblood_kaelthas::JustDied(), boss_kologarn::JustEngagedWith(), boss_xt002::JustEngagedWith(), boss_kelthuzad::boss_kelthuzadAI::JustEngagedWith(), npc_harrison_jones::MovementInform(), instance_sunwell_plateau::instance_sunwell_plateau_InstanceMapScript::OnPlayerEnter(), instance_ulduar::instance_ulduar_InstanceMapScript::OnPlayerEnter(), boss_gothik::boss_gothikAI::OpenGate(), npc_harrison_jones::OpenMassiveGateAndCallGuards(), instance_eye_of_eternity::ProcessEvent(), boss_kelthuzad::boss_kelthuzadAI::Reset(), boss_kologarn::Reset(), boss_xt002::Reset(), boss_yoggsaron_sara::Reset(), npc_kiljaeden_controller::ResetOrbs(), instance_steam_vault::instance_steam_vault_InstanceMapScript::SetBossState(), instance_zulaman::instance_zulaman_InstanceMapScript::SetBossState(), instance_eye_of_eternity::SetBossState(), instance_ulduar::instance_ulduar_InstanceMapScript::SetBossState(), instance_ulduar::instance_ulduar_InstanceMapScript::SetData(), instance_eye_of_eternity::SetData(), instance_naxxramas::SetGoState(), boss_flame_leviathan::TurnGates(), boss_flame_leviathan::TurnHealStations(), npc_hor_leader::npc_hor_leaderAI::UpdateAI(), boss_kelthuzad::boss_kelthuzadAI::UpdateAI(), and boss_yoggsaron_sara::UpdateAI().

◆ GetGuidData()

ObjectGuid InstanceScript::GetGuidData ( uint32  type) const
overridevirtual

Reimplemented from ZoneScript.

111{
112 return GetObjectGuid(type);
113}

References GetObjectGuid().

Referenced by boss_sjonnir::boss_sjonnirAI::ActivatePipe(), boss_twilight_halion::boss_twilight_halionAI::boss_twilight_halionAI(), boss_tyrannus::boss_tyrannusAI::boss_tyrannusAI(), boss_moira_bronzebeard::CastOnEmperorIfPossible(), spell_putricide_mutation_init::CheckRequirementInternal(), boss_prince_valanar_icc::boss_prince_valanarAI::CheckRoom(), violet_hold_trashAI::ClearDoorSealAura(), boss_valithria_dreamwalker::boss_valithria_dreamwalkerAI::DamageTaken(), boss_halion::boss_halionAI::DamageTaken(), boss_twilight_halion::boss_twilight_halionAI::DamageTaken(), boss_the_lich_king::boss_the_lich_kingAI::DamageTaken(), boss_taldaram::DoAction(), npc_high_overlord_saurfang_icc::npc_high_overlord_saurfangAI::DoAction(), npc_muradin_bronzebeard_icc::npc_muradin_bronzebeard_iccAI::DoAction(), boss_the_lich_king::boss_the_lich_kingAI::DoAction(), npc_strangulate_vehicle::npc_strangulate_vehicleAI::DoAction(), npc_crok_scourgebane::npc_crok_scourgebaneAI::DoAction(), npc_argent_captainAI::DoAction(), brann_bronzebeard::brann_bronzebeardAI::DoAction(), npc_ahune_bunny::DoAction(), npc_pos_martin_or_gorkun_second::npc_pos_martin_or_gorkun_secondAI::DoAction(), boss_black_knight::boss_black_knightAI::DoAction(), boss_tyrannus::boss_tyrannusAI::DoAction(), npc_rocknot::DoGo(), boss_halion::boss_halionAI::EnterEvadeMode(), boss_prince_keleseth_icc::boss_prince_kelesethAI::EnterEvadeMode(), boss_prince_taldaram_icc::boss_prince_taldaramAI::EnterEvadeMode(), boss_prince_valanar_icc::boss_prince_valanarAI::EnterEvadeMode(), boss_deathbringer_saurfang::boss_deathbringer_saurfangAI::EnterEvadeMode(), boss_festergut::boss_festergutAI::EnterEvadeMode(), boss_rotface::boss_rotfaceAI::EnterEvadeMode(), boss_the_lich_king::boss_the_lich_kingAI::EnterEvadeMode(), npc_tirion_fordring_tft::npc_tirion_fordringAI::EnterEvadeMode(), npc_argent_captainAI::EnterEvadeMode(), boss_tyrannus::boss_tyrannusAI::EnterEvadeMode(), boss_sartharion_tenebron::ExecuteEvent(), spell_the_lich_king_restore_soul::FilterTargets(), boss_erekem::boss_erekemAI::GetChainHealTargetGUID(), npc_chesspiece::GetEnemyPiece(), instance_eye_of_eternity::GetGuidData(), npc_chesspiece::GetLowestHpFriendlyPiece(), boss_twin_valkyrAI::GetSister(), go_troll_cage::go_troll_cageAI::GossipHello(), boss_netherspite::HandleDoors(), spell_halion_twilight_division::HandleDummy(), npc_grimstone::HandleGameObject(), npc_echo_of_medivh::HandlePieceJustDied(), spell_putricide_unbound_plague::HandleScript(), spell_putricide_mutated_transformation::HandleSummon(), boss_valithria_dreamwalker::boss_valithria_dreamwalkerAI::HealReceived(), go_troll_cage::go_troll_cageAI::initBlyCrewMember(), boss_urok_doomhowl::InitializeAI(), boss_warchief_kargath_bladefist::InitializeAI(), npc_direbrew_minion::IsSummonedBy(), npc_onyx_flamecaller::npc_onyx_flamecallerAI::IsSummonedBy(), npc_raging_spirit::npc_raging_spiritAI::IsSummonedBy(), npc_suppresser::npc_suppresserAI::IsSummonedBy(), npc_strangulate_vehicle::npc_strangulate_vehicleAI::IsSummonedBy(), boss_emperor_dagran_thaurissan::JustDied(), boss_rend_blackhand::JustDied(), npc_chesspiece::JustDied(), boss_shade_of_aran::JustDied(), npc_kilrek::JustDied(), npc_zulian_prowler::npc_zulian_prowlerAI::JustDied(), boss_rajaxx::JustDied(), boss_sartharion_dragonAI::JustDied(), npc_memory::npc_memoryAI::JustDied(), boss_jormungarAI::JustDied(), boss_prince_keleseth_icc::boss_prince_kelesethAI::JustDied(), boss_prince_taldaram_icc::boss_prince_taldaramAI::JustDied(), boss_prince_valanar_icc::boss_prince_valanarAI::JustDied(), boss_deathbringer_saurfang::boss_deathbringer_saurfangAI::JustDied(), boss_festergut::boss_festergutAI::JustDied(), npc_gunship::npc_gunshipAI::JustDied(), boss_rotface::boss_rotfaceAI::JustDied(), npc_little_ooze::npc_little_oozeAI::JustDied(), npc_big_ooze::npc_big_oozeAI::JustDied(), npc_raging_spirit::npc_raging_spiritAI::JustDied(), npc_spirit_warden::npc_spirit_wardenAI::JustDied(), boss_sister_svalna::boss_sister_svalnaAI::JustDied(), boss_drakos::boss_drakosAI::JustDied(), boss_sjonnir::boss_sjonnirAI::JustDied(), brann_bronzebeard::brann_bronzebeardAI::JustDied(), boss_skarvald_the_constructor::JustDied(), boss_dalronn_the_controller::JustDied(), npc_massive_jormungar::npc_massive_jormungarAI::JustDied(), npc_ferocious_rhino::npc_ferocious_rhinoAI::JustDied(), npc_ravenous_furbolg::npc_ravenous_furbolgAI::JustDied(), npc_frenzied_worgen::npc_frenzied_worgenAI::JustDied(), boss_skadi::boss_skadiAI::JustDied(), npc_ichor_globule::npc_ichor_globuleAI::JustDied(), violet_hold_trashAI::JustDied(), boss_epoch_hunter::JustDied(), boss_baltharus_the_warborn::boss_baltharus_the_warbornAI::JustDied(), boss_halion::boss_halionAI::JustDied(), boss_twilight_halion::boss_twilight_halionAI::JustDied(), boss_warchief_kargath_bladefist::JustDied(), boss_shade_of_aran::JustEngagedWith(), boss_bigbadwolf::JustEngagedWith(), npc_healing_ward::JustEngagedWith(), boss_sartharion::JustEngagedWith(), npc_pos_deathwhisper_necrolyte::npc_pos_deathwhisper_necrolyteAI::JustEngagedWith(), npc_risen_archmage::npc_risen_archmageAI::JustEngagedWith(), boss_sister_svalna::boss_sister_svalnaAI::JustEngagedWith(), boss_sjonnir::boss_sjonnirAI::JustEngagedWith(), npc_green_dragon_combat_trigger::npc_green_dragon_combat_triggerAI::JustEngagedWith(), boss_prince_keleseth_icc::boss_prince_kelesethAI::JustEngagedWith(), boss_prince_taldaram_icc::boss_prince_taldaramAI::JustEngagedWith(), boss_prince_valanar_icc::boss_prince_valanarAI::JustEngagedWith(), boss_festergut::boss_festergutAI::JustEngagedWith(), boss_rotface::boss_rotfaceAI::JustEngagedWith(), boss_skarvald_the_constructor::JustEngagedWith(), boss_dalronn_the_controller::JustEngagedWith(), boss_erekem::boss_erekemAI::JustEngagedWith(), npc_erekem_guard::npc_erekem_guardAI::JustEngagedWith(), boss_arlokk::boss_arlokkAI::JustReachedHome(), boss_captain_skarloc::JustSummoned(), boss_sartharion_dragonAI::JustSummoned(), boss_mandokir::boss_mandokirAI::KilledUnit(), npc_chesspiece::MovementInform(), npc_hive_zara_larva::MovementInform(), boss_deathbringer_saurfang::boss_deathbringer_saurfangAI::MovementInform(), boss_professor_putricide::boss_professor_putricideAI::MovementInform(), npc_tirion_fordring_tft::npc_tirion_fordringAI::MovementInform(), npc_valkyr_shadowguard::npc_valkyr_shadowguardAI::MovementInform(), npc_gunship_boarding_addAI::MovementInform(), npc_sergeant_bly::npc_sergeant_blyAI::MovementInform(), npc_hor_lich_king::MovementInform(), npc_big_ooze::npc_big_oozeAI::npc_big_oozeAI(), npc_little_ooze::npc_little_oozeAI::npc_little_oozeAI(), npc_pos_leader_second::npc_pos_leader_secondAI::npc_pos_leader_secondAI(), npc_pos_martin_or_gorkun_second::npc_pos_martin_or_gorkun_secondAI::npc_pos_martin_or_gorkun_secondAI(), spell_blood_queen_vampiric_bite::OnCast(), go_palehoof_sphere::OnGossipHello(), at_tyrannus_event_starter::OnTrigger(), boss_pyroguard_emberseer::OpenDoors(), IgbTeleportOnVictoryCheck::operator()(), npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI::ReorderInstance(), boss_rend_blackhand::Reset(), boss_shade_of_aran::Reset(), npc_image_of_medivh::npc_image_of_medivhAI::Reset(), npc_zulian_prowler::npc_zulian_prowlerAI::Reset(), boss_mandokir::boss_mandokirAI::Reset(), boss_the_lich_king::boss_the_lich_kingAI::Reset(), boss_sjonnir::boss_sjonnirAI::Reset(), brann_bronzebeard::brann_bronzebeardAI::Reset(), boss_palehoof::boss_palehoofAI::Reset(), npc_warden_mellichar::npc_warden_mellicharAI::Reset(), brann_bronzebeard::brann_bronzebeardAI::ResetEvent(), npc_ahune_bunny::ResetFlameCallers(), boss_sjonnir::boss_sjonnirAI::ScheduleTasks(), boss_svala::boss_svalaAI::SetData(), boss_pyroguard_emberseer::SetData(), boss_darkmaster_gandling::boss_darkmaster_gandlingAI::SetGate(), npc_crok_scourgebane::npc_crok_scourgebaneAI::SetGUID(), boss_kaelthas::SetRoomState(), npc_tirion_fordring_tft::npc_tirion_fordringAI::sGossipSelect(), boss_valithria_dreamwalker::boss_valithria_dreamwalkerAI::SpellHit(), npc_chesspiece::SpellHitTarget(), boss_sartharion_shadron::SummonedCreatureDies(), npc_sergeant_bly::npc_sergeant_blyAI::switchFactionIfAlive(), brann_bronzebeard::brann_bronzebeardAI::SwitchHeadVisaul(), npc_rocknot::UpdateAI(), boss_rend_blackhand::UpdateAI(), npc_core_rager::UpdateAI(), boss_majordomo::UpdateAI(), npc_chesspiece::UpdateAI(), npc_arthas::npc_arthasAI::UpdateAI(), npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI::UpdateAI(), npc_sergeant_bly::npc_sergeant_blyAI::UpdateAI(), boss_sartharion::UpdateAI(), boss_general_zarithrian::boss_general_zarithrianAI::UpdateAI(), boss_halion::boss_halionAI::UpdateAI(), boss_twilight_halion::boss_twilight_halionAI::UpdateAI(), npc_halion_controller::npc_halion_controllerAI::UpdateAI(), npc_snobold_vassal::npc_snobold_vassalAI::UpdateAI(), boss_jormungarAI::UpdateAI(), npc_hor_lich_king::UpdateAI(), boss_krick::boss_krickAI::UpdateAI(), boss_tyrannus::boss_tyrannusAI::UpdateAI(), npc_pos_leader::npc_pos_leaderAI::UpdateAI(), npc_pos_after_first_boss::npc_pos_after_first_bossAI::UpdateAI(), npc_pos_martin_or_gorkun_second::npc_pos_martin_or_gorkun_secondAI::UpdateAI(), npc_pos_leader_second::npc_pos_leader_secondAI::UpdateAI(), boss_prince_valanar_icc::boss_prince_valanarAI::UpdateAI(), npc_blood_queen_lana_thel::npc_blood_queen_lana_thelAI::UpdateAI(), npc_high_overlord_saurfang_icc::npc_high_overlord_saurfangAI::UpdateAI(), npc_muradin_bronzebeard_icc::npc_muradin_bronzebeard_iccAI::UpdateAI(), boss_festergut::boss_festergutAI::UpdateAI(), npc_high_overlord_saurfang_igb::npc_high_overlord_saurfang_igbAI::UpdateAI(), npc_muradin_bronzebeard_igb::npc_muradin_bronzebeard_igbAI::UpdateAI(), npc_cult_fanatic::npc_cult_fanaticAI::UpdateAI(), npc_cult_adherent::npc_cult_adherentAI::UpdateAI(), boss_rotface::boss_rotfaceAI::UpdateAI(), npc_tirion_fordring_tft::npc_tirion_fordringAI::UpdateAI(), npc_valkyr_shadowguard::npc_valkyr_shadowguardAI::UpdateAI(), npc_strangulate_vehicle::npc_strangulate_vehicleAI::UpdateAI(), npc_terenas_menethil::npc_terenas_menethilAI::UpdateAI(), npc_valithria_cloud::npc_valithria_cloudAI::UpdateAI(), npc_crok_scourgebane::npc_crok_scourgebaneAI::UpdateAI(), boss_palehoof::boss_palehoofAI::UpdateAI(), boss_svala::boss_svalaAI::UpdateAI(), boss_erekem::boss_erekemAI::UpdateAI(), npc_ahune_bunny::UpdateAI(), npc_warden_mellichar::npc_warden_mellicharAI::UpdateAI(), npc_ichor_globule::npc_ichor_globuleAI::UpdateAI(), npc_suppresser::npc_suppresserAI::UpdateAI(), npc_halion_controller::npc_halion_controllerAI::UpdateCorporeality(), brann_bronzebeard::brann_bronzebeardAI::UpdateEscortAI(), boss_pyroguard_emberseer::UpdateRunes(), npc_arthas::npc_arthasAI::WaypointReached(), npc_barnes::npc_barnesAI::WaypointReached(), npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI::WaypointReached(), npc_taretha::npc_tarethaAI::WaypointReached(), npc_crok_scourgebane::npc_crok_scourgebaneAI::WaypointReached(), and npc_crok_scourgebane::npc_crok_scourgebaneAI::WaypointStart().

◆ GetObjectGuid()

◆ GetPersistentData()

uint32 InstanceScript::GetPersistentData ( uint32  index) const
inline
257{ return index < persistentData.size() ? persistentData[index] : 0; };
std::vector< uint32 > persistentData
Definition InstanceScript.h:348

References persistentData.

Referenced by at_icc_spire_frostwyrm::_OnTrigger(), boss_yoggsaron::boss_yoggsaron(), boss_pathaleon_the_calculator::CanAIAttack(), instance_naxxramas::CheckAchievementCriteriaMeet(), instance_ulduar::instance_ulduar_InstanceMapScript::CheckAchievementCriteriaMeet(), boss_felblood_kaelthas::DoAction(), instance_zulaman::instance_zulaman_InstanceMapScript::DoAction(), boss_pathaleon_the_calculator::DoAction(), instance_ulduar::instance_ulduar_InstanceMapScript::FillInitialWorldStates(), boss_yoggsaron_sara::GetData(), instance_zulaman::instance_zulaman_InstanceMapScript::GetData(), instance_ulduar::instance_ulduar_InstanceMapScript::GetData(), instance_shadow_labyrinth::instance_shadow_labyrinth_InstanceMapScript::GetData(), boss_taldaram::InitializeAI(), boss_ambassador_hellmaw::InitializeAI(), instance_ahnkahet::instance_ahnkahet_InstanceScript::IsAllSpheresActivated(), instance_ulduar::instance_ulduar_InstanceMapScript::Load(), npc_hor_leader::npc_hor_leaderAI::npc_hor_leaderAI(), achievement_flame_leviathan_unbroken::OnCheck(), instance_halls_of_reflection::OnCreatureCreate(), instance_ulduar::instance_ulduar_InstanceMapScript::OnCreatureCreate(), instance_ulduar::instance_ulduar_InstanceMapScript::OnGameObjectCreate(), instance_ahnkahet::instance_ahnkahet_InstanceScript::OnGameObjectCreate(), instance_halls_of_reflection::OnGameObjectCreate(), instance_zulaman::instance_zulaman_InstanceMapScript::OnPlayerEnter(), instance_ulduar::instance_ulduar_InstanceMapScript::OnPlayerEnter(), at_hor_shadow_throne::OnTrigger(), instance_ulduar::instance_ulduar_InstanceMapScript::OnUnitDeath(), boss_pathaleon_the_calculator::Reset(), instance_naxxramas::SetBossState(), instance_zulaman::instance_zulaman_InstanceMapScript::SetBossState(), instance_zulaman::instance_zulaman_InstanceMapScript::SetData(), instance_halls_of_reflection::SetData(), instance_ahnkahet::instance_ahnkahet_InstanceScript::SetData(), npc_ulduar_keeper::npc_ulduar_keeperAI::SpellHit(), instance_zulaman::instance_zulaman_InstanceMapScript::SummonHostage(), instance_halls_of_reflection::Update(), instance_ulduar::instance_ulduar_InstanceMapScript::Update(), and boss_yoggsaron_sara::UpdateKeeperSpawns().

◆ GetSaveData()

std::string InstanceScript::GetSaveData ( )
virtual

Reimplemented in instance_blackrock_depths, instance_deadmines::instance_deadmines_InstanceMapScript, instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript, and instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript.

518{
520
521 std::ostringstream saveStream;
522
523 WriteSaveDataHeaders(saveStream);
524 WriteSaveDataBossStates(saveStream);
525 WritePersistentData(saveStream);
526 WriteSaveDataMore(saveStream);
527
529
530 return saveStream.str();
531}
#define OUT_SAVE_INST_DATA_COMPLETE
Definition InstanceScript.h:30
#define OUT_SAVE_INST_DATA
Definition InstanceScript.h:29
void WriteSaveDataBossStates(std::ostringstream &data)
Definition InstanceScript.cpp:541
void WritePersistentData(std::ostringstream &data)
Definition InstanceScript.cpp:549
void WriteSaveDataHeaders(std::ostringstream &data)
Definition InstanceScript.cpp:533
virtual void WriteSaveDataMore(std::ostringstream &)
Definition InstanceScript.h:341

References OUT_SAVE_INST_DATA, OUT_SAVE_INST_DATA_COMPLETE, WritePersistentData(), WriteSaveDataBossStates(), WriteSaveDataHeaders(), and WriteSaveDataMore().

Referenced by SaveToDB().

◆ GetStoredGameObjectState()

uint8 InstanceScript::GetStoredGameObjectState ( ObjectGuid::LowType  spawnId) const
854{
855 auto i = _objectStateMap.find(spawnId);
856
857 if (i != _objectStateMap.end())
858 {
859 return i->second;
860 }
861
862 return 3; // Any state higher than 2 to get the default state for the object we are loading.
863}
ObjectStateMap _objectStateMap
Definition InstanceScript.h:355

References _objectStateMap.

Referenced by instance_deadmines::instance_deadmines_InstanceMapScript::OnGameObjectCreate().

◆ GetTeamIdInInstance()

TeamId InstanceScript::GetTeamIdInInstance ( ) const
inline
299{ return _teamIdInInstance; }

References _teamIdInInstance.

Referenced by instance_pit_of_saron::instance_pit_of_saron_InstanceScript::GetCreatureEntry(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::GetCreatureEntry(), instance_pit_of_saron::instance_pit_of_saron_InstanceScript::GetData(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::GetData(), instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::GetData(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::GetGameObjectEntry(), instance_forge_of_souls::instance_forge_of_souls_InstanceScript::HandleOutro(), instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::OnCreatureCreate(), instance_forge_of_souls::instance_forge_of_souls_InstanceScript::OnCreatureCreate(), instance_halls_of_reflection::OnCreatureCreate(), instance_pit_of_saron::instance_pit_of_saron_InstanceScript::OnCreatureCreate(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::OnCreatureCreate(), instance_nexus::instance_nexus_InstanceMapScript::OnCreatureCreate(), instance_shattered_halls::instance_shattered_halls_InstanceMapScript::OnCreatureCreate(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::ProcessEvent(), instance_trial_of_the_crusader::instance_trial_of_the_crusader_InstanceMapScript::SetData(), instance_halls_of_reflection::SetData(), instance_shattered_halls::instance_shattered_halls_InstanceMapScript::SetData(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::SpawnGunship(), instance_trial_of_the_crusader::instance_trial_of_the_crusader_InstanceMapScript::Update(), and instance_halls_of_reflection::UpdateOutro().

◆ HandleGameObject() [1/2]

void InstanceScript::HandleGameObject ( ObjectGuid  guid,
bool  open,
GameObject go = nullptr 
)

Open or close a GameObject by GUID.

Parameters
guidThe GUID of the GameObject. Pass ObjectGuid::Empty when providing the go pointer directly.
opentrue to open (GO_STATE_ACTIVE), false to close (GO_STATE_READY).
goOptional pointer to the GameObject. If nullptr, the object is looked up by GUID.
126{
127 if (!go)
128 go = instance->GetGameObject(GUID);
129 if (go)
131 else
132 {
133 LOG_DEBUG("scripts.ai", "InstanceScript: HandleGameObject failed");
134 }
135}
@ GO_STATE_READY
Definition GameObjectData.h:709
@ GO_STATE_ACTIVE
Definition GameObjectData.h:708
void SetGoState(GOState state)
Definition GameObject.cpp:2492

References Map::GetGameObject(), GO_STATE_ACTIVE, GO_STATE_READY, instance, LOG_DEBUG, and GameObject::SetGoState().

Referenced by instance_blood_furnace::instance_blood_furnace_InstanceMapScript::ActivateCell(), instance_zulaman::instance_zulaman_InstanceMapScript::CheckInstanceStatus(), boss_taldaram::DoAction(), npc_high_overlord_saurfang_icc::npc_high_overlord_saurfangAI::DoAction(), npc_muradin_bronzebeard_icc::npc_muradin_bronzebeard_iccAI::DoAction(), instance_blackrock_spire::Dragonspireroomcheck(), go_chromaggus_lever::GossipHello(), npc_grimstone::HandleGameObject(), HandleGameObject(), instance_halls_of_reflection::HandleWaveWipe(), instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::InstanceCleanup(), instance_violet_hold::instance_violet_hold_InstanceMapScript::InstanceCleanup(), instance_trial_of_the_crusader::instance_trial_of_the_crusader_InstanceMapScript::InstanceCleanup(), boss_skadi::boss_skadiAI::JustDied(), boss_deathbringer_saurfang::boss_deathbringer_saurfangAI::MovementInform(), instance_blackrock_depths::OnCreatureCreate(), instance_shadowfang_keep::instance_shadowfang_keep_InstanceMapScript::OnGameObjectCreate(), instance_uldaman::instance_uldaman_InstanceMapScript::OnGameObjectCreate(), instance_blackfathom_deeps::instance_blackfathom_deeps_InstanceMapScript::OnGameObjectCreate(), instance_maraudon::instance_maraudon_InstanceMapScript::OnGameObjectCreate(), instance_zulfarrak::instance_zulfarrak_InstanceMapScript::OnGameObjectCreate(), instance_blackrock_depths::OnGameObjectCreate(), instance_blackrock_spire::OnGameObjectCreate(), instance_ahnkahet::instance_ahnkahet_InstanceScript::OnGameObjectCreate(), instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::OnGameObjectCreate(), instance_trial_of_the_crusader::instance_trial_of_the_crusader_InstanceMapScript::OnGameObjectCreate(), instance_halls_of_reflection::OnGameObjectCreate(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::OnGameObjectCreate(), instance_utgarde_keep::instance_utgarde_keep_InstanceMapScript::OnGameObjectCreate(), instance_violet_hold::instance_violet_hold_InstanceMapScript::OnGameObjectCreate(), instance_black_temple::instance_black_temple_InstanceMapScript::OnGameObjectCreate(), instance_steam_vault::instance_steam_vault_InstanceMapScript::OnGameObjectCreate(), instance_utgarde_pinnacle::instance_utgarde_pinnacle_InstanceMapScript::OnGameObjectCreate(), instance_blackfathom_deeps::instance_blackfathom_deeps_InstanceMapScript::OnUnitDeath(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::ProcessEvent(), npc_warden_mellichar::npc_warden_mellicharAI::Reset(), instance_blood_furnace::instance_blood_furnace_InstanceMapScript::ResetPrisons(), instance_karazhan::instance_karazhan_InstanceMapScript::SetBossState(), instance_zulaman::instance_zulaman_InstanceMapScript::SetBossState(), instance_ruby_sanctum::instance_ruby_sanctum_InstanceMapScript::SetBossState(), instance_halls_of_reflection::SetBossState(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::SetBossState(), instance_eye_of_eternity::SetBossState(), instance_arcatraz::instance_arcatraz_InstanceMapScript::SetBossState(), instance_blackrock_depths::SetData(), instance_karazhan::instance_karazhan_InstanceMapScript::SetData(), instance_scholomance::instance_scholomance_InstanceMapScript::SetData(), instance_uldaman::instance_uldaman_InstanceMapScript::SetData(), instance_trial_of_the_crusader::instance_trial_of_the_crusader_InstanceMapScript::SetData(), instance_halls_of_reflection::SetData(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::SetData(), instance_utgarde_keep::instance_utgarde_keep_InstanceMapScript::SetData(), instance_utgarde_pinnacle::instance_utgarde_pinnacle_InstanceMapScript::SetData(), instance_violet_hold::instance_violet_hold_InstanceMapScript::SetData(), instance_arcatraz::instance_arcatraz_InstanceMapScript::SetData(), instance_ahnkahet::instance_ahnkahet_InstanceScript::SetData(), instance_eye_of_eternity::SetData(), instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::SetData(), boss_darkmaster_gandling::boss_darkmaster_gandlingAI::SetGate(), instance_violet_hold::instance_violet_hold_InstanceMapScript::StartBossEncounter(), instance_halls_of_reflection::StartNextWave(), instance_blackrock_depths::TombOfSevenReset(), instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::Update(), instance_trial_of_the_crusader::instance_trial_of_the_crusader_InstanceMapScript::Update(), instance_violet_hold::instance_violet_hold_InstanceMapScript::Update(), boss_halion::boss_halionAI::UpdateAI(), npc_hor_leader::npc_hor_leaderAI::UpdateAI(), npc_warden_mellichar::npc_warden_mellicharAI::UpdateAI(), instance_halls_of_reflection::UpdateOutro(), and npc_barnes::npc_barnesAI::WaypointReached().

◆ HandleGameObject() [2/2]

void InstanceScript::HandleGameObject ( uint32  type,
bool  open 
)

Open or close a GameObject registered via LoadObjectData.

Parameters
typeThe ObjectData type constant (e.g. GO_FRONT_DOOR) used in the gameObjectData array.
opentrue to open (GO_STATE_ACTIVE), false to close (GO_STATE_READY).
138{
140}
void HandleGameObject(ObjectGuid guid, bool open, GameObject *go=nullptr)
Open or close a GameObject by GUID.
Definition InstanceScript.cpp:125
GameObject * GetGameObject(uint32 type)
Definition InstanceScript.cpp:120

References ObjectGuid::Empty, GetGameObject(), and HandleGameObject().

◆ Initialize()

virtual void InstanceScript::Initialize ( )
inlinevirtual

Reimplemented in instance_blackrock_depths, instance_blackwing_lair, instance_deadmines::instance_deadmines_InstanceMapScript, instance_shadowfang_keep::instance_shadowfang_keep_InstanceMapScript, instance_stratholme::instance_stratholme_InstanceMapScript, instance_sunken_temple::instance_sunken_temple_InstanceMapScript, instance_uldaman::instance_uldaman_InstanceMapScript, instance_zulaman::instance_zulaman_InstanceMapScript, instance_blackfathom_deeps::instance_blackfathom_deeps_InstanceMapScript, instance_hyjal::instance_mount_hyjal_InstanceMapScript, instance_old_hillsbrad::instance_old_hillsbrad_InstanceMapScript, instance_dire_maul::instance_dire_maul_InstanceMapScript, instance_maraudon::instance_maraudon_InstanceMapScript, instance_onyxias_lair::instance_onyxias_lair_InstanceMapScript, instance_razorfen_downs::instance_razorfen_downs_InstanceMapScript, instance_temple_of_ahnqiraj::instance_temple_of_ahnqiraj_InstanceMapScript, instance_wailing_caverns::instance_wailing_caverns_InstanceMapScript, instance_zulfarrak::instance_zulfarrak_InstanceMapScript, instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript, instance_trial_of_the_crusader::instance_trial_of_the_crusader_InstanceMapScript, instance_halls_of_reflection, instance_pit_of_saron::instance_pit_of_saron_InstanceScript, instance_gundrak::instance_gundrak_InstanceMapScript, instance_nexus::instance_nexus_InstanceMapScript, instance_oculus::instance_oculus_InstanceMapScript, instance_halls_of_stone::instance_halls_of_stone_InstanceMapScript, instance_ulduar::instance_ulduar_InstanceMapScript, instance_utgarde_keep::instance_utgarde_keep_InstanceMapScript, instance_utgarde_pinnacle::instance_utgarde_pinnacle_InstanceMapScript, instance_vault_of_archavon::instance_vault_of_archavon_InstanceMapScript, instance_violet_hold::instance_violet_hold_InstanceMapScript, instance_shadow_labyrinth::instance_shadow_labyrinth_InstanceMapScript, instance_serpent_shrine::instance_serpentshrine_cavern_InstanceMapScript, instance_the_underbog::instance_the_underbog_InstanceMapScript, instance_blood_furnace::instance_blood_furnace_InstanceMapScript, instance_hellfire_ramparts::instance_hellfire_ramparts_InstanceMapScript, instance_magtheridons_lair::instance_magtheridons_lair_InstanceMapScript, and instance_shattered_halls::instance_shattered_halls_InstanceMapScript.

152{}

Referenced by InstanceMap::CreateInstanceScript(), and instance_eye_of_eternity::instance_eye_of_eternity().

◆ IsAreaTriggerDone()

bool InstanceScript::IsAreaTriggerDone ( uint32  id) const
inline
281{ return _activatedAreaTriggers.find(id) != _activatedAreaTriggers.end(); }
std::unordered_set< uint32 > _activatedAreaTriggers
Definition InstanceScript.h:358

References _activatedAreaTriggers.

◆ IsBossDone()

◆ IsEncounterInProgress()

◆ IsTwoFactionInstance()

bool InstanceScript::IsTwoFactionInstance ( ) const
876{
877 switch (instance->GetId())
878 {
879 case 540: // Shattered Halls
880 case 576: // Nexus
881 case 631: // Icecrown Citadel
882 case 632: // Forge of Souls
883 case 649: // Trial of the Champion
884 case 650: // Trial of the Crusader
885 case 658: // Pit of Saron
886 case 668: // Halls of Reflection
887 return true;
888 }
889
890 return false;
891}

References Map::GetId(), and instance.

Referenced by OnPlayerEnter(), and OnPlayerLeave().

◆ Load()

void InstanceScript::Load ( char const *  data)
virtual

Reimplemented in instance_sunwell_plateau::instance_sunwell_plateau_InstanceMapScript, instance_ulduar::instance_ulduar_InstanceMapScript, instance_blackrock_depths, instance_deadmines::instance_deadmines_InstanceMapScript, instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript, and instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript.

457{
458 if (!data)
459 {
461 return;
462 }
463
464 OUT_LOAD_INST_DATA(data);
465
466 std::istringstream loadStream(data);
467
468 if (ReadSaveDataHeaders(loadStream))
469 {
470 ReadSaveDataBossStates(loadStream);
471 ReadSavePersistentData(loadStream);
472 ReadSaveDataMore(loadStream);
473 }
474 else
476
478}
#define OUT_LOAD_INST_DATA_FAIL
Definition InstanceScript.h:33
#define OUT_LOAD_INST_DATA_COMPLETE
Definition InstanceScript.h:32
#define OUT_LOAD_INST_DATA(a)
Definition InstanceScript.h:31
virtual void ReadSaveDataMore(std::istringstream &)
Definition InstanceScript.h:337
void ReadSavePersistentData(std::istringstream &data)
Definition InstanceScript.cpp:509
bool ReadSaveDataHeaders(std::istringstream &data)
Definition InstanceScript.cpp:480
void ReadSaveDataBossStates(std::istringstream &data)
Definition InstanceScript.cpp:494

References OUT_LOAD_INST_DATA, OUT_LOAD_INST_DATA_COMPLETE, OUT_LOAD_INST_DATA_FAIL, ReadSaveDataBossStates(), ReadSaveDataHeaders(), ReadSaveDataMore(), and ReadSavePersistentData().

Referenced by InstanceMap::CreateInstanceScript(), instance_sunwell_plateau::instance_sunwell_plateau_InstanceMapScript::Load(), and instance_ulduar::instance_ulduar_InstanceMapScript::Load().

◆ LoadBossBoundaries()

void InstanceScript::LoadBossBoundaries ( BossBoundaryData const &  data)
protected

◆ LoadDoorData()

void InstanceScript::LoadDoorData ( DoorData const *  data)
protected
182{
183 while (data->entry)
184 {
185 if (data->bossId < bosses.size())
186 doors.insert(std::make_pair(data->entry, DoorInfo(&bosses[data->bossId], data->type)));
187
188 ++data;
189 }
190 LOG_DEBUG("scripts.ai", "InstanceScript::LoadDoorData: {} doors loaded.", uint64(doors.size()));
191}
std::uint64_t uint64
Definition Define.h:106

References bosses, DoorData::bossId, doors, DoorData::entry, LOG_DEBUG, and DoorData::type.

Referenced by instance_zulaman::instance_zulaman_InstanceMapScript::Initialize(), instance_gundrak::instance_gundrak_InstanceMapScript::Initialize(), instance_nexus::instance_nexus_InstanceMapScript::Initialize(), instance_shattered_halls::instance_shattered_halls_InstanceMapScript::Initialize(), instance_ahnkahet::instance_ahnkahet_InstanceScript::instance_ahnkahet_InstanceScript(), instance_arcatraz::instance_arcatraz_InstanceMapScript::instance_arcatraz_InstanceMapScript(), instance_azjol_nerub::instance_azjol_nerub_InstanceScript::instance_azjol_nerub_InstanceScript(), instance_black_temple::instance_black_temple_InstanceMapScript::instance_black_temple_InstanceMapScript(), instance_blackrock_spire::instance_blackrock_spire(), instance_blackwing_lair::instance_blackwing_lair(), instance_blood_furnace::instance_blood_furnace_InstanceMapScript::instance_blood_furnace_InstanceMapScript(), instance_drak_tharon_keep::instance_drak_tharon_keep(), instance_gruuls_lair::instance_gruuls_lair_InstanceMapScript::instance_gruuls_lair_InstanceMapScript(), instance_halls_of_lightning::instance_halls_of_lightning_InstanceMapScript::instance_halls_of_lightning_InstanceMapScript(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::instance_icecrown_citadel_InstanceMapScript(), instance_karazhan::instance_karazhan_InstanceMapScript::instance_karazhan_InstanceMapScript(), instance_magisters_terrace::instance_magisters_terrace_InstanceMapScript::instance_magisters_terrace_InstanceMapScript(), instance_magtheridons_lair::instance_magtheridons_lair_InstanceMapScript::instance_magtheridons_lair_InstanceMapScript(), instance_mechanar::instance_mechanar_InstanceMapScript::instance_mechanar_InstanceMapScript(), instance_hyjal::instance_mount_hyjal_InstanceMapScript::instance_mount_hyjal_InstanceMapScript(), instance_naxxramas::instance_naxxramas(), instance_ruby_sanctum::instance_ruby_sanctum_InstanceMapScript::instance_ruby_sanctum_InstanceMapScript(), instance_sethekk_halls::instance_sethekk_halls_InstanceMapScript::instance_sethekk_halls_InstanceMapScript(), instance_shadow_labyrinth::instance_shadow_labyrinth_InstanceMapScript::instance_shadow_labyrinth_InstanceMapScript(), instance_sunwell_plateau::instance_sunwell_plateau_InstanceMapScript::instance_sunwell_plateau_InstanceMapScript(), instance_temple_of_ahnqiraj::instance_temple_of_ahnqiraj_InstanceMapScript::instance_temple_of_ahnqiraj_InstanceMapScript(), instance_the_eye::instance_the_eye_InstanceMapScript::instance_the_eye_InstanceMapScript(), instance_ulduar::instance_ulduar_InstanceMapScript::instance_ulduar_InstanceMapScript(), and instance_zulgurub::instance_zulgurub_InstanceMapScript::instance_zulgurub_InstanceMapScript().

◆ LoadInstanceSavedGameobjectStateData()

void InstanceScript::LoadInstanceSavedGameobjectStateData ( )
794{
795 _objectStateMap.clear();
796
798 stmt->SetData(0, instance->GetInstanceId());
799
800 if (PreparedQueryResult result = CharacterDatabase.Query(stmt))
801 {
802 Field* fields;
803
804 do
805 {
806 fields = result->Fetch();
807 StoreGameObjectState(fields[0].Get<uint32>(), fields[1].Get<uint8>());
808
809 } while (result->NextRow());
810 }
811}
@ CHAR_SELECT_INSTANCE_SAVED_DATA
Definition CharacterDatabase.h:528
std::shared_ptr< PreparedResultSet > PreparedQueryResult
Definition DatabaseEnvFwd.h:45
DatabaseWorkerPool< CharacterDatabaseConnection > CharacterDatabase
Accessor to the character database.
Definition DatabaseEnv.cpp:21
Class used to access individual fields of database query result.
Definition Field.h:98
void StoreGameObjectState(ObjectGuid::LowType spawnId, uint8 state)
Definition InstanceScript.h:290
uint32 GetInstanceId() const
Definition Map.h:266
Acore::Types::is_default< T > SetData(const uint8 index, T value)
Definition PreparedStatement.h:77
Definition PreparedStatement.h:157

References _objectStateMap, CHAR_SELECT_INSTANCE_SAVED_DATA, CharacterDatabase, Map::GetInstanceId(), instance, PreparedStatementBase::SetData(), and StoreGameObjectState().

Referenced by InstanceMap::CreateInstanceScript().

◆ LoadMinionData()

◆ LoadObjectData() [1/2]

void InstanceScript::LoadObjectData ( ObjectData const *  creatureData,
ObjectData const *  gameObjectData 
)
protected
194{
195 if (creatureData)
196 {
198 }
199
200 if (gameObjectData)
201 {
203 }
204
205 LOG_DEBUG("scripts", "InstanceScript::LoadObjectData: {} objects loaded.", _creatureInfo.size() + _gameObjectInfo.size());
206}
void LoadObjectData(ObjectData const *creatureData, ObjectData const *gameObjectData)
Definition InstanceScript.cpp:193
ObjectData const creatureData[]
Definition instance_blackwing_lair.cpp:45
ObjectData const gameObjectData[]
Definition instance_karazhan.cpp:54

References _creatureInfo, _gameObjectInfo, creatureData, gameObjectData, LoadObjectData(), and LOG_DEBUG.

Referenced by instance_zulaman::instance_zulaman_InstanceMapScript::Initialize(), instance_onyxias_lair::instance_onyxias_lair_InstanceMapScript::Initialize(), instance_halls_of_stone::instance_halls_of_stone_InstanceMapScript::Initialize(), instance_utgarde_pinnacle::instance_utgarde_pinnacle_InstanceMapScript::Initialize(), instance_serpent_shrine::instance_serpentshrine_cavern_InstanceMapScript::Initialize(), instance_the_underbog::instance_the_underbog_InstanceMapScript::Initialize(), instance_shattered_halls::instance_shattered_halls_InstanceMapScript::Initialize(), instance_ahnkahet::instance_ahnkahet_InstanceScript::instance_ahnkahet_InstanceScript(), instance_arcatraz::instance_arcatraz_InstanceMapScript::instance_arcatraz_InstanceMapScript(), instance_azjol_nerub::instance_azjol_nerub_InstanceScript::instance_azjol_nerub_InstanceScript(), instance_black_temple::instance_black_temple_InstanceMapScript::instance_black_temple_InstanceMapScript(), instance_blackwing_lair::instance_blackwing_lair(), instance_blood_furnace::instance_blood_furnace_InstanceMapScript::instance_blood_furnace_InstanceMapScript(), instance_eye_of_eternity::instance_eye_of_eternity(), instance_forge_of_souls::instance_forge_of_souls_InstanceScript::instance_forge_of_souls_InstanceScript(), instance_gruuls_lair::instance_gruuls_lair_InstanceMapScript::instance_gruuls_lair_InstanceMapScript(), instance_halls_of_lightning::instance_halls_of_lightning_InstanceMapScript::instance_halls_of_lightning_InstanceMapScript(), instance_halls_of_reflection::instance_halls_of_reflection(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::instance_icecrown_citadel_InstanceMapScript(), instance_karazhan::instance_karazhan_InstanceMapScript::instance_karazhan_InstanceMapScript(), instance_magisters_terrace::instance_magisters_terrace_InstanceMapScript::instance_magisters_terrace_InstanceMapScript(), instance_hyjal::instance_mount_hyjal_InstanceMapScript::instance_mount_hyjal_InstanceMapScript(), instance_naxxramas::instance_naxxramas(), instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::instance_obsidian_sanctum_InstanceMapScript(), instance_ruins_of_ahnqiraj::instance_ruins_of_ahnqiraj_InstanceMapScript::instance_ruins_of_ahnqiraj_InstanceMapScript(), instance_sethekk_halls::instance_sethekk_halls_InstanceMapScript::instance_sethekk_halls_InstanceMapScript(), instance_shadow_labyrinth::instance_shadow_labyrinth_InstanceMapScript::instance_shadow_labyrinth_InstanceMapScript(), instance_steam_vault::instance_steam_vault_InstanceMapScript::instance_steam_vault_InstanceMapScript(), instance_sunwell_plateau::instance_sunwell_plateau_InstanceMapScript::instance_sunwell_plateau_InstanceMapScript(), instance_temple_of_ahnqiraj::instance_temple_of_ahnqiraj_InstanceMapScript::instance_temple_of_ahnqiraj_InstanceMapScript(), instance_the_black_morass::instance_the_black_morass_InstanceMapScript::instance_the_black_morass_InstanceMapScript(), instance_the_eye::instance_the_eye_InstanceMapScript::instance_the_eye_InstanceMapScript(), instance_the_slave_pens::instance_the_slave_pens_InstanceMapScript::instance_the_slave_pens_InstanceMapScript(), instance_ulduar::instance_ulduar_InstanceMapScript::instance_ulduar_InstanceMapScript(), instance_utgarde_keep::instance_utgarde_keep_InstanceMapScript::instance_utgarde_keep_InstanceMapScript(), instance_zulgurub::instance_zulgurub_InstanceMapScript::instance_zulgurub_InstanceMapScript(), and LoadObjectData().

◆ LoadObjectData() [2/2]

void InstanceScript::LoadObjectData ( ObjectData const *  creatureData,
ObjectInfoMap objectInfo 
)
staticprivate
209{
210 while (data->entry)
211 {
212 objectInfo[data->entry] = data->type;
213 ++data;
214 }
215}

References ObjectData::entry, and ObjectData::type.

◆ LoadSummonData()

◆ MarkAreaTriggerDone()

void InstanceScript::MarkAreaTriggerDone ( uint32  id)
inline
279{ _activatedAreaTriggers.insert(id); }

References _activatedAreaTriggers.

◆ OnCreatureCreate()

void InstanceScript::OnCreatureCreate ( Creature creature)
overridevirtual

Reimplemented from ZoneScript.

71{
72 AddObject(creature);
73 AddMinion(creature);
74
75 if (creature->IsSummon())
76 SetSummoner(creature);
77}
void AddMinion(Creature *minion, bool add=true)
Definition InstanceScript.cpp:363
void SetSummoner(Creature *creature)
Definition InstanceScript.cpp:380
bool IsSummon() const
Definition Unit.h:794

References AddMinion(), AddObject(), Unit::IsSummon(), and SetSummoner().

Referenced by instance_blackwing_lair::OnCreatureCreate(), instance_karazhan::instance_karazhan_InstanceMapScript::OnCreatureCreate(), instance_zulaman::instance_zulaman_InstanceMapScript::OnCreatureCreate(), instance_zulgurub::instance_zulgurub_InstanceMapScript::OnCreatureCreate(), instance_hyjal::instance_mount_hyjal_InstanceMapScript::OnCreatureCreate(), instance_the_black_morass::instance_the_black_morass_InstanceMapScript::OnCreatureCreate(), instance_ruins_of_ahnqiraj::instance_ruins_of_ahnqiraj_InstanceMapScript::OnCreatureCreate(), instance_temple_of_ahnqiraj::instance_temple_of_ahnqiraj_InstanceMapScript::OnCreatureCreate(), instance_forge_of_souls::instance_forge_of_souls_InstanceScript::OnCreatureCreate(), instance_halls_of_reflection::OnCreatureCreate(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::OnCreatureCreate(), instance_naxxramas::OnCreatureCreate(), instance_eye_of_eternity::OnCreatureCreate(), instance_halls_of_stone::instance_halls_of_stone_InstanceMapScript::OnCreatureCreate(), instance_ulduar::instance_ulduar_InstanceMapScript::OnCreatureCreate(), instance_utgarde_keep::instance_utgarde_keep_InstanceMapScript::OnCreatureCreate(), instance_shadow_labyrinth::instance_shadow_labyrinth_InstanceMapScript::OnCreatureCreate(), instance_black_temple::instance_black_temple_InstanceMapScript::OnCreatureCreate(), instance_serpent_shrine::instance_serpentshrine_cavern_InstanceMapScript::OnCreatureCreate(), instance_the_slave_pens::instance_the_slave_pens_InstanceMapScript::OnCreatureCreate(), instance_blood_furnace::instance_blood_furnace_InstanceMapScript::OnCreatureCreate(), instance_shattered_halls::instance_shattered_halls_InstanceMapScript::OnCreatureCreate(), instance_the_eye::instance_the_eye_InstanceMapScript::OnCreatureCreate(), and instance_utgarde_pinnacle::instance_utgarde_pinnacle_InstanceMapScript::OnCreatureCreate().

◆ OnCreatureRemove()

void InstanceScript::OnCreatureRemove ( Creature creature)
overridevirtual

◆ OnGameObjectCreate()

void InstanceScript::OnGameObjectCreate ( GameObject go)
overridevirtual

Reimplemented from ZoneScript.

86{
87 AddObject(go);
88 AddDoor(go);
89 sScriptMgr->AfterInstanceGameObjectCreate(instance, go);
90}
#define sScriptMgr
Definition ScriptMgr.h:734
void AddDoor(GameObject *door, bool add=true)
Definition InstanceScript.cpp:336

References AddDoor(), AddObject(), instance, and sScriptMgr.

Referenced by instance_eye_of_eternity::OnGameObjectCreate(), instance_ulduar::instance_ulduar_InstanceMapScript::OnGameObjectCreate(), instance_blackrock_spire::OnGameObjectCreate(), instance_blackwing_lair::OnGameObjectCreate(), instance_karazhan::instance_karazhan_InstanceMapScript::OnGameObjectCreate(), instance_zulaman::instance_zulaman_InstanceMapScript::OnGameObjectCreate(), instance_zulgurub::instance_zulgurub_InstanceMapScript::OnGameObjectCreate(), instance_hyjal::instance_mount_hyjal_InstanceMapScript::OnGameObjectCreate(), instance_temple_of_ahnqiraj::instance_temple_of_ahnqiraj_InstanceMapScript::OnGameObjectCreate(), instance_ahnkahet::instance_ahnkahet_InstanceScript::OnGameObjectCreate(), instance_halls_of_reflection::OnGameObjectCreate(), instance_naxxramas::OnGameObjectCreate(), instance_black_temple::instance_black_temple_InstanceMapScript::OnGameObjectCreate(), instance_serpent_shrine::instance_serpentshrine_cavern_InstanceMapScript::OnGameObjectCreate(), instance_steam_vault::instance_steam_vault_InstanceMapScript::OnGameObjectCreate(), instance_blood_furnace::instance_blood_furnace_InstanceMapScript::OnGameObjectCreate(), and instance_the_eye::instance_the_eye_InstanceMapScript::OnGameObjectCreate().

◆ OnGameObjectRemove()

void InstanceScript::OnGameObjectRemove ( GameObject go)
overridevirtual

Reimplemented from ZoneScript.

93{
94 RemoveObject(go);
95 RemoveDoor(go);
96}
void RemoveDoor(GameObject *door)
Definition InstanceScript.cpp:358

References RemoveDoor(), and RemoveObject().

Referenced by instance_blackwing_lair::OnGameObjectRemove(), and instance_naxxramas::OnGameObjectRemove().

◆ OnPlayerAreaUpdate()

virtual void InstanceScript::OnPlayerAreaUpdate ( Player ,
uint32  ,
uint32   
)
inlinevirtual

◆ OnPlayerEnter()

void InstanceScript::OnPlayerEnter ( Player player)
virtual

Reimplemented in instance_blackrock_depths, instance_molten_core, instance_zulaman::instance_zulaman_InstanceMapScript, instance_ruby_sanctum::instance_ruby_sanctum_InstanceMapScript, instance_vault_of_archavon::instance_vault_of_archavon_InstanceMapScript, instance_stratholme::instance_stratholme_InstanceMapScript, instance_sunwell_plateau::instance_sunwell_plateau_InstanceMapScript, instance_old_hillsbrad::instance_old_hillsbrad_InstanceMapScript, instance_the_black_morass::instance_the_black_morass_InstanceMapScript, instance_ruins_of_ahnqiraj::instance_ruins_of_ahnqiraj_InstanceMapScript, instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript, instance_forge_of_souls::instance_forge_of_souls_InstanceScript, instance_pit_of_saron::instance_pit_of_saron_InstanceScript, instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript, instance_naxxramas, instance_eye_of_eternity, instance_oculus::instance_oculus_InstanceMapScript, instance_ulduar::instance_ulduar_InstanceMapScript, instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript, instance_trial_of_the_crusader::instance_trial_of_the_crusader_InstanceMapScript, instance_utgarde_keep::instance_utgarde_keep_InstanceMapScript, and instance_violet_hold::instance_violet_hold_InstanceMapScript.

59{
61 player->SetFaction((_teamIdInInstance == TEAM_HORDE) ? 1610 /*FACTION_HORDE*/ : 1 /*FACTION_ALLIANCE*/);
62}
@ TEAM_HORDE
Definition SharedDefines.h:749
@ CONFIG_ALLOW_TWO_SIDE_INTERACTION_GROUP
Definition WorldConfig.h:34
bool IsTwoFactionInstance() const
Definition InstanceScript.cpp:875
void SetFaction(uint32 faction)
Definition Unit.cpp:7056
#define sWorld
Definition World.h:316

References _teamIdInInstance, CONFIG_ALLOW_TWO_SIDE_INTERACTION_GROUP, IsTwoFactionInstance(), Unit::SetFaction(), sWorld, and TEAM_HORDE.

Referenced by InstanceMap::AddPlayerToMap(), instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::OnPlayerEnter(), instance_forge_of_souls::instance_forge_of_souls_InstanceScript::OnPlayerEnter(), instance_pit_of_saron::instance_pit_of_saron_InstanceScript::OnPlayerEnter(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::OnPlayerEnter(), instance_naxxramas::OnPlayerEnter(), and instance_trial_of_the_crusader::instance_trial_of_the_crusader_InstanceMapScript::OnPlayerEnter().

◆ OnPlayerInWaterStateUpdate()

virtual void InstanceScript::OnPlayerInWaterStateUpdate ( Player ,
bool   
)
inlinevirtual

◆ OnPlayerLeave()

void InstanceScript::OnPlayerLeave ( Player player)
virtual
65{
67 player->SetFactionForRace(player->getRace());
68}
void SetFactionForRace(uint8 race)
Definition Player.cpp:5833
uint8 getRace(bool original=false) const
Definition Unit.cpp:17013

References CONFIG_ALLOW_TWO_SIDE_INTERACTION_GROUP, Unit::getRace(), IsTwoFactionInstance(), Player::SetFactionForRace(), and sWorld.

Referenced by InstanceMap::RemovePlayerFromMap().

◆ ReadSaveDataBossStates()

void InstanceScript::ReadSaveDataBossStates ( std::istringstream &  data)
protected
495{
496 uint32 bossId = 0;
497 for (std::vector<BossInfo>::iterator i = bosses.begin(); i != bosses.end(); ++i, ++bossId)
498 {
499 uint32 buff;
500 data >> buff;
501 if (buff == IN_PROGRESS || buff == FAIL || buff == SPECIAL)
502 buff = NOT_STARTED;
503
504 if (buff < TO_BE_DECIDED)
505 SetBossState(bossId, EncounterState(buff));
506 }
507}
std::uint32_t uint32
Definition Define.h:107
EncounterState
Definition InstanceScript.h:57
virtual bool SetBossState(uint32 id, EncounterState state)
Definition InstanceScript.cpp:390

References bosses, FAIL, IN_PROGRESS, NOT_STARTED, SetBossState(), SPECIAL, and TO_BE_DECIDED.

Referenced by Load().

◆ ReadSaveDataHeaders()

bool InstanceScript::ReadSaveDataHeaders ( std::istringstream &  data)
protected
481{
482 for (char header : headers)
483 {
484 char buff;
485 data >> buff;
486
487 if (header != buff)
488 return false;
489 }
490
491 return true;
492}
std::vector< char > headers
Definition InstanceScript.h:346

References headers.

Referenced by Load().

◆ ReadSaveDataMore()

virtual void InstanceScript::ReadSaveDataMore ( std::istringstream &  )
inlineprotectedvirtual

Reimplemented in instance_blackwing_lair, instance_gnomeregan::instance_gnomeregan_InstanceMapScript, instance_scholomance::instance_scholomance_InstanceMapScript, instance_shadowfang_keep::instance_shadowfang_keep_InstanceMapScript, instance_stratholme::instance_stratholme_InstanceMapScript, instance_sunken_temple::instance_sunken_temple_InstanceMapScript, instance_uldaman::instance_uldaman_InstanceMapScript, instance_blackfathom_deeps::instance_blackfathom_deeps_InstanceMapScript, instance_old_hillsbrad::instance_old_hillsbrad_InstanceMapScript, instance_dire_maul::instance_dire_maul_InstanceMapScript, instance_maraudon::instance_maraudon_InstanceMapScript, instance_razorfen_downs::instance_razorfen_downs_InstanceMapScript, instance_wailing_caverns::instance_wailing_caverns_InstanceMapScript, instance_zulfarrak::instance_zulfarrak_InstanceMapScript, instance_trial_of_the_crusader::instance_trial_of_the_crusader_InstanceMapScript, instance_pit_of_saron::instance_pit_of_saron_InstanceScript, instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript, instance_oculus::instance_oculus_InstanceMapScript, instance_halls_of_stone::instance_halls_of_stone_InstanceMapScript, instance_utgarde_keep::instance_utgarde_keep_InstanceMapScript, instance_utgarde_pinnacle::instance_utgarde_pinnacle_InstanceMapScript, instance_vault_of_archavon::instance_vault_of_archavon_InstanceMapScript, instance_violet_hold::instance_violet_hold_InstanceMapScript, and instance_shattered_halls::instance_shattered_halls_InstanceMapScript.

337{ }

Referenced by Load().

◆ ReadSavePersistentData()

void InstanceScript::ReadSavePersistentData ( std::istringstream &  data)
protected
510{
511 for (uint32 i = 0; i < persistentData.size(); ++i)
512 {
513 data >> persistentData[i];
514 }
515}

References persistentData.

Referenced by Load().

◆ RemoveDoor()

◆ RemoveMinion()

void InstanceScript::RemoveMinion ( Creature minion)
protected

◆ RemoveObject() [1/3]

void InstanceScript::RemoveObject ( Creature obj)
protected
297{
298 AddObject(obj, false);
299}

References AddObject().

Referenced by OnCreatureRemove(), and OnGameObjectRemove().

◆ RemoveObject() [2/3]

void InstanceScript::RemoveObject ( GameObject obj)
protected
311{
312 AddObject(obj, false);
313}

References AddObject().

◆ RemoveObject() [3/3]

void InstanceScript::RemoveObject ( WorldObject obj,
uint32  type 
)
protected
332{
333 AddObject(obj, type, false);
334}

References AddObject().

◆ ResetAreaTriggerDone()

void InstanceScript::ResetAreaTriggerDone ( uint32  id)
inline

◆ SaveToDB()

void InstanceScript::SaveToDB ( )
42{
43 std::string data = GetSaveData();
44 //if (data.empty()) // pussywizard: encounterMask can be updated and theres no reason to not save
45 // return;
46
47 // pussywizard:
48 InstanceSave* save = sInstanceSaveMgr->GetInstanceSave(instance->GetInstanceId());
49 if (save)
50 save->SetInstanceData(data);
51
53 stmt->SetData(0, data);
54 stmt->SetData(1, instance->GetInstanceId());
55 CharacterDatabase.Execute(stmt);
56}
@ CHAR_UPD_INSTANCE_SAVE_DATA
Definition CharacterDatabase.h:212
#define sInstanceSaveMgr
Definition InstanceSaveMgr.h:202
Definition InstanceSaveMgr.h:56
void SetInstanceData(std::string str)
Definition InstanceSaveMgr.h:70
virtual std::string GetSaveData()
Definition InstanceScript.cpp:517

References CHAR_UPD_INSTANCE_SAVE_DATA, CharacterDatabase, Map::GetInstanceId(), GetSaveData(), instance, PreparedStatementBase::SetData(), InstanceSave::SetInstanceData(), and sInstanceSaveMgr.

Referenced by BossAI::_EnterEvadeMode(), BossAI::_JustDied(), instance_trial_of_the_crusader::instance_trial_of_the_crusader_InstanceMapScript::DoCheckDedicatedInsanity(), boss_kologarn::EnterEvadeMode(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::HandleDropAttempt(), instance_commandscript::HandleInstanceSaveDataCommand(), instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::InstanceCleanup(), boss_victor_nefarius::JustDied(), boss_mandokir::boss_mandokirAI::JustDied(), instance_trial_of_the_crusader::instance_trial_of_the_crusader_InstanceMapScript::OnUnitDeath(), instance_stratholme::instance_stratholme_InstanceMapScript::OnUnitDeath(), instance_zulfarrak::instance_zulfarrak_InstanceMapScript::OnUnitDeath(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::ProcessEvent(), SetBossState(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::SetBossState(), instance_blackrock_depths::SetData(), instance_deadmines::instance_deadmines_InstanceMapScript::SetData(), instance_gnomeregan::instance_gnomeregan_InstanceMapScript::SetData(), instance_scholomance::instance_scholomance_InstanceMapScript::SetData(), instance_shadowfang_keep::instance_shadowfang_keep_InstanceMapScript::SetData(), instance_stratholme::instance_stratholme_InstanceMapScript::SetData(), instance_sunken_temple::instance_sunken_temple_InstanceMapScript::SetData(), instance_uldaman::instance_uldaman_InstanceMapScript::SetData(), instance_blackfathom_deeps::instance_blackfathom_deeps_InstanceMapScript::SetData(), instance_hyjal::instance_mount_hyjal_InstanceMapScript::SetData(), instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::SetData(), instance_old_hillsbrad::instance_old_hillsbrad_InstanceMapScript::SetData(), instance_dire_maul::instance_dire_maul_InstanceMapScript::SetData(), instance_maraudon::instance_maraudon_InstanceMapScript::SetData(), instance_razorfen_downs::instance_razorfen_downs_InstanceMapScript::SetData(), instance_wailing_caverns::instance_wailing_caverns_InstanceMapScript::SetData(), instance_zulfarrak::instance_zulfarrak_InstanceMapScript::SetData(), instance_trial_of_the_crusader::instance_trial_of_the_crusader_InstanceMapScript::SetData(), instance_pit_of_saron::instance_pit_of_saron_InstanceScript::SetData(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::SetData(), instance_oculus::instance_oculus_InstanceMapScript::SetData(), instance_halls_of_stone::instance_halls_of_stone_InstanceMapScript::SetData(), instance_utgarde_keep::instance_utgarde_keep_InstanceMapScript::SetData(), instance_utgarde_pinnacle::instance_utgarde_pinnacle_InstanceMapScript::SetData(), instance_vault_of_archavon::instance_vault_of_archavon_InstanceMapScript::SetData(), instance_violet_hold::instance_violet_hold_InstanceMapScript::SetData(), instance_ahnkahet::instance_ahnkahet_InstanceScript::SetData(), instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::SetData(), StorePersistentData(), instance_stratholme::instance_stratholme_InstanceMapScript::Update(), instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::Update(), instance_old_hillsbrad::instance_old_hillsbrad_InstanceMapScript::Update(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::Update(), and instance_violet_hold::instance_violet_hold_InstanceMapScript::Update().

◆ SendEncounterUnit()

void InstanceScript::SendEncounterUnit ( uint32  type,
Unit unit = nullptr,
uint8  param1 = 0,
uint8  param2 = 0 
)
763{
764 // size of this packet is at most 15 (usually less)
766 data << uint32(type);
767
768 switch (type)
769 {
773 data << unit->GetPackGUID();
774 data << uint8(param1);
775 break;
779 data << uint8(param1);
780 break;
782 data << uint8(param1);
783 data << uint8(param2);
784 break;
786 default:
787 break;
788 }
789
790 instance->SendToPlayers(&data);
791}
@ ENCOUNTER_FRAME_ENABLE_OBJECTIVE
Definition InstanceScript.h:50
@ ENCOUNTER_FRAME_DISENGAGE
Definition InstanceScript.h:47
@ ENCOUNTER_FRAME_UPDATE_PRIORITY
Definition InstanceScript.h:48
@ ENCOUNTER_FRAME_DISABLE_OBJECTIVE
Definition InstanceScript.h:52
@ ENCOUNTER_FRAME_UPDATE_OBJECTIVE
Definition InstanceScript.h:51
@ ENCOUNTER_FRAME_REFRESH_FRAMES
Definition InstanceScript.h:53
@ ENCOUNTER_FRAME_ADD_TIMER
Definition InstanceScript.h:49
@ ENCOUNTER_FRAME_ENGAGE
Definition InstanceScript.h:46
void SendToPlayers(WorldPacket const *data) const
Definition Map.cpp:1822
PackedGuid const & GetPackGUID() const
Definition Object.h:116
Definition WorldPacket.h:26
@ SMSG_UPDATE_INSTANCE_ENCOUNTER_UNIT
Definition Opcodes.h:562

References ENCOUNTER_FRAME_ADD_TIMER, ENCOUNTER_FRAME_DISABLE_OBJECTIVE, ENCOUNTER_FRAME_DISENGAGE, ENCOUNTER_FRAME_ENABLE_OBJECTIVE, ENCOUNTER_FRAME_ENGAGE, ENCOUNTER_FRAME_REFRESH_FRAMES, ENCOUNTER_FRAME_UPDATE_OBJECTIVE, ENCOUNTER_FRAME_UPDATE_PRIORITY, Object::GetPackGUID(), instance, Map::SendToPlayers(), and SMSG_UPDATE_INSTANCE_ENCOUNTER_UNIT.

Referenced by boss_valithria_dreamwalker::boss_valithria_dreamwalkerAI::DamageTaken(), npc_high_overlord_saurfang_igb::npc_high_overlord_saurfang_igbAI::DoAction(), npc_muradin_bronzebeard_igb::npc_muradin_bronzebeard_igbAI::DoAction(), boss_valithria_dreamwalker::boss_valithria_dreamwalkerAI::DoAction(), boss_halion::boss_halionAI::EnterEvadeMode(), boss_valithria_dreamwalker::boss_valithria_dreamwalkerAI::HealReceived(), boss_prince_keleseth_icc::boss_prince_kelesethAI::JustDied(), boss_prince_taldaram_icc::boss_prince_taldaramAI::JustDied(), boss_prince_valanar_icc::boss_prince_valanarAI::JustDied(), npc_gunship::npc_gunshipAI::JustDied(), boss_halion::boss_halionAI::JustDied(), boss_twilight_halion::boss_twilight_halionAI::JustDied(), boss_halion::boss_halionAI::JustEngagedWith(), boss_prince_keleseth_icc::boss_prince_kelesethAI::JustEngagedWith(), boss_prince_taldaram_icc::boss_prince_taldaramAI::JustEngagedWith(), boss_prince_valanar_icc::boss_prince_valanarAI::JustEngagedWith(), boss_prince_keleseth_icc::boss_prince_kelesethAI::JustReachedHome(), boss_prince_taldaram_icc::boss_prince_taldaramAI::JustReachedHome(), boss_prince_valanar_icc::boss_prince_valanarAI::JustReachedHome(), boss_valithria_dreamwalker::boss_valithria_dreamwalkerAI::Reset(), and boss_twilight_halion::boss_twilight_halionAI::UpdateAI().

◆ ServerAllowsTwoSideGroups()

bool InstanceScript::ServerAllowsTwoSideGroups ( )
inline

◆ SetBossNumber()

void InstanceScript::SetBossNumber ( uint32  number)
inlineprotected
306{ bosses.resize(number); }

References bosses.

Referenced by instance_zulaman::instance_zulaman_InstanceMapScript::Initialize(), instance_onyxias_lair::instance_onyxias_lair_InstanceMapScript::Initialize(), instance_gundrak::instance_gundrak_InstanceMapScript::Initialize(), instance_nexus::instance_nexus_InstanceMapScript::Initialize(), instance_halls_of_stone::instance_halls_of_stone_InstanceMapScript::Initialize(), instance_serpent_shrine::instance_serpentshrine_cavern_InstanceMapScript::Initialize(), instance_the_underbog::instance_the_underbog_InstanceMapScript::Initialize(), instance_hellfire_ramparts::instance_hellfire_ramparts_InstanceMapScript::Initialize(), instance_shattered_halls::instance_shattered_halls_InstanceMapScript::Initialize(), instance_ahnkahet::instance_ahnkahet_InstanceScript::instance_ahnkahet_InstanceScript(), instance_arcatraz::instance_arcatraz_InstanceMapScript::instance_arcatraz_InstanceMapScript(), instance_auchenai_crypts::instance_auchenai_crypts_InstanceMapScript::instance_auchenai_crypts_InstanceMapScript(), instance_azjol_nerub::instance_azjol_nerub_InstanceScript::instance_azjol_nerub_InstanceScript(), instance_black_temple::instance_black_temple_InstanceMapScript::instance_black_temple_InstanceMapScript(), instance_blackrock_spire::instance_blackrock_spire(), instance_blackwing_lair::instance_blackwing_lair(), instance_blood_furnace::instance_blood_furnace_InstanceMapScript::instance_blood_furnace_InstanceMapScript(), instance_drak_tharon_keep::instance_drak_tharon_keep(), instance_eye_of_eternity::instance_eye_of_eternity(), instance_forge_of_souls::instance_forge_of_souls_InstanceScript::instance_forge_of_souls_InstanceScript(), instance_gruuls_lair::instance_gruuls_lair_InstanceMapScript::instance_gruuls_lair_InstanceMapScript(), instance_halls_of_lightning::instance_halls_of_lightning_InstanceMapScript::instance_halls_of_lightning_InstanceMapScript(), instance_halls_of_reflection::instance_halls_of_reflection(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::instance_icecrown_citadel_InstanceMapScript(), instance_karazhan::instance_karazhan_InstanceMapScript::instance_karazhan_InstanceMapScript(), instance_magisters_terrace::instance_magisters_terrace_InstanceMapScript::instance_magisters_terrace_InstanceMapScript(), instance_magtheridons_lair::instance_magtheridons_lair_InstanceMapScript::instance_magtheridons_lair_InstanceMapScript(), instance_mana_tombs::instance_mana_tombs_InstanceMapScript::instance_mana_tombs_InstanceMapScript(), instance_mechanar::instance_mechanar_InstanceMapScript::instance_mechanar_InstanceMapScript(), instance_molten_core::instance_molten_core(), instance_hyjal::instance_mount_hyjal_InstanceMapScript::instance_mount_hyjal_InstanceMapScript(), instance_naxxramas::instance_naxxramas(), instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::instance_obsidian_sanctum_InstanceMapScript(), instance_ruby_sanctum::instance_ruby_sanctum_InstanceMapScript::instance_ruby_sanctum_InstanceMapScript(), instance_ruins_of_ahnqiraj::instance_ruins_of_ahnqiraj_InstanceMapScript::instance_ruins_of_ahnqiraj_InstanceMapScript(), instance_sethekk_halls::instance_sethekk_halls_InstanceMapScript::instance_sethekk_halls_InstanceMapScript(), instance_shadow_labyrinth::instance_shadow_labyrinth_InstanceMapScript::instance_shadow_labyrinth_InstanceMapScript(), instance_steam_vault::instance_steam_vault_InstanceMapScript::instance_steam_vault_InstanceMapScript(), instance_sunwell_plateau::instance_sunwell_plateau_InstanceMapScript::instance_sunwell_plateau_InstanceMapScript(), instance_temple_of_ahnqiraj::instance_temple_of_ahnqiraj_InstanceMapScript::instance_temple_of_ahnqiraj_InstanceMapScript(), instance_the_black_morass::instance_the_black_morass_InstanceMapScript::instance_the_black_morass_InstanceMapScript(), instance_the_botanica::instance_the_botanica_InstanceMapScript::instance_the_botanica_InstanceMapScript(), instance_the_eye::instance_the_eye_InstanceMapScript::instance_the_eye_InstanceMapScript(), instance_ulduar::instance_ulduar_InstanceMapScript::instance_ulduar_InstanceMapScript(), instance_utgarde_keep::instance_utgarde_keep_InstanceMapScript::instance_utgarde_keep_InstanceMapScript(), and instance_zulgurub::instance_zulgurub_InstanceMapScript::instance_zulgurub_InstanceMapScript().

◆ SetBossState()

bool InstanceScript::SetBossState ( uint32  id,
EncounterState  state 
)
virtual

Reimplemented in instance_molten_core, instance_naxxramas, instance_steam_vault::instance_steam_vault_InstanceMapScript, instance_nexus::instance_nexus_InstanceMapScript, instance_gruuls_lair::instance_gruuls_lair_InstanceMapScript, instance_magtheridons_lair::instance_magtheridons_lair_InstanceMapScript, instance_blackrock_spire, instance_blackwing_lair, instance_karazhan::instance_karazhan_InstanceMapScript, instance_zulaman::instance_zulaman_InstanceMapScript, instance_zulgurub::instance_zulgurub_InstanceMapScript, instance_the_black_morass::instance_the_black_morass_InstanceMapScript, instance_onyxias_lair::instance_onyxias_lair_InstanceMapScript, instance_temple_of_ahnqiraj::instance_temple_of_ahnqiraj_InstanceMapScript, instance_ruby_sanctum::instance_ruby_sanctum_InstanceMapScript, instance_forge_of_souls::instance_forge_of_souls_InstanceScript, instance_halls_of_reflection, instance_gundrak::instance_gundrak_InstanceMapScript, instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript, instance_eye_of_eternity, instance_ulduar::instance_ulduar_InstanceMapScript, instance_utgarde_keep::instance_utgarde_keep_InstanceMapScript, instance_black_temple::instance_black_temple_InstanceMapScript, instance_serpent_shrine::instance_serpentshrine_cavern_InstanceMapScript, instance_blood_furnace::instance_blood_furnace_InstanceMapScript, instance_hellfire_ramparts::instance_hellfire_ramparts_InstanceMapScript, and instance_arcatraz::instance_arcatraz_InstanceMapScript.

391{
392 if (id < bosses.size())
393 {
394 BossInfo* bossInfo = &bosses[id];
395 sScriptMgr->OnBeforeSetBossState(id, state, bossInfo->state, instance);
396 if (bossInfo->state == TO_BE_DECIDED) // loading
397 {
398 bossInfo->state = state;
399 return false;
400 }
401 else
402 {
403 if (bossInfo->state == state)
404 return false;
405
406 if (state == DONE)
407 for (MinionSet::iterator i = bossInfo->minion.begin(); i != bossInfo->minion.end(); ++i)
408 if ((*i)->isWorldBoss() && (*i)->IsAlive())
409 return false;
410
411 bossInfo->state = state;
412 SaveToDB();
413 }
414
415 for (uint32 type = 0; type < MAX_DOOR_TYPES; ++type)
416 for (DoorSet::iterator i = bossInfo->door[type].begin(); i != bossInfo->door[type].end(); ++i)
417 UpdateDoorState(*i);
418
419 for (MinionSet::iterator i = bossInfo->minion.begin(); i != bossInfo->minion.end(); ++i)
420 UpdateMinionState(*i, state);
421
422 return true;
423 }
424 return false;
425}
@ MAX_DOOR_TYPES
Definition InstanceScript.h:71
void UpdateMinionState(Creature *minion, EncounterState state)
Definition InstanceScript.cpp:226
void SaveToDB()
Definition InstanceScript.cpp:41
EncounterState state
Definition InstanceScript.h:114

References bosses, DONE, BossInfo::door, instance, MAX_DOOR_TYPES, BossInfo::minion, SaveToDB(), sScriptMgr, BossInfo::state, TO_BE_DECIDED, UpdateDoorState(), and UpdateMinionState().

Referenced by BossAI::_EnterEvadeMode(), BossAI::_JustDied(), BossAI::_JustEngagedWith(), BossAI::_Reset(), boss_freya::boss_freya(), boss_hodir::boss_hodir(), boss_mimiron::boss_mimiron(), boss_thorim::boss_thorim(), boss_freya::DamageTaken(), boss_hodir::DamageTaken(), npc_warden_mellichar::npc_warden_mellicharAI::DamageTaken(), boss_thorim::DamageTaken(), npc_high_overlord_saurfang_igb::npc_high_overlord_saurfang_igbAI::DoAction(), npc_muradin_bronzebeard_igb::npc_muradin_bronzebeard_igbAI::DoAction(), boss_broggok::DoAction(), boss_hadronox::DoAction(), npc_icc_gauntlet_controller::npc_icc_gauntlet_controllerAI::DoAction(), boss_dorothee::EnterEvadeMode(), boss_roar::EnterEvadeMode(), boss_strawman::EnterEvadeMode(), boss_tinhead::EnterEvadeMode(), boss_crone::EnterEvadeMode(), boss_bigbadwolf::EnterEvadeMode(), boss_julianne::EnterEvadeMode(), boss_romulo::EnterEvadeMode(), boss_gyth::EnterEvadeMode(), boss_rend_blackhand::EnterEvadeMode(), boss_sindragosa::boss_sindragosaAI::EnterEvadeMode(), boss_the_lich_king::boss_the_lich_kingAI::EnterEvadeMode(), boss_kologarn::EnterEvadeMode(), boss_ouro::EnterEvadeMode(), npc_dirt_mound::EnterEvadeMode(), spell_felmyst_open_brutallus_back_doors::HandleAfterCast(), instance_commandscript::HandleInstanceSetBossStateCommand(), boss_valithria_dreamwalker::boss_valithria_dreamwalkerAI::HealReceived(), boss_gyth::JustDied(), boss_overlord_wyrmthalak::JustDied(), boss_pyroguard_emberseer::JustDied(), boss_rend_blackhand::JustDied(), boss_victor_nefarius::JustDied(), boss_crone::JustDied(), boss_bigbadwolf::JustDied(), boss_julianne::JustDied(), boss_romulo::JustDied(), boss_priestess_delrissa::JustDied(), boss_sacrolash::JustDied(), boss_alythess::JustDied(), boss_zuljin::JustDied(), boss_mandokir::boss_mandokirAI::JustDied(), npc_ohgan::npc_ohganAI::JustDied(), npc_vilebranch_speaker::JustDied(), boss_sartharion_dragonAI::JustDied(), boss_prince_valanar_icc::boss_prince_valanarAI::JustDied(), npc_gunship::npc_gunshipAI::JustDied(), npc_icc_gauntlet_controller::npc_icc_gauntlet_controllerAI::JustDied(), boss_bjarngrim::JustDied(), boss_steelbreaker::JustDied(), boss_runemaster_molgeim::JustDied(), boss_stormcaller_brundir::JustDied(), boss_flame_leviathan::JustDied(), boss_novos::JustDied(), boss_sartharion_dragonAI::JustEngagedWith(), boss_lord_marrowgar::JustEngagedWith(), boss_bjarngrim::JustEngagedWith(), boss_flame_leviathan::JustEngagedWith(), boss_freya::JustEngagedWith(), boss_hodir::JustEngagedWith(), boss_ignis::JustEngagedWith(), boss_kologarn::JustEngagedWith(), boss_mimiron::JustEngagedWith(), boss_thorim::JustEngagedWith(), boss_xt002::JustEngagedWith(), boss_olm_the_summoner::JustEngagedWith(), boss_kiggler_the_crazed::JustEngagedWith(), boss_blindeye_the_seer::JustEngagedWith(), boss_krosh_firehand::JustEngagedWith(), boss_the_lich_king::boss_the_lich_kingAI::JustEngagedWith(), npc_green_dragon_combat_trigger::npc_green_dragon_combat_triggerAI::JustEngagedWith(), boss_trollgore::boss_trollgoreAI::JustEngagedWith(), boss_prince_valanar_icc::boss_prince_valanarAI::JustEngagedWith(), boss_blood_queen_lana_thel::boss_blood_queen_lana_thelAI::JustEngagedWith(), boss_deathbringer_saurfang::boss_deathbringer_saurfangAI::JustEngagedWith(), boss_lady_deathwhisper::boss_lady_deathwhisperAI::JustEngagedWith(), boss_professor_putricide::boss_professor_putricideAI::JustEngagedWith(), boss_sindragosa::boss_sindragosaAI::JustEngagedWith(), boss_steelbreaker::JustEngagedWith(), boss_prince_valanar_icc::boss_prince_valanarAI::JustReachedHome(), boss_deathbringer_saurfang::boss_deathbringer_saurfangAI::JustReachedHome(), boss_festergut::boss_festergutAI::JustReachedHome(), boss_lord_marrowgar::JustReachedHome(), boss_professor_putricide::boss_professor_putricideAI::JustReachedHome(), boss_rotface::boss_rotfaceAI::JustReachedHome(), boss_mandokir::boss_mandokirAI::MovementInform(), boss_professor_putricide::boss_professor_putricideAI::MovementInform(), npc_akama_illidan::PathEndReached(), SmartScript::ProcessAction(), ReadSaveDataBossStates(), boss_gyth::Reset(), boss_rend_blackhand::Reset(), boss_majordomo::Reset(), boss_priestess_delrissa::Reset(), npc_kiljaeden_controller::Reset(), boss_mandokir::boss_mandokirAI::Reset(), boss_ouro::Reset(), boss_novos::Reset(), boss_prince_valanar_icc::boss_prince_valanarAI::Reset(), boss_blood_queen_lana_thel::boss_blood_queen_lana_thelAI::Reset(), npc_green_dragon_combat_trigger::npc_green_dragon_combat_triggerAI::Reset(), npc_icc_gauntlet_controller::npc_icc_gauntlet_controllerAI::Reset(), boss_bjarngrim::Reset(), boss_steelbreaker::Reset(), boss_runemaster_molgeim::Reset(), boss_stormcaller_brundir::Reset(), boss_flame_leviathan::Reset(), boss_olm_the_summoner::Reset(), boss_kiggler_the_crazed::Reset(), boss_blindeye_the_seer::Reset(), boss_krosh_firehand::Reset(), boss_grand_warlock_nethekurse::Reset(), npc_warden_mellichar::npc_warden_mellicharAI::Reset(), instance_molten_core::SetBossState(), instance_naxxramas::SetBossState(), instance_steam_vault::instance_steam_vault_InstanceMapScript::SetBossState(), instance_nexus::instance_nexus_InstanceMapScript::SetBossState(), instance_gruuls_lair::instance_gruuls_lair_InstanceMapScript::SetBossState(), instance_magtheridons_lair::instance_magtheridons_lair_InstanceMapScript::SetBossState(), instance_blackrock_spire::SetBossState(), instance_blackwing_lair::SetBossState(), instance_karazhan::instance_karazhan_InstanceMapScript::SetBossState(), instance_zulaman::instance_zulaman_InstanceMapScript::SetBossState(), instance_zulgurub::instance_zulgurub_InstanceMapScript::SetBossState(), instance_the_black_morass::instance_the_black_morass_InstanceMapScript::SetBossState(), instance_onyxias_lair::instance_onyxias_lair_InstanceMapScript::SetBossState(), instance_temple_of_ahnqiraj::instance_temple_of_ahnqiraj_InstanceMapScript::SetBossState(), instance_ruby_sanctum::instance_ruby_sanctum_InstanceMapScript::SetBossState(), instance_forge_of_souls::instance_forge_of_souls_InstanceScript::SetBossState(), instance_halls_of_reflection::SetBossState(), instance_gundrak::instance_gundrak_InstanceMapScript::SetBossState(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::SetBossState(), instance_eye_of_eternity::SetBossState(), instance_ulduar::instance_ulduar_InstanceMapScript::SetBossState(), instance_utgarde_keep::instance_utgarde_keep_InstanceMapScript::SetBossState(), instance_black_temple::instance_black_temple_InstanceMapScript::SetBossState(), instance_serpent_shrine::instance_serpentshrine_cavern_InstanceMapScript::SetBossState(), instance_blood_furnace::instance_blood_furnace_InstanceMapScript::SetBossState(), instance_hellfire_ramparts::instance_hellfire_ramparts_InstanceMapScript::SetBossState(), instance_arcatraz::instance_arcatraz_InstanceMapScript::SetBossState(), instance_hyjal::instance_mount_hyjal_InstanceMapScript::SetData(), boss_pyroguard_emberseer::SetData(), boss_shade_of_akama::SpellHit(), npc_barnes::npc_barnesAI::StartEvent(), boss_rend_blackhand::SummonedCreatureDespawn(), boss_priestess_delrissa::SummonedCreatureDies(), boss_majordomo::SummonedCreatureDies(), npc_kiljaeden_controller::SummonedCreatureDies(), npc_warden_mellichar::npc_warden_mellicharAI::SummonedCreatureDies(), boss_pyroguard_emberseer::UpdateAI(), boss_rend_blackhand::UpdateAI(), npc_halion_controller::npc_halion_controllerAI::UpdateAI(), boss_mimiron::UpdateAI(), and boss_thorim::UpdateAI().

◆ SetCompletedEncountersMask()

void InstanceScript::SetCompletedEncountersMask ( uint32  newMask,
bool  save 
)
744{
745 if (completedEncounters == newMask)
746 return;
747 completedEncounters = newMask;
748 // pussywizard:
749 if (save)
750 {
751 InstanceSave* iSave = sInstanceSaveMgr->GetInstanceSave(instance->GetInstanceId());
752 if (iSave)
754
757 stmt->SetData(1, instance->GetInstanceId());
758 CharacterDatabase.Execute(stmt);
759 }
760}
@ CHAR_UPD_INSTANCE_SAVE_ENCOUNTERMASK
Definition CharacterDatabase.h:213
void SetCompletedEncounterMask(uint32 mask)
Definition InstanceSaveMgr.h:72

References CHAR_UPD_INSTANCE_SAVE_ENCOUNTERMASK, CharacterDatabase, completedEncounters, Map::GetInstanceId(), instance, InstanceSave::SetCompletedEncounterMask(), PreparedStatementBase::SetData(), and sInstanceSaveMgr.

Referenced by InstanceMap::CreateInstanceScript().

◆ SetHeaders()

void InstanceScript::SetHeaders ( std::string const &  dataHeaders)
protected
159{
160 for (char header : dataHeaders)
161 {
162 if (isalpha(header))
163 {
164 headers.push_back(header);
165 }
166 }
167}

References headers.

Referenced by instance_uldaman::instance_uldaman_InstanceMapScript::Initialize(), instance_zulaman::instance_zulaman_InstanceMapScript::Initialize(), instance_blackfathom_deeps::instance_blackfathom_deeps_InstanceMapScript::Initialize(), instance_old_hillsbrad::instance_old_hillsbrad_InstanceMapScript::Initialize(), instance_dire_maul::instance_dire_maul_InstanceMapScript::Initialize(), instance_maraudon::instance_maraudon_InstanceMapScript::Initialize(), instance_onyxias_lair::instance_onyxias_lair_InstanceMapScript::Initialize(), instance_razorfen_downs::instance_razorfen_downs_InstanceMapScript::Initialize(), instance_zulfarrak::instance_zulfarrak_InstanceMapScript::Initialize(), instance_nexus::instance_nexus_InstanceMapScript::Initialize(), instance_oculus::instance_oculus_InstanceMapScript::Initialize(), instance_halls_of_stone::instance_halls_of_stone_InstanceMapScript::Initialize(), instance_utgarde_pinnacle::instance_utgarde_pinnacle_InstanceMapScript::Initialize(), instance_vault_of_archavon::instance_vault_of_archavon_InstanceMapScript::Initialize(), instance_violet_hold::instance_violet_hold_InstanceMapScript::Initialize(), instance_serpent_shrine::instance_serpentshrine_cavern_InstanceMapScript::Initialize(), instance_hellfire_ramparts::instance_hellfire_ramparts_InstanceMapScript::Initialize(), instance_ahnkahet::instance_ahnkahet_InstanceScript::instance_ahnkahet_InstanceScript(), instance_arcatraz::instance_arcatraz_InstanceMapScript::instance_arcatraz_InstanceMapScript(), instance_auchenai_crypts::instance_auchenai_crypts_InstanceMapScript::instance_auchenai_crypts_InstanceMapScript(), instance_azjol_nerub::instance_azjol_nerub_InstanceScript::instance_azjol_nerub_InstanceScript(), instance_black_temple::instance_black_temple_InstanceMapScript::instance_black_temple_InstanceMapScript(), instance_blackrock_depths::instance_blackrock_depths(), instance_blackrock_spire::instance_blackrock_spire(), instance_blackwing_lair::instance_blackwing_lair(), instance_blood_furnace::instance_blood_furnace_InstanceMapScript::instance_blood_furnace_InstanceMapScript(), instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::instance_culling_of_stratholme_InstanceMapScript(), instance_deadmines::instance_deadmines_InstanceMapScript::instance_deadmines_InstanceMapScript(), instance_drak_tharon_keep::instance_drak_tharon_keep(), instance_eye_of_eternity::instance_eye_of_eternity(), instance_forge_of_souls::instance_forge_of_souls_InstanceScript::instance_forge_of_souls_InstanceScript(), instance_gnomeregan::instance_gnomeregan_InstanceMapScript::instance_gnomeregan_InstanceMapScript(), instance_gruuls_lair::instance_gruuls_lair_InstanceMapScript::instance_gruuls_lair_InstanceMapScript(), instance_gundrak::instance_gundrak_InstanceMapScript::instance_gundrak_InstanceMapScript(), instance_halls_of_lightning::instance_halls_of_lightning_InstanceMapScript::instance_halls_of_lightning_InstanceMapScript(), instance_halls_of_reflection::instance_halls_of_reflection(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::instance_icecrown_citadel_InstanceMapScript(), instance_karazhan::instance_karazhan_InstanceMapScript::instance_karazhan_InstanceMapScript(), instance_magisters_terrace::instance_magisters_terrace_InstanceMapScript::instance_magisters_terrace_InstanceMapScript(), instance_magtheridons_lair::instance_magtheridons_lair_InstanceMapScript::instance_magtheridons_lair_InstanceMapScript(), instance_mana_tombs::instance_mana_tombs_InstanceMapScript::instance_mana_tombs_InstanceMapScript(), instance_mechanar::instance_mechanar_InstanceMapScript::instance_mechanar_InstanceMapScript(), instance_molten_core::instance_molten_core(), instance_hyjal::instance_mount_hyjal_InstanceMapScript::instance_mount_hyjal_InstanceMapScript(), instance_naxxramas::instance_naxxramas(), instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::instance_obsidian_sanctum_InstanceMapScript(), instance_pit_of_saron::instance_pit_of_saron_InstanceScript::instance_pit_of_saron_InstanceScript(), instance_ruby_sanctum::instance_ruby_sanctum_InstanceMapScript::instance_ruby_sanctum_InstanceMapScript(), instance_ruins_of_ahnqiraj::instance_ruins_of_ahnqiraj_InstanceMapScript::instance_ruins_of_ahnqiraj_InstanceMapScript(), instance_scarlet_monastery::instance_scarlet_monastery_InstanceMapScript::instance_scarlet_monastery_InstanceMapScript(), instance_sethekk_halls::instance_sethekk_halls_InstanceMapScript::instance_sethekk_halls_InstanceMapScript(), instance_shadowfang_keep::instance_shadowfang_keep_InstanceMapScript::instance_shadowfang_keep_InstanceMapScript(), instance_steam_vault::instance_steam_vault_InstanceMapScript::instance_steam_vault_InstanceMapScript(), instance_stratholme::instance_stratholme_InstanceMapScript::instance_stratholme_InstanceMapScript(), instance_sunken_temple::instance_sunken_temple_InstanceMapScript::instance_sunken_temple_InstanceMapScript(), instance_sunwell_plateau::instance_sunwell_plateau_InstanceMapScript::instance_sunwell_plateau_InstanceMapScript(), instance_temple_of_ahnqiraj::instance_temple_of_ahnqiraj_InstanceMapScript::instance_temple_of_ahnqiraj_InstanceMapScript(), instance_the_black_morass::instance_the_black_morass_InstanceMapScript::instance_the_black_morass_InstanceMapScript(), instance_the_botanica::instance_the_botanica_InstanceMapScript::instance_the_botanica_InstanceMapScript(), instance_the_eye::instance_the_eye_InstanceMapScript::instance_the_eye_InstanceMapScript(), instance_the_slave_pens::instance_the_slave_pens_InstanceMapScript::instance_the_slave_pens_InstanceMapScript(), instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::instance_trial_of_the_champion_InstanceMapScript(), instance_trial_of_the_crusader::instance_trial_of_the_crusader_InstanceMapScript::instance_trial_of_the_crusader_InstanceMapScript(), instance_ulduar::instance_ulduar_InstanceMapScript::instance_ulduar_InstanceMapScript(), instance_utgarde_keep::instance_utgarde_keep_InstanceMapScript::instance_utgarde_keep_InstanceMapScript(), and instance_zulgurub::instance_zulgurub_InstanceMapScript::instance_zulgurub_InstanceMapScript().

◆ SetPersistentDataCount()

◆ SetSummoner()

void InstanceScript::SetSummoner ( Creature creature)
protected
381{
382 auto const& summonData = _summonInfo.find(creature->GetEntry());
383
384 if (summonData != _summonInfo.end())
385 if (Creature* summoner = GetCreature(summonData->second))
386 if (summoner->IsAIEnabled)
387 summoner->AI()->JustSummoned(creature);
388}
Creature * GetCreature(uint32 type)
Definition InstanceScript.cpp:115
ObjectData const summonData[]
Definition instance_sunwell_plateau.cpp:64

References _summonInfo, GetCreature(), Object::GetEntry(), and summonData.

Referenced by OnCreatureCreate().

◆ SetTeamIdInInstance()

void InstanceScript::SetTeamIdInInstance ( TeamId  teamId)
inline
300{ _teamIdInInstance = teamId; }

References _teamIdInInstance.

◆ StoreGameObjectState()

void InstanceScript::StoreGameObjectState ( ObjectGuid::LowType  spawnId,
uint8  state 
)
inline
290{ _objectStateMap[spawnId] = state; };

References _objectStateMap.

Referenced by LoadInstanceSavedGameobjectStateData().

◆ StorePersistentData()

void InstanceScript::StorePersistentData ( uint32  index,
uint32  data 
)
428{
429 if (index > persistentData.size())
430 {
431 LOG_ERROR("scripts", "InstanceScript::StorePersistentData() index larger than storage size. Index: {} Size: {} Data: {}.", index, persistentData.size(), data);
432 return;
433 }
434
435 if (persistentData[index] != data)
436 {
437 persistentData[index] = data;
438 SaveToDB();
439 }
440}

References LOG_ERROR, persistentData, and SaveToDB().

Referenced by at_icc_spire_frostwyrm::_OnTrigger(), boss_felblood_kaelthas::DoAction(), instance_zulaman::instance_zulaman_InstanceMapScript::DoAction(), boss_pathaleon_the_calculator::DoAction(), instance_zulaman::instance_zulaman_InstanceMapScript::Initialize(), boss_flame_leviathan::JustReachedHome(), boss_anubrekhan::KilledUnit(), boss_faerlina::boss_faerlinaAI::KilledUnit(), boss_four_horsemen::boss_four_horsemenAI::KilledUnit(), boss_gluth::boss_gluthAI::KilledUnit(), boss_gothik::boss_gothikAI::KilledUnit(), npc_boss_gothik_minion::npc_boss_gothik_minionAI::KilledUnit(), boss_grobbulus::boss_grobbulusAI::KilledUnit(), boss_grobbulus_poison_cloud::boss_grobbulus_poison_cloudAI::KilledUnit(), boss_heigan::KilledUnit(), boss_kelthuzad::boss_kelthuzadAI::KilledUnit(), boss_kelthuzad_minion::boss_kelthuzad_minionAI::KilledUnit(), boss_loatheb::boss_loathebAI::KilledUnit(), boss_maexxna::boss_maexxnaAI::KilledUnit(), boss_noth::boss_nothAI::KilledUnit(), boss_patchwerk::boss_patchwerkAI::KilledUnit(), boss_razuvious_minion::boss_razuvious_minionAI::KilledUnit(), boss_sapphiron::boss_sapphironAI::KilledUnit(), boss_thaddius::boss_thaddiusAI::KilledUnit(), boss_thaddius_summon::boss_thaddius_summonAI::KilledUnit(), instance_ulduar::instance_ulduar_InstanceMapScript::Load(), instance_ulduar::instance_ulduar_InstanceMapScript::OnPlayerEnter(), instance_ulduar::instance_ulduar_InstanceMapScript::OnUnitDeath(), instance_shadow_labyrinth::instance_shadow_labyrinth_InstanceMapScript::OnUnitDeath(), instance_naxxramas::SetBossState(), instance_zulaman::instance_zulaman_InstanceMapScript::SetBossState(), instance_zulaman::instance_zulaman_InstanceMapScript::SetData(), instance_halls_of_reflection::SetData(), instance_ulduar::instance_ulduar_InstanceMapScript::SetData(), instance_ahnkahet::instance_ahnkahet_InstanceScript::SetData(), npc_harrison_jones::SpellHit(), npc_ulduar_keeper::npc_ulduar_keeperAI::SpellHit(), and instance_ulduar::instance_ulduar_InstanceMapScript::Update().

◆ Update()

void InstanceScript::Update ( uint32  diff)
virtual

Reimplemented in instance_blackrock_depths, instance_blackrock_spire, instance_blackwing_lair, instance_stratholme::instance_stratholme_InstanceMapScript, instance_sunken_temple::instance_sunken_temple_InstanceMapScript, instance_zulaman::instance_zulaman_InstanceMapScript, instance_hyjal::instance_mount_hyjal_InstanceMapScript, instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript, instance_old_hillsbrad::instance_old_hillsbrad_InstanceMapScript, instance_the_black_morass::instance_the_black_morass_InstanceMapScript, instance_zulfarrak::instance_zulfarrak_InstanceMapScript, instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript, instance_trial_of_the_crusader::instance_trial_of_the_crusader_InstanceMapScript, instance_halls_of_reflection, instance_gundrak::instance_gundrak_InstanceMapScript, instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript, instance_naxxramas, instance_ulduar::instance_ulduar_InstanceMapScript, instance_vault_of_archavon::instance_vault_of_archavon_InstanceMapScript, instance_violet_hold::instance_violet_hold_InstanceMapScript, and instance_shattered_halls::instance_shattered_halls_InstanceMapScript.

253{
254 scheduler.Update(diff);
255}
TaskScheduler scheduler
Definition InstanceScript.h:303
TaskScheduler & Update(success_t const &callback=EmptyCallback)
Definition TaskScheduler.cpp:27

References scheduler, and TaskScheduler::Update().

Referenced by InstanceMap::Update(), and instance_ulduar::instance_ulduar_InstanceMapScript::Update().

◆ UpdateDoorState()

void InstanceScript::UpdateDoorState ( GameObject door)
protected
258{
259 DoorInfoMapBounds range = doors.equal_range(door->GetEntry());
260 if (range.first == range.second)
261 return;
262
263 // xinef: doors can be assigned to few bosses, if any of them demands doors closed - they should be closed (added & operator for assigment)
264 bool open = true;
265 for (; range.first != range.second && open; ++range.first)
266 {
267 DoorInfo const& info = range.first->second;
268 switch (info.type)
269 {
270 case DOOR_TYPE_ROOM:
271 open &= (info.bossInfo->state != IN_PROGRESS);
272 break;
274 open &= (info.bossInfo->state == DONE);
275 break;
277 open &= (info.bossInfo->state == IN_PROGRESS);
278 break;
279 default:
280 break;
281 }
282 }
283
285}
@ DOOR_TYPE_SPAWN_HOLE
Definition InstanceScript.h:70
@ DOOR_TYPE_ROOM
Definition InstanceScript.h:68
@ DOOR_TYPE_PASSAGE
Definition InstanceScript.h:69

References DoorInfo::bossInfo, DONE, DOOR_TYPE_PASSAGE, DOOR_TYPE_ROOM, DOOR_TYPE_SPAWN_HOLE, doors, Object::GetEntry(), GO_STATE_ACTIVE, GO_STATE_READY, IN_PROGRESS, GameObject::SetGoState(), BossInfo::state, and DoorInfo::type.

Referenced by AddDoor(), and SetBossState().

◆ UpdateMinionState()

void InstanceScript::UpdateMinionState ( Creature minion,
EncounterState  state 
)
protected
227{
228 switch (state)
229 {
230 case NOT_STARTED:
231 if (!minion->IsAlive())
232 minion->Respawn();
233 else if (minion->IsInCombat())
234 minion->AI()->EnterEvadeMode();
235 break;
236 case IN_PROGRESS:
237 if (!minion->IsAlive())
238 minion->Respawn();
239 else
240 {
241 if (minion->GetReactState() == REACT_AGGRESSIVE)
242 {
243 minion->AI()->DoZoneInCombat(nullptr, 100.0f);
244 }
245 }
246 break;
247 default:
248 break;
249 }
250}
@ REACT_AGGRESSIVE
Definition Unit.h:568
void DoZoneInCombat(Creature *creature=nullptr, float maxRangeToNearestTarget=250.0f)
Definition CreatureAI.cpp:117
virtual void EnterEvadeMode(EvadeReason why=EVADE_REASON_OTHER)
Definition CreatureAI.cpp:235
void Respawn(bool force=false)
Definition Creature.cpp:1987
ReactStates GetReactState() const
Definition Creature.h:100
CreatureAI * AI() const
Definition Creature.h:143
bool IsAlive() const
Definition Unit.h:1793
bool IsInCombat() const
Definition Unit.h:935

References Creature::AI(), CreatureAI::DoZoneInCombat(), CreatureAI::EnterEvadeMode(), Creature::GetReactState(), IN_PROGRESS, Unit::IsAlive(), Unit::IsInCombat(), NOT_STARTED, REACT_AGGRESSIVE, and Creature::Respawn().

Referenced by SetBossState().

◆ WritePersistentData()

void InstanceScript::WritePersistentData ( std::ostringstream &  data)
protected
550{
551 for (auto const& entry : persistentData)
552 {
553 data << entry << ' ';
554 }
555}

References persistentData.

Referenced by GetSaveData().

◆ WriteSaveDataBossStates()

void InstanceScript::WriteSaveDataBossStates ( std::ostringstream &  data)
protected
542{
543 for (BossInfo const& bossInfo : bosses)
544 {
545 data << uint32(bossInfo.state) << ' ';
546 }
547}

References bosses.

Referenced by GetSaveData().

◆ WriteSaveDataHeaders()

void InstanceScript::WriteSaveDataHeaders ( std::ostringstream &  data)
protected
534{
535 for (char header : headers)
536 {
537 data << header << ' ';
538 }
539}

References headers.

Referenced by GetSaveData().

◆ WriteSaveDataMore()

virtual void InstanceScript::WriteSaveDataMore ( std::ostringstream &  )
inlineprotectedvirtual

Reimplemented in instance_blackwing_lair, instance_gnomeregan::instance_gnomeregan_InstanceMapScript, instance_scholomance::instance_scholomance_InstanceMapScript, instance_shadowfang_keep::instance_shadowfang_keep_InstanceMapScript, instance_stratholme::instance_stratholme_InstanceMapScript, instance_sunken_temple::instance_sunken_temple_InstanceMapScript, instance_uldaman::instance_uldaman_InstanceMapScript, instance_blackfathom_deeps::instance_blackfathom_deeps_InstanceMapScript, instance_old_hillsbrad::instance_old_hillsbrad_InstanceMapScript, instance_dire_maul::instance_dire_maul_InstanceMapScript, instance_maraudon::instance_maraudon_InstanceMapScript, instance_razorfen_downs::instance_razorfen_downs_InstanceMapScript, instance_wailing_caverns::instance_wailing_caverns_InstanceMapScript, instance_zulfarrak::instance_zulfarrak_InstanceMapScript, instance_trial_of_the_crusader::instance_trial_of_the_crusader_InstanceMapScript, instance_pit_of_saron::instance_pit_of_saron_InstanceScript, instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript, instance_oculus::instance_oculus_InstanceMapScript, instance_halls_of_stone::instance_halls_of_stone_InstanceMapScript, instance_utgarde_keep::instance_utgarde_keep_InstanceMapScript, instance_utgarde_pinnacle::instance_utgarde_pinnacle_InstanceMapScript, instance_vault_of_archavon::instance_vault_of_archavon_InstanceMapScript, instance_violet_hold::instance_violet_hold_InstanceMapScript, and instance_shattered_halls::instance_shattered_halls_InstanceMapScript.

341{ }

Referenced by GetSaveData().

Member Data Documentation

◆ _activatedAreaTriggers

std::unordered_set<uint32> InstanceScript::_activatedAreaTriggers
private

◆ _creatureInfo

ObjectInfoMap InstanceScript::_creatureInfo
private

Referenced by AddObject(), and LoadObjectData().

◆ _gameObjectInfo

ObjectInfoMap InstanceScript::_gameObjectInfo
private

Referenced by AddObject(), and LoadObjectData().

◆ _objectGuids

ObjectGuidMap InstanceScript::_objectGuids
private

Referenced by AddObject(), and GetObjectGuid().

◆ _objectStateMap

◆ _summonInfo

ObjectInfoMap InstanceScript::_summonInfo
private

Referenced by LoadSummonData(), and SetSummoner().

◆ _teamIdInInstance

TeamId InstanceScript::_teamIdInInstance
private

◆ bosses

◆ completedEncounters

uint32 InstanceScript::completedEncounters
private

◆ doors

DoorInfoMap InstanceScript::doors
private

◆ headers

std::vector<char> InstanceScript::headers
private

◆ instance

Map* InstanceScript::instance

Referenced by instance_blood_furnace::instance_blood_furnace_InstanceMapScript::ActivatePrisoners(), boss_tyrannus::boss_tyrannusAI::boss_tyrannusAI(), instance_ruins_of_ahnqiraj::instance_ruins_of_ahnqiraj_InstanceMapScript::CallNextRajaxxLeader(), instance_trial_of_the_crusader::instance_trial_of_the_crusader_InstanceMapScript::CheckAchievementCriteriaMeet(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::CheckAchievementCriteriaMeet(), instance_naxxramas::CheckAchievementCriteriaMeet(), instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::CheckAchievementCriteriaMeet(), CheckAchievementCriteriaMeet(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::CheckLichKingAvailability(), instance_molten_core::CheckMajordomoExecutus(), boss_prince_valanar_icc::boss_prince_valanarAI::CheckRoom(), instance_blackrock_depths::CheckTombReset(), instance_stratholme::instance_stratholme_InstanceMapScript::CheckZiggurats(), instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::ChromieWhisper(), instance_the_black_morass::instance_the_black_morass_InstanceMapScript::CleanupInstance(), violet_hold_trashAI::ClearDoorSealAura(), npc_vh_void_sentry::npc_vh_void_sentryAI::DoAction(), instance_molten_core::DoAction(), instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::DoAction(), npc_pos_martin_or_gorkun_second::npc_pos_martin_or_gorkun_secondAI::DoAction(), boss_black_knight::boss_black_knightAI::DoAction(), boss_tyrannus::boss_tyrannusAI::DoAction(), DoCastSpellOnPlayer(), DoCastSpellOnPlayers(), instance_trial_of_the_crusader::instance_trial_of_the_crusader_InstanceMapScript::DoCheckDedicatedInsanity(), npc_rocknot::DoGo(), instance_violet_hold::instance_violet_hold_InstanceMapScript::DoNeedCleanup(), instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::DoNeedCleanup(), instance_trial_of_the_crusader::instance_trial_of_the_crusader_InstanceMapScript::DoNeedCleanup(), DoRemoveAurasDueToSpellOnPlayers(), DoRespawnCreature(), DoRespawnCreature(), DoRespawnGameObject(), DoRespawnGameObject(), DoSendNotifyToInstance(), DoStartTimedAchievement(), DoStopTimedAchievement(), instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::DoSummonGrandChampion(), DoUpdateAchievementCriteria(), DoUpdateWorldState(), DoUseDoorOrButton(), instance_blackrock_spire::Dragonspireroomcheck(), instance_blackrock_spire::Dragonspireroomstore(), boss_tyrannus::boss_tyrannusAI::EnterEvadeMode(), instance_stratholme::instance_stratholme_InstanceMapScript::gate_critter_delay(), boss_erekem::boss_erekemAI::GetChainHealTargetGUID(), GetCreature(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::GetData(), GetGameObject(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::HandleDropAttempt(), HandleGameObject(), instance_forge_of_souls::instance_forge_of_souls_InstanceScript::HandleOutro(), instance_halls_of_reflection::HandleWaveWipe(), boss_urok_doomhowl::InitializeAI(), instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::InstanceCleanup(), instance_violet_hold::instance_violet_hold_InstanceMapScript::InstanceCleanup(), instance_trial_of_the_crusader::instance_trial_of_the_crusader_InstanceMapScript::InstanceCleanup(), instance_trial_of_the_crusader::instance_trial_of_the_crusader_InstanceMapScript::IsEncounterInProgress(), instance_halls_of_reflection::IsEncounterInProgress(), instance_ulduar::instance_ulduar_InstanceMapScript::IsEncounterInProgress(), IsTwoFactionInstance(), instance_zulfarrak::instance_zulfarrak_InstanceMapScript::IsWaveAllDead(), boss_shade_of_aran::JustDied(), boss_rajaxx::JustDied(), boss_jormungarAI::JustDied(), npc_gunship::npc_gunshipAI::JustDied(), boss_varos::boss_varosAI::JustDied(), boss_skarvald_the_constructor::JustDied(), boss_dalronn_the_controller::JustDied(), npc_ichor_globule::npc_ichor_globuleAI::JustDied(), npc_vh_void_sentry::npc_vh_void_sentryAI::JustDied(), boss_shade_of_aran::JustEngagedWith(), boss_anubarak_trial::boss_anubarak_trialAI::JustEngagedWith(), npc_pos_deathwhisper_necrolyte::npc_pos_deathwhisper_necrolyteAI::JustEngagedWith(), boss_prince_keleseth_icc::boss_prince_kelesethAI::JustEngagedWith(), boss_prince_taldaram_icc::boss_prince_taldaramAI::JustEngagedWith(), boss_prince_valanar_icc::boss_prince_valanarAI::JustEngagedWith(), boss_skarvald_the_constructor::JustEngagedWith(), boss_dalronn_the_controller::JustEngagedWith(), boss_erekem::boss_erekemAI::JustEngagedWith(), npc_erekem_guard::npc_erekem_guardAI::JustEngagedWith(), instance_nexus::instance_nexus_InstanceMapScript::KillAllFrayers(), LoadInstanceSavedGameobjectStateData(), boss_professor_putricide::boss_professor_putricideAI::MovementInform(), npc_gunship_boarding_addAI::MovementInform(), npc_hor_lich_king::MovementInform(), instance_zulfarrak::instance_zulfarrak_InstanceMapScript::MoveNPCIfAlive(), npc_frost_tomb::npc_frost_tomb(), npc_pos_leader_second::npc_pos_leader_secondAI::npc_pos_leader_secondAI(), npc_pos_martin_or_gorkun_second::npc_pos_martin_or_gorkun_secondAI::npc_pos_martin_or_gorkun_secondAI(), instance_blackwing_lair::OnCreatureCreate(), instance_shadowfang_keep::instance_shadowfang_keep_InstanceMapScript::OnCreatureCreate(), instance_temple_of_ahnqiraj::instance_temple_of_ahnqiraj_InstanceMapScript::OnCreatureCreate(), instance_ruby_sanctum::instance_ruby_sanctum_InstanceMapScript::OnCreatureCreate(), instance_pit_of_saron::instance_pit_of_saron_InstanceScript::OnCreatureCreate(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::OnCreatureCreate(), instance_ulduar::instance_ulduar_InstanceMapScript::OnCreatureCreate(), instance_sunken_temple::instance_sunken_temple_InstanceMapScript::OnGameObjectCreate(), instance_gundrak::instance_gundrak_InstanceMapScript::OnGameObjectCreate(), OnGameObjectCreate(), instance_molten_core::OnGameObjectCreate(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::OnGameObjectCreate(), instance_gundrak::instance_gundrak_InstanceMapScript::OnGameObjectRemove(), instance_ruby_sanctum::instance_ruby_sanctum_InstanceMapScript::OnPlayerEnter(), instance_vault_of_archavon::instance_vault_of_archavon_InstanceMapScript::OnPlayerEnter(), instance_old_hillsbrad::instance_old_hillsbrad_InstanceMapScript::OnPlayerEnter(), instance_the_black_morass::instance_the_black_morass_InstanceMapScript::OnPlayerEnter(), instance_forge_of_souls::instance_forge_of_souls_InstanceScript::OnPlayerEnter(), instance_pit_of_saron::instance_pit_of_saron_InstanceScript::OnPlayerEnter(), instance_ulduar::instance_ulduar_InstanceMapScript::OnPlayerEnter(), instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::OnPlayerEnter(), instance_trial_of_the_crusader::instance_trial_of_the_crusader_InstanceMapScript::OnPlayerEnter(), at_tyrannus_event_starter::OnTrigger(), instance_blackrock_depths::OnUnitDeath(), instance_karazhan::instance_karazhan_InstanceMapScript::OnUnitDeath(), instance_sunken_temple::instance_sunken_temple_InstanceMapScript::OnUnitDeath(), instance_temple_of_ahnqiraj::instance_temple_of_ahnqiraj_InstanceMapScript::OnUnitDeath(), instance_azjol_nerub::instance_azjol_nerub_InstanceScript::OnUnitDeath(), instance_gundrak::instance_gundrak_InstanceMapScript::OnUnitDeath(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::OnUnitDeath(), instance_blackrock_spire::ProcessEvent(), instance_magisters_terrace::instance_magisters_terrace_InstanceMapScript::ProcessEvent(), instance_sethekk_halls::instance_sethekk_halls_InstanceMapScript::ProcessEvent(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::ProcessEvent(), instance_stratholme::instance_stratholme_InstanceMapScript::ProcessSlaughterEvent(), instance_halls_of_reflection::RandomizeCompositionsAndShow(), instance_trial_of_the_crusader::instance_trial_of_the_crusader_InstanceMapScript::ReadSaveDataMore(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::RemoveBackPack(), instance_zulgurub::instance_zulgurub_InstanceMapScript::RemoveHakkarPowerStack(), instance_blackrock_depths::ReplaceMoiraIfSaved(), boss_shade_of_aran::Reset(), boss_palehoof::boss_palehoofAI::Reset(), instance_zulaman::instance_zulaman_InstanceMapScript::ResetAkilzonGauntlet(), instance_blood_furnace::instance_blood_furnace_InstanceMapScript::ResetPrisoners(), SaveToDB(), instance_the_black_morass::instance_the_black_morass_InstanceMapScript::ScheduleNextPortal(), instance_hyjal::instance_mount_hyjal_InstanceMapScript::ScheduleWaves(), instance_zulfarrak::instance_zulfarrak_InstanceMapScript::SendAddsUpStairs(), SendEncounterUnit(), instance_molten_core::SetBossState(), SetBossState(), instance_magtheridons_lair::instance_magtheridons_lair_InstanceMapScript::SetBossState(), instance_blackrock_spire::SetBossState(), instance_blackwing_lair::SetBossState(), instance_karazhan::instance_karazhan_InstanceMapScript::SetBossState(), instance_the_black_morass::instance_the_black_morass_InstanceMapScript::SetBossState(), instance_ruby_sanctum::instance_ruby_sanctum_InstanceMapScript::SetBossState(), instance_halls_of_reflection::SetBossState(), instance_gundrak::instance_gundrak_InstanceMapScript::SetBossState(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::SetBossState(), instance_eye_of_eternity::SetBossState(), instance_ulduar::instance_ulduar_InstanceMapScript::SetBossState(), instance_black_temple::instance_black_temple_InstanceMapScript::SetBossState(), instance_serpent_shrine::instance_serpentshrine_cavern_InstanceMapScript::SetBossState(), instance_hellfire_ramparts::instance_hellfire_ramparts_InstanceMapScript::SetBossState(), instance_ulduar::instance_ulduar_InstanceMapScript::setChestsLootable(), SetCompletedEncountersMask(), instance_blackrock_depths::SetData(), instance_blackrock_spire::SetData(), instance_blackwing_lair::SetData(), instance_karazhan::instance_karazhan_InstanceMapScript::SetData(), instance_scarlet_monastery::instance_scarlet_monastery_InstanceMapScript::SetData(), instance_scholomance::instance_scholomance_InstanceMapScript::SetData(), instance_shadowfang_keep::instance_shadowfang_keep_InstanceMapScript::SetData(), instance_stratholme::instance_stratholme_InstanceMapScript::SetData(), instance_sunken_temple::instance_sunken_temple_InstanceMapScript::SetData(), instance_hyjal::instance_mount_hyjal_InstanceMapScript::SetData(), instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::SetData(), instance_old_hillsbrad::instance_old_hillsbrad_InstanceMapScript::SetData(), instance_dire_maul::instance_dire_maul_InstanceMapScript::SetData(), instance_wailing_caverns::instance_wailing_caverns_InstanceMapScript::SetData(), instance_trial_of_the_crusader::instance_trial_of_the_crusader_InstanceMapScript::SetData(), instance_halls_of_reflection::SetData(), instance_pit_of_saron::instance_pit_of_saron_InstanceScript::SetData(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::SetData(), instance_oculus::instance_oculus_InstanceMapScript::SetData(), instance_halls_of_stone::instance_halls_of_stone_InstanceMapScript::SetData(), instance_ulduar::instance_ulduar_InstanceMapScript::SetData(), instance_utgarde_keep::instance_utgarde_keep_InstanceMapScript::SetData(), instance_utgarde_pinnacle::instance_utgarde_pinnacle_InstanceMapScript::SetData(), instance_violet_hold::instance_violet_hold_InstanceMapScript::SetData(), instance_magtheridons_lair::instance_magtheridons_lair_InstanceMapScript::SetData(), instance_gundrak::instance_gundrak_InstanceMapScript::SetData(), instance_serpent_shrine::instance_serpentshrine_cavern_InstanceMapScript::SetData(), instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::SetData(), instance_trial_of_the_crusader::instance_trial_of_the_crusader_InstanceMapScript::SpawnAnubArak(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::SpawnGunship(), instance_ulduar::instance_ulduar_InstanceMapScript::SpawnLeviathanEncounterVehicles(), instance_zulfarrak::instance_zulfarrak_InstanceMapScript::SpawnPyramidWave(), instance_zulaman::instance_zulaman_InstanceMapScript::StartAkilzonGauntlet(), instance_violet_hold::instance_violet_hold_InstanceMapScript::StartBossEncounter(), instance_halls_of_reflection::StartNextWave(), instance_zulaman::instance_zulaman_InstanceMapScript::SummonHostage(), instance_molten_core::SummonMajordomoExecutus(), instance_blackrock_spire::SummonSolakarWave(), instance_blackrock_depths::TombOfSevenEvent(), instance_blackrock_depths::TombOfSevenReset(), instance_blackwing_lair::Update(), instance_stratholme::instance_stratholme_InstanceMapScript::Update(), instance_sunken_temple::instance_sunken_temple_InstanceMapScript::Update(), instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::Update(), instance_old_hillsbrad::instance_old_hillsbrad_InstanceMapScript::Update(), instance_zulfarrak::instance_zulfarrak_InstanceMapScript::Update(), instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::Update(), instance_trial_of_the_crusader::instance_trial_of_the_crusader_InstanceMapScript::Update(), instance_halls_of_reflection::Update(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::Update(), instance_naxxramas::Update(), instance_vault_of_archavon::instance_vault_of_archavon_InstanceMapScript::Update(), instance_violet_hold::instance_violet_hold_InstanceMapScript::Update(), instance_shattered_halls::instance_shattered_halls_InstanceMapScript::Update(), npc_arthas::npc_arthasAI::UpdateAI(), boss_black_knight::boss_black_knightAI::UpdateAI(), npc_hor_lich_king::UpdateAI(), npc_hor_leader_second::npc_hor_leader_secondAI::UpdateAI(), boss_krick::boss_krickAI::UpdateAI(), boss_tyrannus::boss_tyrannusAI::UpdateAI(), npc_pos_leader::npc_pos_leaderAI::UpdateAI(), npc_pos_after_first_boss::npc_pos_after_first_bossAI::UpdateAI(), npc_pos_tyrannus_events::npc_pos_tyrannus_eventsAI::UpdateAI(), npc_pos_martin_or_gorkun_second::npc_pos_martin_or_gorkun_secondAI::UpdateAI(), npc_pos_leader_second::npc_pos_leader_secondAI::UpdateAI(), boss_prince_valanar_icc::boss_prince_valanarAI::UpdateAI(), npc_high_overlord_saurfang_igb::npc_high_overlord_saurfang_igbAI::UpdateAI(), npc_muradin_bronzebeard_igb::npc_muradin_bronzebeard_igbAI::UpdateAI(), boss_erekem::boss_erekemAI::UpdateAI(), boss_xevozz::boss_xevozzAI::UpdateAI(), npc_vh_teleportation_portal::npc_vh_teleportation_portalAI::UpdateAI(), npc_ichor_globule::npc_ichor_globuleAI::UpdateAI(), instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::UpdateEventState(), instance_halls_of_reflection::UpdateOutro(), instance_eye_of_eternity::VortexHandling(), npc_arthas::npc_arthasAI::WaypointReached(), and instance_trial_of_the_crusader::instance_trial_of_the_crusader_InstanceMapScript::WriteSaveDataMore().

◆ minions

MinionInfoMap InstanceScript::minions
private

Referenced by AddMinion(), and LoadMinionData().

◆ persistentData

std::vector<uint32> InstanceScript::persistentData
private

◆ scheduler


The documentation for this class was generated from the following files: