mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-25 16:30:15 +00:00
feat: show discovered taxi nodes as markers on the world map
Add gold diamond markers for every flight master the player has already discovered (knownTaxiMask_), read from TaxiNodes.dbc and filtered to the current continent/map being displayed: - WorldMapTaxiNode struct carries canonical WoW coords + known flag - WorldMap::setTaxiNodes() accepts the per-frame list from game_screen - renderImGuiOverlay() projects each known node to UV, draws a gold diamond (AddQuadFilled) with a dark outline, and shows the node name as a tooltip on hover - GameHandler::isKnownTaxiNode(id) checks knownTaxiMask_[] efficiently - Markers update live — newly discovered nodes appear without reopening the map
This commit is contained in:
parent
488ec945b6
commit
d60d296b77
4 changed files with 75 additions and 0 deletions
|
|
@ -7033,6 +7033,25 @@ void GameScreen::renderWorldMap(game::GameHandler& gameHandler) {
|
|||
wm->setPartyDots(std::move(dots));
|
||||
}
|
||||
|
||||
// Taxi node markers on world map
|
||||
{
|
||||
std::vector<rendering::WorldMapTaxiNode> taxiNodes;
|
||||
const auto& nodes = gameHandler.getTaxiNodes();
|
||||
taxiNodes.reserve(nodes.size());
|
||||
for (const auto& [id, node] : nodes) {
|
||||
rendering::WorldMapTaxiNode wtn;
|
||||
wtn.id = node.id;
|
||||
wtn.mapId = node.mapId;
|
||||
wtn.wowX = node.x;
|
||||
wtn.wowY = node.y;
|
||||
wtn.wowZ = node.z;
|
||||
wtn.name = node.name;
|
||||
wtn.known = gameHandler.isKnownTaxiNode(id);
|
||||
taxiNodes.push_back(std::move(wtn));
|
||||
}
|
||||
wm->setTaxiNodes(std::move(taxiNodes));
|
||||
}
|
||||
|
||||
glm::vec3 playerPos = renderer->getCharacterPosition();
|
||||
float playerYaw = renderer->getCharacterYaw();
|
||||
auto* window = app.getWindow();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue