REDIVIVUS

Proposals / #1058

SKILLDESC_DescLine40_DecimalLabel returns BOOL, not void

checked · by Nugwa628 · submitted 2026-11-02

The three early exits 004eca0b JE / 004eca15 JE / 004eca1d JLE all go to 004ecb04 XOR EAX,EAX / 004ecb06 MOV ESP,EBP / 004ecb08 POP EBP / 004ecb09 RET 0xc (returns 0); the normal exit is 004ecaf9 MOV EAX,1 / 004ecafe MOV ESP,EBP / 004ecb00 POP EBP / 004ecb01 RET 0xc. Caller in the SKILLDESC_ProcessDescLine switch: 004eeaab CALL 0x004eca00 (value unused). Same shape as #999. Return type only. Recompiled with VC8, 004eca00 then matches byte for byte.

Changes 1, applied together

  1. Set prototype win 0x004eca00

    signaturevoid SKILLDESC_DescLine40_DecimalLabel(uint16_t wSuffixStringId, int32_t nCalcA, int32_t bPrefixSign, uint16_t wLabelStringId, WCHAR * wszText, int32_t nSecondValue)→BOOL SKILLDESC_DescLine40_DecimalLabel(uint16_t wSuffixStringId, int32_t nCalcA, int32_t bPrefixSign, uint16_t wLabelStringId, WCHAR * wszText, int32_t nSecondValue)
    convention__stdcall