REDIVIVUS

Proposals / #625

Recover the Mac timer recycler's game and timer inputs

rejected · by Commit-Will · submitted 2026-11-01, rejected 2026-11-01

The complete318-byte EVENT_RemoveAndRecycleTimer reads incoming ECX game and EDX timer; it has no stack inputs. Timer flags at+2 control deferred removal. Otherwise game+b8 obtains the queue, and the body unlinks the individual48-byte timer from queue/unit chains and returns it to its pool. All13 code calls supply exactly those two register inputs: ten in the five dispatchers, plus ExecuteTimerTrigger, RemoveCustomTimer and FreeAllTimersForUnit. Their complete bodies and timer/head provenance checked. Restore pGame/pTimer with Mac __fastcc, preserving unknown-byte return semantics as registered undefined1. No shared link-field, unit getter/setter, caller, Windows or runtime change.

Changes 1, applied together

  1. Set prototype mac 0x001aad59

    signatureundefined EVENT_RemoveAndRecycleTimer(void)→undefined1 EVENT_RemoveAndRecycleTimer(D2GameStrc * pGame, D2TimerStrc * pTimer)
    conventionunknown→__fastcc