Build fixes for Visual Studio 2022 (RelWithDebInfo):
- Fix GetBattlenetAccountId: use player->GetSession()->GetBattlenetAccountId()
(method is on WorldSession, not Player)
- Fix GetHomebind: use player->m_homebind (public member, not a method)
- Fix REACT_HELPER -> REACT_ASSIST (correct enum value)
- Fix DoMeleeAttackIfReady: use me->DoMeleeAttackIfReady() (Unit method)
- Fix DoSpellAttackIfReady: replace with me->DoMeleeAttackIfReady() as
fallback (spell IDs not yet configured)
- Fix InstanceMapScript.h -> ScriptMgr.h include in all 13 delve scripts
- Remove duplicate ScriptMgr.h includes
- Remove Player.cpp death hook (use InstanceScript::OnUnitDeath instead)
- Remove delves_common.h include from Player.cpp (scripts dir not in
game include path)
Verified: worldserver.exe builds successfully with zero errors.
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Signed-off-by: luis <[email protected]>
Add GM commands and polish:
- cs_delve.cpp: comprehensive GM command suite:
.delve info - show delve system status
.delve season - show active season and spells
.delve bountiful - show today's bountiful delves
.delve progress - show account-wide progress (tier, vault, keys)
.delve settier N - set highest unlocked tier
.delve companion info - show companion state
.delve companion level N - set companion level
.delve companion role N - set role (0=DPS, 1=Healer, 2=Tank)
- Player.h/cpp: add SetDelveData() and ClearDelveData() public methods
for update field access (m_values is protected, external code can't
access it directly)
- DelveInstance.cpp: refactored to use Player methods instead of direct
m_values access, removed UpdateFields.h dependency
Data corrections from DB2 deep analysis:
- DelvesDefines.h: add DELVE_DIFFICULTY_ID=208 and DELVE_SCENARIO_TYPE=8
(delves use their own difficulty and scenario type, not generic Solo)
- The Sinkhole: fix primary mapId from 2687 to 2767 (2687 is alt variant)
- delve_template SQL: add verified zoneIDs from AreaTable.db2 for all 13
delves, add comments about alternate variant maps
- Confirmed: MapChallengeMode is NOT used by delves (field stays 0)
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Signed-off-by: luis <[email protected]>
Add instance scripts for all 13 TWW Season 1 delves with verified
map IDs extracted from Map.db2:
Isle of Dorn:
- Earthcrawl Mines (2680), Fungal Folly (2664), Kriegval's Rest (2681)
The Ringing Deeps:
- The Waterworks (2683), The Dread Pit (2684)
Hallowfall:
- Nightfall Sanctum (2686), Mycomancer Cavern (2679),
Skittering Breach (2685), The Sinkhole (2687)
Azj-Kahet:
- The Spiral Weave (2688), Tak-Rethan Abyss (2689),
The Underkeep (2690), Zekvir's Lair (2682)
All scripts extend DelveInstanceScript with boss encounter data,
delve lifecycle hooks, and are registered in the KhazAlgar
script loader. SQL populates delve_template with verified map IDs.
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Signed-off-by: luis <[email protected]>
BotMovementController::MoveToPosition called MotionMaster::Clear() from
the worker thread while Player::Update() on the main thread was also
using the MotionMaster. This data race corrupted the motion type to
invalid value 19, preventing all bot movement.
Removed the Clear() call — MovePoint() handles the active motion
internally without needing an explicit clear.
Also added NeedsFood diagnostic and downgraded ObjectiveTracker logs.
Signed-off-by: luis <[email protected]>