From f207acc038812b39a629d8cd674c6d8ea6a81383 Mon Sep 17 00:00:00 2001 From: Kelsi Date: Tue, 17 Feb 2026 16:16:51 -0800 Subject: [PATCH] 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) --- src/game/world_packets.cpp | 4 ++-- src/ui/game_screen.cpp | 2 +- src/ui/quest_log_screen.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/game/world_packets.cpp b/src/game/world_packets.cpp index c5bb518b..a835f3d0 100644 --- a/src/game/world_packets.cpp +++ b/src/game/world_packets.cpp @@ -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); } diff --git a/src/ui/game_screen.cpp b/src/ui/game_screen.cpp index 4ffc9587..98c8a530 100644 --- a/src/ui/game_screen.cpp +++ b/src/ui/game_screen.cpp @@ -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; diff --git a/src/ui/quest_log_screen.cpp b/src/ui/quest_log_screen.cpp index eead6b7e..5ac774dc 100644 --- a/src/ui/quest_log_screen.cpp +++ b/src/ui/quest_log_screen.cpp @@ -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;