REDIVIVUS

Proposals / #624

Recover four inputs in the five Mac timer dispatchers

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

Each complete dispatcher consumes ECX as game, EDX as timer queue, and two stack words as timer head and frame-scheduled flag. All10 calls in EVENT_DispatchAllTimers explicitly supply those inputs; its game+0xb8 queue is allocated as0xa20 bytes, matching D2TimerQueueStrc. Heads are48-byte timer records proven by pool allocation/stride and their type/flags/frame/unit/callback accesses, independent of stale link-pointer metadata. Restore four named inputs and Mac __fastcc for all five zero-argument unknown signatures. Preserve unknown-byte return semantics as registered undefined1; callers ignore EAX. No shared field, callback, caller or Windows edit. Complete bodies, all incoming refs and the sole dispatch caller checked; no execution/build/matching result claimed.

Changes 5, applied together

  1. Set prototype mac 0x001ab24f

    signatureundefined EVENT_DispatchMissileTimers(void)→undefined1 EVENT_DispatchMissileTimers(D2GameStrc * pGame, D2TimerQueueStrc * pTimerQueue, D2TimerStrc * pTimer, BOOL bFrameScheduled)
    conventionunknown→__fastcc
  2. Set prototype mac 0x001ab370

    signatureundefined EVENT_DispatchPlayerTimers(void)→undefined1 EVENT_DispatchPlayerTimers(D2GameStrc * pGame, D2TimerQueueStrc * pTimerQueue, D2TimerStrc * pTimer, BOOL bFrameScheduled)
    conventionunknown→__fastcc
  3. Set prototype mac 0x001ab4ca

    signatureundefined EVENT_DispatchMonsterTimers(void)→undefined1 EVENT_DispatchMonsterTimers(D2GameStrc * pGame, D2TimerQueueStrc * pTimerQueue, D2TimerStrc * pTimer, BOOL bFrameScheduled)
    conventionunknown→__fastcc
  4. Set prototype mac 0x001ab624

    signatureundefined EVENT_DispatchObjectTimers(void)→undefined1 EVENT_DispatchObjectTimers(D2GameStrc * pGame, D2TimerQueueStrc * pTimerQueue, D2TimerStrc * pTimer, BOOL bFrameScheduled)
    conventionunknown→__fastcc
  5. Set prototype mac 0x001ab745

    signatureundefined EVENT_DispatchItemTimers(void)→undefined1 EVENT_DispatchItemTimers(D2GameStrc * pGame, D2TimerQueueStrc * pTimerQueue, D2TimerStrc * pTimer, BOOL bFrameScheduled)
    conventionunknown→__fastcc