Skip to content

Spells/Warlock: Implement Demonic Gateway - #32054

Draft
ialbahub wants to merge 1 commit into
TrinityCore:masterfrom
ialbahub:fix/warlock-demonic-gateway
Draft

ialbahub wants to merge 1 commit into
TrinityCore:masterfrom
ialbahub:fix/warlock-demonic-gateway

Conversation

@ialbahub

@ialbahub ialbahub commented Oct 9, 2026 •

Copy link
Copy Markdown

Changes proposed:

  • Implement Demonic Gateway and the AI for both endpoints (59262 and 59271).
  • Pair endpoints belonging to the same Warlock and allow the owner and party/raid members to use them. Keep the existing travel spells and usage cooldown.
  • Despawn the owner's previous endpoints before creating a new pair. Collect their GUIDs before despawning to avoid invalidating the map-store iterator.
  • Despawn endpoints when their owner leaves the world or their partner is removed.
  • Add creature, spell-click and spell-script bindings, and regression tests for casting checks, access, replacement, cleanup and cooldown handling.

Issues addressed:

Demonic Gateway currently has no spell implementation or endpoint AI on master. No linked issue.

Tests performed:

  • Builds with Clang 18 and MySQL, with warnings treated as errors: worldserver, bnetserver and tests. Minimal dynamic scripts, no PCH.
  • All 43 CTests pass. Gateway tests pass 8 cases / 84 assertions, including both travel directions, party access, unrelated-player rejection, replacement and cooldown expiry/reuse.
  • AddressSanitizer reproduces a heap-use-after-free with the unsafe replacement loop; the GUID snapshot passes the Gateway tests. Instrumentation covers the spell script and fixture; core libraries are uninstrumented and leak detection is disabled.
  • Validated spell effects against client build 12.1.0.69933 using the MySQL hotfix loader. Checked SQL bindings, unrelated-record preservation and repeat application on MySQL temporary tables.
  • Owner travel, right-click use, replacement and cooldown expiry/reuse were tested in-game on an earlier revision. The submitted revision has automated validation.

Known issues and TODO list:

  • Test the submitted revision in-game: party/raid access, logout cleanup, movement and terrain/line-of-sight restrictions. Confirm the 6-yard height check and endpoint pairing radius against retail.
  • Verify Gateway Control Shard, flag carriers and Gateway Mastery interactions.
  • Test startup with a clean TDB world database. SQL tests use reference table definitions; local client assets do not include maps/vmaps.
  • Review the replacement scan. It traverses the map's creature store because these endpoints have no owner summon slot and are not in the controlled-minion list.

Frequent Traveler is handled separately in #32055. The automated travel fixtures use synthetic spell data and do not test client movement.

Please review endpoint pairing and lifetime, access checks, destination restrictions and database bindings.

Create and pair the two Warlock endpoints, enforce owner and raid access,
and retain the native travel cooldown. Snapshot owned endpoint GUIDs before
despawning to avoid invalidating the map-store iterator.

Include MySQL creature and spell-click bindings and focused script/AI
dispatch tests for replacement, access, lifetime, rejection, and cooldown
behavior.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant