summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2021-06-22 15:20:21 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2021-06-22 15:20:21 -0400
commit6e9821ca07a64ee09129038286aaba3eb1825946 (patch)
tree903b8f2baba6870cbf5099b8ef5b5480e6e2b7ef /include
parent54cda0308707ace7055cc8ea6f4e698e6324f911 (diff)
Split contest code
Diffstat (limited to 'include')
-rw-r--r--include/contest.h51
-rw-r--r--include/contest_internal.h154
-rw-r--r--include/ewram.h2
3 files changed, 178 insertions, 29 deletions
diff --git a/include/contest.h b/include/contest.h
index 8281b76ce..f9efe711f 100644
--- a/include/contest.h
+++ b/include/contest.h
@@ -307,11 +307,9 @@ s8 Contest_GetMoveExcitement(u16);
// Contest Shared EWRAM
-struct Shared18000
+struct ContestTempSave
{
- /*0x18000*/ u8 unk18000;
- /*0x18001*/ u8 filler18001[3];
- /*0x18004*/ u16 unk18004[16][16];
+ /*0x18004*/ u16 cachedWindowPalettes[16][16];
/*0x18204*/ u16 unk18204[0x200];
/*0x18604*/ u16 unk18604[0x200];
/*0x18A04*/ u8 unk18A04[0x800];
@@ -326,10 +324,10 @@ struct Contest
u16 unk1920A_1:1;
u16 unk1920A_2:1;
u16 unk1920A_3:1;
- u16 unk1920A_4:1;
- u16 unk1920A_5:1;
- u16 unk1920A_6:1;
- u16 unk1920A_7:1;
+ u16 waitForJudgeSpeechBubble :1;
+ u16 isShowingApplauseMeter :1;
+ u16 applauseMeterIsMoving :1;
+ u16 animatingAudience :1;
/*0x1920B*/ u16 unk1920B_0:1;
u16 unk1920B_1:1;
u16 unk1920B_2:1;
@@ -353,13 +351,13 @@ struct Contest
struct ContestantStatus
{
- /*0x00*/ s16 appeal1; // move appeal?
- /*0x02*/ s16 appeal2; // final appeal after end of turn, maybe?
+ /*0x00*/ s16 baseAppeal; // move appeal?
+ /*0x02*/ s16 appeal; // final appeal after end of turn, maybe?
/*0x04*/ s16 unk4;
/*0x06*/ u16 currMove;
/*0x08*/ u16 prevMove;
/*0x0A*/ u8 moveCategory;
- /*0x0B*/ u8 unkB_0:2;
+ /*0x0B*/ u8 ranking :2;
u8 unkB_2:2;
u8 moveRepeatCount:3;
u8 noMoreTurns:1; // used a one-time move?
@@ -388,12 +386,12 @@ struct ContestantStatus
/*0x15*/ u8 disappointedRepeat:1;
u8 unk15_1:1;
u8 unk15_2:1;
- u8 unk15_3:1;
+ u8 completedComboFlag :1;
u8 hasJudgesAttention:1;
u8 judgesAttentionWasRemoved:1;
- u8 unk15_6:1;
- /*0x16*/ u8 unk16;
- /*0x17*/ u8 unk17;
+ u8 usedComboMove :1;
+ /*0x16*/ u8 completedCombo;
+ /*0x17*/ u8 comboAppealBonus;
/*0x18*/ u8 unk18;
/*0x19*/ u8 nextTurnOrder; // turn position
/*0x1A*/ u8 attentionLevel; // How much the Pokemon "stood out"
@@ -401,21 +399,21 @@ struct ContestantStatus
};
// possibly the same as UnknownContestStruct3?
-struct UnknownContestStruct4
+struct ContestGfxState
{
u8 unk0; // sprite ID
u8 unk1; // sprite ID
u8 unk2_0:1;
- u8 unk2_1:1;
+ u8 boxBlinking :1;
u8 unk2_2:1;
};
-struct UnknownContestStruct5
+struct ContestExcitement
{
- s8 bits_0; // current move excitement?
+ s8 moveExcitement; // current move excitement?
u8 excitementFrozen:1;
u8 excitementFreezer:3;
- s8 unk2;
+ s8 excitementAppealBonus;
};
struct UnknownContestStruct7
@@ -448,16 +446,13 @@ struct ContestFinalStandings
};
// TODO: Please move these to ewram.h once the defines are settled down and figured out completely.
-#define shared15800 (gSharedMem + 0x15800)
#define shared15DE0 (*(struct ContestWinner *)(gSharedMem + 0x15DE0))
-#define shared16800 (gSharedMem + 0x16800)
-#define shared18000 (*(struct Shared18000 *)(gSharedMem + 0x18000))
-#define shared18004 ((u16 *)(gSharedMem + 0x18004))
+#define eEnableContestDebugging (gSharedMem[0x18000])
+#define eContestTempSave (*(struct ContestTempSave *)(gSharedMem + 0x18004))
#define sContest (*(struct Contest *)(gSharedMem + 0x19204))
#define sContestantStatus ((struct ContestantStatus *)(gSharedMem + 0x19260))
-#define shared192E4 (gSharedMem + 0x192E4)
-#define shared19328 (*(struct UnknownContestStruct5 *)(gSharedMem + 0x19328))
-#define shared19338 ((struct UnknownContestStruct4 *)(gSharedMem + 0x19338))
+#define eContestExcitement (*(struct ContestExcitement *)(gSharedMem + 0x19328))
+#define eContestGfxState ((struct ContestGfxState *)(gSharedMem + 0x19338))
#define shared19348 (*(struct UnknownContestStruct8 *)(gSharedMem + 0x19348))
extern u8 gContestPlayerMonIndex;
@@ -479,7 +474,7 @@ void SetContestantEffectStringID(u8 a, u8 b);
void SetContestantEffectStringID2(u8 a, u8 b);
void MakeContestantNervous(u8 p);
bool8 Contest_IsMonsTurnDisabled(u8 a);
-bool8 sub_80B214C(u8 a);
+bool8 IsContestantAllowedToCombo(u8 a);
void SetStartledString(u8 a, u8 b);
#endif // GUARD_CONTEST_H
diff --git a/include/contest_internal.h b/include/contest_internal.h
new file mode 100644
index 000000000..f268a1690
--- /dev/null
+++ b/include/contest_internal.h
@@ -0,0 +1,154 @@
+#ifndef GUARD_CONTEST_INTERNAL_H
+#define GUARD_CONTEST_INTERNAL_H
+
+void sub_80AB350(void);
+void sub_80AB5D4(u8);
+void sub_80AB604(u8);
+void sub_80AB678(u8);
+void sub_80AB694(u8);
+void sub_80AB6B4(u8);
+u8 sub_80AB70C(u8 *);
+void sub_80AB960(u8);
+void sub_80AB9A0(u8);
+void ContestMainCallback2(void);
+void ContestVBlankCallback(void);
+void sub_80ABB70(u8);
+void sub_80ABC3C(u8);
+void sub_80ABC70(u8);
+void sub_80ABCDC(u8);
+void sub_80ABEA0(u8);
+void sub_80AC0AC(s8);
+void nullsub_17(s8);
+void sub_80AC0C8(u8);
+void sub_80AC15C(u8);
+void sub_80AC188(u8);
+void sub_80AC204(u8);
+void sub_80AC250(u8);
+void sub_80AC284(u8);
+void sub_80AC2CC(u8);
+void sub_80AD8DC(u8);
+void sub_80AD8FC(struct Sprite *);
+void sub_80AD92C(struct Sprite *);
+void sub_80AD960(u8);
+void sub_80ADA1C(u8);
+void sub_80ADA4C(u8);
+void sub_80ADAD8(u8);
+void sub_80ADB04(u8);
+void sub_80ADB48(u8);
+void sub_80ADB88(u8);
+void sub_80ADC10(u8);
+void sub_80ADC4C(u8);
+void sub_80ADC84(u8);
+void sub_80ADCB4(u8);
+void sub_80ADD04(u8);
+void sub_80ADD74(u8);
+void sub_80ADDA4(u8);
+void sub_80ADE54(u8);
+void sub_80ADEAC(u8);
+void sub_80ADEEC(u8);
+void sub_80ADF4C(u8);
+void sub_80ADF98(u8);
+void sub_80ADFD8(u8);
+void sub_80AE010(void);
+void InsertStringDigit(u8 *, s32);
+bool8 IsPlayerLinkLeader(void);
+void __copy_tilemap(void *);
+void PrintContestantTrainerName(u8 contestant);
+void PrintContestantTrainerNameWithColor(u8 contestant, u8 color);
+void PrintContestantMonName(u8 contestant);
+void PrintContestantMonNameWithColor(u8 contestant, u8 color);
+u8 CreateJudgeSprite(void);
+u8 CreateJudgeSpeechBubbleSprite(void);
+u8 CreateContestantSprite(u16, u32, u32);
+void SwapMoveDescAndContestTilemaps(void);
+void PrintContestMoveDescription(u16);
+void sub_80AED58(void);
+bool8 UpdateConditionStars(u8, u8);
+bool8 DrawStatusSymbol(u8);
+void DrawStatusSymbols(void);
+void ContestClearGeneralTextWindow(void);
+u16 GetChosenMove(u8);
+void sub_80AF1B8(void);
+void sub_80AF2A0(u8);
+void sub_80AF2FC(void);
+void sub_80AF3C0(void);
+s16 GetContestantRound2Points(u8 a);
+void DetermineFinalStandings(void);
+bool8 DidContestantPlaceHigher(s32 a, s32 b, struct ContestFinalStandings *c);
+void ContestPrintLinkStandby(void);
+void sub_80AF94C(u8);
+void sub_80AFA5C(void);
+u16 sub_80AFB40(u8);
+s8 sub_80AFB74(s16);
+u8 sub_80AFBA0(s16, s16, u8);
+void sub_80AFC74(u8);
+void sub_80AFE30(void);
+void sub_80AFF10(void);
+bool8 sub_80AFF28(void);
+void sub_80AFF60(struct Sprite *);
+void sub_80AFFE0(bool8);
+void sub_80B0034(void);
+void CreateApplauseMeterSprite(void);
+void nullsub_18(s8);
+void sub_80B0238(struct Sprite *);
+void sub_80B0280(struct Sprite *);
+void sub_80B02A8(struct Sprite *);
+void sub_80B02F4(struct Sprite *);
+void sub_80B0324(void);
+void sub_80B03A8(u8);
+void sub_80B03D8(u8);
+void sub_80B0458(u8);
+void sub_80B0518(void);
+void sub_80B0548(u8);
+void sub_80B05A4(u8);
+void nullsub_19(int);
+void sub_80B05FC(u8);
+void Task_UnusedBlend(u8);
+void StartStopFlashJudgeAttentionEye(u8);
+u8 CreateContestantBoxBlinkSprites(u8);
+void BlinkContestantBox(u8, bool8);
+void SpriteCB_BlinkContestantBox(struct Sprite *);
+void SpriteCB_EndBlinkContestantBox(struct Sprite *);
+void sub_80B0CDC(u8, int);
+void ContestDebugTogglePointTotal(void);
+void ContestDebugDoPrint(void);
+void DrawContestantWindows(void);
+void CalculateAppealMoveImpact(u8 contestant);
+void PrintAppealMoveResultText(u8, u8);
+void ApplyNextTurnOrder(void);
+void DoJudgeSpeechBubble(u8);
+void UpdateApplauseMeter(void);
+u8 StartApplauseOverflowAnimation(void);
+void Task_ApplauseOverflowAnimation(u8);
+void SlideApplauseMeterIn(void);
+void Task_SlideApplauseMeterIn(u8);
+void SlideApplauseMeterOut(void);
+void Task_SlideApplauseMeterOut(u8);
+void ShowAndUpdateApplauseMeter(s8);
+void Task_ShowAndUpdateApplauseMeter(u8);
+void AnimateAudience(void);
+void Task_AnimateAudience(u8);
+void sub_80B1EA8(s8, s8);
+void sub_80B1F4C(u8);
+void sub_80B1FD0(bool8);
+const u8 *GetTurnOrderNumberGfx(u8);
+void sub_80B20C4(void);
+void sub_80B2184(void);
+void sub_80B2280(void);
+void sub_80B237C(u8);
+void sub_80B23BC(u8);
+void sub_80B2400(u8);
+void sub_80B253C(u8);
+void sub_80B25A4(u8);
+void sub_80B25E4(u8);
+void sub_80B26C8(u8);
+u16 SanitizeMove(u16);
+u16 SanitizeSpecies(u16);
+void sub_80B2790(u8);
+void sub_80B28CC(int);
+void sub_80B28F0(u8);
+void sub_80B292C(void);
+void sub_80B2968(void);
+void SelectContestMoveBankTarget(u16);
+
+#endif //GUARD_CONTEST_INTERNAL_H
diff --git a/include/ewram.h b/include/ewram.h
index 00aed71d3..c900f9488 100644
--- a/include/ewram.h
+++ b/include/ewram.h
@@ -199,7 +199,7 @@ extern u8 gSharedMem[];
#define eCableCar2 ((struct CableCarEwramStruct2 *)(gSharedMem + 0x19000))
#define ePokedexView3 (struct PokedexView *)(gSharedMem + 0x19000)
#define eRoulette ((struct Roulette *)(gSharedMem + 0x19000))
-#define shared192D0 (*(struct UnknownContestStruct7 *)(gSharedMem + 0x192D0))
+#define eContestAppealResults (*(struct UnknownContestStruct7 *)(gSharedMem + 0x192D0))
#define eContestAI ((struct ContestAIInfo *)(gSharedMem + 0x192E4))
#define EWRAM_19348 ((u16 *)(gSharedMem + 0x19348))
#define eWRAM_19348Struct ((struct EWRAM_19348_Struct *)(gSharedMem + 0x19348))