feat: add audio feedback for level-up, achievements, duels, group invites, and inventory errors

Wire up remaining UISoundManager calls for milestone and notification events:
- playLevelUp() on SMSG_LEVELUP_INFO
- playAchievementAlert() on SMSG_ACHIEVEMENT_EARNED (self only)
- playTargetSelect() on duel request and group invite
- playError() on inventory change failure
This commit is contained in:
Kelsi 2026-03-17 12:37:19 -07:00
parent 119002626e
commit 8169f5d5c0

View file

@ -4395,6 +4395,10 @@ void GameHandler::handlePacket(network::Packet& packet) {
}
if (newLevel > oldLevel) {
addSystemChatMessage("You have reached level " + std::to_string(newLevel) + "!");
if (auto* renderer = core::Application::getInstance().getRenderer()) {
if (auto* sfx = renderer->getUiSoundManager())
sfx->playLevelUp();
}
if (levelUpCallback_) levelUpCallback_(newLevel);
}
}
@ -4649,6 +4653,10 @@ void GameHandler::handlePacket(network::Packet& packet) {
}
std::string msg = errMsg ? errMsg : "Inventory error (" + std::to_string(error) + ").";
addSystemChatMessage(msg);
if (auto* renderer = core::Application::getInstance().getRenderer()) {
if (auto* sfx = renderer->getUiSoundManager())
sfx->playError();
}
}
}
break;
@ -13440,6 +13448,10 @@ void GameHandler::handleDuelRequested(network::Packet& packet) {
pendingDuelRequest_ = true;
addSystemChatMessage(duelChallengerName_ + " challenges you to a duel!");
if (auto* renderer = core::Application::getInstance().getRenderer()) {
if (auto* sfx = renderer->getUiSoundManager())
sfx->playTargetSelect();
}
LOG_INFO("SMSG_DUEL_REQUESTED: challenger=0x", std::hex, duelChallengerGuid_,
" flag=0x", duelFlagGuid_, std::dec, " name=", duelChallengerName_);
}
@ -18745,6 +18757,10 @@ void GameHandler::handleGroupInvite(network::Packet& packet) {
if (!data.inviterName.empty()) {
addSystemChatMessage(data.inviterName + " has invited you to a group.");
}
if (auto* renderer = core::Application::getInstance().getRenderer()) {
if (auto* sfx = renderer->getUiSoundManager())
sfx->playTargetSelect();
}
}
void GameHandler::handleGroupDecline(network::Packet& packet) {
@ -24480,6 +24496,10 @@ void GameHandler::handleAchievementEarned(network::Packet& packet) {
earnedAchievements_.insert(achievementId);
achievementDates_[achievementId] = earnDate;
if (auto* renderer = core::Application::getInstance().getRenderer()) {
if (auto* sfx = renderer->getUiSoundManager())
sfx->playAchievementAlert();
}
if (achievementEarnedCallback_) {
achievementEarnedCallback_(achievementId, achName);
}