From 9544e100c3c403c6ae88da3cab96a78ad21e85ea Mon Sep 17 00:00:00 2001 From: Alex King <89047260+Kinglykrab@users.noreply.github.com> Date: Wed, 30 Jul 2025 19:39:29 -0400 Subject: [PATCH] [Bug Fix] Fix Hero's Forge Ingame and Character Select (#4966) --- world/worlddb.cpp | 10 +++++++--- zone/mob_appearance.cpp | 6 +++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/world/worlddb.cpp b/world/worlddb.cpp index 9501670fd..f47cdb608 100644 --- a/world/worlddb.cpp +++ b/world/worlddb.cpp @@ -901,9 +901,13 @@ bool WorldDatabase::GetCharSelInventory( inst->SetCustomDataString(e.custom_data); } - inst->SetOrnamentIcon(e.ornament_icon); - inst->SetOrnamentationIDFile(e.ornament_idfile); - inst->SetOrnamentHeroModel(e.ornament_hero_model); + if (e.ornament_icon != 0 || e.ornament_idfile != 0 || e.ornament_hero_model != 0) { + inst->SetOrnamentIcon(e.ornament_icon); + inst->SetOrnamentationIDFile(e.ornament_idfile); + inst->SetOrnamentHeroModel(e.ornament_hero_model); + } else if (item->HerosForgeModel > 0) { + inst->SetOrnamentHeroModel(item->HerosForgeModel); + } inv->PutItem(e.slot_id, *inst); diff --git a/zone/mob_appearance.cpp b/zone/mob_appearance.cpp index 430247443..2556a41b1 100644 --- a/zone/mob_appearance.cpp +++ b/zone/mob_appearance.cpp @@ -286,8 +286,8 @@ uint32 Mob::GetHerosForgeModel(uint8 material_slot) const if (augment) { item = augment->GetItem(); heros_forge_model = item->HerosForgeModel; - } else if (inst->GetOrnamentHeroModel()) { - heros_forge_model = inst->GetOrnamentHeroModel(); + } else if (inst->GetOrnamentHeroModel(material_slot)) { + heros_forge_model = inst->GetOrnamentHeroModel(material_slot); } } } @@ -421,7 +421,7 @@ void Mob::SendWearChange(uint8 material_slot, Client *one_client) return key; }; - + auto dedupe_key = build_key(*w); auto send_if_changed = [&](Client* client) { auto& last_key = m_last_seen_wearchange[client->GetID()][material_slot];