diff options
author | PikalaxALT <PikalaxALT@gmail.com> | 2019-10-30 21:06:15 -0400 |
---|---|---|
committer | PikalaxALT <PikalaxALT@gmail.com> | 2019-10-30 21:06:15 -0400 |
commit | f86bb07027d2a93b3d0abc572d2741f9ee2e795d (patch) | |
tree | 49060b9631b96b7b50d80657ce20ce0d069f7fff | |
parent | 71dbb008004342bdb9a6e9ac0a181408a016d07b (diff) |
Review comments and documentation
-rw-r--r-- | asm/battle_tower.s | 4 | ||||
-rw-r--r-- | asm/cable_club.s | 4 | ||||
-rw-r--r-- | asm/evolution_scene.s | 2 | ||||
-rw-r--r-- | asm/link_rfu_3.s | 2 | ||||
-rw-r--r-- | asm/party_menu.s | 20 | ||||
-rw-r--r-- | baserom.ips | bin | 553618 -> 537206 bytes | |||
-rw-r--r-- | data/graphics.s | 26 | ||||
-rw-r--r-- | graphics/trade/menu.png | bin | 608 -> 609 bytes | |||
-rw-r--r-- | graphics/trade/menu_mon_box.bin | bin | 0 -> 36 bytes | |||
-rw-r--r-- | graphics/trade/pokeball.png | bin | 0 -> 464 bytes | |||
-rw-r--r-- | graphics/trade/unknown_DDB444.pal | 19 | ||||
-rw-r--r-- | graphics/trade/unknown_DDCF04.bin | bin | 0 -> 2048 bytes | |||
-rw-r--r-- | graphics/unused/unused_DDCEE4.bin | bin | 0 -> 32 bytes | |||
-rw-r--r-- | include/graphics.h | 10 | ||||
-rw-r--r-- | include/pokemon_icon.h | 8 | ||||
-rw-r--r-- | include/trade.h | 2 | ||||
-rw-r--r-- | include/trade_scene.h | 2 | ||||
-rw-r--r-- | include/util.h | 2 | ||||
-rw-r--r-- | src/data/ingame_trades.h | 4 | ||||
-rw-r--r-- | src/trade.c | 199 | ||||
-rw-r--r-- | src/trade_scene.c | 595 |
21 files changed, 467 insertions, 432 deletions
diff --git a/asm/battle_tower.s b/asm/battle_tower.s index 87f01b7fb..fe6aac664 100644 --- a/asm/battle_tower.s +++ b/asm/battle_tower.s @@ -2832,7 +2832,7 @@ _080E6F68: ldrb r1, [r0] movs r0, 0x64 muls r0, r1 - ldr r1, _080E6FB4 @ =gEnemyParty + 0x1f4 + ldr r1, _080E6FB4 @ =gEnemyParty + 500 @ &gEnemyParty[5] adds r0, r1 movs r1, 0x2C muls r1, r4 @@ -2855,7 +2855,7 @@ _080E6FA4: .4byte gSaveBlock2Ptr _080E6FA8: .4byte gSaveBlock1Ptr _080E6FAC: .4byte 0x00002cac _080E6FB0: .4byte 0x0000056d -_080E6FB4: .4byte gEnemyParty + 0x1f4 +_080E6FB4: .4byte gEnemyParty + 500 @ &gEnemyParty[5] thumb_func_end sub_80E6EE0 thumb_func_start SaveBattleTowerProgress diff --git a/asm/cable_club.s b/asm/cable_club.s index 9b4c173c9..d19bb3a35 100644 --- a/asm/cable_club.s +++ b/asm/cable_club.s @@ -2211,7 +2211,7 @@ _080818C4: ldrb r0, [r0] cmp r0, 0 bne _080818D8 - ldr r0, _080818E4 @ =sub_804C718 + ldr r0, _080818E4 @ =CB2_ReturnFromLinkTrade bl SetMainCallback2 adds r0, r5, 0 bl DestroyTask @@ -2221,7 +2221,7 @@ _080818D8: bx r0 .align 2, 0 _080818E0: .4byte gReceivedRemoteLinkPlayers -_080818E4: .4byte sub_804C718 +_080818E4: .4byte CB2_ReturnFromLinkTrade thumb_func_end sub_8081850 thumb_func_start sub_80818E8 diff --git a/asm/evolution_scene.s b/asm/evolution_scene.s index 710ee2b67..dac85320e 100644 --- a/asm/evolution_scene.s +++ b/asm/evolution_scene.s @@ -738,7 +738,7 @@ _080CE3D8: .4byte nullsub_76 _080CE3DC: .4byte sub_80D00D8 _080CE3E0: .4byte gMain _080CE3E4: - bl sub_80544FC + bl LoadTradeAnimGfx b _080CE4EC _080CE3EA: movs r0, 0x20 diff --git a/asm/link_rfu_3.s b/asm/link_rfu_3.s index 4decd66ff..63a894247 100644 --- a/asm/link_rfu_3.s +++ b/asm/link_rfu_3.s @@ -2939,7 +2939,7 @@ sub_8117100: @ 8117100 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - bl sub_804C718 + bl CB2_ReturnFromLinkTrade adds r0, r4, 0 bl DestroyTask pop {r4} diff --git a/asm/party_menu.s b/asm/party_menu.s index 91e19ebf2..43a7a6e31 100644 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -3033,7 +3033,7 @@ _081201C0: lsrs r6, r0, 29 cmp r6, 0x3 bne _081201F0 - ldr r0, _081201EC @ =gPlayerParty + 0x12C + ldr r0, _081201EC @ =gPlayerParty + 300 @ &gPlayerParty[3] movs r1, 0xB bl GetMonData cmp r0, 0 @@ -3042,12 +3042,12 @@ _081201C0: b _08120290 .align 2, 0 _081201E8: .4byte gUnknown_203B09C -_081201EC: .4byte gPlayerParty + 0x12C +_081201EC: .4byte gPlayerParty + 300 @ &gPlayerParty[3] _081201F0: - ldr r0, _081201F4 @ =gPlayerParty + 0xC8 + ldr r0, _081201F4 @ =gPlayerParty + 200 @ &gPlayerParty[2] b _0812020C .align 2, 0 -_081201F4: .4byte gPlayerParty + 0xC8 +_081201F4: .4byte gPlayerParty + 200 @ &gPlayerParty[2] _081201F8: cmp r0, 0x1 bne _08120290 @@ -3058,7 +3058,7 @@ _081201F8: lsrs r5, r0, 29 cmp r5, 0x5 bne _08120224 - ldr r0, _08120220 @ =gPlayerParty + 0x1F4 + ldr r0, _08120220 @ =gPlayerParty + 500 @ &gPlayerParty[5] _0812020C: movs r1, 0xB bl GetMonData @@ -3068,9 +3068,9 @@ _0812020C: b _08120290 .align 2, 0 _0812021C: .4byte gUnknown_203B09C -_08120220: .4byte gPlayerParty + 0x1F4 +_08120220: .4byte gPlayerParty + 500 @ &gPlayerParty[5] _08120224: - ldr r0, _08120234 @ =gPlayerParty + 0x190 + ldr r0, _08120234 @ =gPlayerParty + 400 @ &gPlayerParty[4] movs r1, 0xB bl GetMonData cmp r0, 0 @@ -3078,7 +3078,7 @@ _08120224: movs r0, 0x4 b _0812028E .align 2, 0 -_08120234: .4byte gPlayerParty + 0x190 +_08120234: .4byte gPlayerParty + 400 @ &gPlayerParty[4] _08120238: ldrb r1, [r4] subs r0, r1, 0x2 @@ -18129,7 +18129,7 @@ _08127A80: .4byte sub_811FB28 sub_8127A84: @ 8127A84 push {r4,lr} adds r4, r0, 0 - ldr r0, _08127AA4 @ =gPlayerParty + 0x64 + ldr r0, _08127AA4 @ =gPlayerParty + 100 @ &gPlayerParty[1] movs r1, 0xB bl GetMonData cmp r0, 0 @@ -18143,7 +18143,7 @@ _08127AA0: movs r0, 0x7 b _08127ABA .align 2, 0 -_08127AA4: .4byte gPlayerParty + 0x64 +_08127AA4: .4byte gPlayerParty + 100 @ &gPlayerParty[1] _08127AA8: ldr r0, _08127AB4 @ =gUnknown_203B0A0 ldrb r0, [r0, 0xB] diff --git a/baserom.ips b/baserom.ips Binary files differindex 02b5aab21..5fc13b159 100644 --- a/baserom.ips +++ b/baserom.ips diff --git a/data/graphics.s b/data/graphics.s index 93c5b6614..67e88a6cd 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -16214,26 +16214,26 @@ gUnknown_8E9CB9C:: @ 8E9CB9C gUnknown_8E9CBBC:: @ 8E9CBBC .incbin "baserom.gba", 0xE9CBBC, 0x320 @UNKNOWN -gUnknown_8E9CEDC:: @ 8E9CEDC - .incbin "baserom.gba", 0xE9CEDC, 0x60 @UNKNOWN +gTradeMenu_Pal:: @ 8E9CEDC + .incbin "graphics/trade/menu.gbapal" -gUnknown_8E9CF3C:: - .incbin "baserom.gba", 0xE9CF3C, 0x20 @UNKNOWN +gTradeButtons_Pal:: @ E9CF3C + .incbin "graphics/trade/unknown_DDB444.gbapal" -gUnknown_8E9CF5C:: @ 8E9CF5C - .incbin "baserom.gba", 0xE9CF5C, 0x1280 @UNKNOWN +gTradeMenu_Gfx:: @ 8E9CF5C + .incbin "graphics/trade/menu.4bpp" -gUnknown_8E9E1DC:: - .incbin "baserom.gba", 0xE9E1DC, 0x800 @UNKNOWN +gTradeButtons_Gfx:: @ E9E1DC + .incbin "graphics/trade/buttons.4bpp" -gUnknown_8E9E9DC:: - .incbin "baserom.gba", 0xE9E9DC, 0x20 @UNKNOWN +gUnknown_8E9E9DC:: @ E9E9DC + .incbin "graphics/unused/unused_DDCEE4.bin" gUnknown_8E9E9FC:: @ 8E9E9FC - .incbin "baserom.gba", 0xE9E9FC, 0x800 @UNKNOWN + .incbin "graphics/trade/unknown_DDCF04.bin" -gUnknown_8E9F1FC:: @ 8E9F1FC - .incbin "baserom.gba", 0xE9F1FC, 0x24 @UNKNOWN +gTradeMenuMonBox_Tilemap:: @ 8E9F1FC + .incbin "graphics/trade/menu_mon_box.bin" gFameCheckerBgPals:: @ 8E9F220 .incbin "data/graphics/fame_checker_bg.gbapal" diff --git a/graphics/trade/menu.png b/graphics/trade/menu.png Binary files differindex 91bc0f7eb..f06e5b35c 100644 --- a/graphics/trade/menu.png +++ b/graphics/trade/menu.png diff --git a/graphics/trade/menu_mon_box.bin b/graphics/trade/menu_mon_box.bin Binary files differnew file mode 100644 index 000000000..354866137 --- /dev/null +++ b/graphics/trade/menu_mon_box.bin diff --git a/graphics/trade/pokeball.png b/graphics/trade/pokeball.png Binary files differnew file mode 100644 index 000000000..97cc86a6f --- /dev/null +++ b/graphics/trade/pokeball.png diff --git a/graphics/trade/unknown_DDB444.pal b/graphics/trade/unknown_DDB444.pal new file mode 100644 index 000000000..bb74b34a2 --- /dev/null +++ b/graphics/trade/unknown_DDB444.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +123 131 222 +98 98 180 +123 106 222 +106 172 238 +82 148 205 +180 189 230 +148 156 189 +205 106 0 +255 189 49 +246 148 0 +255 213 115 +205 74 90 +255 98 32 +205 205 222 +255 98 32 diff --git a/graphics/trade/unknown_DDCF04.bin b/graphics/trade/unknown_DDCF04.bin Binary files differnew file mode 100644 index 000000000..46218245f --- /dev/null +++ b/graphics/trade/unknown_DDCF04.bin diff --git a/graphics/unused/unused_DDCEE4.bin b/graphics/unused/unused_DDCEE4.bin Binary files differnew file mode 100644 index 000000000..481183cbd --- /dev/null +++ b/graphics/unused/unused_DDCEE4.bin diff --git a/include/graphics.h b/include/graphics.h index 20e322bc1..56a51e67c 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4215,11 +4215,11 @@ extern const u8 gMonIcon_Unown_QuestionMark[]; extern const u8 gMonIcon_QuestionMark[]; // trade -extern const u16 gUnknown_8E9CEDC[]; -extern const u16 gUnknown_8E9CF3C[]; -extern const u16 gUnknown_8E9CF5C[]; +extern const u16 gTradeMenu_Pal[]; +extern const u16 gTradeButtons_Pal[]; +extern const u16 gTradeMenu_Gfx[]; extern const u16 gUnknown_8E9E9FC[]; -extern const u16 gUnknown_8E9E1DC[]; -extern const u16 gUnknown_8E9F1FC[]; +extern const u16 gTradeButtons_Gfx[]; +extern const u16 gTradeMenuMonBox_Tilemap[]; #endif //GUARD_GRAPHICS_H diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h index 13228e55e..cfc3c18f0 100644 --- a/include/pokemon_icon.h +++ b/include/pokemon_icon.h @@ -8,18 +8,18 @@ const u8 *GetMonIconTiles(u16 iconSpecies, bool32 extra); const u16 *GetValidMonIconPalettePtr(u16 speciesId); u16 sub_80D2E84(u16 speciesId); void sub_80D2F68(u16 iconId); -u8 sub_80D2D78(u16 iconId, void callback(struct Sprite *), u16 x, u16 y, u16 a4, u8 a5); +u8 sub_80D2D78(u16 iconId, SpriteCallback callback, u16 x, u16 y, u16 a4, u8 a5); void sub_80D2FF0(u16 iconId); -void sub_80D2EF8(struct Sprite *sprite); +void sub_80D2EF8(struct Sprite * sprite); void LoadMonIconPalettes(void); void FreeMonIconPalettes(void); u16 MailSpeciesToIconSpecies(u16); -u8 CreateMonIcon_HandleDeoxys(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, bool32 extra); +u8 CreateMonIcon_HandleDeoxys(u16 species, SpriteCallback callback, s16 x, s16 y, u8 subpriority, bool32 extra); void DestroyMonIcon(struct Sprite *); u16 GetUnownLetterByPersonality(u32 personality); void SpriteCB_MonIcon(struct Sprite *); u8 CreateMonIcon(u16 species, SpriteCallback callback, s16 x, s16 y, u8 subpriority, u32 personality, bool32 extra); -u8 UpdateMonIconFrame(struct Sprite *sprite); +u8 UpdateMonIconFrame(struct Sprite * sprite); void LoadMonIconPalette(u16 iconId); void FreeMonIconPalette(u16 iconId); void MonIcon_SetAnim(struct Sprite * sprite, u8 animNum); diff --git a/include/trade.h b/include/trade.h index b1ae5669e..257357053 100644 --- a/include/trade.h +++ b/include/trade.h @@ -5,7 +5,7 @@ extern struct MailStruct gLinkPartnerMail[6]; extern u8 gSelectedTradeMonPositions[2]; extern const u16 gUnknown_826601C[]; -void sub_804C718(void); +void CB2_ReturnFromLinkTrade(void); s32 sub_804FB34(void); #endif //GUARD_TRADE_H diff --git a/include/trade_scene.h b/include/trade_scene.h index 347df033f..13cb1a56c 100644 --- a/include/trade_scene.h +++ b/include/trade_scene.h @@ -9,7 +9,7 @@ u16 GetInGameTradeSpeciesInfo(void); u16 GetTradeSpecies(void); void sub_805049C(void); void sub_80504B0(void); -void sub_80544FC(void); +void LoadTradeAnimGfx(void); extern const u16 gUnknown_826601C[]; extern const struct WindowTemplate gUnknown_826D1CC; diff --git a/include/util.h b/include/util.h index db86c184c..ef1c15faa 100644 --- a/include/util.h +++ b/include/util.h @@ -14,7 +14,7 @@ void LoadWordFromTwoHalfwords(u16 *, u32 *); int CountTrailingZeroBits(u32 value); u16 CalcCRC16(const u8 *data, u32 length); u16 CalcCRC16WithTable(const u8 *data, u32 length); -u32 CalcByteArraySum(const 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 srcX, s16 srcY, s16 sx, s16 sy, u16 alpha); diff --git a/src/data/ingame_trades.h b/src/data/ingame_trades.h index ba8abb47b..59304242b 100644 --- a/src/data/ingame_trades.h +++ b/src/data/ingame_trades.h @@ -1,4 +1,4 @@ -const struct InGameTrade gInGameTrades[] = { +static const struct InGameTrade sInGameTrades[] = { { .nickname = _("MIMIEN"), .species = SPECIES_MR_MIME, @@ -129,7 +129,7 @@ const struct InGameTrade gInGameTrades[] = { } }; -const u16 sInGameTradeMailMessages[][10] = { +static const u16 sInGameTradeMailMessages[][10] = { { EC_WORD_THAT_S, EC_WORD_A, diff --git a/src/trade.c b/src/trade.c index 817182efe..5151ecedd 100644 --- a/src/trade.c +++ b/src/trade.c @@ -130,7 +130,7 @@ static void TradeMenuAction_Summary(u8 taskId); static void TradeMenuAction_Trade(u8 taskId); static void ScheduleLinkTaskWithDelay(u16 delay, u8 kind); static void RunScheduledLinkTasks(void); -static void PrintTradeErrorOrStatusMessage(u8 str_idx); +static void PrintTradeErrorOrStatusMessage(u8 strIdx); static bool8 sub_804F610(void); static void RenderTextToVramViaBuffer(const u8 *name, u8 *a1, u8 unused); static void sub_804F748(u8 side); @@ -150,10 +150,10 @@ static const size_t gUnknown_8260814[] = { 0x528 // unk }; -static const u16 gTradeMovesBoxTilemap[] = INCBIN_U16("graphics/trade/moves_box_map.bin"); -static const u16 gTradePartyBoxTilemap[] = INCBIN_U16("graphics/trade/party_box_map.bin"); -static const u8 gTradeStripesBG2Tilemap[] = INCBIN_U8("graphics/trade/stripes_bg2_map.bin"); -static const u8 gTradeStripesBG3Tilemap[] = INCBIN_U8("graphics/trade/stripes_bg3_map.bin"); +static const u16 sTradeMovesBoxTilemap[] = INCBIN_U16("graphics/trade/moves_box_map.bin"); +static const u16 sTradePartyBoxTilemap[] = INCBIN_U16("graphics/trade/party_box_map.bin"); +static const u8 sTradeStripesBG2Tilemap[] = INCBIN_U8("graphics/trade/stripes_bg2_map.bin"); +static const u8 sTradeStripesBG3Tilemap[] = INCBIN_U8("graphics/trade/stripes_bg3_map.bin"); static const struct OamData gOamData_8261C30 = { .shape = SPRITE_SHAPE(32x16), @@ -182,14 +182,14 @@ static const union AnimCmd *const gSpriteAnimTable_8261C50[] = { gSpriteAnim_8261C48 }; -static const struct SpriteSheet gUnknown_8261C58 = { - gUnknown_8E9E1DC, +static const struct SpriteSheet sTradeButtons_SpriteSheet = { + gTradeButtons_Gfx, 0x800, 300 }; -static const struct SpritePalette gUnknown_8261C60 = { - gUnknown_8E9CF3C, +static const struct SpritePalette sTradeButtons_SpritePal = { + gTradeButtons_Pal, 2345 }; @@ -233,7 +233,7 @@ static const union AnimCmd *const gSpriteAnimTable_8261C98[] = { gSpriteAnim_8261C90 }; -static const struct SpriteTemplate gUnknown_8261CB0 = { +static const struct SpriteTemplate sSpriteTemplate_TradeButtons = { .tileTag = 300, .paletteTag = 2345, .oam = &gOamData_8261C38, @@ -242,7 +242,7 @@ static const struct SpriteTemplate gUnknown_8261CB0 = { .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_8261CC8 = { +static const struct SpriteTemplate sSpriteTemplate_Text = { .tileTag = 200, .paletteTag = 4925, .oam = &gOamData_8261C30, @@ -251,10 +251,10 @@ static const struct SpriteTemplate gUnknown_8261CC8 = { .callback = SpriteCallbackDummy }; -static const u16 gUnknown_8261CE0[] = INCBIN_U16("graphics/trade/text.gbapal"); +static const u16 sTradeTextPal[] = INCBIN_U16("graphics/trade/text.gbapal"); -static const struct SpritePalette gUnknown_8261D00 = { - gUnknown_8261CE0, +static const struct SpritePalette sSpritePalette_Text = { + sTradeTextPal, 4925 }; @@ -347,7 +347,7 @@ static const u8 sCursorMoveDestinations[][4][6] = { } }; -static const u8 gTradeMonSpriteCoords[][2] = { +static const u8 sTradeMonSpriteCoords[][2] = { {0x01, 0x05}, {0x08, 0x05}, {0x01, 0x0a}, @@ -365,6 +365,7 @@ static const u8 gTradeMonSpriteCoords[][2] = { {0x17, 0x12}, }; +// No idea if a 4D array is correct static const u8 gUnknown_8261E5A[][2][6][2] = { { { @@ -401,7 +402,7 @@ static const u8 gUnknown_8261E5A[][2][6][2] = { } }; -static const u8 gTradeUnknownSpriteCoords[][4] = { +static const u8 sTradeUnknownSpriteCoords[][4] = { {0x3c, 0x09, 0xb4, 0x09}, {0x30, 0x09, 0xa8, 0x09} }; @@ -719,7 +720,7 @@ static void sub_804C600(void) } } -void sub_804C718(void) +void CB2_ReturnFromLinkTrade(void) { SetMainCallback2(sub_804C728); } @@ -853,11 +854,11 @@ static void sub_804C728(void) for (i = 0; i < sTradeMenuResourcesPtr->partyCounts[0]; i++) { - struct Pokemon *mon = &gPlayerParty[i]; + struct Pokemon * mon = &gPlayerParty[i]; sTradeMenuResourcesPtr->partyIcons[0][i] = CreateMonIcon(GetMonData(mon, MON_DATA_SPECIES2), SpriteCB_MonIcon, - (gTradeMonSpriteCoords[i][0] * 8) + 14, - (gTradeMonSpriteCoords[i][1] * 8) - 12, + (sTradeMonSpriteCoords[i][0] * 8) + 14, + (sTradeMonSpriteCoords[i][1] * 8) - 12, 1, GetMonData(mon, MON_DATA_PERSONALITY), TRUE); @@ -865,11 +866,11 @@ static void sub_804C728(void) for (i = 0; i < sTradeMenuResourcesPtr->partyCounts[1]; i++) { - struct Pokemon *mon = &gEnemyParty[i]; + struct Pokemon * mon = &gEnemyParty[i]; sTradeMenuResourcesPtr->partyIcons[1][i] = CreateMonIcon(GetMonData(mon, MON_DATA_SPECIES2, NULL), SpriteCB_MonIcon, - (gTradeMonSpriteCoords[i + PARTY_SIZE][0] * 8) + 14, - (gTradeMonSpriteCoords[i + PARTY_SIZE][1] * 8) - 12, + (sTradeMonSpriteCoords[i + PARTY_SIZE][0] * 8) + 14, + (sTradeMonSpriteCoords[i + PARTY_SIZE][1] * 8) - 12, 1, GetMonData(mon, MON_DATA_PERSONALITY), FALSE); @@ -903,9 +904,9 @@ static void sub_804C728(void) xPos = (56 - width) / 2; for (i = 0; i < 3; i++) { - temp = gUnknown_8261CC8; + temp = sSpriteTemplate_Text; temp.tileTag += i; - CreateSprite(&temp, xPos + gTradeUnknownSpriteCoords[LANGUAGE_ENGLISH - 1][0] + (i * 32), gTradeUnknownSpriteCoords[LANGUAGE_ENGLISH - 1][1], 1); + CreateSprite(&temp, xPos + sTradeUnknownSpriteCoords[LANGUAGE_ENGLISH - 1][0] + (i * 32), sTradeUnknownSpriteCoords[LANGUAGE_ENGLISH - 1][1], 1); } /* @@ -918,28 +919,28 @@ static void sub_804C728(void) xPos = (56 - width) / 2; for (i = 0; i < 3; i++) { - temp = gUnknown_8261CC8; + temp = sSpriteTemplate_Text; temp.tileTag += i + 3; - CreateSprite(&temp, xPos + gTradeUnknownSpriteCoords[LANGUAGE_ENGLISH - 1][2] + (i * 32), gTradeUnknownSpriteCoords[LANGUAGE_ENGLISH - 1][3], 1); + CreateSprite(&temp, xPos + sTradeUnknownSpriteCoords[LANGUAGE_ENGLISH - 1][2] + (i * 32), sTradeUnknownSpriteCoords[LANGUAGE_ENGLISH - 1][3], 1); } gMain.state++; break; case 13: - temp = gUnknown_8261CC8; + temp = sSpriteTemplate_Text; temp.tileTag += 6; CreateSprite(&temp, 215, 151, 1); - temp = gUnknown_8261CC8; + temp = sSpriteTemplate_Text; temp.tileTag += 7; CreateSprite(&temp, 247, 151, 1); for (i = 0; i < PARTY_SIZE; i++) { - temp = gUnknown_8261CC8; + temp = sSpriteTemplate_Text; temp.tileTag += i + 8; CreateSprite(&temp, (i * 32) + 24, 150, 1); } - sTradeMenuResourcesPtr->tradeMenuCursorSpriteIdx = CreateSprite(&gUnknown_8261CB0, gTradeMonSpriteCoords[0][0] * 8 + 32, gTradeMonSpriteCoords[0][1] * 8, 2); + sTradeMenuResourcesPtr->tradeMenuCursorSpriteIdx = CreateSprite(&sSpriteTemplate_TradeButtons, sTradeMonSpriteCoords[0][0] * 8 + 32, sTradeMonSpriteCoords[0][1] * 8, 2); sTradeMenuResourcesPtr->tradeMenuCursorPosition = 0; gMain.state++; rbox_fill_rectangle(0); @@ -1353,7 +1354,7 @@ static void sub_804C728(void) "\tcmp r6, r0\n" "\tbge _0804CAA8\n" "\tmov r8, r2\n" - "\tldr r7, _0804CB38 @ =gTradeMonSpriteCoords\n" + "\tldr r7, _0804CB38 @ =sTradeMonSpriteCoords\n" "_0804CA4A:\n" "\tmovs r0, 0x64\n" "\tadds r4, r6, 0\n" @@ -1407,7 +1408,7 @@ static void sub_804C728(void) "\tldrb r0, [r0]\n" "\tcmp r6, r0\n" "\tbge _0804CB20\n" - "\tldr r0, _0804CB38 @ =gTradeMonSpriteCoords\n" + "\tldr r0, _0804CB38 @ =sTradeMonSpriteCoords\n" "\tmov r8, r1\n" "\tadds r7, r0, 0\n" "\tadds r7, 0xC\n" @@ -1468,7 +1469,7 @@ static void sub_804C728(void) "_0804CB2C: .4byte sTradeMenuResourcesPtr\n" "_0804CB30: .4byte gPlayerPartyCount\n" "_0804CB34: .4byte gEnemyPartyCount\n" - "_0804CB38: .4byte gTradeMonSpriteCoords\n" + "_0804CB38: .4byte sTradeMonSpriteCoords\n" "_0804CB3C: .4byte gPlayerParty\n" "_0804CB40: .4byte 0xfff40000\n" "_0804CB44: .4byte SpriteCB_MonIcon\n" @@ -1591,14 +1592,14 @@ static void sub_804C728(void) "\tadds r0, r1\n" "\tmovs r6, 0\n" "\tadd r5, sp, 0x10\n" - "\tldr r3, _0804CD00 @ =gTradeUnknownSpriteCoords\n" + "\tldr r3, _0804CD00 @ =sTradeUnknownSpriteCoords\n" "\tmov r8, r3\n" "\tasrs r0, 1\n" "\tldrb r7, [r3, 0x4]\n" "\tadds r4, r0, r7\n" "_0804CC62:\n" "\tadd r1, sp, 0x10\n" - "\tldr r0, _0804CD04 @ =gUnknown_8261CC8\n" + "\tldr r0, _0804CD04 @ =sSpriteTemplate_Text\n" "\tldm r0!, {r2,r3,r7}\n" "\tstm r1!, {r2,r3,r7}\n" "\tldm r0!, {r2,r3,r7}\n" @@ -1638,7 +1639,7 @@ static void sub_804C728(void) "\tadds r0, r1\n" "\tmovs r6, 0\n" "\tadd r5, sp, 0x10\n" - "\tldr r7, _0804CD00 @ =gTradeUnknownSpriteCoords\n" + "\tldr r7, _0804CD00 @ =sTradeUnknownSpriteCoords\n" "\tmov r8, r7\n" "\tasrs r0, 1\n" "\tmov r1, r8\n" @@ -1646,7 +1647,7 @@ static void sub_804C728(void) "\tadds r4, r0, r1\n" "_0804CCC6:\n" "\tadd r1, sp, 0x10\n" - "\tldr r0, _0804CD04 @ =gUnknown_8261CC8\n" + "\tldr r0, _0804CD04 @ =sSpriteTemplate_Text\n" "\tldm r0!, {r2,r3,r7}\n" "\tstm r1!, {r2,r3,r7}\n" "\tldm r0!, {r2,r3,r7}\n" @@ -1673,12 +1674,12 @@ static void sub_804C728(void) "\tb _0804CEC2\n" "\t.align 2, 0\n" "_0804CCFC: .4byte gSaveBlock2Ptr\n" - "_0804CD00: .4byte gTradeUnknownSpriteCoords\n" - "_0804CD04: .4byte gUnknown_8261CC8\n" + "_0804CD00: .4byte sTradeUnknownSpriteCoords\n" + "_0804CD04: .4byte sSpriteTemplate_Text\n" "_0804CD08: .4byte gLinkPlayers + 8\n" "_0804CD0C: .4byte gMain\n" "_0804CD10:\n" - "\tldr r4, _0804CDCC @ =gUnknown_8261CC8\n" + "\tldr r4, _0804CDCC @ =sSpriteTemplate_Text\n" "\tadd r1, sp, 0x10\n" "\tadds r0, r4, 0\n" "\tldm r0!, {r2,r3,r7}\n" @@ -1716,7 +1717,7 @@ static void sub_804C728(void) "\tlsls r5, 13\n" "_0804CD5C:\n" "\tadd r1, sp, 0x10\n" - "\tldr r0, _0804CDCC @ =gUnknown_8261CC8\n" + "\tldr r0, _0804CDCC @ =sSpriteTemplate_Text\n" "\tldm r0!, {r2,r3,r7}\n" "\tstm r1!, {r2,r3,r7}\n" "\tldm r0!, {r2,r3,r7}\n" @@ -1737,8 +1738,8 @@ static void sub_804C728(void) "\tadds r6, 0x1\n" "\tcmp r6, 0x5\n" "\tble _0804CD5C\n" - "\tldr r0, _0804CDD0 @ =gUnknown_8261CB0\n" - "\tldr r2, _0804CDD4 @ =gTradeMonSpriteCoords\n" + "\tldr r0, _0804CDD0 @ =sSpriteTemplate_TradeButtons\n" + "\tldr r2, _0804CDD4 @ =sTradeMonSpriteCoords\n" "\tldrb r1, [r2]\n" "\tlsls r1, 19\n" "\tmovs r3, 0x80\n" @@ -1768,9 +1769,9 @@ static void sub_804C728(void) "\tbl rbox_fill_rectangle\n" "\tb _0804CEE6\n" "\t.align 2, 0\n" - "_0804CDCC: .4byte gUnknown_8261CC8\n" - "_0804CDD0: .4byte gUnknown_8261CB0\n" - "_0804CDD4: .4byte gTradeMonSpriteCoords\n" + "_0804CDCC: .4byte sSpriteTemplate_Text\n" + "_0804CDD0: .4byte sSpriteTemplate_TradeButtons\n" + "_0804CDD4: .4byte sTradeMonSpriteCoords\n" "_0804CDD8: .4byte sTradeMenuResourcesPtr\n" "_0804CDDC: .4byte gMain\n" "_0804CDE0:\n" @@ -1965,8 +1966,8 @@ void sub_804CF14(void) sTradeMenuResourcesPtr->partyIcons[0][i] = CreateMonIcon( GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL), SpriteCB_MonIcon, - gTradeMonSpriteCoords[i][0] * 8 + 14, - gTradeMonSpriteCoords[i][1] * 8 - 12, + sTradeMonSpriteCoords[i][0] * 8 + 14, + sTradeMonSpriteCoords[i][1] * 8 - 12, 1, GetMonData(&gPlayerParty[i], MON_DATA_PERSONALITY), TRUE @@ -1977,8 +1978,8 @@ void sub_804CF14(void) sTradeMenuResourcesPtr->partyIcons[1][i] = CreateMonIcon( GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2, NULL), SpriteCB_MonIcon, - gTradeMonSpriteCoords[i + 6][0] * 8 + 14, - gTradeMonSpriteCoords[i + 6][1] * 8 - 12, + sTradeMonSpriteCoords[i + 6][0] * 8 + 14, + sTradeMonSpriteCoords[i + 6][1] * 8 - 12, 1, GetMonData(&gEnemyParty[i], MON_DATA_PERSONALITY), FALSE @@ -2015,9 +2016,9 @@ void sub_804CF14(void) xPos = (56 - width) / 2; for (i = 0; i < 3; i++) { - temp = gUnknown_8261CC8; + temp = sSpriteTemplate_Text; temp.tileTag += i; - CreateSprite(&temp, xPos + gTradeUnknownSpriteCoords[LANGUAGE_ENGLISH - 1][0] + (i * 32), gTradeUnknownSpriteCoords[LANGUAGE_ENGLISH - 1][1], 1); + CreateSprite(&temp, xPos + sTradeUnknownSpriteCoords[LANGUAGE_ENGLISH - 1][0] + (i * 32), sTradeUnknownSpriteCoords[LANGUAGE_ENGLISH - 1][1], 1); } /* @@ -2030,23 +2031,23 @@ void sub_804CF14(void) xPos = (56 - width) / 2; for (i = 0; i < 3; i++) { - temp = gUnknown_8261CC8; + temp = sSpriteTemplate_Text; temp.tileTag += i + 3; - CreateSprite(&temp, xPos + gTradeUnknownSpriteCoords[LANGUAGE_ENGLISH - 1][2] + (i * 32), gTradeUnknownSpriteCoords[LANGUAGE_ENGLISH - 1][3], 1); + CreateSprite(&temp, xPos + sTradeUnknownSpriteCoords[LANGUAGE_ENGLISH - 1][2] + (i * 32), sTradeUnknownSpriteCoords[LANGUAGE_ENGLISH - 1][3], 1); } gMain.state++; break; case 13: - temp = gUnknown_8261CC8; + temp = sSpriteTemplate_Text; temp.tileTag += 6; CreateSprite(&temp, 215, 151, 1); - temp = gUnknown_8261CC8; + temp = sSpriteTemplate_Text; temp.tileTag += 7; CreateSprite(&temp, 247, 151, 1); for (i = 0; i < PARTY_SIZE; i++) { - temp = gUnknown_8261CC8; + temp = sSpriteTemplate_Text; temp.tileTag += i + 8; CreateSprite(&temp, (i * 32) + 24, 150, 1); } @@ -2056,7 +2057,7 @@ void sub_804CF14(void) else sTradeMenuResourcesPtr->tradeMenuCursorPosition = sub_8138B20() + 6; - sTradeMenuResourcesPtr->tradeMenuCursorSpriteIdx = CreateSprite(&gUnknown_8261CB0, gTradeMonSpriteCoords[sTradeMenuResourcesPtr->tradeMenuCursorPosition][0] * 8 + 32, gTradeMonSpriteCoords[sTradeMenuResourcesPtr->tradeMenuCursorPosition][1] * 8, 2); + sTradeMenuResourcesPtr->tradeMenuCursorSpriteIdx = CreateSprite(&sSpriteTemplate_TradeButtons, sTradeMonSpriteCoords[sTradeMenuResourcesPtr->tradeMenuCursorPosition][0] * 8 + 32, sTradeMonSpriteCoords[sTradeMenuResourcesPtr->tradeMenuCursorPosition][1] * 8, 2); gMain.state = 16; break; case 16: @@ -2234,7 +2235,7 @@ void sub_804CF14(void) "\tcmp r6, r0\n" "\tbge _0804D0A8\n" "\tmov r8, r4\n" - "\tldr r7, _0804D138 @ =gTradeMonSpriteCoords\n" + "\tldr r7, _0804D138 @ =sTradeMonSpriteCoords\n" "_0804D048:\n" "\tmovs r0, 0x64\n" "\tadds r4, r6, 0\n" @@ -2289,7 +2290,7 @@ void sub_804CF14(void) "\tldrb r0, [r0]\n" "\tcmp r6, r0\n" "\tbge _0804D120\n" - "\tldr r0, _0804D138 @ =gTradeMonSpriteCoords\n" + "\tldr r0, _0804D138 @ =sTradeMonSpriteCoords\n" "\tmov r8, r1\n" "\tadds r7, r0, 0\n" "\tadds r7, 0xC\n" @@ -2350,7 +2351,7 @@ void sub_804CF14(void) "_0804D12C: .4byte sTradeMenuResourcesPtr\n" "_0804D130: .4byte gPlayerPartyCount\n" "_0804D134: .4byte gEnemyPartyCount\n" - "_0804D138: .4byte gTradeMonSpriteCoords\n" + "_0804D138: .4byte sTradeMonSpriteCoords\n" "_0804D13C: .4byte gPlayerParty\n" "_0804D140: .4byte 0xfff40000\n" "_0804D144: .4byte SpriteCB_MonIcon\n" @@ -2480,14 +2481,14 @@ void sub_804CF14(void) "\tadds r0, r1\n" "\tmovs r6, 0\n" "\tadd r5, sp, 0xC\n" - "\tldr r3, _0804D310 @ =gTradeUnknownSpriteCoords\n" + "\tldr r3, _0804D310 @ =sTradeUnknownSpriteCoords\n" "\tmov r8, r3\n" "\tasrs r0, 1\n" "\tldrb r7, [r3, 0x4]\n" "\tadds r4, r0, r7\n" "_0804D270:\n" "\tadd r1, sp, 0xC\n" - "\tldr r0, _0804D314 @ =gUnknown_8261CC8\n" + "\tldr r0, _0804D314 @ =sSpriteTemplate_Text\n" "\tldm r0!, {r2,r3,r7}\n" "\tstm r1!, {r2,r3,r7}\n" "\tldm r0!, {r2,r3,r7}\n" @@ -2527,7 +2528,7 @@ void sub_804CF14(void) "\tadds r0, r1\n" "\tmovs r6, 0\n" "\tadd r5, sp, 0xC\n" - "\tldr r7, _0804D310 @ =gTradeUnknownSpriteCoords\n" + "\tldr r7, _0804D310 @ =sTradeUnknownSpriteCoords\n" "\tmov r8, r7\n" "\tasrs r0, 1\n" "\tmov r1, r8\n" @@ -2535,7 +2536,7 @@ void sub_804CF14(void) "\tadds r4, r0, r1\n" "_0804D2D4:\n" "\tadd r1, sp, 0xC\n" - "\tldr r0, _0804D314 @ =gUnknown_8261CC8\n" + "\tldr r0, _0804D314 @ =sSpriteTemplate_Text\n" "\tldm r0!, {r2,r3,r7}\n" "\tstm r1!, {r2,r3,r7}\n" "\tldm r0!, {r2,r3,r7}\n" @@ -2562,12 +2563,12 @@ void sub_804CF14(void) "\tb _0804D4B4\n" "\t.align 2, 0\n" "_0804D30C: .4byte gSaveBlock2Ptr\n" - "_0804D310: .4byte gTradeUnknownSpriteCoords\n" - "_0804D314: .4byte gUnknown_8261CC8\n" + "_0804D310: .4byte sTradeUnknownSpriteCoords\n" + "_0804D314: .4byte sSpriteTemplate_Text\n" "_0804D318: .4byte gLinkPlayers + 8\n" "_0804D31C: .4byte gMain\n" "_0804D320:\n" - "\tldr r4, _0804D3B0 @ =gUnknown_8261CC8\n" + "\tldr r4, _0804D3B0 @ =sSpriteTemplate_Text\n" "\tadd r1, sp, 0xC\n" "\tadds r0, r4, 0\n" "\tldm r0!, {r2,r3,r7}\n" @@ -2605,7 +2606,7 @@ void sub_804CF14(void) "\tlsls r5, 13\n" "_0804D36C:\n" "\tadd r1, sp, 0xC\n" - "\tldr r0, _0804D3B0 @ =gUnknown_8261CC8\n" + "\tldr r0, _0804D3B0 @ =sSpriteTemplate_Text\n" "\tldm r0!, {r2,r3,r7}\n" "\tstm r1!, {r2,r3,r7}\n" "\tldm r0!, {r2,r3,r7}\n" @@ -2636,7 +2637,7 @@ void sub_804CF14(void) "\tldr r1, [r4]\n" "\tb _0804D3C0\n" "\t.align 2, 0\n" - "_0804D3B0: .4byte gUnknown_8261CC8\n" + "_0804D3B0: .4byte sSpriteTemplate_Text\n" "_0804D3B4: .4byte sTradeMenuResourcesPtr\n" "_0804D3B8:\n" "\tbl sub_8138B20\n" @@ -2645,8 +2646,8 @@ void sub_804CF14(void) "_0804D3C0:\n" "\tadds r1, 0x35\n" "\tstrb r0, [r1]\n" - "\tldr r0, _0804D404 @ =gUnknown_8261CB0\n" - "\tldr r3, _0804D408 @ =gTradeMonSpriteCoords\n" + "\tldr r0, _0804D404 @ =sSpriteTemplate_TradeButtons\n" + "\tldr r3, _0804D408 @ =sTradeMonSpriteCoords\n" "\tldr r4, _0804D40C @ =sTradeMenuResourcesPtr\n" "\tldr r1, [r4]\n" "\tadds r1, 0x35\n" @@ -2676,8 +2677,8 @@ void sub_804CF14(void) "\tstrb r1, [r0]\n" "\tb _0804D4D2\n" "\t.align 2, 0\n" - "_0804D404: .4byte gUnknown_8261CB0\n" - "_0804D408: .4byte gTradeMonSpriteCoords\n" + "_0804D404: .4byte sSpriteTemplate_TradeButtons\n" + "_0804D408: .4byte sTradeMonSpriteCoords\n" "_0804D40C: .4byte sTradeMenuResourcesPtr\n" "_0804D410: .4byte gMain\n" "_0804D414:\n" @@ -2824,7 +2825,7 @@ static void sub_804D548(void) static void sub_804D5A4(void) { - gMain.savedCallback = sub_804C718; + gMain.savedCallback = CB2_ReturnFromLinkTrade; if (gWirelessCommType != 0) { if (IsLinkRfuTaskFinished()) @@ -2872,13 +2873,13 @@ static void sub_804D694(u8 state) switch (state) { case 0: - LoadPalette(gUnknown_8E9CEDC, 0x00, 0x60); - LoadBgTiles(1, gUnknown_8E9CF5C, 0x1280, 0); + LoadPalette(gTradeMenu_Pal, 0x00, 0x60); + LoadBgTiles(1, gTradeMenu_Gfx, 0x1280, 0); CopyToBgTilemapBufferRect_ChangePalette(1, gUnknown_8E9E9FC, 0, 0, 32, 20, 0); - LoadBgTilemap(2, gTradeStripesBG2Tilemap, 0x800, 0); + LoadBgTilemap(2, sTradeStripesBG2Tilemap, 0x800, 0); break; case 1: - LoadBgTilemap(3, gTradeStripesBG3Tilemap, 0x800, 0); + LoadBgTilemap(3, sTradeStripesBG3Tilemap, 0x800, 0); sub_804F284(0); sub_804F284(1); CopyBgTilemapBufferToVram(1); @@ -2937,7 +2938,7 @@ static bool8 shedinja_maker_maybe(void) { u8 id = GetMultiplayerId(); int i; - struct Pokemon *mon; + struct Pokemon * mon; switch (sTradeMenuResourcesPtr->unk_69) { @@ -3287,8 +3288,8 @@ static void TradeMenuMoveCursor(u8 *tradeMenuCursorPosition, u8 direction) else { StartSpriteAnim(&gSprites[sTradeMenuResourcesPtr->tradeMenuCursorSpriteIdx], 0); - gSprites[sTradeMenuResourcesPtr->tradeMenuCursorSpriteIdx].pos1.x = gTradeMonSpriteCoords[newPosition][0] * 8 + 32; - gSprites[sTradeMenuResourcesPtr->tradeMenuCursorSpriteIdx].pos1.y = gTradeMonSpriteCoords[newPosition][1] * 8; + gSprites[sTradeMenuResourcesPtr->tradeMenuCursorSpriteIdx].pos1.x = sTradeMonSpriteCoords[newPosition][0] * 8 + 32; + gSprites[sTradeMenuResourcesPtr->tradeMenuCursorSpriteIdx].pos1.y = sTradeMonSpriteCoords[newPosition][1] * 8; } if (*tradeMenuCursorPosition != newPosition) @@ -3582,7 +3583,7 @@ static void sub_804E880(void) { int i; - if (gMain.newKeys & A_BUTTON) + if (JOY_NEW(A_BUTTON)) { PlaySE(SE_SELECT); rbox_fill_rectangle(0); @@ -3749,12 +3750,12 @@ static void sub_804EAE4(u8 a0) gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]].invisible = FALSE; gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]].data[0] = 20; - gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]].data[2] = (gTradeMonSpriteCoords[whichParty * PARTY_SIZE][0] + gTradeMonSpriteCoords[whichParty * PARTY_SIZE + 1][0]) / 2 * 8 + 14; - gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]].data[4] = (gTradeMonSpriteCoords[whichParty * PARTY_SIZE][1] * 8) - 12; + gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]].data[2] = (sTradeMonSpriteCoords[whichParty * PARTY_SIZE][0] + sTradeMonSpriteCoords[whichParty * PARTY_SIZE + 1][0]) / 2 * 8 + 14; + gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]].data[4] = (sTradeMonSpriteCoords[whichParty * PARTY_SIZE][1] * 8) - 12; StoreSpriteCallbackInData6(&gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]], SpriteCB_MonIcon); sTradeMenuResourcesPtr->unk_74[a0]++; sub_8075490(&gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]]); - CopyToBgTilemapBufferRect_ChangePalette(1, gTradePartyBoxTilemap, a0 * 15, 0, 15, 17, 0); + CopyToBgTilemapBufferRect_ChangePalette(1, sTradePartyBoxTilemap, a0 * 15, 0, 15, 17, 0); CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(0); @@ -3766,10 +3767,10 @@ static void sub_804EAE4(u8 a0) sTradeMenuResourcesPtr->unk_74[a0] = 3; break; case 3: - CopyToBgTilemapBufferRect_ChangePalette(1, gTradeMovesBoxTilemap, whichParty * 15, 0, 15, 17, 0); + CopyToBgTilemapBufferRect_ChangePalette(1, sTradeMovesBoxTilemap, whichParty * 15, 0, 15, 17, 0); CopyBgTilemapBufferToVram(1); - gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]].pos1.x = (gTradeMonSpriteCoords[whichParty * PARTY_SIZE][0] + gTradeMonSpriteCoords[whichParty * PARTY_SIZE + 1][0]) / 2 * 8 + 14; - gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]].pos1.y = (gTradeMonSpriteCoords[whichParty * PARTY_SIZE][1] * 8) - 12; + gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]].pos1.x = (sTradeMonSpriteCoords[whichParty * PARTY_SIZE][0] + sTradeMonSpriteCoords[whichParty * PARTY_SIZE + 1][0]) / 2 * 8 + 14; + gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]].pos1.y = (sTradeMonSpriteCoords[whichParty * PARTY_SIZE][1] * 8) - 12; gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]].pos2.x = 0; gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]].pos2.y = 0; nameStringWidth = sub_804EE6C(nickname, whichParty, partyIdx); @@ -3871,7 +3872,7 @@ static void sub_804F08C(u8 whichParty, u8 monIdx, u8 a2, u8 a3, u8 a4, u8 a5) u8 gender; u8 nickname[12]; - CopyToBgTilemapBufferRect_ChangePalette(1, gUnknown_8E9F1FC, a4, a5, 6, 3, 0); + CopyToBgTilemapBufferRect_ChangePalette(1, gTradeMenuMonBox_Tilemap, a4, a5, 6, 3, 0); CopyBgTilemapBufferToVram(1); if (whichParty == 0) @@ -4005,8 +4006,8 @@ static void sub_804F2E8(u8 whichParty) for (i = 0; i < sTradeMenuResourcesPtr->partyCounts[whichParty]; i++) { gSprites[sTradeMenuResourcesPtr->partyIcons[whichParty][i]].invisible = FALSE; - gSprites[sTradeMenuResourcesPtr->partyIcons[whichParty][i]].pos1.x = gTradeMonSpriteCoords[(whichParty * PARTY_SIZE) + i][0] * 8 + 14; - gSprites[sTradeMenuResourcesPtr->partyIcons[whichParty][i]].pos1.y = gTradeMonSpriteCoords[(whichParty * PARTY_SIZE) + i][1] * 8 - 12; + gSprites[sTradeMenuResourcesPtr->partyIcons[whichParty][i]].pos1.x = sTradeMonSpriteCoords[(whichParty * PARTY_SIZE) + i][0] * 8 + 14; + gSprites[sTradeMenuResourcesPtr->partyIcons[whichParty][i]].pos1.y = sTradeMonSpriteCoords[(whichParty * PARTY_SIZE) + i][1] * 8 - 12; gSprites[sTradeMenuResourcesPtr->partyIcons[whichParty][i]].pos2.x = 0; gSprites[sTradeMenuResourcesPtr->partyIcons[whichParty][i]].pos2.y = 0; } @@ -4020,7 +4021,7 @@ static void sub_804F3B4(void) static void sub_804F3C8(u8 whichParty) { - CopyToBgTilemapBufferRect_ChangePalette(1, gTradePartyBoxTilemap, 15 * whichParty, 0, 15, 17, 0); + CopyToBgTilemapBufferRect_ChangePalette(1, sTradePartyBoxTilemap, 15 * whichParty, 0, 15, 17, 0); CopyBgTilemapBufferToVram(1); sub_804F284(whichParty); sub_804F020(whichParty); @@ -4137,15 +4138,15 @@ static bool8 sub_804F610(void) sTradeMenuResourcesPtr->unk_A8++; break; case 14: - LoadSpritePalette(&gUnknown_8261D00); + LoadSpritePalette(&sSpritePalette_Text); sTradeMenuResourcesPtr->unk_A8++; break; case 15: - LoadSpritePalette(&gUnknown_8261C60); + LoadSpritePalette(&sTradeButtons_SpritePal); sTradeMenuResourcesPtr->unk_A8++; break; case 16: - LoadSpriteSheet(&gUnknown_8261C58); + LoadSpriteSheet(&sTradeButtons_SpriteSheet); sTradeMenuResourcesPtr->unk_A8++; break; case 17: @@ -4257,10 +4258,10 @@ static void sub_804F9D8(void) } } -static u32 sub_804FA14(struct Pokemon *party, int partyCount, int cursorPos) +static u32 sub_804FA14(struct Pokemon * party, int partyCount, int cursorPos) { int i, sum; - struct LinkPlayer *player; + struct LinkPlayer * player; int species[6]; int species2[6]; diff --git a/src/trade_scene.c b/src/trade_scene.c index 0c8029685..6adec72d8 100644 --- a/src/trade_scene.c +++ b/src/trade_scene.c @@ -43,6 +43,16 @@ #include "constants/region_map.h" #include "constants/moves.h" +#define TAG_GLOW1_TILES 5550 +#define TAG_GLOW_PAL 5551 +#define TAG_GLOW2_TILES 5552 +#define TAG_UNUSED_5553 5553 +#define TAG_CABLE_END_TILES 5554 +#define TAG_GBA_PAL 5555 +#define TAG_GBA_SCREEN_TILES 5556 +#define TAG_BALL_TILES 5557 +#define TAG_BALL_PAL 5558 + struct InGameTrade { /*0x00*/ u8 nickname[POKEMON_NAME_LENGTH + 1]; /*0x0C*/ u16 species; @@ -64,18 +74,18 @@ struct TradeAnimationResources { /*0x64*/ u32 timer; /*0x68*/ u32 monPersonalities[2]; /*0x70*/ u8 filler_70[2]; - /*0x72*/ u8 unk_72; - /*0x73*/ u8 unk_73; + /*0x72*/ u8 tradeStatus1; + /*0x73*/ u8 tradeStatus2; /*0x74*/ u16 linkData[10]; - /*0x88*/ u8 unk_88; - /*0x89*/ u8 unk_89; - /*0x8A*/ u16 unk_8A; + /*0x88*/ u8 linkTimeoutCheck1; + /*0x89*/ u8 linkTimeoutCheck2; + /*0x8A*/ u16 linkTimeoutTimer; /*0x8C*/ u16 unk_8C; /*0x8E*/ u8 pokePicSpriteIdxs[2]; - /*0x90*/ u8 unk_90; - /*0x91*/ u8 unk_91; - /*0x92*/ u8 unk_92; - /*0x93*/ u8 unk_93; + /*0x90*/ u8 tradeGlow1SpriteId; + /*0x91*/ u8 gbaScreenSpriteID; + /*0x92*/ u8 linkCableEndSpriteId; + /*0x93*/ u8 scheduleLinkTransfer; /*0x94*/ u16 state; /*0x96*/ u8 filler_96[0xD2 - 0x96]; /*0xD2*/ u8 pokeballSpriteId; @@ -91,7 +101,7 @@ struct TradeAnimationResources { /*0xE4*/ s16 bg2vofs; /*0xE6*/ s16 bg2hofs; /*0xE8*/ u16 sXY; - /*0xEA*/ u16 unk_EA; + /*0xEA*/ u16 bg2Zoom; /*0xEC*/ u16 bg2alpha; /*0xEE*/ bool8 isLinkTrade; /*0xF0*/ u16 tradeSpecies[2]; @@ -102,7 +112,7 @@ struct TradeAnimationResources { /*0x103*/ u8 filler_103[1]; /*0x104*/ u8 textColor[3]; /*0x107*/ u8 filler_107[1]; - /*0x108*/ u8 isCableTrade; + /*0x108*/ bool8 isCableTrade; /*0x109*/ u8 win0left; /*0x10A*/ u8 win0top; /*0x10B*/ u8 win0right; @@ -116,15 +126,15 @@ static void SpriteCB_TradeGlowWireless(struct Sprite * sprite); static void SpriteCB_TradeGlowCore(struct Sprite * sprite); static void SpriteCB_GameLinkCableEnd_Outbound(struct Sprite * sprite); static void SpriteCB_GameLinkCableEnd_Inbound(struct Sprite * sprite); -static void sub_804FE00(struct Sprite * sprite); +static void SpriteCB_TradeGBAScreen(struct Sprite * sprite); static void TradeAnimInit_LoadGfx(void); static void CB2_RunTradeAnim_InGameTrade(void); static void SetTradeSequenceBgGpuRegs(u8 idx); -static void sub_8050DE0(void); -static void sub_8050E24(void); -static u8 sub_8050F14(void); -static u8 sub_8050F3C(void); -static u8 sub_805232C(void); +static void LoadTradeGbaSpriteGfx(void); +static void TradeBufferOTnameAndNicknames(void); +static u8 DoTradeAnim(void); +static u8 DoTradeAnim_Cable(void); +static u8 DoTradeAnim_Wireless(void); static void SpriteCB_TradePokeball_Default(struct Sprite * sprite); static void SpriteCB_TradePokeball_Outbound(struct Sprite * sprite); static void SpriteCB_TradePokeball_Outbound2(struct Sprite * sprite); @@ -132,29 +142,29 @@ static void SpriteCB_TradePokeball_Inbound(struct Sprite * sprite); static void BufferInGameTradeMonName(void); static void GetInGameTradeMail(struct MailStruct * mail, const struct InGameTrade * inGameTrade); static void CB2_RunTradeAnim_LinkTrade(void); -static void sub_8053E1C(void); +static void CB2_WaitAndAckTradeComplete(void); static void sub_8053E8C(void); -static void sub_80543C4(void); -static void sub_8054470(u8 taskId); +static void LinkTrade_TearDownAssets(void); +static void Task_WaitFadeAndStartInGameTradeAnim(u8 taskId); static void CheckPartnersMonForRibbons(void); static void Task_AnimateWirelessSignal(u8 taskId); -static void c3_0805465C(u8 taskId); -static void sub_8054734(u8 taskId); +static void Task_OpenCetnerWhiteColumn(u8 taskId); +static void Task_CloseCetnerWhiteColumn(u8 taskId); -static const u16 gTradeBallPalette[] = INCBIN_U16("graphics/trade/ball.gbapal"); -static const u8 gTradeBallTiles[] = INCBIN_U8("graphics/trade/ball.4bpp"); +static const u16 sTradeBallPalette[] = INCBIN_U16("graphics/trade/ball.gbapal"); +static const u8 sTradeBallTiles[] = INCBIN_U8("graphics/trade/ball.4bpp"); static const u8 gUnknown_826267C[] = INCBIN_U8("graphics/trade/pokeball_symbol.8bpp"); static const u16 gUnknown_826407C[] = INCBIN_U16("graphics/trade/cable_closeup_map.bin"); static const u16 gUnknown_083307C0[] = INCBIN_U16("graphics/trade/pokeball_symbol_map.bin"); static const u16 sUnref_083308C0[] = INCBIN_U16("graphics/trade/unknown_3308C0.gbapal"); -static const u16 gUnknown_826499C[] = INCBIN_U16("graphics/trade/gba.gbapal"); +static const u16 sTradeGbaPal[] = INCBIN_U16("graphics/trade/gba.gbapal"); static const u16 gUnref_08330900[] = INCBIN_U16("graphics/trade/shadow.gbapal"); static const u16 gUnref_08330920[] = INCBIN_U16("graphics/trade/black.gbapal"); -static const u16 gUnknown_82649FC[] = INCBIN_U16("graphics/trade/misc.gbapal"); -static const u8 gTradeGlow1Tiles[] = INCBIN_U8("graphics/trade/glow1.4bpp"); -static const u8 gTradeGlow2Tiles[] = INCBIN_U8("graphics/trade/glow2.4bpp"); -static const u8 gTradeCableEndTiles[] = INCBIN_U8("graphics/trade/cable_end.4bpp"); -static const u8 gTradeGBAScreenTiles[] = INCBIN_U8("graphics/trade/gba_screen.4bpp"); +static const u16 sTradeGlowPal[] = INCBIN_U16("graphics/trade/misc.gbapal"); +static const u8 sTradeGlow1Tiles[] = INCBIN_U8("graphics/trade/glow1.4bpp"); +static const u8 sTradeGlow2Tiles[] = INCBIN_U8("graphics/trade/glow2.4bpp"); +static const u8 sTradeCableEndTiles[] = INCBIN_U8("graphics/trade/cable_end.4bpp"); +static const u8 sTradeGBAScreenTiles[] = INCBIN_U8("graphics/trade/gba_screen.4bpp"); const u16 gUnknown_826601C[] = INCBIN_U16("graphics/trade/shadow_map.bin"); static const u8 gUnknown_826701C[] = INCBIN_U8("graphics/trade/gba_affine.8bpp"); static const u8 sFiller_08335760[64] = {}; @@ -162,12 +172,12 @@ static const u8 gUnknown_826985C[] = INCBIN_U8("graphics/trade/gba_affine_map_ca static const u8 gUnknown_826995C[] = INCBIN_U8("graphics/trade/gba_affine_map_wireless.bin"); static const u16 gUnknown_8269A5C[] = INCBIN_U16("graphics/trade/gba_map_wireless.bin"); static const u16 gUnknown_826AA5C[] = INCBIN_U16("graphics/trade/gba_map_cable.bin"); -static const u32 gUnknown_3379A0Bin[] = INCBIN_U32("graphics/trade/unknown_3379A0.bin.lz"); -static const u16 gUnknown_826BB5C[] = INCBIN_U16("graphics/trade/wireless_signal_send.gbapal"); -static const u16 gUnknown_826BD5C[] = INCBIN_U16("graphics/trade/wireless_signal_receive.gbapal"); -static const u16 gUnknown_826BF5C[] = INCBIN_U16("graphics/trade/black.gbapal"); -static const u32 gWirelessSignal4bpp[] = INCBIN_U32("graphics/trade/wireless_signal.4bpp.lz"); -static const u32 gUnknown_826C60C[] = INCBIN_U32("graphics/trade/wireless_signal.bin.lz"); +static const u32 sUnknown_3379A0Bin[] = INCBIN_U32("graphics/trade/unknown_3379A0.bin.lz"); +static const u16 sWirelessSignalAnimPals_Outbound[] = INCBIN_U16("graphics/trade/wireless_signal_send.gbapal"); +static const u16 sWirelessSignalAnimPals_Inbound[] = INCBIN_U16("graphics/trade/wireless_signal_receive.gbapal"); +static const u16 sWirelessSignalAnimPals_Off[] = INCBIN_U16("graphics/trade/black.gbapal"); +static const u32 sWirelessSignal4bpp[] = INCBIN_U32("graphics/trade/wireless_signal.4bpp.lz"); +static const u32 sWirelessSignalTilemap[] = INCBIN_U32("graphics/trade/wireless_signal.bin.lz"); static const struct OamData gOamData_826CD00 = { .affineMode = ST_OAM_AFFINE_NORMAL, @@ -239,20 +249,20 @@ static const union AffineAnimCmd *const gSpriteAffineAnimTable_826CDC8[] = { gAffineAnimCmd_826CDA8 }; -static const struct SpriteSheet gUnknown_826CDD4 = { - gTradeBallTiles, +static const struct SpriteSheet sTradeBallSpriteSheet = { + sTradeBallTiles, 0x600, - 5557 + TAG_BALL_TILES }; -static const struct SpritePalette gUnknown_826CDDC = { - gTradeBallPalette, - 5558 +static const struct SpritePalette sTradeBallSpritePal = { + sTradeBallPalette, + TAG_BALL_PAL }; static const struct SpriteTemplate sTradePokeballSpriteTemplate = { - .tileTag = 5557, - .paletteTag = 5558, + .tileTag = TAG_BALL_TILES, + .paletteTag = TAG_BALL_PAL, .oam = &gOamData_826CD00, .anims = gSpriteAnimTable_826CD80, .affineAnims = gSpriteAffineAnimTable_826CDC8, @@ -286,25 +296,25 @@ static const union AffineAnimCmd *const gSpriteAffineAnimTable_826CE28[] = { gAffineAnimCmd_826CE10 }; -static const struct SpriteSheet gUnknown_826CE2C = { - gTradeGlow1Tiles, +static const struct SpriteSheet sTradeGlow1SpriteSheet = { + sTradeGlow1Tiles, 0x200, - 5550 + TAG_GLOW1_TILES }; -static const struct SpritePalette gUnknown_826CE34 = { - gUnknown_82649FC, - 5551 +static const struct SpritePalette sTradeGlowSpritePal = { + sTradeGlowPal, + TAG_GLOW_PAL }; -static const struct SpritePalette gUnknown_826CE3C = { - gUnknown_826499C, - 5555 +static const struct SpritePalette sTradeGbaSpritePal = { + sTradeGbaPal, + TAG_GBA_PAL }; -static const struct SpriteTemplate gUnknown_826CE44 = { - .tileTag = 5550, - .paletteTag = 5551, +static const struct SpriteTemplate sTradeGlow1SpriteTemplate = { + .tileTag = TAG_GLOW1_TILES, + .paletteTag = TAG_GLOW_PAL, .oam = &gOamData_826CDFC, .anims = gSpriteAnimTable_826CE0C, .affineAnims = gSpriteAffineAnimTable_826CE28, @@ -332,15 +342,15 @@ static const union AnimCmd *const gSpriteAnimTable_826CE74[] = { gAnimCmd_826CE6C }; -static const struct SpriteSheet gUnknown_826CE7C = { - gTradeGlow2Tiles, +static const struct SpriteSheet sTradeGlow2SpriteSheet = { + sTradeGlow2Tiles, 0x300, - 5552 + TAG_GLOW2_TILES }; static const struct SpriteTemplate sGlowBallSpriteTemplate = { - .tileTag = 5552, - .paletteTag = 5551, + .tileTag = TAG_GLOW2_TILES, + .paletteTag = TAG_GLOW_PAL, .oam = &gOamData_826CE5C, .anims = gSpriteAnimTable_826CE74, .affineAnims = gDummySpriteAffineAnimTable, @@ -362,15 +372,15 @@ static const union AnimCmd *const gSpriteAnimTable_826CEAC[] = { gAnimCmd_826CEA4 }; -static const struct SpriteSheet gUnknown_826CEB0 = { - gTradeCableEndTiles, +static const struct SpriteSheet sTradeCableEndSpriteSheet = { + sTradeCableEndTiles, 0x100, - 5554 + TAG_CABLE_END_TILES }; static const struct SpriteTemplate sGameLinkCableEndSpriteTemplate = { - .tileTag = 5554, - .paletteTag = 5555, + .tileTag = TAG_CABLE_END_TILES, + .paletteTag = TAG_GBA_PAL, .oam = &gOamData_826CE9C, .anims = gSpriteAnimTable_826CEAC, .affineAnims = gDummySpriteAffineAnimTable, @@ -415,28 +425,28 @@ static const union AnimCmd *const gSpriteAnimTable_826CF24[] = { gAnimCmd_826CEFC }; -static const struct SpriteSheet gUnknown_826CF28 = { - gTradeGBAScreenTiles, +static const struct SpriteSheet sTradeGBAScreenSpriteSheet = { + sTradeGBAScreenTiles, 0x1000, - 5556 + TAG_GBA_SCREEN_TILES }; -static const struct SpriteTemplate gUnknown_826CF30 = { - .tileTag = 5556, - .paletteTag = 5555, +static const struct SpriteTemplate sTradeGBAScreenSpriteTemplate1 = { + .tileTag = TAG_GBA_SCREEN_TILES, + .paletteTag = TAG_GBA_PAL, .oam = &gOamData_826CED0, .anims = gSpriteAnimTable_826CF20, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_804FE00 + .callback = SpriteCB_TradeGBAScreen }; -static const struct SpriteTemplate gUnknown_826CF48 = { - .tileTag = 5556, - .paletteTag = 5555, +static const struct SpriteTemplate sTradeGBAScreenSpriteTemplate2 = { + .tileTag = TAG_GBA_SCREEN_TILES, + .paletteTag = TAG_GBA_PAL, .oam = &gOamData_826CED0, .anims = gSpriteAnimTable_826CF24, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_804FE00 + .callback = SpriteCB_TradeGBAScreen }; static const u16 gTradeGlow2PaletteAnimTable[] = { @@ -459,7 +469,7 @@ static const union AffineAnimCmd gAffineAnimCmd_826CF78[] = { AFFINEANIMCMD_JUMP(0) }; -static const union AffineAnimCmd *const gUnknown_826CF88[] = { +static const union AffineAnimCmd *const sSpriteAffineAnimTable_PlayerPokePicAlt[] = { gAffineAnimCmd_826CF78 }; @@ -523,7 +533,7 @@ static const struct BgTemplate gUnknown_826D1D4[] = { } }; -static const s8 gTradeBallVerticalVelocityTable[] = { +static const s8 sTradeBallVerticalVelocityTable[] = { 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 2, 2, @@ -553,7 +563,7 @@ static const s8 gTradeBallVerticalVelocityTable[] = { 1, 1, 2, 3 }; -static const u8 gUnknown_826D250[][2] = { +static const u8 sWirelessSignalAnimParams[][2] = { {0, 1}, {1, 1}, {2, 1}, @@ -626,6 +636,7 @@ static void SpriteCB_TradeGlowCore(struct Sprite * sprite) } } +// Move down for 10 frames static void SpriteCB_GameLinkCableEnd_Outbound(struct Sprite * sprite) { sprite->data[0]++; @@ -634,6 +645,7 @@ static void SpriteCB_GameLinkCableEnd_Outbound(struct Sprite * sprite) DestroySprite(sprite); } +// Move up for 10 frames static void SpriteCB_GameLinkCableEnd_Inbound(struct Sprite * sprite) { sprite->data[0]++; @@ -642,7 +654,8 @@ static void SpriteCB_GameLinkCableEnd_Inbound(struct Sprite * sprite) DestroySprite(sprite); } -static void sub_804FE00(struct Sprite * sprite) +// Play a sound every 15 frames +static void SpriteCB_TradeGBAScreen(struct Sprite * sprite) { sprite->data[0]++; if (sprite->data[0] == 15) @@ -691,43 +704,43 @@ static void VBlankCB_TradeAnim(void) TransferPlttBuffer(); } -static void sub_804FF24(void) +static void InitLinkTimeoutTracker(void) { - sTradeData->unk_8A = 0; - sTradeData->unk_88 = 0; - sTradeData->unk_89 = 0; + sTradeData->linkTimeoutTimer = 0; + sTradeData->linkTimeoutCheck1 = 0; + sTradeData->linkTimeoutCheck2 = 0; } -static void sub_804FF4C(void) +static void CheckLinkTimeout(void) { - if (sTradeData->unk_88 == sTradeData->unk_89) - sTradeData->unk_8A++; + if (sTradeData->linkTimeoutCheck1 == sTradeData->linkTimeoutCheck2) + sTradeData->linkTimeoutTimer++; else - sTradeData->unk_8A = 0; + sTradeData->linkTimeoutTimer = 0; - if (sTradeData->unk_8A > 300) + if (sTradeData->linkTimeoutTimer > 300) { CloseLink(); SetMainCallback2(CB2_LinkError); - sTradeData->unk_8A = 0; - sTradeData->unk_89 = 0; - sTradeData->unk_88 = 0; + sTradeData->linkTimeoutTimer = 0; + sTradeData->linkTimeoutCheck2 = 0; + sTradeData->linkTimeoutCheck1 = 0; } - sTradeData->unk_89 = sTradeData->unk_88; + sTradeData->linkTimeoutCheck2 = sTradeData->linkTimeoutCheck1; } -static u32 sub_804FFC4(void) +static u32 GetMultiplayerIdIfLinkTrade(void) { if (gReceivedRemoteLinkPlayers) return GetMultiplayerId(); return 0; } -static void sub_804FFE4(u8 whichParty, u8 a1) +static void LoadTradeMonPic(u8 whichParty, u8 action) { int pos = 0; - struct Pokemon *mon = NULL; + struct Pokemon * mon = NULL; u16 species; u32 personality; @@ -737,15 +750,16 @@ static void sub_804FFE4(u8 whichParty, u8 a1) pos = 1; } - if (whichParty == 1) + /*else*/ if (whichParty == 1) { mon = &gEnemyParty[gSelectedTradeMonPositions[1] % PARTY_SIZE]; pos = 3; } - switch (a1) + switch (action) { case 0: + // Load graphics species = GetMonData(mon, MON_DATA_SPECIES2); personality = GetMonData(mon, MON_DATA_PERSONALITY); @@ -759,6 +773,7 @@ static void sub_804FFE4(u8 whichParty, u8 a1) sTradeData->monPersonalities[whichParty] = personality; break; case 1: + // Create sprite SetMultiuseSpriteTemplateToPokemon(GetMonSpritePalStruct(mon)->tag, pos); sTradeData->pokePicSpriteIdxs[whichParty] = CreateSprite(&gMultiuseSpriteTemplate, 120, 60, 6); gSprites[sTradeData->pokePicSpriteIdxs[whichParty]].invisible = TRUE; @@ -784,7 +799,7 @@ void CB2_InitTradeAnim_LinkTrade(void) FreeAllSpritePalettes(); SetVBlankCallback(VBlankCB_TradeAnim); TradeAnimInit_LoadGfx(); - sub_804FF24(); + InitLinkTimeoutTracker(); gMain.state++; sTradeData->unk_8C = 0; sTradeData->state = 0; @@ -833,7 +848,7 @@ void CB2_InitTradeAnim_LinkTrade(void) } else { - sub_804FF4C(); + CheckLinkTimeout(); } } else @@ -842,36 +857,36 @@ void CB2_InitTradeAnim_LinkTrade(void) } break; case 4: - sub_804FF4C(); + CheckLinkTimeout(); if (gReceivedRemoteLinkPlayers == 1 && IsLinkPlayerDataExchangeComplete() == 1) { gMain.state++; } break; case 5: - sTradeData->unk_72 = 0; - sTradeData->unk_73 = 0; - sTradeData->unk_93 = 0; - sub_804FFE4(0, 0); + sTradeData->tradeStatus1 = 0; + sTradeData->tradeStatus2 = 0; + sTradeData->scheduleLinkTransfer = 0; + LoadTradeMonPic(0, 0); gMain.state++; break; case 6: - sub_804FFE4(0, 1); + LoadTradeMonPic(0, 1); gMain.state++; break; case 7: - sub_804FFE4(1, 0); + LoadTradeMonPic(1, 0); gMain.state++; break; case 8: - sub_804FFE4(1, 1); + LoadTradeMonPic(1, 1); sub_80504B0(); gMain.state++; break; case 9: - sub_8050DE0(); - LoadSpriteSheet(&gUnknown_826CDD4); - LoadSpritePalette(&gUnknown_826CDDC); + LoadTradeGbaSpriteGfx(); + LoadSpriteSheet(&sTradeBallSpriteSheet); + LoadSpritePalette(&sTradeBallSpritePal); gMain.state++; break; case 10: @@ -884,7 +899,7 @@ void CB2_InitTradeAnim_LinkTrade(void) break; case 11: sub_805049C(); - sub_8050E24(); + TradeBufferOTnameAndNicknames(); gMain.state++; break; case 12: @@ -977,29 +992,29 @@ static void CB2_InitTradeAnim_InGameTrade(void) gMain.state = 5; break; case 5: - sub_804FFE4(0, 0); + LoadTradeMonPic(0, 0); gMain.state++; break; case 6: - sub_804FFE4(0, 1); + LoadTradeMonPic(0, 1); gMain.state++; break; case 7: - sub_804FFE4(1, 0); + LoadTradeMonPic(1, 0); ShowBg(0); gMain.state++; break; case 8: - sub_804FFE4(1, 1); + LoadTradeMonPic(1, 1); FillWindowPixelBuffer(0, PIXEL_FILL(15)); PutWindowTilemap(0); CopyWindowToVram(0, 3); gMain.state++; break; case 9: - sub_8050DE0(); - LoadSpriteSheet(&gUnknown_826CDD4); - LoadSpritePalette(&gUnknown_826CDDC); + LoadTradeGbaSpriteGfx(); + LoadSpriteSheet(&sTradeBallSpriteSheet); + LoadSpritePalette(&sTradeBallSpritePal); gMain.state++; break; case 10: @@ -1009,7 +1024,7 @@ static void CB2_InitTradeAnim_InGameTrade(void) case 11: SetTradeSequenceBgGpuRegs(5); SetTradeSequenceBgGpuRegs(0); - sub_8050E24(); + TradeBufferOTnameAndNicknames(); gMain.state++; break; case 12: @@ -1026,7 +1041,7 @@ static void CB2_InitTradeAnim_InGameTrade(void) static void ReceivedMonSetPokedexFlags(u8 partyIdx) { - struct Pokemon *mon = &gPlayerParty[partyIdx]; + struct Pokemon * mon = &gPlayerParty[partyIdx]; if (!GetMonData(mon, MON_DATA_IS_EGG)) { @@ -1051,10 +1066,10 @@ static void TradeMons(u8 playerPartyIdx, u8 partnerPartyIdx) u8 friendship; // Get whether the offered Pokemon have mail - struct Pokemon *playerMon = &gPlayerParty[playerPartyIdx]; + struct Pokemon * playerMon = &gPlayerParty[playerPartyIdx]; u16 playerMail = GetMonData(playerMon, MON_DATA_MAIL); - struct Pokemon *partnerMon = &gEnemyParty[partnerPartyIdx]; + struct Pokemon * partnerMon = &gEnemyParty[partnerPartyIdx]; u16 partnerMail = GetMonData(partnerMon, MON_DATA_MAIL); // The mail attached to the sent Pokemon no longer exists in your file. @@ -1080,25 +1095,25 @@ static void TradeMons(u8 playerPartyIdx, u8 partnerPartyIdx) RS_TryEnableNationalPokedex(); } -static void sub_80508F4(void) +static void HandleLinkDataSend(void) { - switch (sTradeData->unk_93) + switch (sTradeData->scheduleLinkTransfer) { case 1: if (IsLinkTaskFinished()) { SendBlock(bitmask_all_link_players_but_self(), sTradeData->linkData, 20); - sTradeData->unk_93++; + sTradeData->scheduleLinkTransfer++; } case 2: - sTradeData->unk_93 = 0; + sTradeData->scheduleLinkTransfer = 0; break; } } static void CB2_RunTradeAnim_InGameTrade(void) { - sub_8050F14(); + DoTradeAnim(); RunTasks(); RunTextPrinters(); AnimateSprites(); @@ -1139,10 +1154,10 @@ static void SetTradeSequenceBgGpuRegs(u8 state) case 2: sTradeData->bg1vofs = 0; sTradeData->bg1hofs = 0; - if (sTradeData->isCableTrade == FALSE) + if (!sTradeData->isCableTrade) { SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_1 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG1_ON | DISPCNT_OBJ_ON); - LZ77UnCompVram(gUnknown_3379A0Bin, (void *)BG_SCREEN_ADDR(5)); + LZ77UnCompVram(sUnknown_3379A0Bin, (void *)BG_SCREEN_ADDR(5)); BlendPalettes(0x000000008, 0x10, RGB_BLACK); } else @@ -1153,9 +1168,9 @@ static void SetTradeSequenceBgGpuRegs(u8 state) } break; case 3: - LoadPalette(gUnknown_826BF5C, 0x30, 0x20); - LZ77UnCompVram(gWirelessSignal4bpp, BG_CHAR_ADDR(1)); - LZ77UnCompVram(gUnknown_826C60C, BG_SCREEN_ADDR(18)); + LoadPalette(sWirelessSignalAnimPals_Off, 0x30, 0x20); + LZ77UnCompVram(sWirelessSignal4bpp, BG_CHAR_ADDR(1)); + LZ77UnCompVram(sWirelessSignalTilemap, BG_SCREEN_ADDR(18)); sTradeData->bg2vofs = 0x50; SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG1_ON | DISPCNT_BG2_ON | DISPCNT_OBJ_ON); break; @@ -1165,7 +1180,7 @@ static void SetTradeSequenceBgGpuRegs(u8 state) sTradeData->bg2texX = 0x40; sTradeData->bg2texY = 0x5C; sTradeData->sXY = 0x20; - sTradeData->unk_EA = 0x400; + sTradeData->bg2Zoom = 0x400; sTradeData->bg2alpha = 0; DmaCopyLarge16(3, gUnknown_826701C, (void *)BG_CHAR_ADDR(1), 0x2840, 0x1000); if (sTradeData->isCableTrade) @@ -1187,7 +1202,7 @@ static void SetTradeSequenceBgGpuRegs(u8 state) sTradeData->bg2texX = 0x40; sTradeData->bg2texY = 0x5C; sTradeData->sXY = 0x100; - sTradeData->unk_EA = 0x80; + sTradeData->bg2Zoom = 0x80; sTradeData->bg2srcX = 0x78; sTradeData->bg2srcY = 0x50; sTradeData->bg2alpha = 0; @@ -1213,17 +1228,17 @@ static void SetTradeSequenceBgGpuRegs(u8 state) } } -static void sub_8050DE0(void) +static void LoadTradeGbaSpriteGfx(void) { - LoadSpriteSheet(&gUnknown_826CE2C); - LoadSpriteSheet(&gUnknown_826CE7C); - LoadSpriteSheet(&gUnknown_826CEB0); - LoadSpriteSheet(&gUnknown_826CF28); - LoadSpritePalette(&gUnknown_826CE34); - LoadSpritePalette(&gUnknown_826CE3C); + LoadSpriteSheet(&sTradeGlow1SpriteSheet); + LoadSpriteSheet(&sTradeGlow2SpriteSheet); + LoadSpriteSheet(&sTradeCableEndSpriteSheet); + LoadSpriteSheet(&sTradeGBAScreenSpriteSheet); + LoadSpritePalette(&sTradeGlowSpritePal); + LoadSpritePalette(&sTradeGbaSpritePal); } -static void sub_8050E24(void) +static void TradeBufferOTnameAndNicknames(void) { u8 nickname[20]; u8 mpId; @@ -1239,7 +1254,7 @@ static void sub_8050E24(void) } else { - inGameTrade = &gInGameTrades[gSpecialVar_0x8004]; + inGameTrade = &sInGameTrades[gSpecialVar_0x8004]; StringCopy(gStringVar1, inGameTrade->otName); StringCopy10(gStringVar3, inGameTrade->nickname); GetMonData(&gPlayerParty[gSpecialVar_0x8005], MON_DATA_NICKNAME, nickname); @@ -1247,15 +1262,15 @@ static void sub_8050E24(void) } } -static bool8 sub_8050F14(void) +static bool8 DoTradeAnim(void) { if (sTradeData->isCableTrade) - return sub_8050F3C(); + return DoTradeAnim_Cable(); else - return sub_805232C(); + return DoTradeAnim_Wireless(); } -static bool8 sub_8050F3C(void) +static bool8 DoTradeAnim_Cable(void) { u16 evoTarget; @@ -1339,31 +1354,31 @@ static bool8 sub_8050F3C(void) } break; case 23: - if (sTradeData->unk_EA > 0x100) + if (sTradeData->bg2Zoom > 0x100) { - sTradeData->unk_EA -= 0x34; + sTradeData->bg2Zoom -= 0x34; } else { SetTradeSequenceBgGpuRegs(1); - sTradeData->unk_EA = 0x80; + sTradeData->bg2Zoom = 0x80; sTradeData->state++; sTradeData->timer = 0; } - sTradeData->sXY = 0x8000 / sTradeData->unk_EA; + sTradeData->sXY = 0x8000 / sTradeData->bg2Zoom; break; case 24: if (++sTradeData->timer > 20) { SetTradeBGAffine(); - sTradeData->unk_91 = CreateSprite(&gUnknown_826CF30, 120, 80, 0); + sTradeData->gbaScreenSpriteID = CreateSprite(&sTradeGBAScreenSpriteTemplate1, 120, 80, 0); sTradeData->state++; } break; case 25: - if (gSprites[sTradeData->unk_91].animEnded) + if (gSprites[sTradeData->gbaScreenSpriteID].animEnded) { - DestroySprite(&gSprites[sTradeData->unk_91]); + DestroySprite(&gSprites[sTradeData->gbaScreenSpriteID]); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2); @@ -1378,13 +1393,13 @@ static bool8 sub_8050F3C(void) } if (sTradeData->bg1vofs == 328) { - sTradeData->unk_92 = CreateSprite(&sGameLinkCableEndSpriteTemplate, 128, 65, 0); + sTradeData->linkCableEndSpriteId = CreateSprite(&sGameLinkCableEndSpriteTemplate, 128, 65, 0); } break; case 27: - sTradeData->unk_90 = CreateSprite(&gUnknown_826CE44, 128, 80, 3); - sTradeData->unk_91 = CreateSprite(&sGlowBallSpriteTemplate, 128, 80, 0); - StartSpriteAnim(&gSprites[sTradeData->unk_91], 1); + sTradeData->tradeGlow1SpriteId = CreateSprite(&sTradeGlow1SpriteTemplate, 128, 80, 3); + sTradeData->gbaScreenSpriteID = CreateSprite(&sGlowBallSpriteTemplate, 128, 80, 0); + StartSpriteAnim(&gSprites[sTradeData->gbaScreenSpriteID], 1); sTradeData->state++; break; case 28: @@ -1398,9 +1413,9 @@ static bool8 sub_8050F3C(void) DISPCNT_OBJ_ON); break; case 200: - gSprites[sTradeData->unk_90].pos1.y -= 2; - gSprites[sTradeData->unk_91].pos1.y -= 2; - if (gSprites[sTradeData->unk_90].pos1.y < -8) + gSprites[sTradeData->tradeGlow1SpriteId].pos1.y -= 2; + gSprites[sTradeData->gbaScreenSpriteID].pos1.y -= 2; + if (gSprites[sTradeData->tradeGlow1SpriteId].pos1.y < -8) { sTradeData->state = 29; } @@ -1412,16 +1427,16 @@ static bool8 sub_8050F3C(void) case 30: if (!gPaletteFade.active) { - DestroySprite(&gSprites[sTradeData->unk_90]); - DestroySprite(&gSprites[sTradeData->unk_91]); + DestroySprite(&gSprites[sTradeData->tradeGlow1SpriteId]); + DestroySprite(&gSprites[sTradeData->gbaScreenSpriteID]); SetTradeSequenceBgGpuRegs(2); sTradeData->state++; } break; case 31: BeginNormalPaletteFade(0xFFFFFFFF, -1, 16, 0, RGB_BLACK); - sTradeData->unk_90 = CreateSprite(&sGlowBallSpriteTemplate, 111, 170, 0); - sTradeData->unk_91 = CreateSprite(&sGlowBallSpriteTemplate, 129, -10, 0); + sTradeData->tradeGlow1SpriteId = CreateSprite(&sGlowBallSpriteTemplate, 111, 170, 0); + sTradeData->gbaScreenSpriteID = CreateSprite(&sGlowBallSpriteTemplate, 129, -10, 0); sTradeData->state++; break; case 32: @@ -1430,16 +1445,16 @@ static bool8 sub_8050F3C(void) PlaySE(SE_TK_WARPOUT); sTradeData->state++; } - gSprites[sTradeData->unk_90].pos2.y -= 3; - gSprites[sTradeData->unk_91].pos2.y += 3; + gSprites[sTradeData->tradeGlow1SpriteId].pos2.y -= 3; + gSprites[sTradeData->gbaScreenSpriteID].pos2.y += 3; break; case 33: - gSprites[sTradeData->unk_90].pos2.y -= 3; - gSprites[sTradeData->unk_91].pos2.y += 3; - if (gSprites[sTradeData->unk_90].pos2.y <= -90) + gSprites[sTradeData->tradeGlow1SpriteId].pos2.y -= 3; + gSprites[sTradeData->gbaScreenSpriteID].pos2.y += 3; + if (gSprites[sTradeData->tradeGlow1SpriteId].pos2.y <= -90) { - gSprites[sTradeData->unk_90].data[1] = 1; - gSprites[sTradeData->unk_91].data[1] = 1; + gSprites[sTradeData->tradeGlow1SpriteId].data[1] = 1; + gSprites[sTradeData->gbaScreenSpriteID].data[1] = 1; sTradeData->state++; } break; @@ -1458,7 +1473,7 @@ static bool8 sub_8050F3C(void) case 37: if (!IsPokeSpriteNotFlipped(sTradeData->tradeSpecies[0])) { - gSprites[sTradeData->pokePicSpriteIdxs[0]].affineAnims = gUnknown_826CF88; + gSprites[sTradeData->pokePicSpriteIdxs[0]].affineAnims = sSpriteAffineAnimTable_PlayerPokePicAlt; gSprites[sTradeData->pokePicSpriteIdxs[0]].oam.affineMode = 3; CalcCenterToCornerVec(&gSprites[sTradeData->pokePicSpriteIdxs[0]], 0, 3, 3); StartSpriteAffineAnim(&gSprites[sTradeData->pokePicSpriteIdxs[0]], 0); @@ -1485,8 +1500,8 @@ static bool8 sub_8050F3C(void) } if (gSprites[sTradeData->pokePicSpriteIdxs[0]].pos2.y < -222) { - gSprites[sTradeData->unk_90].data[1] = 0; - gSprites[sTradeData->unk_91].data[1] = 0; + gSprites[sTradeData->tradeGlow1SpriteId].data[1] = 0; + gSprites[sTradeData->gbaScreenSpriteID].data[1] = 0; sTradeData->state++; gSprites[sTradeData->pokePicSpriteIdxs[0]].invisible = TRUE; gSprites[sTradeData->pokePicSpriteIdxs[1]].invisible = TRUE; @@ -1494,14 +1509,14 @@ static bool8 sub_8050F3C(void) } break; case 39: - gSprites[sTradeData->unk_90].pos2.y -= 3; - gSprites[sTradeData->unk_91].pos2.y += 3; - if (gSprites[sTradeData->unk_90].pos2.y <= -222) + gSprites[sTradeData->tradeGlow1SpriteId].pos2.y -= 3; + gSprites[sTradeData->gbaScreenSpriteID].pos2.y += 3; + if (gSprites[sTradeData->tradeGlow1SpriteId].pos2.y <= -222) { BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 16, RGB_BLACK); sTradeData->state++; - DestroySprite(&gSprites[sTradeData->unk_90]); - DestroySprite(&gSprites[sTradeData->unk_91]); + DestroySprite(&gSprites[sTradeData->tradeGlow1SpriteId]); + DestroySprite(&gSprites[sTradeData->gbaScreenSpriteID]); } break; case 40: @@ -1510,9 +1525,9 @@ static bool8 sub_8050F3C(void) sTradeData->state++; SetTradeSequenceBgGpuRegs(1); sTradeData->bg1vofs = 166; - sTradeData->unk_90 = CreateSprite(&gUnknown_826CE44, 128, -20, 3); - sTradeData->unk_91 = CreateSprite(&sGlowBallSpriteTemplate, 128, -20, 0); - StartSpriteAnim(&gSprites[sTradeData->unk_91], 1); + sTradeData->tradeGlow1SpriteId = CreateSprite(&sTradeGlow1SpriteTemplate, 128, -20, 3); + sTradeData->gbaScreenSpriteID = CreateSprite(&sGlowBallSpriteTemplate, 128, -20, 0); + StartSpriteAnim(&gSprites[sTradeData->gbaScreenSpriteID], 1); } break; case 41: @@ -1530,9 +1545,9 @@ static bool8 sub_8050F3C(void) } break; case 43: - gSprites[sTradeData->unk_90].pos2.y += 3; - gSprites[sTradeData->unk_91].pos2.y += 3; - if (gSprites[sTradeData->unk_90].pos2.y + gSprites[sTradeData->unk_90].pos1.y == 64) + gSprites[sTradeData->tradeGlow1SpriteId].pos2.y += 3; + gSprites[sTradeData->gbaScreenSpriteID].pos2.y += 3; + if (gSprites[sTradeData->tradeGlow1SpriteId].pos2.y + gSprites[sTradeData->tradeGlow1SpriteId].pos1.y == 64) { sTradeData->state++; } @@ -1545,8 +1560,8 @@ static bool8 sub_8050F3C(void) } break; case 45: - DestroySprite(&gSprites[sTradeData->unk_90]); - DestroySprite(&gSprites[sTradeData->unk_91]); + DestroySprite(&gSprites[sTradeData->tradeGlow1SpriteId]); + DestroySprite(&gSprites[sTradeData->gbaScreenSpriteID]); sTradeData->state++; sTradeData->timer = 0; break; @@ -1564,34 +1579,34 @@ static bool8 sub_8050F3C(void) } if (sTradeData->bg1vofs == 328 && sTradeData->isCableTrade) { - sTradeData->unk_92 = CreateSprite(&sGameLinkCableEndSpriteTemplate, 128, 65, 0); - gSprites[sTradeData->unk_92].callback = SpriteCB_GameLinkCableEnd_Inbound; + sTradeData->linkCableEndSpriteId = CreateSprite(&sGameLinkCableEndSpriteTemplate, 128, 65, 0); + gSprites[sTradeData->linkCableEndSpriteId].callback = SpriteCB_GameLinkCableEnd_Inbound; } break; case 48: - sTradeData->unk_91 = CreateSprite(&gUnknown_826CF30, 120, 80, 0); + sTradeData->gbaScreenSpriteID = CreateSprite(&sTradeGBAScreenSpriteTemplate1, 120, 80, 0); sTradeData->state = 50; break; case 50: - if (gSprites[sTradeData->unk_91].animEnded) + if (gSprites[sTradeData->gbaScreenSpriteID].animEnded) { - DestroySprite(&gSprites[sTradeData->unk_91]); + DestroySprite(&gSprites[sTradeData->gbaScreenSpriteID]); SetTradeSequenceBgGpuRegs(6); sTradeData->state++; PlaySE(SE_W028); } break; case 51: - if (sTradeData->unk_EA < 0x400) + if (sTradeData->bg2Zoom < 0x400) { - sTradeData->unk_EA += 0x34; + sTradeData->bg2Zoom += 0x34; } else { - sTradeData->unk_EA = 0x400; + sTradeData->bg2Zoom = 0x400; sTradeData->state++; } - sTradeData->sXY = 0x8000 / sTradeData->unk_EA; + sTradeData->sXY = 0x8000 / sTradeData->bg2Zoom; break; case 52: BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); @@ -1752,7 +1767,7 @@ static bool8 sub_8050F3C(void) return FALSE; } -static bool8 sub_805232C(void) +static bool8 DoTradeAnim_Wireless(void) { u16 evoTarget; @@ -1836,31 +1851,31 @@ static bool8 sub_805232C(void) } break; case 23: - if (sTradeData->unk_EA > 0x100) + if (sTradeData->bg2Zoom > 0x100) { - sTradeData->unk_EA -= 0x34; + sTradeData->bg2Zoom -= 0x34; } else { SetTradeSequenceBgGpuRegs(1); - sTradeData->unk_EA = 0x80; + sTradeData->bg2Zoom = 0x80; sTradeData->state = 124; sTradeData->timer = 0; } - sTradeData->sXY = 0x8000 / sTradeData->unk_EA; + sTradeData->sXY = 0x8000 / sTradeData->bg2Zoom; break; case 124: if (++sTradeData->timer > 20) { SetTradeSequenceBgGpuRegs(3); - sTradeData->unk_91 = CreateSprite(&gUnknown_826CF48, 120, 80, 0); + sTradeData->gbaScreenSpriteID = CreateSprite(&sTradeGBAScreenSpriteTemplate2, 120, 80, 0); sTradeData->state++; } break; case 125: - if (gSprites[sTradeData->unk_91].animEnded) + if (gSprites[sTradeData->gbaScreenSpriteID].animEnded) { - DestroySprite(&gSprites[sTradeData->unk_91]); + DestroySprite(&gSprites[sTradeData->gbaScreenSpriteID]); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_TGT1_OBJ | BLDCNT_EFFECT_BLEND | @@ -1883,10 +1898,10 @@ static bool8 sub_805232C(void) } break; case 27: - sTradeData->unk_90 = CreateSprite(&gUnknown_826CE44, 120, 80, 3); - gSprites[sTradeData->unk_90].callback = SpriteCB_TradeGlowWireless; - sTradeData->unk_91 = CreateSprite(&sGlowBallSpriteTemplate, 120, 80, 0); - StartSpriteAnim(&gSprites[sTradeData->unk_91], 1); + sTradeData->tradeGlow1SpriteId = CreateSprite(&sTradeGlow1SpriteTemplate, 120, 80, 3); + gSprites[sTradeData->tradeGlow1SpriteId].callback = SpriteCB_TradeGlowWireless; + sTradeData->gbaScreenSpriteID = CreateSprite(&sGlowBallSpriteTemplate, 120, 80, 0); + StartSpriteAnim(&gSprites[sTradeData->gbaScreenSpriteID], 1); sTradeData->state++; break; case 28: @@ -1900,9 +1915,9 @@ static bool8 sub_805232C(void) DISPCNT_OBJ_ON); break; case 200: - gSprites[sTradeData->unk_90].pos1.y -= 2; - gSprites[sTradeData->unk_91].pos1.y -= 2; - if (gSprites[sTradeData->unk_90].pos1.y < -8) + gSprites[sTradeData->tradeGlow1SpriteId].pos1.y -= 2; + gSprites[sTradeData->gbaScreenSpriteID].pos1.y -= 2; + if (gSprites[sTradeData->tradeGlow1SpriteId].pos1.y < -8) { sTradeData->state = 29; } @@ -1914,16 +1929,16 @@ static bool8 sub_805232C(void) case 30: if (!gPaletteFade.active) { - DestroySprite(&gSprites[sTradeData->unk_90]); - DestroySprite(&gSprites[sTradeData->unk_91]); + DestroySprite(&gSprites[sTradeData->tradeGlow1SpriteId]); + DestroySprite(&gSprites[sTradeData->gbaScreenSpriteID]); SetTradeSequenceBgGpuRegs(2); sTradeData->state++; } break; case 31: BeginNormalPaletteFade(0xFFFFFFFF, -1, 16, 0, RGB_BLACK); - sTradeData->unk_90 = CreateSprite(&sGlowBallSpriteTemplate, 111, 170, 0); - sTradeData->unk_91 = CreateSprite(&sGlowBallSpriteTemplate, 129, -10, 0); + sTradeData->tradeGlow1SpriteId = CreateSprite(&sGlowBallSpriteTemplate, 111, 170, 0); + sTradeData->gbaScreenSpriteID = CreateSprite(&sGlowBallSpriteTemplate, 129, -10, 0); sTradeData->state++; break; case 32: @@ -1932,18 +1947,18 @@ static bool8 sub_805232C(void) PlaySE(SE_TK_WARPOUT); sTradeData->state++; } - gSprites[sTradeData->unk_90].pos2.y -= 3; - gSprites[sTradeData->unk_91].pos2.y += 3; + gSprites[sTradeData->tradeGlow1SpriteId].pos2.y -= 3; + gSprites[sTradeData->gbaScreenSpriteID].pos2.y += 3; break; case 33: - gSprites[sTradeData->unk_90].pos2.y -= 3; - gSprites[sTradeData->unk_91].pos2.y += 3; - if (gSprites[sTradeData->unk_90].pos2.y <= -90) + gSprites[sTradeData->tradeGlow1SpriteId].pos2.y -= 3; + gSprites[sTradeData->gbaScreenSpriteID].pos2.y += 3; + if (gSprites[sTradeData->tradeGlow1SpriteId].pos2.y <= -90) { - gSprites[sTradeData->unk_90].data[1] = 1; - gSprites[sTradeData->unk_91].data[1] = 1; + gSprites[sTradeData->tradeGlow1SpriteId].data[1] = 1; + gSprites[sTradeData->gbaScreenSpriteID].data[1] = 1; sTradeData->state++; - CreateTask(c3_0805465C, 5); + CreateTask(Task_OpenCetnerWhiteColumn, 5); } break; case 34: @@ -1961,7 +1976,7 @@ static bool8 sub_805232C(void) case 37: if (!IsPokeSpriteNotFlipped(sTradeData->tradeSpecies[0])) { - gSprites[sTradeData->pokePicSpriteIdxs[0]].affineAnims = gUnknown_826CF88; + gSprites[sTradeData->pokePicSpriteIdxs[0]].affineAnims = sSpriteAffineAnimTable_PlayerPokePicAlt; gSprites[sTradeData->pokePicSpriteIdxs[0]].oam.affineMode = 3; CalcCenterToCornerVec(&gSprites[sTradeData->pokePicSpriteIdxs[0]], 0, 3, 3); StartSpriteAffineAnim(&gSprites[sTradeData->pokePicSpriteIdxs[0]], 0); @@ -1988,23 +2003,23 @@ static bool8 sub_805232C(void) } if (gSprites[sTradeData->pokePicSpriteIdxs[0]].pos2.y < -222) { - gSprites[sTradeData->unk_90].data[1] = 0; - gSprites[sTradeData->unk_91].data[1] = 0; + gSprites[sTradeData->tradeGlow1SpriteId].data[1] = 0; + gSprites[sTradeData->gbaScreenSpriteID].data[1] = 0; sTradeData->state++; gSprites[sTradeData->pokePicSpriteIdxs[0]].invisible = TRUE; gSprites[sTradeData->pokePicSpriteIdxs[1]].invisible = TRUE; - CreateTask(sub_8054734, 5); + CreateTask(Task_CloseCetnerWhiteColumn, 5); } break; case 39: - gSprites[sTradeData->unk_90].pos2.y -= 3; - gSprites[sTradeData->unk_91].pos2.y += 3; - if (gSprites[sTradeData->unk_90].pos2.y <= -222) + gSprites[sTradeData->tradeGlow1SpriteId].pos2.y -= 3; + gSprites[sTradeData->gbaScreenSpriteID].pos2.y += 3; + if (gSprites[sTradeData->tradeGlow1SpriteId].pos2.y <= -222) { BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 16, RGB_BLACK); sTradeData->state++; - DestroySprite(&gSprites[sTradeData->unk_90]); - DestroySprite(&gSprites[sTradeData->unk_91]); + DestroySprite(&gSprites[sTradeData->tradeGlow1SpriteId]); + DestroySprite(&gSprites[sTradeData->gbaScreenSpriteID]); } break; case 40: @@ -2015,10 +2030,10 @@ static bool8 sub_805232C(void) sTradeData->bg1vofs = 166; SetTradeSequenceBgGpuRegs(3); sTradeData->bg2vofs = 412; - sTradeData->unk_90 = CreateSprite(&gUnknown_826CE44, 120, -20, 3); - gSprites[sTradeData->unk_90].callback = SpriteCB_TradeGlowWireless; - sTradeData->unk_91 = CreateSprite(&sGlowBallSpriteTemplate, 120, -20, 0); - StartSpriteAnim(&gSprites[sTradeData->unk_91], 1); + sTradeData->tradeGlow1SpriteId = CreateSprite(&sTradeGlow1SpriteTemplate, 120, -20, 3); + gSprites[sTradeData->tradeGlow1SpriteId].callback = SpriteCB_TradeGlowWireless; + sTradeData->gbaScreenSpriteID = CreateSprite(&sGlowBallSpriteTemplate, 120, -20, 0); + StartSpriteAnim(&gSprites[sTradeData->gbaScreenSpriteID], 1); } break; case 41: @@ -2036,9 +2051,9 @@ static bool8 sub_805232C(void) } break; case 43: - gSprites[sTradeData->unk_90].pos2.y += 4; - gSprites[sTradeData->unk_91].pos2.y += 4; - if (gSprites[sTradeData->unk_90].pos2.y + gSprites[sTradeData->unk_90].pos1.y == 64) + gSprites[sTradeData->tradeGlow1SpriteId].pos2.y += 4; + gSprites[sTradeData->gbaScreenSpriteID].pos2.y += 4; + if (gSprites[sTradeData->tradeGlow1SpriteId].pos2.y + gSprites[sTradeData->tradeGlow1SpriteId].pos1.y == 64) { sTradeData->state = 144; sTradeData->timer = 0; @@ -2064,8 +2079,8 @@ static bool8 sub_805232C(void) } break; case 145: - DestroySprite(&gSprites[sTradeData->unk_90]); - DestroySprite(&gSprites[sTradeData->unk_91]); + DestroySprite(&gSprites[sTradeData->tradeGlow1SpriteId]); + DestroySprite(&gSprites[sTradeData->gbaScreenSpriteID]); sTradeData->state++; sTradeData->timer = 0; break; @@ -2090,29 +2105,29 @@ static bool8 sub_805232C(void) } break; case 48: - sTradeData->unk_91 = CreateSprite(&gUnknown_826CF30, 120, 80, 0); + sTradeData->gbaScreenSpriteID = CreateSprite(&sTradeGBAScreenSpriteTemplate1, 120, 80, 0); sTradeData->state = 50; break; case 50: - if (gSprites[sTradeData->unk_91].animEnded) + if (gSprites[sTradeData->gbaScreenSpriteID].animEnded) { - DestroySprite(&gSprites[sTradeData->unk_91]); + DestroySprite(&gSprites[sTradeData->gbaScreenSpriteID]); SetTradeSequenceBgGpuRegs(6); sTradeData->state++; PlaySE(SE_W028); } break; case 51: - if (sTradeData->unk_EA < 0x400) + if (sTradeData->bg2Zoom < 0x400) { - sTradeData->unk_EA += 0x34; + sTradeData->bg2Zoom += 0x34; } else { - sTradeData->unk_EA = 0x400; + sTradeData->bg2Zoom = 0x400; sTradeData->state++; } - sTradeData->sXY = 0x8000 / sTradeData->unk_EA; + sTradeData->sXY = 0x8000 / sTradeData->bg2Zoom; break; case 52: BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); @@ -2299,23 +2314,23 @@ static void sub_8053788(void) UpdatePaletteFade(); } -static void sub_805383C(void) +static void HandleLinkDataReceive(void) { u8 recvStatus; - sub_804FFC4(); + GetMultiplayerIdIfLinkTrade(); recvStatus = GetBlockReceivedStatus(); if (recvStatus & (1 << 0)) { if (gBlockRecvBuffer[0][0] == 0xDCBA) SetMainCallback2(sub_8053788); if (gBlockRecvBuffer[0][0] == 0xABCD) - sTradeData->unk_72 = 1; + sTradeData->tradeStatus1 = 1; ResetBlockReceivedFlag(0); } if (recvStatus & (1 << 1)) { if (gBlockRecvBuffer[1][0] == 0xABCD) - sTradeData->unk_73 = 1; + sTradeData->tradeStatus2 = 1; ResetBlockReceivedFlag(1); } } @@ -2343,7 +2358,7 @@ static void SpriteCB_TradePokeball_Default(struct Sprite * sprite) static void SpriteCB_TradePokeball_Outbound(struct Sprite * sprite) { - sprite->pos2.y += gTradeBallVerticalVelocityTable[sprite->data[0]]; + sprite->pos2.y += sTradeBallVerticalVelocityTable[sprite->data[0]]; if (sprite->data[0] == 22) PlaySE(SE_KON); sprite->data[0]++; @@ -2363,7 +2378,7 @@ static void SpriteCB_TradePokeball_Outbound2(struct Sprite * sprite) sprite->data[1]++; if (sprite->data[1] > 20) { - sprite->pos2.y -= gTradeBallVerticalVelocityTable[sprite->data[0]]; + sprite->pos2.y -= sTradeBallVerticalVelocityTable[sprite->data[0]]; sprite->data[0]++; if (sprite->data[0] == 23) { @@ -2393,7 +2408,7 @@ static void SpriteCB_TradePokeball_Inbound(struct Sprite * sprite) PlaySE(SE_KON3); if (sprite->data[0] == 107) PlaySE(SE_KON4); - sprite->pos2.y += gTradeBallVerticalVelocityTable[sprite->data[0]]; + sprite->pos2.y += sTradeBallVerticalVelocityTable[sprite->data[0]]; sprite->data[0]++; if (sprite->data[0] == 108) sprite->callback = SpriteCallbackDummy; @@ -2405,7 +2420,7 @@ u16 GetInGameTradeSpeciesInfo(void) // Populates gStringVar1 with the name of the requested species and // gStringVar2 with the name of the offered species. // Returns the requested species. - const struct InGameTrade * inGameTrade = &gInGameTrades[gSpecialVar_0x8004]; + const struct InGameTrade * inGameTrade = &sInGameTrades[gSpecialVar_0x8004]; StringCopy(gStringVar1, gSpeciesNames[inGameTrade->requestedSpecies]); StringCopy(gStringVar2, gSpeciesNames[inGameTrade->species]); return inGameTrade->requestedSpecies; @@ -2416,7 +2431,7 @@ static void BufferInGameTradeMonName(void) // Populates gStringVar1 with the nickname of the sent Pokemon and // gStringVar2 with the name of the offered species. u8 nickname[30]; - const struct InGameTrade * inGameTrade = &gInGameTrades[gSpecialVar_0x8004]; + const struct InGameTrade * inGameTrade = &sInGameTrades[gSpecialVar_0x8004]; GetMonData(&gPlayerParty[gSpecialVar_0x8005], MON_DATA_NICKNAME, nickname); StringCopy10(gStringVar1, nickname); StringCopy(gStringVar2, gSpeciesNames[inGameTrade->species]); @@ -2424,7 +2439,7 @@ static void BufferInGameTradeMonName(void) static void CreateInGameTradePokemonInternal(u8 playerSlot, u8 inGameTradeIdx) { - const struct InGameTrade *inGameTrade = &gInGameTrades[inGameTradeIdx]; + const struct InGameTrade * inGameTrade = &sInGameTrades[inGameTradeIdx]; u8 level = GetMonData(&gPlayerParty[playerSlot], MON_DATA_LEVEL); struct MailStruct mail; u8 metLocation = MAPSEC_IN_GAME_TRADE; @@ -2495,17 +2510,17 @@ void CreateInGameTradePokemon(void) static void CB2_RunTradeAnim_LinkTrade(void) { - if (sub_8050F14() == TRUE) + if (DoTradeAnim() == TRUE) { DestroySprite(&gSprites[sTradeData->pokePicSpriteIdxs[0]]); FreeSpriteOamMatrix(&gSprites[sTradeData->pokePicSpriteIdxs[1]]); TradeMons(gSelectedTradeMonPositions[0], gSelectedTradeMonPositions[1] % 6); sTradeData->linkData[0] = 0xABCD; - sTradeData->unk_93 = 1; - SetMainCallback2(sub_8053E1C); + sTradeData->scheduleLinkTransfer = 1; + SetMainCallback2(CB2_WaitAndAckTradeComplete); } - sub_80508F4(); - sub_805383C(); + HandleLinkDataSend(); + HandleLinkDataReceive(); RunTasks(); RunTextPrinters(); AnimateSprites(); @@ -2513,16 +2528,16 @@ static void CB2_RunTradeAnim_LinkTrade(void) UpdatePaletteFade(); } -static void sub_8053E1C(void) +static void CB2_WaitAndAckTradeComplete(void) { - u8 mpId = sub_804FFC4(); - sub_805383C(); - if (mpId == 0 && sTradeData->unk_72 == 1 && sTradeData->unk_73 == 1) + u8 mpId = GetMultiplayerIdIfLinkTrade(); + HandleLinkDataReceive(); + if (mpId == 0 && sTradeData->tradeStatus1 == 1 && sTradeData->tradeStatus2 == 1) { sTradeData->linkData[0] = 0xDCBA; SendBlock(bitmask_all_link_players_but_self(), sTradeData->linkData, 20); - sTradeData->unk_72 = 2; - sTradeData->unk_73 = 2; + sTradeData->tradeStatus1 = 2; + sTradeData->tradeStatus2 = 2; } RunTasks(); AnimateSprites(); @@ -2664,7 +2679,7 @@ static void sub_8053E8C(void) case 8: if (IsBGMStopped() == TRUE) { - if (gWirelessCommType && gMain.savedCallback == sub_804C718) + if (gWirelessCommType && gMain.savedCallback == CB2_ReturnFromLinkTrade) { sub_800AB9C(); } @@ -2676,18 +2691,18 @@ static void sub_8053E8C(void) } break; case 9: - if (gWirelessCommType && gMain.savedCallback == sub_804C718) + if (gWirelessCommType && gMain.savedCallback == CB2_ReturnFromLinkTrade) { if (IsLinkRfuTaskFinished()) { gSoftResetDisabled = FALSE; - SetMainCallback2(sub_80543C4); + SetMainCallback2(LinkTrade_TearDownAssets); } } else if (!gReceivedRemoteLinkPlayers) { gSoftResetDisabled = FALSE; - SetMainCallback2(sub_80543C4); + SetMainCallback2(LinkTrade_TearDownAssets); } break; } @@ -2700,7 +2715,7 @@ static void sub_8053E8C(void) UpdatePaletteFade(); } -static void sub_80543C4(void) +static void LinkTrade_TearDownAssets(void) { if (!gPaletteFade.active) { @@ -2723,12 +2738,12 @@ static void sub_80543C4(void) void DoInGameTradeScene(void) { ScriptContext2_Enable(); - CreateTask(sub_8054470, 10); + CreateTask(Task_WaitFadeAndStartInGameTradeAnim, 10); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); HelpSystem_Disable(); } -static void sub_8054470(u8 taskId) +static void Task_WaitFadeAndStartInGameTradeAnim(u8 taskId) { if (!gPaletteFade.active) { @@ -2750,7 +2765,7 @@ static void CheckPartnersMonForRibbons(void) FlagSet(FLAG_SYS_RIBBON_GET); } -void sub_80544FC(void) +void LoadTradeAnimGfx(void) { TradeAnimInit_LoadGfx(); } @@ -2768,35 +2783,35 @@ void DrawTextOnTradeWindow(u8 windowId, const u8 *str, s8 speed) static void Task_AnimateWirelessSignal(u8 taskId) { s16 *data = gTasks[taskId].data; - u16 r2 = 16 * gUnknown_826D250[data[0]][0]; + u16 r2 = 16 * sWirelessSignalAnimParams[data[0]][0]; if (data[2] == 0) { if (r2 == 0x100) - LoadPalette(gUnknown_826BF5C, 0x30, 0x20); + LoadPalette(sWirelessSignalAnimPals_Off, 0x30, 0x20); else - LoadPalette(&gUnknown_826BB5C[r2], 0x30, 0x20); + LoadPalette(&sWirelessSignalAnimPals_Outbound[r2], 0x30, 0x20); } else { if (r2 == 0x100) - LoadPalette(gUnknown_826BF5C, 0x30, 0x20); + LoadPalette(sWirelessSignalAnimPals_Off, 0x30, 0x20); else - LoadPalette(&gUnknown_826BD5C[r2], 0x30, 0x20); + LoadPalette(&sWirelessSignalAnimPals_Inbound[r2], 0x30, 0x20); } - if (gUnknown_826D250[data[0]][0] == 0 && data[1] == 0) + if (sWirelessSignalAnimParams[data[0]][0] == 0 && data[1] == 0) PlaySE(SE_W215); - if (data[1] == gUnknown_826D250[data[0]][1]) + if (data[1] == sWirelessSignalAnimParams[data[0]][1]) { data[0]++; data[1] = 0; - if (gUnknown_826D250[data[0]][1] == 0xFF) + if (sWirelessSignalAnimParams[data[0]][1] == 0xFF) DestroyTask(taskId); } else data[1]++; } -static void c3_0805465C(u8 taskId) +static void Task_OpenCetnerWhiteColumn(u8 taskId) { s16 *data = gTasks[taskId].data; @@ -2825,7 +2840,7 @@ static void c3_0805465C(u8 taskId) } } -static void sub_8054734(u8 taskId) +static void Task_CloseCetnerWhiteColumn(u8 taskId) { s16 *data = gTasks[taskId].data; |