fix(sql): downgrade Patrol behavior to stationary when path is empty

A creature with behavior=Patrol but an empty patrolPath would emit
movement_type=2 (waypoint) without any waypoint_data rows.
AzerothCore would log 'creature X has no waypoints' on every spawn
and the NPC would behave erratically. Fall back to stationary so
the spawn appears cleanly; user can fix the missing path after.
This commit is contained in:
Kelsi 2026-05-06 09:52:16 -07:00
parent d07748398f
commit 0736b27ec7

View file

@ -113,9 +113,13 @@ bool SQLExporter::exportCreatures(const std::vector<CreatureSpawn>& spawns,
uint32_t entry = startEntry + static_cast<uint32_t>(i);
uint32_t guid = startEntry + static_cast<uint32_t>(i);
// movementType: 0=stationary, 1=wander, 2=waypoint (patrol).
// Patrol with no waypoints would log an error in AzerothCore at
// spawn — fall back to stationary so the spawn still appears.
uint8_t movementType = 0;
if (s.behavior == CreatureBehavior::Wander) movementType = 1;
if (s.behavior == CreatureBehavior::Patrol) movementType = 2;
if (s.behavior == CreatureBehavior::Patrol && !s.patrolPath.empty())
movementType = 2;
// Editor stores positions in render coords; AzerothCore expects WoW
// canonical (X=north, Y=west). renderToCanonical handles the swap.