REDIVIVUS

Proposals / #1017

QUESTLOG_HitTestOpenButton returns bool, not int32_t

stale · by Nugwa628 · submitted 2026-11-02

The bool return is right (both exits set only AL and the caller tests AL), but the parameters have since been named nPanelY and nPanelX, so the expected signature no longer matches and applying it would put the old names back. Please resubmit with the current parameter names.

Both exits set AL only: 004a26a5 MOV AL,1 / 004a26a7 RET and 004a26a8 XOR AL,AL / 004a26aa RET. The one caller tests the byte: 004a3f82 CALL 0x004a2690 / 004a3f87 TEST AL,AL / 004a3f89 JE. The int32 return is Ghidra's CONCAT31 of stale upper bytes; same shape as QUESTLOG_HitTestCloseButton 004a2610. Return type only; parameter storage unchanged. Recompiled with VC8, 004a2690 then matches byte for byte.

Changes 1, applied together

  1. Set prototype win 0x004a2690

    signatureint32_t QUESTLOG_HitTestOpenButton(int32_t nParam1, int32_t nParam2)→bool QUESTLOG_HitTestOpenButton(int32_t nParam1, int32_t nParam2)
    convention__cdecl