Remove custom OptionalType and use the default c# nullable type.

This commit is contained in:
hondacrx
2022-03-01 17:27:56 -05:00
parent cc08afe269
commit c14f1eb3dc
89 changed files with 924 additions and 976 deletions
+22 -22
View File
@@ -172,13 +172,13 @@ namespace Game.Entities
uint timeToTarget = GetCreateProperties().TimeToTarget != 0 ? GetCreateProperties().TimeToTarget : m_areaTriggerData.Duration;
if (GetCreateProperties().OrbitInfo.HasValue)
if (GetCreateProperties().OrbitInfo != null)
{
AreaTriggerOrbitInfo orbit = GetCreateProperties().OrbitInfo.Value;
AreaTriggerOrbitInfo orbit = GetCreateProperties().OrbitInfo;
if (target && GetTemplate() != null && GetTemplate().HasFlag(AreaTriggerFlags.HasAttached))
orbit.PathTarget.Set(target.GetGUID());
orbit.PathTarget = target.GetGUID();
else
orbit.Center.Set(new Vector3(pos.posX, pos.posY, pos.posZ));
orbit.Center = new(pos.posX, pos.posY, pos.posZ);
InitOrbit(orbit, timeToTarget);
}
@@ -759,10 +759,10 @@ namespace Game.Entities
AreaTriggerRePath reshape = new();
reshape.TriggerGUID = GetGUID();
reshape.AreaTriggerSpline.Value = new();
reshape.AreaTriggerSpline.Value.ElapsedTimeForMovement = GetElapsedTimeForMovement();
reshape.AreaTriggerSpline.Value.TimeToTarget = timeToTarget;
reshape.AreaTriggerSpline.Value.Points = splinePoints;
reshape.AreaTriggerSpline = new();
reshape.AreaTriggerSpline.ElapsedTimeForMovement = GetElapsedTimeForMovement();
reshape.AreaTriggerSpline.TimeToTarget = timeToTarget;
reshape.AreaTriggerSpline.Points = splinePoints;
SendMessageToSet(reshape, true);
}
@@ -781,10 +781,10 @@ namespace Game.Entities
m_areaTriggerData.ClearChanged(m_areaTriggerData.TimeToTarget);
});
_orbitInfo.Set(orbit);
_orbitInfo = orbit;
_orbitInfo.Value.TimeToTarget = timeToTarget;
_orbitInfo.Value.ElapsedTimeForMovement = 0;
_orbitInfo.TimeToTarget = timeToTarget;
_orbitInfo.ElapsedTimeForMovement = 0;
if (IsInWorld)
{
@@ -798,23 +798,23 @@ namespace Game.Entities
public bool HasOrbit()
{
return _orbitInfo.HasValue;
return _orbitInfo != null;
}
Position GetOrbitCenterPosition()
{
if (!_orbitInfo.HasValue)
if (_orbitInfo == null)
return null;
if (_orbitInfo.Value.PathTarget.HasValue)
if (_orbitInfo.PathTarget.HasValue)
{
WorldObject center = Global.ObjAccessor.GetWorldObject(this, _orbitInfo.Value.PathTarget.Value);
WorldObject center = Global.ObjAccessor.GetWorldObject(this, _orbitInfo.PathTarget.Value);
if (center)
return center;
}
if (_orbitInfo.Value.Center.HasValue)
return new Position(_orbitInfo.Value.Center.Value);
if (_orbitInfo.Center.HasValue)
return new Position(_orbitInfo.Center.Value);
return null;
}
@@ -825,7 +825,7 @@ namespace Game.Entities
if (centerPos == null)
return GetPosition();
AreaTriggerOrbitInfo cmi = _orbitInfo.Value;
AreaTriggerOrbitInfo cmi = _orbitInfo;
// AreaTrigger make exactly "Duration / TimeToTarget" loops during his life time
float pathProgress = (float)cmi.ElapsedTimeForMovement / cmi.TimeToTarget;
@@ -858,10 +858,10 @@ namespace Game.Entities
void UpdateOrbitPosition(uint diff)
{
if (_orbitInfo.Value.StartDelay > GetElapsedTimeForMovement())
if (_orbitInfo.StartDelay > GetElapsedTimeForMovement())
return;
_orbitInfo.Value.ElapsedTimeForMovement = (int)(GetElapsedTimeForMovement() - _orbitInfo.Value.StartDelay);
_orbitInfo.ElapsedTimeForMovement = (int)(GetElapsedTimeForMovement() - _orbitInfo.StartDelay);
Position pos = CalculateOrbitPosition();
@@ -1066,7 +1066,7 @@ namespace Game.Entities
public Spline GetSpline() { return _spline; }
public uint GetElapsedTimeForMovement() { return GetTimeSinceCreated(); } // @todo: research the right value, in sniffs both timers are nearly identical
public Optional<AreaTriggerOrbitInfo> GetCircularMovementInfo() { return _orbitInfo; }
public AreaTriggerOrbitInfo GetCircularMovementInfo() { return _orbitInfo; }
AreaTriggerFieldData m_areaTriggerData;
@@ -1093,7 +1093,7 @@ namespace Game.Entities
int _lastSplineIndex;
uint _movementTime;
Optional<AreaTriggerOrbitInfo> _orbitInfo;
AreaTriggerOrbitInfo _orbitInfo;
AreaTriggerCreateProperties _areaTriggerCreateProperties;
AreaTriggerTemplate _areaTriggerTemplate;
@@ -212,7 +212,7 @@ namespace Game.Entities
public bool IsCylinder() { return TriggerType == AreaTriggerTypes.Cylinder; }
}
public struct AreaTriggerOrbitInfo
public class AreaTriggerOrbitInfo
{
public void Write(WorldPacket data)
{
@@ -236,8 +236,8 @@ namespace Game.Entities
data.WriteVector3(Center.Value);
}
public Optional<ObjectGuid> PathTarget;
public Optional<Vector3> Center;
public ObjectGuid? PathTarget;
public Vector3? Center;
public bool CounterClockwise;
public bool CanLoop;
public uint TimeToTarget;
@@ -315,7 +315,7 @@ namespace Game.Entities
public List<Vector2> PolygonVertices = new();
public List<Vector2> PolygonVerticesTarget = new();
public List<Vector3> SplinePoints = new();
public Optional<AreaTriggerOrbitInfo> OrbitInfo;
public AreaTriggerOrbitInfo OrbitInfo;
public uint ScriptId;
}
+2 -2
View File
@@ -2828,9 +2828,9 @@ namespace Game.Entities
public BonusData(ItemInstance itemInstance) : this(Global.ObjectMgr.GetItemTemplate(itemInstance.ItemID))
{
if (itemInstance.ItemBonus.HasValue)
if (itemInstance.ItemBonus != null)
{
foreach (uint bonusListID in itemInstance.ItemBonus.Value.BonusListIDs)
foreach (uint bonusListID in itemInstance.ItemBonus.BonusListIDs)
AddBonusList(bonusListID);
}
}
@@ -90,6 +90,35 @@ namespace Game.Entities
public T GetValue() { return _value; }
}
public class OptionalUpdateField<T> : IUpdateField<T> where T : new()
{
bool _hasValue;
public T _value;
public int BlockBit;
public int Bit;
public OptionalUpdateField(int blockBit, int bit)
{
BlockBit = blockBit;
Bit = bit;
}
public static implicit operator T(OptionalUpdateField<T> updateField)
{
return updateField._value;
}
public void SetValue(T value)
{
_hasValue = true;
_value = value;
}
public T GetValue() { return _value; }
public bool HasValue() { return _hasValue; }
}
public class UpdateFieldArray<T> where T : new()
{
public T[] _values;
@@ -351,6 +380,12 @@ namespace Game.Entities
((IHasChangesMask)updateField._value).ClearChangesMask();
}
public void ClearChangesMask<U>(OptionalUpdateField<U> updateField) where U : new()
{
if (typeof(IHasChangesMask).IsAssignableFrom(typeof(U)))
((IHasChangesMask)updateField._value).ClearChangesMask();
}
public void ClearChangesMask<U>(UpdateFieldArray<U> updateField) where U : new()
{
if (typeof(IHasChangesMask).IsAssignableFrom(typeof(U)))
@@ -3548,7 +3548,7 @@ namespace Game.Entities
public UpdateField<uint> HonorNextLevel = new(98, 103);
public UpdateField<byte> NumBankSlots = new(98, 104);
public UpdateField<ActivePlayerUnk901> Field_1410 = new(98, 106);
public UpdateField<Optional<QuestSession>> QuestSession = new(98, 105);
public OptionalUpdateField<QuestSession> QuestSession = new(98, 105);
public UpdateField<int> UiChromieTimeExpansionID = new(98, 107);
public UpdateField<int> TransportServerTime = new(98, 108);
public UpdateField<uint> WeeklyRewardsPeriodSinceOrigin = new(98, 109); // week count since Cfg_RegionsEntry::ChallengeOrigin
@@ -3830,11 +3830,11 @@ namespace Game.Entities
data.WriteBit(BankAutoSortDisabled);
data.WriteBit(SortBagsRightToLeft);
data.WriteBit(InsertItemsLeftToRight);
data.WriteBits(QuestSession.GetValue().HasValue, 1);
data.WriteBits(QuestSession.HasValue(), 1);
((ActivePlayerUnk901)Field_1410).WriteCreate(data, owner, receiver);
if (QuestSession.GetValue().HasValue)
if (QuestSession.HasValue())
{
QuestSession.GetValue().Value.WriteCreate(data, owner, receiver);
QuestSession.GetValue().WriteCreate(data, owner, receiver);
}
DungeonScore._value.Write(data);
for (int i = 0; i < CharacterRestrictions.Size(); ++i)
@@ -4599,16 +4599,16 @@ namespace Game.Entities
}
if (changesMask[98])
{
data.WriteBits(QuestSession.GetValue().HasValue, 1);
data.WriteBits(QuestSession.HasValue(), 1);
if (changesMask[106])
{
((ActivePlayerUnk901)Field_1410).WriteUpdate(data, ignoreNestedChangesMask, owner, receiver);
}
if (changesMask[105])
{
if (QuestSession.GetValue().HasValue)
if (QuestSession.HasValue())
{
QuestSession.GetValue().Value.WriteUpdate(data, ignoreNestedChangesMask, owner, receiver);
QuestSession.GetValue().WriteUpdate(data, ignoreNestedChangesMask, owner, receiver);
}
}
if (changesMask[111])
+3 -3
View File
@@ -522,7 +522,7 @@ namespace Game.Entities
// *data << *areaTrigger.GetMovementScript(); // AreaTriggerMovementScriptInfo
if (hasOrbit)
areaTrigger.GetCircularMovementInfo().Value.Write(data);
areaTrigger.GetCircularMovementInfo().Write(data);
}
if (flags.GameObject)
@@ -960,7 +960,7 @@ namespace Game.Entities
if (GetTypeId() == TypeId.Player)
return;
m_visibilityDistanceOverride.Set(SharedConst.VisibilityDistances[(int)type]);
m_visibilityDistanceOverride = SharedConst.VisibilityDistances[(int)type];
}
public virtual void CleanupsBeforeDelete(bool finalCleanup = true)
@@ -3577,7 +3577,7 @@ namespace Game.Entities
string _name;
protected bool m_isActive;
bool m_isFarVisible;
Optional<float> m_visibilityDistanceOverride;
float? m_visibilityDistanceOverride;
bool m_isWorldObject;
public ZoneScript m_zoneScript;
+4 -4
View File
@@ -265,7 +265,7 @@ namespace Game.Entities
public class PlayerInfo
{
public CreatePosition createPosition;
public Optional<CreatePosition> createPositionNPE;
public CreatePosition? createPositionNPE;
public List<PlayerCreateInfoItem> item = new();
public List<uint> customSpells = new();
@@ -273,9 +273,9 @@ namespace Game.Entities
public List<PlayerCreateInfoAction> action = new();
public List<SkillRaceClassInfoRecord> skills = new();
public Optional<uint> introMovieId;
public Optional<uint> introSceneId;
public Optional<uint> introSceneIdNPE;
public uint? introMovieId;
public uint? introSceneId;
public uint? introSceneIdNPE;
public PlayerLevelInfo[] levelInfo = new PlayerLevelInfo[WorldConfig.GetIntValue(WorldCfg.MaxPlayerLevel)];
+6 -6
View File
@@ -200,12 +200,12 @@ namespace Game.Entities
itemPurchaseRefundResult.Result = error;
if (error == 0)
{
itemPurchaseRefundResult.Contents.Value = new();
itemPurchaseRefundResult.Contents.Value.Money = item.GetPaidMoney();
itemPurchaseRefundResult.Contents = new();
itemPurchaseRefundResult.Contents.Money = item.GetPaidMoney();
for (byte i = 0; i < ItemConst.MaxItemExtCostItems; ++i) // item cost data
{
itemPurchaseRefundResult.Contents.Value.Items[i].ItemCount = iece.ItemCount[i];
itemPurchaseRefundResult.Contents.Value.Items[i].ItemID = iece.ItemID[i];
itemPurchaseRefundResult.Contents.Items[i].ItemCount = iece.ItemCount[i];
itemPurchaseRefundResult.Contents.Items[i].ItemID = iece.ItemID[i];
}
for (byte i = 0; i < ItemConst.MaxItemExtCostCurrencies; ++i) // currency cost data
@@ -213,8 +213,8 @@ namespace Game.Entities
if (iece.Flags.HasAnyFlag((byte)((uint)ItemExtendedCostFlags.RequireSeasonEarned1 << i)))
continue;
itemPurchaseRefundResult.Contents.Value.Currencies[i].CurrencyCount = iece.CurrencyCount[i];
itemPurchaseRefundResult.Contents.Value.Currencies[i].CurrencyID = iece.CurrencyID[i];
itemPurchaseRefundResult.Contents.Currencies[i].CurrencyCount = iece.CurrencyCount[i];
itemPurchaseRefundResult.Contents.Currencies[i].CurrencyID = iece.CurrencyID[i];
}
}
+6 -6
View File
@@ -787,16 +787,16 @@ namespace Game.Entities
SendPacket(raidInstanceMessage);
}
public override void ProcessTerrainStatusUpdate(ZLiquidStatus oldLiquidStatus, Optional<LiquidData> newLiquidData)
public override void ProcessTerrainStatusUpdate(ZLiquidStatus oldLiquidStatus, LiquidData newLiquidData)
{
// process liquid auras using generic unit code
base.ProcessTerrainStatusUpdate(oldLiquidStatus, newLiquidData);
// player specific logic for mirror timers
if (GetLiquidStatus() != 0 && newLiquidData.HasValue)
if (GetLiquidStatus() != 0 && newLiquidData != null)
{
// Breath bar state (under water in any liquid type)
if (newLiquidData.Value.type_flags.HasAnyFlag(LiquidHeaderTypeFlags.AllLiquids))
if (newLiquidData.type_flags.HasAnyFlag(LiquidHeaderTypeFlags.AllLiquids))
{
if (GetLiquidStatus().HasAnyFlag(ZLiquidStatus.UnderWater))
m_MirrorTimerFlags |= PlayerUnderwaterState.InWater;
@@ -805,13 +805,13 @@ namespace Game.Entities
}
// Fatigue bar state (if not on flight path or transport)
if (newLiquidData.Value.type_flags.HasAnyFlag(LiquidHeaderTypeFlags.DarkWater) && !IsInFlight() && !GetTransport())
if (newLiquidData.type_flags.HasAnyFlag(LiquidHeaderTypeFlags.DarkWater) && !IsInFlight() && !GetTransport())
m_MirrorTimerFlags |= PlayerUnderwaterState.InDarkWater;
else
m_MirrorTimerFlags &= ~PlayerUnderwaterState.InDarkWater;
// Lava state (any contact)
if (newLiquidData.Value.type_flags.HasAnyFlag(LiquidHeaderTypeFlags.Magma))
if (newLiquidData.type_flags.HasAnyFlag(LiquidHeaderTypeFlags.Magma))
{
if (GetLiquidStatus().HasAnyFlag(ZLiquidStatus.InContact))
m_MirrorTimerFlags |= PlayerUnderwaterState.InLava;
@@ -820,7 +820,7 @@ namespace Game.Entities
}
// Slime state (any contact)
if (newLiquidData.Value.type_flags.HasAnyFlag(LiquidHeaderTypeFlags.Slime))
if (newLiquidData.type_flags.HasAnyFlag(LiquidHeaderTypeFlags.Slime))
{
if (GetLiquidStatus().HasAnyFlag(ZLiquidStatus.InContact))
m_MirrorTimerFlags |= PlayerUnderwaterState.InSlime;
+36 -35
View File
@@ -1238,10 +1238,10 @@ namespace Game.Entities
packet.Type = (uint)id;
packet.Quantity = newTotalCount;
packet.SuppressChatLog = !printLog;
packet.WeeklyQuantity.Set(newWeekCount);
packet.TrackedQuantity.Set(newTrackedCount);
packet.WeeklyQuantity = newWeekCount;
packet.TrackedQuantity = newTrackedCount;
packet.Flags = playerCurrency.Flags;
packet.QuantityChange.Set(count);
packet.QuantityChange = count;
SendPacket(packet);
}
@@ -1835,9 +1835,10 @@ namespace Game.Entities
transport = GetTransport();
if (transport)
{
transferPending.Ship.Value = new();
transferPending.Ship.Value.Id = transport.GetEntry();
transferPending.Ship.Value.OriginMapID = (int)GetMapId();
TransferPending.ShipTransferPending shipTransferPending = new();
shipTransferPending.Id = transport.GetEntry();
shipTransferPending.OriginMapID = (int)GetMapId();
transferPending.Ship = shipTransferPending;
}
SendPacket(transferPending);
@@ -1879,7 +1880,7 @@ namespace Game.Entities
return TeleportTo(m_bgData.joinPos);
}
public uint GetStartLevel(Race race, Class playerClass, Optional<uint> characterTemplateId = default)
public uint GetStartLevel(Race race, Class playerClass, uint? characterTemplateId = null)
{
uint startLevel = WorldConfig.GetUIntValue(WorldCfg.StartPlayerLevel);
if (CliDB.ChrRacesStorage.LookupByKey(race).GetFlags().HasAnyFlag(ChrRacesFlag.IsAlliedRace))
@@ -4980,32 +4981,32 @@ namespace Game.Entities
}
}
if (playerChoiceResponseTemplate.Reward.HasValue)
if (playerChoiceResponseTemplate.Reward != null)
{
var reward = new Networking.Packets.PlayerChoiceResponseReward();
reward.TitleID = playerChoiceResponseTemplate.Reward.Value.TitleId;
reward.PackageID = playerChoiceResponseTemplate.Reward.Value.PackageId;
reward.SkillLineID = playerChoiceResponseTemplate.Reward.Value.SkillLineId;
reward.SkillPointCount = playerChoiceResponseTemplate.Reward.Value.SkillPointCount;
reward.ArenaPointCount = playerChoiceResponseTemplate.Reward.Value.ArenaPointCount;
reward.HonorPointCount = playerChoiceResponseTemplate.Reward.Value.HonorPointCount;
reward.Money = playerChoiceResponseTemplate.Reward.Value.Money;
reward.Xp = playerChoiceResponseTemplate.Reward.Value.Xp;
reward.TitleID = playerChoiceResponseTemplate.Reward.TitleId;
reward.PackageID = playerChoiceResponseTemplate.Reward.PackageId;
reward.SkillLineID = playerChoiceResponseTemplate.Reward.SkillLineId;
reward.SkillPointCount = playerChoiceResponseTemplate.Reward.SkillPointCount;
reward.ArenaPointCount = playerChoiceResponseTemplate.Reward.ArenaPointCount;
reward.HonorPointCount = playerChoiceResponseTemplate.Reward.HonorPointCount;
reward.Money = playerChoiceResponseTemplate.Reward.Money;
reward.Xp = playerChoiceResponseTemplate.Reward.Xp;
foreach (var item in playerChoiceResponseTemplate.Reward.Value.Items)
foreach (var item in playerChoiceResponseTemplate.Reward.Items)
{
var rewardEntry = new Networking.Packets.PlayerChoiceResponseRewardEntry();
rewardEntry.Item.ItemID = item.Id;
rewardEntry.Quantity = item.Quantity;
if (!item.BonusListIDs.Empty())
{
rewardEntry.Item.ItemBonus.Value = new();
rewardEntry.Item.ItemBonus.Value.BonusListIDs = item.BonusListIDs;
rewardEntry.Item.ItemBonus = new();
rewardEntry.Item.ItemBonus.BonusListIDs = item.BonusListIDs;
}
reward.Items.Add(rewardEntry);
}
foreach (var currency in playerChoiceResponseTemplate.Reward.Value.Currency)
foreach (var currency in playerChoiceResponseTemplate.Reward.Currency)
{
var rewardEntry = new Networking.Packets.PlayerChoiceResponseRewardEntry();
rewardEntry.Item.ItemID = currency.Id;
@@ -5013,7 +5014,7 @@ namespace Game.Entities
reward.Items.Add(rewardEntry);
}
foreach (var faction in playerChoiceResponseTemplate.Reward.Value.Faction)
foreach (var faction in playerChoiceResponseTemplate.Reward.Faction)
{
var rewardEntry = new Networking.Packets.PlayerChoiceResponseRewardEntry();
rewardEntry.Item.ItemID = faction.Id;
@@ -5021,21 +5022,21 @@ namespace Game.Entities
reward.Items.Add(rewardEntry);
}
foreach (PlayerChoiceResponseRewardItem item in playerChoiceResponseTemplate.Reward.Value.ItemChoices)
foreach (PlayerChoiceResponseRewardItem item in playerChoiceResponseTemplate.Reward.ItemChoices)
{
var rewardEntry = new Networking.Packets.PlayerChoiceResponseRewardEntry();
rewardEntry.Item.ItemID = item.Id;
rewardEntry.Quantity = item.Quantity;
if (!item.BonusListIDs.Empty())
{
rewardEntry.Item.ItemBonus.Value = new();
rewardEntry.Item.ItemBonus.Value.BonusListIDs = item.BonusListIDs;
rewardEntry.Item.ItemBonus = new();
rewardEntry.Item.ItemBonus.BonusListIDs = item.BonusListIDs;
}
reward.ItemChoices.Add(rewardEntry);
}
playerChoiceResponse.Reward.Set(reward);
playerChoiceResponse.Reward = reward;
displayPlayerChoice.Responses[i] = playerChoiceResponse;
}
@@ -5050,7 +5051,7 @@ namespace Game.Entities
mawPower.SpellID = playerChoiceResponse.MawPower.Value.SpellID;
mawPower.MaxStacks = playerChoiceResponse.MawPower.Value.MaxStacks;
playerChoiceResponse.MawPower.Set(mawPower);
playerChoiceResponse.MawPower = mawPower;
}
}
@@ -5662,10 +5663,10 @@ namespace Game.Entities
// SMSG_WORLD_SERVER_INFO
WorldServerInfo worldServerInfo = new();
worldServerInfo.InstanceGroupSize.Set(GetMap().GetMapDifficulty().MaxPlayers); // @todo
worldServerInfo.InstanceGroupSize = GetMap().GetMapDifficulty().MaxPlayers; // @todo
worldServerInfo.IsTournamentRealm = 0; // @todo
worldServerInfo.RestrictedAccountMaxLevel.Clear(); // @todo
worldServerInfo.RestrictedAccountMaxMoney.Clear(); // @todo
worldServerInfo.RestrictedAccountMaxLevel = null; // @todo
worldServerInfo.RestrictedAccountMaxMoney = null; // @todo
worldServerInfo.DifficultyID = (uint)GetMap().GetDifficultyID();
// worldServerInfo.XRealmPvpAlert; // @todo
SendPacket(worldServerInfo);
@@ -6240,9 +6241,9 @@ namespace Game.Entities
SetupCurrency.Record record = new();
record.Type = entry.Id;
record.Quantity = Curr.Quantity;
record.WeeklyQuantity.Set(Curr.WeeklyQuantity);
record.MaxWeeklyQuantity.Set(GetCurrencyWeekCap(entry));
record.TrackedQuantity.Set(Curr.TrackedQuantity);
record.WeeklyQuantity = Curr.WeeklyQuantity;
record.MaxWeeklyQuantity = GetCurrencyWeekCap(entry);
record.TrackedQuantity = Curr.TrackedQuantity;
record.Flags = Curr.Flags;
packet.Data.Add(record);
@@ -6265,9 +6266,9 @@ namespace Game.Entities
SetupCurrency.Record record = new();
record.Type = entry.Id;
record.Quantity = pair.Value.Quantity;
record.WeeklyQuantity.Set(pair.Value.WeeklyQuantity);
record.MaxWeeklyQuantity.Set(GetCurrencyWeekCap(entry));
record.TrackedQuantity.Set(pair.Value.TrackedQuantity);
record.WeeklyQuantity = pair.Value.WeeklyQuantity;
record.MaxWeeklyQuantity = GetCurrencyWeekCap(entry);
record.TrackedQuantity = pair.Value.TrackedQuantity;
record.Flags = pair.Value.Flags;
packet.Data.Add(record);
+1 -1
View File
@@ -616,7 +616,7 @@ namespace Game.Entities
subDmg.Damage = (int)damageInfo.Damage; // Sub Damage
subDmg.Absorbed = (int)damageInfo.Absorb;
subDmg.Resisted = (int)damageInfo.Resist;
packet.SubDmg.Set(subDmg);
packet.SubDmg = subDmg;
packet.VictimState = (byte)damageInfo.TargetState;
packet.BlockAmount = (int)damageInfo.Blocked;
+5 -4
View File
@@ -825,7 +825,7 @@ namespace Game.Entities
ProcessTerrainStatusUpdate(oldLiquidStatus, data.LiquidInfo);
}
public virtual void ProcessTerrainStatusUpdate(ZLiquidStatus oldLiquidStatus, Optional<LiquidData> newLiquidData)
public virtual void ProcessTerrainStatusUpdate(ZLiquidStatus oldLiquidStatus, LiquidData newLiquidData)
{
if (!IsControlledByPlayer())
return;
@@ -838,8 +838,8 @@ namespace Game.Entities
// liquid aura handling
LiquidTypeRecord curLiquid = null;
if (IsInWater() && newLiquidData.HasValue)
curLiquid = CliDB.LiquidTypeStorage.LookupByKey(newLiquidData.Value.entry);
if (IsInWater() && newLiquidData != null)
curLiquid = CliDB.LiquidTypeStorage.LookupByKey(newLiquidData.entry);
if (curLiquid != _lastLiquid)
{
if (_lastLiquid != null && _lastLiquid.SpellID != 0)
@@ -1804,7 +1804,8 @@ namespace Game.Entities
moveTeleport.MoverGUID = GetGUID();
moveTeleport.Pos = new Position(x, y, z, o);
if (GetTransGUID() != ObjectGuid.Empty)
moveTeleport.TransportGUID.Set(GetTransGUID());
moveTeleport.TransportGUID = GetTransGUID();
moveTeleport.Facing = o;
moveTeleport.SequenceIndex = m_movementCounter++;
playerMover.SendPacket(moveTeleport);
+2 -2
View File
@@ -2092,7 +2092,7 @@ namespace Game.Entities
ContentTuningParams contentTuningParams = new();
if (contentTuningParams.GenerateDataForUnits(log.attacker, log.target))
packet.ContentTuning.Set(contentTuningParams);
packet.ContentTuning = contentTuningParams;
SendCombatLogMessage(packet);
}
@@ -2121,7 +2121,7 @@ namespace Game.Entities
ContentTuningParams contentTuningParams = new();
Unit caster = Global.ObjAccessor.GetUnit(this, aura.GetCasterGUID());
if (caster && contentTuningParams.GenerateDataForUnits(caster, this))
spellLogEffect.ContentTuning.Set(contentTuningParams);
spellLogEffect.ContentTuning = contentTuningParams;
data.Effects.Add(spellLogEffect);