Merge pull request #1152 from GriffinRichards/doc-blender
Document berry blender
This commit is contained in:
@@ -1,6 +1,16 @@
|
||||
#ifndef GUARD_BERRY_BLENDER_H
|
||||
#define GUARD_BERRY_BLENDER_H
|
||||
|
||||
// Indices into gSendCmd / gRecvCmds
|
||||
#define BLENDER_COMM_INPUT_STATE 0
|
||||
#define BLENDER_COMM_RESP 1
|
||||
#define BLENDER_COMM_SCORE 2
|
||||
#define BLENDER_COMM_STOP_TYPE 2 // re-used
|
||||
#define BLENDER_COMM_PLAYER_ID 3
|
||||
#define BLENDER_COMM_UNUSED 4
|
||||
#define BLENDER_COMM_PROGRESS_BAR 5
|
||||
#define BLENDER_COMM_ARROW_POS 6
|
||||
|
||||
extern u8 gInGameOpponentsNo;
|
||||
|
||||
void DoBerryBlending(void);
|
||||
|
||||
@@ -102,6 +102,7 @@
|
||||
#define TEST_BUTTON(field, button) ({(field) & (button);})
|
||||
#define JOY_NEW(button) TEST_BUTTON(gMain.newKeys, button)
|
||||
#define JOY_HELD(button) TEST_BUTTON(gMain.heldKeys, button)
|
||||
#define JOY_HELD_RAW(button) TEST_BUTTON(gMain.heldKeysRaw, button)
|
||||
#define JOY_REPEAT(button) TEST_BUTTON(gMain.newAndRepeatedKeys, button)
|
||||
|
||||
#define S16TOPOSFLOAT(val) \
|
||||
|
||||
@@ -32,7 +32,7 @@ typedef union // size = 0x24
|
||||
/*0x01*/ bool8 active;
|
||||
/*0x02*/ u16 species;
|
||||
/*0x04*/ u16 words[6];
|
||||
/*0x10*/ u8 playerName[8];
|
||||
/*0x10*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
/*0x18*/ u8 language;
|
||||
} fanclubLetter;
|
||||
|
||||
@@ -42,7 +42,7 @@ typedef union // size = 0x24
|
||||
/*0x01*/ bool8 active;
|
||||
/*0x02*/ u16 var02;
|
||||
/*0x04*/ u16 words[6];
|
||||
/*0x10*/ u8 playerName[8];
|
||||
/*0x10*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
/*0x18*/ u8 language;
|
||||
} recentHappenings;
|
||||
|
||||
@@ -53,11 +53,11 @@ typedef union // size = 0x24
|
||||
/*0x02*/ u16 species;
|
||||
/*0x04*/ u8 friendshipHighNybble:4;
|
||||
/*0x04*/ u8 questionAsked:4;
|
||||
/*0x05*/ u8 playerName[8];
|
||||
/*0x05*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
/*0x0D*/ u8 language;
|
||||
/*0x0E*/ u8 pokemonNameLanguage;
|
||||
/*0x0F*/ u8 filler_0F[1];
|
||||
/*0x10*/ u8 nickname[8];
|
||||
/*0x10*/ u8 nickname[PLAYER_NAME_LENGTH + 1];
|
||||
/*0x18*/ u16 words18[2];
|
||||
/*0x1C*/ u16 words[4];
|
||||
} fanclubOpinions;
|
||||
@@ -78,7 +78,7 @@ typedef union // size = 0x24
|
||||
/*0x00*/ u8 kind;
|
||||
/*0x01*/ bool8 active;
|
||||
/*0x02*/ u16 species;
|
||||
/*0x04*/ u8 pokemonName[11];
|
||||
/*0x04*/ u8 pokemonName[POKEMON_NAME_LENGTH + 1];
|
||||
/*0x0F*/ u8 trainerName[11];
|
||||
/*0x1A*/ u8 random;
|
||||
/*0x1B*/ u8 random2;
|
||||
@@ -93,12 +93,12 @@ typedef union // size = 0x24
|
||||
/*0x01*/ bool8 active;
|
||||
/*0x02*/ u16 species;
|
||||
/*0x04*/ u16 words[2];
|
||||
/*0x08*/ u8 pokemonNickname[11];
|
||||
/*0x08*/ u8 pokemonNickname[POKEMON_NAME_LENGTH + 1];
|
||||
/*0x13*/ u8 contestCategory:3;
|
||||
/*0x13*/ u8 contestRank:2;
|
||||
/*0x13*/ u8 contestResult:2;
|
||||
/*0x14*/ u16 move;
|
||||
/*0x16*/ u8 playerName[8];
|
||||
/*0x16*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
/*0x1E*/ u8 language;
|
||||
/*0x1F*/ u8 pokemonNameLanguage;
|
||||
} bravoTrainer;
|
||||
@@ -107,7 +107,7 @@ typedef union // size = 0x24
|
||||
struct {
|
||||
/*0x00*/ u8 kind;
|
||||
/*0x01*/ bool8 active;
|
||||
/*0x02*/ u8 trainerName[8];
|
||||
/*0x02*/ u8 trainerName[PLAYER_NAME_LENGTH + 1];
|
||||
/*0x0A*/ u16 species;
|
||||
/*0x0C*/ u8 pokemonName[8];
|
||||
/*0x14*/ u16 defeatedSpecies;
|
||||
@@ -125,14 +125,14 @@ typedef union // size = 0x24
|
||||
/*0x00*/ u8 kind;
|
||||
/*0x01*/ bool8 active;
|
||||
/*0x02*/ u16 losingSpecies;
|
||||
/*0x04*/ u8 losingTrainerName[8];
|
||||
/*0x04*/ u8 losingTrainerName[PLAYER_NAME_LENGTH + 1];
|
||||
/*0x0C*/ u8 loserAppealFlag;
|
||||
/*0x0D*/ u8 round1Placing;
|
||||
/*0x0e*/ u8 round2Placing;
|
||||
/*0x0f*/ u8 winnerAppealFlag;
|
||||
/*0x10*/ u16 move;
|
||||
/*0x12*/ u16 winningSpecies;
|
||||
/*0x14*/ u8 winningTrainerName[8];
|
||||
/*0x14*/ u8 winningTrainerName[PLAYER_NAME_LENGTH + 1];
|
||||
/*0x1C*/ u8 category;
|
||||
/*0x1D*/ u8 winningTrainerLanguage;
|
||||
/*0x1E*/ u8 losingTrainerLanguage;
|
||||
@@ -144,9 +144,9 @@ typedef union // size = 0x24
|
||||
/*0x01*/ bool8 active;
|
||||
/*0x02*/ u8 sheen;
|
||||
/*0x03*/ u8 flavor:3;
|
||||
/*0x03*/ u8 unk_03_3:2;
|
||||
/*0x04*/ u8 worstBlenderName[8];
|
||||
/*0x0C*/ u8 playerName[8];
|
||||
/*0x03*/ u8 color:2;
|
||||
/*0x04*/ u8 worstBlenderName[PLAYER_NAME_LENGTH + 1];
|
||||
/*0x0C*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
/*0x14*/ u8 language;
|
||||
/*0x15*/ u8 worstBlenderLanguage;
|
||||
} threeCheers;
|
||||
@@ -156,8 +156,8 @@ typedef union // size = 0x24
|
||||
/*0x00*/ u8 kind;
|
||||
/*0x01*/ bool8 active;
|
||||
/*0x02*/ u16 speciesOpponent;
|
||||
/*0x04*/ u8 playerName[8];
|
||||
/*0x0C*/ u8 linkOpponentName[8];
|
||||
/*0x04*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
/*0x0C*/ u8 linkOpponentName[PLAYER_NAME_LENGTH + 1];
|
||||
/*0x14*/ u16 move;
|
||||
/*0x16*/ u16 speciesPlayer;
|
||||
/*0x18*/ u8 battleType;
|
||||
@@ -169,10 +169,10 @@ typedef union // size = 0x24
|
||||
struct {
|
||||
/*0x00*/ u8 kind;
|
||||
/*0x01*/ bool8 active;
|
||||
/*0x02*/ u8 playerName[8];
|
||||
/*0x02*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
/*0x0a*/ u8 idLo;
|
||||
/*0x0b*/ u8 idHi;
|
||||
/*0x0c*/ u8 idolName[8];
|
||||
/*0x0c*/ u8 idolName[PLAYER_NAME_LENGTH + 1];
|
||||
/*0x14*/ u16 words[1];
|
||||
/*0x16*/ u8 score;
|
||||
/*0x17*/ u8 language;
|
||||
@@ -183,9 +183,9 @@ typedef union // size = 0x24
|
||||
struct {
|
||||
/*0x00*/ u8 kind;
|
||||
/*0x01*/ bool8 active;
|
||||
/*0x02*/ u8 playerName[8];
|
||||
/*0x02*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
/*0x0a*/ u8 contestCategory;
|
||||
/*0x0b*/ u8 nickname[11];
|
||||
/*0x0b*/ u8 nickname[POKEMON_NAME_LENGTH + 1];
|
||||
/*0x16*/ u8 pokeblockState;
|
||||
/*0x17*/ u8 language;
|
||||
/*0x18*/ u8 pokemonNameLanguage;
|
||||
@@ -198,11 +198,11 @@ typedef union // size = 0x24
|
||||
/*0x01*/ bool8 active;
|
||||
/*0x02*/ u8 language;
|
||||
/*0x03*/ u8 language2;
|
||||
/*0x04*/ u8 nickname[11];
|
||||
/*0x04*/ u8 nickname[POKEMON_NAME_LENGTH + 1];
|
||||
/*0x0F*/ u8 ball;
|
||||
/*0x10*/ u16 species;
|
||||
/*0x12*/ u8 nBallsUsed;
|
||||
/*0x13*/ u8 playerName[8];
|
||||
/*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
} pokemonToday;
|
||||
|
||||
// TVSHOW_SMART_SHOPPER
|
||||
@@ -215,7 +215,7 @@ typedef union // size = 0x24
|
||||
/*0x06*/ u16 itemIds[3];
|
||||
/*0x0C*/ u16 itemAmounts[3];
|
||||
/*0x12*/ u8 shopLocation;
|
||||
/*0x13*/ u8 playerName[8];
|
||||
/*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
} smartshopperShow;
|
||||
|
||||
// TVSHOW_POKEMON_TODAY_FAILED
|
||||
@@ -229,7 +229,7 @@ typedef union // size = 0x24
|
||||
/*0x10*/ u8 nBallsUsed;
|
||||
/*0x11*/ u8 outcome;
|
||||
/*0x12*/ u8 location;
|
||||
/*0x13*/ u8 playerName[8];
|
||||
/*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
} pokemonTodayFailed;
|
||||
|
||||
// TVSHOW_FISHING_ADVICE
|
||||
@@ -241,7 +241,7 @@ typedef union // size = 0x24
|
||||
/*0x04*/ u16 species;
|
||||
/*0x06*/ u8 language;
|
||||
/*0x07*/ u8 pad07[12];
|
||||
/*0x13*/ u8 playerName[8];
|
||||
/*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
} pokemonAngler;
|
||||
|
||||
// TVSHOW_WORLD_OF_MASTERS
|
||||
@@ -255,7 +255,7 @@ typedef union // size = 0x24
|
||||
/*0x0a*/ u8 location;
|
||||
/*0x0b*/ u8 language;
|
||||
/*0x0c*/ u8 pad0c[7];
|
||||
/*0x13*/ u8 playerName[8];
|
||||
/*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
} worldOfMasters;
|
||||
|
||||
// TVSHOW_TODAYS_RIVAL_TRAINER
|
||||
@@ -271,7 +271,7 @@ typedef union // size = 0x24
|
||||
/*0x0a*/ u16 mapLayoutId;
|
||||
/*0x0c*/ u8 language;
|
||||
/*0x0d*/ u8 filler_0d[6];
|
||||
/*0x13*/ u8 playerName[8];
|
||||
/*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
} rivalTrainer;
|
||||
|
||||
// TVSHOW_TREND_WATCHER
|
||||
@@ -283,7 +283,7 @@ typedef union // size = 0x24
|
||||
/*0x08*/ u8 gender;
|
||||
/*0x09*/ u8 language;
|
||||
/*0x0a*/ u8 filler_0a[9];
|
||||
/*0x13*/ u8 playerName[8];
|
||||
/*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
} trendWatcher;
|
||||
|
||||
// TVSHOW_TREASURE_INVESTIGATORS
|
||||
@@ -295,7 +295,7 @@ typedef union // size = 0x24
|
||||
/*0x05*/ u8 language;
|
||||
/*0x06*/ u16 mapLayoutId;
|
||||
/*0x08*/ u8 filler_08[11];
|
||||
/*0x13*/ u8 playerName[8];
|
||||
/*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
} treasureInvestigators;
|
||||
|
||||
// TVSHOW_FIND_THAT_GAMER
|
||||
@@ -308,7 +308,7 @@ typedef union // size = 0x24
|
||||
/*0x06*/ u8 filler_06[2];
|
||||
/*0x08*/ u8 language;
|
||||
/*0x09*/ u8 filler_09[10];
|
||||
/*0x13*/ u8 playerName[8];
|
||||
/*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
} findThatGamer;
|
||||
|
||||
// TVSHOW_BREAKING_NEWS
|
||||
@@ -324,7 +324,7 @@ typedef union // size = 0x24
|
||||
/*0x0c*/ u16 lastUsedMove;
|
||||
/*0x0e*/ u8 language;
|
||||
/*0x0f*/ u8 filler_0f[4];
|
||||
/*0x13*/ u8 playerName[8];
|
||||
/*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
} breakingNews;
|
||||
|
||||
// TVSHOW_SECRET_BASE_VISIT
|
||||
@@ -338,7 +338,7 @@ typedef union // size = 0x24
|
||||
/*0x0a*/ u16 move;
|
||||
/*0x0c*/ u8 language;
|
||||
/*0x0d*/ u8 filler_0d[6];
|
||||
/*0x13*/ u8 playerName[8];
|
||||
/*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
} secretBaseVisit;
|
||||
|
||||
// TVSHOW_LOTTO_WINNER
|
||||
@@ -349,7 +349,7 @@ typedef union // size = 0x24
|
||||
/*0x04*/ u8 whichPrize;
|
||||
/*0x05*/ u8 language;
|
||||
/*0x06*/ u8 filler_06[13];
|
||||
/*0x13*/ u8 playerName[8];
|
||||
/*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
} lottoWinner;
|
||||
|
||||
// TVSHOW_BATTLE_SEMINAR
|
||||
@@ -364,7 +364,7 @@ typedef union // size = 0x24
|
||||
/*0x10*/ u8 nOtherMoves;
|
||||
/*0x11*/ u8 language;
|
||||
/*0x12*/ u8 filler_12[1];
|
||||
/*0x13*/ u8 playerName[8];
|
||||
/*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
} battleSeminar;
|
||||
|
||||
// TVSHOW_TRAINER_FAN_CLUB
|
||||
@@ -375,7 +375,7 @@ typedef union // size = 0x24
|
||||
/*0x04*/ u16 words[2];
|
||||
/*0x08*/ u8 language;
|
||||
/*0x09*/ u8 filler_09[10];
|
||||
/*0x13*/ u8 playerName[8];
|
||||
/*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
} trainerFanClub;
|
||||
|
||||
// TVSHOW_CUTIES
|
||||
@@ -384,11 +384,11 @@ typedef union // size = 0x24
|
||||
/*0x01*/ bool8 active;
|
||||
/*0x02*/ u8 nRibbons;
|
||||
/*0x03*/ u8 selectedRibbon;
|
||||
/*0x04*/ u8 nickname[11];
|
||||
/*0x04*/ u8 nickname[POKEMON_NAME_LENGTH + 1];
|
||||
/*0x0f*/ u8 language;
|
||||
/*0x10*/ u8 pokemonNameLanguage;
|
||||
/*0x11*/ u8 filler_12[2];
|
||||
/*0x13*/ u8 playerName[8];
|
||||
/*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
} cuties;
|
||||
|
||||
// TVSHOW_FRONTIER
|
||||
@@ -403,7 +403,7 @@ typedef union // size = 0x24
|
||||
/*0x0c*/ u8 language;
|
||||
/*0x0d*/ u8 facility;
|
||||
/*0x0e*/ u8 filler_0e[5];
|
||||
/*0x13*/ u8 playerName[8];
|
||||
/*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
} frontier;
|
||||
|
||||
// TVSHOW_NUMBER_ONE
|
||||
@@ -414,7 +414,7 @@ typedef union // size = 0x24
|
||||
/*0x04*/ u8 actionIdx;
|
||||
/*0x05*/ u8 language;
|
||||
/*0x06*/ u8 filler_06[13];
|
||||
/*0x13*/ u8 playerName[8];
|
||||
/*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
} numberOne;
|
||||
|
||||
// TVSHOW_SECRET_BASE_SECRETS
|
||||
@@ -422,11 +422,11 @@ typedef union // size = 0x24
|
||||
/*0x00*/ u8 kind;
|
||||
/*0x01*/ bool8 active;
|
||||
/*0x02*/ u16 stepsInBase;
|
||||
/*0x04*/ u8 baseOwnersName[8];
|
||||
/*0x04*/ u8 baseOwnersName[PLAYER_NAME_LENGTH + 1];
|
||||
/*0x0c*/ u32 flags;
|
||||
/*0x10*/ u16 item;
|
||||
/*0x12*/ u8 savedState;
|
||||
/*0x13*/ u8 playerName[8];
|
||||
/*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
/*0x1b*/ u8 language;
|
||||
/*0x1c*/ u8 baseOwnersNameLanguage;
|
||||
} secretBaseSecrets;
|
||||
@@ -439,7 +439,7 @@ typedef union // size = 0x24
|
||||
/*0x03*/ u8 nPkblkUsed;
|
||||
/*0x04*/ u8 language;
|
||||
/*0x05*/ u8 filler_05[14];
|
||||
/*0x13*/ u8 playerName[8];
|
||||
/*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
} safariFanClub;
|
||||
|
||||
// Mass Outbreak
|
||||
|
||||
@@ -4812,16 +4812,16 @@ extern const u16 gUsePokeblockGraph_Pal[];
|
||||
extern const u16 gUsePokeblockNatureWin_Pal[];
|
||||
|
||||
// Berry blender
|
||||
extern const u32 gBerryBlenderArrowTiles[];
|
||||
extern const u32 gBerryBlenderStartTiles[];
|
||||
extern const u32 gBerryBlenderMarubatsuTiles[];
|
||||
extern const u32 gBerryBlenderParticlesTiles[];
|
||||
extern const u32 gBerryBlenderCountdownNumbersTiles[];
|
||||
extern const u32 gBerryBlenderPlayerArrow_Gfx[];
|
||||
extern const u32 gBerryBlenderStart_Gfx[];
|
||||
extern const u32 gBerryBlenderScoreSymbols_Gfx[];
|
||||
extern const u32 gBerryBlenderParticles_Gfx[];
|
||||
extern const u32 gBerryBlenderCountdownNumbers_Gfx[];
|
||||
extern const u16 gBerryBlenderMiscPalette[];
|
||||
extern const u16 gBerryBlenderArrowPalette[];
|
||||
extern const u32 sBlenderCenterGfx[];
|
||||
extern const u32 gUnknown_08D91DB8[];
|
||||
extern const u32 gUnknown_08D927EC[];
|
||||
extern const u32 gBerryBlenderCenter_Gfx[];
|
||||
extern const u32 gBerryBlenderOuter_Gfx[];
|
||||
extern const u32 gBerryBlenderOuter_Tilemap[];
|
||||
|
||||
// Slot Machine
|
||||
extern const u32 gSlotMachineDigitalDisplay_Gfx[];
|
||||
|
||||
@@ -93,7 +93,7 @@ void CB2_GoToSellMenu(void);
|
||||
void GoToBagMenu(u8 bagMenuType, u8 pocketId, void ( *postExitMenuMainCallback2)());
|
||||
void DoWallyTutorialBagMenu(void);
|
||||
void ResetBagScrollPositions(void);
|
||||
void ChooseBerrySetCallback(void (*callback)(void));
|
||||
void ChooseBerryForMachine(void (*exitCallback)(void));
|
||||
void CB2_ChooseBerry(void);
|
||||
void Task_FadeAndCloseBagMenu(u8 taskId);
|
||||
void BagMenu_YesNo(u8, u8, const struct YesNoFuncTable*);
|
||||
|
||||
@@ -19,7 +19,7 @@ void sub_80D4FC8(u8 arg0);
|
||||
void sub_80D4FEC(u8 arg0);
|
||||
u8 CreateBerryTagSprite(u8 id, s16 x, s16 y);
|
||||
void FreeBerryTagSpritePalette(void);
|
||||
u8 LoadSpinningBerryPicGfx(u8 berryId, u8 x, u8 y, bool8 startAffine);
|
||||
u8 CreateSpinningBerrySprite(u8 berryId, u8 x, u8 y, bool8 startAffine);
|
||||
u8 CreateBerryFlavorCircleSprite(s16 x);
|
||||
|
||||
#define TAG_BAG_GFX 100
|
||||
|
||||
102
include/link.h
102
include/link.h
@@ -48,52 +48,60 @@
|
||||
#define EXTRACT_LINK_ERRORS(status) \
|
||||
(((status) & LINK_STAT_ERRORS) >> LINK_STAT_ERRORS_SHIFT)
|
||||
|
||||
#define LINKCMD_SEND_LINK_TYPE 0x2222
|
||||
#define LINKCMD_READY_EXIT_STANDBY 0x2FFE
|
||||
#define LINKCMD_SEND_HELD_KEYS 0x4444
|
||||
#define LINKCMD_0x5555 0x5555
|
||||
#define LINKCMD_0x5566 0x5566
|
||||
#define LINKCMD_READY_CLOSE_LINK 0x5FFF
|
||||
#define LINKCMD_0x6666 0x6666
|
||||
#define LINKCMD_0x7777 0x7777
|
||||
#define LINKCMD_CONT_BLOCK 0x8888
|
||||
#define LINKCMD_0xAAAA 0xAAAA
|
||||
#define LINKCMD_0xAAAB 0xAAAB
|
||||
#define LINKCMD_READY_TO_TRADE 0xAABB
|
||||
#define LINKCMD_READY_FINISH_TRADE 0xABCD
|
||||
#define LINKCMD_INIT_BLOCK 0xBBBB
|
||||
#define LINKCMD_READY_CANCEL_TRADE 0xBBCC
|
||||
#define LINKCMD_SEND_HELD_KEYS_2 0xCAFE
|
||||
#define LINKCMD_SEND_BLOCK_REQ 0xCCCC
|
||||
#define LINKCMD_START_TRADE 0xCCDD
|
||||
#define LINKCMD_CONFIRM_FINISH_TRADE 0xDCBA
|
||||
#define LINKCMD_SET_MONS_TO_TRADE 0xDDDD
|
||||
#define LINKCMD_0xDDEE 0xDDEE
|
||||
#define LINKCMD_REQUEST_CANCEL 0xEEAA
|
||||
#define LINKCMD_CANCEL_TRADE 0xEEBB
|
||||
#define LINKCMD_0xEECC 0xEECC
|
||||
#define LINKCMD_BLENDER_STOP 0x1111
|
||||
#define LINKCMD_SEND_LINK_TYPE 0x2222
|
||||
#define LINKCMD_BLENDER_SCORE_MISS 0x2345
|
||||
#define LINKCMD_READY_EXIT_STANDBY 0x2FFE
|
||||
#define LINKCMD_SEND_PACKET 0x2FFF
|
||||
#define LINKCMD_BLENDER_SEND_KEYS 0x4444
|
||||
#define LINKCMD_BLENDER_SCORE_BEST 0x4523
|
||||
#define LINKCMD_BLENDER_SCORE_GOOD 0x5432
|
||||
#define LINKCMD_0x5555 0x5555
|
||||
#define LINKCMD_0x5566 0x5566
|
||||
#define LINKCMD_READY_CLOSE_LINK 0x5FFF
|
||||
#define LINKCMD_0x6666 0x6666
|
||||
#define LINKCMD_0x7777 0x7777
|
||||
#define LINKCMD_BLENDER_PLAY_AGAIN 0x7779
|
||||
#define LINKCMD_0x7FFF 0x7FFF
|
||||
#define LINKCMD_CONT_BLOCK 0x8888
|
||||
#define LINKCMD_BLENDER_NO_BERRIES 0x9999
|
||||
#define LINKCMD_BLENDER_NO_PBLOCK_SPACE 0xAAAA
|
||||
#define LINKCMD_0xAAAB 0xAAAB
|
||||
#define LINKCMD_READY_TO_TRADE 0xAABB
|
||||
#define LINKCMD_READY_FINISH_TRADE 0xABCD
|
||||
#define LINKCMD_INIT_BLOCK 0xBBBB
|
||||
#define LINKCMD_READY_CANCEL_TRADE 0xBBCC
|
||||
#define LINKCMD_SEND_HELD_KEYS 0xCAFE
|
||||
#define LINKCMD_SEND_BLOCK_REQ 0xCCCC
|
||||
#define LINKCMD_START_TRADE 0xCCDD
|
||||
#define LINKCMD_CONFIRM_FINISH_TRADE 0xDCBA
|
||||
#define LINKCMD_SET_MONS_TO_TRADE 0xDDDD
|
||||
#define LINKCMD_0xDDEE 0xDDEE
|
||||
#define LINKCMD_REQUEST_CANCEL 0xEEAA
|
||||
#define LINKCMD_CANCEL_TRADE 0xEEBB
|
||||
#define LINKCMD_0xEECC 0xEECC
|
||||
|
||||
#define LINKTYPE_TRADE 0x1111
|
||||
#define LINKTYPE_TRADE_CONNECTING 0x1122
|
||||
#define LINKTYPE_TRADE_SETUP 0x1133
|
||||
#define LINKTYPE_TRADE_DISCONNECTED 0x1144
|
||||
#define LINKTYPE_BATTLE 0x2211
|
||||
#define LINKTYPE_0x2222 0x2222 // unused battle?
|
||||
#define LINKTYPE_SINGLE_BATTLE 0x2233
|
||||
#define LINKTYPE_DOUBLE_BATTLE 0x2244
|
||||
#define LINKTYPE_MULTI_BATTLE 0x2255
|
||||
#define LINKTYPE_BATTLE_TOWER_50 0x2266
|
||||
#define LINKTYPE_BATTLE_TOWER_OPEN 0x2277
|
||||
#define LINKTYPE_BATTLE_TOWER 0x2288
|
||||
#define LINKTYPE_RECORD_MIX_BEFORE 0x3311
|
||||
#define LINKTYPE_RECORD_MIX_AFTER 0x3322
|
||||
#define LINKTYPE_BERRY_BLENDER_SETUP 0x4411
|
||||
#define LINKTYPE_BERRY_BLENDER 0x4422
|
||||
#define LINKTYPE_MYSTERY_EVENT 0x5501
|
||||
#define LINKTYPE_0x5502 0x5502 // unused?
|
||||
#define LINKTYPE_EREADER 0x5503
|
||||
#define LINKTYPE_CONTEST_GMODE 0x6601
|
||||
#define LINKTYPE_CONTEST_EMODE 0x6602
|
||||
#define LINKTYPE_TRADE 0x1111
|
||||
#define LINKTYPE_TRADE_CONNECTING 0x1122
|
||||
#define LINKTYPE_TRADE_SETUP 0x1133
|
||||
#define LINKTYPE_TRADE_DISCONNECTED 0x1144
|
||||
#define LINKTYPE_BATTLE 0x2211
|
||||
#define LINKTYPE_0x2222 0x2222 // unused battle?
|
||||
#define LINKTYPE_SINGLE_BATTLE 0x2233
|
||||
#define LINKTYPE_DOUBLE_BATTLE 0x2244
|
||||
#define LINKTYPE_MULTI_BATTLE 0x2255
|
||||
#define LINKTYPE_BATTLE_TOWER_50 0x2266
|
||||
#define LINKTYPE_BATTLE_TOWER_OPEN 0x2277
|
||||
#define LINKTYPE_BATTLE_TOWER 0x2288
|
||||
#define LINKTYPE_RECORD_MIX_BEFORE 0x3311
|
||||
#define LINKTYPE_RECORD_MIX_AFTER 0x3322
|
||||
#define LINKTYPE_BERRY_BLENDER_SETUP 0x4411
|
||||
#define LINKTYPE_BERRY_BLENDER 0x4422
|
||||
#define LINKTYPE_MYSTERY_EVENT 0x5501
|
||||
#define LINKTYPE_0x5502 0x5502 // unused?
|
||||
#define LINKTYPE_EREADER 0x5503
|
||||
#define LINKTYPE_CONTEST_GMODE 0x6601
|
||||
#define LINKTYPE_CONTEST_EMODE 0x6602
|
||||
|
||||
struct LinkStatus
|
||||
{
|
||||
@@ -230,7 +238,7 @@ extern u16 gSendCmd[CMD_LENGTH];
|
||||
extern struct LinkPlayer gLinkPlayers[5];
|
||||
extern u16 word_3002910[];
|
||||
extern bool8 gReceivedRemoteLinkPlayers;
|
||||
extern u32 gUnknown_020223C0;
|
||||
extern u32 gBerryBlenderKeySendAttempts;
|
||||
extern bool8 gLinkVSyncDisabled;
|
||||
extern u32 gLinkStatus;
|
||||
|
||||
@@ -280,7 +288,7 @@ u8 IsLinkMaster(void);
|
||||
void SetCloseLinkCallback(void);
|
||||
bool8 HandleLinkConnection(void);
|
||||
void SetLinkDebugValues(u32 seed, u32 flags);
|
||||
void sub_800A418(void);
|
||||
void SetBerryBlenderLinkCallback(void);
|
||||
void SetSuppressLinkErrorMessage(bool8 flag);
|
||||
void sub_800B524(struct LinkPlayer *linkPlayer);
|
||||
u8 GetSioMultiSI(void);
|
||||
|
||||
@@ -5,18 +5,18 @@
|
||||
#include "link.h"
|
||||
#include "AgbRfu_LinkManager.h"
|
||||
|
||||
#define RFU_COMMAND_0x4400 0x4400
|
||||
#define RFU_COMMAND_0x8800 0x8800
|
||||
#define RFU_COMMAND_0x8900 0x8900
|
||||
#define RFU_COMMAND_SEND_BLOCK_REQ 0xA100
|
||||
#define RFU_COMMAND_0x7700 0x7700
|
||||
#define RFU_COMMAND_0x7800 0x7800
|
||||
#define RFU_COMMAND_READY_EXIT_STANDBY 0x6600
|
||||
#define RFU_COMMAND_READY_CLOSE_LINK 0x5F00
|
||||
#define RFU_COMMAND_0x2F00 0x2F00
|
||||
#define RFU_COMMAND_0xBE00 0xBE00
|
||||
#define RFU_COMMAND_0xEE00 0xEE00
|
||||
#define RFU_COMMAND_0xED00 0xED00
|
||||
#define RFUCMD_SEND_PACKET 0x2F00
|
||||
#define RFUCMD_BLENDER_SEND_KEYS 0x4400
|
||||
#define RFUCMD_READY_CLOSE_LINK 0x5F00
|
||||
#define RFUCMD_READY_EXIT_STANDBY 0x6600
|
||||
#define RFUCMD_0x7700 0x7700
|
||||
#define RFUCMD_0x7800 0x7800
|
||||
#define RFUCMD_0x8800 0x8800
|
||||
#define RFUCMD_0x8900 0x8900
|
||||
#define RFUCMD_SEND_BLOCK_REQ 0xA100
|
||||
#define RFUCMD_SEND_HELD_KEYS 0xBE00
|
||||
#define RFUCMD_0xED00 0xED00
|
||||
#define RFUCMD_0xEE00 0xEE00
|
||||
|
||||
#define RFU_SERIAL_7F7D 0x7F7D
|
||||
|
||||
@@ -29,6 +29,8 @@
|
||||
#define BACKUP_QUEUE_NUM_SLOTS 2
|
||||
#define BACKUP_QUEUE_SLOT_LENGTH 14
|
||||
|
||||
#define RFU_PACKET_SIZE 6
|
||||
|
||||
#define RFU_STATUS_OK 0
|
||||
#define RFU_STATUS_FATAL_ERROR 1
|
||||
#define RFU_STATUS_CONNECTION_ERROR 2
|
||||
@@ -140,7 +142,7 @@ struct GFRfuManager
|
||||
/* 0x0ef */ bool8 isShuttingDown;
|
||||
/* 0x0f0 */ u8 linkLossRecoveryState;
|
||||
/* 0x0f1 */ u8 status;
|
||||
/* 0x0f2 */ u16 unk_f2[6];
|
||||
/* 0x0f2 */ u16 packet[RFU_PACKET_SIZE];
|
||||
/* 0x0fe */ u16 resendExitStandbyTimer;
|
||||
/* 0x100 */ u16 unk_100;
|
||||
/* 0x102 */ u8 unk_102;
|
||||
@@ -197,7 +199,7 @@ void Rfu_SetBlockReceivedFlag(u8 who);
|
||||
void Rfu_ResetBlockReceivedFlag(u8 who);
|
||||
bool32 IsSendingKeysToRfu(void);
|
||||
void StartSendingKeysToRfu(void);
|
||||
void sub_800F850(void);
|
||||
void Rfu_SetBerryBlenderLinkCallback(void);
|
||||
u8 Rfu_GetBlockReceivedStatus(void);
|
||||
bool32 Rfu_InitBlockSend(const u8 *src, size_t size);
|
||||
void ClearLinkRfuCallback(void);
|
||||
@@ -250,7 +252,7 @@ void SetTradeBoardRegisteredMonInfo(u32 type, u32 species, u32 level);
|
||||
void InitializeRfuLinkManager_EnterUnionRoom(void);
|
||||
void sub_8012188(const u8 *name, struct GFtgtGname *structPtr, u8 a2);
|
||||
bool32 IsUnionRoomListenTaskActive(void);
|
||||
void sub_800FE50(void *a0);
|
||||
void Rfu_SendPacket(void *data);
|
||||
bool32 PlayerHasMetTrainerBefore(u16 id, u8 *name);
|
||||
void sub_8011DE0(u32 arg0);
|
||||
u8 sub_801100C(s32 a0);
|
||||
|
||||
@@ -9,12 +9,21 @@
|
||||
|
||||
enum
|
||||
{
|
||||
PBLOCK_CLR_BLACK,
|
||||
PBLOCK_CLR_NONE,
|
||||
PBLOCK_CLR_RED,
|
||||
PBLOCK_CLR_BLUE,
|
||||
PBLOCK_CLR_PINK,
|
||||
PBLOCK_CLR_GREEN,
|
||||
PBLOCK_CLR_YELLOW
|
||||
PBLOCK_CLR_YELLOW,
|
||||
PBLOCK_CLR_PURPLE,
|
||||
PBLOCK_CLR_INDIGO,
|
||||
PBLOCK_CLR_BROWN,
|
||||
PBLOCK_CLR_LITE_BLUE,
|
||||
PBLOCK_CLR_OLIVE,
|
||||
PBLOCK_CLR_GRAY,
|
||||
PBLOCK_CLR_BLACK,
|
||||
PBLOCK_CLR_WHITE,
|
||||
PBLOCK_CLR_GOLD,
|
||||
};
|
||||
|
||||
enum
|
||||
|
||||
@@ -2983,4 +2983,9 @@ extern const u8 gText_Smartness[];
|
||||
extern const u8 gText_Cuteness[];
|
||||
extern const u8 gText_Beauty3[];
|
||||
|
||||
// Berry Blender
|
||||
extern const u8 gText_SavingDontTurnOff2[];
|
||||
extern const u8 gText_BlenderMaxSpeedRecord[];
|
||||
extern const u8 gText_234Players[];
|
||||
|
||||
#endif // GUARD_STRINGS_H
|
||||
|
||||
Reference in New Issue
Block a user