More trade documentation

This commit is contained in:
GriffinR 2019-10-09 05:56:44 -04:00
parent d1bcd60b58
commit 2c062dc764
21 changed files with 1132 additions and 1109 deletions

View File

@ -4,6 +4,8 @@
#define TRADE_PLAYER 0 #define TRADE_PLAYER 0
#define TRADE_PARTNER 1 #define TRADE_PARTNER 1
#define LINK_TRADE_TIMEOUT 300
// In-game Trade IDs // In-game Trade IDs
#define INGAME_TRADE_SEEDOT 0 #define INGAME_TRADE_SEEDOT 0
#define INGAME_TRADE_PLUSLE 1 #define INGAME_TRADE_PLUSLE 1
@ -15,8 +17,8 @@
#define PARTNER_MON_INVALID 2 #define PARTNER_MON_INVALID 2
// Flag IDs for sending link data // Flag IDs for sending link data
#define CHOSE_VALID_MON 1 #define INITIATE_TRADE 1
#define CHOSE_INVALID_MON 2 #define CANCEL_TRADE 2
#define WANTS_TO_TRADE 1 #define WANTS_TO_TRADE 1
#define WANTS_TO_CANCEL 2 #define WANTS_TO_CANCEL 2
@ -29,15 +31,20 @@
#define CANT_TRADE_EGG2 5 #define CANT_TRADE_EGG2 5
// Indexes for sTradeActionTexts // Indexes for sTradeActionTexts
#define TRADE_ACTION_TEXT_CANCEL 0 #define TRADE_TEXT_CANCEL 0
#define TRADE_ACTION_TEXT_CHOOSE_MON 1 #define TRADE_TEXT_CHOOSE_MON 1
#define TRADE_ACTION_TEXT_SUMMARY 2 #define TRADE_TEXT_SUMMARY 2
#define TRADE_ACTION_TEXT_TRADE 3 #define TRADE_TEXT_TRADE 3
#define TRADE_ACTION_TEXT_CANCEL_TRADE 4 #define TRADE_TEXT_CANCEL_TRADE 4
#define TRADE_ACTION_TEXT_JP_QUIT 5 #define TRADE_TEXT_JP_QUIT 5
#define MENU_ACTION_SUMMARY 0 #define MENU_ACTION_SUMMARY 0
#define MENU_ACTION_TRADE 1 #define MENU_ACTION_TRADE 1
#define MENU_ACTION_CONFIRM_TRADE 0
#define MENU_ACTION_CANCEL_TRADE 1
#define DRAW_PARTY_BEGIN 1
#define DRAW_PARTY_FINISH 5
// Message indexes for sTradeMessages // Message indexes for sTradeMessages
#define TRADE_MSG_STANDBY 0 #define TRADE_MSG_STANDBY 0
@ -65,6 +72,27 @@
#define QUEUE_DELAY_MSG 3 #define QUEUE_DELAY_MSG 3
#define QUEUE_DELAY_DATA 5 #define QUEUE_DELAY_DATA 5
// IDs for CallTradeMenuFunc
#define TRADEMENUFUNC_MAIN_MENU 0
#define TRADEMENUFUNC_SELECTED_MON 1
#define TRADEMENUFUNC_SHOW_MON_SUMMARY 2
#define TRADEMENUFUNC_CONFIRM_OR_CANCEL_TRADE 3
#define TRADEMENUFUNC_CANCEL_TRADE_PROMPT 4
#define TRADEMENUFUNC_UNUSED_5 5
#define TRADEMENUFUNC_BOTH_MONS_SELECTED 6
#define TRADEMENUFUNC_CONFIRM_TRADE_PROMPT 7
#define TRADEMENUFUNC_REDRAW_MAIN_MENU 8
#define TRADEMENUFUNC_LINK_TRADE_FADE_OUT 9
#define TRADEMENUFUNC_LINK_TRADE_WAIT_FADE 10
#define TRADEMENUFUNC_CANCEL_TRADE_1 11
#define TRADEMENUFUNC_CANCEL_TRADE_2 12
#define TRADEMENUFUNC_START_LINK_TRADE 13
#define TRADEMENUFUNC_DELAY_TRADE_CONFIRM 14
#define TRADEMENUFUNC_UNUSED_15 15
#define TRADEMENUFUNC_LINK_TRADE_WAIT_QUEUE 16
#define TRADEMENUFUNC_PARTNER_MON_INVALID 17
#define TRADEMENUFUNC_STANDBY 100
// Message indexes for sUnionRoomTradeMessages // Message indexes for sUnionRoomTradeMessages
#define UR_TRADE_MSG_NONE 0 #define UR_TRADE_MSG_NONE 0
#define UR_TRADE_MSG_NOT_MON_PARTNER_WANTS 1 #define UR_TRADE_MSG_NOT_MON_PARTNER_WANTS 1
@ -82,7 +110,5 @@
#define CANT_REGISTER_MON 1 #define CANT_REGISTER_MON 1
#define CANT_REGISTER_EGG 2 #define CANT_REGISTER_EGG 2
#define LINK_TRADE_TIMEOUT 300
#endif //GUARD_CONSTANTS_TRADE_H #endif //GUARD_CONSTANTS_TRADE_H

