diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/DataStores/DBCStores.cpp | 2 | ||||
-rwxr-xr-x | src/server/game/DataStores/DBCStores.h | 1 | ||||
-rw-r--r-- | src/server/game/DataStores/DBCStructure.h | 7 | ||||
-rw-r--r-- | src/server/game/DataStores/DBCfmt.h | 1 | ||||
-rw-r--r-- | src/server/game/Handlers/MiscHandler.cpp | 7 |
5 files changed, 17 insertions, 1 deletions
diff --git a/src/server/game/DataStores/DBCStores.cpp b/src/server/game/DataStores/DBCStores.cpp index 8a647bacfea..9dc60c33328 100644 --- a/src/server/game/DataStores/DBCStores.cpp +++ b/src/server/game/DataStores/DBCStores.cpp @@ -58,6 +58,7 @@ static WMOAreaInfoByTripple sWMOAreaInfoByTripple; DBCStorage <AchievementEntry> sAchievementStore(Achievementfmt); DBCStorage <AchievementCriteriaEntry> sAchievementCriteriaStore(AchievementCriteriafmt); DBCStorage <AreaTriggerEntry> sAreaTriggerStore(AreaTriggerEntryfmt); +DBCStorage <PhaseEntry> sPhaseStore(PhaseEntryfmt); DBCStorage <ArmorLocationEntry> sArmorLocationStore(ArmorLocationfmt); DBCStorage <AuctionHouseEntry> sAuctionHouseStore(AuctionHouseEntryfmt); DBCStorage <BankBagSlotPricesEntry> sBankBagSlotPricesStore(BankBagSlotPricesEntryfmt); @@ -328,6 +329,7 @@ void LoadDBCStores(const std::string& dataPath) LoadDBC(availableDbcLocales, bad_dbc_files, sAchievementStore, dbcPath, "Achievement.dbc"/*, &CustomAchievementfmt, &CustomAchievementIndex*/);//14545 LoadDBC(availableDbcLocales, bad_dbc_files, sAchievementCriteriaStore, dbcPath, "Achievement_Criteria.dbc");//14545 LoadDBC(availableDbcLocales, bad_dbc_files, sAreaTriggerStore, dbcPath, "AreaTrigger.dbc");//14545 + LoadDBC(availableDbcLocales, bad_dbc_files, sPhaseStore, dbcPath, "Phase.dbc"); LoadDBC(availableDbcLocales, bad_dbc_files, sAreaGroupStore, dbcPath, "AreaGroup.dbc");//14545 LoadDBC(availableDbcLocales, bad_dbc_files, sAreaPOIStore, dbcPath, "AreaPOI.dbc");//14545 LoadDBC(availableDbcLocales, bad_dbc_files, sAuctionHouseStore, dbcPath, "AuctionHouse.dbc");//14545 diff --git a/src/server/game/DataStores/DBCStores.h b/src/server/game/DataStores/DBCStores.h index c4e012c62c1..80bed703c84 100755 --- a/src/server/game/DataStores/DBCStores.h +++ b/src/server/game/DataStores/DBCStores.h @@ -81,6 +81,7 @@ extern DBCStorage <AreaTableEntry> sAreaStore;// recommend access extern DBCStorage <AreaGroupEntry> sAreaGroupStore; extern DBCStorage <AreaPOIEntry> sAreaPOIStore; extern DBCStorage <AreaTriggerEntry> sAreaTriggerStore; +extern DBCStorage <PhaseEntry> sPhaseStore; extern DBCStorage <ArmorLocationEntry> sArmorLocationStore; extern DBCStorage <AuctionHouseEntry> sAuctionHouseStore; extern DBCStorage <BankBagSlotPricesEntry> sBankBagSlotPricesStore; diff --git a/src/server/game/DataStores/DBCStructure.h b/src/server/game/DataStores/DBCStructure.h index 87e77ad491e..31e1817d0ad 100644 --- a/src/server/game/DataStores/DBCStructure.h +++ b/src/server/game/DataStores/DBCStructure.h @@ -609,6 +609,13 @@ struct AreaTriggerEntry float box_orientation; // 12 m_box_yaw }; +struct PhaseEntry +{ + uint32 Id; + char* Name; + uint32 Flag; +} + struct ArmorLocationEntry { uint32 InventoryType; // 0 diff --git a/src/server/game/DataStores/DBCfmt.h b/src/server/game/DataStores/DBCfmt.h index c1430c7bef0..17d036e6e59 100644 --- a/src/server/game/DataStores/DBCfmt.h +++ b/src/server/game/DataStores/DBCfmt.h @@ -30,6 +30,7 @@ char const AreaTableEntryfmt[]="iiinixxxxxisiiiiifxxxxxxxx"; char const AreaGroupEntryfmt[]="niiiiiii"; char const AreaPOIEntryfmt[]="niiiiiiiiiiiffixixxixx"; char const AreaTriggerEntryfmt[]="nifffxxxfffff"; +char const PhaseEntryfmt[]="isi"; char const ArmorLocationfmt[]="nfffff"; char const AuctionHouseEntryfmt[]="niiix"; char const BankBagSlotPricesEntryfmt[]="ni"; diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp index d1bf36b885b..38e3a56985b 100644 --- a/src/server/game/Handlers/MiscHandler.cpp +++ b/src/server/game/Handlers/MiscHandler.cpp @@ -1756,7 +1756,12 @@ void WorldSession::SendSetPhaseShift(std::set<uint32> const& phaseIds, std::set< data.WriteByteSeq(guid[1]); - data << uint32(0); // flags (not phasemask) + uint32 flag = 8; + for (std::set<uint32>::const_iterator itr = phaseIds.begin(); itr != phaseIds.end(); ++itr) + if (PhaseEntry const* phaseEntry = sPhaseStore.LookupEntry(*itr)) + flag |= phaseEntry->Flag; + + data << uint32(flag); // flags (not phasemask) data.WriteByteSeq(guid[2]); data.WriteByteSeq(guid[6]); |