From bdb0628c913fe7f2e77598d6390f8f7d951b1703 Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Mon, 15 Jan 2018 18:58:59 -0500 Subject: vertical scroll indicator labeling and more shop.c --- include/decoration.h | 2 +- include/item_menu.h | 2 +- include/menu_helpers.h | 27 +++++++++++++++++++++------ include/money.h | 2 +- include/shop.h | 18 +++++++++++++----- 5 files changed, 37 insertions(+), 14 deletions(-) (limited to 'include') diff --git a/include/decoration.h b/include/decoration.h index 972e82faf..5e73df071 100644 --- a/include/decoration.h +++ b/include/decoration.h @@ -151,7 +151,7 @@ extern const struct YesNoFuncTable gUnknown_083EC634[]; extern const u8 gUnknown_083EC65A[]; extern const u8 gUnknown_083EC97C[]; extern const u8 gUnknown_083EC984[]; -extern void sub_80B3068(u8); // src/shop +extern void Shop_RunExitSellMenuTask(u8); // src/shop extern const struct YesNoFuncTable gUnknown_083EC95C; extern const struct YesNoFuncTable gUnknown_083EC964; extern const struct YesNoFuncTable gUnknown_083EC9CC; diff --git a/include/item_menu.h b/include/item_menu.h index 29618f347..726d36789 100644 --- a/include/item_menu.h +++ b/include/item_menu.h @@ -27,7 +27,7 @@ void CleanUpItemMenuMessage(u8); void CleanUpOverworldMessage(u8); void ExecuteItemUseFromBlackPalette(void); void sub_80A5D04(void); -void sub_80A6300(void); +void ItemMenu_LoadSellMenu(void); void sub_80A68CC(); void sub_80A6A30(void); bool32 sub_80A6D1C(void); diff --git a/include/menu_helpers.h b/include/menu_helpers.h index 993d698bd..a1c872c73 100644 --- a/include/menu_helpers.h +++ b/include/menu_helpers.h @@ -9,7 +9,22 @@ struct YesNoFuncTable void (*noFunc)(u8); }; -void sub_80F9020(void); +// SetVerticalScrollIndicators enums +enum +{ + TOP_ARROW, + BOTTOM_ARROW, + LEFT_ARROW, // Bag arrows + RIGHT_ARROW +}; + +enum +{ + VISIBLE, + INVISIBLE +}; + +void ClearBGTilemapBuffers(void); void DisplayItemMessageOnField(u8, const u8 *, TaskFunc, u16); void DoYesNoFuncWithChoice(u8, const struct YesNoFuncTable *); void sub_80F914C(u8, const struct YesNoFuncTable *); @@ -19,21 +34,21 @@ bool8 sub_80F92F4(u16); bool8 sub_80F931C(u16); bool8 sub_80F9344(void); void sub_80F9368(void); -void sub_80F9438(void); -void sub_80F944C(void); +void ClearVideoCallbacks(void); +void ClearVerticalScrollIndicatorPalettes(void); void sub_80F9480(u8 *, u8); void sub_80F94A4(u8, u8 *, s16, s16); void sub_80F94F8(u8 *); void sub_80F9520(u8 *, u8); void CreateVerticalScrollIndicators(u8, u16, u16); -void sub_80F979C(u8, bool8); +void SetVerticalScrollIndicators(u8, bool8); void DestroyVerticalScrollIndicator(u8); void LoadScrollIndicatorPalette(void); void BuyMenuFreeMemory(void); -void sub_80F98A4(u8); +void StopVerticalScrollIndicators(u8); void StartVerticalScrollIndicators(u8); void sub_80F98DC(u8); void PauseVerticalScrollIndicator(u8); -void sub_80F9988(u8, u8); +void SetVerticalScrollIndicatorPriority(u8, u8); #endif // GUARD_MENU_HELPERS_H diff --git a/include/money.h b/include/money.h index 9f4ef71bc..e3a3f898d 100644 --- a/include/money.h +++ b/include/money.h @@ -7,7 +7,7 @@ void RemoveMoney(u32 *, u32); void GetMoneyAmountText(u8 *buffer, u32 arg1, u8 arg2); void PrintMoneyAmount(u32 arg0, u8 arg1, u8 x, u8 y); void sub_80B7AEC(u32, u8 left, u8 top); -void sub_80B7B34(u8, u8, int); +void Draw10000Sprite(u8, u8, int); void UpdateMoneyWindow(u32, u8, u8); void OpenMoneyWindow(u32, u8, u8); void CloseMoneyWindow(u8, u8); diff --git a/include/shop.h b/include/shop.h index b785ca764..8ab24c724 100644 --- a/include/shop.h +++ b/include/shop.h @@ -17,6 +17,14 @@ enum ANIM_NUM }; +// shop options +enum +{ + BUY, + SELL, + EXIT +}; + struct MartInfo { /* 0x0 */ void (* callback) (void); @@ -31,18 +39,18 @@ struct MartInfo void sub_80B2E38(u8); void HandleShopMenuQuit(u8); -void sub_80B2FA0(u8); +void Shop_FadeAndRunBuySellCallback(u8); void BuyMenuDrawGraphics(void); void sub_80B3240(void); void sub_80B3270(void); -void BuyMenuDrawMapGraphics(void); +void Shop_DrawViewport(void); void sub_80B3764(int, int); -void sub_80B37EC(void); +void Shop_PrintItemDesc(void); void sub_80B40E8(u8); void CreatePokemartMenu(u16 *); void CreateDecorationShop1Menu(u16 *); void CreateDecorationShop2Menu(u16 *); -void sub_80B356C(void); -void sub_80B368C(void); +void Shop_LoadViewportObjects(void); +void Shop_AnimViewportObjects(void); #endif // GUARD_SHOP_H -- cgit v1.2.3 From 1771d7761e4ff1406a8ffe3da4e636d633ad3135 Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Mon, 15 Jan 2018 21:26:15 -0500 Subject: split out fldeff_escalator and label shop.c more --- include/shop.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'include') diff --git a/include/shop.h b/include/shop.h index 8ab24c724..63dd6cc81 100644 --- a/include/shop.h +++ b/include/shop.h @@ -37,16 +37,16 @@ struct MartInfo /* 0xD */ u8 curItemCount; // if you are selling an item, this is the count of the current item stack you have. }; -void sub_80B2E38(u8); -void HandleShopMenuQuit(u8); +void Task_DoBuySellMenu(u8); +void Task_HandleShopMenuQuit(u8); void Shop_FadeAndRunBuySellCallback(u8); void BuyMenuDrawGraphics(void); void sub_80B3240(void); -void sub_80B3270(void); +void DrawFirstMartScrollIndicators(void); void Shop_DrawViewport(void); -void sub_80B3764(int, int); +void Shop_InitMenus(int, int); void Shop_PrintItemDesc(void); -void sub_80B40E8(u8); +void Shop_DoCursorAction(u8); void CreatePokemartMenu(u16 *); void CreateDecorationShop1Menu(u16 *); void CreateDecorationShop2Menu(u16 *); -- cgit v1.2.3 From 7860ce8dbe3d4abca3a8d3fb336705e3d09b32e0 Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Tue, 16 Jan 2018 14:00:52 -0500 Subject: split data2a and make shop.c stuff static --- include/decoration.h | 1 - include/shop.h | 19 ++++--------------- 2 files changed, 4 insertions(+), 16 deletions(-) (limited to 'include') diff --git a/include/decoration.h b/include/decoration.h index 5e73df071..74ca47a3a 100644 --- a/include/decoration.h +++ b/include/decoration.h @@ -151,7 +151,6 @@ extern const struct YesNoFuncTable gUnknown_083EC634[]; extern const u8 gUnknown_083EC65A[]; extern const u8 gUnknown_083EC97C[]; extern const u8 gUnknown_083EC984[]; -extern void Shop_RunExitSellMenuTask(u8); // src/shop extern const struct YesNoFuncTable gUnknown_083EC95C; extern const struct YesNoFuncTable gUnknown_083EC964; extern const struct YesNoFuncTable gUnknown_083EC9CC; diff --git a/include/shop.h b/include/shop.h index 63dd6cc81..76b68d0e9 100644 --- a/include/shop.h +++ b/include/shop.h @@ -37,20 +37,9 @@ struct MartInfo /* 0xD */ u8 curItemCount; // if you are selling an item, this is the count of the current item stack you have. }; -void Task_DoBuySellMenu(u8); -void Task_HandleShopMenuQuit(u8); -void Shop_FadeAndRunBuySellCallback(u8); -void BuyMenuDrawGraphics(void); -void sub_80B3240(void); -void DrawFirstMartScrollIndicators(void); -void Shop_DrawViewport(void); -void Shop_InitMenus(int, int); -void Shop_PrintItemDesc(void); -void Shop_DoCursorAction(u8); -void CreatePokemartMenu(u16 *); -void CreateDecorationShop1Menu(u16 *); -void CreateDecorationShop2Menu(u16 *); -void Shop_LoadViewportObjects(void); -void Shop_AnimViewportObjects(void); +void Shop_CreatePokemartMenu(u16 *); +void Shop_CreateDecorationShop1Menu(u16 *); +void Shop_CreateDecorationShop2Menu(u16 *); +void Shop_RunExitSellMenuTask(u8 taskId); #endif // GUARD_SHOP_H -- cgit v1.2.3 From 3ab6bf09d8d6bb86e83033e8a7138d02e3917c55 Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Wed, 17 Jan 2018 00:29:25 -0500 Subject: split out crash.c --- include/matsuda_debug_menu.h | 1 - include/pokedex.h | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) (limited to 'include') diff --git a/include/matsuda_debug_menu.h b/include/matsuda_debug_menu.h index 60f2dc48c..ad877a014 100644 --- a/include/matsuda_debug_menu.h +++ b/include/matsuda_debug_menu.h @@ -3,7 +3,6 @@ #define BIT(n) (1 << (n)) -void sub_80AB184(void); void sub_80AA280(u8); void sub_80AA5E8(u8); void sub_80AA658(u8); diff --git a/include/pokedex.h b/include/pokedex.h index d8416889a..73877bead 100644 --- a/include/pokedex.h +++ b/include/pokedex.h @@ -23,6 +23,6 @@ s8 GetSetPokedexFlag(u16, u8); u16 GetNationalPokedexCount(u8); u16 GetHoennPokedexCount(u8); bool8 CompletedHoennPokedex(void); -u16 sub_8090FF4(void); +bool16 CompletedNationalPokedex(void); #endif // GUARD_POKEDEX_H -- cgit v1.2.3 From f07cdb4c9723bdbb1fcdbbe622d39936ae5b532f Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Wed, 17 Jan 2018 17:47:46 -0500 Subject: use Dma Large loops for every while(1) Dma loop --- include/gba/macro.h | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) (limited to 'include') diff --git a/include/gba/macro.h b/include/gba/macro.h index dcad009e1..d39d10738 100644 --- a/include/gba/macro.h +++ b/include/gba/macro.h @@ -167,4 +167,57 @@ #define DmaFill16Defvars(dmaNum, fillval, dest, size) DmaFillDefvars(dmaNum, fillval, dest, size, 16) #define DmaFill32Defvars(dmaNum, fillval, dest, size) DmaFillDefvars(dmaNum, fillval, dest, size, 32) +// from pokeemerald +// Maximum amount of data we will transfer in one operation +#define MAX_DMA_BLOCK_SIZE 0x1000 + +#define MAX_DMA_REQUESTS 128 + +#define DMA_REQUEST_COPY32 1 +#define DMA_REQUEST_FILL32 2 +#define DMA_REQUEST_COPY16 3 +#define DMA_REQUEST_FILL16 4 + +#define Dma3CopyLarge_(src, dest, size, bit) \ +{ \ + const void *_src = src; \ + void *_dest = dest; \ + u32 _size = size; \ + while (1) \ + { \ + if (_size <= MAX_DMA_BLOCK_SIZE) \ + { \ + DmaCopy##bit(3, _src, _dest, _size); \ + break; \ + } \ + DmaCopy##bit(3, _src, _dest, MAX_DMA_BLOCK_SIZE); \ + _src += MAX_DMA_BLOCK_SIZE; \ + _dest += MAX_DMA_BLOCK_SIZE; \ + _size -= MAX_DMA_BLOCK_SIZE; \ + } \ +} + +#define Dma3CopyLarge16_(src, dest, size) Dma3CopyLarge_(src, dest, size, 16) +#define Dma3CopyLarge32_(src, dest, size) Dma3CopyLarge_(src, dest, size, 32) + +#define Dma3FillLarge_(value, dest, size, bit) \ +{ \ + void *_dest = dest; \ + u32 _size = size; \ + while (1) \ + { \ + if (_size <= MAX_DMA_BLOCK_SIZE) \ + { \ + DmaFill##bit(3, value, _dest, _size); \ + break; \ + } \ + DmaFill##bit(3, value, _dest, MAX_DMA_BLOCK_SIZE); \ + _dest += MAX_DMA_BLOCK_SIZE; \ + _size -= MAX_DMA_BLOCK_SIZE; \ + } \ +} + +#define Dma3FillLarge16_(value, dest, size) Dma3FillLarge_(value, dest, size, 16) +#define Dma3FillLarge32_(value, dest, size) Dma3FillLarge_(value, dest, size, 32) + #endif // GUARD_GBA_MACRO_H -- cgit v1.2.3 From 723a50665a6417d971d183187dd9002c27517084 Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Wed, 17 Jan 2018 23:45:37 -0500 Subject: remove unnecessary padding --- include/pokemon.h | 2 -- 1 file changed, 2 deletions(-) (limited to 'include') diff --git a/include/pokemon.h b/include/pokemon.h index 8f1b46387..6e3e15404 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -258,7 +258,6 @@ struct BoxPokemon /*0x13*/ u8 isBadEgg:1; u8 hasSpecies:1; u8 isEgg:1; - u8 unused:5; /*0x14*/ u8 otName[OT_NAME_LENGTH]; /*0x1B*/ u8 markings; /*0x1C*/ u16 checksum; @@ -419,7 +418,6 @@ struct BattleMove u8 target; s8 priority; u8 flags; - u8 pad[3]; }; #define FLAG_MAKES_CONTACT 0x1 -- cgit v1.2.3 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 a0cb6c72b6ba7c1b2d2464f3c1ac04354d5d05de Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Thu, 18 Jan 2018 21:18:06 -0500 Subject: shop enum --- include/shop.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/shop.h b/include/shop.h index 76b68d0e9..80602e26c 100644 --- a/include/shop.h +++ b/include/shop.h @@ -20,9 +20,9 @@ enum // shop options enum { - BUY, - SELL, - EXIT + SHOP_BUY, + SHOP_SELL, + SHOP_EXIT }; struct MartInfo -- 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