Implemented Phase Definitions, Terrainswap and multiphasing

* fixes cataclysm aura effect SPELL_AURA_PHASE without phasemasks defined in miscValueA

NOTE:
 - Need some more test and feedback!

Thanks to:
 - Naios: Main Author
 - Cyberbrest: For the hard research work about multiphasing.
 - Venugh: He helped me with a lot of strange compile Errors.
 - Shauren: For the 4.3.4 phaseshift packet.
 - Booksize: He showed me how terrainswap works
 - Zakamurite: For Backporting some to MaNGOS
 - All other Author
This commit is contained in:
Salja 2013-12-16 14:09:19 +02:00 committed by Antz
parent 7c485a9ccc
commit ab2c78ba59
29 changed files with 418 additions and 210 deletions

View file

@ -69,6 +69,7 @@
#include "CharacterDatabaseCleaner.h"
#include "CreatureLinkingMgr.h"
#include "Calendar.h"
#include "PhaseMgr.h"
INSTANTIATE_SINGLETON_1(World);
@ -1141,9 +1142,6 @@ void World::SetInitialWorldSettings()
sLog.outString("Loading Quest POI");
sObjectMgr.LoadQuestPOI();
sLog.outString("Loading Quest Phase Maps...");
sObjectMgr.LoadQuestPhaseMaps();
sLog.outString("Loading Quests Relations...");
sLog.outString();
sObjectMgr.LoadQuestRelations(); // must be after quest load
@ -1160,6 +1158,12 @@ void World::SetInitialWorldSettings()
sLog.outString("Loading Conditions...");
sObjectMgr.LoadConditions();
sLog.outString("Loading Phase definitions...");
sObjectMgr.LoadPhaseDefinitions();
sLog.outString("Loading Spell Phase Dbc Info...");
sObjectMgr.LoadSpellPhaseInfo();
sLog.outString("Creating map persistent states for non-instanceable maps..."); // must be after PackInstances(), LoadCreatures(), sPoolMgr.LoadFromDB(), sGameEventMgr.LoadFromDB();
sMapPersistentStateMgr.InitWorldMaps();
@ -2541,3 +2545,13 @@ bool World::configNoReload(bool reload, eConfigBoolValues index, char const* fie
return false;
}
void World::UpdatePhaseDefinitions()
{
SessionMap::const_iterator itr;
for (itr = m_sessions.begin(); itr != m_sessions.end(); ++itr)
{
if (itr->second && itr->second->GetPlayer() && itr->second->GetPlayer()->IsInWorld())
itr->second->GetPlayer()->GetPhaseMgr()->NotifyStoresReloaded();
}
}