REDIVIVUS

Proposals / #1018

Recover the full Boolean join/create state accessors

applied · by Commit-Will · submitted 2026-11-02, applied 2026-11-02

Ghidra v1846 · 3cfe190

Both join/create flag families have a complete four-byte statecopy and independent0/1 lifecycles: all eight real settercalls use literal0 or1, and all four real gettercalls test fullEAX. Recover two Macgetter BOOL results and type the four existing setter slots as BOOL; Windows getters alreadyBOOL remain read-only. Preserve selected names, existing voidreturns/slots/conventions and getterzeroformals. All321Mac/203originalWindows codebytes and complete caller/field-ref routes verified. No global/callback/packet/model or behavior change, sibling-name inference, initial-memory/hidden-write invariant, runtime/build or matching gain.

Changes 6, applied together

  1. Set prototype mac 0x002ccbf1

    signatureundefined4 MCPSTATE_GetJoinGameSuccess(void)→BOOL MCPSTATE_GetJoinGameSuccess(void)
    convention__cdecl
  2. Retype variable mac 0x002ccc02 Stack[0x4]

    typeundefined4→BOOL
  3. Retype variable win 0x00449c60 Stack[0x4]

    typeundefined4→BOOL
  4. Set prototype mac 0x002ccc16

    signatureundefined4 MCPSTATE_GetCreateGameSuccess(void)→BOOL MCPSTATE_GetCreateGameSuccess(void)
    convention__cdecl
  5. Retype variable mac 0x002ccc27 Stack[0x4]

    typeundefined4→BOOL
  6. Retype variable win 0x00449c80 Stack[0x4]

    typeundefined4→BOOL