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 f60b22a633
commit a4c5f35397
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