View File

@ -4853,7 +4853,7 @@ extern const u8 gTradeMenu_Gfx[];
extern const u16 gUnknown_08DDCF04[]; extern const u16 gUnknown_08DDCF04[];
extern const u16 gTradeGba2_Pal[]; extern const u16 gTradeGba2_Pal[];
extern const u8 gTradeGba_Gfx[]; extern const u8 gTradeGba_Gfx[];
extern const u16 gUnknown_08DDD704[]; extern const u16 gTradeMenuMonBox_Tilemap[];
extern const u8 gTradeButtons_Gfx[]; extern const u8 gTradeButtons_Gfx[];
extern const u16 gUnknown_08DDB444[]; extern const u16 gUnknown_08DDB444[];

View File

@ -48,31 +48,30 @@
#define EXTRACT_LINK_ERRORS(status) \ #define EXTRACT_LINK_ERRORS(status) \
(((status) & LINK_STAT_ERRORS) >> LINK_STAT_ERRORS_SHIFT) (((status) & LINK_STAT_ERRORS) >> LINK_STAT_ERRORS_SHIFT)
#define LINKCMD_SEND_LINK_TYPE 0x2222 #define LINKCMD_SEND_LINK_TYPE 0x2222
#define LINKCMD_0x2FFE 0x2FFE #define LINKCMD_0x2FFE 0x2FFE
#define LINKCMD_SEND_HELD_KEYS 0x4444 #define LINKCMD_SEND_HELD_KEYS 0x4444
#define LINKCMD_0x5555 0x5555 #define LINKCMD_0x5555 0x5555
#define LINKCMD_0x5566 0x5566 #define LINKCMD_0x5566 0x5566
#define LINKCMD_0x5FFF 0x5FFF #define LINKCMD_0x5FFF 0x5FFF
#define LINKCMD_0x6666 0x6666 #define LINKCMD_0x6666 0x6666
#define LINKCMD_0x7777 0x7777 #define LINKCMD_0x7777 0x7777
#define LINKCMD_CONT_BLOCK 0x8888 #define LINKCMD_CONT_BLOCK 0x8888
#define LINKCMD_0xAAAA 0xAAAA #define LINKCMD_0xAAAA 0xAAAA
#define LINKCMD_0xAAAB 0xAAAB #define LINKCMD_0xAAAB 0xAAAB
#define LINKCMD_0xAABB 0xAABB // used in trade #define LINKCMD_READY_TO_TRADE 0xAABB // used in trade
#define LINKCMD_INIT_BLOCK 0xBBBB #define LINKCMD_0xABCD 0xABCD // used in trade
#define LINKCMD_0xBBCC 0xBBCC // used in trade #define LINKCMD_INIT_BLOCK 0xBBBB
#define LINKCMD_SEND_HELD_KEYS_2 0xCAFE #define LINKCMD_SET_CANCEL_TRADE 0xBBCC // used in trade
#define LINKCMD_0xCCCC 0xCCCC #define LINKCMD_SEND_HELD_KEYS_2 0xCAFE
#define LINKCMD_0xCCDD 0xCCDD // all below linkcmds used in trade #define LINKCMD_0xCCCC 0xCCCC
#define LINKCMD_0xDDDD 0xDDDD #define LINKCMD_START_TRADE 0xCCDD // all below linkcmds used in trade
#define LINKCMD_0xDDEE 0xDDEE #define LINKCMD_0xDCBA 0xDCBA
#define LINKCMD_0xEEAA 0xEEAA #define LINKCMD_SET_MONS_TO_TRADE 0xDDDD
#define LINKCMD_0xEEBB 0xEEBB #define LINKCMD_0xDDEE 0xDDEE
#define LINKCMD_0xEECC 0xEECC #define LINKCMD_REQUEST_CANCEL 0xEEAA
#define LINKCMD_0xEEBB 0xEEBB
#define LINKCMD_0xABCD 0xABCD #define LINKCMD_PARTNER_WANTS_TRADE 0xEECC
#define LINKCMD_0xDCBA 0xDCBA
struct LinkStatus struct LinkStatus
@ -132,7 +131,10 @@ struct LinkPlayer
/* 0x00 */ u16 version; /* 0x00 */ u16 version;
/* 0x02 */ u16 lp_field_2; /* 0x02 */ u16 lp_field_2;
/* 0x04 */ u32 trainerId; /* 0x04 */ u32 trainerId;
/* 0x08 */ u8 name[11]; /* 0x08 */ u8 name[PLAYER_NAME_LENGTH + 1];
/* 0x10 */ u8 progressFlags; // 0x0F is hasClearedGame, 0xF0 is hasNationalDex
/* 0x11 */ u8 neverRead;
/* 0x12 */ u8 progressFlagsCopy;
/* 0x13 */ u8 gender; /* 0x13 */ u8 gender;
/* 0x14 */ u32 linkType; /* 0x14 */ u32 linkType;
/* 0x18 */ u16 id; // battler id in battles /* 0x18 */ u16 id; // battler id in battles

