Core/Misc: Move WorldState enum to SharedDefines

Port From (https://github.com/TrinityCore/TrinityCore/commit/ca62d93481f60807679c8632e09fa6f48f29de68)
This commit is contained in:
hondacrx
2022-02-23 17:01:51 -05:00
parent 3c6e9e7795
commit 628a24923c
8 changed files with 95 additions and 78 deletions
+34 -14
View File
@@ -874,20 +874,6 @@ namespace Framework.Constants
Garrison = 0x4000000
}
public enum WorldStates
{
CurrencyResetTime = 20001, // Next currency reset time
WeeklyQuestResetTime = 20002, // Next weekly quest reset time
BGDailyResetTime = 20003, // Next daily BG reset time
CleaningFlags = 20004, // Cleaning Flags
GuildDailyResetTime = 20006, // Next guild cap reset time
MonthlyQuestResetTime = 20007, // Next monthly quest reset time
DailyQuestResetTime = 20008, // Next daily quest reset time
DailyCalendarDeletionOldEventsTime = 20009, // Next daily calendar deletions of old events time
// Cata specific custom worldstates
GuildWeeklyResetTime = 20050, // Next guild week reset time
}
// values based at Holidays.dbc
public enum HolidayIds
{
@@ -2950,4 +2936,38 @@ namespace Framework.Constants
WestparkWorkshop = 4611,
EastparkWorkshop = 4612,
}
public enum WorldStates
{
BattlefieldWgVehicleH = 3490,
BattlefieldWgMaxVehicleH = 3491,
BattlefieldWgVehicleA = 3680,
BattlefieldWgMaxVehicleA = 3681,
BattlefieldWgWorkshopKW = 3698,
BattlefieldWgWorkshopKE = 3699,
BattlefieldWgWorkshopNw = 3700,
BattlefieldWgWorkshopNe = 3701,
BattlefieldWgWorkshopSw = 3702,
BattlefieldWgWorkshopSe = 3703,
BattlefieldWgShowWorldstate = 3710,
BattlefieldWgTimeBattleEnd = 3781,
BattlefieldWgActive = 3801,
BattlefieldWgDefender = 3802,
BattlefieldWgAttacker = 3803,
BattlefieldWgAttackedH = 4022,
BattlefieldWgAttackedA = 4023,
BattlefieldWgDefendedH = 4024,
BattlefieldWgDefendedA = 4025,
BattlefieldWgTimeNextBattle = 4354,
CurrencyResetTime = 20001, // Next Arena Distribution Time
WeeklyQuestResetTime = 20002, // Next Weekly Quest Reset Time
BgDailyResetTime = 20003, // Next Daily Bg Reset Time
CleaningFlags = 20004, // Cleaning Flags
GuildDailyResetTime = 20006, // Next Guild Cap Reset Time
MonthlyQuestResetTime = 20007, // Next Monthly Quest Reset Time
DailyQuestResetTime = 20008, // Next Daily Quest Reset Time
DailyCalendarDeletionOldEventsTime = 20009, // Next Daily Calendar Deletions Of Old Events Time
GuildWeeklyResetTime = 20050, // Next Guild Week Reset Time
}
}
+5
View File
@@ -468,6 +468,11 @@ namespace Game.BattleFields
Global.CreatureTextMgr.SendChat(stalker, (byte)id, target);
}
public void SendUpdateWorldState(WorldStates variable, uint value, bool hidden = false)
{
SendUpdateWorldState((uint)variable, value, hidden);
}
public void SendUpdateWorldState(uint variable, uint value, bool hidden = false)
{
UpdateWorldState worldstate = new();
+27 -27
View File
@@ -61,15 +61,15 @@ namespace Game.BattleFields
m_saveTimer = 60000;
// Load from db
if ((Global.WorldMgr.GetWorldState(WGWorldStates.Active) == 0) && (Global.WorldMgr.GetWorldState(WGWorldStates.Defender) == 0) && (Global.WorldMgr.GetWorldState(WGConst.ClockWorldState[0]) == 0))
if ((Global.WorldMgr.GetWorldState(WorldStates.BattlefieldWgActive) == 0) && (Global.WorldMgr.GetWorldState(WorldStates.BattlefieldWgDefender) == 0) && (Global.WorldMgr.GetWorldState(WGConst.ClockWorldState[0]) == 0))
{
Global.WorldMgr.SetWorldState(WGWorldStates.Active, 0);
Global.WorldMgr.SetWorldState(WGWorldStates.Defender, RandomHelper.URand(0, 1));
Global.WorldMgr.SetWorldState(WorldStates.BattlefieldWgActive, 0);
Global.WorldMgr.SetWorldState(WorldStates.BattlefieldWgDefender, RandomHelper.URand(0, 1));
Global.WorldMgr.SetWorldState(WGConst.ClockWorldState[0], m_NoWarBattleTime);
}
m_isActive = Global.WorldMgr.GetWorldState(WGWorldStates.Active) != 0;
m_DefenderTeam = Global.WorldMgr.GetWorldState(WGWorldStates.Defender);
m_isActive = Global.WorldMgr.GetWorldState(WorldStates.BattlefieldWgActive) != 0;
m_DefenderTeam = Global.WorldMgr.GetWorldState(WorldStates.BattlefieldWgDefender);
m_Timer = Global.WorldMgr.GetWorldState(WGConst.ClockWorldState[0]);
if (m_isActive)
@@ -78,10 +78,10 @@ namespace Game.BattleFields
m_Timer = m_RestartAfterCrash;
}
SetData(WGData.WonA, Global.WorldMgr.GetWorldState(WGWorldStates.AttackedA));
SetData(WGData.DefA, Global.WorldMgr.GetWorldState(WGWorldStates.DefendedA));
SetData(WGData.WonH, Global.WorldMgr.GetWorldState(WGWorldStates.AttackedH));
SetData(WGData.DefH, Global.WorldMgr.GetWorldState(WGWorldStates.DefendedH));
SetData(WGData.WonA, Global.WorldMgr.GetWorldState(WorldStates.BattlefieldWgAttackedA));
SetData(WGData.DefA, Global.WorldMgr.GetWorldState(WorldStates.BattlefieldWgDefendedA));
SetData(WGData.WonH, Global.WorldMgr.GetWorldState(WorldStates.BattlefieldWgAttackedH));
SetData(WGData.DefH, Global.WorldMgr.GetWorldState(WorldStates.BattlefieldWgDefendedH));
foreach (var gy in WGConst.WGGraveYard)
{
@@ -163,13 +163,13 @@ namespace Game.BattleFields
bool m_return = base.Update(diff);
if (m_saveTimer <= diff)
{
Global.WorldMgr.SetWorldState(WGWorldStates.Active, m_isActive);
Global.WorldMgr.SetWorldState(WGWorldStates.Defender, m_DefenderTeam);
Global.WorldMgr.SetWorldState(WorldStates.BattlefieldWgActive, m_isActive);
Global.WorldMgr.SetWorldState(WorldStates.BattlefieldWgDefender, m_DefenderTeam);
Global.WorldMgr.SetWorldState(WGConst.ClockWorldState[0], m_Timer);
Global.WorldMgr.SetWorldState(WGWorldStates.AttackedA, GetData(WGData.WonA));
Global.WorldMgr.SetWorldState(WGWorldStates.DefendedA, GetData(WGData.DefA));
Global.WorldMgr.SetWorldState(WGWorldStates.AttackedH, GetData(WGData.WonH));
Global.WorldMgr.SetWorldState(WGWorldStates.DefendedH, GetData(WGData.DefH));
Global.WorldMgr.SetWorldState(WorldStates.BattlefieldWgAttackedA, GetData(WGData.WonA));
Global.WorldMgr.SetWorldState(WorldStates.BattlefieldWgDefendedA, GetData(WGData.DefA));
Global.WorldMgr.SetWorldState(WorldStates.BattlefieldWgAttackedH, GetData(WGData.WonH));
Global.WorldMgr.SetWorldState(WorldStates.BattlefieldWgDefendedH, GetData(WGData.DefH));
m_saveTimer = 60 * Time.InMilliseconds;
}
else
@@ -763,19 +763,19 @@ namespace Game.BattleFields
public override void FillInitialWorldStates(InitWorldStates packet)
{
packet.AddState(WGWorldStates.Attacker, (int)GetAttackerTeam());
packet.AddState(WGWorldStates.Defender, (int)GetDefenderTeam());
packet.AddState(WorldStates.BattlefieldWgAttacker, (int)GetAttackerTeam());
packet.AddState(WorldStates.BattlefieldWgDefender, (int)GetDefenderTeam());
// Note: cleanup these two, their names look awkward
packet.AddState(WGWorldStates.Active, IsWarTime());
packet.AddState(WGWorldStates.ShowWorldstate, IsWarTime());
packet.AddState(WorldStates.BattlefieldWgActive, IsWarTime());
packet.AddState(WorldStates.BattlefieldWgShowWorldstate, IsWarTime());
for (uint i = 0; i < 2; ++i)
packet.AddState(WGConst.ClockWorldState[i], (int)(GameTime.GetGameTime() + (m_Timer / 1000)));
packet.AddState(WGWorldStates.VehicleH, (int)GetData(WGData.VehicleH));
packet.AddState(WGWorldStates.MaxVehicleH, (int)GetData(WGData.MaxVehicleH));
packet.AddState(WGWorldStates.VehicleA, (int)GetData(WGData.VehicleA));
packet.AddState(WGWorldStates.MaxVehicleA, (int)GetData(WGData.MaxVehicleA));
packet.AddState(WorldStates.BattlefieldWgVehicleH, (int)GetData(WGData.VehicleH));
packet.AddState(WorldStates.BattlefieldWgMaxVehicleH, (int)GetData(WGData.MaxVehicleH));
packet.AddState(WorldStates.BattlefieldWgVehicleA, (int)GetData(WGData.VehicleA));
packet.AddState(WorldStates.BattlefieldWgMaxVehicleA, (int)GetData(WGData.MaxVehicleA));
foreach (BfWGGameObjectBuilding building in BuildingsInZone)
building.FillInitialWorldStates(packet);
@@ -922,10 +922,10 @@ namespace Game.BattleFields
// Update vehicle count WorldState to player
void UpdateVehicleCountWG()
{
SendUpdateWorldState(WGWorldStates.VehicleH, GetData(WGData.VehicleH));
SendUpdateWorldState(WGWorldStates.MaxVehicleH, GetData(WGData.MaxVehicleH));
SendUpdateWorldState(WGWorldStates.VehicleA, GetData(WGData.VehicleA));
SendUpdateWorldState(WGWorldStates.MaxVehicleA, GetData(WGData.MaxVehicleA));
SendUpdateWorldState(WorldStates.BattlefieldWgVehicleH, GetData(WGData.VehicleH));
SendUpdateWorldState(WorldStates.BattlefieldWgMaxVehicleH, GetData(WGData.MaxVehicleH));
SendUpdateWorldState(WorldStates.BattlefieldWgVehicleA, GetData(WGData.VehicleA));
SendUpdateWorldState(WorldStates.BattlefieldWgMaxVehicleA, GetData(WGData.MaxVehicleA));
}
void UpdateTenacity()
@@ -41,7 +41,7 @@ namespace Game.BattleFields
new BfWGCoordGY(5140.790f, 2179.120f, 390.950f, 1.972220f, 1332, WGGossipText.GYAlliance, TeamId.Alliance),
};
public static uint[] ClockWorldState = { 3781, 4354 };
public static WorldStates[] ClockWorldState = { WorldStates.BattlefieldWgTimeBattleEnd, WorldStates.BattlefieldWgTimeNextBattle };
public static uint[] WintergraspFaction = { 1732, 1735, 35 };
public static Position WintergraspStalkerPos = new(4948.985f, 2937.789f, 550.5172f, 1.815142f);
@@ -308,7 +308,7 @@ namespace Game.BattleFields
new StaticWintergraspWorkshopInfo()
{
WorkshopId = WGWorkshopIds.Ne,
WorldStateId = WGWorldStates.NE,
WorldStateId = WorldStates.BattlefieldWgWorkshopNe,
AllianceCaptureTextId = WintergraspText.SunkenRingCaptureAlliance,
AllianceAttackTextId = WintergraspText.SunkenRingAttackAlliance,
HordeCaptureTextId = WintergraspText.SunkenRingCaptureHorde,
@@ -317,7 +317,7 @@ namespace Game.BattleFields
new StaticWintergraspWorkshopInfo()
{
WorkshopId = WGWorkshopIds.Nw,
WorldStateId = WGWorldStates.NW,
WorldStateId = WorldStates.BattlefieldWgWorkshopNw,
AllianceCaptureTextId = WintergraspText.BrokenTempleCaptureAlliance,
AllianceAttackTextId = WintergraspText.BrokenTempleAttackAlliance,
HordeCaptureTextId = WintergraspText.BrokenTempleCaptureHorde,
@@ -326,7 +326,7 @@ namespace Game.BattleFields
new StaticWintergraspWorkshopInfo()
{
WorkshopId = WGWorkshopIds.Se,
WorldStateId = WGWorldStates.SE,
WorldStateId = WorldStates.BattlefieldWgWorkshopSe,
AllianceCaptureTextId = WintergraspText.EastsparkCaptureAlliance,
AllianceAttackTextId = WintergraspText.EastsparkAttackAlliance,
HordeCaptureTextId = WintergraspText.EastsparkCaptureHorde,
@@ -336,7 +336,7 @@ namespace Game.BattleFields
new StaticWintergraspWorkshopInfo()
{
WorkshopId = WGWorkshopIds.Sw,
WorldStateId = WGWorldStates.SW,
WorldStateId = WorldStates.BattlefieldWgWorkshopSw,
AllianceCaptureTextId = WintergraspText.WestsparkCaptureAlliance,
AllianceAttackTextId = WintergraspText.WestsparkAttackAlliance,
HordeCaptureTextId = WintergraspText.WestsparkCaptureHorde,
@@ -347,13 +347,13 @@ namespace Game.BattleFields
new StaticWintergraspWorkshopInfo()
{
WorkshopId = WGWorkshopIds.KeepWest,
WorldStateId = WGWorldStates.KeepW
WorldStateId = WorldStates.BattlefieldWgWorkshopKW
},
new StaticWintergraspWorkshopInfo()
{
WorkshopId = WGWorkshopIds.KeepEast,
WorldStateId = WGWorldStates.KeepE
WorldStateId = WorldStates.BattlefieldWgWorkshopKE
}
};
#endregion
@@ -501,29 +501,6 @@ namespace Game.BattleFields
public const byte KeepEast = 5;
}
struct WGWorldStates
{
public const uint NE = 3701;
public const uint NW = 3700;
public const uint SE = 3703;
public const uint SW = 3702;
public const uint KeepW = 3698;
public const uint KeepE = 3699;
public const uint VehicleH = 3490;
public const uint MaxVehicleH = 3491;
public const uint VehicleA = 3680;
public const uint MaxVehicleA = 3681;
public const uint Active = 3801;
public const uint Defender = 3802;
public const uint Attacker = 3803;
public const uint ShowWorldstate = 3710;
public const uint AttackedH = 4022;
public const uint AttackedA = 4023;
public const uint DefendedH = 4024;
public const uint DefendedA = 4025;
}
struct WGGossipText
{
public const int GYNE = 20071;
@@ -715,7 +692,7 @@ namespace Game.BattleFields
class StaticWintergraspWorkshopInfo
{
public byte WorkshopId;
public uint WorldStateId;
public WorldStates WorldStateId;
public byte AllianceCaptureTextId;
public byte AllianceAttackTextId;
public byte HordeCaptureTextId;
+2 -2
View File
@@ -729,9 +729,9 @@ namespace Game.Entities
BattleField wg = Global.BattleFieldMgr.GetBattlefieldByBattleId(1);//Wintergrasp battle
if (wg != null)
{
SendUpdateWorldState(3801, (uint)(wg.IsWarTime() ? 0 : 1));
SendUpdateWorldState(WorldStates.BattlefieldWgActive, (uint)(wg.IsWarTime() ? 0 : 1));
uint timer = wg.IsWarTime() ? 0 : (wg.GetTimer() / 1000); // 0 - Time to next battle
SendUpdateWorldState(4354, (uint)(GameTime.GetGameTime() + timer));
SendUpdateWorldState(WorldStates.BattlefieldWgTimeNextBattle, (uint)(GameTime.GetGameTime() + timer));
}
}
}
+5
View File
@@ -2837,6 +2837,11 @@ namespace Game.Entities
public CinematicManager GetCinematicMgr() { return _cinematicMgr; }
public void SendUpdateWorldState(WorldStates variable, uint value, bool hidden = false)
{
SendUpdateWorldState((uint)variable, value, hidden);
}
public void SendUpdateWorldState(uint variable, uint value, bool hidden = false)
{
UpdateWorldState worldstate = new();
@@ -38,11 +38,21 @@ namespace Game.Networking.Packets
}
}
public void AddState(WorldStates variableID, int value)
{
AddState((uint)variableID, value);
}
public void AddState(uint variableID, int value)
{
Worldstates.Add(new WorldStateInfo(variableID, value));
}
public void AddState(WorldStates variableID, bool value)
{
AddState((uint)variableID, value);
}
public void AddState(uint variableID, bool value)
{
Worldstates.Add(new WorldStateInfo(variableID, value ? 1 : 0));
+4 -4
View File
@@ -2116,7 +2116,7 @@ namespace Game
void InitRandomBGResetTime()
{
long bgtime = GetWorldState(WorldStates.BGDailyResetTime);
long bgtime = GetWorldState(WorldStates.BgDailyResetTime);
if (bgtime == 0)
m_NextRandomBGReset = GameTime.GetGameTime(); // game time not yet init
@@ -2134,7 +2134,7 @@ namespace Game
m_NextRandomBGReset = bgtime < curTime ? nextDayResetTime - Time.Day : nextDayResetTime;
if (bgtime == 0)
SetWorldState(WorldStates.BGDailyResetTime, (ulong)m_NextRandomBGReset);
SetWorldState(WorldStates.BgDailyResetTime, (ulong)m_NextRandomBGReset);
}
void InitCalendarOldEventsDeletionTime()
@@ -2230,7 +2230,7 @@ namespace Game
session.GetPlayer().SetRandomWinner(false);
m_NextRandomBGReset += Time.Day;
SetWorldState(WorldStates.BGDailyResetTime, (ulong)m_NextRandomBGReset);
SetWorldState(WorldStates.BgDailyResetTime, (ulong)m_NextRandomBGReset);
}
void CalendarDeleteOldEvents()
@@ -2319,7 +2319,7 @@ namespace Game
Log.outInfo(LogFilter.ServerLoading, "Loaded {0} world states in {1} ms", count, Time.GetMSTimeDiffToNow(oldMSTime));
}
public void SetWorldState(WorldStates index, ulong value)
public void SetWorldState(WorldStates index, object value)
{
SetWorldState((uint)index, value);
}