aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2023-03-22 00:08:20 +0100
committerShauren <shauren.trinity@gmail.com>2023-03-22 00:08:20 +0100
commit922f60fa25569db05a7717b6b55568f321a02f64 (patch)
treeab11e8c8da23ea0a93daf073b602dc92d1f98957 /src/server/game/Entities
parentf18c0644f31f6264bd07345819bb48c432790bc7 (diff)
Core: Update to 10.0.7
Diffstat (limited to 'src/server/game/Entities')
-rw-r--r--src/server/game/Entities/Item/ItemTemplate.cpp11
-rw-r--r--src/server/game/Entities/Item/ItemTemplate.h49
-rw-r--r--src/server/game/Entities/Object/Updates/UpdateFields.cpp22
-rw-r--r--src/server/game/Entities/Object/Updates/UpdateFields.h8
4 files changed, 52 insertions, 38 deletions
diff --git a/src/server/game/Entities/Item/ItemTemplate.cpp b/src/server/game/Entities/Item/ItemTemplate.cpp
index 22ab691840d..114998f8d07 100644
--- a/src/server/game/Entities/Item/ItemTemplate.cpp
+++ b/src/server/game/Entities/Item/ItemTemplate.cpp
@@ -20,7 +20,7 @@
#include "ItemTemplate.h"
#include "Player.h"
-int32 const SocketColorToGemTypeMask[19] =
+int32 const SocketColorToGemTypeMask[26] =
{
0,
SOCKET_COLOR_META,
@@ -40,7 +40,14 @@ int32 const SocketColorToGemTypeMask[19] =
SOCKET_COLOR_RELIC_WATER,
SOCKET_COLOR_RELIC_LIFE,
SOCKET_COLOR_RELIC_WIND,
- SOCKET_COLOR_RELIC_HOLY
+ SOCKET_COLOR_RELIC_HOLY,
+ SOCKET_COLOR_PUNCHCARD_RED,
+ SOCKET_COLOR_PUNCHCARD_YELLOW,
+ SOCKET_COLOR_PUNCHCARD_BLUE,
+ SOCKET_COLOR_DOMINATION,
+ SOCKET_COLOR_CYPHER,
+ SOCKET_COLOR_TINKER,
+ SOCKET_COLOR_PRIMORDIAL
};
char const* ItemTemplate::GetName(LocaleConstant locale) const
diff --git a/src/server/game/Entities/Item/ItemTemplate.h b/src/server/game/Entities/Item/ItemTemplate.h
index 8a8d86c9440..17bab58f10d 100644
--- a/src/server/game/Entities/Item/ItemTemplate.h
+++ b/src/server/game/Entities/Item/ItemTemplate.h
@@ -332,27 +332,34 @@ enum BAG_FAMILY_MASK
enum SocketColor
{
- SOCKET_COLOR_META = 0x00001,
- SOCKET_COLOR_RED = 0x00002,
- SOCKET_COLOR_YELLOW = 0x00004,
- SOCKET_COLOR_BLUE = 0x00008,
- SOCKET_COLOR_HYDRAULIC = 0x00010, // not used
- SOCKET_COLOR_COGWHEEL = 0x00020,
- SOCKET_COLOR_PRISMATIC = 0x0000E,
- SOCKET_COLOR_RELIC_IRON = 0x00040,
- SOCKET_COLOR_RELIC_BLOOD = 0x00080,
- SOCKET_COLOR_RELIC_SHADOW = 0x00100,
- SOCKET_COLOR_RELIC_FEL = 0x00200,
- SOCKET_COLOR_RELIC_ARCANE = 0x00400,
- SOCKET_COLOR_RELIC_FROST = 0x00800,
- SOCKET_COLOR_RELIC_FIRE = 0x01000,
- SOCKET_COLOR_RELIC_WATER = 0x02000,
- SOCKET_COLOR_RELIC_LIFE = 0x04000,
- SOCKET_COLOR_RELIC_WIND = 0x08000,
- SOCKET_COLOR_RELIC_HOLY = 0x10000
-};
-
-extern int32 const SocketColorToGemTypeMask[19];
+ SOCKET_COLOR_META = 0x000001,
+ SOCKET_COLOR_RED = 0x000002,
+ SOCKET_COLOR_YELLOW = 0x000004,
+ SOCKET_COLOR_BLUE = 0x000008,
+ SOCKET_COLOR_HYDRAULIC = 0x000010, // not used
+ SOCKET_COLOR_COGWHEEL = 0x000020,
+ SOCKET_COLOR_PRISMATIC = 0x00000E,
+ SOCKET_COLOR_RELIC_IRON = 0x000040,
+ SOCKET_COLOR_RELIC_BLOOD = 0x000080,
+ SOCKET_COLOR_RELIC_SHADOW = 0x000100,
+ SOCKET_COLOR_RELIC_FEL = 0x000200,
+ SOCKET_COLOR_RELIC_ARCANE = 0x000400,
+ SOCKET_COLOR_RELIC_FROST = 0x000800,
+ SOCKET_COLOR_RELIC_FIRE = 0x001000,
+ SOCKET_COLOR_RELIC_WATER = 0x002000,
+ SOCKET_COLOR_RELIC_LIFE = 0x004000,
+ SOCKET_COLOR_RELIC_WIND = 0x008000,
+ SOCKET_COLOR_RELIC_HOLY = 0x010000,
+ SOCKET_COLOR_PUNCHCARD_RED = 0x020000,
+ SOCKET_COLOR_PUNCHCARD_YELLOW = 0x040000,
+ SOCKET_COLOR_PUNCHCARD_BLUE = 0x080000,
+ SOCKET_COLOR_DOMINATION = 0x100000,
+ SOCKET_COLOR_CYPHER = 0x200000,
+ SOCKET_COLOR_TINKER = 0x400000,
+ SOCKET_COLOR_PRIMORDIAL = 0x800000,
+};
+
+extern int32 const SocketColorToGemTypeMask[26];
#define SOCKET_COLOR_STANDARD (SOCKET_COLOR_RED | SOCKET_COLOR_YELLOW | SOCKET_COLOR_BLUE)
diff --git a/src/server/game/Entities/Object/Updates/UpdateFields.cpp b/src/server/game/Entities/Object/Updates/UpdateFields.cpp
index 1cb77b9afe2..8d125ed74db 100644
--- a/src/server/game/Entities/Object/Updates/UpdateFields.cpp
+++ b/src/server/game/Entities/Object/Updates/UpdateFields.cpp
@@ -2121,7 +2121,7 @@ void PlayerData::WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVi
data << int32(GuildTimeStamp);
if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag::PartyMember))
{
- for (uint32 i = 0; i < 125; ++i)
+ for (uint32 i = 0; i < 175; ++i)
{
QuestLog[i].WriteCreate(data, owner, receiver);
}
@@ -2180,7 +2180,7 @@ void PlayerData::WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVi
void PlayerData::WriteUpdate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Player const* owner, Player const* receiver) const
{
- Mask allowedMaskForTarget({ 0xFFFFFFEDu, 0x0000001Fu, 0x00000000u, 0x00000000u, 0x00000000u, 0x3FFFFFF8u });
+ Mask allowedMaskForTarget({ 0xFFFFFFEDu, 0x0000001Fu, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0xFFE00000u, 0x0000FFFFu });
AppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags);
WriteUpdate(data, _changesMask & allowedMaskForTarget, false, owner, receiver);
}
@@ -2188,20 +2188,20 @@ void PlayerData::WriteUpdate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVi
void PlayerData::AppendAllowedFieldsMaskForFlag(Mask& allowedMaskForTarget, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags)
{
if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag::PartyMember))
- allowedMaskForTarget |= { 0x00000012u, 0xFFFFFFE0u, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0x00000007u };
+ allowedMaskForTarget |= { 0x00000012u, 0xFFFFFFE0u, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0x001FFFFFu, 0x00000000u };
}
void PlayerData::FilterDisallowedFieldsMaskForFlag(Mask& changesMask, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags)
{
- Mask allowedMaskForTarget({ 0xFFFFFFEDu, 0x0000001Fu, 0x00000000u, 0x00000000u, 0x00000000u, 0x3FFFFFF8u });
+ Mask allowedMaskForTarget({ 0xFFFFFFEDu, 0x0000001Fu, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0xFFE00000u, 0x0000FFFFu });
AppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags);
changesMask &= allowedMaskForTarget;
}
void PlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Player const* owner, Player const* receiver) const
{
- data.WriteBits(changesMask.GetBlocksMask(0), 6);
- for (uint32 i = 0; i < 6; ++i)
+ data.WriteBits(changesMask.GetBlocksMask(0), 8);
+ for (uint32 i = 0; i < 8; ++i)
if (changesMask.GetBlock(i))
data.WriteBits(changesMask.GetBlock(i), 32);
@@ -2413,7 +2413,7 @@ void PlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ign
}
if (changesMask[37])
{
- for (uint32 i = 0; i < 125; ++i)
+ for (uint32 i = 0; i < 175; ++i)
{
if (changesMask[38 + i])
{
@@ -2424,21 +2424,21 @@ void PlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ign
}
}
}
- if (changesMask[163])
+ if (changesMask[213])
{
for (uint32 i = 0; i < 19; ++i)
{
- if (changesMask[164 + i])
+ if (changesMask[214 + i])
{
VisibleItems[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver);
}
}
}
- if (changesMask[183])
+ if (changesMask[233])
{
for (uint32 i = 0; i < 6; ++i)
{
- if (changesMask[184 + i])
+ if (changesMask[234 + i])
{
data << float(AvgItemLevel[i]);
}
diff --git a/src/server/game/Entities/Object/Updates/UpdateFields.h b/src/server/game/Entities/Object/Updates/UpdateFields.h
index 3048896d2f7..ee689dd4fa4 100644
--- a/src/server/game/Entities/Object/Updates/UpdateFields.h
+++ b/src/server/game/Entities/Object/Updates/UpdateFields.h
@@ -458,7 +458,7 @@ struct CTROptions : public IsUpdateFieldStructureTag
bool operator!=(CTROptions const& right) const { return !(*this == right); }
};
-struct PlayerData : public IsUpdateFieldStructureTag, public HasChangesMask<190>
+struct PlayerData : public IsUpdateFieldStructureTag, public HasChangesMask<240>
{
UpdateField<bool, 0, 1> HasQuestSession;
UpdateField<bool, 0, 2> HasLevelLink;
@@ -495,9 +495,9 @@ struct PlayerData : public IsUpdateFieldStructureTag, public HasChangesMask<190>
UpdateField<int32, 32, 34> CovenantID;
UpdateField<int32, 32, 35> SoulbindID;
UpdateField<WorldPackets::MythicPlus::DungeonScoreSummary, 32, 36> DungeonScore;
- UpdateFieldArray<UF::QuestLog, 125, 37, 38> QuestLog;
- UpdateFieldArray<UF::VisibleItem, 19, 163, 164> VisibleItems;
- UpdateFieldArray<float, 6, 183, 184> AvgItemLevel;
+ UpdateFieldArray<UF::QuestLog, 175, 37, 38> QuestLog;
+ UpdateFieldArray<UF::VisibleItem, 19, 213, 214> VisibleItems;
+ UpdateFieldArray<float, 6, 233, 234> AvgItemLevel;
void WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Player const* owner, Player const* receiver) const;
void WriteUpdate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Player const* owner, Player const* receiver) const;