summaryrefslogtreecommitdiff
path: root/src/trade_scene.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/trade_scene.c')
-rw-r--r--src/trade_scene.c595
1 files changed, 305 insertions, 290 deletions
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;