Skip to content

v1.18.3

Choose a tag to compare

@github-actions github-actions released this 09 Sep 00:55
· 154 commits to main since this release
v1.18.3
9df71ec

QuickRoute v1.18.3

Follow-up to 1.18.2, from three reviews of what the addon does while you play — how much it recomputes, what it allocates, and how often it asks the client questions it has already asked.

Routes are kept until something can actually change them

1.18.2 stopped re-routing every tracked quest once a second while moving. Two more cases were doing the same thing for no result: the quest arrow moving to another quest, and a quest being added to or removed from the tracker. Neither changes any other quest's route — the arrow decides which quest is highlighted, not where any of them goes — and with 25 quests tracked each firing cost about 18 ms and recomputed 25 routes that came back identical. The arrow one fires on every quest turn-in and accept, on tracker and map clicks, and whenever another addon changes what you are tracking. Both now leave the cached routes alone, and the cache is kept across a fight rather than emptied, which used to move a full recomputation to the moment combat ended — @CybotTM in #69.

Reviewing that turned up something older: what a quest route was cached against did not include where the quest points. Completing an objective can advance a quest to one in another zone without you moving a step, and the button would go on offering the teleport for the previous destination. That is now part of what the cache is keyed on, so it is caught for every tracked quest rather than for whichever one happens to carry the arrow.

Fewer questions to the client

A route prices every teleport you own against its cooldown, and a refresh computes one route per tracked quest, so the same question reached the client once per quest — 188 cooldown queries for a single refresh of 25 quests, and 2300 on a character with a full collection. Those are answered once per refresh now. Zone names, quest titles and spell cast times are no longer re-read either; they cannot change between one route and the next. Counted over ten refreshes: 11,667 client calls before, 10,766 after.

The quest teleport buttons also stopped allocating two tables and two closures five times a second while they are on screen, and are repositioned only when their tracker block actually moves.

Known limits

Three things this work left open, recorded rather than quietly shipped: a quest objective that moves within one zone can still be served the previous teleport for up to 30 seconds (#70); resolving where a quest points now happens on every cache read and is cold about once a second while moving (#71); and the cooldown reuse gives some of itself back when a global cooldown lands mid-refresh (#72).

If you reported the movement stutter, this and 1.18.2 together are the fix — a note on whether it is gone would be welcome.

Installation

  1. Download QuickRoute-1.18.3.zip
  2. Extract to World of Warcraft/_retail_/Interface/AddOns/
  3. Restart WoW or /reload