![]() |
AzerothCore 3.3.5a
OpenSource WoW Emulator
|
#include "WorldState.h"
Static Public Member Functions | |
static WorldState * | instance () |
Private Types | |
typedef std::map< uint32, uint64 > | WorldStatesMap |
Private Member Functions | |
void | SendWorldstateUpdate (std::mutex &mutex, GuidVector const &guids, uint32 value, uint32 worldStateId) |
void | StopSunsReachPhase (bool forward) |
void | StartSunsReachPhase (bool initial=false) |
void | StartSunwellGatePhase () |
void | StopSunwellGatePhase () |
void | BuffAdalsSongOfBattle () |
void | DispelAdalsSongOfBattle () |
void | BuffMagtheridonTeam (TeamId team) |
void | DispelMagtheridonTeam (TeamId team) |
void | SendScourgeInvasionMail () |
Private Attributes | |
WorldStatesMap | _worldstates |
uint32 | _adalSongOfBattleTimer |
bool | _isMagtheridonHeadSpawnedHorde |
bool | _isMagtheridonHeadSpawnedAlliance |
SunsReachReclamationData | m_sunsReachData |
std::map< uint32, std::atomic< WorldStateConditionState > > | _transportStates |
std::mutex | _mutex |
ScourgeInvasionData | m_siData |
|
private |
WorldState::WorldState | ( | ) |
References _transportStates, WORLD_STATE_CONDITION_STATE_NONE, WORLD_STATE_CONDITION_THE_IRON_EAGLE, WORLD_STATE_CONDITION_THE_PURPLE_PRINCESS, and WORLD_STATE_CONDITION_THE_THUNDERCALLER.
|
virtual |
void WorldState::AddBattlesWon | ( | int32 | count | ) |
References HandleDefendedZones(), ScourgeInvasionData::m_battlesWon, m_siData, ScourgeInvasionData::m_siMutex, Save(), and SAVE_ID_SCOURGE_INVASION.
void WorldState::AddPendingInvasion | ( | uint32 | zoneId | ) |
References ScourgeInvasionData::m_pendingInvasions, m_siData, and ScourgeInvasionData::m_siMutex.
Referenced by SummonMouth().
void WorldState::AddPendingPallid | ( | uint32 | zoneId | ) |
References ScourgeInvasionData::m_pendingPallids, m_siData, and ScourgeInvasionData::m_siMutex.
Referenced by SummonPallid().
void WorldState::AddSunsReachProgress | ( | uint32 | questId | ) |
References CONFIG_SUNSREACH_COUNTER_MAX, COUNTER_A_CHARITABLE_DONATION, COUNTER_BATTLE_FOR_THE_SUNS_REACH_ARMORY, COUNTER_DISCOVERING_YOUR_ROOTS, COUNTER_DISTRACTION_AT_THE_DEAD_SCAR, COUNTER_ERRATIC_BEHAVIOR, COUNTER_INTERCEPT_THE_REINFORCEMENTS, COUNTER_INTERCEPTING_THE_MANA_CELLS, COUNTER_MAKING_READY, COUNTER_SANCTUM_WARDS, COUNTER_TAKING_THE_HARBOR, SunsReachReclamationData::GetPhasePercentage(), SunsReachReclamationData::GetSubPhasePercentage(), HandleSunsReachPhaseTransition(), HandleSunsReachSubPhaseTransition(), SunsReachReclamationData::m_phase, SunsReachReclamationData::m_subphaseMask, m_sunsReachData, SunsReachReclamationData::m_sunsReachReclamationCounters, SunsReachReclamationData::m_sunsReachReclamationMutex, SunsReachReclamationData::m_sunsReachReclamationPlayers, QUEST_A_CHARITABLE_DONATION, QUEST_A_MAGNANIMOUS_BENEFACTOR, QUEST_BATTLE_FOR_THE_SUNS_REACH_ARMORY, QUEST_DISCOVERING_YOUR_ROOTS, QUEST_DISTRACTION_AT_THE_DEAD_SCAR, QUEST_ERRATIC_BEHAVIOR, QUEST_INTERCEPT_THE_REINFORCEMENTS, QUEST_INTERCEPTING_THE_MANA_CELLS, QUEST_MAKING_READY, QUEST_SANCTUM_WARDS, QUEST_TAKING_THE_HARBOR, Save(), SAVE_ID_QUEL_DANAS, SendWorldstateUpdate(), SUBPHASE_ALCHEMY_LAB, SUBPHASE_ANVIL, SUBPHASE_MONUMENT, SUBPHASE_PORTAL, SUNS_REACH_PHASE_1_STAGING_AREA, SUNS_REACH_PHASE_2_SANCTUM, SUNS_REACH_PHASE_3_ARMORY, SUNS_REACH_PHASE_4_HARBOR, sWorld, WORLD_STATE_QUEL_DANAS_ALCHEMY_LAB, WORLD_STATE_QUEL_DANAS_ANVIL, WORLD_STATE_QUEL_DANAS_ARMORY, WORLD_STATE_QUEL_DANAS_HARBOR, WORLD_STATE_QUEL_DANAS_MONUMENT, WORLD_STATE_QUEL_DANAS_PORTAL, and WORLD_STATE_QUEL_DANAS_SANCTUM.
void WorldState::AddSunwellGateProgress | ( | uint32 | questId | ) |
References COUNTER_AGAMATH_THE_FIRST_GATE, COUNTER_ARCHONISUS_THE_FINAL_GATE, COUNTER_MAX_VAL_REQ_SWP_GATES, COUNTER_ROHENDOR_THE_SECOND_GATE, SunsReachReclamationData::GetSunwellGatePercentage(), HandleSunwellGateTransition(), SunsReachReclamationData::m_gate, SunsReachReclamationData::m_gateCounters, m_sunsReachData, SunsReachReclamationData::m_sunsReachReclamationMutex, SunsReachReclamationData::m_sunsReachReclamationPlayers, QUEST_AGAMATH_THE_FIRST_GATE, QUEST_ARCHONISUS_THE_FINAL_GATE, QUEST_ROHENDOR_THE_SECOND_GATE, Save(), SAVE_ID_QUEL_DANAS, SendWorldstateUpdate(), SUNWELL_AGAMATH_GATE1_OPEN, SUNWELL_ALL_GATES_CLOSED, SUNWELL_ARCHONISUS_GATE3_OPEN, SUNWELL_ROHENDOR_GATE2_OPEN, WORLD_STATE_AGAMATH_THE_FIRST_GATE_HEALTH, WORLD_STATE_ARCHONISUS_THE_FINAL_GATE_HEALTH, and WORLD_STATE_ROHENDOR_THE_SECOND_GATE_HEALTH.
void WorldState::BroadcastSIWorldstates | ( | ) |
References GetBattlesWon(), Map::GetId(), GetSIRemaining(), SI_REMAINING_AZSHARA, SI_REMAINING_BLASTED_LANDS, SI_REMAINING_BURNING_STEPPES, SI_REMAINING_EASTERN_PLAGUELANDS, SI_REMAINING_TANARIS, SI_REMAINING_WINTERSPRING, and sMapMgr.
Referenced by StartScourgeInvasion(), StopScourgeInvasion(), and Update().
|
private |
References Unit::CastSpell(), Map::DoForAllPlayers(), Map::GetId(), MAP_TEMPEST_KEEP_THE_ARCATRAZ, MAP_TEMPEST_KEEP_THE_BOTANICA, MAP_TEMPEST_KEEP_THE_MECHANAR, sMapMgr, and SPELL_ADAL_SONG_OF_BATTLE.
Referenced by HandleExternalEvent().
|
private |
References Unit::CastSpell(), Map::DoForAllPlayers(), Map::GetId(), Player::GetTeamId(), MAP_HELLFIRE_CITADEL_RAMPARTS, MAP_HELLFIRE_CITADEL_THE_BLOOD_FURNACE, MAP_HELLFIRE_CITADEL_THE_SHATTERED_HALLS, MAP_MAGTHERIDONS_LAIR, sMapMgr, SPELL_NAZGRELS_FAVOR, SPELL_TROLLBANES_COMMAND, TEAM_ALLIANCE, and TEAM_HORDE.
Referenced by HandleExternalEvent().
|
private |
References Map::DoForAllPlayers(), Map::GetId(), MAP_TEMPEST_KEEP_THE_ARCATRAZ, MAP_TEMPEST_KEEP_THE_BOTANICA, MAP_TEMPEST_KEEP_THE_MECHANAR, Unit::RemoveAurasDueToSpell(), sMapMgr, and SPELL_ADAL_SONG_OF_BATTLE.
Referenced by Update().
|
private |
References Map::DoForAllPlayers(), Map::GetId(), Player::GetTeamId(), MAP_HELLFIRE_CITADEL_RAMPARTS, MAP_HELLFIRE_CITADEL_THE_BLOOD_FURNACE, MAP_HELLFIRE_CITADEL_THE_SHATTERED_HALLS, MAP_MAGTHERIDONS_LAIR, Unit::RemoveAurasDueToSpell(), sMapMgr, SPELL_NAZGRELS_FAVOR, SPELL_TROLLBANES_COMMAND, TEAM_ALLIANCE, and TEAM_HORDE.
Referenced by HandleExternalEvent().
void WorldState::FillInitialWorldStates | ( | WorldPackets::WorldState::InitWorldStates & | packet, |
uint32 | zoneId, | ||
uint32 | |||
) |
References AREA_ISLE_OF_QUEL_DANAS, AREA_MAGISTERS_TERRACE, AREA_SHATTRATH_CITY, AREA_SUNWELL_PLATEAU, GetBattlesWon(), SunsReachReclamationData::GetPhasePercentage(), GetSIRemaining(), SunsReachReclamationData::GetSubPhasePercentage(), SunsReachReclamationData::GetSunwellGatePercentage(), SunsReachReclamationData::m_gate, SunsReachReclamationData::m_phase, m_siData, ScourgeInvasionData::m_state, SunsReachReclamationData::m_subphaseMask, m_sunsReachData, SI_REMAINING_AZSHARA, SI_REMAINING_BLASTED_LANDS, SI_REMAINING_BURNING_STEPPES, SI_REMAINING_EASTERN_PLAGUELANDS, SI_REMAINING_TANARIS, SI_REMAINING_WINTERSPRING, STATE_0_DISABLED, SUBPHASE_ALCHEMY_LAB, SUBPHASE_ANVIL, SUBPHASE_MONUMENT, SUBPHASE_PORTAL, SUNS_REACH_PHASE_1_STAGING_AREA, SUNS_REACH_PHASE_2_SANCTUM, SUNS_REACH_PHASE_3_ARMORY, SUNS_REACH_PHASE_4_HARBOR, SUNWELL_AGAMATH_GATE1_OPEN, SUNWELL_ALL_GATES_CLOSED, SUNWELL_ROHENDOR_GATE2_OPEN, WORLD_STATE_AGAMATH_THE_FIRST_GATE_HEALTH, WORLD_STATE_ARCHONISUS_THE_FINAL_GATE_HEALTH, WORLD_STATE_QUEL_DANAS_ALCHEMY_LAB, WORLD_STATE_QUEL_DANAS_ANVIL, WORLD_STATE_QUEL_DANAS_ARMORY, WORLD_STATE_QUEL_DANAS_HARBOR, WORLD_STATE_QUEL_DANAS_MONUMENT, WORLD_STATE_QUEL_DANAS_MUSIC, WORLD_STATE_QUEL_DANAS_PORTAL, WORLD_STATE_QUEL_DANAS_SANCTUM, WORLD_STATE_ROHENDOR_THE_SECOND_GATE_HEALTH, WORLD_STATE_SCOURGE_INVASION_AZSHARA, WORLD_STATE_SCOURGE_INVASION_BLASTED_LANDS, WORLD_STATE_SCOURGE_INVASION_BURNING_STEPPES, WORLD_STATE_SCOURGE_INVASION_EASTERN_PLAGUELANDS, WORLD_STATE_SCOURGE_INVASION_NECROPOLIS_AZSHARA, WORLD_STATE_SCOURGE_INVASION_NECROPOLIS_BLASTED_LANDS, WORLD_STATE_SCOURGE_INVASION_NECROPOLIS_BURNING_STEPPES, WORLD_STATE_SCOURGE_INVASION_NECROPOLIS_EASTERN_PLAGUELANDS, WORLD_STATE_SCOURGE_INVASION_NECROPOLIS_TANARIS, WORLD_STATE_SCOURGE_INVASION_NECROPOLIS_WINTERSPRING, WORLD_STATE_SCOURGE_INVASION_TANARIS, WORLD_STATE_SCOURGE_INVASION_VICTORIES, WORLD_STATE_SCOURGE_INVASION_WINTERSPRING, and WorldPackets::WorldState::InitWorldStates::Worldstates.
uint32 WorldState::GetActiveZones | ( | ) |
References Map::GetCreature(), GetMap(), LOG_ERROR, ScourgeInvasionData::m_activeInvasions, ScourgeInvasionData::m_pendingInvasions, and m_siData.
Referenced by HandleActiveZone(), and StartNewInvasion().
uint32 WorldState::GetBattlesWon | ( | ) |
References ScourgeInvasionData::m_battlesWon, m_siData, and ScourgeInvasionData::m_siMutex.
Referenced by BroadcastSIWorldstates(), and FillInitialWorldStates().
uint32 WorldState::GetLastAttackZone | ( | ) |
References ScourgeInvasionData::m_lastAttackZone, m_siData, and ScourgeInvasionData::m_siMutex.
References Position::GetPositionX(), Position::GetPositionY(), LOG_ERROR, and sMapMgr.
Referenced by GetActiveZones(), OnDisable(), OnDisable(), ResumeInvasion(), StartNewCityAttack(), and StartNewInvasion().
std::string WorldState::GetScourgeInvasionPrintout | ( | ) |
References ScourgeInvasionData::m_battlesWon, ScourgeInvasionData::m_lastAttackZone, ScourgeInvasionData::m_remaining, m_siData, ScourgeInvasionData::m_siMutex, ScourgeInvasionData::m_state, ScourgeInvasionData::m_timers, SI_REMAINING_AZSHARA, SI_REMAINING_BLASTED_LANDS, SI_REMAINING_BURNING_STEPPES, SI_REMAINING_EASTERN_PLAGUELANDS, SI_REMAINING_TANARIS, SI_REMAINING_WINTERSPRING, SI_TIMER_AZSHARA, SI_TIMER_BLASTED_LANDS, SI_TIMER_BURNING_STEPPES, SI_TIMER_EASTERN_PLAGUELANDS, SI_TIMER_STORMWIND, SI_TIMER_TANARIS, SI_TIMER_UNDERCITY, SI_TIMER_WINTERSPRING, STATE_0_DISABLED, and STATE_1_ENABLED.
uint32 WorldState::GetSIRemaining | ( | SIRemaining | remaining | ) | const |
References ScourgeInvasionData::m_remaining, and m_siData.
Referenced by BroadcastSIWorldstates(), FillInitialWorldStates(), GetSIRemainingByZone(), HandleActiveZone(), and IsConditionFulfilled().
References AREA_AZSHARA, AREA_BLASTED_LANDS, AREA_BURNING_STEPPES, AREA_EASTERN_PLAGUELANDS, AREA_TANARIS, AREA_WINTERSPRING, GetSIRemaining(), LOG_ERROR, SI_REMAINING_AZSHARA, SI_REMAINING_BLASTED_LANDS, SI_REMAINING_BURNING_STEPPES, SI_REMAINING_EASTERN_PLAGUELANDS, SI_REMAINING_TANARIS, and SI_REMAINING_WINTERSPRING.
References m_siData, and ScourgeInvasionData::m_timers.
Referenced by StartNewCityAttackIfTime(), and StartNewInvasionIfTime().
std::string WorldState::GetSunsReachPrintout | ( | ) |
References CONFIG_SUNSREACH_COUNTER_MAX, COUNTER_A_CHARITABLE_DONATION, COUNTER_AGAMATH_THE_FIRST_GATE, COUNTER_ARCHONISUS_THE_FINAL_GATE, COUNTER_BATTLE_FOR_THE_SUNS_REACH_ARMORY, COUNTER_DISCOVERING_YOUR_ROOTS, COUNTER_DISTRACTION_AT_THE_DEAD_SCAR, COUNTER_ERRATIC_BEHAVIOR, COUNTER_INTERCEPT_THE_REINFORCEMENTS, COUNTER_INTERCEPTING_THE_MANA_CELLS, COUNTER_MAKING_READY, COUNTER_ROHENDOR_THE_SECOND_GATE, COUNTER_SANCTUM_WARDS, COUNTER_TAKING_THE_HARBOR, COUNTERS_MAX, SunsReachReclamationData::GetPhasePercentage(), SunsReachReclamationData::GetSubPhasePercentage(), SunsReachReclamationData::GetSunwellGatePercentage(), SunsReachReclamationData::m_gate, SunsReachReclamationData::m_gateCounters, SunsReachReclamationData::m_phase, SunsReachReclamationData::m_subphaseMask, m_sunsReachData, SunsReachReclamationData::m_sunsReachReclamationCounters, SUBPHASE_ALCHEMY_LAB, SUBPHASE_ANVIL, SUBPHASE_MONUMENT, SUBPHASE_PORTAL, SUNS_REACH_PHASE_1_STAGING_AREA, SUNS_REACH_PHASE_2_SANCTUM, SUNS_REACH_PHASE_3_ARMORY, SUNS_REACH_PHASE_4_HARBOR, SUNWELL_AGAMATH_GATE1_OPEN, SUNWELL_ALL_GATES_CLOSED, SUNWELL_ARCHONISUS_GATE3_OPEN, SUNWELL_ROHENDOR_GATE2_OPEN, and sWorld.
References AREA_AZSHARA, AREA_BLASTED_LANDS, AREA_BURNING_STEPPES, AREA_EASTERN_PLAGUELANDS, AREA_TANARIS, AREA_WINTERSPRING, LOG_ERROR, SI_TIMER_AZSHARA, SI_TIMER_BLASTED_LANDS, SI_TIMER_BURNING_STEPPES, SI_TIMER_EASTERN_PLAGUELANDS, SI_TIMER_TANARIS, and SI_TIMER_WINTERSPRING.
Referenced by OnEnable(), and Update().
References _worldstates.
void WorldState::HandleActiveZone | ( | uint32 | attackTimeVar, |
uint32 | zoneId, | ||
uint32 | remainingVar, | ||
TimePoint | now | ||
) |
References UnitAI::DoAction(), EVENT_HERALD_OF_THE_LICH_KING_ZONE_STOP, GetActiveZones(), Unit::GetAI(), Map::GetCreature(), GetSIRemaining(), LOG_DEBUG, LOG_ERROR, LOG_INFO, ScourgeInvasionData::m_activeInvasions, m_siData, ScourgeInvasionData::InvasionZone::map, ScourgeInvasionData::InvasionZone::mouthGuid, sMapMgr, StartNewInvasionIfTime(), sWorldState, ObjectGuid::ToString(), urand(), ZONE_ATTACK_TIMER_MAX, ZONE_ATTACK_TIMER_MIN, and ScourgeInvasionData::InvasionZone::zoneId.
Referenced by Update().
void WorldState::HandleConditionStateChange | ( | WorldStateCondition | conditionId, |
WorldStateConditionState | state | ||
) |
References _transportStates.
void WorldState::HandleDefendedZones | ( | ) |
References GAME_EVENT_SCOURGE_INVASION, GAME_EVENT_SCOURGE_INVASION_100_INVASIONS, GAME_EVENT_SCOURGE_INVASION_150_INVASIONS, GAME_EVENT_SCOURGE_INVASION_50_INVASIONS, GAME_EVENT_SCOURGE_INVASION_INVASIONS_DONE, ScourgeInvasionData::m_battlesWon, m_siData, and sGameEventMgr.
Referenced by AddBattlesWon(), and Load().
void WorldState::HandleExternalEvent | ( | WorldStateEvent | eventId, |
uint32 | param | ||
) |
References _adalSongOfBattleTimer, _isMagtheridonHeadSpawnedAlliance, _isMagtheridonHeadSpawnedHorde, _mutex, BuffAdalsSongOfBattle(), BuffMagtheridonTeam(), DispelMagtheridonTeam(), IN_MILLISECONDS, MINUTE, TEAM_ALLIANCE, TEAM_HORDE, WORLD_STATE_CUSTOM_EVENT_ON_ADALS_SONG_OF_BATTLE, WORLD_STATE_CUSTOM_EVENT_ON_MAGTHERIDON_HEAD_DESPAWN, and WORLD_STATE_CUSTOM_EVENT_ON_MAGTHERIDON_HEAD_SPAWN.
void WorldState::HandlePlayerEnterZone | ( | Player * | player, |
AreaTableIDs | zoneId | ||
) |
References _adalSongOfBattleTimer, _isMagtheridonHeadSpawnedAlliance, _isMagtheridonHeadSpawnedHorde, _mutex, AREA_HELLFIRE_CITADEL, AREA_HELLFIRE_PENINSULA, AREA_HELLFIRE_RAMPARTS, AREA_ISLE_OF_QUEL_DANAS, AREA_MAGISTERS_TERRACE, AREA_MAGTHERIDONS_LAIR, AREA_SHATTRATH_CITY, AREA_SUNWELL_PLATEAU, AREA_THE_ARCATRAZ, AREA_THE_BLOOD_FURNACE, AREA_THE_BOTANICA, AREA_THE_MECHANAR, AREA_THE_SHATTERED_HALLS, Unit::CastSpell(), Object::GetGUID(), Player::GetTeamId(), SunsReachReclamationData::m_subphaseMask, m_sunsReachData, SunsReachReclamationData::m_sunsReachReclamationMutex, SunsReachReclamationData::m_sunsReachReclamationPlayers, SPELL_ADAL_SONG_OF_BATTLE, SPELL_KIRU_SONG_OF_VICTORY, SPELL_NAZGRELS_FAVOR, SPELL_TROLLBANES_COMMAND, SUBPHASE_ALL, TEAM_ALLIANCE, and TEAM_HORDE.
void WorldState::HandlePlayerLeaveZone | ( | Player * | player, |
AreaTableIDs | zoneId | ||
) |
References _adalSongOfBattleTimer, _mutex, AREA_HELLFIRE_CITADEL, AREA_HELLFIRE_PENINSULA, AREA_HELLFIRE_RAMPARTS, AREA_ISLE_OF_QUEL_DANAS, AREA_MAGISTERS_TERRACE, AREA_MAGTHERIDONS_LAIR, AREA_SHATTRATH_CITY, AREA_SUNWELL_PLATEAU, AREA_THE_ARCATRAZ, AREA_THE_BLOOD_FURNACE, AREA_THE_BOTANICA, AREA_THE_MECHANAR, AREA_THE_SHATTERED_HALLS, Object::GetGUID(), Player::GetTeamId(), m_sunsReachData, SunsReachReclamationData::m_sunsReachReclamationMutex, SunsReachReclamationData::m_sunsReachReclamationPlayers, Unit::RemoveAurasDueToSpell(), SPELL_ADAL_SONG_OF_BATTLE, SPELL_KIRU_SONG_OF_VICTORY, SPELL_NAZGRELS_FAVOR, SPELL_TROLLBANES_COMMAND, TEAM_ALLIANCE, and TEAM_HORDE.
void WorldState::HandleSunsReachPhaseTransition | ( | uint32 | newPhase | ) |
References GAME_EVENT_QUEL_DANAS_PHASE_2_NO_PORTAL, GAME_EVENT_QUEL_DANAS_PHASE_3_NO_ANVIL, GAME_EVENT_QUEL_DANAS_PHASE_4_NO_ALCHEMY_LAB, GAME_EVENT_QUEL_DANAS_PHASE_4_NO_MONUMENT, SunsReachReclamationData::m_phase, SunsReachReclamationData::m_subphaseMask, m_sunsReachData, SunsReachReclamationData::m_sunsReachReclamationMutex, SunsReachReclamationData::m_sunsReachReclamationPlayers, Save(), SAVE_ID_QUEL_DANAS, SendWorldstateUpdate(), sGameEventMgr, StartSunsReachPhase(), StopSunsReachPhase(), SUBPHASE_ALCHEMY_LAB, SUBPHASE_ANVIL, SUBPHASE_MONUMENT, SUBPHASE_PORTAL, SUNS_REACH_PHASE_2_SANCTUM, SUNS_REACH_PHASE_3_ARMORY, SUNS_REACH_PHASE_4_HARBOR, and WORLD_STATE_QUEL_DANAS_MUSIC.
Referenced by AddSunsReachProgress().
void WorldState::HandleSunsReachSubPhaseTransition | ( | int32 | subPhaseMask, |
bool | initial = false |
||
) |
References ObjectAccessor::FindPlayer(), GAME_EVENT_QUEL_DANAS_PHASE_2_NO_PORTAL, GAME_EVENT_QUEL_DANAS_PHASE_2_PORTAL, GAME_EVENT_QUEL_DANAS_PHASE_3_ANVIL, GAME_EVENT_QUEL_DANAS_PHASE_3_NO_ANVIL, GAME_EVENT_QUEL_DANAS_PHASE_4_ALCHEMY_LAB, GAME_EVENT_QUEL_DANAS_PHASE_4_KIRU, GAME_EVENT_QUEL_DANAS_PHASE_4_MONUMENT, GAME_EVENT_QUEL_DANAS_PHASE_4_NO_ALCHEMY_LAB, GAME_EVENT_QUEL_DANAS_PHASE_4_NO_MONUMENT, SunsReachReclamationData::m_phase, SunsReachReclamationData::m_subphaseMask, m_sunsReachData, SunsReachReclamationData::m_sunsReachReclamationMutex, SunsReachReclamationData::m_sunsReachReclamationPlayers, Save(), SAVE_ID_QUEL_DANAS, sGameEventMgr, SPELL_KIRU_SONG_OF_VICTORY, SUBPHASE_ALCHEMY_LAB, SUBPHASE_ALL, SUBPHASE_ANVIL, SUBPHASE_MONUMENT, SUBPHASE_PORTAL, SUNS_REACH_PHASE_2_SANCTUM, SUNS_REACH_PHASE_3_ARMORY, and SUNS_REACH_PHASE_4_HARBOR.
Referenced by AddSunsReachProgress(), and Load().
void WorldState::HandleSunwellGateTransition | ( | uint32 | newGate | ) |
References SunsReachReclamationData::m_gate, m_sunsReachData, SunsReachReclamationData::m_sunsReachReclamationMutex, SunsReachReclamationData::m_sunsReachReclamationPlayers, Save(), SAVE_ID_QUEL_DANAS, SendWorldstateUpdate(), StartSunwellGatePhase(), StopSunwellGatePhase(), SUNWELL_AGAMATH_GATE1_OPEN, SUNWELL_ARCHONISUS_GATE3_OPEN, SUNWELL_ROHENDOR_GATE2_OPEN, WORLD_STATE_AGAMATH_THE_FIRST_GATE_HEALTH, WORLD_STATE_ARCHONISUS_THE_FINAL_GATE_HEALTH, and WORLD_STATE_ROHENDOR_THE_SECOND_GATE_HEALTH.
Referenced by AddSunwellGateProgress().
|
static |
bool WorldState::IsActiveZone | ( | uint32 | zoneId | ) |
Referenced by StartNewInvasion().
bool WorldState::IsConditionFulfilled | ( | uint32 | conditionId, |
uint32 | state = WORLD_STATE_CONDITION_STATE_NONE |
||
) | const |
References _isMagtheridonHeadSpawnedAlliance, _isMagtheridonHeadSpawnedHorde, _transportStates, GetSIRemaining(), LOG_ERROR, SI_REMAINING_AZSHARA, SI_REMAINING_BLASTED_LANDS, SI_REMAINING_BURNING_STEPPES, SI_REMAINING_EASTERN_PLAGUELANDS, SI_REMAINING_TANARIS, SI_REMAINING_WINTERSPRING, WORLD_STATE_CONDITION_NAZGRELS_FAVOR, WORLD_STATE_CONDITION_THE_IRON_EAGLE, WORLD_STATE_CONDITION_THE_PURPLE_PRINCESS, WORLD_STATE_CONDITION_THE_THUNDERCALLER, WORLD_STATE_CONDITION_TROLLBANES_COMMAND, WORLD_STATE_SCOURGE_INVASION_AZSHARA, WORLD_STATE_SCOURGE_INVASION_BLASTED_LANDS, WORLD_STATE_SCOURGE_INVASION_BURNING_STEPPES, WORLD_STATE_SCOURGE_INVASION_EASTERN_PLAGUELANDS, WORLD_STATE_SCOURGE_INVASION_TANARIS, and WORLD_STATE_SCOURGE_INVASION_WINTERSPRING.
void WorldState::Load | ( | ) |
References CHAR_SEL_WORLD_STATE, CharacterDatabase, COUNTERS_MAX, COUNTERS_MAX_GATES, Field::Get(), HandleDefendedZones(), HandleSunsReachSubPhaseTransition(), LOG_ERROR, ScourgeInvasionData::m_battlesWon, SunsReachReclamationData::m_gate, SunsReachReclamationData::m_gateCounters, ScourgeInvasionData::m_lastAttackZone, SunsReachReclamationData::m_phase, ScourgeInvasionData::m_remaining, m_siData, ScourgeInvasionData::m_state, SunsReachReclamationData::m_subphaseMask, m_sunsReachData, SunsReachReclamationData::m_sunsReachReclamationCounters, ScourgeInvasionData::m_timers, ScourgeInvasionData::Reset(), SAVE_ID_QUEL_DANAS, SAVE_ID_SCOURGE_INVASION, StartScourgeInvasion(), StartSunsReachPhase(), StartSunwellGatePhase(), STATE_1_ENABLED, and SUNWELL_ALL_GATES_CLOSED.
void WorldState::LoadWorldStates | ( | ) |
References _worldstates, CharacterDatabase, Field::Get(), getMSTime(), GetMSTimeDiffToNow(), LOG_INFO, and LOG_WARN.
void WorldState::OnDisable | ( | ScourgeInvasionData::CityAttack & | zone | ) |
References Map::GetCreature(), GetMap(), ScourgeInvasionData::CityAttack::map, ScourgeInvasionData::CityAttack::pallid, and ScourgeInvasionData::CityAttack::pallidGuid.
void WorldState::OnDisable | ( | ScourgeInvasionData::InvasionZone & | zone | ) |
References Map::GetCreature(), GetMap(), ScourgeInvasionData::InvasionZone::map, ScourgeInvasionData::InvasionZone::mouth, and ScourgeInvasionData::InvasionZone::mouthGuid.
Referenced by StopScourgeInvasion().
void WorldState::OnEnable | ( | ScourgeInvasionData::InvasionZone & | zone | ) |
References GetTimerIdForZone(), ScourgeInvasionData::InvasionZone::remainingNecropoli, ResumeInvasion(), StartNewInvasionIfTime(), sWorldState, and ScourgeInvasionData::InvasionZone::zoneId.
Referenced by StartScourgeInvasion().
void WorldState::RemovePendingInvasion | ( | uint32 | zoneId | ) |
References ScourgeInvasionData::m_pendingInvasions, m_siData, and ScourgeInvasionData::m_siMutex.
void WorldState::RemovePendingPallid | ( | uint32 | zoneId | ) |
References ScourgeInvasionData::m_pendingPallids, m_siData, and ScourgeInvasionData::m_siMutex.
bool WorldState::ResumeInvasion | ( | ScourgeInvasionData::InvasionZone & | zone | ) |
References GetMap(), LOG_DEBUG, LOG_ERROR, ScourgeInvasionData::InvasionZone::map, ScourgeInvasionData::InvasionZone::mouth, ScourgeInvasionData::InvasionZone::remainingNecropoli, SummonMouth(), sWorldState, and ScourgeInvasionData::InvasionZone::zoneId.
Referenced by OnEnable().
void WorldState::Save | ( | WorldStateSaveIds | saveId | ) |
References ScourgeInvasionData::GetData(), SunsReachReclamationData::GetData(), m_siData, m_sunsReachData, SAVE_ID_QUEL_DANAS, SAVE_ID_SCOURGE_INVASION, and SaveHelper().
Referenced by AddBattlesWon(), AddSunsReachProgress(), AddSunwellGateProgress(), HandleSunsReachPhaseTransition(), HandleSunsReachSubPhaseTransition(), HandleSunwellGateTransition(), SetScourgeInvasionState(), and SetSIRemaining().
void WorldState::SaveHelper | ( | std::string & | stringToSave, |
WorldStateSaveIds | saveId | ||
) |
References CHAR_REP_WORLD_STATE, CharacterDatabase, and PreparedStatementBase::SetData().
Referenced by Save().
|
private |
References MailDraft::AddItem(), CharacterDatabase, Item::CreateItem(), ObjectGuid::GetCounter(), ITEM_A_LETTER_FROM_THE_KEEPER_OF_THE_ROLLS, LOG_INFO, MAIL_CHECK_MASK_HAS_BODY, MAIL_TEMPLATE_ARGENT_DAWN_NEEDS_YOUR_HELP, NPC_ARGENT_EMISSARY, and MailDraft::SendMailTo().
Referenced by StartScourgeInvasion().
|
private |
References ObjectAccessor::FindPlayer().
Referenced by AddSunsReachProgress(), AddSunwellGateProgress(), HandleSunsReachPhaseTransition(), and HandleSunwellGateTransition().
void WorldState::SetLastAttackZone | ( | uint32 | zoneId | ) |
References ScourgeInvasionData::m_lastAttackZone, m_siData, and ScourgeInvasionData::m_siMutex.
void WorldState::SetMouthGuid | ( | uint32 | zoneId, |
ObjectGuid | guid | ||
) |
References ScourgeInvasionData::m_activeInvasions, and m_siData.
void WorldState::SetPallidGuid | ( | uint32 | zoneId, |
ObjectGuid | guid | ||
) |
References ScourgeInvasionData::m_cityAttacks, and m_siData.
void WorldState::SetScourgeInvasionState | ( | SIState | state | ) |
References m_siData, ScourgeInvasionData::m_state, Save(), SAVE_ID_SCOURGE_INVASION, StartScourgeInvasion(), STATE_0_DISABLED, and StopScourgeInvasion().
void WorldState::SetSIRemaining | ( | SIRemaining | remaining, |
uint32 | value | ||
) |
References ScourgeInvasionData::m_remaining, m_siData, ScourgeInvasionData::m_siMutex, Save(), and SAVE_ID_SCOURGE_INVASION.
References m_siData, and ScourgeInvasionData::m_timers.
void WorldState::SetSunsReachCounter | ( | SunsReachCounters | index, |
uint32 | value | ||
) |
References m_sunsReachData, and SunsReachReclamationData::m_sunsReachReclamationCounters.
void WorldState::SetSunwellGateCounter | ( | SunwellGateCounters | index, |
uint32 | value | ||
) |
References SunsReachReclamationData::m_gateCounters, and m_sunsReachData.
References _worldstates, CHAR_INS_WORLDSTATE, CHAR_UPD_WORLDSTATE, CharacterDatabase, and PreparedStatementBase::SetData().
void WorldState::StartNewCityAttack | ( | uint32 | zoneId | ) |
References GetMap(), LOG_DEBUG, LOG_ERROR, ScourgeInvasionData::m_cityAttacks, ScourgeInvasionData::m_pendingPallids, m_siData, ScourgeInvasionData::CityAttack::map, ScourgeInvasionData::CityAttack::pallid, SummonPallid(), and urand().
Referenced by StartNewCityAttackIfTime(), and StartZoneEvent().
References CITY_ATTACK_TIMER_MAX, CITY_ATTACK_TIMER_MIN, GetSITimer(), StartNewCityAttack(), sWorldState, and urand().
Referenced by StartScourgeInvasion(), and Update().
void WorldState::StartNewInvasion | ( | uint32 | zoneId | ) |
References AREA_AZSHARA, AREA_BLASTED_LANDS, AREA_BURNING_STEPPES, AREA_EASTERN_PLAGUELANDS, AREA_TANARIS, AREA_WINTERSPRING, GAME_EVENT_SCOURGE_INVASION_AZSHARA, GAME_EVENT_SCOURGE_INVASION_BLASTED_LANDS, GAME_EVENT_SCOURGE_INVASION_BURNING_STEPPES, GAME_EVENT_SCOURGE_INVASION_EASTERN_PLAGUELANDS, GAME_EVENT_SCOURGE_INVASION_TANARIS, GAME_EVENT_SCOURGE_INVASION_WINTERSPRING, GetActiveZones(), GetMap(), IsActiveZone(), LOG_DEBUG, LOG_ERROR, ScourgeInvasionData::m_activeInvasions, m_siData, ScourgeInvasionData::InvasionZone::map, ScourgeInvasionData::InvasionZone::mouth, sGameEventMgr, SummonMouth(), and sWorldState.
Referenced by StartNewInvasionIfTime(), and StartZoneEvent().
References GetSITimer(), and StartNewInvasion().
Referenced by HandleActiveZone(), and OnEnable().
void WorldState::StartScourgeInvasion | ( | bool | sendMail | ) |
References AREA_STORMWIND_CITY, AREA_UNDERCITY, BroadcastSIWorldstates(), GAME_EVENT_SCOURGE_INVASION, ScourgeInvasionData::m_activeInvasions, ScourgeInvasionData::m_cityAttacks, m_siData, ScourgeInvasionData::m_state, OnEnable(), Acore::Containers::RandomShuffle(), SendScourgeInvasionMail(), sGameEventMgr, SI_TIMER_STORMWIND, SI_TIMER_UNDERCITY, StartNewCityAttackIfTime(), and STATE_1_ENABLED.
Referenced by Load(), and SetScourgeInvasionState().
|
private |
References AREA_ISLE_OF_QUEL_DANAS, GAME_EVENT_QUEL_DANAS_PHASE_1, GAME_EVENT_QUEL_DANAS_PHASE_2_ONLY, GAME_EVENT_QUEL_DANAS_PHASE_2_PERMANENT, GAME_EVENT_QUEL_DANAS_PHASE_3_ONLY, GAME_EVENT_QUEL_DANAS_PHASE_3_PERMANENT, GAME_EVENT_QUEL_DANAS_PHASE_4, SunsReachReclamationData::m_phase, m_sunsReachData, MAP_OUTLAND, sGameEventMgr, sMapMgr, SUNS_REACH_PHASE_1_STAGING_AREA, SUNS_REACH_PHASE_2_SANCTUM, SUNS_REACH_PHASE_3_ARMORY, SUNS_REACH_PHASE_4_HARBOR, WEATHER_STATE_FINE, WEATHER_STATE_LIGHT_RAIN, and WEATHER_STATE_MEDIUM_RAIN.
Referenced by HandleSunsReachPhaseTransition(), and Load().
|
private |
References GAME_EVENT_SWP_GATES_PHASE_0, GAME_EVENT_SWP_GATES_PHASE_1, GAME_EVENT_SWP_GATES_PHASE_2, GAME_EVENT_SWP_GATES_PHASE_3, SunsReachReclamationData::m_gate, m_sunsReachData, sGameEventMgr, SUNWELL_AGAMATH_GATE1_OPEN, SUNWELL_ALL_GATES_CLOSED, SUNWELL_ARCHONISUS_GATE3_OPEN, and SUNWELL_ROHENDOR_GATE2_OPEN.
Referenced by HandleSunwellGateTransition(), and Load().
void WorldState::StartZoneEvent | ( | SIZoneIds | eventId | ) |
References AREA_AZSHARA, AREA_BLASTED_LANDS, AREA_BURNING_STEPPES, AREA_EASTERN_PLAGUELANDS, AREA_STORMWIND_CITY, AREA_TANARIS, AREA_UNDERCITY, AREA_WINTERSPRING, SI_ZONE_AZSHARA, SI_ZONE_BLASTED_LANDS, SI_ZONE_BURNING_STEPPES, SI_ZONE_EASTERN_PLAGUELANDS, SI_ZONE_STORMWIND, SI_ZONE_TANARIS, SI_ZONE_UNDERCITY, SI_ZONE_WINTERSPRING, StartNewCityAttack(), and StartNewInvasion().
void WorldState::StopScourgeInvasion | ( | ) |
References BroadcastSIWorldstates(), GAME_EVENT_SCOURGE_INVASION, GAME_EVENT_SCOURGE_INVASION_AZSHARA, GAME_EVENT_SCOURGE_INVASION_BLASTED_LANDS, GAME_EVENT_SCOURGE_INVASION_BURNING_STEPPES, GAME_EVENT_SCOURGE_INVASION_EASTERN_PLAGUELANDS, GAME_EVENT_SCOURGE_INVASION_TANARIS, GAME_EVENT_SCOURGE_INVASION_WINTERSPRING, ScourgeInvasionData::m_activeInvasions, ScourgeInvasionData::m_cityAttacks, m_siData, OnDisable(), ScourgeInvasionData::Reset(), and sGameEventMgr.
Referenced by SetScourgeInvasionState().
|
private |
References GAME_EVENT_QUEL_DANAS_PHASE_1, GAME_EVENT_QUEL_DANAS_PHASE_2_ONLY, GAME_EVENT_QUEL_DANAS_PHASE_2_PERMANENT, GAME_EVENT_QUEL_DANAS_PHASE_3_ONLY, GAME_EVENT_QUEL_DANAS_PHASE_3_PERMANENT, GAME_EVENT_QUEL_DANAS_PHASE_4, SunsReachReclamationData::m_phase, m_sunsReachData, sGameEventMgr, SUNS_REACH_PHASE_1_STAGING_AREA, SUNS_REACH_PHASE_2_SANCTUM, SUNS_REACH_PHASE_3_ARMORY, and SUNS_REACH_PHASE_4_HARBOR.
Referenced by HandleSunsReachPhaseTransition().
|
private |
References GAME_EVENT_SWP_GATES_PHASE_0, GAME_EVENT_SWP_GATES_PHASE_1, GAME_EVENT_SWP_GATES_PHASE_2, GAME_EVENT_SWP_GATES_PHASE_3, SunsReachReclamationData::m_gate, m_sunsReachData, sGameEventMgr, SUNWELL_AGAMATH_GATE1_OPEN, SUNWELL_ALL_GATES_CLOSED, SUNWELL_ARCHONISUS_GATE3_OPEN, and SUNWELL_ROHENDOR_GATE2_OPEN.
Referenced by HandleSunwellGateTransition().
bool WorldState::SummonMouth | ( | Map * | map, |
ScourgeInvasionData::InvasionZone & | zone, | ||
Position | position, | ||
bool | newInvasion | ||
) |
References AddPendingInvasion(), EVENT_HERALD_OF_THE_LICH_KING_ZONE_START, Map::GetCreature(), ScourgeInvasionData::InvasionZone::mouthGuid, ScourgeInvasionData::InvasionZone::necropolisCount, NPC_HERALD_OF_THE_LICH_KING, ScourgeInvasionData::InvasionZone::remainingNecropoli, Map::SummonCreature(), sWorldState, and ScourgeInvasionData::InvasionZone::zoneId.
Referenced by ResumeInvasion(), and StartNewInvasion().
bool WorldState::SummonPallid | ( | Map * | map, |
ScourgeInvasionData::CityAttack & | zone, | ||
const Position & | position, | ||
uint32 | spawnLoc | ||
) |
References AddPendingPallid(), AREA_UNDERCITY, Map::GetCreature(), NPC_PALLID_HORROR, ScourgeInvasionData::CityAttack::pallidGuid, PATH_STORMWIND_KEEP, PATH_STORMWIND_TRADE_DISTRICT, PATH_UNDERCITY_ROYAL_QUARTER, PATH_UNDERCITY_TRADE_QUARTER, Map::SummonCreature(), sWorldState, and ScourgeInvasionData::CityAttack::zoneId.
Referenced by StartNewCityAttack().
void WorldState::Update | ( | uint32 | diff | ) |
References _adalSongOfBattleTimer, AREA_STORMWIND_CITY, AREA_UNDERCITY, BroadcastSIWorldstates(), DispelAdalsSongOfBattle(), GetTimerIdForZone(), HandleActiveZone(), ScourgeInvasionData::m_activeInvasions, ScourgeInvasionData::m_broadcastTimer, ScourgeInvasionData::m_cityAttacks, m_siData, ScourgeInvasionData::m_state, SI_TIMER_STORMWIND, SI_TIMER_UNDERCITY, StartNewCityAttackIfTime(), STATE_0_DISABLED, and STATE_1_ENABLED.
|
private |
Referenced by HandleExternalEvent(), HandlePlayerEnterZone(), HandlePlayerLeaveZone(), and Update().
|
private |
Referenced by HandleExternalEvent(), HandlePlayerEnterZone(), and IsConditionFulfilled().
|
private |
Referenced by HandleExternalEvent(), HandlePlayerEnterZone(), and IsConditionFulfilled().
|
private |
Referenced by HandleExternalEvent(), HandlePlayerEnterZone(), and HandlePlayerLeaveZone().
|
private |
Referenced by HandleConditionStateChange(), IsConditionFulfilled(), and WorldState().
|
private |
Referenced by getWorldState(), LoadWorldStates(), and setWorldState().
|
private |
Referenced by AddBattlesWon(), AddPendingInvasion(), AddPendingPallid(), FillInitialWorldStates(), GetActiveZones(), GetBattlesWon(), GetLastAttackZone(), GetScourgeInvasionPrintout(), GetSIRemaining(), GetSITimer(), HandleActiveZone(), HandleDefendedZones(), Load(), RemovePendingInvasion(), RemovePendingPallid(), Save(), SetLastAttackZone(), SetMouthGuid(), SetPallidGuid(), SetScourgeInvasionState(), SetSIRemaining(), SetSITimer(), StartNewCityAttack(), StartNewInvasion(), StartScourgeInvasion(), StopScourgeInvasion(), and Update().
|
private |
Referenced by AddSunsReachProgress(), AddSunwellGateProgress(), FillInitialWorldStates(), GetSunsReachPrintout(), HandlePlayerEnterZone(), HandlePlayerLeaveZone(), HandleSunsReachPhaseTransition(), HandleSunsReachSubPhaseTransition(), HandleSunwellGateTransition(), Load(), Save(), SetSunsReachCounter(), SetSunwellGateCounter(), StartSunsReachPhase(), StartSunwellGatePhase(), StopSunsReachPhase(), and StopSunwellGatePhase().