From 76510d58bb66a2e0fb0909330ac0d3ac97c083e1 Mon Sep 17 00:00:00 2001 From: ultima-soul Date: Wed, 19 Dec 2018 08:53:43 -0800 Subject: Matched up to sub_80DBF68, sub_80DBF90 WIP. --- include/contest.h | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'include/contest.h') diff --git a/include/contest.h b/include/contest.h index 73ebb79fa..4ab4d350c 100644 --- a/include/contest.h +++ b/include/contest.h @@ -385,6 +385,14 @@ struct UnknownContestStruct4 u8 unk2_2:1; }; +struct UnknownContestStruct6 +{ + s32 unk0; + s32 unk4; + s32 unk8; + s32 unkC; +}; + struct ContestResourcesField1C { u8 filler_00[0x40]; -- cgit v1.2.3 From 284751e7610f5e9cf266bd0a8bb148464753afa1 Mon Sep 17 00:00:00 2001 From: ultima-soul Date: Sat, 5 Jan 2019 23:02:28 -0800 Subject: Decompile through ClearContestWinnerPicsInContestHall, 10 NONMATCHINGs present. --- include/contest.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'include/contest.h') diff --git a/include/contest.h b/include/contest.h index 4ab4d350c..65db7b0bc 100644 --- a/include/contest.h +++ b/include/contest.h @@ -429,9 +429,13 @@ extern struct ContestResources *gContestResources; #define shared19328 (*gContestResources->field_10) #define shared19338 (*gContestResources->field_14) + + #define shared15800 (gHeap + 0x18000) +#define shared16800 (gHeap + 0x19000) #define shared18000 (*(struct Shared18000 *)(gHeap + 0x1a000)) + extern u32 gContestRngValue; extern u8 gUnknown_02039F26[4]; @@ -445,7 +449,7 @@ bool8 sub_80DE1E8(u8 a); void SetStartledString(u8 a, u8 b); s8 Contest_GetMoveExcitement(u16); u8 sub_80DAE0C(struct Pokemon *); -void sub_80DEDA8(u8); +bool8 sub_80DEDA8(u8); void sub_80DACBC(u8 contestType, u8 rank, bool32 isPostgame); void sub_80DB09C(u8 contestCategory); void sub_80DCE58(u8); -- cgit v1.2.3 From ad59811154093d63343528cccf59a5746dcca934 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 28 Jan 2019 18:13:07 +0100 Subject: Decompile whole contest --- include/contest.h | 108 +++++++++++++++++++++++++++++------------------------- 1 file changed, 58 insertions(+), 50 deletions(-) (limited to 'include/contest.h') diff --git a/include/contest.h b/include/contest.h index 65db7b0bc..35b88698e 100644 --- a/include/contest.h +++ b/include/contest.h @@ -221,22 +221,6 @@ struct ContestPokemon /*0x3C*/ u32 otId; // otId }; // wow -extern struct ContestPokemon gContestMons[4]; -extern u8 gContestMonPartyIndex; -extern u16 gSpecialVar_ContestCategory; -extern u16 gSpecialVar_ContestRank; -extern u8 gUnknown_02039F2B; -extern u8 gNumLinkContestPlayers; -extern u8 gHighestRibbonRank; -extern u8 gContestFinalStandings[4]; -extern u8 gContestPlayerMonIndex; -extern s16 gUnknown_02039F08[4]; -extern s16 gUnknown_02039F10[4]; -extern s16 gUnknown_02039F18[4]; -extern s16 gContestMonConditions[4]; -extern u8 gIsLinkContest; -extern struct ContestWinner gUnknown_02039F3C; - struct Shared18000 { /*0x18000*/ u8 unk18000; @@ -260,10 +244,10 @@ struct ContestStruct_field_18 struct Contest { - /*0x19204*/ u8 playerMoveChoice; - /*0x19205*/ u8 turnNumber; - /*0x19206*/ u8 unk19206[4]; // seems to only be used by an unref function - /*0x1920A*/ u16 unk1920A_0:1; // Task active flags? + /*0x0*/ u8 playerMoveChoice; + /*0x1*/ u8 turnNumber; + /*0x2*/ u8 unk19206[4]; // seems to only be used by an unref function + /*0x6*/ u16 unk1920A_0:1; // Task active flags? u16 unk1920A_1:1; u16 unk1920A_2:1; u16 unk1920A_3:1; @@ -271,18 +255,18 @@ struct Contest u16 unk1920A_5:1; u16 unk1920A_6:1; u16 unk1920A_7:1; - /*0x1920B*/ u16 unk1920B_0:1; + /*0x7*/ u16 unk1920B_0:1; u16 unk1920B_1:1; u16 unk1920B_2:1; - /*0x1920C*/ u8 mainTaskId; - /*0x1920D*/ u8 unk1920D[4]; - /*0x19211*/ u8 unk19211; - /*0x19212*/ u8 unk19212; - /*0x19213*/ u8 filler19213; - /*0x19214*/ u8 unk19214; - /*0x19215*/ u8 unk19215; - /*0x19216*/ u8 unk19216; // sprite ID - /*0x19217*/ s8 applauseLevel; + /*0x8*/ u8 mainTaskId; + /*0x9*/ u8 unk1920D[4]; + /*0xD*/ u8 unk19211; + /*0xE*/ u8 unk19212; + /*0xF*/ u8 filler19213; + /*0x10*/ u8 unk19214; + /*0x11*/ u8 unk19215; + /*0x12*/ u8 unk19216; // sprite ID + /*0x13*/ s8 applauseLevel; /*0x19218*/ u8 unk19218[4]; /*0x1921C*/ u32 unk1921C; // saved RNG value? u16 unk19220[5][4]; // move history? @@ -395,7 +379,12 @@ struct UnknownContestStruct6 struct ContestResourcesField1C { - u8 filler_00[0x40]; + u16 unk0[5]; + s16 unkA; + u8 unkC; + u8 unkD; + u8 unkE_1:1; + u8 unkE_2:1; }; struct ContestResourcesField20 @@ -420,42 +409,62 @@ struct ContestResources void * field_3c; }; -extern struct ContestResources *gContestResources; - #define sContest (*gContestResources->field_0) #define sContestantStatus (gContestResources->field_4) #define shared192D0 (*gContestResources->field_8) #define eContestAI (gContestResources->field_C) #define shared19328 (*gContestResources->field_10) #define shared19338 (*gContestResources->field_14) - - - #define shared15800 (gHeap + 0x18000) #define shared16800 (gHeap + 0x19000) #define shared18000 (*(struct Shared18000 *)(gHeap + 0x1a000)) +extern struct ContestPokemon gContestMons[4]; +extern s16 gContestMonConditions[4]; +extern s16 gUnknown_02039F08[4]; +extern s16 gUnknown_02039F10[4]; +extern s16 gUnknown_02039F18[4]; +extern u8 gContestFinalStandings[4]; +extern u8 gContestMonPartyIndex; +extern u8 gContestPlayerMonIndex; +extern u8 gUnknown_02039F26[4]; +extern u8 gIsLinkContest; +extern u8 gUnknown_02039F2B; +extern u16 gSpecialVar_ContestCategory; +extern u16 gSpecialVar_ContestRank; +extern u8 gNumLinkContestPlayers; +extern u8 gHighestRibbonRank; +extern struct ContestResources *gContestResources; +extern u8 sContestBgCopyFlags; +extern struct ContestWinner gUnknown_02039F3C; extern u32 gContestRngValue; -extern u8 gUnknown_02039F26[4]; -bool8 IsSpeciesNotUnown(u16 species); +// contest.c +void ResetLinkContestBoolean(void); void LoadContestBgAfterMoveAnim(void); +void sub_80D7B24(void); +void sub_80DA8C8(u8 partyIndex); +void sub_80DAB8C(u8 contestType, u8 rank); +void sub_80DACBC(u8 contestType, u8 rank, bool32 isPostgame); +u8 sub_80DAE0C(struct Pokemon *pkmn); +void sub_80DB09C(u8 contestCategory); +bool8 IsSpeciesNotUnown(u16 species); +bool8 Contest_IsMonsTurnDisabled(u8 a); +void sub_80DBED4(void); +void sub_80DCE58(u8 a); void SetContestantEffectStringID(u8 a, u8 b); void SetContestantEffectStringID2(u8 a, u8 b); +void SetStartledString(u8 contestant, u8 jam); void MakeContestantNervous(u8 p); -bool8 Contest_IsMonsTurnDisabled(u8 a); +s8 Contest_GetMoveExcitement(u16 move); bool8 sub_80DE1E8(u8 a); -void SetStartledString(u8 a, u8 b); -s8 Contest_GetMoveExcitement(u16); -u8 sub_80DAE0C(struct Pokemon *); -bool8 sub_80DEDA8(u8); -void sub_80DACBC(u8 contestType, u8 rank, bool32 isPostgame); -void sub_80DB09C(u8 contestCategory); -void sub_80DCE58(u8); -void sub_80DFA08(struct ContestPokemon *mon, int language); -void sub_80DBED4(void); -u8 sub_80DEFA8(u8, u8); +void Contest_PrintTextToBg0WindowAt(u32 windowId, u8 *currChar, s32 x, s32 y, s32 fontId); +void ResetContestLinkResults(void); +bool8 sub_80DEDA8(u8 a); +u8 sub_80DEFA8(u8 a, u8 b); +void ClearContestWinnerPicsInContestHall(void); +void sub_80DFA08(struct ContestPokemon *mon, s32 language); // contest link void sub_81D9DE4(u8 taskId); @@ -468,5 +477,4 @@ bool8 sub_80FC55C(void); bool8 sub_80FC530(u8); u8 sub_80F86E0(u8 *); - #endif //GUARD_CONTEST_H -- cgit v1.2.3 From 363fa9bed25ad58e0b43bf3941903f5e83359f29 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 2 Feb 2019 12:44:00 +0100 Subject: Clean up ram vars --- include/contest.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include/contest.h') diff --git a/include/contest.h b/include/contest.h index 35b88698e..e4391a327 100644 --- a/include/contest.h +++ b/include/contest.h @@ -437,6 +437,8 @@ extern u8 gHighestRibbonRank; extern struct ContestResources *gContestResources; extern u8 sContestBgCopyFlags; extern struct ContestWinner gUnknown_02039F3C; +extern u8 gUnknown_02039F5C; +extern u8 gUnknown_02039F5D; extern u32 gContestRngValue; -- cgit v1.2.3