View File

@ -228,7 +228,7 @@ void ClearLinkRfuCallback(void);
u8 sub_80104F4(void); u8 sub_80104F4(void);
u8 rfu_get_multiplayer_id(void); u8 rfu_get_multiplayer_id(void);
bool8 sub_8010100(u8 a0); bool8 sub_8010100(u8 a0);
bool8 sub_8010500(void); bool8 IsLinkRfuTaskFinished(void);
bool8 Rfu_IsMaster(void); bool8 Rfu_IsMaster(void);
void task_add_05_task_del_08FA224_when_no_RfuFunc(void); void task_add_05_task_del_08FA224_when_no_RfuFunc(void);
void sub_8010434(void); void sub_8010434(void);

View File

@ -25,7 +25,7 @@ extern const struct SpriteTemplate gBallSpriteTemplates[];
u8 DoPokeballSendOutAnimation(s16 pan, u8 kindOfThrow); u8 DoPokeballSendOutAnimation(s16 pan, u8 kindOfThrow);
void CreatePokeballSpriteToReleaseMon(u8 monSpriteId, u8 battler, u8 x, u8 y, u8 oamPriority, u8 subpriortiy, u8 g, u32 h, u16 species); void CreatePokeballSpriteToReleaseMon(u8 monSpriteId, u8 battler, u8 x, u8 y, u8 oamPriority, u8 subpriortiy, u8 g, u32 h, u16 species);
u8 sub_807671C(u8 a, u8 b, u8 x, u8 y, u8 oamPriority, u8 subPriority, u8 g, u32 h); u8 CreateTradePokeballSprite(u8 a, u8 b, u8 x, u8 y, u8 oamPriority, u8 subPriority, u8 g, u32 h);
void sub_8076918(u8 battler); void sub_8076918(u8 battler);
void DoHitAnimHealthboxEffect(u8 battler); void DoHitAnimHealthboxEffect(u8 battler);
void LoadBallGfx(u8 ballId); void LoadBallGfx(u8 ballId);

View File

@ -21,7 +21,7 @@ u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u
u8 UpdateMonIconFrame(struct Sprite *sprite); u8 UpdateMonIconFrame(struct Sprite *sprite);
void LoadMonIconPalette(u16 species); void LoadMonIconPalette(u16 species);
void sub_80D328C(struct Sprite *sprite); void sub_80D328C(struct Sprite *sprite);
void sub_80D3014(struct Sprite *sprite); void UpdateTradeMonIconFrame(struct Sprite *sprite);
void SetPartyHPBarSprite(struct Sprite *sprite, u8 animNum); void SetPartyHPBarSprite(struct Sprite *sprite, u8 animNum);
u8 GetMonIconPaletteIndexFromSpecies(u16 species); u8 GetMonIconPaletteIndexFromSpecies(u16 species);

View File

@ -14,7 +14,7 @@ extern u8 gSelectedTradeMonPositions[2];
extern const struct WindowTemplate gTradeEvolutionSceneYesNoWindowTemplate; extern const struct WindowTemplate gTradeEvolutionSceneYesNoWindowTemplate;
s32 sub_807A728(void); s32 sub_807A728(void);
void sub_80773AC(void); void CB2_StartCreateTradeMenu(void);
void CB2_LinkTrade(void); void CB2_LinkTrade(void);
int CanRegisterMonForTradingBoard(struct UnkLinkRfuStruct_02022B14Substruct a0, u16, u16, u8); int CanRegisterMonForTradingBoard(struct UnkLinkRfuStruct_02022B14Substruct a0, u16, u16, u8);
int GetUnionRoomTradeMessageId(struct UnkLinkRfuStruct_02022B14Substruct a0, struct UnkLinkRfuStruct_02022B14Substruct a1, u16 a2, u16 a3, u8 a4, u16 a5, u8 a6); int GetUnionRoomTradeMessageId(struct UnkLinkRfuStruct_02022B14Substruct a0, struct UnkLinkRfuStruct_02022B14Substruct a1, u16 a2, u16 a3, u8 a4, u16 a5, u8 a6);

View File

@ -1491,7 +1491,7 @@ static void CB2_PreInitMultiBattle(void)
case 3: case 3:
if (gWirelessCommType) if (gWirelessCommType)
{ {
if (sub_8010500()) if (IsLinkRfuTaskFinished())
{ {
gBattleTypeFlags = *savedBattleTypeFlags; gBattleTypeFlags = *savedBattleTypeFlags;
gMain.savedCallback = *savedCallback; gMain.savedCallback = *savedCallback;

View File

@ -1093,7 +1093,7 @@ static void sub_80B37FC(u8 taskId)
case 3: case 3:
if (!gReceivedRemoteLinkPlayers) if (!gReceivedRemoteLinkPlayers)
{ {
SetMainCallback2(sub_80773AC); SetMainCallback2(CB2_StartCreateTradeMenu);
DestroyTask(taskId); DestroyTask(taskId);
} }
break; break;

View File

@ -168,13 +168,16 @@ static const struct SpritePalette gSpritePalette_TradeScreenText =
// 2 3 8 9 // 2 3 8 9
// 4 5 10 11 // 4 5 10 11
// 12 // 12
static const u8 gTradeNextSelectedMonTable[(PARTY_SIZE * 2) + 1][4][6] = // 1st array is current position ids
// 2nd array is directions of input
// 3rd array is the next position ids to go to, stopping at the first occupied position
static const u8 sTradeNextSelectedMonTable[(PARTY_SIZE * 2) + 1][4][PARTY_SIZE] =
{ {
{ {
{4, 2, 12, 12, 0, 0}, {4, 2, 12, 12, 0, 0}, // UP
{2, 4, 12, 12, 0, 0}, {2, 4, 12, 12, 0, 0}, // DOWN
{7, 6, 1, 0, 0, 0}, {7, 6, 1, 0, 0, 0}, // LEFT
{1, 6, 7, 0, 0, 0} {1, 6, 7, 0, 0, 0} // RIGHT
}, },
{ {
{5, 3, 12, 12, 0, 0}, {5, 3, 12, 12, 0, 0},
@ -339,12 +342,12 @@ static const u8 sUnref_0832DE6E[] =
static const u8 *const sTradeActionTexts[] = static const u8 *const sTradeActionTexts[] =
{ {
[TRADE_ACTION_TEXT_CANCEL] = sText_Cancel, [TRADE_TEXT_CANCEL] = sText_Cancel,
[TRADE_ACTION_TEXT_CHOOSE_MON] = sText_ChooseAPkmn, [TRADE_TEXT_CHOOSE_MON] = sText_ChooseAPkmn,
[TRADE_ACTION_TEXT_SUMMARY] = sText_Summary, [TRADE_TEXT_SUMMARY] = sText_Summary,
[TRADE_ACTION_TEXT_TRADE] = sText_Trade, [TRADE_TEXT_TRADE] = sText_Trade,
[TRADE_ACTION_TEXT_CANCEL_TRADE] = sText_CancelTrade, [TRADE_TEXT_CANCEL_TRADE] = sText_CancelTrade,
[TRADE_ACTION_TEXT_JP_QUIT] = sJPText_PressBButtonToQuit [TRADE_TEXT_JP_QUIT] = sJPText_PressBButtonToQuit
}; };
static const struct MenuAction sSelectTradeMonActions[] = static const struct MenuAction sSelectTradeMonActions[] =
@ -626,7 +629,7 @@ static const u16 sTradePal_Black[] = INCBIN_U16("graphics/trade/black.gbapal");
static const u32 sTradeGfx_WirelessSignal[] = INCBIN_U32("graphics/trade/wireless_signal.4bpp.lz"); static const u32 sTradeGfx_WirelessSignal[] = INCBIN_U32("graphics/trade/wireless_signal.4bpp.lz");
static const u32 sTradeTilemap_WirelessSignal[] = INCBIN_U32("graphics/trade/wireless_signal.bin.lz"); static const u32 sTradeTilemap_WirelessSignal[] = INCBIN_U32("graphics/trade/wireless_signal.bin.lz");
static const struct OamData gOamData_8338C44 = static const struct OamData sTradeOamData_16x16 =
{ {
.affineMode = 1, .affineMode = 1,
.shape = SPRITE_SHAPE(16x16), .shape = SPRITE_SHAPE(16x16),
@ -721,14 +724,14 @@ static const struct SpriteTemplate gSpriteTemplate_8338D28 =
{ {
.tileTag = 5557, .tileTag = 5557,
.paletteTag = 5558, .paletteTag = 5558,
.oam = &gOamData_8338C44, .oam = &sTradeOamData_16x16,
.anims = gSpriteAnimTable_8338C88, .anims = gSpriteAnimTable_8338C88,
.images = NULL, .images = NULL,
.affineAnims = gSpriteAffineAnimTable_8338D0C, .affineAnims = gSpriteAffineAnimTable_8338D0C,
.callback = sub_807E55C .callback = sub_807E55C
}; };
static const struct OamData gOamData_8338D40 = static const struct OamData sTradeOamData_32x32 =
{ {
.affineMode = 1, .affineMode = 1,
.objMode = 1, .objMode = 1,
@ -783,14 +786,14 @@ static const struct SpriteTemplate gUnknown_08338D88 =
{ {
.tileTag = 5550, .tileTag = 5550,
.paletteTag = 5551, .paletteTag = 5551,
.oam = &gOamData_8338D40, .oam = &sTradeOamData_32x32,
.anims = gSpriteAnimTable_8338D50, .anims = gSpriteAnimTable_8338D50,
.images = NULL, .images = NULL,
.affineAnims = gSpriteAffineAnimTable_8338D6C, .affineAnims = gSpriteAffineAnimTable_8338D6C,
.callback = sub_807AA28 .callback = sub_807AA28
}; };
static const struct OamData gOamData_8338DA0 = static const struct OamData sTradeOamData_16x32 =
{ {
.shape = SPRITE_SHAPE(16x32), .shape = SPRITE_SHAPE(16x32),
.size = SPRITE_SIZE(16x32), .size = SPRITE_SIZE(16x32),
@ -826,14 +829,14 @@ static const struct SpriteTemplate gSpriteTemplate_8338DC8 =
{ {
.tileTag = 5552, .tileTag = 5552,
.paletteTag = 5551, .paletteTag = 5551,
.oam = &gOamData_8338DA0, .oam = &sTradeOamData_16x32,
.anims = gSpriteAnimTable_8338DB8, .anims = gSpriteAnimTable_8338DB8,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_807AA7C .callback = sub_807AA7C
}; };
static const struct OamData gOamData_8338DE0 = static const struct OamData sTradeOamData_16x32_2 =
{ {
.shape = SPRITE_SHAPE(16x32), .shape = SPRITE_SHAPE(16x32),
.size = SPRITE_SIZE(16x32), .size = SPRITE_SIZE(16x32),
@ -862,14 +865,14 @@ static const struct SpriteTemplate gSpriteTemplate_8338DFC =
{ {
.tileTag = 5554, .tileTag = 5554,
.paletteTag = 5555, .paletteTag = 5555,
.oam = &gOamData_8338DE0, .oam = &sTradeOamData_16x32_2,
.anims = gSpriteAnimTable_8338DF0, .anims = gSpriteAnimTable_8338DF0,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_807AABC .callback = sub_807AABC
}; };
static const struct OamData gOamData_8338E14 = static const struct OamData sTradeOamData_64x32_2 =
{ {
.shape = SPRITE_SHAPE(64x32), .shape = SPRITE_SHAPE(64x32),
.size = SPRITE_SIZE(64x32), .size = SPRITE_SIZE(64x32),
@ -923,7 +926,7 @@ static const struct SpriteTemplate gSpriteTemplate_8338E74 =
{ {
.tileTag = 5556, .tileTag = 5556,
.paletteTag = 5555, .paletteTag = 5555,
.oam = &gOamData_8338E14, .oam = &sTradeOamData_64x32_2,
.anims = gSpriteAnimTable_8338E64, .anims = gSpriteAnimTable_8338E64,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
@ -934,7 +937,7 @@ static const struct SpriteTemplate gSpriteTemplate_8338E8C =
{ {
.tileTag = 5556, .tileTag = 5556,
.paletteTag = 5555, .paletteTag = 5555,
.oam = &gOamData_8338E14, .oam = &sTradeOamData_64x32_2,
.anims = gSpriteAnimTable_8338E68, .anims = gSpriteAnimTable_8338E68,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,

View File

@ -1518,12 +1518,12 @@ asm(".space 0x20"); //blank palette??
// Trade // Trade
const u16 gTradeMenu_Pal[] = INCBIN_U16("graphics/trade/menu.gbapal"); const u16 gTradeMenu_Pal[] = INCBIN_U16("graphics/trade/menu.gbapal");
const u16 gUnknown_08DDB444[] = INCBIN_U16("graphics/unknown/unknown_DDB444.gbapal"); const u16 gUnknown_08DDB444[] = INCBIN_U16("graphics/trade/unknown_DDB444.gbapal");
const u8 gTradeMenu_Gfx[] = INCBIN_U8("graphics/trade/menu.4bpp"); const u8 gTradeMenu_Gfx[] = INCBIN_U8("graphics/trade/menu.4bpp");
const u8 gTradeButtons_Gfx[] = INCBIN_U8("graphics/trade/buttons.4bpp"); const u8 gTradeButtons_Gfx[] = INCBIN_U8("graphics/trade/buttons.4bpp");
const u16 gUnused_DDCEE4[] = INCBIN_U16("graphics/unused/unused_DDCEE4.bin"); const u16 gUnused_DDCEE4[] = INCBIN_U16("graphics/unused/unused_DDCEE4.bin");
const u16 gUnknown_08DDCF04[] = INCBIN_U16("graphics/unknown/unknown_DDCF04.bin"); const u16 gUnknown_08DDCF04[] = INCBIN_U16("graphics/trade/unknown_DDCF04.bin");
const u16 gUnknown_08DDD704[] = INCBIN_U16("graphics/unknown/unknown_DDD704.bin"); // textbox tilemap?? const u16 gTradeMenuMonBox_Tilemap[] = INCBIN_U16("graphics/trade/menu_mon_box.bin");
const u16 gMessageBox_Pal[] = INCBIN_U16("graphics/text_window/message_box.gbapal"); const u16 gMessageBox_Pal[] = INCBIN_U16("graphics/text_window/message_box.gbapal");
const u8 gMessageBox_Gfx[] = INCBIN_U8("graphics/text_window/message_box.4bpp"); const u8 gMessageBox_Gfx[] = INCBIN_U8("graphics/text_window/message_box.4bpp");

View File

@ -316,10 +316,10 @@ static void InitLocalLinkPlayer(void)
gLocalLinkPlayer.language = gGameLanguage; gLocalLinkPlayer.language = gGameLanguage;
gLocalLinkPlayer.version = gGameVersion + 0x4000; gLocalLinkPlayer.version = gGameVersion + 0x4000;
gLocalLinkPlayer.lp_field_2 = 0x8000; gLocalLinkPlayer.lp_field_2 = 0x8000;
gLocalLinkPlayer.name[8] = IsNationalPokedexEnabled(); gLocalLinkPlayer.progressFlags = IsNationalPokedexEnabled();
if (FlagGet(FLAG_IS_CHAMPION)) if (FlagGet(FLAG_IS_CHAMPION))
{ {
gLocalLinkPlayer.name[8] |= 0x10; gLocalLinkPlayer.progressFlags |= 0x10;
} }
} }
@ -597,9 +597,9 @@ static void ProcessRecvCmds(u8 unused)
*linkPlayer = block->linkPlayer; *linkPlayer = block->linkPlayer;
if ((linkPlayer->version & 0xFF) == VERSION_RUBY || (linkPlayer->version & 0xFF) == VERSION_SAPPHIRE) if ((linkPlayer->version & 0xFF) == VERSION_RUBY || (linkPlayer->version & 0xFF) == VERSION_SAPPHIRE)
{ {
linkPlayer->name[10] = 0; linkPlayer->progressFlagsCopy = 0;
linkPlayer->name[9] = 0; linkPlayer->neverRead = 0;
linkPlayer->name[8] = 0; linkPlayer->progressFlags = 0;
} }
sub_800B524(linkPlayer); sub_800B524(linkPlayer);
if (strcmp(block->magic1, gASCIIGameFreakInc) != 0 if (strcmp(block->magic1, gASCIIGameFreakInc) != 0
@ -1084,7 +1084,7 @@ bool8 IsLinkTaskFinished(void)
{ {
if (gWirelessCommType == TRUE) if (gWirelessCommType == TRUE)
{ {
return sub_8010500(); return IsLinkRfuTaskFinished();
} }
return gLinkCallback == NULL; return gLinkCallback == NULL;
} }
@ -1909,7 +1909,7 @@ u8 sub_800B518(void)
void sub_800B524(struct LinkPlayer *player) void sub_800B524(struct LinkPlayer *player)
{ {
player->name[10] = player->name[8]; player->progressFlagsCopy = player->progressFlags;
ConvertInternationalString(player->name, player->language); ConvertInternationalString(player->name, player->language);
} }

View File

@ -3800,7 +3800,7 @@ u8 sub_80104F4(void)
return gUnknown_03005000.playerCount; return gUnknown_03005000.playerCount;
} }
bool8 sub_8010500(void) bool8 IsLinkRfuTaskFinished(void)
{ {
if (gUnknown_03005000.unk_f1 == 2) if (gUnknown_03005000.unk_f1 == 2)
return FALSE; return FALSE;

View File

@ -4974,7 +4974,7 @@ static void party_menu_link_mon_icon_anim(u16 species, u32 pid, struct Struct203
{ {
if (species != SPECIES_NONE) if (species != SPECIES_NONE)
{ {
ptr->monSpriteId = CreateMonIcon(species, sub_80D3014, ptr->unk4[0], ptr->unk4[1], 4, pid, bit); ptr->monSpriteId = CreateMonIcon(species, UpdateTradeMonIconFrame, ptr->unk4[0], ptr->unk4[1], 4, pid, bit);
gSprites[ptr->monSpriteId].oam.priority = priority; gSprites[ptr->monSpriteId].oam.priority = priority;
} }
} }

View File

@ -1097,7 +1097,7 @@ static void sub_80765E0(struct Sprite *sprite)
} }
} }
u8 sub_807671C(u8 a, u8 b, u8 x, u8 y, u8 oamPriority, u8 subPriority, u8 g, u32 h) u8 CreateTradePokeballSprite(u8 a, u8 b, u8 x, u8 y, u8 oamPriority, u8 subPriority, u8 g, u32 h)
{ {
u8 spriteId; u8 spriteId;

View File

@ -1184,7 +1184,7 @@ void FreeMonIconPalette(u16 species)
FreeSpritePaletteByTag(gMonIconPaletteTable[palIndex].tag); FreeSpritePaletteByTag(gMonIconPaletteTable[palIndex].tag);
} }
void sub_80D3014(struct Sprite *sprite) void UpdateTradeMonIconFrame(struct Sprite *sprite)
{ {
UpdateMonIconFrame(sprite); UpdateMonIconFrame(sprite);
} }

File diff suppressed because it is too large Load Diff

View File

@ -1267,15 +1267,15 @@ u8 sub_8013E44(void)
return ret; return ret;
} }
void sub_8013F60(u8 taskId) static void Task_CreateTradeMenu(u8 taskId)
{ {
sub_80773AC(); CB2_StartCreateTradeMenu();
DestroyTask(taskId); DestroyTask(taskId);
} }
u8 sub_8013F78(void) u8 sub_8013F78(void)
{ {
u8 taskId = CreateTask(sub_8013F60, 0); u8 taskId = CreateTask(Task_CreateTradeMenu, 0);
return taskId; return taskId;
} }
@ -1589,7 +1589,7 @@ void sub_8014790(u8 taskId)
if (gUnknown_02022C2C == 29) if (gUnknown_02022C2C == 29)
{ {
DestroyTask(taskId); DestroyTask(taskId);
SetMainCallback2(sub_80773AC); SetMainCallback2(CB2_StartCreateTradeMenu);
} }
else else
{ {