mirror of
https://github.com/pret/pokeemerald.git
synced 2026-09-07 10:36:05 -05:00
Merge branch 'master' into romhack
This commit is contained in:
@@ -75,8 +75,8 @@ int GetAnimBgAttribute(u8 bgId, u8 attributeId);
|
||||
|
||||
// battle_anim_mons.c
|
||||
void TranslateSpriteInEllipseOverDuration(struct Sprite *sprite);
|
||||
void AnimUnused_80A8AEC(struct Sprite *sprite);
|
||||
void AnimUnused_80A8A6C(struct Sprite *sprite);
|
||||
void AnimTranslateLinearAndFlicker(struct Sprite *sprite);
|
||||
void AnimTranslateLinearAndFlicker_Flipped(struct Sprite *sprite);
|
||||
void AnimWeatherBallUp(struct Sprite *sprite);
|
||||
void AnimWeatherBallDown(struct Sprite *sprite);
|
||||
void AnimSpinningSparkle(struct Sprite *sprite);
|
||||
|
||||
@@ -3,48 +3,72 @@
|
||||
|
||||
#include "list_menu.h"
|
||||
|
||||
struct PyramidBagResources
|
||||
enum {
|
||||
PYRAMIDBAG_LOC_FIELD,
|
||||
PYRAMIDBAG_LOC_BATTLE,
|
||||
PYRAMIDBAG_LOC_PARTY,
|
||||
PYRAMIDBAG_LOC_CHOOSE_TOSS,
|
||||
PYRAMIDBAG_LOC_PREV,
|
||||
};
|
||||
|
||||
enum {
|
||||
PBAG_SPRITE_BAG,
|
||||
PBAG_SPRITE_ITEM_ICON,
|
||||
PBAG_SPRITE_ITEM_ICON_ALT,
|
||||
PBAG_SPRITE_SWAP_LINE_START, // Swap line consists of 8 sprites
|
||||
PBAG_SPRITE_SWAP_LINE_2,
|
||||
PBAG_SPRITE_SWAP_LINE_3,
|
||||
PBAG_SPRITE_SWAP_LINE_4,
|
||||
PBAG_SPRITE_SWAP_LINE_5,
|
||||
PBAG_SPRITE_SWAP_LINE_6,
|
||||
PBAG_SPRITE_SWAP_LINE_7,
|
||||
PBAG_SPRITE_SWAP_LINE_END,
|
||||
PBAG_SPRITE_COUNT
|
||||
};
|
||||
#define NUM_SWAP_LINE_SPRITES (1 + PBAG_SPRITE_SWAP_LINE_END - PBAG_SPRITE_SWAP_LINE_START)
|
||||
|
||||
struct PyramidBagMenu
|
||||
{
|
||||
void (*callback2)(void);
|
||||
u8 tilemapBuffer[0x800];
|
||||
u8 itemsSpriteIds[PYRAMID_BAG_ITEMS_COUNT + 1];
|
||||
void (*exitCallback)(void);
|
||||
u8 tilemapBuffer[BG_SCREEN_SIZE];
|
||||
u8 spriteIds[PBAG_SPRITE_COUNT];
|
||||
u8 windowIds[5];
|
||||
u8 unk814;
|
||||
u8 unk815;
|
||||
u8 toSwapPos;
|
||||
bool8 isAltIcon; // Two item icons loaded at a time. Tracks which to show next
|
||||
u8 scrollIndicatorsTaskId;
|
||||
const u8 *menuActionIds;
|
||||
u8 filler81C[0x820 - 0x81C];
|
||||
u8 unused1[4];
|
||||
u8 menuActionsCount;
|
||||
u8 listMenuCount;
|
||||
u8 listMenuMaxShown;
|
||||
struct ListMenuItem bagListItems[PYRAMID_BAG_ITEMS_COUNT + 1];
|
||||
u8 itemStrings[PYRAMID_BAG_ITEMS_COUNT + 1][ITEM_NAME_LENGTH + 10];
|
||||
s16 state;
|
||||
u8 filler986[0x98C - 0x986];
|
||||
u8 unused2[4];
|
||||
};
|
||||
|
||||
struct PyramidBagCursorData
|
||||
struct PyramidBagMenuState
|
||||
{
|
||||
void (*callback)(void);
|
||||
u8 unk4;
|
||||
u8 location;
|
||||
u16 cursorPosition;
|
||||
u16 scrollPosition;
|
||||
};
|
||||
|
||||
extern struct PyramidBagResources *gPyramidBagResources;
|
||||
extern struct PyramidBagCursorData gPyramidBagCursorData;
|
||||
extern struct PyramidBagMenu *gPyramidBagMenu;
|
||||
extern struct PyramidBagMenuState gPyramidBagMenuState;
|
||||
|
||||
void InitBattlePyramidBagCursorPosition(void);
|
||||
void CB2_PyramidBagMenuFromStartMenu(void);
|
||||
void CB2_ReturnToPyramidBagMenu(void);
|
||||
void sub_81C5924(void);
|
||||
void sub_81C59BC(void);
|
||||
void UpdatePyramidBagList(void);
|
||||
void UpdatePyramidBagCursorPos(void);
|
||||
void sub_81C4EFC(void);
|
||||
void GoToBattlePyramidBagMenu(u8 a0, void (*callback)(void));
|
||||
void Task_CloseBattlePyramidBagMessage(u8 taskId);
|
||||
void TryStoreHeldItemsInPyramidBag(void);
|
||||
void ChooseItemsToTossFromPyramidBag(void);
|
||||
void CloseBattlePyramidBagAndSetCallback(u8 taskId);
|
||||
void CloseBattlePyramidBag(u8 taskId);
|
||||
void DisplayItemMessageInBattlePyramid(u8 taskId, const u8 *str, void (*callback)(u8 taskId));
|
||||
|
||||
#endif // GUARD_BATTLE_PYRAMID_BAG_H
|
||||
|
||||
@@ -78,6 +78,21 @@
|
||||
|
||||
#define FRONTIER_MANIAC_MESSAGE_COUNT 3
|
||||
|
||||
// Frontier TV Show
|
||||
#define FRONTIER_SHOW_TOWER_SINGLES 1
|
||||
#define FRONTIER_SHOW_TOWER_DOUBLES 2
|
||||
#define FRONTIER_SHOW_TOWER_MULTIS 3
|
||||
#define FRONTIER_SHOW_TOWER_LINK_MULTIS 4
|
||||
#define FRONTIER_SHOW_DOME_SINGLES 5
|
||||
#define FRONTIER_SHOW_DOME_DOUBLES 6
|
||||
#define FRONTIER_SHOW_FACTORY_SINGLES 7
|
||||
#define FRONTIER_SHOW_FACTORY_DOUBLES 8
|
||||
#define FRONTIER_SHOW_PIKE 9
|
||||
#define FRONTIER_SHOW_ARENA 10
|
||||
#define FRONTIER_SHOW_PALACE_SINGLES 11
|
||||
#define FRONTIER_SHOW_PALACE_DOUBLES 12
|
||||
#define FRONTIER_SHOW_PYRAMID 13
|
||||
|
||||
// Frontier Gambler
|
||||
#define FRONTIER_GAMBLER_WAITING 0
|
||||
#define FRONTIER_GAMBLER_PLACED_BET 1
|
||||
|
||||
@@ -22,7 +22,9 @@
|
||||
#define CONTEST_TYPE_NPC_MASTER (CONTEST_RANK_MASTER + 1)
|
||||
#define CONTEST_TYPE_LINK (CONTEST_RANK_LINK + 1)
|
||||
|
||||
#define CONTEST_WINNER_ARTIST 0 // Winner shown by the artist, painting not necessarily saved
|
||||
// IDs below - 1 are indexes into gSaveBlock1Ptr->contestWinners[]
|
||||
// CONTEST_WINNER_ARTIST is for the winner of the most recent contest, and is not saved.
|
||||
#define CONTEST_WINNER_ARTIST 0
|
||||
#define CONTEST_WINNER_HALL_1 1
|
||||
#define CONTEST_WINNER_HALL_2 2
|
||||
#define CONTEST_WINNER_HALL_3 3
|
||||
@@ -30,8 +32,8 @@
|
||||
#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_HALL_UNUSED_1 7 // These two have data for gDefaultContestWinners
|
||||
#define CONTEST_WINNER_HALL_UNUSED_2 8 // but there are only 6 paintings in the Contest Hall
|
||||
#define CONTEST_WINNER_MUSEUM_COOL 9
|
||||
#define CONTEST_WINNER_MUSEUM_BEAUTY 10
|
||||
#define CONTEST_WINNER_MUSEUM_CUTE 11
|
||||
@@ -39,6 +41,14 @@
|
||||
#define CONTEST_WINNER_MUSEUM_TOUGH 13
|
||||
// NUM_CONTEST_WINNERS in constants/global.h
|
||||
|
||||
#define MUSEUM_CONTEST_WINNERS_START (CONTEST_WINNER_MUSEUM_COOL - 1)
|
||||
|
||||
#define CONTEST_SAVE_FOR_MUSEUM ((u8)-1)
|
||||
#define CONTEST_SAVE_FOR_ARTIST ((u8)-2)
|
||||
|
||||
// The number of possible captions for a Contest painting, per category
|
||||
#define NUM_PAINTING_CAPTIONS 3
|
||||
|
||||
#define CANT_ENTER_CONTEST 0
|
||||
#define CAN_ENTER_CONTEST_EQUAL_RANK 1
|
||||
#define CAN_ENTER_CONTEST_HIGH_RANK 2
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#define EASY_CHAT_TYPE_INTERVIEW 5
|
||||
#define EASY_CHAT_TYPE_BARD_SONG 6
|
||||
#define EASY_CHAT_TYPE_FAN_CLUB 7
|
||||
#define EASY_CHAT_TYPE_UNK_8 8
|
||||
#define EASY_CHAT_TYPE_DUMMY_SHOW 8
|
||||
#define EASY_CHAT_TYPE_TRENDY_PHRASE 9
|
||||
#define EASY_CHAT_TYPE_GABBY_AND_TY 10
|
||||
#define EASY_CHAT_TYPE_CONTEST_INTERVIEW 11
|
||||
|
||||
@@ -42,6 +42,8 @@
|
||||
#define METATILE_General_BlueCaveOpen 0x1B1
|
||||
|
||||
// gTileset_Building
|
||||
#define METATILE_Building_TV_Off 0x002
|
||||
#define METATILE_Building_TV_On 0x003
|
||||
#define METATILE_Building_PC_Off 0x004
|
||||
#define METATILE_Building_PC_On 0x005
|
||||
|
||||
|
||||
@@ -37,8 +37,9 @@
|
||||
#define TRAINER_HILL_TEXT_PLAYER_WON 4
|
||||
#define TRAINER_HILL_TEXT_AFTER 5
|
||||
|
||||
#define NUM_TRAINER_HILL_TRAINERS (NUM_TRAINER_HILL_FLOORS * 2)
|
||||
#define NUM_TRAINER_HILL_TRAINERS_JP (NUM_TRAINER_HILL_FLOORS_JP * 2)
|
||||
#define TRAINER_HILL_TRAINERS_PER_FLOOR 2
|
||||
#define NUM_TRAINER_HILL_TRAINERS (NUM_TRAINER_HILL_FLOORS * TRAINER_HILL_TRAINERS_PER_FLOOR)
|
||||
#define NUM_TRAINER_HILL_TRAINERS_JP (NUM_TRAINER_HILL_FLOORS_JP * TRAINER_HILL_TRAINERS_PER_FLOOR)
|
||||
|
||||
// Values returned by TrainerHillGetChallengeStatus
|
||||
#define TRAINER_HILL_PLAYER_STATUS_LOST 0
|
||||
|
||||
@@ -6,12 +6,22 @@
|
||||
#define POKENEWS_GAME_CORNER 2
|
||||
#define POKENEWS_LILYCOVE 3
|
||||
#define POKENEWS_BLENDMASTER 4
|
||||
#define NUM_POKENEWS_TYPES 4 // Excludes NONE
|
||||
|
||||
// TV shows are categorized as being in one of 3 groups
|
||||
// - TVGROUP_NORMAL, TV shows that can appear without Record Mixing
|
||||
// - TVGROUP_RECORD_MIX, TV shows that can only appear via Record Mixing
|
||||
// - TVGROUP_OUTBREAK, just contains TVSHOW_MASS_OUTBREAK
|
||||
// Each group was allotted 20 spaces arbitrarily, though none use all 20
|
||||
|
||||
#define TVSHOW_OFF_AIR 0
|
||||
|
||||
// TVGROUP_NORMAL
|
||||
#define TVGROUP_NORMAL_START 1
|
||||
#define TVSHOW_FAN_CLUB_LETTER 1
|
||||
#define TVSHOW_RECENT_HAPPENINGS 2
|
||||
#define TVSHOW_PKMN_FAN_CLUB_OPINIONS 3
|
||||
#define TVSHOW_UNKN_SHOWTYPE_04 4
|
||||
#define TVSHOW_DUMMY 4
|
||||
#define TVSHOW_NAME_RATER_SHOW 5
|
||||
#define TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE 6
|
||||
#define TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE 7
|
||||
@@ -20,7 +30,11 @@
|
||||
#define TVSHOW_BATTLE_UPDATE 10
|
||||
#define TVSHOW_FAN_CLUB_SPECIAL 11
|
||||
#define TVSHOW_LILYCOVE_CONTEST_LADY 12
|
||||
// //
|
||||
//
|
||||
#define TVGROUP_NORMAL_END 20
|
||||
|
||||
// TVGROUP_RECORD_MIX
|
||||
#define TVGROUP_RECORD_MIX_START 21
|
||||
#define TVSHOW_POKEMON_TODAY_CAUGHT 21
|
||||
#define TVSHOW_SMART_SHOPPER 22
|
||||
#define TVSHOW_POKEMON_TODAY_FAILED 23
|
||||
@@ -40,8 +54,22 @@
|
||||
#define TVSHOW_NUMBER_ONE 37
|
||||
#define TVSHOW_SECRET_BASE_SECRETS 38
|
||||
#define TVSHOW_SAFARI_FAN_CLUB 39
|
||||
// //
|
||||
#define TVSHOW_MASS_OUTBREAK 41
|
||||
#define TVGROUP_RECORD_MIX_END 40
|
||||
|
||||
// TVGROUP_OUTBREAK
|
||||
#define TVGROUP_OUTBREAK_START 41
|
||||
#define TVSHOW_MASS_OUTBREAK 41
|
||||
//
|
||||
#define TVGROUP_OUTBREAK_END 60
|
||||
|
||||
// The first 5 elements of gSaveBlock1Ptr->tvShows are reserved
|
||||
// for TV shows from TVGROUP_NORMAL. The remainder are for TV
|
||||
// shows from TVGROUP_RECORD_MIX.
|
||||
#define NUM_NORMAL_TVSHOW_SLOTS 5
|
||||
|
||||
#define PLAYERS_HOUSE_TV_NONE 0
|
||||
#define PLAYERS_HOUSE_TV_LATI 1
|
||||
#define PLAYERS_HOUSE_TV_MOVIE 2
|
||||
|
||||
// Number of ribbons to put Spot the Cuties on air
|
||||
#define NUM_CUTIES_RIBBONS 4
|
||||
@@ -221,4 +249,6 @@
|
||||
#define CONTESTLADYLIVE_STATE_LOST 2
|
||||
#define CONTESTLADYLIVE_STATE_LOST_BADLY 3
|
||||
|
||||
#define SMARTSHOPPER_NUM_ITEMS 3
|
||||
|
||||
#endif //GUARD_CONSTANTS_TV_H
|
||||
|
||||
@@ -111,11 +111,11 @@ struct ContestPokemon
|
||||
u32 otId;
|
||||
};
|
||||
|
||||
struct Shared1A004
|
||||
struct ContestTempSave
|
||||
{
|
||||
u16 cachedWindowPalettes[16][16]; // Saved palette data before a move happens?
|
||||
u16 unk18204[PLTT_BUFFER_SIZE]; // Saved copy of gPlttBufferUnfaded
|
||||
u16 unk18604[PLTT_BUFFER_SIZE]; // Saved copy of gPlttBufferFaded
|
||||
u16 cachedPlttBufferUnfaded[PLTT_BUFFER_SIZE];
|
||||
u16 cachedPlttBufferFaded[PLTT_BUFFER_SIZE];
|
||||
u8 savedJunk[0x800];
|
||||
};
|
||||
|
||||
@@ -306,7 +306,7 @@ struct ContestResources
|
||||
#define eUnzippedContestAudience_Gfx (gHeap + 0x18000)
|
||||
#define eContestAudienceFrame2_Gfx (gHeap + 0x19000)
|
||||
#define eContestDebugMode (gHeap[0x1a000])
|
||||
#define eUnknownHeap1A004 (*(struct Shared1A004 *)(gHeap + 0x1a004))
|
||||
#define eContestTempSave (*(struct ContestTempSave *)(gHeap + 0x1a004))
|
||||
|
||||
extern struct ContestPokemon gContestMons[CONTESTANT_COUNT];
|
||||
extern s16 gContestMonRound1Points[CONTESTANT_COUNT];
|
||||
@@ -326,8 +326,8 @@ extern u8 gHighestRibbonRank;
|
||||
extern struct ContestResources *gContestResources;
|
||||
extern u8 sContestBgCopyFlags;
|
||||
extern struct ContestWinner gCurContestWinner;
|
||||
extern u8 gUnknown_02039F5C;
|
||||
extern u8 gUnknown_02039F5D;
|
||||
extern u8 gCurContestWinnerIsForArtist;
|
||||
extern u8 gCurContestWinnerSaveIdx;
|
||||
extern u32 gContestRngValue;
|
||||
|
||||
// contest.c
|
||||
@@ -351,8 +351,8 @@ s8 Contest_GetMoveExcitement(u16 move);
|
||||
bool8 IsContestantAllowedToCombo(u8 contestant);
|
||||
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);
|
||||
bool8 SaveContestWinner(u8 rank);
|
||||
u8 GetContestWinnerSaveIdx(u8 rank, bool8 shift);
|
||||
void ClearContestWinnerPicsInContestHall(void);
|
||||
void StripPlayerAndMonNamesForLinkContest(struct ContestPokemon *mon, s32 language);
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@ void StartContest(void);
|
||||
void BufferContestantMonSpecies(void);
|
||||
void ShowContestResults(void);
|
||||
void ContestLinkTransfer(u8);
|
||||
void ShowContestWinnerPainting(void);
|
||||
void ShowContestPainting(void);
|
||||
u16 GetContestRand(void);
|
||||
u8 CountPlayerContestPaintings(void);
|
||||
u8 CountPlayerMuseumPaintings(void);
|
||||
|
||||
#endif // GUARD_CONTEST_UTIL_H
|
||||
|
||||
@@ -16,6 +16,12 @@
|
||||
#define N_FOLLOWER_MUSIC_MESSAGES 15
|
||||
#define N_FOLLOWER_POISONED_MESSAGES 1
|
||||
|
||||
enum {
|
||||
BATTLER_AFFINE_NORMAL,
|
||||
BATTLER_AFFINE_EMERGE,
|
||||
BATTLER_AFFINE_RETURN,
|
||||
};
|
||||
|
||||
struct MonCoords
|
||||
{
|
||||
// This would use a bitfield, but some function
|
||||
@@ -105,9 +111,9 @@ extern const struct SpriteFrameImage gTrainerBackPicTable_Steven[];
|
||||
|
||||
extern const union AffineAnimCmd *const gAffineAnims_BattleSpritePlayerSide[];
|
||||
extern const union AffineAnimCmd *const gAffineAnims_BattleSpriteOpponentSide[];
|
||||
extern const union AffineAnimCmd *const gUnknown_082FF6C0[];
|
||||
extern const union AffineAnimCmd *const gAffineAnims_BattleSpriteContest[];
|
||||
|
||||
extern const union AnimCmd *const gUnknown_082FF70C[];
|
||||
extern const union AnimCmd *const gAnims_MonPic[];
|
||||
extern const struct MonCoords gMonFrontPicCoords[];
|
||||
extern const struct CompressedSpriteSheet gMonStillFrontPicTable[];
|
||||
extern const struct MonCoords gMonBackPicCoords[];
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
u8 *GetMonNickname2(struct Pokemon *mon, u8 *dest);
|
||||
u8 *GetBoxMonNickname(struct BoxPokemon *mon, u8 *dest);
|
||||
u8 CountPokemonInDaycare(struct DayCare *daycare);
|
||||
void InitDaycareMailRecordMixing(struct DayCare *daycare, struct RecordMixingDayCareMail *daycareMail);
|
||||
void InitDaycareMailRecordMixing(struct DayCare *daycare, struct RecordMixingDaycareMail *daycareMail);
|
||||
void StoreSelectedPokemonInDaycare(void);
|
||||
u16 TakePokemonFromDaycare(void);
|
||||
void GetDaycareCost(void);
|
||||
|
||||
@@ -5,30 +5,30 @@
|
||||
|
||||
struct EReaderTrainerHillTrainer
|
||||
{
|
||||
u8 unk0;
|
||||
struct TrainerHillTrainer unk4;
|
||||
struct TrHillDisplay unk14C;
|
||||
u8 trainerNum;
|
||||
struct TrainerHillTrainer trainer;
|
||||
struct TrHillDisplay display;
|
||||
u32 checksum;
|
||||
}; // size=0x274
|
||||
|
||||
struct EReaderTrainerHillSet
|
||||
{
|
||||
u8 count;
|
||||
u8 numTrainers;
|
||||
u8 id;
|
||||
u16 dummy;
|
||||
u16 dummy; // Only read in an assert.
|
||||
u32 checksum;
|
||||
struct EReaderTrainerHillTrainer unk_8[6];
|
||||
struct EReaderTrainerHillTrainer trainers[6];
|
||||
u8 unk_ec0[40];
|
||||
}; // size = 0xf00
|
||||
|
||||
bool8 EReader_IsReceivedDataValid(struct EReaderTrainerHillSet *buffer);
|
||||
bool32 TryWriteTrainerHill(struct EReaderTrainerHillSet *arg0);
|
||||
bool8 ValidateTrainerHillData(struct EReaderTrainerHillSet *);
|
||||
bool32 TryWriteTrainerHill(struct EReaderTrainerHillSet *);
|
||||
bool32 ReadTrainerHillAndValidate(void);
|
||||
int EReaderHandleTransfer(u8, u32, u32*, u32*);
|
||||
void sub_81D3F9C(void);
|
||||
void sub_81D3FAC(void);
|
||||
int EReaderHandleTransfer(u8, size_t, const void *, void *);
|
||||
void EReaderHelper_Timer3Callback(void);
|
||||
void EReaderHelper_SerialCallback(void);
|
||||
void EReaderHelper_SaveRegsState(void);
|
||||
void EReaderHelper_RestoreRegsState(void);
|
||||
void sub_81D4238(void);
|
||||
void EReaderHelper_ClearSendRecvMgr(void);
|
||||
|
||||
#endif // GUARD_EREADER_HELPERS_H
|
||||
|
||||
@@ -729,7 +729,7 @@ struct ContestWinner
|
||||
u8 contestRank;
|
||||
};
|
||||
|
||||
struct DayCareMail
|
||||
struct DaycareMail
|
||||
{
|
||||
struct MailStruct message;
|
||||
u8 OT_name[PLAYER_NAME_LENGTH + 1];
|
||||
@@ -741,7 +741,7 @@ struct DayCareMail
|
||||
struct DaycareMon
|
||||
{
|
||||
struct BoxPokemon mon;
|
||||
struct DayCareMail mail;
|
||||
struct DaycareMail mail;
|
||||
u32 steps;
|
||||
};
|
||||
|
||||
@@ -752,9 +752,9 @@ struct DayCare
|
||||
u8 stepCounter;
|
||||
};
|
||||
|
||||
struct RecordMixingDayCareMail
|
||||
struct RecordMixingDaycareMail
|
||||
{
|
||||
struct DayCareMail mail[DAYCARE_MON_COUNT];
|
||||
struct DaycareMail mail[DAYCARE_MON_COUNT];
|
||||
u32 numDaycareMons;
|
||||
bool16 holdsItem[DAYCARE_MON_COUNT];
|
||||
};
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
#ifndef GUARD_GLOBAL_TV_H
|
||||
#define GUARD_GLOBAL_TV_H
|
||||
|
||||
#include "constants/tv.h"
|
||||
|
||||
typedef union // size = 0x24
|
||||
{
|
||||
// Common
|
||||
struct {
|
||||
/*0x00*/ u8 kind;
|
||||
/*0x01*/ bool8 active;
|
||||
/*0x02*/ u8 pad02[26];
|
||||
/*0x02*/ u8 data[26];
|
||||
/*0x1C*/ u8 srcTrainerId3Lo;
|
||||
/*0x1D*/ u8 srcTrainerId3Hi;
|
||||
/*0x1E*/ u8 srcTrainerId2Lo;
|
||||
@@ -22,7 +24,7 @@ typedef union // size = 0x24
|
||||
struct {
|
||||
/*0x00*/ u8 kind;
|
||||
/*0x01*/ bool8 active;
|
||||
/*0x02*/ u8 pad02[34];
|
||||
/*0x02*/ u8 data[34];
|
||||
} commonInit;
|
||||
|
||||
// Local shows
|
||||
@@ -40,7 +42,7 @@ typedef union // size = 0x24
|
||||
struct {
|
||||
/*0x00*/ u8 kind;
|
||||
/*0x01*/ bool8 active;
|
||||
/*0x02*/ u16 var02;
|
||||
/*0x02*/ u16 species;
|
||||
/*0x04*/ u16 words[6];
|
||||
/*0x10*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
/*0x18*/ u8 language;
|
||||
@@ -62,16 +64,16 @@ typedef union // size = 0x24
|
||||
/*0x1C*/ u16 words[4];
|
||||
} fanclubOpinions;
|
||||
|
||||
// TVSHOW_UNKN_SHOWTYPE_04 (dummied out)
|
||||
// TVSHOW_DUMMY
|
||||
struct {
|
||||
/*0x00*/ u8 kind;
|
||||
/*0x01*/ bool8 active;
|
||||
/*0x02*/ u16 words[2];
|
||||
/*0x06*/ u16 var06;
|
||||
/*0x06*/ u16 species;
|
||||
/*0x08*/ u8 pad_08[3];
|
||||
/*0x0b*/ u8 string_0b[12];
|
||||
/*0x0b*/ u8 name[12];
|
||||
/*0x17*/ u8 language;
|
||||
} unkShow04;
|
||||
} dummy;
|
||||
|
||||
// TVSHOW_NAME_RATER_SHOW
|
||||
struct {
|
||||
@@ -212,8 +214,8 @@ typedef union // size = 0x24
|
||||
/*0x02*/ u8 priceReduced;
|
||||
/*0x03*/ u8 language;
|
||||
/*0x04*/ u8 pad04[2];
|
||||
/*0x06*/ u16 itemIds[3];
|
||||
/*0x0C*/ u16 itemAmounts[3];
|
||||
/*0x06*/ u16 itemIds[SMARTSHOPPER_NUM_ITEMS];
|
||||
/*0x0C*/ u16 itemAmounts[SMARTSHOPPER_NUM_ITEMS];
|
||||
/*0x12*/ u8 shopLocation;
|
||||
/*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
} smartshopperShow;
|
||||
@@ -401,7 +403,7 @@ typedef union // size = 0x24
|
||||
/*0x08*/ u16 species3;
|
||||
/*0x0a*/ u16 species4;
|
||||
/*0x0c*/ u8 language;
|
||||
/*0x0d*/ u8 facility;
|
||||
/*0x0d*/ u8 facilityAndMode;
|
||||
/*0x0e*/ u8 filler_0e[5];
|
||||
/*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
} frontier;
|
||||
|
||||
@@ -4875,12 +4875,12 @@ extern const u32 gPokedexAreaScreenAreaUnknown_Gfx[];
|
||||
extern const u16 gPokedexAreaScreenAreaUnknown_Pal[];
|
||||
|
||||
// Pokemon Storage System
|
||||
extern const u32 gPSSMenu_Gfx[];
|
||||
extern const u16 gPSSMenu_Pal[];
|
||||
extern const u32 gStorageSystemMenu_Gfx[];
|
||||
extern const u16 gStorageSystemPartyMenu_Pal[];
|
||||
extern const u32 gStorageSystemPartyMenu_Tilemap[];
|
||||
extern const u32 gWallpaperIcon_Plusle[];
|
||||
extern const u32 gWallpaperIcon_Cross[];
|
||||
extern const u32 gWallpaperIcon_Bolt[];
|
||||
extern const u32 gUnknown_08DD36C8[];
|
||||
extern const u32 gWallpaperTiles_Ribbon[];
|
||||
extern const u32 gWallpaperTilemap_Ribbon[];
|
||||
extern const u16 gWallpaperPalettes_Ribbon[][16];
|
||||
@@ -4903,8 +4903,8 @@ extern const u16 gUnknown_08DDCF04[];
|
||||
extern const u16 gTradeGba2_Pal[];
|
||||
extern const u8 gTradeGba_Gfx[];
|
||||
extern const u16 gTradeMenuMonBox_Tilemap[];
|
||||
extern const u8 gTradeButtons_Gfx[];
|
||||
extern const u16 gUnknown_08DDB444[];
|
||||
extern const u8 gTradeCursor_Gfx[];
|
||||
extern const u16 gTradeCursor_Pal[];
|
||||
|
||||
// Party menu
|
||||
extern const u32 gPartyMenuPokeball_Gfx[];
|
||||
@@ -4924,21 +4924,21 @@ extern const u32 gRouletteMultiplier_Gfx[];
|
||||
|
||||
// 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 gContestResults_WinnerBanner_Tilemap[];
|
||||
extern const u32 gContestResults_Interface_Tilemap[];
|
||||
extern const u32 gContestResults_Bg_Tilemap[];
|
||||
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[];
|
||||
extern const u16 gContestResultsTitle_Link_Tilemap[];
|
||||
extern const u16 gContestResultsTitle_Normal_Tilemap[];
|
||||
extern const u16 gContestResultsTitle_Super_Tilemap[];
|
||||
extern const u16 gContestResultsTitle_Hyper_Tilemap[];
|
||||
extern const u16 gContestResultsTitle_Master_Tilemap[];
|
||||
extern const u16 gContestResultsTitle_Cool_Tilemap[];
|
||||
extern const u16 gContestResultsTitle_Beauty_Tilemap[];
|
||||
extern const u16 gContestResultsTitle_Cute_Tilemap[];
|
||||
extern const u16 gContestResultsTitle_Smart_Tilemap[];
|
||||
extern const u16 gContestResultsTitle_Tough_Tilemap[];
|
||||
extern const u16 gContestResultsTitle_Tilemap[];
|
||||
|
||||
// Trainer Card.
|
||||
extern const u16 gHoennTrainerCard0Star_Pal[];
|
||||
|
||||
@@ -17,7 +17,7 @@ void CopyMonCategoryText(int dexNum, u8 *dest);
|
||||
u8 *sub_81DB494(u8 *str, int fontId, const u8 *str2, int totalStringWidth);
|
||||
void PadNameString(u8 *dest, u8 padChar);
|
||||
void ConvertInternationalPlayerNameStripChar(u8 *, u8);
|
||||
void sub_81DB5AC(u8 *);
|
||||
void ConvertInternationalContestantName(u8 *);
|
||||
int sub_81DB604(u8 *);
|
||||
void sub_81DB620(int windowId, int columnStart, int rowStart, int numFillTiles, int numRows);
|
||||
|
||||
|
||||
@@ -323,7 +323,7 @@ extern bool8 gSavedLinkPlayerCount;
|
||||
extern u8 gSavedMultiplayerId;
|
||||
extern struct LinkTestBGInfo gLinkTestBGInfo;
|
||||
extern void (*gLinkCallback)(void);
|
||||
extern bool8 gShouldAdvanceLinkState;
|
||||
extern u8 gShouldAdvanceLinkState;
|
||||
extern u16 gLinkTestBlockChecksums[MAX_LINK_PLAYERS];
|
||||
extern u8 gBlockRequestType;
|
||||
extern u8 gLastSendQueueCount;
|
||||
|
||||
@@ -7,7 +7,7 @@ void SetMauvilleOldMan(void);
|
||||
u8 GetCurrentMauvilleOldMan(void);
|
||||
void ScrSpecial_SetMauvilleOldManObjEventGfx(void);
|
||||
u8 sub_81201C8(void);
|
||||
void sub_8120B70(OldMan *dest);
|
||||
void SanitizeMauvilleOldManForRuby(OldMan *dest);
|
||||
void sub_8120670(void);
|
||||
void SanitizeReceivedRubyOldMan(union OldMan * oldMan, u32 r1, u32 r6);
|
||||
void SanitizeReceivedEmeraldOldMan(union OldMan * oldMan, u32 unused, u32 a2);
|
||||
|
||||
@@ -90,8 +90,8 @@ void *malloc_and_decompress(const void *src, u32 *sizeOut);
|
||||
u16 copy_decompressed_tile_data_to_vram(u8 bgId, const void *src, u16 size, u16 offset, u8 mode);
|
||||
void AddTextPrinterForMessage(bool8 allowSkippingDelayWithButtonPress);
|
||||
void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 letterSpacing, u8 lineHeight, u8 itemCount, const struct MenuAction *strs, const u8 *a8);
|
||||
void sub_8198DBC(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 itemCount, u8 itemCount2, const struct MenuAction *strs, const u8 *a8);
|
||||
u8 sub_8199944(u8 windowId, u8 optionWidth, u8 columns, u8 rows, u8 initialCursorPos);
|
||||
void PrintMenuActionGrid(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 itemCount, u8 itemCount2, const struct MenuAction *strs, const u8 *a8);
|
||||
u8 InitMenuActionGrid(u8 windowId, u8 optionWidth, u8 columns, u8 rows, u8 initialCursorPos);
|
||||
u8 ChangeListMenuCursorPosition(s8 deltaX, s8 deltaY);
|
||||
u8 GetStartMenuWindowId(void);
|
||||
void ListMenuLoadStdPalAt(u8, u8);
|
||||
|
||||
@@ -29,7 +29,7 @@ bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1);
|
||||
u8 GetLRKeysPressed(void);
|
||||
u8 GetLRKeysPressedAndHeld(void);
|
||||
bool8 sub_8122148(u16 itemId);
|
||||
bool8 itemid_80BF6D8_mail_related(u16 itemId);
|
||||
bool8 IsWritingMailAllowed(u16 itemId);
|
||||
bool8 MenuHelpers_LinkSomething(void);
|
||||
bool8 MenuHelpers_CallLinkSomething(void);
|
||||
void sub_812220C(struct ItemSlot *slots, u8 count, u8 *arg2, u8 *usedSlotsCount, u8 maxUsedSlotsCount);
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
#define GUARD_POKEMON_STORAGE_SYSTEM_H
|
||||
|
||||
#define TOTAL_BOXES_COUNT 14
|
||||
#define IN_BOX_ROWS 6
|
||||
#define IN_BOX_COLUMNS 5
|
||||
#define IN_BOX_ROWS 5 // Number of rows, 6 Pokémon per row
|
||||
#define IN_BOX_COLUMNS 6 // Number of columns, 5 Pokémon per column
|
||||
#define IN_BOX_COUNT (IN_BOX_ROWS * IN_BOX_COLUMNS)
|
||||
|
||||
/*
|
||||
ROWS
|
||||
COLUMNS 0 1 2 3 4 5
|
||||
/*
|
||||
COLUMNS
|
||||
ROWS 0 1 2 3 4 5
|
||||
6 7 8 9 10 11
|
||||
12 13 14 15 16 17
|
||||
18 19 20 21 22 23
|
||||
@@ -51,14 +51,13 @@ void ZeroBoxMonAt(u8 boxId, u8 boxPosition);
|
||||
void BoxMonAtToMon(u8 boxId, u8 boxPosition, struct Pokemon *dst);
|
||||
struct BoxPokemon *GetBoxedMonPtr(u8 boxId, u8 boxPosition);
|
||||
u8 *GetBoxNamePtr(u8 boxId);
|
||||
u8 GetBoxWallpaper(u8 boxId);
|
||||
void SetBoxWallpaper(u8 boxId, u8 wallpaperId);
|
||||
s16 sub_80D214C(struct BoxPokemon *boxMons, u8 currIndex, u8 maxIndex, u8 arg3);
|
||||
s16 AdvanceStorageMonIndex(struct BoxPokemon *boxMons, u8 currIndex, u8 maxIndex, u8 arg3);
|
||||
bool8 CheckFreePokemonStorageSpace(void);
|
||||
bool32 CheckBoxMonSanityAt(u32 boxId, u32 boxPosition);
|
||||
u32 CountStorageNonEggMons(void);
|
||||
u32 CountAllStorageMons(void);
|
||||
bool32 AnyStorageMonWithMove(u16 moveId);
|
||||
|
||||
void ResetWaldaWallpaper(void);
|
||||
void SetWaldaWallpaperLockedOrUnlocked(bool32 unlocked);
|
||||
bool32 IsWaldaWallpaperUnlocked(void);
|
||||
|
||||
@@ -18,19 +18,10 @@ void SummaryScreen_SetAnimDelayTaskId(u8 taskId);
|
||||
// such as move re-ordering, are available in the different modes.
|
||||
enum PokemonSummaryScreenMode
|
||||
{
|
||||
PSS_MODE_NORMAL,
|
||||
PSS_MODE_LOCK_MOVES,
|
||||
PSS_MODE_BOX,
|
||||
PSS_MODE_SELECT_MOVE,
|
||||
};
|
||||
|
||||
enum PokemonSummaryScreenPage
|
||||
{
|
||||
PSS_PAGE_INFO,
|
||||
PSS_PAGE_SKILLS,
|
||||
PSS_PAGE_BATTLE_MOVES,
|
||||
PSS_PAGE_CONTEST_MOVES,
|
||||
PSS_PAGE_COUNT,
|
||||
SUMMARY_MODE_NORMAL,
|
||||
SUMMARY_MODE_LOCK_MOVES,
|
||||
SUMMARY_MODE_BOX,
|
||||
SUMMARY_MODE_SELECT_MOVE,
|
||||
};
|
||||
|
||||
#endif // GUARD_POKEMON_SUMMARY_SCREEN_H
|
||||
|
||||
@@ -982,7 +982,8 @@ extern const u8 gText_RibbonsVar1[];
|
||||
extern const u8 gText_OneDash[];
|
||||
extern const u8 gText_TwoDashes[];
|
||||
|
||||
extern const u8 *const gReturnToXStringsTable2[];
|
||||
extern const u8 *const gBagMenu_ReturnToStrings[];
|
||||
extern const u8 *const gPyramidBagMenu_ReturnToStrings[];
|
||||
|
||||
extern const u8 gText_NumPlayerLink[];
|
||||
extern const u8 gText_ConfirmLinkWhenPlayersReady[];
|
||||
|
||||
30
include/tv.h
30
include/tv.h
@@ -1,13 +1,10 @@
|
||||
#ifndef GUARD_TV_H
|
||||
#define GUARD_TV_H
|
||||
|
||||
#define SLOT_MACHINE 0
|
||||
#define ROULETTE 1
|
||||
|
||||
extern u8 *const gTVStringVarPtrs[3];
|
||||
|
||||
void ClearTVShowData(void);
|
||||
void sub_80EE184(void);
|
||||
void TryPutBreakingNewsOnAir(void);
|
||||
void TryPutBattleSeminarOnAir(u16 foeSpecies, u16 species, u8 moveIdx, const u16 *movePtr, u16 betterMove);
|
||||
void TryPutFrontierTVShowOnAir(u16 winStreak, u8 facility);
|
||||
void DoTVShow(void);
|
||||
@@ -23,41 +20,37 @@ void ReceiveTvShowsData(void *src, u32 size, u8 masterIdx);
|
||||
void TryPutSpotTheCutiesOnAir(struct Pokemon *pokemon, u8 ribbonMonDataIdx);
|
||||
u32 GetPlayerIDAsU32(void);
|
||||
bool8 GetPriceReduction(u8 newsKind);
|
||||
void sub_80F14F8(TVShow *shows);
|
||||
void SanitizeTVShowLocationsForRuby(TVShow *shows);
|
||||
size_t CountDigits(int value);
|
||||
u8 GetRibbonCount(struct Pokemon *pokemon);
|
||||
void AlertTVThatPlayerPlayedSlotMachine(u16 nCoinsSpent);
|
||||
void AlertTVThatPlayerPlayedRoulette(u16 nCoinsSpent);
|
||||
void AlertTVOfNewCoinTotal(u16 nCoinsPaidOut);
|
||||
void TryPutFindThatGamerOnAir(u16 nCoinsPaidOut);
|
||||
void TryPutSecretBaseSecretsOnAir(void);
|
||||
void TryPutTodaysRivalTrainerOnAir(void);
|
||||
void TryPutTrendWatcherOnAir(const u16 *words);
|
||||
void sub_80EDA80(void);
|
||||
void ReceivePokeNewsData(void *src, u32 size, u8 masterIdx);
|
||||
void sub_80F0BB8(void);
|
||||
void DeactivateAllNormalTVShows(void);
|
||||
void RecordFishingAttemptForTV(bool8 caughtFish);
|
||||
void IncrementDailySlotsUses(void);
|
||||
void IncrementDailyRouletteUses(void);
|
||||
void IncrementDailyWildBattles(void);
|
||||
void IncrementDailyBerryBlender(void);
|
||||
void sub_80F1208(TVShow *shows);
|
||||
void sub_80EE44C(u8 nMonsCaught, u8 nPkblkUsed);
|
||||
void sub_80F14F8(TVShow *shows);
|
||||
size_t sub_80EF370(int value);
|
||||
void SanitizeTVShowsForRuby(TVShow *shows);
|
||||
void TryPutSafariFanClubOnAir(u8 nMonsCaught, u8 nPkblkUsed);
|
||||
bool8 Put3CheersForPokeblocksOnTheAir(const u8 *partnersName, u8 flavor, u8 unused, u8 sheen, u8 language);
|
||||
void SetPokemonAnglerSpecies(u16 species);
|
||||
void UpdateTVShowsPerDay(u16 days);
|
||||
void PutPokemonTodayCaughtOnAir(void);
|
||||
void TV_PutSecretBaseVisitOnTheAir(void);
|
||||
void TryPutPokemonTodayOnAir(void);
|
||||
void TryPutSecretBaseVisitOnAir(void);
|
||||
void PutBattleUpdateOnTheAir(u8 opponentLinkPlayerId, u16 move, u16 speciesPlayer, u16 speciesOpponent);
|
||||
void BravoTrainerPokemonProfile_BeforeInterview1(u16 move);
|
||||
void InterviewBefore(void);
|
||||
void InterviewAfter(void);
|
||||
void UpdateTVScreensOnMap(int, int);
|
||||
void TV_PrintIntToStringVar(u8 varIdx, int value);
|
||||
void SaveRecordedItemPurchasesForTVShow(void);
|
||||
void ConvertIntToDecimalString(u8 varIdx, int value);
|
||||
void TryPutSmartShopperOnAir(void);
|
||||
bool8 ShouldAirFrontierTVShow(void);
|
||||
void sub_80EE8C8(u16 winStreak, u8 facilityAndMode);
|
||||
void BravoTrainerPokemonProfile_BeforeInterview2(u8 contestStandingPlace);
|
||||
void ContestLiveUpdates_Init(u8 round1Placing);
|
||||
void ContestLiveUpdates_SetRound2Placing(u8 round2Placing);
|
||||
@@ -65,5 +58,8 @@ void ContestLiveUpdates_SetWinnerAppealFlag(u8 flag);
|
||||
void ContestLiveUpdates_SetWinnerMoveUsed(u16 move);
|
||||
void ContestLiveUpdates_SetLoserData(u8 flag, u8 loser);
|
||||
void ResetGabbyAndTy(void);
|
||||
u8 CheckForPlayersHouseNews(void);
|
||||
bool8 IsGabbyAndTyShowOnTheAir(void);
|
||||
void TryPutTrainerFanClubOnAir(void);
|
||||
|
||||
#endif //GUARD_TV_H
|
||||
|
||||
Reference in New Issue
Block a user