mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-04-15 08:53:51 +00:00
debug: add GO interaction diagnostics at every decision point
Some checks are pending
Build / Build (arm64) (push) Waiting to run
Build / Build (x86-64) (push) Waiting to run
Build / Build (macOS arm64) (push) Waiting to run
Build / Build (windows-arm64) (push) Waiting to run
Build / Build (windows-x86-64) (push) Waiting to run
Security / CodeQL (C/C++) (push) Waiting to run
Security / Semgrep (push) Waiting to run
Security / Sanitizer Build (ASan/UBSan) (push) Waiting to run
Some checks are pending
Build / Build (arm64) (push) Waiting to run
Build / Build (x86-64) (push) Waiting to run
Build / Build (macOS arm64) (push) Waiting to run
Build / Build (windows-arm64) (push) Waiting to run
Build / Build (windows-x86-64) (push) Waiting to run
Security / CodeQL (C/C++) (push) Waiting to run
Security / Semgrep (push) Waiting to run
Security / Sanitizer Build (ASan/UBSan) (push) Waiting to run
Adds [GO-DIAG] WARNING-level logs at: - Right-click dispatch (raypick hit / re-interact with target) - interactWithGameObject entry + all BLOCKED paths - SMSG_SPELL_GO (wasInTimedCast, lastGoGuid, pendingGoGuid state) - SMSG_LOOT_RESPONSE (items, gold, guid) - Raypick candidate GO positions (entity pos + hit center + radius) These logs will pinpoint exactly where the interaction fails: - No GO-DIAG lines = GOs not in entity manager / not visible - Raypick GO pos=(0,0,0) = GO position not set from update block - BLOCKED = guard condition preventing interaction - SPELL_GO wasInTimedCast=false = timer race (already fixed)
This commit is contained in:
parent
5e83d04f4a
commit
169595433a
4 changed files with 34 additions and 3 deletions
|
|
@ -948,6 +948,12 @@ void SpellHandler::handleSpellGo(network::Packet& packet) {
|
|||
|
||||
const bool wasInTimedCast = casting_ && (data.spellId == currentCastSpellId_);
|
||||
|
||||
LOG_WARNING("[GO-DIAG] SPELL_GO: spellId=", data.spellId,
|
||||
" casting=", casting_, " currentCast=", currentCastSpellId_,
|
||||
" wasInTimedCast=", wasInTimedCast,
|
||||
" lastGoGuid=0x", std::hex, owner_.lastInteractedGoGuid_,
|
||||
" pendingGoGuid=0x", owner_.pendingGameObjectInteractGuid_, std::dec);
|
||||
|
||||
casting_ = false;
|
||||
castIsChannel_ = false;
|
||||
currentCastSpellId_ = 0;
|
||||
|
|
@ -955,6 +961,8 @@ void SpellHandler::handleSpellGo(network::Packet& packet) {
|
|||
|
||||
// Gather node looting: re-send CMSG_LOOT now that the cast completed.
|
||||
if (wasInTimedCast && owner_.lastInteractedGoGuid_ != 0) {
|
||||
LOG_WARNING("[GO-DIAG] Sending CMSG_LOOT for GO 0x", std::hex,
|
||||
owner_.lastInteractedGoGuid_, std::dec);
|
||||
owner_.lootTarget(owner_.lastInteractedGoGuid_);
|
||||
owner_.lastInteractedGoGuid_ = 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue