From 6553903150b6ee262bead5d8c7c5b304bd323fb2 Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Thu, 18 Jan 2018 18:56:44 -0600 Subject: start labeling field_weather --- include/constants/weather.h | 4 ++-- include/field_weather.h | 35 ++++++++++++++++++++++------------- 2 files changed, 24 insertions(+), 15 deletions(-) (limited to 'include') diff --git a/include/constants/weather.h b/include/constants/weather.h index 946316984..1110be7a2 100644 --- a/include/constants/weather.h +++ b/include/constants/weather.h @@ -12,7 +12,7 @@ #define WEATHER_SANDSTORM 8 #define WEATHER_FOG_2 9 #define WEATHER_FOG_3 10 -#define WEATHER_DARK 11 +#define WEATHER_SHADE 11 #define WEATHER_DROUGHT 12 #define WEATHER_RAIN_HEAVY 13 #define WEATHER_BUBBLES 14 @@ -31,7 +31,7 @@ #define COORD_EVENT_WEATHER_FOG_2 7 #define COORD_EVENT_WEATHER_ASH 8 #define COORD_EVENT_WEATHER_SANDSTORM 9 -#define COORD_EVENT_WEATHER_DARK 10 +#define COORD_EVENT_WEATHER_SHADE 10 #define COORD_EVENT_WEATHER_DROUGHT 11 #define COORD_EVENT_WEATHER_ROUTE119_CYCLE 20 #define COORD_EVENT_WEATHER_ROUTE123_CYCLE 21 diff --git a/include/field_weather.h b/include/field_weather.h index 267650a2a..2c56a5a40 100644 --- a/include/field_weather.h +++ b/include/field_weather.h @@ -29,11 +29,11 @@ struct Weather u8 filler4A0[0x6B6-0x4A0]; s8 unknown_6B6; u8 filler_6B7[0xC0-0xB7]; - s8 unknown_6C0; - s8 unknown_6C1; - u8 unknown_6C2; - u8 unknown_6C3; - u16 unknown_6C4; + s8 gammaIndex; + s8 gammaTargetIndex; + u8 gammaStepDelay; + u8 gammaStepFrameCounter; + u16 fadeDestColor; u8 unknown_6C6; u8 unknown_6C7; u8 unknown_6C8; @@ -128,18 +128,27 @@ void nullsub_38(void); void sub_807CB10(void); void sub_807CC24(void); void sub_807CCAC(void); -u8 sub_807CDC4(void); -u8 sub_807CE24(void); -u8 sub_807CE7C(void); +u8 RainSnowShadeBlend_807CDC4(void); +u8 DroughtBlend_807CE24(void); +u8 Fog1Blend_807CE7C(void); void nullsub_39(void); // ASM -void sub_807CEBC(u8, u8, s8); -//void sub_807D1BC(u8, u8, u8, u8, u16); -void sub_807D1BC(u8 a, u8 a2, s8 c, u8 d, u16 e); -void sub_807D304(s8 a, u8 arg2, u16 c); -void sub_807D424(u8, u16); +void BlendSomething_807CEBC(u8, u8, s8); +//void BlendSomething_807D1BC(u8, u8, u8, u8, u16); +void BlendSomething_807D1BC(u8 a, u8 a2, s8 c, u8 d, u16 e); +void BlendSomething_807D304(s8 a, u8 arg2, u16 c); +void BlendSomething_807D424(u8, u16); // ... + +enum +{ + FADE_FROM_BLACK, + FADE_TO_BLACK, + FADE_FROM_WHITE, + FADE_TO_WHITE, +}; + void fade_screen(u8, u8); // ... void sub_807D78C(u8 tag); -- cgit v1.2.3 From 428f712da678b3f5b9256d85c0e3248cacd8e7c2 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Fri, 19 Jan 2018 21:30:16 -0800 Subject: Further document weather --- include/ewram.h | 2 +- include/field_effect.h | 1 - include/field_weather.h | 33 +++++++++++++++------------------ include/global.fieldmap.h | 3 +-- 4 files changed, 17 insertions(+), 22 deletions(-) (limited to 'include') diff --git a/include/ewram.h b/include/ewram.h index 6f42925c1..13e478ff1 100644 --- a/include/ewram.h +++ b/include/ewram.h @@ -8,7 +8,7 @@ extern u8 gSharedMem[]; // regions overlap others but have different definitions. Until some // dupes can be determined to be the same, they will be deliberate // seperated. -#define eWeatherPaletteData (*(struct WeatherPaletteData *)gSharedMem) +#define eDroughtPaletteData (*(struct WeatherPaletteData *)gSharedMem) #define gBattleStruct ((struct BattleStruct *) (gSharedMem + 0x0)) #define ewram0_2 (*(struct Struct2000000 *)(gSharedMem + 0x0)) #define namingScreenData (*(struct NamingScreenData *)(gSharedMem + 0x0)) diff --git a/include/field_effect.h b/include/field_effect.h index bb859074f..4d0e90767 100644 --- a/include/field_effect.h +++ b/include/field_effect.h @@ -103,7 +103,6 @@ void FieldEffectActiveListClear(void); void FieldEffectActiveListAdd(u8 id); void FieldEffectActiveListRemove(u8 id); bool8 FieldEffectActiveListContains(u8 id); -void sub_807DE38(u8 index); void SpriteCB_PokeballGlow(struct Sprite *); void SpriteCB_PokecenterMonitor(struct Sprite *); diff --git a/include/field_weather.h b/include/field_weather.h index 2c56a5a40..15be9229d 100644 --- a/include/field_weather.h +++ b/include/field_weather.h @@ -23,12 +23,8 @@ struct Weather struct Sprite *sandstormSprites2[5]; } s2; } sprites; - u8 unknown_200[2][32]; - u8 filler_240[0x460-0x240]; - u8 unk460[2][32]; - u8 filler4A0[0x6B6-0x4A0]; - s8 unknown_6B6; - u8 filler_6B7[0xC0-0xB7]; + u8 gammaShifts[19][32]; + u8 altGammaShifts[19][32]; s8 gammaIndex; s8 gammaTargetIndex; u8 gammaStepDelay; @@ -47,7 +43,7 @@ struct Weather u8 weatherGfxLoaded; u8 unknown_6D3; u8 unknown_6D4; - u8 unknown_6D5; + u8 altGammaSpritePalIndex; u16 unknown_6D6; u8 unknown_6D8; u8 unknown_6D9; @@ -104,8 +100,8 @@ struct Weather u16 currBlendEVB; u16 targetBlendEVA; u16 targetBlendEVB; - u8 unknown_738; - u8 unknown_739; + u8 blendUpdateCounter; + u8 blendFrameCounter; u8 blendDelay; u8 filler_73B[0x3C-0x3B]; s16 unknown_73C; @@ -113,20 +109,18 @@ struct Weather s16 unknown_740; s16 unknown_742; u8 filler_744[0xD-4]; - s8 unknown_74D; - u8 unknown_74E; + s8 loadDroughtPalsIndex; + u8 loadDroughtPalsOffset; }; void StartWeather(void); -void DoWeatherEffect(u8 effect); +void ChangeWeather(u8 weather); void sub_807C988(u8 effect); void sub_807C9B4(u8 effect); void Task_WeatherInit(u8); void Task_WeatherMain(u8); void sub_807CAE8(void); void nullsub_38(void); -void sub_807CB10(void); -void sub_807CC24(void); void sub_807CCAC(void); u8 RainSnowShadeBlend_807CDC4(void); u8 DroughtBlend_807CE24(void); @@ -135,9 +129,7 @@ void nullsub_39(void); // ASM void BlendSomething_807CEBC(u8, u8, s8); -//void BlendSomething_807D1BC(u8, u8, u8, u8, u16); void BlendSomething_807D1BC(u8 a, u8 a2, s8 c, u8 d, u16 e); -void BlendSomething_807D304(s8 a, u8 arg2, u16 c); void BlendSomething_807D424(u8, u16); // ... @@ -156,8 +148,6 @@ void sub_807D874(u8); // ... void Weather_SetBlendCoeffs(u8, u8); // ... -void sub_807DE68(void); -// ... void PlayRainSoundEffect(void); // ... void SetSav1Weather(u32); @@ -171,6 +161,13 @@ bool8 sub_807D770(void); bool8 sub_807DDFC(void); void SetWeather(u32); void UpdateWeatherPerDay(u16); +void PreservePaletteInWeather(u8 index); +void ResetPreservedPalettesInWeather(void); +extern void ResetDroughtWeatherPaletteLoading(void); +void ResetDroughtWeatherPaletteLoading(void); +bool8 LoadDroughtWeatherPalettes(void); +u8 GetCurrentWeather(void); + extern struct Weather gWeather; diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index a828cf131..30047c677 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -101,8 +101,7 @@ struct WarpEvent struct CoordEvent { s16 x, y; - u8 unk4; - u8 filler_5; + u8 elevation; u16 trigger; u16 index; u8 filler_A[0x2]; -- cgit v1.2.3 From 003ed9293b2c51f0481ed31f0e0459cbecbf757e Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sat, 20 Jan 2018 14:17:03 -0800 Subject: More documentation of field_weather --- include/decoration.h | 2 +- include/field_weather.h | 49 ++++++++++++++++++++++++------------------------- 2 files changed, 25 insertions(+), 26 deletions(-) (limited to 'include') diff --git a/include/decoration.h b/include/decoration.h index 74ca47a3a..c38bd1bcb 100644 --- a/include/decoration.h +++ b/include/decoration.h @@ -160,7 +160,7 @@ extern const struct YesNoFuncTable gUnknown_083ECAA0; extern u8 sub_8134194(u8); // src/decoration_inventory extern bool8 sub_81341D4(void); // src/decoration_inventory extern void sub_8134104(u8); // src/decoration_inventory -extern bool8 sub_807D770(void); +extern bool8 IsWeatherNotFadingIn(void); extern void sub_8109DAC(u8); // src/trader extern void ReshowPlayerPC(u8); // src/player_pc void Task_SecretBasePC_Decoration(u8); diff --git a/include/field_weather.h b/include/field_weather.h index 15be9229d..0bdebf747 100644 --- a/include/field_weather.h +++ b/include/field_weather.h @@ -1,7 +1,15 @@ #ifndef GUARD_WEATHER_H #define GUARD_WEATHER_H -struct Sprite; +#include "sprite.h" + +// Controls how the weather should be changing the screen palettes. +enum { + WEATHER_PAL_STATE_CHANGING_WEATHER, + WEATHER_PAL_STATE_SCREEN_FADING_IN, + WEATHER_PAL_STATE_SCREEN_FADING_OUT, + WEATHER_PAL_STATE_IDLE, +}; struct Weather { @@ -30,10 +38,10 @@ struct Weather u8 gammaStepDelay; u8 gammaStepFrameCounter; u16 fadeDestColor; - u8 unknown_6C6; - u8 unknown_6C7; - u8 unknown_6C8; - u8 unknown_6C9; + u8 palProcessingState; + u8 fadeScreenCounter; + bool8 readyForInit; + u8 taskId; u8 unknown_6CA; u8 unknown_6CB; u16 initStep; @@ -41,8 +49,8 @@ struct Weather u8 currWeather; u8 nextWeather; u8 weatherGfxLoaded; - u8 unknown_6D3; - u8 unknown_6D4; + bool8 weatherChangeComplete; + u8 weatherPicSpritePalIndex; u8 altGammaSpritePalIndex; u16 unknown_6D6; u8 unknown_6D8; @@ -66,8 +74,8 @@ struct Weather u16 fog1ScrollPosX; u16 unknown_6F0; u16 unknown_6F2; - u8 unknown_6F4[6]; - u8 unknown_6FA; + u8 lightenedFogSpritePals[6]; + u8 lightenedFogSpritePalsCount; u8 fog1SpritesCreated; u16 unknown_6FC; u16 unknown_6FE; @@ -121,17 +129,7 @@ void Task_WeatherInit(u8); void Task_WeatherMain(u8); void sub_807CAE8(void); void nullsub_38(void); -void sub_807CCAC(void); -u8 RainSnowShadeBlend_807CDC4(void); -u8 DroughtBlend_807CE24(void); -u8 Fog1Blend_807CE7C(void); -void nullsub_39(void); - -// ASM -void BlendSomething_807CEBC(u8, u8, s8); -void BlendSomething_807D1BC(u8 a, u8 a2, s8 c, u8 d, u16 e); -void BlendSomething_807D424(u8, u16); -// ... +void SetWeatherScreenFadeOut(void); enum { @@ -141,10 +139,10 @@ enum FADE_TO_WHITE, }; -void fade_screen(u8, u8); +void FadeScreen(u8, u8); // ... -void sub_807D78C(u8 tag); -void sub_807D874(u8); +void UpdateSpritePaletteWithWeather(u8 tag); +void ApplyWeatherGammaShiftToPal(u8); // ... void Weather_SetBlendCoeffs(u8, u8); // ... @@ -157,8 +155,8 @@ void SetSav1WeatherFromCurrMapHeader(void); void DoCurrentWeather(void); void sub_8080750(); -bool8 sub_807D770(void); -bool8 sub_807DDFC(void); +bool8 IsWeatherNotFadingIn(void); +bool8 IsWeatherChangeComplete(void); void SetWeather(u32); void UpdateWeatherPerDay(u16); void PreservePaletteInWeather(u8 index); @@ -167,6 +165,7 @@ extern void ResetDroughtWeatherPaletteLoading(void); void ResetDroughtWeatherPaletteLoading(void); bool8 LoadDroughtWeatherPalettes(void); u8 GetCurrentWeather(void); +void LoadCustomWeatherSpritePalette(const u16 *palette); extern struct Weather gWeather; -- cgit v1.2.3 From 4e98ffed3339ca9fd7c4f0915da707aa8b2417ef Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 22 Jan 2018 14:54:37 -0500 Subject: through sub_80C8604 --- include/ewram.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/ewram.h b/include/ewram.h index 13e478ff1..2f1c2d1ab 100644 --- a/include/ewram.h +++ b/include/ewram.h @@ -261,6 +261,7 @@ extern u8 gSharedMem[]; #define eHallOfFame (struct HallOfFame *)(gSharedMem + 0x1E000) #define HALL_OF_FAME_SHEET_0 ((u8 *)(gSharedMem + 0x1E000)) #define ewram1E000_2 (const u8 *)(gSharedMem + 0x1E000) +#define eContestLinkSendBuffer gSharedMem + 0x1E000 #define HALL_OF_FAME_SHEET_1 ((u8 *)(gSharedMem + 0x1E800)) #define ewram_1f000 (*(struct DecoPCPointers *)(gSharedMem + 0x1f000)) #define ewramSavedPokeballsPocket ((struct ItemSlot *)(gSharedMem + 0x1F000)) // saved Pokeballs pocket (for Wally battle) -- cgit v1.2.3 From fc504ce61b8698bc4777bbd37a8766b8c35a5814 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 22 Jan 2018 15:51:57 -0500 Subject: through (nonmatching) sub_80C86A0 --- include/contest.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'include') diff --git a/include/contest.h b/include/contest.h index 6b1f1f520..e8e68f0e6 100644 --- a/include/contest.h +++ b/include/contest.h @@ -271,4 +271,7 @@ struct UnknownContestStruct6 #define shared19338 ((struct UnknownContestStruct4 *)(gSharedMem + 0x19338)) #define shared19348 (*(struct UnknownContestStruct8 *)(gSharedMem + 0x19348)) +extern u8 gContestPlayerMonIndex; +extern u8 gIsLinkContest; + #endif // GUARD_CONTEST_H -- cgit v1.2.3 From 84769240d2002281c7bc274f18aab76fbe908483 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 22 Jan 2018 18:04:04 -0500 Subject: sub_80C88AC --- include/contest.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/contest.h b/include/contest.h index e8e68f0e6..dfa0e38da 100644 --- a/include/contest.h +++ b/include/contest.h @@ -273,5 +273,6 @@ struct UnknownContestStruct6 extern u8 gContestPlayerMonIndex; extern u8 gIsLinkContest; +extern u32 gContestRngValue; #endif // GUARD_CONTEST_H -- cgit v1.2.3 From cbab0f740349cbeece60f2155537c2a9870d2318 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 22 Jan 2018 20:24:02 -0500 Subject: sub_80C8AD0 --- include/contest.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'include') diff --git a/include/contest.h b/include/contest.h index dfa0e38da..a15ca67e6 100644 --- a/include/contest.h +++ b/include/contest.h @@ -274,5 +274,10 @@ struct UnknownContestStruct6 extern u8 gContestPlayerMonIndex; extern u8 gIsLinkContest; extern u32 gContestRngValue; +extern s16 gUnknown_02038678[4]; +extern s16 gUnknown_02038680[4]; +extern u16 gUnknown_02038688[4]; +extern u8 gContestFinalStandings[4]; +extern u8 gUnknown_0203869B; #endif // GUARD_CONTEST_H -- cgit v1.2.3 From 399856bc7ead101718891712dd20dd85e138e640 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 22 Jan 2018 20:30:31 -0500 Subject: sub_80C8C80 --- include/contest.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/contest.h b/include/contest.h index a15ca67e6..f8fceae79 100644 --- a/include/contest.h +++ b/include/contest.h @@ -278,6 +278,7 @@ extern s16 gUnknown_02038678[4]; extern s16 gUnknown_02038680[4]; extern u16 gUnknown_02038688[4]; extern u8 gContestFinalStandings[4]; +extern u8 gUnknown_02038696[4]; extern u8 gUnknown_0203869B; #endif // GUARD_CONTEST_H -- cgit v1.2.3 From c723b341c50df19f8951353a7efd4ab83bf56833 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 22 Jan 2018 20:52:41 -0500 Subject: through sub_80C8F34 --- include/contest.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include') diff --git a/include/contest.h b/include/contest.h index f8fceae79..b0bdd7f61 100644 --- a/include/contest.h +++ b/include/contest.h @@ -274,6 +274,8 @@ struct UnknownContestStruct6 extern u8 gContestPlayerMonIndex; extern u8 gIsLinkContest; extern u32 gContestRngValue; +extern u8 gUnknown_02038696[4]; +extern s16 gUnknown_02038670[4]; extern s16 gUnknown_02038678[4]; extern s16 gUnknown_02038680[4]; extern u16 gUnknown_02038688[4]; -- cgit v1.2.3 From cc0d7a675d5fc85adac3bd94387c54e0eb507495 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 22 Jan 2018 21:01:33 -0500 Subject: Rename some static functions --- include/link.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/link.h b/include/link.h index 367add625..6581fdbba 100644 --- a/include/link.h +++ b/include/link.h @@ -167,7 +167,7 @@ u8 GetMultiplayerId(void); u8 bitmask_all_link_players_but_self(void); bool8 SendBlock(u8, void *, u16); bool8 sub_8007E9C(u8); -bool8 sub_8007ECC(void); +bool8 IsLinkTaskFinished(void); u8 GetBlockReceivedStatus(void); void ResetBlockReceivedFlags(void); void ResetBlockReceivedFlag(u8); -- cgit v1.2.3