6#ifndef SKYFIRE_INSTANCE_DATA_H
7#define SKYFIRE_INSTANCE_DATA_H
14#define OUT_SAVE_INST_DATA SF_LOG_DEBUG("scripts", "Saving Instance Data for Instance %s (Map %d, Instance Id %d)", instance->GetMapName(), instance->GetId(), instance->GetInstanceId())
15#define OUT_SAVE_INST_DATA_COMPLETE SF_LOG_DEBUG("scripts", "Saving Instance Data for Instance %s (Map %d, Instance Id %d) completed.", instance->GetMapName(), instance->GetId(), instance->GetInstanceId())
16#define OUT_LOAD_INST_DATA(a) SF_LOG_DEBUG("scripts", "Loading Instance Data for Instance %s (Map %d, Instance Id %d). Input is '%s'", instance->GetMapName(), instance->GetId(), instance->GetInstanceId(), a)
17#define OUT_LOAD_INST_DATA_COMPLETE SF_LOG_DEBUG("scripts", "Instance Data Load for Instance %s (Map %d, Instance Id: %d) is complete.", instance->GetMapName(), instance->GetId(), instance->GetInstanceId())
18#define OUT_LOAD_INST_DATA_FAIL SF_LOG_ERROR("scripts", "Unable to load Instance Data for Instance %s (Map %d, Instance Id: %d).", instance->GetMapName(), instance->GetId(), instance->GetInstanceId())
231template<
class AI,
class T>
235 if (instance->GetInstanceScript())
236 if (instance->GetScriptId() ==
sObjectMgr->GetScriptId(scriptName))
AchievementCriteriaTimedTypes
std::set< GameObject * > DoorSet
@ ENCOUNTER_FRAME_RESET_COMBAT_RES_LIMIT
@ ENCOUNTER_FRAME_ENABLE_OBJECTIVE
@ ENCOUNTER_FRAME_SET_COMBAT_RES_LIMIT
@ ENCOUNTER_FRAME_DISENGAGE
@ ENCOUNTER_FRAME_ADD_COMBAT_RES_LIMIT
@ ENCOUNTER_FRAME_UPDATE_PRIORITY
@ ENCOUNTER_FRAME_DISABLE_OBJECTIVE
@ ENCOUNTER_FRAME_UPDATE_OBJECTIVE
@ ENCOUNTER_FRAME_ADD_TIMER
std::map< uint32, MinionInfo > MinionInfoMap
AI * GetInstanceAI(T *obj, char const *scriptName)
std::multimap< uint32, DoorInfo > DoorInfoMap
std::map< BoundaryType, float > BossBoundaryMap
std::pair< DoorInfoMap::const_iterator, DoorInfoMap::const_iterator > DoorInfoMapBounds
std::set< Creature * > MinionSet
void DoUpdateAchievementCriteria(AchievementCriteriaTypes type, uint32 miscValue1=0, uint32 miscValue2=0, Unit *unit=NULL)
void UpdateMinionState(Creature *minion, EncounterState state)
uint32 GetCompletedEncounterMask() const
void SetBossNumber(uint32 number)
virtual bool SetBossState(uint32 id, EncounterState state)
void DoUseDoorOrButton(uint64 guid, uint32 withRestoreTime=0, bool useAlternativeState=false)
uint32 completedEncounters
bool ServerAllowsTwoSideGroups()
void DoCastSpellOnPlayers(uint32 spell)
void UpdateEncounterState(EncounterCreditType type, uint32 creditEntry, Unit *source)
void DoRemoveAurasDueToSpellOnPlayers(uint32 spell)
std::string GetBossSaveData()
void AddMinion(Creature *minion, bool add)
EncounterState GetBossState(uint32 id) const
virtual bool IsEncounterInProgress() const
virtual std::string GetSaveData()
void LoadBossState(char const *data)
void AddDoor(GameObject *door, bool add)
virtual bool CheckAchievementCriteriaMeet(uint32, Player const *, Unit const *=NULL, uint32=0)
void LoadMinionData(MinionData const *data)
void LoadDoorData(DoorData const *data)
virtual bool CheckRequiredBosses(uint32, Player const *=NULL) const
void DoStartTimedAchievement(AchievementCriteriaTimedTypes type, uint32 entry)
virtual ~InstanceScript()
std::vector< BossInfo > bosses
BossBoundaryMap const * GetBossBoundary(uint32 id) const
virtual void OnPlayerEnter(Player *)
virtual void Load(char const *data)
void SendEncounterUnit(uint32 type, Unit *unit=NULL, uint8 param1=0, uint8 param2=0)
virtual void Initialize()
void HandleGameObject(uint64 guid, bool open, GameObject *go=NULL)
void UpdateDoorState(GameObject *door)
void DoRespawnGameObject(uint64 guid, uint32 timeToDespawn=MINUTE)
virtual void Update(uint32)
void DoStopTimedAchievement(AchievementCriteriaTimedTypes type, uint32 entry)
void SetCompletedEncountersMask(uint32 newMask)
void DoUpdateWorldState(uint32 worldstateId, uint32 worldstateValue)
void DoSendNotifyToInstance(char const *format,...)
virtual void FillInitialWorldStates(WorldStateBuilder &)
InstanceMap * ToInstanceMap()
@ CONFIG_ALLOW_TWO_SIDE_INTERACTION_GROUP
DoorSet door[MAX_DOOR_TYPES]
DoorInfo(BossInfo *_bossInfo, DoorType _type, BoundaryType _boundary)
MinionInfo(BossInfo *_bossInfo)