Add teleporter panel and server-compatible coordinate conversions

Teleporter panel (T key) lets the player teleport between Goldshire,
Stormwind Gate, Ironforge, and Westfall in single-player mode. Adds
serverToCanonical/canonicalToServer conversion at the network packet
boundary so positions are compatible with TrinityCore/MaNGOS/AzerothCore
emulator servers.
This commit is contained in:
Kelsi 2026-02-04 18:27:52 -08:00
parent 6690910712
commit d8e2becbaa
8 changed files with 258 additions and 43 deletions

View file

@ -29,6 +29,16 @@ public:
*/
bool isChatInputActive() const { return chatInputActive; }
/**
* Toggle the teleporter panel
*/
void toggleTeleporter() { showTeleporter = !showTeleporter; }
/**
* Check if teleporter panel is open
*/
bool isTeleporterOpen() const { return showTeleporter; }
private:
// Chat state
char chatInputBuffer[512] = "";
@ -40,6 +50,7 @@ private:
bool showChatWindow = true;
bool showPlayerInfo = false;
bool refocusChatInput = false;
bool showTeleporter = false;
/**
* Render player info window
@ -106,6 +117,7 @@ private:
void renderLootWindow(game::GameHandler& gameHandler);
void renderGossipWindow(game::GameHandler& gameHandler);
void renderVendorWindow(game::GameHandler& gameHandler);
void renderTeleporterPanel();
/**
* Inventory screen