QUESTLOG_HitTestCloseButton returns bool, not int32_t
The return change is right (both exits set only AL and the one caller tests AL), but the parameters have since been renamed to nPanelY/nPanelX, so the expected signature no longer matches and applying this one would revert those names. Please resubmit as bool QUESTLOG_HitTestCloseButton(int32_t nPanelY, int32_t nPanelX), keeping the ECX/EAX storage.
Both exits set AL only: 004a2625 MOV AL,1 / 004a2627 RET and 004a2628 XOR AL,AL / 004a262a RET (the upper bytes of EAX keep nParam2 - 0xe6 from 004a2610 ADD EAX,0xffffff1a). The one caller tests the byte: 004a3f98 CALL 0x004a2610 / 004a3f9d TEST AL,AL / 004a3f9f JE. The int32 return is Ghidra's CONCAT31 of the stale upper bytes. Return type only; parameter storage (EAX/ECX) unchanged. Recompiled with VC8, 004a2610 then matches byte for byte.
Changes 1, applied together
Set prototype
win 0x004a2610signatureint32_t QUESTLOG_HitTestCloseButton(int32_t nParam1, int32_t nParam2)→bool QUESTLOG_HitTestCloseButton(int32_t nParam1, int32_t nParam2)convention__cdecl