summaryrefslogtreecommitdiff
path: root/include/field_weather.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/field_weather.h')
-rw-r--r--include/field_weather.h99
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();