Recover the Mac obstruction setter's paired identity and float API
Mac002e9049 declares undefined cdecl(int,undefined4), but its body reads a sample pointer and a float from two DWORD stack slots, stores the float, and returns no result. Both callers supply those values. Pair with Windows00515a90 by the same0x345 null assertion, float field write, reset/channel caller roles and paired volume-consumer dataflow. Recover void cdecl(D2SoundSmpStrc*,float) and the free default function name as SOUNDSMP_SetEaxObstruction. Windows additionally updates its optional EAX interface; Mac only stores the value used in software attenuation. Retain Mac stack ABI and chosen pSoundSmp; name only default param_2. The old no-Windows-twin plate is superseded by this evidence. The separate Mac sample layout repair remains documented in1402; this API edit does not compact fields. No build/runtime improvement is claimed.
Changes 2, applied together
Set prototype
mac 0x002e9049signatureundefined FUN_002e9049(int pSoundSmp, undefined4 param_2)→void FUN_002e9049(D2SoundSmpStrc * pSoundSmp, float fObstruction)convention__cdeclRename function
mac 0x002e9049nameFUN_002e9049→SOUNDSMP_SetEaxObstruction