Skip to content

[Feature] Quick Travel (hearthstones, class/racial, Hero's Path) - #1716

Open
cyb3rsyph0n wants to merge 9 commits into
EllesmereGaming:mainfrom
cyb3rsyph0n:feature/hearth-teleport
Open

[Feature] Quick Travel (hearthstones, class/racial, Hero's Path)#1716
cyb3rsyph0n wants to merge 9 commits into
EllesmereGaming:mainfrom
cyb3rsyph0n:feature/hearth-teleport

Conversation

@cyb3rsyph0n

Copy link
Copy Markdown
Contributor

What does this PR do?

Adds Quick Travel as a sibling addon (first-install / addon-list opt-in). /eht, /euihearth, or a Keybind opens a popup with:

  • Hearthstones (random pick from a toy pool, Dalaran / Arcantina, owned cosmetics)
  • Class and racial travel
  • Mage teleports and portals
  • Hero's Path dungeon and raid teleports (current season + legacy by expansion)

Options live under QoL Addons -> Quick Travel. There is no in-page Enable toggle; loading the addon is the switch. Show Random Hearth and Random Pool sit on the Hearthstones cog. The popup hides itself when combat starts.

I know CONTRIBUTING currently pauses feature PRs around the 12.1 launch. Happy to hold, trim, or iterate if the timing is wrong.

How was it tested?

Midnight live (shown as v9.0.1 in the options footer).

  • First-install checkbox / addon enable loads the module; options page is absent when the addon is disabled
  • /eht and the Keybind (Ctrl+5 in these screenshots) open and close the popup out of combat
  • Hearthstones cog: Show Random Hearth on/off, Random Pool greys when random is off
  • Seasonal Dungeons cog: Highlight Current Key, Keystone Portal Reminder
  • Current vs Legacy dungeon tabs and expansion flyouts
  • Combat start hides the popup without taint (SecureHandlerStateTemplate)

Screenshots

Screenshots live on pr-screenshots-quick-travel (fork only) and are not in this merge.

Options: Hide After Teleporting, Keybind, Window Scale. Hearthstones and Seasonal Dungeons have cogs.

Quick Travel options layout

Hearthstones cog: Show Random Hearth and Random Pool.

Hearthstones cog with Show Random Hearth and Random Pool

Seasonal Dungeons cog: Highlight Current Key and Keystone Portal Reminder.

Seasonal Dungeons cog

Popup: current-season Hero's Path plus hearth / class rows.

Quick Travel popup current dungeons

Popup: Legacy tab with Midnight expansion flyout.

Quick Travel popup legacy Midnight flyout

Popup: Hearthstones flyout (cosmetic toys).

Quick Travel popup hearthstones flyout

Checklist

  • New settings default OFF (no behavior change without opt-in) -- opt-in is the Quick Travel sibling addon (first-install checkbox / addon list). Options no-op if the module is not loaded. Popup frames are built on first open. Keystone Portal Reminder defaults OFF; SHOW rows use the same opt-out pattern as other modules (nil = shown)
  • Zero cost while disabled: no events registered, no polling, no hooks doing work, no frames built -- disabled addon does not load; options file returns immediately without _ModuleNS
  • Cheap while enabled: event-driven (no polling, no timer-based logic, no per-frame allocations) -- combat hide is a state driver; cooldowns refresh only while the popup is shown; no OnUpdate
  • No writes onto Blizzard-owned frames (weak-table pattern used); HookScript/hooksecurefunc only, never SetScript on Blizzard frames -- own frames plus SecureActionButtonTemplate rows; optional HookScript on EUITeleportPopup for the reminder highlight
  • Tested in-game on live; no version gates or pre-Midnight APIs added

Made with Cursor

@cyb3rsyph0n
cyb3rsyph0n force-pushed the feature/hearth-teleport branch from ad18490 to 00c0d7e Compare September 2, 2026 21:20
cyb3rsyph0n and others added 9 commits September 6, 2026 22:00
Co-authored-by: Cursor <cursoragent@cursor.com>
…combat hide).

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Lua cannot Hide() the popup during lockdown because of its secure teleport buttons, so a companion state driver closes it on combat entry.

Co-authored-by: Cursor <cursoragent@cursor.com>
…arthstones cog.

The sibling addon is now the on/off switch, so the leftover master toggle no longer applies. Random hearth stays a Hearthstones option, next to the pool picker.

Co-authored-by: Cursor <cursoragent@cursor.com>
Leaves the empty cell on Window Scale's right so the section isn't missing its first control.

Co-authored-by: Cursor <cursoragent@cursor.com>
Matches the DualRow wording used on other options pages that capture a key.

Co-authored-by: Cursor <cursoragent@cursor.com>
…ompt.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@cyb3rsyph0n
cyb3rsyph0n force-pushed the feature/hearth-teleport branch from f379d9e to b3003bf Compare September 7, 2026 02:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant