aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Creature
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-03-02 15:43:34 +0100
committerShauren <shauren.trinity@gmail.com>2025-03-02 15:43:34 +0100
commit23624ed75abc8cbb77bb2e24a08e0836e4c41db5 (patch)
tree593c0a5f9e4b75404ff3d30729ac08a7ea93f690 /src/server/game/Entities/Creature
parentdac15a32a6361a5e47e17b621828369b1b7a4d84 (diff)
Core: Updated to 11.1.0
Diffstat (limited to 'src/server/game/Entities/Creature')
-rw-r--r--src/server/game/Entities/Creature/Creature.cpp11
-rw-r--r--src/server/game/Entities/Creature/GossipDef.cpp2
-rw-r--r--src/server/game/Entities/Creature/GossipDef.h8
3 files changed, 13 insertions, 8 deletions
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp
index 675d0fff723..8e982a78800 100644
--- a/src/server/game/Entities/Creature/Creature.cpp
+++ b/src/server/game/Entities/Creature/Creature.cpp
@@ -3128,7 +3128,7 @@ uint8 Creature::GetLevelForTarget(WorldObject const* target) const
int32 scalingLevelMin = m_unitData->ScalingLevelMin;
int32 scalingLevelMax = m_unitData->ScalingLevelMax;
int32 scalingLevelDelta = m_unitData->ScalingLevelDelta;
- int32 scalingFactionGroup = m_unitData->ScalingFactionGroup;
+ uint8 scalingFactionGroup = m_unitData->ScalingFactionGroup;
int32 targetLevel = unitTarget->m_unitData->EffectiveLevel;
if (!targetLevel)
targetLevel = unitTarget->GetLevel();
@@ -3872,7 +3872,12 @@ void Creature::BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Pl
m_unitData->WriteCreate(*data, flags, this, target);
if (m_vendorData)
+ {
+ if constexpr (WowCS::IsIndirectFragment(WowCS::EntityFragment::FVendor_C))
+ *data << uint8(1); // IndirectFragmentActive: FVendor_C
+
m_vendorData->WriteCreate(*data, flags, this, target);
+ }
}
void Creature::BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const
@@ -3947,8 +3952,6 @@ void Creature::ValuesUpdateForPlayerWithMaskSender::operator()(Player const* pla
void Creature::ClearUpdateMask(bool remove)
{
- if (m_vendorData)
- m_values.ClearChangesMask(&Creature::m_vendorData);
-
+ m_values.ClearChangesMask(&Creature::m_vendorData);
Unit::ClearUpdateMask(remove);
}
diff --git a/src/server/game/Entities/Creature/GossipDef.cpp b/src/server/game/Entities/Creature/GossipDef.cpp
index 8ad8698c812..d5785084f88 100644
--- a/src/server/game/Entities/Creature/GossipDef.cpp
+++ b/src/server/game/Entities/Creature/GossipDef.cpp
@@ -41,7 +41,7 @@ GossipMenu::GossipMenu()
GossipMenu::~GossipMenu() = default;
uint32 GossipMenu::AddMenuItem(int32 gossipOptionId, int32 orderIndex, GossipOptionNpc optionNpc, std::string optionText, uint32 language,
- GossipOptionFlags flags, Optional<int32> gossipNpcOptionId, uint32 actionMenuId, uint32 actionPoiId, bool boxCoded, uint32 boxMoney,
+ GossipOptionFlags flags, Optional<int32> gossipNpcOptionId, uint32 actionMenuId, uint32 actionPoiId, bool boxCoded, uint64 boxMoney,
std::string boxText, Optional<int32> spellId, Optional<int32> overrideIconId, uint32 sender, uint32 action)
{
ASSERT(_menuItems.size() <= GOSSIP_MAX_MENU_ITEMS);
diff --git a/src/server/game/Entities/Creature/GossipDef.h b/src/server/game/Entities/Creature/GossipDef.h
index 778d2964b6b..524a98a687e 100644
--- a/src/server/game/Entities/Creature/GossipDef.h
+++ b/src/server/game/Entities/Creature/GossipDef.h
@@ -91,6 +91,7 @@ enum class GossipOptionNpc : uint8
ForgeMaster = 55,
CharacterBanker = 56,
AccountBanker = 57,
+ ProfessionRespec = 58,
Count
};
@@ -113,7 +114,8 @@ enum class GossipOptionFlags : int32
{
None = 0x0,
QuestLabelPrepend = 0x1,
- HideOptionIDFromClient = 0x2
+ HideOptionIDFromClient = 0x2,
+ PlayMovieLabelPrepend = 0x4
};
struct GossipMenuItem
@@ -126,7 +128,7 @@ struct GossipMenuItem
GossipOptionFlags Flags;
Optional<int32> GossipNpcOptionID;
bool BoxCoded;
- uint32 BoxMoney;
+ uint64 BoxMoney;
std::string BoxText;
Optional<int32> SpellID;
Optional<int32> OverrideIconID;
@@ -162,7 +164,7 @@ class TC_GAME_API GossipMenu
~GossipMenu();
uint32 AddMenuItem(int32 gossipOptionId, int32 orderIndex, GossipOptionNpc optionNpc, std::string optionText, uint32 language, GossipOptionFlags flags,
- Optional<int32> gossipNpcOptionId, uint32 actionMenuId, uint32 actionPoiId, bool boxCoded, uint32 boxMoney,
+ Optional<int32> gossipNpcOptionId, uint32 actionMenuId, uint32 actionPoiId, bool boxCoded, uint64 boxMoney,
std::string boxText, Optional<int32> spellId, Optional<int32> overrideIconId, uint32 sender, uint32 action);
void AddMenuItem(uint32 menuId, uint32 menuItemId, uint32 sender, uint32 action);
void AddMenuItem(GossipMenuItems const& menuItem, uint32 sender, uint32 action);