feat: separate cast/impact kit paths in spell visual DBC lookup

loadSpellVisualDbc() now builds two distinct maps:
  spellVisualCastPath_  — visualId → M2 via SpellVisual.CastKit chain
  spellVisualImpactPath_ — visualId → M2 via SpellVisual.ImpactKit chain

playSpellVisual() accepts useImpactKit=false (default, cast) / true (impact).
SMSG_PLAY_SPELL_IMPACT passes useImpactKit=true so impact effects (explosions,
debuff indicators) use the ImpactKit model instead of the CastKit model.
Added ImpactKit field to all four dbc_layouts.json files.
This commit is contained in:
Kelsi 2026-03-17 18:30:11 -07:00
parent d558e3a927
commit 36fed15d43
3 changed files with 51 additions and 38 deletions

View file

@ -7431,7 +7431,7 @@ void GameHandler::handlePacket(network::Packet& packet) {
glm::vec3 canonical(entity->getLatestX(), entity->getLatestY(), entity->getLatestZ());
spawnPos = core::coords::canonicalToRender(canonical);
}
renderer->playSpellVisual(impVisualId, spawnPos);
renderer->playSpellVisual(impVisualId, spawnPos, /*useImpactKit=*/true);
break;
}