Fix $N placeholder and quest required item display

- Handle uppercase \$N in replaceGenderPlaceholders (WoW servers send \$N for player name, we only handled \$n)
- Fix SMSG_QUESTGIVER_REQUEST_ITEMS required item field order: packet sends [displayInfoId, count, itemId] not [itemId, count, displayInfoId], causing wrong items to display (e.g. Ring of Pure Silver instead of Tough Wolf Meat)
This commit is contained in:
Kelsi 2026-02-17 16:16:51 -08:00
parent ca3cf209d9
commit f207acc038
3 changed files with 4 additions and 4 deletions

View file

@ -2950,9 +2950,9 @@ bool QuestRequestItemsParser::parse(network::Packet& packet, QuestRequestItemsDa
for (uint32_t i = 0; i < requiredItemCount; ++i) {
if (packet.getReadPos() + 12 > packet.getSize()) break;
QuestRewardItem item;
item.itemId = packet.readUInt32();
item.count = packet.readUInt32();
item.displayInfoId = packet.readUInt32();
item.count = packet.readUInt32();
item.itemId = packet.readUInt32();
if (item.itemId > 0)
data.requiredItems.push_back(item);
}

View file

@ -6061,7 +6061,7 @@ std::string GameScreen::replaceGenderPlaceholders(const std::string& text, game:
std::string replacement;
switch (code) {
case 'n': replacement = playerName; break;
case 'n': case 'N': replacement = playerName; break;
case 'p': replacement = pronouns.subject; break;
case 'o': replacement = pronouns.object; break;
case 's': replacement = pronouns.possessive; break;

View file

@ -35,7 +35,7 @@ std::string replaceGenderPlaceholders(const std::string& text, game::GameHandler
std::string replacement;
switch (code) {
case 'n': replacement = playerName; break;
case 'n': case 'N': replacement = playerName; break;
case 'p': replacement = pronouns.subject; break;
case 'o': replacement = pronouns.object; break;
case 's': replacement = pronouns.possessive; break;