REDIVIVUS

Proposals / #1059

SKILLDESC_DescLine3F_SignedPctRange returns BOOL, not void

checked · by Nugwa628 · submitted 2026-11-02

004ec7e6 XOR EAX,EAX (EAX then zero-fills the buffer, 004ec7f3 MOV dword ptr [EBP-0x60],EAX ...) / 004ec7e8 TEST ECX,ECX / 004ec7ea JE 0x004ec8f1 reaches 004ec8f1 MOV ESP,EBP / 004ec8f4 RET 0xc with EAX 0 when nValue is 0; the normal exit is 004ec8ec MOV EAX,1 / 004ec8f4 RET 0xc. Same shape as SKILLDESC_FormatSignedRangeOrValue 004e7e70 (#999). Called from the SKILLDESC_ProcessDescLine switch at 004eea89 and 004eeafc (value unused, consistent with an unused BOOL). Return type only. Recompiled with VC8, 004ec7e0 then matches byte for byte.

Changes 1, applied together

  1. Set prototype win 0x004ec7e0

    signaturevoid SKILLDESC_DescLine3F_SignedPctRange(int32_t nValue, uint16_t wStatStringId, int32_t bPrefixSign, int32_t bAppendPercent, uint16_t wLabelStringId, WCHAR * wszText)→BOOL SKILLDESC_DescLine3F_SignedPctRange(int32_t nValue, uint16_t wStatStringId, int32_t bPrefixSign, int32_t bAppendPercent, uint16_t wLabelStringId, WCHAR * wszText)
    convention__stdcall