From c4247ece32c91678348e56dbab792443f3072568 Mon Sep 17 00:00:00 2001 From: GriffonHeart Date: Wed, 12 May 2010 05:58:17 +0400 Subject: [PATCH] [9878] Set for client battleground weekend event world state. Signed-off-by: VladimirMangos --- src/game/DBCStructure.h | 2 +- src/game/DBCfmt.h | 2 +- src/game/Player.cpp | 17 +++++++++++++++++ src/game/Player.h | 1 + src/shared/revision_nr.h | 2 +- 5 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/game/DBCStructure.h b/src/game/DBCStructure.h index 73f4c936a..e63ae5ca9 100644 --- a/src/game/DBCStructure.h +++ b/src/game/DBCStructure.h @@ -574,7 +574,7 @@ struct BattlemasterListEntry char* name[16]; // 11-26 //uint32 nameFlags // 27 string flag, unused uint32 maxGroupSize; // 28 maxGroupSize, used for checking if queue as group - //uint32 HolidayWorldStateId; // 29 new 3.1 + uint32 HolidayWorldStateId; // 29 new 3.1 uint32 minLevel; // 30, min level (sync with PvPDifficulty.dbc content) uint32 maxLevel; // 31, max level (sync with PvPDifficulty.dbc content) }; diff --git a/src/game/DBCfmt.h b/src/game/DBCfmt.h index d4c265164..582494424 100644 --- a/src/game/DBCfmt.h +++ b/src/game/DBCfmt.h @@ -27,7 +27,7 @@ const char AreaTriggerEntryfmt[]="niffffffff"; const char AuctionHouseEntryfmt[]="niiixxxxxxxxxxxxxxxxx"; const char BankBagSlotPricesEntryfmt[]="ni"; const char BarberShopStyleEntryfmt[]="nixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxiii"; -const char BattlemasterListEntryfmt[]="niiiiiiiiixssssssssssssssssxixii"; +const char BattlemasterListEntryfmt[]="niiiiiiiiixssssssssssssssssxiiii"; const char CharStartOutfitEntryfmt[]="diiiiiiiiiiiiiiiiiiiiiiiiixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; const char CharTitlesEntryfmt[]="nxssssssssssssssssxxxxxxxxxxxxxxxxxxi"; const char ChatChannelsEntryfmt[]="iixssssssssssssssssxxxxxxxxxxxxxxxxxx"; diff --git a/src/game/Player.cpp b/src/game/Player.cpp index a7990115e..cbddde8f0 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -8369,6 +8369,23 @@ void Player::SendInitWorldStates(uint32 zoneid, uint32 areaid) break; } GetSession()->SendPacket(&data); + + SendBGWeekendWorldStates(); +} + +void Player::SendBGWeekendWorldStates() +{ + for(uint32 i = 1; i < sBattlemasterListStore.GetNumRows(); ++i) + { + BattlemasterListEntry const * bl = sBattlemasterListStore.LookupEntry(i); + if (bl && bl->HolidayWorldStateId) + { + if (BattleGroundMgr::IsBGWeekend(BattleGroundTypeId(bl->id))) + SendUpdateWorldState(bl->HolidayWorldStateId,1); + else + SendUpdateWorldState(bl->HolidayWorldStateId,0); + } + } } uint32 Player::GetXPRestBonus(uint32 xp) diff --git a/src/game/Player.h b/src/game/Player.h index 41b01354c..06d8882a8 100644 --- a/src/game/Player.h +++ b/src/game/Player.h @@ -1990,6 +1990,7 @@ class MANGOS_DLL_SPEC Player : public Unit void SendInitWorldStates(uint32 zone, uint32 area); void SendUpdateWorldState(uint32 Field, uint32 Value); void SendDirectMessage(WorldPacket *data); + void SendBGWeekendWorldStates(); void SendAurasForTarget(Unit *target); diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 0cc87881a..33cf177e4 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "9877" + #define REVISION_NR "9878" #endif // __REVISION_NR_H__