diff options
Diffstat (limited to 'include/field_weather.h')
-rw-r--r-- | include/field_weather.h | 99 |
1 files changed, 68 insertions, 31 deletions
diff --git a/include/field_weather.h b/include/field_weather.h index e99b64344..ed16b2bf6 100644 --- a/include/field_weather.h +++ b/include/field_weather.h @@ -1,20 +1,40 @@ #ifndef GUARD_WEATHER_H #define GUARD_WEATHER_H +#define WEATHER_NONE 0 #define WEATHER_CLOUDS 1 #define WEATHER_RAIN_LIGHT 3 #define WEATHER_SNOW 4 #define WEATHER_RAIN_MED 5 +#define WEATHER_FOG_1 6 +#define WEATHER_ASH 7 +#define WEATHER_FOG_2 9 #define WEATHER_DROUGHT 12 #define WEATHER_RAIN_HEAVY 13 +#define WEATHER_BUBBLES 14 struct Sprite; struct Weather { - struct Sprite *unknown_0[24]; - struct Sprite *snowflakeSprites[0x65]; // snowflakes? - struct Sprite *cloudSprites[3]; + union + { + struct + { + struct Sprite *rainSprites[24]; + struct Sprite *snowflakeSprites[101]; + struct Sprite *cloudSprites[3]; + } s1; + struct + { + u8 filler0[0xA0]; + struct Sprite *fog1Sprites[20]; + struct Sprite *ashSprites[20]; + struct Sprite *fog2Sprites[20]; + struct Sprite *sandstormSprites1[20]; + struct Sprite *sandstormSprites2[5]; + } s2; + } sprites; u8 unknown_200[2][32]; u8 filler_240[0x460-0x240]; u8 unk460[2][32]; @@ -32,56 +52,73 @@ struct Weather u8 unknown_6C9; u8 unknown_6CA; u8 unknown_6CB; - u16 unknown_6CC; - u16 unknown_6CE; + u16 initStep; + u16 finishStep; u8 currWeather; - u8 unknown_6D1; - u8 unknown_6D2; + u8 nextWeather; + u8 weatherGfxLoaded; u8 unknown_6D3; u8 unknown_6D4; u8 unknown_6D5; u16 unknown_6D6; u8 unknown_6D8; u8 unknown_6D9; - u8 unknown_6DA; + u8 rainSpriteCount; u8 unknown_6DB; u8 unknown_6DC; u8 rainStrength; - u8 unknown_6DE; + /*0x6DE*/ u8 cloudSpritesCreated; u8 filler_6DF[1]; u16 unknown_6E0; u16 unknown_6E2; - u8 unknown_6E4; + u8 snowflakeSpriteCount; u8 unknown_6E5; u16 unknown_6E6; - u16 unknown_6E8; + u16 thunderCounter; u8 unknown_6EA; u8 unknown_6EB; u8 unknown_6EC; u8 unknown_6ED; - u16 unknown_6EE; + u16 fog1ScrollPosX; u16 unknown_6F0; u16 unknown_6F2; u8 unknown_6F4[6]; u8 unknown_6FA; - u8 unknown_6FB; - u8 filler_6FC[4]; - u8 unknown_700; - u8 filler_701[0x15]; - u8 unknown_716; - u8 unknown_717; - u8 filler_718[0xc]; - u8 unknown_724; - u8 filler_725[9]; + u8 fog1SpritesCreated; + u16 unknown_6FC; + u16 unknown_6FE; + u8 ashSpritesCreated; + u8 filler_701[3]; + u32 unknown_704; + u32 unknown_708; + u8 filler_70C[2]; + u16 unknown_70E; + u16 unknown_710; + u16 unknown_712; + u16 unknown_714; + u8 sandstormSprites1Created; + u8 sandstormSprites2Created; + u16 unknown_718; + u16 unknown_71A; + u16 unknown_71C; + u16 unknown_71E; + u16 unknown_720; + u16 unknown_722; + u8 fog2SpritesCreated; + u8 filler_725[1]; + u16 unknown_726; + u16 unknown_728; + u16 unknown_72A; + u16 unknown_72C; u8 unknown_72E; u8 filler_72F; - u16 unknown_730; - u16 unknown_732; - u16 unknown_734; - u16 unknown_736; + u16 currBlendEVA; + u16 currBlendEVB; + u16 targetBlendEVA; + u16 targetBlendEVB; u8 unknown_738; u8 unknown_739; - u8 unknown_73A; + u8 blendDelay; u8 filler_73B[0x3C-0x3B]; s16 unknown_73C; s16 unknown_73E; @@ -92,12 +129,12 @@ struct Weather u8 unknown_74E; }; -void sub_807C828(void); +void StartWeather(void); void DoWeatherEffect(u8 effect); void sub_807C988(u8 effect); void sub_807C9B4(u8 effect); -void sub_807C9E4(u8); -void sub_807CA34(u8); +void Task_WeatherInit(u8); +void Task_WeatherMain(u8); void sub_807CAE8(void); void nullsub_38(void); void sub_807CB10(void); @@ -120,7 +157,7 @@ void fade_screen(u8, u8); void sub_807D78C(u8 tag); void sub_807D874(u8); // ... -void sub_807DB64(u8, u8); +void Weather_SetBlendCoeffs(u8, u8); // ... void sub_807DE68(void); // ... @@ -128,7 +165,7 @@ void PlayRainSoundEffect(void); // ... void SetSav1Weather(u32); u8 GetSav1Weather(void); -void sub_80806E4(void); +void SetSav1WeatherFromCurrMapHeader(void); // ... void DoCurrentWeather(void); void sub_8080750(); |