mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-22 23:30:14 +00:00
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:
parent
6690910712
commit
d8e2becbaa
8 changed files with 258 additions and 43 deletions
|
|
@ -723,7 +723,7 @@ void TerrainManager::unloadTile(int x, int y) {
|
|||
}
|
||||
|
||||
void TerrainManager::unloadAll() {
|
||||
// Stop worker thread
|
||||
// Stop worker threads
|
||||
if (workerRunning.load()) {
|
||||
workerRunning.store(false);
|
||||
queueCV.notify_all();
|
||||
|
|
@ -748,6 +748,10 @@ void TerrainManager::unloadAll() {
|
|||
loadedTiles.clear();
|
||||
failedTiles.clear();
|
||||
|
||||
// Reset tile tracking so streaming re-triggers at the new location
|
||||
currentTile = {-1, -1};
|
||||
lastStreamTile = {-1, -1};
|
||||
|
||||
// Clear terrain renderer
|
||||
if (terrainRenderer) {
|
||||
terrainRenderer->clear();
|
||||
|
|
@ -757,6 +761,23 @@ void TerrainManager::unloadAll() {
|
|||
if (waterRenderer) {
|
||||
waterRenderer->clear();
|
||||
}
|
||||
|
||||
// Clear WMO and M2 renderers so old-location geometry doesn't persist
|
||||
if (wmoRenderer) {
|
||||
wmoRenderer->clearInstances();
|
||||
}
|
||||
if (m2Renderer) {
|
||||
m2Renderer->clear();
|
||||
}
|
||||
|
||||
// Restart worker threads so streaming can resume
|
||||
workerRunning.store(true);
|
||||
unsigned hc = std::thread::hardware_concurrency();
|
||||
workerCount = static_cast<int>(hc > 0 ? std::min(4u, std::max(2u, hc - 1)) : 2u);
|
||||
workerThreads.reserve(workerCount);
|
||||
for (int i = 0; i < workerCount; i++) {
|
||||
workerThreads.emplace_back(&TerrainManager::workerLoop, this);
|
||||
}
|
||||
}
|
||||
|
||||
TileCoord TerrainManager::worldToTile(float glX, float glY) const {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue