diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2021-06-22 15:20:21 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2021-06-22 15:20:21 -0400 |
commit | 6e9821ca07a64ee09129038286aaba3eb1825946 (patch) | |
tree | 903b8f2baba6870cbf5099b8ef5b5480e6e2b7ef /include | |
parent | 54cda0308707ace7055cc8ea6f4e698e6324f911 (diff) |
Split contest code
Diffstat (limited to 'include')
-rw-r--r-- | include/contest.h | 51 | ||||
-rw-r--r-- | include/contest_internal.h | 154 | ||||
-rw-r--r-- | include/ewram.h | 2 |
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)) |