Skip to content

Commit d7359dd

Browse files
author
Github Actions
committed
Merge 3.3.5 to 3.3.5-skip-dk
2 parents a8e86e6 + f3a3b47 commit d7359dd

91 files changed

Lines changed: 1425 additions & 995 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
--
2+
DELETE FROM `spell_script_names` WHERE `spell_id` IN (-19505, 67518);
3+
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
4+
(-19505, 'spell_warl_devour_magic'),
5+
(67518, 'spell_warl_devour_magic');
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ALTER TABLE `quest_template` CHANGE `Unknown0` `RewardFactionFlags` int unsigned NOT NULL DEFAULT 0 AFTER `RewardFactionOverride5`;

src/server/game/AI/PlayerAI/PlayerAI.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -539,7 +539,7 @@ void PlayerAI::DoRangedAttackIfReady()
539539
Item const* rangedItem = me->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_RANGED);
540540
if (ItemTemplate const* rangedTemplate = rangedItem ? rangedItem->GetTemplate() : nullptr)
541541
{
542-
switch (rangedTemplate->SubClass)
542+
switch (rangedTemplate->GetSubClass())
543543
{
544544
case ITEM_SUBCLASS_WEAPON_BOW:
545545
case ITEM_SUBCLASS_WEAPON_GUN:

src/server/game/AI/SmartScripts/SmartScript.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -805,7 +805,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
805805
if (e.action.fleeAssist.withEmote)
806806
{
807807
Trinity::BroadcastTextBuilder builder(me, CHAT_MSG_MONSTER_EMOTE, BROADCAST_TEXT_FLEE_FOR_ASSIST, me->GetGender());
808-
sCreatureTextMgr->SendChatPacket(me, builder, CHAT_MSG_MONSTER_EMOTE);
808+
CreatureTextMgr::SendChatPacket(me, builder, CHAT_MSG_MONSTER_EMOTE);
809809
}
810810
TC_LOG_DEBUG("scripts.ai", "SmartScript::ProcessAction:: SMART_ACTION_FLEE_FOR_ASSIST: Creature {} DoFleeToGetAssistance", me->GetGUID().ToString());
811811
break;
@@ -1046,7 +1046,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
10461046
if (e.action.callHelp.withEmote)
10471047
{
10481048
Trinity::BroadcastTextBuilder builder(me, CHAT_MSG_MONSTER_EMOTE, BROADCAST_TEXT_CALL_FOR_HELP, me->GetGender());
1049-
sCreatureTextMgr->SendChatPacket(me, builder, CHAT_MSG_MONSTER_EMOTE);
1049+
CreatureTextMgr::SendChatPacket(me, builder, CHAT_MSG_MONSTER_EMOTE);
10501050
}
10511051
TC_LOG_DEBUG("scripts.ai", "SmartScript::ProcessAction: SMART_ACTION_CALL_FOR_HELP: Creature {}", me->GetGUID().ToString());
10521052
}

src/server/game/Achievements/AchievementMgr.cpp

Lines changed: 69 additions & 78 deletions
Large diffs are not rendered by default.

src/server/game/Achievements/AchievementMgr.h

Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,11 @@ class Player;
3131
class WorldObject;
3232
class WorldPacket;
3333

34+
namespace WorldPackets::Achievement
35+
{
36+
struct AllAchievements;
37+
}
38+
3439
typedef std::vector<AchievementCriteriaEntry const*> AchievementCriteriaEntryList;
3540
typedef std::vector<AchievementEntry const*> AchievementEntryList;
3641

@@ -308,7 +313,7 @@ class TC_GAME_API AchievementMgr
308313
bool IsCompletedCriteria(AchievementCriteriaEntry const* achievementCriteria, AchievementEntry const* achievement);
309314
bool IsCompletedAchievement(AchievementEntry const* entry);
310315
bool CanUpdateCriteria(AchievementCriteriaEntry const* criteria, AchievementEntry const* achievement, uint32 miscValue1, uint32 miscValue2, WorldObject const* ref);
311-
void BuildAllDataPacket(Player const* receiver, WorldPacket* data) const;
316+
void BuildAllDataPacket(Player const* receiver, WorldPackets::Achievement::AllAchievements* data) const;
312317

313318
bool ConditionsSatisfied(AchievementCriteriaEntry const* criteria) const;
314319
bool RequirementsSatisfied(AchievementCriteriaEntry const* criteria, AchievementEntry const* achievement, uint32 miscValue1, uint32 miscValue2, WorldObject const* ref) const;
@@ -324,7 +329,7 @@ class TC_GAME_API AchievementMgr
324329
class TC_GAME_API AchievementGlobalMgr
325330
{
326331
AchievementGlobalMgr() { }
327-
~AchievementGlobalMgr() { }
332+
~AchievementGlobalMgr();
328333

329334
public:
330335
static char const* GetCriteriaTypeString(AchievementCriteriaTypes type);
@@ -336,43 +341,43 @@ class TC_GAME_API AchievementGlobalMgr
336341

337342
AchievementCriteriaEntryList const& GetTimedAchievementCriteriaByType(AchievementCriteriaTimedTypes type) const
338343
{
339-
return m_AchievementCriteriasByTimedType[type];
344+
return _achievementCriteriasByTimedType[type];
340345
}
341346

342347
AchievementCriteriaEntryList const* GetAchievementCriteriaByCondition(AchievementCriteriaCondition condition, uint32 val)
343348
{
344-
AchievementCriteriaListByCondition::const_iterator itr = m_AchievementCriteriasByCondition[condition].find(val);
345-
return itr != m_AchievementCriteriasByCondition[condition].end() ? &itr->second : nullptr;
349+
AchievementCriteriaListByCondition::const_iterator itr = _achievementCriteriasByCondition[condition].find(val);
350+
return itr != _achievementCriteriasByCondition[condition].end() ? &itr->second : nullptr;
346351
}
347352

348353
AchievementCriteriaEntryList const* GetAchievementCriteriaByAchievement(uint32 id) const
349354
{
350-
AchievementCriteriaListByAchievement::const_iterator itr = m_AchievementCriteriaListByAchievement.find(id);
351-
return itr != m_AchievementCriteriaListByAchievement.end() ? &itr->second : nullptr;
355+
AchievementCriteriaListByAchievement::const_iterator itr = _achievementCriteriaListByAchievement.find(id);
356+
return itr != _achievementCriteriaListByAchievement.end() ? &itr->second : nullptr;
352357
}
353358

354359
AchievementEntryList const* GetAchievementByReferencedId(uint32 id) const
355360
{
356-
AchievementListByReferencedId::const_iterator itr = m_AchievementListByReferencedId.find(id);
357-
return itr != m_AchievementListByReferencedId.end() ? &itr->second : nullptr;
361+
AchievementListByReferencedId::const_iterator itr = _achievementListByReferencedId.find(id);
362+
return itr != _achievementListByReferencedId.end() ? &itr->second : nullptr;
358363
}
359364

360365
AchievementReward const* GetAchievementReward(AchievementEntry const* achievement) const
361366
{
362-
AchievementRewards::const_iterator iter = m_achievementRewards.find(achievement->ID);
363-
return iter != m_achievementRewards.end() ? &iter->second : nullptr;
367+
AchievementRewards::const_iterator iter = _achievementRewards.find(achievement->ID);
368+
return iter != _achievementRewards.end() ? &iter->second : nullptr;
364369
}
365370

366371
AchievementRewardLocale const* GetAchievementRewardLocale(AchievementEntry const* achievement) const
367372
{
368-
AchievementRewardLocales::const_iterator iter = m_achievementRewardLocales.find(achievement->ID);
369-
return iter != m_achievementRewardLocales.end() ? &iter->second : nullptr;
373+
AchievementRewardLocales::const_iterator iter = _achievementRewardLocales.find(achievement->ID);
374+
return iter != _achievementRewardLocales.end() ? &iter->second : nullptr;
370375
}
371376

372377
AchievementCriteriaDataSet const* GetCriteriaDataSet(AchievementCriteriaEntry const* achievementCriteria) const
373378
{
374-
AchievementCriteriaDataMap::const_iterator iter = m_criteriaDataMap.find(achievementCriteria->ID);
375-
return iter != m_criteriaDataMap.end() ? &iter->second : nullptr;
379+
AchievementCriteriaDataMap::const_iterator iter = _criteriaDataMap.find(achievementCriteria->ID);
380+
return iter != _criteriaDataMap.end() ? &iter->second : nullptr;
376381
}
377382

378383
bool IsRealmCompleted(AchievementEntry const* achievement) const;
@@ -385,33 +390,33 @@ class TC_GAME_API AchievementGlobalMgr
385390
void LoadRewards();
386391
void LoadRewardLocales();
387392
private:
388-
AchievementCriteriaDataMap m_criteriaDataMap;
393+
AchievementCriteriaDataMap _criteriaDataMap;
389394

390395
// store achievement criterias by type to speed up lookup
391-
AchievementCriteriaEntryList m_AchievementCriteriasByType[ACHIEVEMENT_CRITERIA_TYPE_TOTAL];
396+
AchievementCriteriaEntryList _achievementCriteriasByType[ACHIEVEMENT_CRITERIA_TYPE_TOTAL];
392397

393398
static AchievementCriteriaEntryList const EmptyCriteriaList;
394399

395400
// store achievement criterias split by misc values
396-
AchievementCriteriaListByMiscValue m_AchievementCriteriasByMiscValue[ACHIEVEMENT_CRITERIA_TYPE_TOTAL];
401+
AchievementCriteriaListByMiscValue _achievementCriteriasByMiscalue[ACHIEVEMENT_CRITERIA_TYPE_TOTAL];
397402

398-
AchievementCriteriaEntryList m_AchievementCriteriasByTimedType[ACHIEVEMENT_TIMED_TYPE_MAX];
403+
AchievementCriteriaEntryList _achievementCriteriasByTimedType[ACHIEVEMENT_TIMED_TYPE_MAX];
399404

400-
AchievementCriteriaListByCondition m_AchievementCriteriasByCondition[ACHIEVEMENT_CRITERIA_CONDITION_MAX];
405+
AchievementCriteriaListByCondition _achievementCriteriasByCondition[ACHIEVEMENT_CRITERIA_CONDITION_MAX];
401406

402407
// store achievement criterias by achievement to speed up lookup
403-
AchievementCriteriaListByAchievement m_AchievementCriteriaListByAchievement;
408+
AchievementCriteriaListByAchievement _achievementCriteriaListByAchievement;
404409

405410
// store achievements by referenced achievement id to speed up lookup
406-
AchievementListByReferencedId m_AchievementListByReferencedId;
411+
AchievementListByReferencedId _achievementListByReferencedId;
407412

408413
// store realm first achievements
409414
// SystemTimePoint::min() is a placeholder value for realm firsts not yet completed
410415
// SystemTimePoint::max() is a value assigned to realm firsts complete before worldserver started
411416
std::unordered_map<uint32 /*achievementId*/, SystemTimePoint /*completionTime*/> _allCompletedAchievements;
412417

413-
AchievementRewards m_achievementRewards;
414-
AchievementRewardLocales m_achievementRewardLocales;
418+
AchievementRewards _achievementRewards;
419+
AchievementRewardLocales _achievementRewardLocales;
415420

416421
friend class UnitTestDataLoader;
417422
};

src/server/game/AuctionHouse/AuctionHouseMgr.cpp

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ AuctionHouseObject* AuctionHouseMgr::GetAuctionsMapByHouseId(uint8 auctionHouseI
8787

8888
uint32 AuctionHouseMgr::GetAuctionDeposit(AuctionHouseEntry const* entry, uint32 time, Item* pItem, uint32 count)
8989
{
90-
uint32 MSV = pItem->GetTemplate()->SellPrice;
90+
uint32 MSV = pItem->GetTemplate()->GetSellPrice();
9191

9292
if (MSV <= 0)
9393
return float(AH_MINIMUM_DEPOSIT) * sWorld->getRate(RATE_AUCTION_DEPOSIT);
@@ -155,7 +155,8 @@ void AuctionHouseMgr::SendAuctionWonMail(AuctionEntry* auction, CharacterDatabas
155155
uint32 ownerAccId = sCharacterCache->GetCharacterAccountIdByGuid(ownerGuid);
156156

157157
sLog->OutCommand(bidderAccId, "GM {} (Account: {}) won item in auction: {} (Entry: {} Count: {}) and pay money: {}. Original owner {} (Account: {})",
158-
bidderName, bidderAccId, pItem->GetTemplate()->Name1, pItem->GetEntry(), pItem->GetCount(), auction->bid, ownerName, ownerAccId);
158+
bidderName, bidderAccId, pItem->GetNameForLocaleIdx(sWorld->GetDefaultDbcLocale()),
159+
pItem->GetEntry(), pItem->GetCount(), auction->bid, ownerName, ownerAccId);
159160
}
160161

161162
// receiver exist
@@ -751,39 +752,39 @@ void AuctionHouseObject::BuildListAuctionItems(WorldPacket& data, Player* player
751752

752753
ItemTemplate const* proto = item->GetTemplate();
753754

754-
if (itemClass != 0xffffffff && proto->Class != itemClass)
755+
if (itemClass != 0xffffffff && proto->GetClass() != itemClass)
755756
continue;
756757

757-
if (itemSubClass != 0xffffffff && proto->SubClass != itemSubClass)
758+
if (itemSubClass != 0xffffffff && proto->GetSubClass() != itemSubClass)
758759
continue;
759760

760-
if (inventoryType != 0xffffffff && proto->InventoryType != inventoryType)
761+
if (inventoryType != 0xffffffff && proto->GetInventoryType() != inventoryType)
761762
{
762763
// Cloth items can have INVTYPE_CHEST or INVTYPE_ROBE
763-
if (!(inventoryType == INVTYPE_CHEST && proto->InventoryType == INVTYPE_ROBE))
764+
if (!(inventoryType == INVTYPE_CHEST && proto->GetInventoryType() == INVTYPE_ROBE))
764765
continue;
765766
}
766767

767-
if (quality != 0xffffffff && proto->Quality != quality)
768+
if (quality != 0xffffffff && proto->GetQuality() != quality)
768769
continue;
769770

770-
if (levelmin != 0x00 && (proto->RequiredLevel < levelmin || (levelmax != 0x00 && proto->RequiredLevel > levelmax)))
771+
if (levelmin != 0 && (proto->GetRequiredLevel() < levelmin || (levelmax != 0 && proto->GetRequiredLevel() > levelmax)))
771772
continue;
772773

773-
if (usable != 0x00 && player->CanUseItem(item) != EQUIP_ERR_OK)
774+
if (usable != 0 && player->CanUseItem(item) != EQUIP_ERR_OK)
774775
continue;
775776

776777
// Allow search by suffix (ie: of the Monkey) or partial name (ie: Monkey)
777778
// No need to do any of this if no search term was entered
778779
if (!wsearchedname.empty())
779780
{
780-
std::string name = proto->Name1;
781+
std::string name = proto->GetDefaultLocaleName();
781782
if (name.empty())
782783
continue;
783784

784785
// local name
785786
if (localeConstant != LOCALE_enUS)
786-
if (ItemLocale const* il = sObjectMgr->GetItemLocale(proto->ItemId))
787+
if (ItemLocale const* il = sObjectMgr->GetItemLocale(proto->GetId()))
787788
ObjectMgr::GetLocaleString(il->Name, localeConstant, name);
788789

789790
// DO NOT use GetItemEnchantMod(proto->RandomProperty) as it may return a result

src/server/game/AuctionHouseBot/AuctionHouseBot.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -499,8 +499,8 @@ void AuctionHouseBot::PrepareStatusInfos(std::unordered_map<AuctionHouseType, Au
499499
ItemTemplate const* prototype = item->GetTemplate();
500500
if (!auctionEntry->owner || sAuctionBotConfig->IsBotChar(auctionEntry->owner)) // Add only ahbot items
501501
{
502-
if (prototype->Quality < MAX_AUCTION_QUALITY)
503-
++statusInfo[ahType].QualityInfo[AuctionQuality(prototype->Quality)];
502+
if (prototype->GetQuality() < MAX_AUCTION_QUALITY)
503+
++statusInfo[ahType].QualityInfo[AuctionQuality(prototype->GetQuality())];
504504

505505
++statusInfo[ahType].ItemsCount;
506506
}

src/server/game/AuctionHouseBot/AuctionHouseBotBuyer.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ bool AuctionBotBuyer::RollBuyChance(BuyerItemInfo const* ahInfo, Item const* ite
165165
return false;
166166

167167
float itemBuyPrice = float(auction->buyout / item->GetCount());
168-
float itemPrice = float(item->GetTemplate()->SellPrice ? item->GetTemplate()->SellPrice : GetVendorPrice(item->GetTemplate()->Quality));
168+
float itemPrice = float(item->GetTemplate()->GetSellPrice() ? item->GetTemplate()->GetSellPrice() : GetVendorPrice(item->GetTemplate()->GetQuality()));
169169
// The AH cut needs to be added to the price, but we dont want a 100% chance to buy if the price is exactly AH default
170170
itemPrice *= 1.4f;
171171

@@ -189,7 +189,7 @@ bool AuctionBotBuyer::RollBuyChance(BuyerItemInfo const* ahInfo, Item const* ite
189189
}
190190

191191
// Add config weigh in for quality
192-
chance *= GetChanceMultiplier(item->GetTemplate()->Quality) / 100.0f;
192+
chance *= GetChanceMultiplier(item->GetTemplate()->GetQuality()) / 100.0f;
193193

194194
float rand = frand(0.f, 100.f);
195195
bool win = rand <= chance;
@@ -201,7 +201,7 @@ bool AuctionBotBuyer::RollBuyChance(BuyerItemInfo const* ahInfo, Item const* ite
201201
bool AuctionBotBuyer::RollBidChance(BuyerItemInfo const* ahInfo, Item const* item, AuctionEntry const* auction, uint32 bidPrice)
202202
{
203203
float itemBidPrice = float(bidPrice / item->GetCount());
204-
float itemPrice = float(item->GetTemplate()->SellPrice ? item->GetTemplate()->SellPrice : GetVendorPrice(item->GetTemplate()->Quality));
204+
float itemPrice = float(item->GetTemplate()->GetSellPrice() ? item->GetTemplate()->GetSellPrice() : GetVendorPrice(item->GetTemplate()->GetQuality()));
205205
// The AH cut needs to be added to the price, but we dont want a 100% chance to buy if the price is exactly AH default
206206
itemPrice *= 1.4f;
207207

@@ -225,7 +225,7 @@ bool AuctionBotBuyer::RollBidChance(BuyerItemInfo const* ahInfo, Item const* ite
225225
chance = chance / 5.f;
226226

227227
// Add config weigh in for quality
228-
chance *= GetChanceMultiplier(item->GetTemplate()->Quality) / 100.0f;
228+
chance *= GetChanceMultiplier(item->GetTemplate()->GetQuality()) / 100.0f;
229229

230230
float rand = frand(0.f, 100.f);
231231
bool win = rand <= chance;

0 commit comments

Comments
 (0)