REDIVIVUS

Proposals / #1645

Type Mac WEATHER_GetLevelWeatherFlags as void __fastcc (int*, int*)

checked · by KierTaylor · submitted 2026-11-08

Register function: ECX -> EDI and EDX -> ESI are out pointers, both zeroed first; then for the player's level EDI gets LVLTBLS_GetLevelRain != 0 and ESI gets LVLTBLS_GetLevelMud != 0. No stack args, plain RET, EAX is a leftover. Callers pass two stack-local addresses in ECX/EDX (e.g. WEATHER_IsPlayerLevelMud at 0x0006d314/0x0006d317, which then returns the EDX slot).

Changes 1, applied together

  1. Set prototype mac 0x0006d327

    signatureundefined WEATHER_GetLevelWeatherFlags(void)→void WEATHER_GetLevelWeatherFlags(int* pRainOut, int* pMudOut)
    conventionunknown→__fastcc