Fix single-player NPC loading outside Goldshire

This commit is contained in:
Kelsi 2026-02-04 23:37:30 -08:00
parent 28a8e806e1
commit b16578e2b9
3 changed files with 66 additions and 22 deletions

View file

@ -859,6 +859,9 @@ void Application::spawnNpcs() {
if (!renderer || !renderer->getCharacterRenderer() || !renderer->getCamera()) return;
if (!gameHandler) return;
if (npcManager) {
npcManager->clear(renderer->getCharacterRenderer(), &gameHandler->getEntityManager());
}
npcManager = std::make_unique<game::NpcManager>();
glm::vec3 playerSpawnGL = renderer->getCharacterPosition();
glm::vec3 playerCanonical = core::coords::renderToCanonical(playerSpawnGL);
@ -1138,6 +1141,15 @@ void Application::teleportTo(int presetIndex) {
gameHandler->setPosition(finalCanonical.x, finalCanonical.y, finalCanonical.z);
}
// Rebuild nearby NPC set for the new location.
if (singlePlayerMode && gameHandler && renderer && renderer->getCharacterRenderer()) {
if (npcManager) {
npcManager->clear(renderer->getCharacterRenderer(), &gameHandler->getEntityManager());
}
npcsSpawned = false;
spawnNpcs();
}
LOG_INFO("Teleport to ", preset.label, " complete");
}