mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-23 07:40:14 +00:00
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.
27 lines
1,013 B
C++
27 lines
1,013 B
C++
#pragma once
|
|
|
|
#include <glm/glm.hpp>
|
|
|
|
namespace wowee::core {
|
|
|
|
struct SpawnPreset {
|
|
const char* key;
|
|
const char* label;
|
|
const char* mapName; // Map name for ADT paths (e.g., "Azeroth")
|
|
glm::vec3 spawnCanonical; // Canonical WoW coords: +X=North, +Y=West, +Z=Up
|
|
float yawDeg;
|
|
float pitchDeg;
|
|
};
|
|
|
|
// Spawn positions in canonical WoW world coordinates (X=north, Y=west, Z=up).
|
|
// Tile is computed from position via: tileN = floor(32 - wowN / 533.33333)
|
|
inline const SpawnPreset SPAWN_PRESETS[] = {
|
|
{"goldshire", "Goldshire", "Azeroth", glm::vec3( 62.0f, -9464.0f, 200.0f), 0.0f, -5.0f},
|
|
{"stormwind", "Stormwind Gate", "Azeroth", glm::vec3( 425.0f, -9176.0f, 120.0f), 35.0f, -8.0f},
|
|
{"ironforge", "Ironforge", "Azeroth", glm::vec3( -882.0f, -4981.0f, 510.0f), -20.0f, -8.0f},
|
|
{"westfall", "Westfall", "Azeroth", glm::vec3( 1215.0f,-10440.0f, 80.0f), 10.0f, -8.0f},
|
|
};
|
|
|
|
inline constexpr int SPAWN_PRESET_COUNT = 4;
|
|
|
|
} // namespace wowee::core
|