REDIVIVUS

Proposals / #1693

Restore void returns for the four Mac switched-skill output helpers

checked · by eejitgames · submitted 2026-11-08

Mac functions 00192ba8, 00192c44, 00192ce0 and 00192d53 have undefined return types but produce skill IDs and owner GUIDs through two DWORD outputs. Their complete bodies match Windows 00623120, 006231a0, 00623220 and 00623290, whose APIs return void: identical player guards, field offsets, reset stores and assert lines. Mac leaves a unit pointer or owner GUID in EAX; corresponding Windows paths leave output or player-data pointers. These residues do not form a shared result contract. All four known Mac callers consume the outputs and discard the register result. Change only the return types to void; preserve inputs, names and Mac cdecl.

Changes 4, applied together

  1. Set prototype mac 0x00192ba8

    signatureundefined UNITS_GetSwitchRightSkillDataResetRightSkill(D2UnitStrc * pUnit, eD2Skills * pSkillId, int * pOwnerGUID)→void UNITS_GetSwitchRightSkillDataResetRightSkill(D2UnitStrc * pUnit, eD2Skills * pSkillId, int * pOwnerGUID)
    convention__cdecl
  2. Set prototype mac 0x00192c44

    signatureundefined UNITS_GetSwitchLeftSkillDataResetLeftSkill(D2UnitStrc * pUnit, eD2Skills * pSkillId, int * pOwnerGUID)→void UNITS_GetSwitchLeftSkillDataResetLeftSkill(D2UnitStrc * pUnit, eD2Skills * pSkillId, int * pOwnerGUID)
    convention__cdecl
  3. Set prototype mac 0x00192ce0

    signatureundefined UNITS_GetSwitchLeftSkillData(D2UnitStrc * pUnit, eD2Skills * pSkillId, int * pOwnerGUID)→void UNITS_GetSwitchLeftSkillData(D2UnitStrc * pUnit, eD2Skills * pSkillId, int * pOwnerGUID)
    convention__cdecl
  4. Set prototype mac 0x00192d53

    signatureundefined UNITS_GetSwitchRightSkillData(D2UnitStrc * pUnit, eD2Skills * pSkillId, int * pOwnerGUID)→void UNITS_GetSwitchRightSkillData(D2UnitStrc * pUnit, eD2Skills * pSkillId, int * pOwnerGUID)
    convention__cdecl