diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/battle.h | 81 | ||||
-rw-r--r-- | include/battle_anim.h | 4 | ||||
-rw-r--r-- | include/battle_util.h | 6 | ||||
-rw-r--r-- | include/contest.h | 118 | ||||
-rw-r--r-- | include/contest_painting.h | 3 | ||||
-rw-r--r-- | include/gba/m4a_internal.h | 65 | ||||
-rw-r--r-- | include/global.tv.h | 4 | ||||
-rw-r--r-- | include/graphics.h | 4 | ||||
-rw-r--r-- | include/list_menu.h | 2 | ||||
-rw-r--r-- | include/party_menu.h | 2 | ||||
-rwxr-xr-x | include/pokedex_cry_screen.h | 2 | ||||
-rw-r--r-- | include/text.h | 5 | ||||
-rw-r--r-- | include/trade.h | 3 | ||||
-rw-r--r-- | include/tv.h | 5 | ||||
-rw-r--r-- | include/util.h | 2 |
15 files changed, 177 insertions, 129 deletions
diff --git a/include/battle.h b/include/battle.h index 73caed16f..94596c75e 100644 --- a/include/battle.h +++ b/include/battle.h @@ -28,10 +28,11 @@ #define B_ACTION_SAFARI_GO_NEAR 7 #define B_ACTION_SAFARI_RUN 8 #define B_ACTION_WALLY_THROW 9 -// The exact purposes of these are unclear -#define B_ACTION_EXEC_SCRIPT 10 // when executing an action +#define B_ACTION_EXEC_SCRIPT 10 +#define B_ACTION_TRY_FINISH 11 +#define B_ACTION_FINISHED 12 + #define B_ACTION_CANCEL_PARTNER 12 // when choosing an action -#define B_ACTION_FINISHED 12 // when executing an action #define B_ACTION_NOTHING_FAINTED 13 // when choosing an action #define B_ACTION_NONE 0xFF @@ -128,36 +129,36 @@ struct UnknownFlags struct DisableStruct { - u32 transformedMonPersonality; - u16 disabledMove; - u16 encoredMove; - u8 protectUses; - u8 stockpileCounter; - u8 substituteHP; - u8 disableTimer:4; - u8 disableTimerStartValue:4; - u8 encoredMovePos; - u8 filler_D; // Unused field. - u8 encoreTimer:4; - u8 encoreTimerStartValue:4; - u8 perishSongTimer:4; - u8 perishSongTimerStartValue:4; - u8 furyCutterCounter; - u8 rolloutTimer:4; - u8 rolloutTimerStartValue:4; - u8 chargeTimer:4; - u8 chargeTimerStartValue:4; - u8 tauntTimer:4; - u8 tauntTimer2:4; - u8 battlerPreventingEscape; - u8 battlerWithSureHit; - u8 isFirstTurn; - u8 unk17; - u8 truantCounter:1; - u8 truantUnknownBit:1; - u8 unk18_a_2:2; - u8 unk18_b:4; - u8 rechargeTimer; + u32 transformedMonPersonality; + u16 disabledMove; + u16 encoredMove; + u8 protectUses; + u8 stockpileCounter; + u8 substituteHP; + u8 disableTimer:4; + u8 disableTimerStartValue:4; + u8 encoredMovePos; + u8 filler_D; // Unused field. + u8 encoreTimer:4; + u8 encoreTimerStartValue:4; + u8 perishSongTimer:4; + u8 perishSongTimerStartValue:4; + u8 furyCutterCounter; + u8 rolloutTimer:4; + u8 rolloutTimerStartValue:4; + u8 chargeTimer:4; + u8 chargeTimerStartValue:4; + u8 tauntTimer:4; + u8 tauntTimer2:4; + u8 battlerPreventingEscape; + u8 battlerWithSureHit; + u8 isFirstTurn; + u8 filler_17; // Unused field. + u8 truantCounter:1; + u8 truantSwitchInHack:1; + u8 filler_18_2:2; // Unused field. + u8 mimickedMoves:4; + u8 rechargeTimer; }; struct ProtectStruct @@ -168,7 +169,7 @@ struct ProtectStruct u32 helpingHand:1; u32 bounceMove:1; u32 stealMove:1; - u32 flag0Unknown:1; + u32 flag0Unknown:1; // Only set to 0 once. u32 prlzImmobility:1; u32 confusionSelfDmg:1; u32 targetNotAffected:1; @@ -178,10 +179,10 @@ struct ProtectStruct u32 loveImmobility:1; u32 usedDisabledMove:1; u32 usedTauntedMove:1; - u32 flag2Unknown:1; + u32 flag2Unknown:1; // Only set to 0 once. Checked in 'WasUnableToUseMove' function. u32 flinchImmobility:1; u32 notFirstStrike:1; - u32 flag_x10:1; + u32 palaceUnableToUseMove:1; u32 physicalDmg; u32 specialDmg; u8 physicalBattlerId; @@ -300,8 +301,8 @@ struct BattleResults u8 playerFaintCounter; // 0x0 u8 opponentFaintCounter; // 0x1 u8 playerSwitchesCounter; // 0x2 - u8 unk3; // 0x3 - u8 unk4; // 0x4 + u8 numHealingItemsUsed; // 0x3 + u8 numRevivesUsed; // 0x4 u8 playerMonWasDamaged:1; // 0x5 u8 usedMasterBall:1; // 0x5 u8 caughtMonBall:4; // 0x5 @@ -441,8 +442,8 @@ struct BattleStruct u8 safariPkblThrowCounter; u8 safariEscapeFactor; u8 safariCatchFactor; - u8 field_7D; // unknown spriteId - u8 field_7E; // unknown spriteId + u8 linkBattleVsSpriteId_V; // The letter "V" + u8 linkBattleVsSpriteId_S; // The letter "S" u8 formToChangeInto; u8 chosenMovePositions[MAX_BATTLERS_COUNT]; u8 stateIdAfterSelScript[MAX_BATTLERS_COUNT]; diff --git a/include/battle_anim.h b/include/battle_anim.h index fc0f603eb..8e8a17675 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -75,6 +75,10 @@ int GetAnimBgAttribute(u8 bgId, u8 attributeId); // battle_anim_80A5C6C.s void sub_80A6450(struct Sprite *sprite); +void sub_80A8AEC(struct Sprite *sprite); +void sub_80A8A6C(struct Sprite *sprite); +void sub_80A8E30(struct Sprite *sprite); +void sub_80A8B64(struct Sprite *sprite); void SetAverageBattlerPositions(u8 battlerId, bool8 respectMonPicOffsets, s16 *x, s16 *y); void DestroySpriteAndMatrix(struct Sprite *sprite); void AnimTranslateLinearSimple(struct Sprite *sprite); diff --git a/include/battle_util.h b/include/battle_util.h index b3fff196e..71bb22a00 100644 --- a/include/battle_util.h +++ b/include/battle_util.h @@ -42,9 +42,9 @@ #define WEATHER_HAS_EFFECT2 ((!ABILITY_ON_FIELD2(ABILITY_CLOUD_NINE) && !ABILITY_ON_FIELD2(ABILITY_AIR_LOCK))) u8 GetBattlerForBattleScript(u8 caseId); -void PressurePPLose(u8 bankDef, u8 bankAtk, u16 move); -void PressurePPLoseOnUsingPerishSong(u8 bankAtk); -void PressurePPLoseOnUsingImprision(u8 bankAtk); +void PressurePPLose(u8 target, u8 attacker, u16 move); +void PressurePPLoseOnUsingPerishSong(u8 attacker); +void PressurePPLoseOnUsingImprision(u8 attacker); void MarkAllBattlersForControllerExec(void); // unused void MarkBattlerForControllerExec(u8 battlerId); void sub_803F850(u8 arg0); diff --git a/include/contest.h b/include/contest.h index 73ebb79fa..e4391a327 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? @@ -385,9 +369,22 @@ struct UnknownContestStruct4 u8 unk2_2:1; }; +struct UnknownContestStruct6 +{ + s32 unk0; + s32 unk4; + s32 unk8; + s32 unkC; +}; + 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 @@ -412,38 +409,64 @@ 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 u32 gContestRngValue; +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 u8 gUnknown_02039F5C; +extern u8 gUnknown_02039F5D; -bool8 IsSpeciesNotUnown(u16 species); +extern u32 gContestRngValue; + +// 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 *); -void 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); @@ -456,5 +479,4 @@ bool8 sub_80FC55C(void); bool8 sub_80FC530(u8); u8 sub_80F86E0(u8 *); - #endif //GUARD_CONTEST_H diff --git a/include/contest_painting.h b/include/contest_painting.h index ca03a72b5..c633c50cc 100644 --- a/include/contest_painting.h +++ b/include/contest_painting.h @@ -13,7 +13,4 @@ enum void sub_812FDA8(int); void CB2_ContestPainting(void); -extern u8 gUnknown_02039F5C; -extern u8 gUnknown_02039F5D; - #endif diff --git a/include/gba/m4a_internal.h b/include/gba/m4a_internal.h index 339a0774e..e2836c6f6 100644 --- a/include/gba/m4a_internal.h +++ b/include/gba/m4a_internal.h @@ -69,38 +69,38 @@ struct ToneData struct CgbChannel { - u8 sf; - u8 ty; - u8 rightVolume; - u8 leftVolume; - u8 at; - u8 de; - u8 su; - u8 re; - u8 ky; - u8 ev; - u8 eg; - u8 ec; - u8 echoVolume; - u8 echoLength; - u8 d1; - u8 d2; - u8 gt; - u8 mk; - u8 ve; - u8 pr; - u8 rp; - u8 d3[3]; - u8 d5; - u8 sg; - u8 n4; - u8 pan; - u8 panMask; - u8 mo; - u8 le; - u8 sw; - u32 fr; - u32 wp; + u8 sf; // 0x0 + u8 ty; // 0x1 + u8 rightVolume; // 0x2 + u8 leftVolume; // 0x3 + u8 at; // 0x4 + u8 de; // 0x5 + u8 su; // 0x6 + u8 re; // 0x7 + u8 ky; // 0x8 + u8 ev; // 0x9 + u8 eg; // 0xA + u8 ec; // 0xB + u8 echoVolume; // 0xC + u8 echoLength; // 0xD + u8 d1; // 0xE + u8 d2; // 0xF + u8 gt; // 0x10 + u8 mk; // 0x11 + u8 ve; // 0x12 + u8 pr; // 0x13 + u8 rp; // 0x14 + u8 d3[3]; // 0x15, 0x16, 0x17 + u8 d5; // 0x18 + u8 sg; // 0x19 + u8 n4; // 0x1A + u8 pan; // 0x1B + u8 panMask; // 0x1C + u8 mo; // 0x1D + u8 le; // 0x1E + u8 sw; // 0x1F + u32 fr; // 0x20 + u32 *wp; u32 cp; u32 tp; u32 pp; @@ -397,6 +397,7 @@ void m4aSoundMode(u32 mode); void MPlayOpen(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track, u8 a3); void CgbSound(void); void CgbOscOff(u8); +void CgbModVol(struct CgbChannel *chan); u32 MidiKeyToCgbFreq(u8, u8, u8); void DummyFunc(void); void MPlayJumpTableCopy(void **mplayJumpTable); diff --git a/include/global.tv.h b/include/global.tv.h index 61f014984..aa151a75c 100644 --- a/include/global.tv.h +++ b/include/global.tv.h @@ -521,13 +521,13 @@ struct GabbyAndTyData /*2bad*/ u8 battleNum; /*2bae*/ u8 battleTookMoreThanOneTurn:1; /*2bae*/ u8 playerLostAMon:1; - /*2bae*/ u8 playerUsedAnItem:1; + /*2bae*/ u8 playerUsedHealingItem:1; /*2bae*/ u8 playerThrewABall:1; /*2bae*/ u8 onAir:1; /*2bae*/ u8 valA_5:3; /*2baf*/ u8 battleTookMoreThanOneTurn2:1; /*2baf*/ u8 playerLostAMon2:1; - /*2baf*/ u8 playerUsedAnItem2:1; + /*2baf*/ u8 playerUsedHealingItem2:1; /*2baf*/ u8 playerThrewABall2:1; /*2baf*/ u8 valB_4:4; }; diff --git a/include/graphics.h b/include/graphics.h index cfe73c6c3..f7eaa394d 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4745,9 +4745,13 @@ extern const u32 gBattleStatMask8_Pal[]; extern const u32 gUnknown_08D9A88C[]; extern const u32 gContestMiscGfx[]; extern const u32 gContestAudienceGfx[]; +extern const u8 gContestApplauseMeterGfx[]; +extern const u8 gContestNextTurnNumbersGfx[]; +extern const u8 gContestNextTurnRandomGfx[]; extern const u32 gUnknown_08C16FA8[]; extern const u32 gUnknown_08C16E90[]; extern const u32 gUnknown_08C17170[]; +extern const u32 gUnknown_08C17980[]; extern const u32 gUnknown_08D95E00[]; extern const u32 gUnknown_08D960D0[]; diff --git a/include/list_menu.h b/include/list_menu.h index 84c38306b..ef23688d8 100644 --- a/include/list_menu.h +++ b/include/list_menu.h @@ -101,7 +101,7 @@ extern struct ListMenuTemplate gMultiuseListMenuTemplate; s32 DoMysteryGiftListMenu(struct WindowTemplate *windowTemplate, struct ListMenuTemplate *listMenuTemplate, u8 arg2, u16 tileNum, u16 palNum); u8 ListMenuInit(struct ListMenuTemplate *listMenuTemplate, u16 scrollOffset, u16 selectedRow); u8 ListMenuInitInRect(struct ListMenuTemplate *listMenuTemplate, struct ListMenuWindowRect *arg1, u16 scrollOffset, u16 selectedRow); -s32 ListMenuHandleInputGetItemId(u8 listTaskId); +s32 ListMenu_ProcessInput(u8 listTaskId); void DestroyListMenuTask(u8 listTaskId, u16 *scrollOffset, u16 *selectedRow); void RedrawListMenu(u8 listTaskId); void ChangeListMenuPals(u8 listTaskId, u8 cursorPal, u8 fillValue, u8 cursorShadowPal); diff --git a/include/party_menu.h b/include/party_menu.h index ae7c414a8..702b4fde1 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -48,6 +48,8 @@ extern MainCallback gPostMenuFieldCallback; extern u8 gSelectedOrderFromParty[4]; extern u8 gUnknown_0203CF00[3]; +extern void (*gUnknown_03006328)(u8, TaskFunc); + extern const u16 gTutorMoves[]; void sub_81B0FCC(u8 slot, u8 b); diff --git a/include/pokedex_cry_screen.h b/include/pokedex_cry_screen.h index 392e80a6d..93f1b02a5 100755 --- a/include/pokedex_cry_screen.h +++ b/include/pokedex_cry_screen.h @@ -10,6 +10,8 @@ struct CryRelatedStruct u8 yPos; }; +extern u8 gDexCryScreenState; + bool8 sub_8145354(struct CryRelatedStruct*, u8); void sub_814545C(u8); void sub_8145534(u16); diff --git a/include/text.h b/include/text.h index d9c7a9a2e..96c5a4507 100644 --- a/include/text.h +++ b/include/text.h @@ -13,10 +13,15 @@ #define CHAR_7 0xA8 #define CHAR_8 0xA9 #define CHAR_9 0xAA +#define CHAR_EXCL_MARK 0xAB #define CHAR_QUESTION_MARK 0xAC #define CHAR_PERIOD 0xAD #define CHAR_HYPHEN 0xAE #define CHAR_ELLIPSIS 0xB0 +#define CHAR_DBL_QUOT_LEFT 0xB1 +#define CHAR_DBL_QUOT_RIGHT 0xB2 +#define CHAR_SGL_QUOT_LEFT 0xB3 +#define CHAR_SGL_QUOT_RIGHT 0xB4 #define CHAR_MALE 0xB5 #define CHAR_FEMALE 0xB6 #define CHAR_CURRENCY 0xB7 diff --git a/include/trade.h b/include/trade.h index 95a10cacf..0c95e1e81 100644 --- a/include/trade.h +++ b/include/trade.h @@ -6,8 +6,11 @@ // Exported type declarations // Exported RAM declarations +extern struct MailStruct gUnknown_020321C0[PARTY_SIZE]; +extern u8 gUnknown_02032298[2]; // Exported ROM declarations +extern const struct WindowTemplate gUnknown_0833900C; s32 sub_807A728(void); void sub_80773AC(void); diff --git a/include/tv.h b/include/tv.h index ea0226815..760d87522 100644 --- a/include/tv.h +++ b/include/tv.h @@ -56,5 +56,10 @@ void SaveRecordedItemPurchasesForTVShow(void); bool8 sub_80EE818(void); void sub_80EE8C8(u16 winStreak, u8 facilityAndMode); void BravoTrainerPokemonProfile_BeforeInterview2(u8 contestStandingPlace); +void ContestLiveUpdates_BeforeInterview_1(u8 a0); +void ContestLiveUpdates_BeforeInterview_2(u8 a0); +void ContestLiveUpdates_BeforeInterview_3(u8 a0); +void ContestLiveUpdates_BeforeInterview_4(u16 a0); +void ContestLiveUpdates_BeforeInterview_5(u8 a0, u8 a1); #endif //GUARD_TV_H diff --git a/include/util.h b/include/util.h index 9d13453c2..56c89359a 100644 --- a/include/util.h +++ b/include/util.h @@ -15,5 +15,7 @@ u16 CalcCRC16WithTable(u8 *data, u32 length); u32 CalcByteArraySum(const u8* data, u32 length); void BlendPalette(u16 palOffset, u16 numEntries, u8 coeff, u16 blendColor); void DoBgAffineSet(struct BgAffineDstData *dest, u32 texX, u32 texY, s16 scrX, s16 scrY, s16 sx, s16 sy, u16 alpha); +void CopySpriteTiles(u8 shape, u8 size, u8 *tiles, u16 *tilemap, u8 *output); + #endif // GUARD_UTIL_H |