Implement 3D quest markers using M2 models

Loads and renders actual quest marker M2 models from
World\Generic\PassiveDoodads\Quest\ as floating 3D objects above NPCs
based on quest status, replacing 2D ImGui text markers.

Features:
- Loads QuestExclamation.m2 (yellow !) for available quests
- Loads QuestQuestionMark.m2 (silver ?) for completable quests
- Updates marker positions dynamically as NPCs move
- Automatically spawns/despawns markers based on quest status changes
- Positions markers above NPC heads using render bounds

Quest markers are now proper 3D assets consistent with WoW 3.3.5a client.
This commit is contained in:
Kelsi 2026-02-09 23:05:23 -08:00
parent 0715cd3c7d
commit 3e4181f4d2
2 changed files with 146 additions and 0 deletions

View file

@ -203,6 +203,13 @@ private:
};
std::vector<PendingGameObjectSpawn> pendingGameObjectSpawns_;
void processGameObjectSpawnQueue();
// Quest marker 3D models (billboarded above NPCs)
uint32_t questExclamationModelId_ = 0;
uint32_t questQuestionMarkModelId_ = 0;
std::unordered_map<uint64_t, uint32_t> questMarkerInstances_; // npcGuid → marker instanceId
void loadQuestMarkerModels();
void updateQuestMarkers();
};
} // namespace core