Add transport system, fix NPC spawning, and improve water rendering

Transport System (Phases 1-7):
- Implement TransportManager with Catmull-Rom spline path interpolation
- Add WMO dynamic transforms for moving transport instances
- Implement player attachment via world position composition
- Add test transport with circular path around Stormwind harbor
- Add /transport board and /transport leave console commands
- Reuse taxi flight spline system and external follow camera mode

NPC Spawn Fixes:
- Add smart ocean spawn filter: blocks land creatures at high altitude over water (Z>50)
- Allow legitimate water creatures at sea level (Z≤50) to spawn correctly
- Fixes Elder Grey Bears, Highland Striders, and Plainscreepers spawning over ocean
- Snap online creatures to terrain height when valid ground exists

NpcManager Removal:
- Remove deprecated NpcManager (offline mode no longer supported)
- Delete npc_manager.hpp and npc_manager.cpp
- Simplify NPC animation callbacks to use only creatureInstances_ map
- Move NPC callbacks to game initialization in application.cpp

Water Rendering:
- Fix tile seam gaps caused by per-vertex wave randomization
- Add distance-based blending: seamless waves up close (<150u), grid effect far away (>400u)
- Smooth transition between seamless and grid modes (150-400 unit range)
- Preserves aesthetic grid pattern at horizon while eliminating gaps when swimming
This commit is contained in:
Kelsi 2026-02-10 21:29:10 -08:00
parent c91e0bb916
commit 2e923311d0
13 changed files with 711 additions and 1079 deletions

View file

@ -88,6 +88,7 @@ set(WOWEE_SOURCES
# Game
src/game/game_handler.cpp
src/game/transport_manager.cpp
src/game/world.cpp
src/game/player.cpp
src/game/entity.cpp
@ -95,7 +96,6 @@ set(WOWEE_SOURCES
src/game/world_packets.cpp
src/game/character.cpp
src/game/zone_manager.cpp
src/game/npc_manager.cpp
src/game/inventory.cpp
# Audio
@ -199,7 +199,6 @@ set(WOWEE_HEADERS
include/game/entity.hpp
include/game/opcodes.hpp
include/game/zone_manager.hpp
include/game/npc_manager.hpp
include/game/inventory.hpp
include/game/spell_defines.hpp
include/game/group_defines.hpp