diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/battle_main.h | 8 | ||||
-rw-r--r-- | include/confetti_util.h | 33 | ||||
-rw-r--r-- | include/constants/contest.h | 17 | ||||
-rw-r--r-- | include/constants/field_specials.h | 5 | ||||
-rw-r--r-- | include/constants/flags.h | 8 | ||||
-rw-r--r-- | include/constants/global.h | 3 | ||||
-rw-r--r-- | include/constants/items.h | 2 | ||||
-rw-r--r-- | include/constants/opponents.h | 1 | ||||
-rw-r--r-- | include/constants/vars.h | 1 | ||||
-rw-r--r-- | include/contest.h | 5 | ||||
-rw-r--r-- | include/contest_link.h (renamed from include/contest_link_80FC4F4.h) | 6 | ||||
-rw-r--r-- | include/contest_util.h (renamed from include/contest_link_80F57C4.h) | 10 | ||||
-rw-r--r-- | include/event_data.h | 3 | ||||
-rw-r--r-- | include/global.h | 13 | ||||
-rw-r--r-- | include/graphics.h | 32 | ||||
-rw-r--r-- | include/hall_of_fame.h | 1 | ||||
-rw-r--r-- | include/item_menu.h | 5 | ||||
-rw-r--r-- | include/rom_81520A8.h | 33 | ||||
-rw-r--r-- | include/strings.h | 2 |
19 files changed, 107 insertions, 81 deletions
diff --git a/include/battle_main.h b/include/battle_main.h index e04db17bb..217b10b39 100644 --- a/include/battle_main.h +++ b/include/battle_main.h @@ -57,15 +57,15 @@ u32 sub_80397C4(u32 setId, u32 tableId); void SpriteCb_WildMon(struct Sprite *sprite); void SpriteCallbackDummy_2(struct Sprite *sprite); void SpriteCB_FaintOpponentMon(struct Sprite *sprite); -void sub_8039AD8(struct Sprite *sprite); -void sub_8039B2C(struct Sprite *sprite); -void sub_8039B58(struct Sprite *sprite); +void SpriteCb_ShowAsMoveTarget(struct Sprite *sprite); +void SpriteCb_HideAsMoveTarget(struct Sprite *sprite); +void SpriteCb_OpponentMonFromBall(struct Sprite *sprite); void sub_8039BB4(struct Sprite *sprite); void sub_80105DC(struct Sprite *sprite); void sub_8039C00(struct Sprite *sprite); void DoBounceEffect(u8 battlerId, u8 b, s8 c, s8 d); void EndBounceEffect(u8 battlerId, bool8 b); -void sub_8039E44(struct Sprite *sprite); +void SpriteCb_PlayerMonFromBall(struct Sprite *sprite); void sub_8039E60(struct Sprite *sprite); void sub_8039E84(struct Sprite *sprite); void sub_8039E9C(struct Sprite *sprite); diff --git a/include/confetti_util.h b/include/confetti_util.h new file mode 100644 index 000000000..ecc05a220 --- /dev/null +++ b/include/confetti_util.h @@ -0,0 +1,33 @@ +#ifndef GUARD_CONFETTI_UTIL_H +#define GUARD_CONFETTI_UTIL_H + +struct ConfettiUtil +{ + struct OamData oam; + s16 x; + s16 y; + s16 xDelta; + s16 yDelta; + u16 tileTag; + u16 palTag; + u16 tileNum; + u8 id; + u8 filler; + u8 animNum; + u8 active:1; + u8 allowUpdates:1; + u8 dummied:1; + u8 priority:2; + s16 data[8]; + void (*callback)(struct ConfettiUtil *); +}; + +bool32 ConfettiUtil_Init(u8 count); +bool32 ConfettiUtil_Free(void); +bool32 ConfettiUtil_Update(void); +u8 ConfettiUtil_SetCallback(u8 id, void (*func)(struct ConfettiUtil *)); +u8 ConfettiUtil_SetData(u8 id, u8 dataArrayId, s16 dataValue); +u8 ConfettiUtil_AddNew(const struct OamData *oam, u16 tileTag, u16 palTag, s16 x, s16 y, u8 animNum, u8 priority); +u8 ConfettiUtil_Remove(u8 id); + +#endif // GUARD_CONFETTI_UTIL_H diff --git a/include/constants/contest.h b/include/constants/contest.h index 186c56e2b..2de2866a3 100644 --- a/include/constants/contest.h +++ b/include/constants/contest.h @@ -29,6 +29,23 @@ #define CONTEST_CATEGORY_TOUGH 4 #define CONTEST_CATEGORIES_COUNT 5 +#define CONTEST_WINNER_ARTIST 0 // Winner shown by the artist, painting not necessarily saved +#define CONTEST_WINNER_HALL_1 1 +#define CONTEST_WINNER_HALL_2 2 +#define CONTEST_WINNER_HALL_3 3 +#define CONTEST_WINNER_HALL_4 4 +#define CONTEST_WINNER_HALL_5 5 +#define CONTEST_WINNER_HALL_6 6 +#define NUM_CONTEST_HALL_WINNERS 6 +#define CONTEST_WINNER_7 7 +#define CONTEST_WINNER_8 8 +#define CONTEST_WINNER_MUSEUM_COOL 9 +#define CONTEST_WINNER_MUSEUM_BEAUTY 10 +#define CONTEST_WINNER_MUSEUM_CUTE 11 +#define CONTEST_WINNER_MUSEUM_SMART 12 +#define CONTEST_WINNER_MUSEUM_TOUGH 13 +// NUM_CONTEST_WINNERS in constants/global.h + #define CANT_ENTER_CONTEST 0 #define CAN_ENTER_CONTEST_EQUAL_RANK 1 #define CAN_ENTER_CONTEST_HIGH_RANK 2 diff --git a/include/constants/field_specials.h b/include/constants/field_specials.h index a2dc117e4..a01151378 100644 --- a/include/constants/field_specials.h +++ b/include/constants/field_specials.h @@ -75,4 +75,9 @@ #define FANCLUB_MEMBER7 14 #define FANCLUB_MEMBER8 15 +#define FANCOUNTER_DEFEATED_DRAKE 0 +#define FANCOUNTER_BATTLED_AT_BASE 1 +#define FANCOUNTER_FINISHED_CONTEST 2 +#define FANCOUNTER_USED_BATTLE_TOWER 3 + #endif // GUARD_CONSTANTS_FIELD_SPECIALS_H diff --git a/include/constants/flags.h b/include/constants/flags.h index 4dd18880f..a9c7abae1 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -1573,7 +1573,9 @@ #define FLAG_UNUSED_0x91F (SYSTEM_FLAGS + 0xBF) // Unused Flag // Daily Flags -#define DAILY_FLAGS_START 0x920 +// These flags are cleared once per day +// The start and end are byte-aligned because the flags are cleared in byte increments +#define DAILY_FLAGS_START (FLAG_UNUSED_0x91F + (8 - FLAG_UNUSED_0x91F % 8)) #define FLAG_UNUSED_0x920 (DAILY_FLAGS_START + 0x0) // Unused Flag #define FLAG_DAILY_CONTEST_LOBBY_RECEIVED_BERRY (DAILY_FLAGS_START + 0x1) #define FLAG_DAILY_SECRET_BASE (DAILY_FLAGS_START + 0x2) @@ -1639,7 +1641,9 @@ #define FLAG_UNUSED_0x95D (DAILY_FLAGS_START + 0x3D) // Unused Flag #define FLAG_UNUSED_0x95E (DAILY_FLAGS_START + 0x3E) // Unused Flag #define FLAG_UNUSED_0x95F (DAILY_FLAGS_START + 0x3F) // Unused Flag -#define DAILY_FLAGS_END FLAG_UNUSED_0x95F +#define DAILY_FLAGS_END (FLAG_UNUSED_0x95F + (7 - FLAG_UNUSED_0x95F % 8)) + +#define FLAGS_COUNT (DAILY_FLAGS_END + 1) // Special Flags (Stored in EWRAM (gSpecialFlags), not in the SaveBlock) #define SPECIAL_FLAGS_START 0x4000 diff --git a/include/constants/global.h b/include/constants/global.h index b86e29a29..98f15e7dc 100644 --- a/include/constants/global.h +++ b/include/constants/global.h @@ -34,8 +34,6 @@ #define POKEBLOCKS_COUNT 40 #define OBJECT_EVENTS_COUNT 16 #define BERRY_TREES_COUNT 128 -#define FLAGS_COUNT 300 -#define VARS_COUNT 256 #define MAIL_COUNT 16 #define SECRET_BASES_COUNT 20 #define TV_SHOWS_COUNT 25 @@ -52,6 +50,7 @@ #define APPRENTICE_COUNT 4 #define APPRENTICE_MAX_QUESTIONS 9 #define MAX_REMATCH_ENTRIES 100 // only REMATCH_TABLE_ENTRIES (78) are used +#define NUM_CONTEST_WINNERS 13 #define UNION_ROOM_KB_ROW_COUNT 10 #define PYRAMID_BAG_ITEMS_COUNT 10 diff --git a/include/constants/items.h b/include/constants/items.h index d795194cf..9496a4c61 100644 --- a/include/constants/items.h +++ b/include/constants/items.h @@ -17,6 +17,8 @@ #define ITEM_LUXURY_BALL 11 #define ITEM_PREMIER_BALL 12 +#define LAST_BALL ITEM_PREMIER_BALL + // Pokemon Items #define ITEM_POTION 13 #define ITEM_ANTIDOTE 14 diff --git a/include/constants/opponents.h b/include/constants/opponents.h index cd35cf6b7..c9cf9239d 100644 --- a/include/constants/opponents.h +++ b/include/constants/opponents.h @@ -859,6 +859,7 @@ // NOTE: Because each Trainer uses a flag to determine when they are defeated, there is only space for 9 additional trainers before trainer flag space overflows // More space can be made by shifting flags around in constants/flags.h or changing how trainer flags are handled +// MAX_TRAINERS_COUNT can be increased but will take up additional saveblock space #define TRAINERS_COUNT 855 #define MAX_TRAINERS_COUNT 864 diff --git a/include/constants/vars.h b/include/constants/vars.h index 4a38bde81..625c37aa9 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -274,6 +274,7 @@ #define VAR_UNUSED_0x40FF 0x40FF // Unused Var #define VARS_END 0x40FF +#define VARS_COUNT (VARS_END - VARS_START + 1) #define SPECIAL_VARS_START 0x8000 // special vars diff --git a/include/contest.h b/include/contest.h index 00c3191eb..a9b1db9ee 100644 --- a/include/contest.h +++ b/include/contest.h @@ -430,9 +430,9 @@ struct ContestResources extern struct ContestPokemon gContestMons[CONTESTANT_COUNT]; extern s16 gContestMonConditions[CONTESTANT_COUNT]; -extern s16 gUnknown_02039F08[CONTESTANT_COUNT]; +extern s16 gContestMonTotalPoints[CONTESTANT_COUNT]; extern s16 gUnknown_02039F10[CONTESTANT_COUNT]; -extern s16 gUnknown_02039F18[CONTESTANT_COUNT]; +extern s16 gContestMonRound2Points[CONTESTANT_COUNT]; extern u8 gContestFinalStandings[CONTESTANT_COUNT]; extern u8 gContestMonPartyIndex; extern u8 gContestPlayerMonIndex; @@ -448,7 +448,6 @@ extern u8 sContestBgCopyFlags; extern struct ContestWinner gCurContestWinner; extern u8 gUnknown_02039F5C; extern u8 gUnknown_02039F5D; - extern u32 gContestRngValue; // contest.c diff --git a/include/contest_link_80FC4F4.h b/include/contest_link.h index a3f118798..4344d55ad 100644 --- a/include/contest_link_80FC4F4.h +++ b/include/contest_link.h @@ -1,5 +1,5 @@ -#ifndef GUARD_CONTEST_LINK_80FC4F4_H -#define GUARD_CONTEST_LINK_80FC4F4_H +#ifndef GUARD_CONTEST_LINK_H +#define GUARD_CONTEST_LINK_H void sub_80FCC88(u8); void sub_80FCC88(u8); @@ -10,4 +10,4 @@ void sub_80FC804(u8); void sub_80FCE48(u8); void sub_80FC894(u8); -#endif //GUARD_CONTEST_LINK_80FC4F4_H +#endif //GUARD_CONTEST_LINK_H diff --git a/include/contest_link_80F57C4.h b/include/contest_util.h index add3ae62f..c0d8df031 100644 --- a/include/contest_link_80F57C4.h +++ b/include/contest_util.h @@ -1,12 +1,12 @@ -#ifndef GUARD_CONTEST_LINK_80F57C4_H -#define GUARD_CONTEST_LINK_80F57C4_H +#ifndef GUARD_CONTEST_UTIL_H +#define GUARD_CONTEST_UTIL_H void BufferContestantTrainerName(void); void BufferContestantMonNickname(void); void StartContest(void); void BufferContestantMonSpecies(void); -void sub_80F8484(void); -void sub_80F84C4(u8); +void ShowContestResults(void); +void ContestLinkTransfer(u8); void sub_80FC998(u8 taskId); -#endif // GUARD_CONTEST_LINK_80F57C4_H +#endif // GUARD_CONTEST_UTIL_H diff --git a/include/event_data.h b/include/event_data.h index 53999320f..8b4510e39 100644 --- a/include/event_data.h +++ b/include/event_data.h @@ -1,9 +1,6 @@ #ifndef GUARD_EVENT_DATA_H #define GUARD_EVENT_DATA_H -#include "constants/flags.h" -#include "constants/vars.h" - void InitEventData(void); void ClearTempFieldEventData(void); void ClearDailyFlags(void); diff --git a/include/global.h b/include/global.h index cc1faa9f2..9612a25f0 100644 --- a/include/global.h +++ b/include/global.h @@ -6,6 +6,8 @@ #include "config.h" // we need to define config before gba headers as print stuff needs the functions nulled before defines. #include "gba/gba.h" #include "constants/global.h" +#include "constants/flags.h" +#include "constants/vars.h" // Prevent cross-jump optimization. #define BLOCK_CROSS_JUMP asm(""); @@ -109,6 +111,11 @@ f; \ }) +#define ROUND_BITS_TO_BYTES(numBits)(((numBits) / 8) + (((numBits) % 8) ? 1 : 0)) + +#define DEX_FLAGS_NO (ROUND_BITS_TO_BYTES(POKEMON_SLOTS_NUMBER)) +#define NUM_FLAG_BYTES (ROUND_BITS_TO_BYTES(FLAGS_COUNT)) + struct Coords8 { s8 x; @@ -153,8 +160,6 @@ struct Time /*0x04*/ s8 seconds; }; -#define DEX_FLAGS_NO ((POKEMON_SLOTS_NUMBER / 8) + ((POKEMON_SLOTS_NUMBER % 8) ? 1 : 0)) - struct Pokedex { /*0x00*/ u8 order; @@ -923,7 +928,7 @@ struct SaveBlock1 /*0x9CA*/ u8 trainerRematches[MAX_REMATCH_ENTRIES]; /*0xA30*/ struct ObjectEvent objectEvents[OBJECT_EVENTS_COUNT]; /*0xC70*/ struct ObjectEventTemplate objectEventTemplates[OBJECT_EVENT_TEMPLATES_COUNT]; - /*0x1270*/ u8 flags[FLAGS_COUNT]; + /*0x1270*/ u8 flags[NUM_FLAG_BYTES]; /*0x139C*/ u16 vars[VARS_COUNT]; /*0x159C*/ u32 gameStats[NUM_GAME_STATS]; /*0x169C*/ struct BerryTree berryTrees[BERRY_TREES_COUNT]; @@ -960,7 +965,7 @@ struct SaveBlock1 /*0x2E20*/ u8 additionalPhrases[8]; // bitfield for 33 additional phrases in easy chat system /*0x2E28*/ OldMan oldMan; /*0x2e64*/ struct EasyChatPair easyChatPairs[5]; //Dewford trend [0] and some other stuff - /*0x2e90*/ struct ContestWinner contestWinners[13]; // 0 - 5 used in contest hall, 6 - 7 unused?, 8 - 12 museum + /*0x2e90*/ struct ContestWinner contestWinners[NUM_CONTEST_WINNERS]; // see CONTEST_WINNER_* /*0x3030*/ struct DayCare daycare; /*0x3150*/ struct LinkBattleRecords linkBattleRecords; /*0x31A8*/ u8 giftRibbons[52]; diff --git a/include/graphics.h b/include/graphics.h index 6811b7620..8514d49bd 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4082,8 +4082,8 @@ extern const u8 gNamingScreenUnderscoreTiles[]; extern const u32 gUnknown_08D9BA44[]; -extern const u32 gContestConfetti_Gfx[]; -extern const u32 gContestConfetti_Pal[]; +extern const u32 gConfetti_Gfx[]; +extern const u32 gConfetti_Pal[]; extern const u32 gUnknown_08C093F0[]; extern const u32 gSubstituteDollTilemap[]; @@ -4927,23 +4927,23 @@ extern const u32 gRouletteCreditTiles[]; extern const u32 gRouletteNumbersTiles[]; extern const u32 gRouletteMultiplierTiles[]; -// Contest Link -extern const u32 gUnknown_08C19588[]; +// Contest util +extern const u32 gContestResults_Gfx[]; extern const u32 gUnknown_08C19EEC[]; extern const u32 gUnknown_08C1A000[]; extern const u32 gUnknown_08C1A12C[]; -extern const u32 gUnknown_08C1A2B4[]; -extern const u16 gUnknown_08DC6498[]; -extern const u16 gUnknown_08DC63F8[]; -extern const u16 gUnknown_08DC6420[]; -extern const u16 gUnknown_08DC6448[]; -extern const u16 gUnknown_08DC6470[]; -extern const u16 gUnknown_08DC64AC[]; -extern const u16 gUnknown_08DC64C0[]; -extern const u16 gUnknown_08DC64D4[]; -extern const u16 gUnknown_08DC64E8[]; -extern const u16 gUnknown_08DC64FC[]; -extern const u16 gUnknown_08DC6510[]; +extern const u32 gContestResults_Pal[]; +extern const u16 gLinkContestResults_Tilemap[]; +extern const u16 gNormalContestResults_Tilemap[]; +extern const u16 gSuperContestResults_Tilemap[]; +extern const u16 gHyperContestResults_Tilemap[]; +extern const u16 gMasterContestResults_Tilemap[]; +extern const u16 gCoolContestResults_Tilemap[]; +extern const u16 gBeautyContestResults_Tilemap[]; +extern const u16 gCuteContestResults_Tilemap[]; +extern const u16 gSmartContestResults_Tilemap[]; +extern const u16 gToughContestResults_Tilemap[]; +extern const u16 gContestResults_Tilemap[]; // Trainer Card. extern const u16 gHoennTrainerCard0Star_Pal[]; diff --git a/include/hall_of_fame.h b/include/hall_of_fame.h index a83fad2fc..f1f456713 100644 --- a/include/hall_of_fame.h +++ b/include/hall_of_fame.h @@ -4,7 +4,6 @@ void CB2_DoHallOfFameScreen(void); void CB2_DoHallOfFameScreenDontSaveData(void); void CB2_DoHallOfFamePC(void); -void DoConfettiEffect(void); // hof_pc.c void ReturnFromHallOfFamePC(void); diff --git a/include/item_menu.h b/include/item_menu.h index 9930ccd4f..edfb986f7 100644 --- a/include/item_menu.h +++ b/include/item_menu.h @@ -52,10 +52,7 @@ struct BagMenuStruct void (*exitCallback)(void); u8 tilemapBuffer[0x800]; u8 spriteId[12]; - u8 windowPointers[7]; - u8 unk817; - u8 unk818; - u8 unk819; + u8 windowPointers[10]; u8 itemOriginalLocation; u8 pocketSwitchDisabled:4; u8 itemIconSlot:2; diff --git a/include/rom_81520A8.h b/include/rom_81520A8.h deleted file mode 100644 index 2be12200f..000000000 --- a/include/rom_81520A8.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef GUARD_ROM_81520A8_H -#define GUARD_ROM_81520A8_H - -struct UnkStruct_81520A8 -{ - struct OamData oam; - s16 x; - s16 y; - s16 xDelta; - s16 yDelta; - u16 tileTag; - u16 palTag; - u16 tileNum; - u8 id; - u8 filler17; // Unused. - u8 unk18; - u8 unk19_0:1; - u8 unk19_1:1; - u8 unk19_2:1; - u8 priority:2; - s16 data[8]; - void (*callback)(struct UnkStruct_81520A8 *); -}; - -bool32 sub_81521C0(u8 count); -bool32 sub_8152254(void); -bool32 sub_81522D4(void); -u8 sub_8152438(u8 id, void (*func)(struct UnkStruct_81520A8 *)); -u8 sub_8152474(u8 id, u8 dataArrayId, s16 dataValue); -u8 sub_81524C4(const struct OamData *oam, u16 tileTag, u16 palTag, s16 x, s16 y, u8 arg5, u8 priority); -u8 sub_81525D0(u8 id); - -#endif // GUARD_ROM_81520A8_H diff --git a/include/strings.h b/include/strings.h index 1867f0ca4..67b238422 100644 --- a/include/strings.h +++ b/include/strings.h @@ -2494,7 +2494,7 @@ extern const u8 gText_CommunicationStandby[]; extern const u8 gText_AnnouncingResults[]; extern const u8 gText_PreliminaryResults[]; extern const u8 gText_Round2Results[]; -extern const u8 gText_Var1sVar2Won[]; +extern const u8 gText_ContestantsMonWon[]; // Trainer Card extern const u8 gText_LinkCableBattles[]; |