Core/PacketIO: Updated packet structures to 8.1.5

Port TrinityCore Commit: https://github.com/TrinityCore/TrinityCore/commit/31fda79556e55375962a3c9e46f6dbdbf6e90d18
This commit is contained in:
hondacrx
2019-06-22 18:42:45 -04:00
parent d500b65ad9
commit e4d500f4b5
54 changed files with 1179 additions and 1077 deletions
@@ -83,6 +83,9 @@ namespace Game.Entities
public float ModExperience;
public bool RacialLeader;
public uint MovementId;
public float FadeRegionRadius;
public int WidgetSetID;
public int WidgetSetUnitConditionID;
public bool RegenHealth;
public uint MechanicImmuneMask;
public CreatureFlagsExtra FlagsExtra;
-3
View File
@@ -1481,9 +1481,6 @@ namespace Game.Entities
static bool HasStats(ItemInstance itemInstance, BonusData bonus)
{
if (itemInstance.RandomPropertiesID != 0)
return true;
for (byte i = 0; i < ItemConst.MaxStats; ++i)
{
if (bonus.ItemStatAllocation[i] != 0)
@@ -399,6 +399,7 @@ namespace Game.Entities
data.WriteFloat(unit.GetSpeed(UnitMoveType.PitchRate));
data.WriteUInt32(0); // unit.m_movementInfo.forces.size()
data.WriteFloat(1.0f); // MovementForcesModMagnitude
data.WriteBit(HasSpline);
data.FlushBits();
@@ -73,9 +73,9 @@ namespace Game.Entities
_owner.GetPlayer().AddDynamicValue(ActivePlayerDynamicFields.Toys, value);
}
public bool AddToy(uint itemId, bool isFavourite = false)
public bool AddToy(uint itemId, bool isFavourite, bool hasFanfare)
{
if (UpdateAccountToys(itemId, isFavourite))
if (UpdateAccountToys(itemId, isFavourite, hasFanfare))
{
_owner.GetPlayer().AddDynamicValue(ActivePlayerDynamicFields.Toys, itemId);
return true;
@@ -92,9 +92,8 @@ namespace Game.Entities
do
{
uint itemId = result.Read<uint>(0);
bool isFavourite = result.Read<bool>(1);
_toys[itemId] = isFavourite;
_toys[itemId] = GetToyFlags(result.Read<bool>(1), result.Read<bool>(2));
} while (result.NextRow());
}
@@ -106,17 +105,18 @@ namespace Game.Entities
stmt = DB.Login.GetPreparedStatement(LoginStatements.REP_ACCOUNT_TOYS);
stmt.AddValue(0, _owner.GetBattlenetAccountId());
stmt.AddValue(1, pair.Key);
stmt.AddValue(2, pair.Value);
stmt.AddValue(2, pair.Value.HasAnyFlag(ToyFlags.Favorite));
stmt.AddValue(3, pair.Value.HasAnyFlag(ToyFlags.HasFanfare));
trans.Append(stmt);
}
}
bool UpdateAccountToys(uint itemId, bool isFavourite = false)
bool UpdateAccountToys(uint itemId, bool isFavourite, bool hasFanfare)
{
if (_toys.ContainsKey(itemId))
return false;
_toys.Add(itemId, isFavourite);
_toys.Add(itemId, GetToyFlags(isFavourite, hasFanfare));
return true;
}
@@ -125,7 +125,30 @@ namespace Game.Entities
if (!_toys.ContainsKey(itemId))
return;
_toys[itemId] = favorite;
if (favorite)
_toys[itemId] |= ToyFlags.Favorite;
else
_toys[itemId] &= ~ToyFlags.Favorite;
}
public void ToyClearFanfare(uint itemId)
{
if (!_toys.ContainsKey(itemId))
return;
_toys[itemId] &= ~ToyFlags.HasFanfare;
}
ToyFlags GetToyFlags(bool isFavourite, bool hasFanfare)
{
ToyFlags flags = ToyFlags.None;
if (isFavourite)
flags |= ToyFlags.Favorite;
if (hasFanfare)
flags |= ToyFlags.HasFanfare;
return flags;
}
public void OnItemAdded(Item item)
@@ -825,13 +848,13 @@ namespace Game.Entities
}
public bool HasToy(uint itemId) { return _toys.ContainsKey(itemId); }
public Dictionary<uint, bool> GetAccountToys() { return _toys; }
public Dictionary<uint, ToyFlags> GetAccountToys() { return _toys; }
public Dictionary<uint, HeirloomData> GetAccountHeirlooms() { return _heirlooms; }
public Dictionary<uint, MountStatusFlags> GetAccountMounts() { return _mounts; }
WorldSession _owner;
Dictionary<uint, bool> _toys = new Dictionary<uint, bool>();
Dictionary<uint, ToyFlags> _toys = new Dictionary<uint, ToyFlags>();
Dictionary<uint, HeirloomData> _heirlooms = new Dictionary<uint, HeirloomData>();
Dictionary<uint, MountStatusFlags> _mounts = new Dictionary<uint, MountStatusFlags>();
System.Collections.BitSet _appearances;
+1 -1
View File
@@ -3253,7 +3253,7 @@ namespace Game.Entities
stmt.AddValue(index++, GetByteValue(ActivePlayerFields.Bytes, PlayerFieldOffsets.FieldBytesOffsetActionBarToggles));
stmt.AddValue(index++, m_grantableLevels);
stmt.AddValue(index++, Global.WorldMgr.GetRealm().Build);
stmt.AddValue(index++, Global.RealmMgr.GetMinorMajorBugfixVersionForBuild(Global.WorldMgr.GetRealm().Build));
}
else
{
+11 -1
View File
@@ -1327,6 +1327,7 @@ namespace Game.Entities
packet.WeeklyQuantity.Set(newWeekCount);
packet.TrackedQuantity.Set(newTrackedCount);
packet.Flags = playerCurrency.Flags;
packet.QuantityChange.Set(count);
SendPacket(packet);
}
@@ -2771,7 +2772,7 @@ namespace Game.Entities
}
void SendNewMail()
{
SendPacket(new NotifyRecievedMail());
SendPacket(new NotifyReceivedMail());
}
public void UpdateNextMailTimeAndUnreads()
{
@@ -5015,6 +5016,7 @@ namespace Game.Entities
displayPlayerChoice.SenderGUID = sender;
displayPlayerChoice.ChoiceID = choiceId;
displayPlayerChoice.UiTextureKitID = playerChoice.UiTextureKitId;
displayPlayerChoice.SoundKitID = playerChoice.SoundKitId;
displayPlayerChoice.Question = playerChoice.Question;
if (playerChoiceLocale != null)
ObjectManager.GetLocaleString(playerChoiceLocale.Question, locale, ref displayPlayerChoice.Question);
@@ -5032,9 +5034,13 @@ namespace Game.Entities
playerChoiceResponse.ChoiceArtFileID = playerChoiceResponseTemplate.ChoiceArtFileId;
playerChoiceResponse.Flags = playerChoiceResponseTemplate.Flags;
playerChoiceResponse.WidgetSetID = playerChoiceResponseTemplate.WidgetSetID;
playerChoiceResponse.UiTextureAtlasElementID = playerChoiceResponseTemplate.UiTextureAtlasElementID;
playerChoiceResponse.SoundKitID = playerChoiceResponseTemplate.SoundKitID;
playerChoiceResponse.GroupID = playerChoiceResponseTemplate.GroupID;
playerChoiceResponse.Answer = playerChoiceResponseTemplate.Answer;
playerChoiceResponse.Header = playerChoiceResponseTemplate.Header;
playerChoiceResponse.SubHeader = playerChoiceResponseTemplate.SubHeader;
playerChoiceResponse.ButtonTooltip = playerChoiceResponseTemplate.ButtonTooltip;
playerChoiceResponse.Description = playerChoiceResponseTemplate.Description;
playerChoiceResponse.Confirmation = playerChoiceResponseTemplate.Confirmation;
if (playerChoiceLocale != null)
@@ -5044,6 +5050,8 @@ namespace Game.Entities
{
ObjectManager.GetLocaleString(playerChoiceResponseLocale.Answer, locale, ref playerChoiceResponse.Answer);
ObjectManager.GetLocaleString(playerChoiceResponseLocale.Header, locale, ref playerChoiceResponse.Header);
ObjectManager.GetLocaleString(playerChoiceResponseLocale.SubHeader, locale, ref playerChoiceResponse.SubHeader);
ObjectManager.GetLocaleString(playerChoiceResponseLocale.ButtonTooltip, locale, ref playerChoiceResponse.ButtonTooltip);
ObjectManager.GetLocaleString(playerChoiceResponseLocale.Description, locale, ref playerChoiceResponse.Description);
ObjectManager.GetLocaleString(playerChoiceResponseLocale.Confirmation, locale, ref playerChoiceResponse.Confirmation);
}
@@ -5093,6 +5101,8 @@ namespace Game.Entities
playerChoiceResponse.Reward.Set(reward);
displayPlayerChoice.Responses[i] = playerChoiceResponse;
}
playerChoiceResponse.RewardQuestID = playerChoiceResponseTemplate.RewardQuestID;
}
SendPacket(displayPlayerChoice);
+4 -4
View File
@@ -977,7 +977,7 @@ namespace Game.Entities
playOrphanSpellVisual.SpellVisualID = spellVisualId;
playOrphanSpellVisual.TravelSpeed = travelSpeed;
playOrphanSpellVisual.SpeedAsTime = speedAsTime;
playOrphanSpellVisual.UnkZero = 0.0f;
playOrphanSpellVisual.LaunchDelay = 0.0f;
SendMessageToSet(playOrphanSpellVisual, true);
}
@@ -991,7 +991,7 @@ namespace Game.Entities
playOrphanSpellVisual.SpellVisualID = spellVisualId;
playOrphanSpellVisual.TravelSpeed = travelSpeed;
playOrphanSpellVisual.SpeedAsTime = speedAsTime;
playOrphanSpellVisual.UnkZero = 0.0f;
playOrphanSpellVisual.LaunchDelay = 0.0f;
SendMessageToSet(playOrphanSpellVisual, true);
}
@@ -1016,12 +1016,12 @@ namespace Game.Entities
SendMessageToSet(playSpellVisual, true);
}
public void SendPlaySpellVisual(Vector3 targetPosition, float o, uint spellVisualId, uint missReason, uint reflectStatus, float travelSpeed, bool speedAsTime = false)
public void SendPlaySpellVisual(Vector3 targetPosition, float launchDelay, uint spellVisualId, uint missReason, uint reflectStatus, float travelSpeed, bool speedAsTime = false)
{
PlaySpellVisual playSpellVisual = new PlaySpellVisual();
playSpellVisual.Source = GetGUID();
playSpellVisual.TargetPosition = targetPosition; // exclusive with Target
playSpellVisual.Orientation = o;
playSpellVisual.LaunchDelay = launchDelay;
playSpellVisual.SpellVisualID = spellVisualId;
playSpellVisual.TravelSpeed = travelSpeed;
playSpellVisual.MissReason = (ushort)missReason;