summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2019-10-29 17:05:56 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2019-10-29 17:05:56 -0400
commit316337b031d35d89db0f2ad939972588cae291bd (patch)
tree1b18b2cd3eae186f96e9a3b018da776486a68fbe
parentce5c3fdd776a47d5d6c3790249c53afaff844553 (diff)
trade partway through sub_8050968
-rw-r--r--asm/link_rfu_3.s8
-rw-r--r--asm/party_menu.s2
-rw-r--r--asm/trade.s1325
-rw-r--r--data/data_83FECCC.s10
-rw-r--r--data/strings.s21
-rw-r--r--data/trade.s32
-rw-r--r--src/trade.c1257
7 files changed, 1083 insertions, 1572 deletions
diff --git a/asm/link_rfu_3.s b/asm/link_rfu_3.s
index 9fc1f72cc..eac4dcb4d 100644
--- a/asm/link_rfu_3.s
+++ b/asm/link_rfu_3.s
@@ -3070,7 +3070,7 @@ _08117210:
lsrs r0, 24
cmp r0, 0x3
bne _0811725C
- ldr r4, _08117268 @ =gUnknown_2031CCC
+ ldr r4, _08117268 @ =gLinkPartnerMail
bl GetMultiplayerId
adds r1, r0, 0
movs r0, 0x1
@@ -3090,7 +3090,7 @@ _08117210:
ldr r1, _08117274 @ =gMain
ldr r0, _08117278 @ =CB2_ReturnToField
str r0, [r1, 0x8]
- ldr r0, _0811727C @ =sub_8050138
+ ldr r0, _0811727C @ =CB2_InitTradeAnim_LinkTrade
bl SetMainCallback2
mov r0, r8
bl sub_811B148
@@ -3103,12 +3103,12 @@ _0811725C:
pop {r0}
bx r0
.align 2, 0
-_08117268: .4byte gUnknown_2031CCC
+_08117268: .4byte gLinkPartnerMail
_0811726C: .4byte gBlockRecvBuffer
_08117270: .4byte gUnknown_2031DA4
_08117274: .4byte gMain
_08117278: .4byte CB2_ReturnToField
-_0811727C: .4byte sub_8050138
+_0811727C: .4byte CB2_InitTradeAnim_LinkTrade
thumb_func_end sub_8117130
thumb_func_start sub_8117280
diff --git a/asm/party_menu.s b/asm/party_menu.s
index b10cfa8f5..91e19ebf2 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -11407,7 +11407,7 @@ sub_8124384: @ 8124384
adds r1, r6, 0
adds r2, r5, 0
adds r3, r4, 0
- bl sub_804FCE0
+ bl Trade_CanTradeSelectedMon
cmp r0, 0x1
beq _08124418
cmp r0, 0x2
diff --git a/asm/trade.s b/asm/trade.s
index bcb88fdb7..f13118ef6 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -5,937 +5,6 @@
.text
- thumb_func_start sub_8050138
-sub_8050138: @ 8050138
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r1, _08050158 @ =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0xC
- bls _0805014E
- b _08050472
-_0805014E:
- lsls r0, 2
- ldr r1, _0805015C @ =_08050160
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08050158: .4byte gMain
-_0805015C: .4byte _08050160
- .align 2, 0
-_08050160:
- .4byte _08050194
- .4byte _08050240
- .4byte _08050288
- .4byte _080502A8
- .4byte _080502F2
- .4byte _08050320
- .4byte _08050344
- .4byte _0805035C
- .4byte _08050366
- .4byte _08050380
- .4byte _0805039C
- .4byte _08050430
- .4byte _0805044C
-_08050194:
- ldr r0, _08050228 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _080501A8
- ldr r1, _0805022C @ =gLinkType
- ldr r2, _08050230 @ =0x00001144
- adds r0, r2, 0
- strh r0, [r1]
- bl CloseLink
-_080501A8:
- ldr r4, _08050234 @ =gUnknown_2031DAC
- movs r0, 0x88
- lsls r0, 1
- bl AllocZeroed
- str r0, [r4]
- bl AllocateMonSpritesGfx
- bl ResetTasks
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r0, _08050238 @ =sub_804FF0C
- bl SetVBlankCallback
- bl sub_80504CC
- bl sub_804FF24
- ldr r1, _0805023C @ =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- movs r2, 0
- strb r0, [r1]
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0x8C
- strh r2, [r0]
- adds r0, 0x8
- strh r2, [r0]
- adds r1, 0xEE
- movs r0, 0x1
- strb r0, [r1]
- ldr r3, [r4]
- adds r0, r3, 0
- adds r0, 0xD4
- movs r1, 0x40
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r1, r3, 0
- adds r1, 0xDC
- movs r0, 0x78
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x50
- strh r0, [r1]
- adds r1, 0xA
- adds r0, 0xB0
- strh r0, [r1]
- adds r0, r3, 0
- adds r0, 0xEC
- strh r2, [r0]
- b _08050472
- .align 2, 0
-_08050228: .4byte gReceivedRemoteLinkPlayers
-_0805022C: .4byte gLinkType
-_08050230: .4byte 0x00001144
-_08050234: .4byte gUnknown_2031DAC
-_08050238: .4byte sub_804FF0C
-_0805023C: .4byte gMain
-_08050240:
- ldr r0, _08050270 @ =gReceivedRemoteLinkPlayers
- ldrb r5, [r0]
- cmp r5, 0
- bne _0805027C
- ldr r4, _08050274 @ =gUnknown_2031DAC
- ldr r0, [r4]
- movs r1, 0x84
- lsls r1, 1
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- bl OpenLink
- ldr r1, _08050278 @ =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r4]
- str r5, [r0, 0x64]
- b _08050472
- .align 2, 0
-_08050270: .4byte gReceivedRemoteLinkPlayers
-_08050274: .4byte gUnknown_2031DAC
-_08050278: .4byte gMain
-_0805027C:
- movs r0, 0x87
- lsls r0, 3
- adds r1, r2, r0
- movs r0, 0x4
- strb r0, [r1]
- b _08050472
-_08050288:
- ldr r0, _080502A4 @ =gUnknown_2031DAC
- ldr r1, [r0]
- ldr r0, [r1, 0x64]
- adds r0, 0x1
- str r0, [r1, 0x64]
- cmp r0, 0x3C
- bhi _08050298
- b _08050472
-_08050298:
- movs r0, 0
- str r0, [r1, 0x64]
- movs r0, 0x87
- lsls r0, 3
- adds r1, r2, r0
- b _08050440
- .align 2, 0
-_080502A4: .4byte gUnknown_2031DAC
-_080502A8:
- bl IsLinkMaster
- lsls r0, 24
- cmp r0, 0
- bne _080502B4
- b _08050438
-_080502B4:
- bl GetLinkPlayerCount_2
- adds r4, r0, 0
- bl GetSavedPlayerCount
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bcc _080502EC
- ldr r0, _080502E4 @ =gUnknown_2031DAC
- ldr r1, [r0]
- ldr r0, [r1, 0x64]
- adds r0, 0x1
- str r0, [r1, 0x64]
- cmp r0, 0x1E
- bhi _080502D6
- b _08050472
-_080502D6:
- bl CheckShouldAdvanceLinkState
- ldr r1, _080502E8 @ =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r1, r2
- b _08050440
- .align 2, 0
-_080502E4: .4byte gUnknown_2031DAC
-_080502E8: .4byte gMain
-_080502EC:
- bl sub_804FF4C
- b _08050472
-_080502F2:
- bl sub_804FF4C
- ldr r0, _08050318 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08050300
- b _08050472
-_08050300:
- bl IsLinkPlayerDataExchangeComplete
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0805030E
- b _08050472
-_0805030E:
- ldr r1, _0805031C @ =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r1, r2
- b _08050440
- .align 2, 0
-_08050318: .4byte gReceivedRemoteLinkPlayers
-_0805031C: .4byte gMain
-_08050320:
- ldr r2, _08050340 @ =gUnknown_2031DAC
- ldr r0, [r2]
- adds r0, 0x72
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- adds r0, 0x73
- strb r1, [r0]
- ldr r0, [r2]
- adds r0, 0x93
- strb r1, [r0]
- movs r0, 0
- bl sub_804FFE4
- b _08050438
- .align 2, 0
-_08050340: .4byte gUnknown_2031DAC
-_08050344:
- movs r0, 0
- movs r1, 0x1
- bl sub_804FFE4
- ldr r1, _08050358 @ =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r1, r2
- b _08050440
- .align 2, 0
-_08050358: .4byte gMain
-_0805035C:
- movs r0, 0x1
- movs r1, 0
- bl sub_804FFE4
- b _08050438
-_08050366:
- movs r0, 0x1
- movs r1, 0x1
- bl sub_804FFE4
- bl sub_80504B0
- ldr r1, _0805037C @ =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r1, r2
- b _08050440
- .align 2, 0
-_0805037C: .4byte gMain
-_08050380:
- bl sub_8050DE0
- ldr r0, _08050394 @ =gUnknown_826CDD4
- bl LoadSpriteSheet
- ldr r0, _08050398 @ =gUnknown_826CDDC
- bl LoadSpritePalette
- b _08050438
- .align 2, 0
-_08050394: .4byte gUnknown_826CDD4
-_08050398: .4byte gUnknown_826CDDC
-_0805039C:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r0, 0
- bl ShowBg
- ldr r4, _08050418 @ =gUnknown_2031DA4
- ldrb r0, [r4]
- movs r6, 0x64
- muls r0, r6
- ldr r1, _0805041C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x41
- bl GetMonData
- ldr r5, _08050420 @ =gUnknown_2031DAC
- ldr r1, [r5]
- adds r1, 0xF8
- strh r0, [r1]
- ldrb r0, [r4, 0x1]
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- muls r0, r6
- ldr r1, _08050424 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x41
- bl GetMonData
- ldr r4, [r5]
- adds r1, r4, 0
- adds r1, 0xFA
- strh r0, [r1]
- adds r4, 0xFC
- bl GetMultiplayerId
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- ldr r0, _08050428 @ =gLinkPlayers + 8
- adds r1, r0
- adds r0, r4, 0
- movs r2, 0x7
- bl memcpy
- ldr r1, _0805042C @ =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r1, r2
- b _08050440
- .align 2, 0
-_08050418: .4byte gUnknown_2031DA4
-_0805041C: .4byte gPlayerParty
-_08050420: .4byte gUnknown_2031DAC
-_08050424: .4byte gEnemyParty
-_08050428: .4byte gLinkPlayers + 8
-_0805042C: .4byte gMain
-_08050430:
- bl sub_805049C
- bl sub_8050E24
-_08050438:
- ldr r1, _08050448 @ =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
-_08050440:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08050472
- .align 2, 0
-_08050448: .4byte gMain
-_0805044C:
- ldr r0, _08050490 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08050472
- ldr r0, _08050494 @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- beq _0805046C
- bl LoadWirelessStatusIndicatorSpriteGfx
- movs r0, 0
- movs r1, 0
- bl CreateWirelessStatusIndicatorSprite
-_0805046C:
- ldr r0, _08050498 @ =sub_8053D84
- bl SetMainCallback2
-_08050472:
- bl RunTasks
- bl RunTextPrinters
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08050490: .4byte gPaletteFade
-_08050494: .4byte gWirelessCommType
-_08050498: .4byte sub_8053D84
- thumb_func_end sub_8050138
-
- thumb_func_start sub_805049C
-sub_805049C: @ 805049C
- push {lr}
- movs r0, 0x5
- bl sub_8050968
- movs r0, 0
- bl sub_8050968
- pop {r0}
- bx r0
- thumb_func_end sub_805049C
-
- thumb_func_start sub_80504B0
-sub_80504B0: @ 80504B0
- push {lr}
- movs r0, 0
- movs r1, 0xFF
- bl FillWindowPixelBuffer
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- pop {r0}
- bx r0
- thumb_func_end sub_80504B0
-
- thumb_func_start sub_80504CC
-sub_80504CC: @ 80504CC
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x4
- movs r0, 0
- movs r1, 0
- bl SetGpuReg
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, _080505B4 @ =gUnknown_826D1D4
- movs r0, 0
- movs r2, 0x4
- bl InitBgsFromTemplates
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r5, 0x80
- lsls r5, 4
- adds r0, r5, 0
- bl Alloc
- adds r1, r0, 0
- movs r0, 0
- bl SetBgTilemapBuffer
- adds r0, r5, 0
- bl Alloc
- adds r1, r0, 0
- movs r0, 0x1
- bl SetBgTilemapBuffer
- adds r0, r5, 0
- bl Alloc
- adds r1, r0, 0
- movs r0, 0x3
- bl SetBgTilemapBuffer
- bl DeactivateAllTextPrinters
- ldr r0, _080505B8 @ =gBattleTextboxTiles
- mov r10, r0
- movs r0, 0
- mov r9, r0
- str r0, [sp]
- mov r1, r10
- movs r2, 0
- movs r3, 0
- bl DecompressAndLoadBgGfxUsingHeap
- ldr r0, _080505BC @ =gFile_graphics_interface_menu_map_tilemap
- mov r8, r0
- ldr r4, _080505C0 @ =gDecompressionBuffer
- adds r1, r4, 0
- bl LZDecompressWram
- movs r0, 0
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0
- bl CopyToBgTilemapBuffer
- ldr r6, _080505C4 @ =gBattleTextboxPalette
- adds r0, r6, 0
- movs r1, 0
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r0, _080505C8 @ =gUnknown_826D1BC
- bl InitWindows
- mov r0, r9
- str r0, [sp]
- movs r0, 0
- mov r1, r10
- movs r2, 0
- movs r3, 0
- bl DecompressAndLoadBgGfxUsingHeap
- mov r0, r8
- adds r1, r4, 0
- bl LZDecompressWram
- movs r0, 0
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0
- bl CopyToBgTilemapBuffer
- adds r0, r6, 0
- movs r1, 0
- movs r2, 0x20
- bl LoadCompressedPalette
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080505B4: .4byte gUnknown_826D1D4
-_080505B8: .4byte gBattleTextboxTiles
-_080505BC: .4byte gFile_graphics_interface_menu_map_tilemap
-_080505C0: .4byte gDecompressionBuffer
-_080505C4: .4byte gBattleTextboxPalette
-_080505C8: .4byte gUnknown_826D1BC
- thumb_func_end sub_80504CC
-
- thumb_func_start sub_80505CC
-sub_80505CC: @ 80505CC
- push {r4,r5,lr}
- sub sp, 0xC
- ldr r0, _080505EC @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0xC
- bls _080505E0
- b _0805077E
-_080505E0:
- lsls r0, 2
- ldr r1, _080505F0 @ =_080505F4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080505EC: .4byte gMain
-_080505F0: .4byte _080505F4
- .align 2, 0
-_080505F4:
- .4byte _08050628
- .4byte _0805077E
- .4byte _0805077E
- .4byte _0805077E
- .4byte _0805077E
- .4byte _080506EC
- .4byte _080506F6
- .4byte _08050700
- .4byte _08050710
- .4byte _08050730
- .4byte _0805074C
- .4byte _08050754
- .4byte _08050778
-_08050628:
- ldr r1, _080506CC @ =gUnknown_2031DA4
- ldr r0, _080506D0 @ =gSpecialVar_0x8005
- ldrh r0, [r0]
- movs r5, 0
- strb r0, [r1]
- movs r0, 0x6
- strb r0, [r1, 0x1]
- ldr r4, _080506D4 @ =gLinkPlayers + 8
- ldr r0, _080506D8 @ =gSaveBlock2Ptr
- ldr r1, [r0]
- adds r0, r4, 0
- bl StringCopy
- ldr r0, _080506DC @ =gEnemyParty
- movs r1, 0x7
- mov r2, sp
- bl GetMonData
- adds r4, 0x1C
- adds r0, r4, 0
- mov r1, sp
- bl StringCopy
- ldr r4, _080506E0 @ =gUnknown_2031DAC
- movs r0, 0x88
- lsls r0, 1
- bl AllocZeroed
- str r0, [r4]
- bl AllocateMonSpritesGfx
- bl ResetTasks
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r0, _080506E4 @ =sub_804FF0C
- bl SetVBlankCallback
- bl sub_80504CC
- ldr r0, [r4]
- adds r0, 0xEE
- strb r5, [r0]
- ldr r2, [r4]
- adds r0, r2, 0
- adds r0, 0x8C
- strh r5, [r0]
- adds r0, 0x8
- strh r5, [r0]
- adds r0, 0x40
- movs r1, 0x40
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- adds r1, r2, 0
- adds r1, 0xDC
- movs r0, 0x78
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x50
- strh r0, [r1]
- adds r1, 0xA
- adds r0, 0xB0
- strh r0, [r1]
- adds r0, r2, 0
- adds r0, 0xEC
- strh r5, [r0]
- str r5, [r2, 0x64]
- ldr r0, _080506E8 @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- movs r1, 0x5
- strb r1, [r0]
- b _0805077E
- .align 2, 0
-_080506CC: .4byte gUnknown_2031DA4
-_080506D0: .4byte gSpecialVar_0x8005
-_080506D4: .4byte gLinkPlayers + 8
-_080506D8: .4byte gSaveBlock2Ptr
-_080506DC: .4byte gEnemyParty
-_080506E0: .4byte gUnknown_2031DAC
-_080506E4: .4byte sub_804FF0C
-_080506E8: .4byte gMain
-_080506EC:
- movs r0, 0
- movs r1, 0
- bl sub_804FFE4
- b _08050764
-_080506F6:
- movs r0, 0
- movs r1, 0x1
- bl sub_804FFE4
- b _08050764
-_08050700:
- movs r0, 0x1
- movs r1, 0
- bl sub_804FFE4
- movs r0, 0
- bl ShowBg
- b _08050764
-_08050710:
- movs r0, 0x1
- movs r1, 0x1
- bl sub_804FFE4
- movs r0, 0
- movs r1, 0xFF
- bl FillWindowPixelBuffer
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- b _08050764
-_08050730:
- bl sub_8050DE0
- ldr r0, _08050744 @ =gUnknown_826CDD4
- bl LoadSpriteSheet
- ldr r0, _08050748 @ =gUnknown_826CDDC
- bl LoadSpritePalette
- b _08050764
- .align 2, 0
-_08050744: .4byte gUnknown_826CDD4
-_08050748: .4byte gUnknown_826CDDC
-_0805074C:
- movs r0, 0
- bl ShowBg
- b _08050764
-_08050754:
- movs r0, 0x5
- bl sub_8050968
- movs r0, 0
- bl sub_8050968
- bl sub_8050E24
-_08050764:
- ldr r1, _08050774 @ =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0805077E
- .align 2, 0
-_08050774: .4byte gMain
-_08050778:
- ldr r0, _0805079C @ =sub_8050948
- bl SetMainCallback2
-_0805077E:
- bl RunTasks
- bl RunTextPrinters
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0805079C: .4byte sub_8050948
- thumb_func_end sub_80505CC
-
- thumb_func_start sub_80507A0
-sub_80507A0: @ 80507A0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r1, r0
- ldr r0, _080507FC @ =gPlayerParty
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _080507F4
- adds r0, r5, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- adds r0, r4, 0
- bl SpeciesToNationalPokedexNum
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- movs r1, 0x2
- bl GetSetPokedexFlag
- adds r0, r4, 0
- movs r1, 0x3
- adds r2, r5, 0
- bl HandleSetPokedexFlag
-_080507F4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080507FC: .4byte gPlayerParty
- thumb_func_end sub_80507A0
-
- thumb_func_start sub_8050800
-sub_8050800: @ 8050800
- push {lr}
- bl GetMultiplayerId
- pop {r0}
- bx r0
- thumb_func_end sub_8050800
-
- thumb_func_start sub_805080C
-sub_805080C: @ 805080C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r4, 24
- lsrs r4, 24
- movs r5, 0x64
- mov r1, r9
- muls r1, r5
- ldr r0, _080508D8 @ =gPlayerParty
- adds r7, r1, r0
- adds r0, r7, 0
- movs r1, 0x40
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r1, r4, 0
- muls r1, r5
- ldr r0, _080508DC @ =gEnemyParty
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0x40
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r6, 0xFF
- beq _08050866
- ldr r0, _080508E0 @ =gSaveBlock1Ptr
- lsls r1, r6, 3
- adds r1, r6
- lsls r1, 2
- ldr r2, _080508E4 @ =0x00002cd0
- adds r1, r2
- ldr r0, [r0]
- adds r0, r1
- bl ClearMailStruct
-_08050866:
- ldr r4, _080508E8 @ =gUnknown_2031DAC
- ldr r0, [r4]
- adds r1, r7, 0
- movs r2, 0x64
- bl memcpy
- adds r0, r7, 0
- adds r1, r5, 0
- movs r2, 0x64
- bl memcpy
- ldr r1, [r4]
- adds r0, r5, 0
- movs r2, 0x64
- bl memcpy
- movs r1, 0x46
- mov r0, sp
- strb r1, [r0]
- adds r0, r7, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _080508A2
- adds r0, r7, 0
- movs r1, 0x20
- mov r2, sp
- bl SetMonData
-_080508A2:
- mov r0, r8
- cmp r0, 0xFF
- beq _080508B8
- lsls r1, r0, 3
- add r1, r8
- lsls r1, 2
- ldr r0, _080508EC @ =gUnknown_2031CCC
- adds r1, r0
- adds r0, r7, 0
- bl GiveMailToMon2
-_080508B8:
- mov r0, r9
- bl sub_80507A0
- ldr r0, _080508F0 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- beq _080508CA
- bl sub_8050800
-_080508CA:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080508D8: .4byte gPlayerParty
-_080508DC: .4byte gEnemyParty
-_080508E0: .4byte gSaveBlock1Ptr
-_080508E4: .4byte 0x00002cd0
-_080508E8: .4byte gUnknown_2031DAC
-_080508EC: .4byte gUnknown_2031CCC
-_080508F0: .4byte gReceivedRemoteLinkPlayers
- thumb_func_end sub_805080C
-
- thumb_func_start sub_80508F4
-sub_80508F4: @ 80508F4
- push {r4,lr}
- ldr r4, _08050908 @ =gUnknown_2031DAC
- ldr r0, [r4]
- adds r0, 0x93
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0805090C
- cmp r0, 0x2
- beq _08050932
- b _0805093C
- .align 2, 0
-_08050908: .4byte gUnknown_2031DAC
-_0805090C:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- beq _08050932
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- adds r1, 0x74
- movs r2, 0x14
- bl SendBlock
- ldr r1, [r4]
- adds r1, 0x93
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08050932:
- ldr r0, _08050944 @ =gUnknown_2031DAC
- ldr r0, [r0]
- adds r0, 0x93
- movs r1, 0
- strb r1, [r0]
-_0805093C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08050944: .4byte gUnknown_2031DAC
- thumb_func_end sub_80508F4
-
- thumb_func_start sub_8050948
-sub_8050948: @ 8050948
- push {lr}
- bl sub_8050F14
- bl RunTasks
- bl RunTextPrinters
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_8050948
-
thumb_func_start sub_8050968
sub_8050968: @ 8050968
push {r4-r7,lr}
@@ -963,7 +32,7 @@ _08050984:
.4byte _08050C6C
.4byte _08050D48
_080509A4:
- ldr r0, _080509FC @ =gUnknown_2031DAC
+ ldr r0, _080509FC @ =sTradeAnimationResourcesPtr
ldr r1, [r0]
adds r2, r1, 0
adds r2, 0xE4
@@ -1005,7 +74,7 @@ _080509E6:
bhi _080509E6
b _08050D98
.align 2, 0
-_080509FC: .4byte gUnknown_2031DAC
+_080509FC: .4byte sTradeAnimationResourcesPtr
_08050A00: .4byte 0x00005206
_08050A04: .4byte gTradeGba2_Pal
_08050A08: .4byte gTradeGba_Gfx
@@ -1013,7 +82,7 @@ _08050A0C: .4byte 0x06004000
_08050A10: .4byte 0x040000d4
_08050A14: .4byte 0x80000800
_08050A18:
- ldr r4, _08050A54 @ =gUnknown_2031DAC
+ ldr r4, _08050A54 @ =sTradeAnimationResourcesPtr
ldr r2, [r4]
adds r1, r2, 0
adds r1, 0xE2
@@ -1041,7 +110,7 @@ _08050A18:
ldr r1, _08050A60 @ =gUnknown_826AA5C
b _08050A66
.align 2, 0
-_08050A54: .4byte gUnknown_2031DAC
+_08050A54: .4byte sTradeAnimationResourcesPtr
_08050A58: .4byte 0x00008502
_08050A5C: .4byte 0x00009206
_08050A60: .4byte gUnknown_826AA5C
@@ -1092,7 +161,7 @@ _08050AB8: .4byte 0x040000d4
_08050ABC: .4byte 0x80000800
_08050AC0: .4byte gTradeGba_Gfx
_08050AC4:
- ldr r0, _08050AF4 @ =gUnknown_2031DAC
+ ldr r0, _08050AF4 @ =sTradeAnimationResourcesPtr
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0xE0
@@ -1115,7 +184,7 @@ _08050AC4:
movs r0, 0x8
b _08050B1E
.align 2, 0
-_08050AF4: .4byte gUnknown_2031DAC
+_08050AF4: .4byte sTradeAnimationResourcesPtr
_08050AF8: .4byte 0x00001241
_08050AFC: .4byte gUnknown_3379A0Bin
_08050B00: .4byte 0x06002800
@@ -1154,7 +223,7 @@ _08050B3C:
ldr r0, _08050B78 @ =gUnknown_826C60C
ldr r1, _08050B7C @ =0x06009000
bl LZ77UnCompVram
- ldr r0, _08050B80 @ =gUnknown_2031DAC
+ ldr r0, _08050B80 @ =sTradeAnimationResourcesPtr
ldr r0, [r0]
adds r0, 0xE4
movs r1, 0x50
@@ -1171,7 +240,7 @@ _08050B70: .4byte gWirelessSignal4bpp
_08050B74: .4byte 0x06004000
_08050B78: .4byte gUnknown_826C60C
_08050B7C: .4byte 0x06009000
-_08050B80: .4byte gUnknown_2031DAC
+_08050B80: .4byte sTradeAnimationResourcesPtr
_08050B84:
ldr r1, _08050C0C @ =0x00001441
movs r0, 0
@@ -1179,7 +248,7 @@ _08050B84:
ldr r1, _08050C10 @ =0x00001287
movs r0, 0xC
bl SetGpuReg
- ldr r0, _08050C14 @ =gUnknown_2031DAC
+ ldr r0, _08050C14 @ =sTradeAnimationResourcesPtr
ldr r3, [r0]
adds r1, r3, 0
adds r1, 0xD4
@@ -1225,7 +294,7 @@ _08050BD0:
orrs r0, r7
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
- ldr r0, _08050C14 @ =gUnknown_2031DAC
+ ldr r0, _08050C14 @ =sTradeAnimationResourcesPtr
ldr r0, [r0]
movs r1, 0x84
lsls r1, 1
@@ -1243,7 +312,7 @@ _08050BD0:
.align 2, 0
_08050C0C: .4byte 0x00001441
_08050C10: .4byte 0x00001287
-_08050C14: .4byte gUnknown_2031DAC
+_08050C14: .4byte sTradeAnimationResourcesPtr
_08050C18: .4byte gUnknown_826701C
_08050C1C: .4byte 0x06004000
_08050C20: .4byte 0x040000d4
@@ -1265,7 +334,7 @@ _08050C48: .4byte 0x06009000
_08050C4C: .4byte 0x040000d4
_08050C50: .4byte 0x80000080
_08050C54:
- ldr r0, _08050C68 @ =gUnknown_2031DAC
+ ldr r0, _08050C68 @ =sTradeAnimationResourcesPtr
ldr r0, [r0]
adds r1, r0, 0
adds r1, 0xE0
@@ -1275,7 +344,7 @@ _08050C54:
strh r2, [r0]
b _08050DB4
.align 2, 0
-_08050C68: .4byte gUnknown_2031DAC
+_08050C68: .4byte sTradeAnimationResourcesPtr
_08050C6C:
ldr r1, _08050D00 @ =0x00001441
movs r0, 0
@@ -1283,7 +352,7 @@ _08050C6C:
ldr r1, _08050D04 @ =0x00001287
movs r0, 0xC
bl SetGpuReg
- ldr r0, _08050D08 @ =gUnknown_2031DAC
+ ldr r0, _08050D08 @ =sTradeAnimationResourcesPtr
ldr r3, [r0]
adds r1, r3, 0
adds r1, 0xD4
@@ -1334,7 +403,7 @@ _08050CC2:
orrs r0, r7
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
- ldr r0, _08050D08 @ =gUnknown_2031DAC
+ ldr r0, _08050D08 @ =sTradeAnimationResourcesPtr
ldr r0, [r0]
movs r1, 0x84
lsls r1, 1
@@ -1352,7 +421,7 @@ _08050CC2:
.align 2, 0
_08050D00: .4byte 0x00001441
_08050D04: .4byte 0x00001287
-_08050D08: .4byte gUnknown_2031DAC
+_08050D08: .4byte sTradeAnimationResourcesPtr
_08050D0C: .4byte gUnknown_826701C
_08050D10: .4byte 0x06004000
_08050D14: .4byte 0x040000d4
@@ -1374,7 +443,7 @@ _08050D3C: .4byte 0x06009000
_08050D40: .4byte 0x040000d4
_08050D44: .4byte 0x80000080
_08050D48:
- ldr r0, _08050DBC @ =gUnknown_2031DAC
+ ldr r0, _08050DBC @ =sTradeAnimationResourcesPtr
ldr r0, [r0]
adds r1, r0, 0
adds r1, 0xE4
@@ -1433,7 +502,7 @@ _08050DB4:
pop {r0}
bx r0
.align 2, 0
-_08050DBC: .4byte gUnknown_2031DAC
+_08050DBC: .4byte sTradeAnimationResourcesPtr
_08050DC0: .4byte 0x00005206
_08050DC4: .4byte gTradeGba2_Pal
_08050DC8: .4byte gTradeGba_Gfx
@@ -1474,7 +543,7 @@ _08050E20: .4byte gUnknown_826CE3C
sub_8050E24: @ 8050E24
push {r4,r5,lr}
sub sp, 0x14
- ldr r0, _08050E94 @ =gUnknown_2031DAC
+ ldr r0, _08050E94 @ =sTradeAnimationResourcesPtr
ldr r0, [r0]
adds r0, 0xEE
ldrb r0, [r0]
@@ -1522,7 +591,7 @@ sub_8050E24: @ 8050E24
bl StringCopy10
b _08050EF0
.align 2, 0
-_08050E94: .4byte gUnknown_2031DAC
+_08050E94: .4byte sTradeAnimationResourcesPtr
_08050E98: .4byte gStringVar1
_08050E9C: .4byte gLinkPlayers + 8
_08050EA0: .4byte gUnknown_2031DA4
@@ -1575,7 +644,7 @@ _08050F10: .4byte gStringVar2
thumb_func_start sub_8050F14
sub_8050F14: @ 8050F14
push {lr}
- ldr r0, _08050F2C @ =gUnknown_2031DAC
+ ldr r0, _08050F2C @ =sTradeAnimationResourcesPtr
ldr r0, [r0]
movs r1, 0x84
lsls r1, 1
@@ -1586,7 +655,7 @@ sub_8050F14: @ 8050F14
bl sub_805232C
b _08050F34
.align 2, 0
-_08050F2C: .4byte gUnknown_2031DAC
+_08050F2C: .4byte sTradeAnimationResourcesPtr
_08050F30:
bl sub_8050F3C
_08050F34:
@@ -1600,7 +669,7 @@ _08050F34:
sub_8050F3C: @ 8050F3C
push {r4-r7,lr}
sub sp, 0x10
- ldr r0, _08050F60 @ =gUnknown_2031DAC
+ ldr r0, _08050F60 @ =sTradeAnimationResourcesPtr
ldr r1, [r0]
adds r1, 0x94
ldrh r5, [r1]
@@ -1616,7 +685,7 @@ _08050F54:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08050F60: .4byte gUnknown_2031DAC
+_08050F60: .4byte sTradeAnimationResourcesPtr
_08050F64: .4byte 0x0000010b
_08050F68: .4byte _08050F6C
.align 2, 0
@@ -1997,7 +1066,7 @@ _08051470:
adds r1, r4, 0
movs r2, 0
bl sub_8054508
- ldr r4, _080514B4 @ =gUnknown_2031DAC
+ ldr r4, _080514B4 @ =sTradeAnimationResourcesPtr
ldr r0, [r4]
adds r2, r0, 0
adds r2, 0xF0
@@ -2019,7 +1088,7 @@ _0805149E:
.align 2, 0
_080514AC: .4byte gStringVar4
_080514B0: .4byte gUnknown_841E1E9
-_080514B4: .4byte gUnknown_2031DAC
+_080514B4: .4byte sTradeAnimationResourcesPtr
_080514B8:
ldr r1, [r7]
ldr r0, [r1, 0x64]
@@ -2089,7 +1158,7 @@ _0805152C:
beq _0805154C
bl _08052318
_0805154C:
- ldr r0, _08051590 @ =gUnknown_826CDE4
+ ldr r0, _08051590 @ =sTradePokeballSpriteTemplate
movs r1, 0x78
movs r2, 0x20
movs r3, 0
@@ -2105,7 +1174,7 @@ _0805154C:
adds r0, r1
lsls r0, 2
adds r0, r4
- ldr r1, _08051594 @ =sub_8053938
+ ldr r1, _08051594 @ =SpriteCB_TradePokeball_Outbound
str r1, [r0]
adds r2, 0xD2
ldrb r1, [r2]
@@ -2119,8 +1188,8 @@ _0805154C:
.align 2, 0
_08051588: .4byte gSprites
_0805158C: .4byte SpriteCallbackDummy
-_08051590: .4byte gUnknown_826CDE4
-_08051594: .4byte sub_8053938
+_08051590: .4byte sTradePokeballSpriteTemplate
+_08051594: .4byte SpriteCB_TradePokeball_Outbound
_08051598:
movs r0, 0x1
negs r0, r0
@@ -2129,14 +1198,14 @@ _08051598:
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
- ldr r0, _080515B8 @ =gUnknown_2031DAC
+ ldr r0, _080515B8 @ =sTradeAnimationResourcesPtr
ldr r0, [r0]
adds r0, 0x94
movs r1, 0x14
strh r1, [r0]
bl _08052318
.align 2, 0
-_080515B8: .4byte gUnknown_2031DAC
+_080515B8: .4byte sTradeAnimationResourcesPtr
_080515BC:
ldr r0, _080515E8 @ =gPaletteFade
ldrb r1, [r0, 0x7]
@@ -2183,7 +1252,7 @@ _0805160E:
.align 2, 0
_0805161C: .4byte gPaletteFade
_08051620:
- ldr r4, _0805163C @ =gUnknown_2031DAC
+ ldr r4, _0805163C @ =sTradeAnimationResourcesPtr
ldr r0, [r4]
adds r2, r0, 0
adds r2, 0xEA
@@ -2197,7 +1266,7 @@ _08051620:
strh r0, [r2]
b _0805165C
.align 2, 0
-_0805163C: .4byte gUnknown_2031DAC
+_0805163C: .4byte sTradeAnimationResourcesPtr
_08051640:
movs r0, 0x1
bl sub_8050968
@@ -2213,11 +1282,11 @@ _08051640:
strh r0, [r1]
str r2, [r3, 0x64]
_0805165C:
- ldr r0, _08051664 @ =gUnknown_2031DAC
+ ldr r0, _08051664 @ =sTradeAnimationResourcesPtr
ldr r4, [r0]
bl _08051EB0
.align 2, 0
-_08051664: .4byte gUnknown_2031DAC
+_08051664: .4byte sTradeAnimationResourcesPtr
_08051668:
ldr r1, [r7]
ldr r0, [r1, 0x64]
@@ -2227,7 +1296,7 @@ _08051668:
bhi _08051678
bl _08052318
_08051678:
- bl sub_804FE24
+ bl TradeAnim_UpdateBgAffine
ldr r0, _08051694 @ =gUnknown_826CF30
movs r1, 0x78
movs r2, 0x50
@@ -2299,7 +1368,7 @@ _08051700:
beq _08051714
bl _08052318
_08051714:
- ldr r0, _0805172C @ =gUnknown_826CEB8
+ ldr r0, _0805172C @ =sGameLinkCableEndSpriteTemplate
movs r1, 0x80
movs r2, 0x41
movs r3, 0
@@ -2309,14 +1378,14 @@ _08051714:
strb r0, [r1]
bl _08052318
.align 2, 0
-_0805172C: .4byte gUnknown_826CEB8
+_0805172C: .4byte sGameLinkCableEndSpriteTemplate
_08051730:
ldr r0, _08051774 @ =gUnknown_826CE44
movs r1, 0x80
movs r2, 0x50
movs r3, 0x3
bl CreateSprite
- ldr r4, _08051778 @ =gUnknown_2031DAC
+ ldr r4, _08051778 @ =sTradeAnimationResourcesPtr
ldr r1, [r4]
adds r1, 0x90
strb r0, [r1]
@@ -2342,7 +1411,7 @@ _08051730:
bl _080522AC
.align 2, 0
_08051774: .4byte gUnknown_826CE44
-_08051778: .4byte gUnknown_2031DAC
+_08051778: .4byte sTradeAnimationResourcesPtr
_0805177C: .4byte gUnknown_826CE84
_08051780: .4byte gSprites
_08051784:
@@ -2418,14 +1487,14 @@ _08051808:
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
- ldr r0, _08051828 @ =gUnknown_2031DAC
+ ldr r0, _08051828 @ =sTradeAnimationResourcesPtr
ldr r0, [r0]
adds r0, 0x94
movs r1, 0x1E
strh r1, [r0]
bl _08052318
.align 2, 0
-_08051828: .4byte gUnknown_2031DAC
+_08051828: .4byte sTradeAnimationResourcesPtr
_0805182C:
ldr r0, _08051870 @ =gPaletteFade
ldrb r1, [r0, 0x7]
@@ -2474,7 +1543,7 @@ _08051878:
movs r2, 0xAA
movs r3, 0
bl CreateSprite
- ldr r4, _080518C0 @ =gUnknown_2031DAC
+ ldr r4, _080518C0 @ =sTradeAnimationResourcesPtr
ldr r1, [r4]
adds r1, 0x90
strb r0, [r1]
@@ -2491,7 +1560,7 @@ _08051878:
bl _080522AC
.align 2, 0
_080518BC: .4byte gUnknown_826CE84
-_080518C0: .4byte gUnknown_2031DAC
+_080518C0: .4byte sTradeAnimationResourcesPtr
_080518C4:
ldr r0, _08051914 @ =gPaletteFade
ldrb r1, [r0, 0x7]
@@ -2501,7 +1570,7 @@ _080518C4:
bne _080518E2
movs r0, 0x28
bl PlaySE
- ldr r0, _08051918 @ =gUnknown_2031DAC
+ ldr r0, _08051918 @ =sTradeAnimationResourcesPtr
ldr r1, [r0]
adds r1, 0x94
ldrh r0, [r1]
@@ -2509,7 +1578,7 @@ _080518C4:
strh r0, [r1]
_080518E2:
ldr r3, _0805191C @ =gSprites
- ldr r0, _08051918 @ =gUnknown_2031DAC
+ ldr r0, _08051918 @ =sTradeAnimationResourcesPtr
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x90
@@ -2533,7 +1602,7 @@ _080518E2:
bl _08052318
.align 2, 0
_08051914: .4byte gPaletteFade
-_08051918: .4byte gUnknown_2031DAC
+_08051918: .4byte sTradeAnimationResourcesPtr
_0805191C: .4byte gSprites
_08051920:
ldr r5, _0805197C @ =gSprites
@@ -2608,7 +1677,7 @@ _080519A8:
.align 2, 0
_080519B8: .4byte 0x0000ffff
_080519BC:
- ldr r5, _08051A28 @ =gUnknown_2031DAC
+ ldr r5, _08051A28 @ =sTradeAnimationResourcesPtr
ldr r0, [r5]
adds r0, 0xF0
ldrh r0, [r0]
@@ -2659,7 +1728,7 @@ _080519BC:
bl StartSpriteAffineAnim
b _08051A4A
.align 2, 0
-_08051A28: .4byte gUnknown_2031DAC
+_08051A28: .4byte sTradeAnimationResourcesPtr
_08051A2C: .4byte gSprites
_08051A30: .4byte gUnknown_826CF88
_08051A34:
@@ -2674,7 +1743,7 @@ _08051A34:
movs r1, 0
bl StartSpriteAffineAnim
_08051A4A:
- ldr r5, _08051ADC @ =gUnknown_2031DAC
+ ldr r5, _08051ADC @ =sTradeAnimationResourcesPtr
ldr r0, [r5]
adds r0, 0x8F
ldrb r1, [r0]
@@ -2744,7 +1813,7 @@ _08051A4A:
bl _080522AC
.align 2, 0
_08051AD8: .4byte gSprites
-_08051ADC: .4byte gUnknown_2031DAC
+_08051ADC: .4byte sTradeAnimationResourcesPtr
_08051AE0: .4byte 0x0000ffe0
_08051AE4:
ldr r4, _08051BAC @ =gSprites
@@ -3130,7 +2199,7 @@ _08051DD6:
bne _08051DE4
b _08052318
_08051DE4:
- ldr r0, _08051E10 @ =gUnknown_826CEB8
+ ldr r0, _08051E10 @ =sGameLinkCableEndSpriteTemplate
movs r1, 0x80
movs r2, 0x41
movs r3, 0
@@ -3147,20 +2216,20 @@ _08051DE4:
lsls r0, 2
adds r2, 0x1C
adds r0, r2
- ldr r1, _08051E18 @ =sub_804FDDC
+ ldr r1, _08051E18 @ =SpriteCB_GameLinkCableEnd_Inbound
str r1, [r0]
b _08052318
.align 2, 0
-_08051E10: .4byte gUnknown_826CEB8
+_08051E10: .4byte sGameLinkCableEndSpriteTemplate
_08051E14: .4byte gSprites
-_08051E18: .4byte sub_804FDDC
+_08051E18: .4byte SpriteCB_GameLinkCableEnd_Inbound
_08051E1C:
ldr r0, _08051E3C @ =gUnknown_826CF30
movs r1, 0x78
movs r2, 0x50
movs r3, 0
bl CreateSprite
- ldr r2, _08051E40 @ =gUnknown_2031DAC
+ ldr r2, _08051E40 @ =sTradeAnimationResourcesPtr
ldr r1, [r2]
adds r1, 0x91
strb r0, [r1]
@@ -3171,7 +2240,7 @@ _08051E1C:
b _08052318
.align 2, 0
_08051E3C: .4byte gUnknown_826CF30
-_08051E40: .4byte gUnknown_2031DAC
+_08051E40: .4byte sTradeAnimationResourcesPtr
_08051E44:
ldr r2, _08051E80 @ =gSprites
ldr r0, [r7]
@@ -3245,14 +2314,14 @@ _08051EC4:
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
- ldr r0, _08051EE0 @ =gUnknown_2031DAC
+ ldr r0, _08051EE0 @ =sTradeAnimationResourcesPtr
ldr r0, [r0]
adds r0, 0x94
movs r1, 0x3C
strh r1, [r0]
b _08052318
.align 2, 0
-_08051EE0: .4byte gUnknown_2031DAC
+_08051EE0: .4byte sTradeAnimationResourcesPtr
_08051EE4:
ldr r4, _08051F08 @ =gPaletteFade
ldrb r1, [r4, 0x7]
@@ -3305,13 +2374,13 @@ _08051F40:
.align 2, 0
_08051F44: .4byte gPaletteFade
_08051F48:
- ldr r0, _08051FDC @ =gUnknown_826CDE4
+ ldr r0, _08051FDC @ =sTradePokeballSpriteTemplate
movs r2, 0x8
negs r2, r2
movs r1, 0x78
movs r3, 0
bl CreateSprite
- ldr r5, _08051FE0 @ =gUnknown_2031DAC
+ ldr r5, _08051FE0 @ =sTradeAnimationResourcesPtr
ldr r1, [r5]
adds r1, 0xD3
movs r6, 0
@@ -3333,7 +2402,7 @@ _08051F48:
adds r1, r4, 0
adds r1, 0x1C
adds r0, r1
- ldr r1, _08051FE8 @ =sub_8053A0C
+ ldr r1, _08051FE8 @ =SpriteCB_TradePokeball_Inbound
str r1, [r0]
ldrb r1, [r2]
lsls r0, r1, 4
@@ -3375,10 +2444,10 @@ _08051F48:
str r6, [r2, 0x64]
b _08052318
.align 2, 0
-_08051FDC: .4byte gUnknown_826CDE4
-_08051FE0: .4byte gUnknown_2031DAC
+_08051FDC: .4byte sTradePokeballSpriteTemplate
+_08051FE0: .4byte sTradeAnimationResourcesPtr
_08051FE4: .4byte gSprites
-_08051FE8: .4byte sub_8053A0C
+_08051FE8: .4byte SpriteCB_TradePokeball_Inbound
_08051FEC: .4byte 0x0000ffff
_08051FF0:
ldr r2, _0805201C @ =gSprites
@@ -3540,7 +2609,7 @@ _08052128:
adds r1, r4, 0
movs r2, 0
bl sub_8054508
- ldr r0, _0805215C @ =gUnknown_2031DAC
+ ldr r0, _0805215C @ =sTradeAnimationResourcesPtr
ldr r3, [r0]
adds r1, r3, 0
adds r1, 0x94
@@ -3550,7 +2619,7 @@ _08052128:
.align 2, 0
_08052154: .4byte gStringVar4
_08052158: .4byte gUnknown_841E20D
-_0805215C: .4byte gUnknown_2031DAC
+_0805215C: .4byte sTradeAnimationResourcesPtr
_08052160:
ldr r1, [r7]
ldr r0, [r1, 0x64]
@@ -3589,14 +2658,14 @@ _08052198:
bne _080521A4
b _08052318
_080521A4:
- ldr r0, _080521B0 @ =gUnknown_2031DAC
+ ldr r0, _080521B0 @ =sTradeAnimationResourcesPtr
ldr r0, [r0]
adds r0, 0x94
movs r1, 0x44
strh r1, [r0]
b _08052318
.align 2, 0
-_080521B0: .4byte gUnknown_2031DAC
+_080521B0: .4byte sTradeAnimationResourcesPtr
_080521B4:
ldr r1, [r7]
ldr r0, [r1, 0x64]
@@ -3670,9 +2739,9 @@ _0805223C:
ldr r0, _08052280 @ =gSpecialVar_0x8005
ldrb r0, [r0]
movs r1, 0
- bl sub_805080C
+ bl Trade_SwapPlayerAndParterMonData
ldr r1, _08052284 @ =gCB2_AfterEvolution
- ldr r0, _08052288 @ =sub_8050948
+ ldr r0, _08052288 @ =CB2_RunTradeAnim_InGameTrade
str r0, [r1]
ldr r7, _0805228C @ =gUnknown_2031DA4
ldrb r0, [r7]
@@ -3691,7 +2760,7 @@ _0805223C:
adds r0, r3, 0
muls r0, r6
adds r0, r5
- ldr r1, _08052294 @ =gUnknown_2031DAC
+ ldr r1, _08052294 @ =sTradeAnimationResourcesPtr
ldr r1, [r1]
adds r1, 0x8F
ldrb r2, [r1]
@@ -3701,10 +2770,10 @@ _0805223C:
.align 2, 0
_08052280: .4byte gSpecialVar_0x8005
_08052284: .4byte gCB2_AfterEvolution
-_08052288: .4byte sub_8050948
+_08052288: .4byte CB2_RunTradeAnim_InGameTrade
_0805228C: .4byte gUnknown_2031DA4
_08052290: .4byte gPlayerParty
-_08052294: .4byte gUnknown_2031DAC
+_08052294: .4byte sTradeAnimationResourcesPtr
_08052298:
movs r0, 0x1
negs r0, r0
@@ -3715,7 +2784,7 @@ _08052298:
_080522A4:
bl BeginNormalPaletteFade
_080522A8:
- ldr r0, _080522B8 @ =gUnknown_2031DAC
+ ldr r0, _080522B8 @ =sTradeAnimationResourcesPtr
ldr r1, [r0]
_080522AC:
adds r1, 0x94
@@ -3724,7 +2793,7 @@ _080522AC:
strh r0, [r1]
b _08052318
.align 2, 0
-_080522B8: .4byte gUnknown_2031DAC
+_080522B8: .4byte sTradeAnimationResourcesPtr
_080522BC:
ldr r0, _08052324 @ =gPaletteFade
ldrb r1, [r0, 0x7]
@@ -3776,7 +2845,7 @@ _08052328: .4byte CB2_ReturnToField
sub_805232C: @ 805232C
push {r4-r7,lr}
sub sp, 0x10
- ldr r0, _08052350 @ =gUnknown_2031DAC
+ ldr r0, _08052350 @ =sTradeAnimationResourcesPtr
ldr r1, [r0]
adds r1, 0x94
ldrh r5, [r1]
@@ -3792,7 +2861,7 @@ _08052344:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08052350: .4byte gUnknown_2031DAC
+_08052350: .4byte sTradeAnimationResourcesPtr
_08052354: .4byte 0x0000010b
_08052358: .4byte _0805235C
.align 2, 0
@@ -4173,7 +3242,7 @@ _08052860:
adds r1, r4, 0
movs r2, 0
bl sub_8054508
- ldr r4, _080528A4 @ =gUnknown_2031DAC
+ ldr r4, _080528A4 @ =sTradeAnimationResourcesPtr
ldr r0, [r4]
adds r2, r0, 0
adds r2, 0xF0
@@ -4195,7 +3264,7 @@ _0805288E:
.align 2, 0
_0805289C: .4byte gStringVar4
_080528A0: .4byte gUnknown_841E1E9
-_080528A4: .4byte gUnknown_2031DAC
+_080528A4: .4byte sTradeAnimationResourcesPtr
_080528A8:
ldr r1, [r7]
ldr r0, [r1, 0x64]
@@ -4265,7 +3334,7 @@ _0805291C:
beq _0805293C
bl _08053774
_0805293C:
- ldr r0, _08052980 @ =gUnknown_826CDE4
+ ldr r0, _08052980 @ =sTradePokeballSpriteTemplate
movs r1, 0x78
movs r2, 0x20
movs r3, 0
@@ -4281,7 +3350,7 @@ _0805293C:
adds r0, r1
lsls r0, 2
adds r0, r4
- ldr r1, _08052984 @ =sub_8053938
+ ldr r1, _08052984 @ =SpriteCB_TradePokeball_Outbound
str r1, [r0]
adds r2, 0xD2
ldrb r1, [r2]
@@ -4295,8 +3364,8 @@ _0805293C:
.align 2, 0
_08052978: .4byte gSprites
_0805297C: .4byte SpriteCallbackDummy
-_08052980: .4byte gUnknown_826CDE4
-_08052984: .4byte sub_8053938
+_08052980: .4byte sTradePokeballSpriteTemplate
+_08052984: .4byte SpriteCB_TradePokeball_Outbound
_08052988:
movs r0, 0x1
negs r0, r0
@@ -4305,14 +3374,14 @@ _08052988:
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
- ldr r0, _080529A8 @ =gUnknown_2031DAC
+ ldr r0, _080529A8 @ =sTradeAnimationResourcesPtr
ldr r0, [r0]
adds r0, 0x94
movs r1, 0x14
strh r1, [r0]
bl _08053774
.align 2, 0
-_080529A8: .4byte gUnknown_2031DAC
+_080529A8: .4byte sTradeAnimationResourcesPtr
_080529AC:
ldr r0, _080529D8 @ =gPaletteFade
ldrb r1, [r0, 0x7]
@@ -4359,7 +3428,7 @@ _080529FE:
.align 2, 0
_08052A0C: .4byte gPaletteFade
_08052A10:
- ldr r4, _08052A2C @ =gUnknown_2031DAC
+ ldr r4, _08052A2C @ =sTradeAnimationResourcesPtr
ldr r0, [r4]
adds r2, r0, 0
adds r2, 0xEA
@@ -4373,7 +3442,7 @@ _08052A10:
strh r0, [r2]
b _08052A4A
.align 2, 0
-_08052A2C: .4byte gUnknown_2031DAC
+_08052A2C: .4byte sTradeAnimationResourcesPtr
_08052A30:
movs r0, 0x1
bl sub_8050968
@@ -4388,11 +3457,11 @@ _08052A30:
strh r0, [r1]
str r2, [r3, 0x64]
_08052A4A:
- ldr r0, _08052A54 @ =gUnknown_2031DAC
+ ldr r0, _08052A54 @ =sTradeAnimationResourcesPtr
ldr r4, [r0]
bl _0805330C
.align 2, 0
-_08052A54: .4byte gUnknown_2031DAC
+_08052A54: .4byte sTradeAnimationResourcesPtr
_08052A58:
ldr r1, [r7]
ldr r0, [r1, 0x64]
@@ -4459,7 +3528,7 @@ _08052AE0:
beq _08052AF0
bl _08053774
_08052AF0:
- ldr r0, _08052B04 @ =gUnknown_2031DAC
+ ldr r0, _08052B04 @ =sTradeAnimationResourcesPtr
ldr r0, [r0]
adds r0, 0x94
movs r1, 0x1A
@@ -4467,7 +3536,7 @@ _08052AF0:
bl _08053774
.align 2, 0
_08052B00: .4byte c3_08054588
-_08052B04: .4byte gUnknown_2031DAC
+_08052B04: .4byte sTradeAnimationResourcesPtr
_08052B08:
ldr r2, [r7]
adds r0, r2, 0
@@ -4490,7 +3559,7 @@ _08052B28:
movs r2, 0x50
movs r3, 0x3
bl CreateSprite
- ldr r4, _08052B84 @ =gUnknown_2031DAC
+ ldr r4, _08052B84 @ =sTradeAnimationResourcesPtr
ldr r1, [r4]
adds r1, 0x90
strb r0, [r1]
@@ -4504,7 +3573,7 @@ _08052B28:
adds r1, r5, 0
adds r1, 0x1C
adds r0, r1
- ldr r1, _08052B8C @ =sub_804FD48
+ ldr r1, _08052B8C @ =SpriteCB_TradeGlowWireless
str r1, [r0]
ldr r0, _08052B90 @ =gUnknown_826CE84
movs r1, 0x78
@@ -4527,9 +3596,9 @@ _08052B28:
bl _08053708
.align 2, 0
_08052B80: .4byte gUnknown_826CE44
-_08052B84: .4byte gUnknown_2031DAC
+_08052B84: .4byte sTradeAnimationResourcesPtr
_08052B88: .4byte gSprites
-_08052B8C: .4byte sub_804FD48
+_08052B8C: .4byte SpriteCB_TradeGlowWireless
_08052B90: .4byte gUnknown_826CE84
_08052B94:
ldr r2, [r7]
@@ -4604,14 +3673,14 @@ _08052C18:
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
- ldr r0, _08052C38 @ =gUnknown_2031DAC
+ ldr r0, _08052C38 @ =sTradeAnimationResourcesPtr
ldr r0, [r0]
adds r0, 0x94
movs r1, 0x1E
strh r1, [r0]
bl _08053774
.align 2, 0
-_08052C38: .4byte gUnknown_2031DAC
+_08052C38: .4byte sTradeAnimationResourcesPtr
_08052C3C:
ldr r0, _08052C80 @ =gPaletteFade
ldrb r1, [r0, 0x7]
@@ -4660,7 +3729,7 @@ _08052C88:
movs r2, 0xAA
movs r3, 0
bl CreateSprite
- ldr r4, _08052CD0 @ =gUnknown_2031DAC
+ ldr r4, _08052CD0 @ =sTradeAnimationResourcesPtr
ldr r1, [r4]
adds r1, 0x90
strb r0, [r1]
@@ -4677,7 +3746,7 @@ _08052C88:
bl _08053708
.align 2, 0
_08052CCC: .4byte gUnknown_826CE84
-_08052CD0: .4byte gUnknown_2031DAC
+_08052CD0: .4byte sTradeAnimationResourcesPtr
_08052CD4:
ldr r0, _08052D24 @ =gPaletteFade
ldrb r1, [r0, 0x7]
@@ -4687,7 +3756,7 @@ _08052CD4:
bne _08052CF2
movs r0, 0x28
bl PlaySE
- ldr r0, _08052D28 @ =gUnknown_2031DAC
+ ldr r0, _08052D28 @ =sTradeAnimationResourcesPtr
ldr r1, [r0]
adds r1, 0x94
ldrh r0, [r1]
@@ -4695,7 +3764,7 @@ _08052CD4:
strh r0, [r1]
_08052CF2:
ldr r3, _08052D2C @ =gSprites
- ldr r0, _08052D28 @ =gUnknown_2031DAC
+ ldr r0, _08052D28 @ =sTradeAnimationResourcesPtr
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x90
@@ -4719,7 +3788,7 @@ _08052CF2:
bl _08053774
.align 2, 0
_08052D24: .4byte gPaletteFade
-_08052D28: .4byte gUnknown_2031DAC
+_08052D28: .4byte sTradeAnimationResourcesPtr
_08052D2C: .4byte gSprites
_08052D30:
ldr r5, _08052D94 @ =gSprites
@@ -4800,7 +3869,7 @@ _08052DC4:
.align 2, 0
_08052DD4: .4byte 0x0000ffff
_08052DD8:
- ldr r5, _08052E44 @ =gUnknown_2031DAC
+ ldr r5, _08052E44 @ =sTradeAnimationResourcesPtr
ldr r0, [r5]
adds r0, 0xF0
ldrh r0, [r0]
@@ -4851,7 +3920,7 @@ _08052DD8:
bl StartSpriteAffineAnim
b _08052E66
.align 2, 0
-_08052E44: .4byte gUnknown_2031DAC
+_08052E44: .4byte sTradeAnimationResourcesPtr
_08052E48: .4byte gSprites
_08052E4C: .4byte gUnknown_826CF88
_08052E50:
@@ -4866,7 +3935,7 @@ _08052E50:
movs r1, 0
bl StartSpriteAffineAnim
_08052E66:
- ldr r5, _08052EF8 @ =gUnknown_2031DAC
+ ldr r5, _08052EF8 @ =sTradeAnimationResourcesPtr
ldr r0, [r5]
adds r0, 0x8F
ldrb r1, [r0]
@@ -4936,7 +4005,7 @@ _08052E66:
bl _08053708
.align 2, 0
_08052EF4: .4byte gSprites
-_08052EF8: .4byte gUnknown_2031DAC
+_08052EF8: .4byte sTradeAnimationResourcesPtr
_08052EFC: .4byte 0x0000ffe0
_08052F00:
ldr r4, _08052FC8 @ =gSprites
@@ -5155,7 +4224,7 @@ _08053066:
adds r1, r5, 0
adds r1, 0x1C
adds r0, r1
- ldr r1, _080530F0 @ =sub_804FD48
+ ldr r1, _080530F0 @ =SpriteCB_TradeGlowWireless
str r1, [r0]
ldr r0, _080530F4 @ =gUnknown_826CE84
movs r1, 0x78
@@ -5179,7 +4248,7 @@ _08053066:
_080530E4: .4byte gPaletteFade
_080530E8: .4byte gUnknown_826CE44
_080530EC: .4byte gSprites
-_080530F0: .4byte sub_804FD48
+_080530F0: .4byte SpriteCB_TradeGlowWireless
_080530F4: .4byte gUnknown_826CE84
_080530F8:
movs r1, 0x1
@@ -5257,7 +4326,7 @@ _08053180:
lsls r1, 5
movs r0, 0
bl SetGpuReg
- ldr r4, _080531DC @ =gUnknown_2031DAC
+ ldr r4, _080531DC @ =sTradeAnimationResourcesPtr
ldr r2, [r4]
adds r1, r2, 0
adds r1, 0xE0
@@ -5300,7 +4369,7 @@ _080531D8:
strh r2, [r3]
b _08053708
.align 2, 0
-_080531DC: .4byte gUnknown_2031DAC
+_080531DC: .4byte sTradeAnimationResourcesPtr
_080531E0: .4byte c3_08054588
_080531E4: .4byte gTasks
_080531E8:
@@ -5341,7 +4410,7 @@ _08053224:
beq _08053234
b _08053774
_08053234:
- ldr r0, _08053248 @ =gUnknown_2031DAC
+ ldr r0, _08053248 @ =sTradeAnimationResourcesPtr
ldr r2, [r0]
adds r1, r2, 0
adds r1, 0x94
@@ -5351,7 +4420,7 @@ _08053234:
b _08053774
.align 2, 0
_08053244: .4byte c3_08054588
-_08053248: .4byte gUnknown_2031DAC
+_08053248: .4byte sTradeAnimationResourcesPtr
_0805324C:
ldr r1, [r7]
ldr r0, [r1, 0x64]
@@ -5385,7 +4454,7 @@ _0805327A:
movs r2, 0x50
movs r3, 0
bl CreateSprite
- ldr r2, _0805329C @ =gUnknown_2031DAC
+ ldr r2, _0805329C @ =sTradeAnimationResourcesPtr
ldr r1, [r2]
adds r1, 0x91
strb r0, [r1]
@@ -5396,7 +4465,7 @@ _0805327A:
b _08053774
.align 2, 0
_08053298: .4byte gUnknown_826CF30
-_0805329C: .4byte gUnknown_2031DAC
+_0805329C: .4byte sTradeAnimationResourcesPtr
_080532A0:
ldr r2, _080532DC @ =gSprites
ldr r0, [r7]
@@ -5470,14 +4539,14 @@ _08053320:
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
- ldr r0, _0805333C @ =gUnknown_2031DAC
+ ldr r0, _0805333C @ =sTradeAnimationResourcesPtr
ldr r0, [r0]
adds r0, 0x94
movs r1, 0x3C
strh r1, [r0]
b _08053774
.align 2, 0
-_0805333C: .4byte gUnknown_2031DAC
+_0805333C: .4byte sTradeAnimationResourcesPtr
_08053340:
ldr r4, _08053364 @ =gPaletteFade
ldrb r1, [r4, 0x7]
@@ -5530,13 +4599,13 @@ _0805339C:
.align 2, 0
_080533A0: .4byte gPaletteFade
_080533A4:
- ldr r0, _08053438 @ =gUnknown_826CDE4
+ ldr r0, _08053438 @ =sTradePokeballSpriteTemplate
movs r2, 0x8
negs r2, r2
movs r1, 0x78
movs r3, 0
bl CreateSprite
- ldr r5, _0805343C @ =gUnknown_2031DAC
+ ldr r5, _0805343C @ =sTradeAnimationResourcesPtr
ldr r1, [r5]
adds r1, 0xD3
movs r6, 0
@@ -5558,7 +4627,7 @@ _080533A4:
adds r1, r4, 0
adds r1, 0x1C
adds r0, r1
- ldr r1, _08053444 @ =sub_8053A0C
+ ldr r1, _08053444 @ =SpriteCB_TradePokeball_Inbound
str r1, [r0]
ldrb r1, [r2]
lsls r0, r1, 4
@@ -5600,10 +4669,10 @@ _080533A4:
str r6, [r2, 0x64]
b _08053774
.align 2, 0
-_08053438: .4byte gUnknown_826CDE4
-_0805343C: .4byte gUnknown_2031DAC
+_08053438: .4byte sTradePokeballSpriteTemplate
+_0805343C: .4byte sTradeAnimationResourcesPtr
_08053440: .4byte gSprites
-_08053444: .4byte sub_8053A0C
+_08053444: .4byte SpriteCB_TradePokeball_Inbound
_08053448: .4byte 0x0000ffff
_0805344C:
ldr r2, _08053478 @ =gSprites
@@ -5765,7 +4834,7 @@ _08053584:
adds r1, r4, 0
movs r2, 0
bl sub_8054508
- ldr r0, _080535B8 @ =gUnknown_2031DAC
+ ldr r0, _080535B8 @ =sTradeAnimationResourcesPtr
ldr r3, [r0]
adds r1, r3, 0
adds r1, 0x94
@@ -5775,7 +4844,7 @@ _08053584:
.align 2, 0
_080535B0: .4byte gStringVar4
_080535B4: .4byte gUnknown_841E20D
-_080535B8: .4byte gUnknown_2031DAC
+_080535B8: .4byte sTradeAnimationResourcesPtr
_080535BC:
ldr r1, [r7]
ldr r0, [r1, 0x64]
@@ -5814,14 +4883,14 @@ _080535F4:
bne _08053600
b _08053774
_08053600:
- ldr r0, _0805360C @ =gUnknown_2031DAC
+ ldr r0, _0805360C @ =sTradeAnimationResourcesPtr
ldr r0, [r0]
adds r0, 0x94
movs r1, 0x44
strh r1, [r0]
b _08053774
.align 2, 0
-_0805360C: .4byte gUnknown_2031DAC
+_0805360C: .4byte sTradeAnimationResourcesPtr
_08053610:
ldr r1, [r7]
ldr r0, [r1, 0x64]
@@ -5895,9 +4964,9 @@ _08053698:
ldr r0, _080536DC @ =gSpecialVar_0x8005
ldrb r0, [r0]
movs r1, 0
- bl sub_805080C
+ bl Trade_SwapPlayerAndParterMonData
ldr r1, _080536E0 @ =gCB2_AfterEvolution
- ldr r0, _080536E4 @ =sub_8050948
+ ldr r0, _080536E4 @ =CB2_RunTradeAnim_InGameTrade
str r0, [r1]
ldr r7, _080536E8 @ =gUnknown_2031DA4
ldrb r0, [r7]
@@ -5916,7 +4985,7 @@ _08053698:
adds r0, r3, 0
muls r0, r6
adds r0, r5
- ldr r1, _080536F0 @ =gUnknown_2031DAC
+ ldr r1, _080536F0 @ =sTradeAnimationResourcesPtr
ldr r1, [r1]
adds r1, 0x8F
ldrb r2, [r1]
@@ -5926,10 +4995,10 @@ _08053698:
.align 2, 0
_080536DC: .4byte gSpecialVar_0x8005
_080536E0: .4byte gCB2_AfterEvolution
-_080536E4: .4byte sub_8050948
+_080536E4: .4byte CB2_RunTradeAnim_InGameTrade
_080536E8: .4byte gUnknown_2031DA4
_080536EC: .4byte gPlayerParty
-_080536F0: .4byte gUnknown_2031DAC
+_080536F0: .4byte sTradeAnimationResourcesPtr
_080536F4:
movs r0, 0x1
negs r0, r0
@@ -5940,7 +5009,7 @@ _080536F4:
_08053700:
bl BeginNormalPaletteFade
_08053704:
- ldr r0, _08053714 @ =gUnknown_2031DAC
+ ldr r0, _08053714 @ =sTradeAnimationResourcesPtr
ldr r1, [r0]
_08053708:
adds r1, 0x94
@@ -5949,7 +5018,7 @@ _08053708:
strh r0, [r1]
b _08053774
.align 2, 0
-_08053714: .4byte gUnknown_2031DAC
+_08053714: .4byte sTradeAnimationResourcesPtr
_08053718:
ldr r0, _08053780 @ =gPaletteFade
ldrb r1, [r0, 0x7]
@@ -6044,7 +5113,7 @@ _080537B8:
adds r0, r3, 0
muls r0, r6
adds r0, r5
- ldr r1, _08053804 @ =gUnknown_2031DAC
+ ldr r1, _08053804 @ =sTradeAnimationResourcesPtr
ldr r1, [r1]
adds r1, 0x8F
ldrb r2, [r1]
@@ -6056,7 +5125,7 @@ _080537F4: .4byte gCB2_AfterEvolution
_080537F8: .4byte sub_8053E8C
_080537FC: .4byte gUnknown_2031DA4
_08053800: .4byte gPlayerParty
-_08053804: .4byte gUnknown_2031DAC
+_08053804: .4byte sTradeAnimationResourcesPtr
_08053808:
mov r0, r8
bl SetMainCallback2
@@ -6108,7 +5177,7 @@ _08053864:
ldr r0, _080538B4 @ =0x0000abcd
cmp r1, r0
bne _08053874
- ldr r0, _080538B8 @ =gUnknown_2031DAC
+ ldr r0, _080538B8 @ =sTradeAnimationResourcesPtr
ldr r0, [r0]
adds r0, 0x72
strb r6, [r0]
@@ -6128,7 +5197,7 @@ _0805387A:
ldr r0, _080538B4 @ =0x0000abcd
cmp r1, r0
bne _0805389C
- ldr r0, _080538B8 @ =gUnknown_2031DAC
+ ldr r0, _080538B8 @ =sTradeAnimationResourcesPtr
ldr r0, [r0]
adds r0, 0x73
movs r1, 0x1
@@ -6145,11 +5214,11 @@ _080538A8: .4byte gBlockRecvBuffer
_080538AC: .4byte 0x0000dcba
_080538B0: .4byte sub_8053788
_080538B4: .4byte 0x0000abcd
-_080538B8: .4byte gUnknown_2031DAC
+_080538B8: .4byte sTradeAnimationResourcesPtr
thumb_func_end sub_805383C
- thumb_func_start sub_80538BC
-sub_80538BC: @ 80538BC
+ thumb_func_start SpriteCB_TradePokeball_Default
+SpriteCB_TradePokeball_Default: @ 80538BC
push {r4,r5,lr}
adds r5, r0, 0
movs r1, 0x2E
@@ -6212,10 +5281,10 @@ _0805392E:
bx r0
.align 2, 0
_08053934: .4byte SpriteCallbackDummy
- thumb_func_end sub_80538BC
+ thumb_func_end SpriteCB_TradePokeball_Default
- thumb_func_start sub_8053938
-sub_8053938: @ 8053938
+ thumb_func_start SpriteCB_TradePokeball_Outbound
+SpriteCB_TradePokeball_Outbound: @ 8053938
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
@@ -6245,7 +5314,7 @@ _08053960:
bne _08053996
movs r0, 0x85
bl PlaySE
- ldr r0, _080539A4 @ =sub_80539AC
+ ldr r0, _080539A4 @ =SpriteCB_TradePokeball_Outbound2
str r0, [r4, 0x1C]
movs r0, 0
strh r0, [r4, 0x2E]
@@ -6268,12 +5337,12 @@ _08053996:
bx r0
.align 2, 0
_080539A0: .4byte gUnknown_826D1E4
-_080539A4: .4byte sub_80539AC
+_080539A4: .4byte SpriteCB_TradePokeball_Outbound2
_080539A8: .4byte 0x0000ffff
- thumb_func_end sub_8053938
+ thumb_func_end SpriteCB_TradePokeball_Outbound
- thumb_func_start sub_80539AC
-sub_80539AC: @ 80539AC
+ thumb_func_start SpriteCB_TradePokeball_Outbound2
+SpriteCB_TradePokeball_Outbound2: @ 80539AC
push {r4,lr}
adds r4, r0, 0
movs r1, 0x30
@@ -6309,7 +5378,7 @@ _080539C0:
bne _080539FE
adds r0, r4, 0
bl DestroySprite
- ldr r0, _08053A08 @ =gUnknown_2031DAC
+ ldr r0, _08053A08 @ =sTradeAnimationResourcesPtr
ldr r0, [r0]
adds r0, 0x94
movs r1, 0xE
@@ -6320,11 +5389,11 @@ _080539FE:
bx r0
.align 2, 0
_08053A04: .4byte gUnknown_826D1E4
-_08053A08: .4byte gUnknown_2031DAC
- thumb_func_end sub_80539AC
+_08053A08: .4byte sTradeAnimationResourcesPtr
+ thumb_func_end SpriteCB_TradePokeball_Outbound2
- thumb_func_start sub_8053A0C
-sub_8053A0C: @ 8053A0C
+ thumb_func_start SpriteCB_TradePokeball_Inbound
+SpriteCB_TradePokeball_Inbound: @ 8053A0C
push {r4,lr}
adds r4, r0, 0
ldrh r2, [r4, 0x32]
@@ -6396,7 +5465,7 @@ _08053A8C:
.align 2, 0
_08053A94: .4byte gUnknown_826D1E4
_08053A98: .4byte SpriteCallbackDummy
- thumb_func_end sub_8053A0C
+ thumb_func_end SpriteCB_TradePokeball_Inbound
thumb_func_start GetInGameTradeSpeciesInfo
GetInGameTradeSpeciesInfo: @ 8053A9C
@@ -6610,7 +5679,7 @@ sub_8053B48: @ 8053B48
add r0, sp, 0x10
adds r1, r5, 0
bl sub_8053CD4
- ldr r0, _08053CB0 @ =gUnknown_2031CCC
+ ldr r0, _08053CB0 @ =gLinkPartnerMail
add r1, sp, 0x10
ldm r1!, {r2,r3,r7}
stm r0!, {r2,r3,r7}
@@ -6632,7 +5701,7 @@ sub_8053B48: @ 8053B48
_08053CA4: .4byte gIngameTrades
_08053CA8: .4byte gPlayerParty
_08053CAC: .4byte gEnemyParty
-_08053CB0: .4byte gUnknown_2031CCC
+_08053CB0: .4byte gLinkPartnerMail
_08053CB4:
adds r2, r5, 0
adds r2, 0x28
@@ -6744,15 +5813,15 @@ _08053D7C: .4byte gSpecialVar_0x8005
_08053D80: .4byte gSpecialVar_0x8004
thumb_func_end CreateInGameTradePokemon
- thumb_func_start sub_8053D84
-sub_8053D84: @ 8053D84
+ thumb_func_start CB2_RunTradeAnim_LinkTrade
+CB2_RunTradeAnim_LinkTrade: @ 8053D84
push {r4-r6,lr}
bl sub_8050F14
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0x1
bne _08053DE6
- ldr r5, _08053E08 @ =gUnknown_2031DAC
+ ldr r5, _08053E08 @ =sTradeAnimationResourcesPtr
ldr r0, [r5]
adds r0, 0x8E
ldrb r1, [r0]
@@ -6779,7 +5848,7 @@ sub_8053D84: @ 8053D84
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_805080C
+ bl Trade_SwapPlayerAndParterMonData
ldr r0, [r5]
adds r2, r0, 0
adds r2, 0x74
@@ -6801,12 +5870,12 @@ _08053DE6:
pop {r0}
bx r0
.align 2, 0
-_08053E08: .4byte gUnknown_2031DAC
+_08053E08: .4byte sTradeAnimationResourcesPtr
_08053E0C: .4byte gSprites
_08053E10: .4byte gUnknown_2031DA4
_08053E14: .4byte 0x0000abcd
_08053E18: .4byte sub_8053E1C
- thumb_func_end sub_8053D84
+ thumb_func_end CB2_RunTradeAnim_LinkTrade
thumb_func_start sub_8053E1C
sub_8053E1C: @ 8053E1C
@@ -6818,7 +5887,7 @@ sub_8053E1C: @ 8053E1C
bl sub_805383C
cmp r4, 0
bne _08053E68
- ldr r4, _08053E80 @ =gUnknown_2031DAC
+ ldr r4, _08053E80 @ =sTradeAnimationResourcesPtr
ldr r2, [r4]
adds r0, r2, 0
adds r0, 0x72
@@ -6853,7 +5922,7 @@ _08053E68:
pop {r0}
bx r0
.align 2, 0
-_08053E80: .4byte gUnknown_2031DAC
+_08053E80: .4byte sTradeAnimationResourcesPtr
_08053E84: .4byte 0x00000101
_08053E88: .4byte 0x0000dcba
thumb_func_end sub_8053E1C
@@ -7009,7 +6078,7 @@ _08054068:
.align 2, 0
_0805407C: .4byte gMain
_08054080:
- ldr r0, _080540B4 @ =gUnknown_2031DAC
+ ldr r0, _080540B4 @ =sTradeAnimationResourcesPtr
ldr r3, [r0]
ldr r0, [r3, 0x64]
adds r0, 0x1
@@ -7036,7 +6105,7 @@ _080540A8:
adds r0, r2
b _080540D0
.align 2, 0
-_080540B4: .4byte gUnknown_2031DAC
+_080540B4: .4byte sTradeAnimationResourcesPtr
_080540B8: .4byte gMain
_080540BC:
bl IsLinkTaskFinished
@@ -7078,16 +6147,16 @@ _08054104:
bl InUnionRoom
cmp r0, 0
beq _08054120
- ldr r0, _0805411C @ =gUnknown_2031DAC
+ ldr r0, _0805411C @ =sTradeAnimationResourcesPtr
ldr r1, [r0]
adds r1, 0xF8
movs r0, 0x12
bl sub_8113550
b _08054132
.align 2, 0
-_0805411C: .4byte gUnknown_2031DAC
+_0805411C: .4byte sTradeAnimationResourcesPtr
_08054120:
- ldr r0, _08054174 @ =gUnknown_2031DAC
+ ldr r0, _08054174 @ =sTradeAnimationResourcesPtr
ldr r1, [r0]
adds r1, 0xF8
movs r0, 0xC
@@ -7126,12 +6195,12 @@ _0805415A:
strb r0, [r1]
b _080541F2
.align 2, 0
-_08054174: .4byte gUnknown_2031DAC
+_08054174: .4byte sTradeAnimationResourcesPtr
_08054178: .4byte gWirelessCommType
_0805417C: .4byte gLinkPlayers
_08054180: .4byte gMain
_08054184:
- ldr r0, _0805419C @ =gUnknown_2031DAC
+ ldr r0, _0805419C @ =sTradeAnimationResourcesPtr
ldr r1, [r0]
ldr r0, [r1, 0x64]
adds r0, 0x1
@@ -7145,7 +6214,7 @@ _08054194:
adds r1, r2, r0
b _08054340
.align 2, 0
-_0805419C: .4byte gUnknown_2031DAC
+_0805419C: .4byte sTradeAnimationResourcesPtr
_080541A0:
bl sub_80DA3D8
lsls r0, 24
@@ -7163,7 +6232,7 @@ _080541A0:
.align 2, 0
_080541C0: .4byte gMain
_080541C4:
- ldr r0, _080541D8 @ =gUnknown_2031DAC
+ ldr r0, _080541D8 @ =sTradeAnimationResourcesPtr
ldr r0, [r0]
str r1, [r0, 0x64]
ldr r0, _080541DC @ =gMain
@@ -7174,7 +6243,7 @@ _080541C4:
strb r1, [r0]
b _08054396
.align 2, 0
-_080541D8: .4byte gUnknown_2031DAC
+_080541D8: .4byte sTradeAnimationResourcesPtr
_080541DC: .4byte gMain
_080541E0:
bl sub_80DA40C
@@ -7187,15 +6256,15 @@ _080541E0:
_080541F0:
strb r1, [r0]
_080541F2:
- ldr r0, _08054200 @ =gUnknown_2031DAC
+ ldr r0, _08054200 @ =sTradeAnimationResourcesPtr
ldr r0, [r0]
str r2, [r0, 0x64]
b _08054396
.align 2, 0
_080541FC: .4byte gMain
-_08054200: .4byte gUnknown_2031DAC
+_08054200: .4byte sTradeAnimationResourcesPtr
_08054204:
- ldr r4, _08054238 @ =gUnknown_2031DAC
+ ldr r4, _08054238 @ =sTradeAnimationResourcesPtr
ldr r1, [r4]
ldr r0, [r1, 0x64]
adds r0, 0x1
@@ -7219,7 +6288,7 @@ _08054214:
str r0, [r4, 0x64]
b _08054242
.align 2, 0
-_08054238: .4byte gUnknown_2031DAC
+_08054238: .4byte sTradeAnimationResourcesPtr
_0805423C:
ldr r1, [r4]
movs r0, 0
@@ -7235,7 +6304,7 @@ _08054242:
.align 2, 0
_08054250: .4byte gMain
_08054254:
- ldr r0, _08054270 @ =gUnknown_2031DAC
+ ldr r0, _08054270 @ =sTradeAnimationResourcesPtr
ldr r1, [r0]
ldr r0, [r1, 0x64]
cmp r0, 0
@@ -7249,7 +6318,7 @@ _08054254:
strb r1, [r0]
b _08054396
.align 2, 0
-_08054270: .4byte gUnknown_2031DAC
+_08054270: .4byte sTradeAnimationResourcesPtr
_08054274: .4byte gMain
_08054278:
subs r0, 0x1
@@ -7273,7 +6342,7 @@ _0805428A:
.align 2, 0
_0805429C: .4byte gMain
_080542A0:
- ldr r0, _080542C0 @ =gUnknown_2031DAC
+ ldr r0, _080542C0 @ =sTradeAnimationResourcesPtr
ldr r1, [r0]
ldr r0, [r1, 0x64]
adds r0, 0x1
@@ -7289,7 +6358,7 @@ _080542A0:
bl sub_800AB9C
b _08054396
.align 2, 0
-_080542C0: .4byte gUnknown_2031DAC
+_080542C0: .4byte sTradeAnimationResourcesPtr
_080542C4:
bl IsLinkTaskFinished
lsls r0, 24
@@ -7430,7 +6499,7 @@ sub_80543C4: @ 80543C4
bl GetBgTilemapBuffer
bl Free
bl FreeMonSpritesGfx
- ldr r4, _08054434 @ =gUnknown_2031DAC
+ ldr r4, _08054434 @ =sTradeAnimationResourcesPtr
ldr r0, [r4]
bl Free
str r5, [r4]
@@ -7453,7 +6522,7 @@ _0805441A:
bx r0
.align 2, 0
_08054430: .4byte gPaletteFade
-_08054434: .4byte gUnknown_2031DAC
+_08054434: .4byte sTradeAnimationResourcesPtr
_08054438: .4byte gWirelessCommType
_0805443C: .4byte gMain
thumb_func_end sub_80543C4
@@ -7492,7 +6561,7 @@ sub_8054470: @ 8054470
ands r0, r1
cmp r0, 0
bne _08054494
- ldr r0, _080544A0 @ =sub_80505CC
+ ldr r0, _080544A0 @ =CB2_InitTradeAnim_InGameTrade
bl SetMainCallback2
ldr r1, _080544A4 @ =gFieldCallback
ldr r0, _080544A8 @ =FieldCallback_ReturnToEventScript2
@@ -7505,7 +6574,7 @@ _08054494:
bx r0
.align 2, 0
_0805449C: .4byte gPaletteFade
-_080544A0: .4byte sub_80505CC
+_080544A0: .4byte CB2_InitTradeAnim_InGameTrade
_080544A4: .4byte gFieldCallback
_080544A8: .4byte FieldCallback_ReturnToEventScript2
thumb_func_end sub_8054470
@@ -7554,7 +6623,7 @@ _080544F8: .4byte 0x0000083b
thumb_func_start sub_80544FC
sub_80544FC: @ 80544FC
push {lr}
- bl sub_80504CC
+ bl TradeAnimInit_LoadGfx
pop {r0}
bx r0
thumb_func_end sub_80544FC
@@ -7575,7 +6644,7 @@ sub_8054508: @ 8054508
adds r0, r5, 0
movs r1, 0xFF
bl FillWindowPixelBuffer
- ldr r2, _08054580 @ =gUnknown_2031DAC
+ ldr r2, _08054580 @ =sTradeAnimationResourcesPtr
ldr r1, [r2]
movs r6, 0x82
lsls r6, 1
@@ -7619,7 +6688,7 @@ sub_8054508: @ 8054508
pop {r0}
bx r0
.align 2, 0
-_08054580: .4byte gUnknown_2031DAC
+_08054580: .4byte sTradeAnimationResourcesPtr
_08054584: .4byte 0x00000105
thumb_func_end sub_8054508
@@ -7750,7 +6819,7 @@ c3_0805465C: @ 805465C
ldrsh r4, [r7, r0]
cmp r4, 0
bne _080546BC
- ldr r1, _0805472C @ =gUnknown_2031DAC
+ ldr r1, _0805472C @ =sTradeAnimationResourcesPtr
ldr r3, [r1]
ldr r5, _08054730 @ =0x0000010b
adds r2, r3, r5
@@ -7781,7 +6850,7 @@ c3_0805465C: @ 805465C
movs r1, 0x13
bl SetGpuReg
_080546BC:
- ldr r4, _0805472C @ =gUnknown_2031DAC
+ ldr r4, _0805472C @ =sTradeAnimationResourcesPtr
ldr r2, [r4]
ldr r5, _08054730 @ =0x0000010b
mov r8, r5
@@ -7835,7 +6904,7 @@ _0805471E:
bx r0
.align 2, 0
_08054728: .4byte gTasks+0x8
-_0805472C: .4byte gUnknown_2031DAC
+_0805472C: .4byte sTradeAnimationResourcesPtr
_08054730: .4byte 0x0000010b
thumb_func_end c3_0805465C
@@ -7854,7 +6923,7 @@ sub_8054734: @ 8054734
ldrsh r0, [r6, r1]
cmp r0, 0
bne _08054774
- ldr r1, _080547EC @ =gUnknown_2031DAC
+ ldr r1, _080547EC @ =sTradeAnimationResourcesPtr
ldr r0, [r1]
ldr r3, _080547F0 @ =0x00000109
adds r2, r0, r3
@@ -7872,7 +6941,7 @@ sub_8054734: @ 8054734
movs r1, 0x13
bl SetGpuReg
_08054774:
- ldr r5, _080547EC @ =gUnknown_2031DAC
+ ldr r5, _080547EC @ =sTradeAnimationResourcesPtr
ldr r0, [r5]
ldr r3, _080547F4 @ =0x0000010b
adds r1, r0, r3
@@ -7928,7 +6997,7 @@ _08054774:
b _0805480C
.align 2, 0
_080547E8: .4byte gTasks+0x8
-_080547EC: .4byte gUnknown_2031DAC
+_080547EC: .4byte sTradeAnimationResourcesPtr
_080547F0: .4byte 0x00000109
_080547F4: .4byte 0x0000010b
_080547F8: .4byte 0x0000ffff
diff --git a/data/data_83FECCC.s b/data/data_83FECCC.s
index 67964b9b9..5f4d1686a 100644
--- a/data/data_83FECCC.s
+++ b/data/data_83FECCC.s
@@ -1739,7 +1739,15 @@ gUnknown_845A788:: @ 845A788
.incbin "baserom.gba", 0x45A788, 0x60
gUnknown_845A7E8:: @ 845A7E8
- .incbin "baserom.gba", 0x45A7E8, 0x24
+ .4byte gUnknown_841718C @ Not what other player wants
+ .4byte gUnknown_84171CC @ Not an egg
+ .4byte gUnknown_84170BC @ Mon can't be traded
+ .4byte gUnknown_84170BC @ Mon can't be traded
+ .4byte gUnknown_84170FC @ Other trainer's mon can't be traded
+ .4byte gUnknown_84170E0 @ Egg can't be traded
+ .4byte gUnknown_8417130 @ Other trainer can't accept
+ .4byte gUnknown_8417164 @ Can't trade with trainer now
+ .4byte gUnknown_8417164 @ Can't trade with trainer now
gUnknown_845A80C:: @ 845A80C
.incbin "baserom.gba", 0x45A80C, 0x74
diff --git a/data/strings.s b/data/strings.s
index 5305352b7..bd5c308a5 100644
--- a/data/strings.s
+++ b/data/strings.s
@@ -1052,24 +1052,29 @@ gUnknown_84170BC:: @ 84170BC
gUnknown_84170E0:: @ 84170E0
.string "An EGG can't be traded now.$"
+ .align 2
gUnknown_84170FC:: @ 0x84170FC
.string "The other TRAINER's POKéMON\n"
.string "can't be traded now.$"
-gUnknown_841712D:: @ 0x841712D
- .string " The other TRAINER can't accept\n"
+ .align 2
+gUnknown_8417130:: @ 0x8417130
+ .string "The other TRAINER can't accept\n"
.string "that POKéMON now.$"
-gUnknown_8417161:: @ 0x8417161
- .string " You can't trade with that\n"
+ .align 2
+gUnknown_8417164:: @ 0x8417164
+ .string "You can't trade with that\n"
.string "TRAINER now.$"
-gUnknown_841718B:: @ 0x841718B
- .string " That isn't the type of POKéMON\n"
+ .align 2
+gUnknown_841718C:: @ 0x841718C
+ .string "That isn't the type of POKéMON\n"
.string "that the other TRAINER wants.$"
-gUnknown_84171C9:: @ 0x84171C9
- .string " That isn't an EGG.$"
+ .align 2
+gUnknown_84171CC:: @ 0x84171CC
+ .string "That isn't an EGG.$"
gUnknown_84171DF:: @ 0x84171DF
.string "Choose a POKéMON.$"
diff --git a/data/trade.s b/data/trade.s
index d778318a1..0102b1faf 100644
--- a/data/trade.s
+++ b/data/trade.s
@@ -261,16 +261,16 @@ gUnknown_8261EE4:: @ 8261EE4
.4byte gUnknown_841E10A, sub_804F440
.4byte gUnknown_841E112, sub_804F464
-gUnknown_8261EF4:: @ 8261EF4
- .4byte gUnknown_841E118
- .4byte gUnknown_841E145
- .4byte gUnknown_841E16B
- .4byte gUnknown_8417094
- .4byte gUnknown_841E199
- .4byte gUnknown_841E1C5
- .4byte gUnknown_84170BC
- .4byte gUnknown_84170E0
- .4byte gUnknown_84170FC
+sTradeErrorOrStatusMessagePtrs:: @ 8261EF4
+ .4byte gUnknown_841E118 @ Communication standby
+ .4byte gUnknown_841E145 @ The trade has been canceled.
+ .4byte gUnknown_841E16B @ That's your only POKéMON for battle
+ .4byte gUnknown_8417094 @ That's your only POKéMON for battle
+ .4byte gUnknown_841E199 @ Waiting for your friend to finish
+ .4byte gUnknown_841E1C5 @ Your friend wants to trade POKéMON
+ .4byte gUnknown_84170BC @ That POKéMON can't be traded now
+ .4byte gUnknown_84170E0 @ An EGG can't be traded now
+ .4byte gUnknown_84170FC @ The other TRAINER's POKéMON can't be traded now
gUnknown_8261F18:: @ 8261F18
.byte 0, 1, 2
@@ -699,8 +699,8 @@ gUnknown_826CDD4:: @ 826CDD4
gUnknown_826CDDC:: @ 826CDDC
obj_pal gUnknown_826205C, 5558
-gUnknown_826CDE4:: @ 826CDE4
- spr_template 5557, 5558, gOamData_826CD00, gSpriteAnimTable_826CD80, NULL, gSpriteAffineAnimTable_826CDC8, sub_80538BC
+sTradePokeballSpriteTemplate:: @ 826CDE4
+ spr_template 5557, 5558, gOamData_826CD00, gSpriteAnimTable_826CD80, NULL, gSpriteAffineAnimTable_826CDC8, SpriteCB_TradePokeball_Default
gOamData_826CDFC::
.4byte 0x80000500, 0x00000400
@@ -730,7 +730,7 @@ gUnknown_826CE3C:: @ 826CE3C
obj_pal gUnknown_826499C, 5555
gUnknown_826CE44:: @ 826CE44
- spr_template 5550, 5551, gOamData_826CDFC, gSpriteAnimTable_826CE0C, NULL, gSpriteAffineAnimTable_826CE28, sub_804FD24
+ spr_template 5550, 5551, gOamData_826CDFC, gSpriteAnimTable_826CE0C, NULL, gSpriteAffineAnimTable_826CE28, SpriteCB_TradeGlowCable
gOamData_826CE5C::
.4byte 0x80008000, 0x00000400
@@ -751,7 +751,7 @@ gUnknown_826CE7C:: @ 826CE7C
obj_tiles gUnknown_8264C1C, 0x0300, 5552
gUnknown_826CE84:: @ 826CE84
- spr_template 5552, 5551, gOamData_826CE5C, gSpriteAnimTable_826CE74, NULL, gDummySpriteAffineAnimTable, sub_804FD78
+ spr_template 5552, 5551, gOamData_826CE5C, gSpriteAnimTable_826CE74, NULL, gDummySpriteAffineAnimTable, SpriteCB_TradeGlowCore
gOamData_826CE9C::
.4byte 0x80008000, 0x00000400
@@ -766,8 +766,8 @@ gSpriteAnimTable_826CEAC::
gUnknown_826CEB0:: @ 826CEB0
obj_tiles gUnknown_8264E1C, 0x0100, 5554
-gUnknown_826CEB8:: @ 826CEB8
- spr_template 5554, 5555, gOamData_826CE9C, gSpriteAnimTable_826CEAC, NULL, gDummySpriteAffineAnimTable, sub_804FDB8
+sGameLinkCableEndSpriteTemplate:: @ 826CEB8
+ spr_template 5554, 5555, gOamData_826CE9C, gSpriteAnimTable_826CEAC, NULL, gDummySpriteAffineAnimTable, SpriteCB_GameLinkCableEnd_Outbound
gOamData_826CED0::
.4byte 0xc0004000, 0x00000400
diff --git a/src/trade.c b/src/trade.c
index 716b74eb5..026f77db8 100644
--- a/src/trade.c
+++ b/src/trade.c
@@ -10,6 +10,8 @@
#include "librfu.h"
#include "text_window.h"
#include "pokemon_icon.h"
+#include "pokedex.h"
+#include "mail_data.h"
#include "graphics.h"
#include "link.h"
#include "link_rfu.h"
@@ -35,7 +37,7 @@
#include "constants/songs.h"
#include "constants/moves.h"
-struct TradeResources
+struct TradeMenuResources
{
/*0x0000*/ u8 unk_0;
/*0x0001*/ u8 unk_1;
@@ -75,7 +77,7 @@ struct TradeResources
/*0x08F0*/ u16 tilemapBuffer[BG_SCREEN_SIZE / 2];
};
-struct TradeResources2 {
+struct TradeAnimationResources {
/*0x00*/ struct Pokemon mon;
/*0x64*/ u32 timer;
/*0x68*/ u32 unk_68[2];
@@ -112,23 +114,36 @@ struct TradeResources2 {
/*0xEE*/ bool8 isLinkTrade;
/*0xF0*/ u16 tradeSpecies[2];
/*0xF4*/ u16 cachedMapMusic;
- /*0xF6*/ u8 unk_F6[3];
- /*0xF9*/ u8 filler_F9;
- /*0xFA*/ u8 unk_FA;
- /*0xFB*/ u8 unk_FB;
- /*0xFC*/ u8 unk_FC;
- /*0xFD*/ u8 unk_FD;
- /*0xFE*/ u8 unk_FE;
+ /*0xF6*/ u8 unk_F6;
+ /*0xF8*/ u16 unk_F8;
+ /*0xFA*/ u16 unk_FA;
+ /*0xFC*/ u8 unk_FC[7];
+ /*0x103*/ u8 filler_103[5];
+ /*0x108*/ u8 unk_108;
+ /*0x109*/ u8 filler_109[7];
+};
+
+enum TradeStatusMsg
+{
+ TRADESTATMSG_COMMSTANDBY = 0,
+ TRADESTATMSG_CANCELED,
+ TRADESTATMSG_ONLYMON,
+ TRADESTATMSG_ONLYMON2,
+ TRADESTATMSG_WAITINGFORFRIEND,
+ TRADESTATMSG_FRIENDWANTSTOTRADE,
+ TRADESTATMSG_YOURMONCANTBETRADED,
+ TRADESTATMSG_EGGCANTBETRADED,
+ TRADESTATMSG_PARTNERMONCANTBETRADED
};
IWRAM_DATA vu16 gUnknown_3000E78;
EWRAM_DATA u8 *gUnknown_2031C90 = NULL;
EWRAM_DATA u8 *gUnknown_2031C94[14] = {};
-EWRAM_DATA u8 gUnknown_2031CCC[216] = {};
+EWRAM_DATA struct MailStruct gLinkPartnerMail[6] = {};
EWRAM_DATA u8 gUnknown_2031DA4[2] = {0};
-EWRAM_DATA struct TradeResources * gUnknown_2031DA8 = NULL;
-EWRAM_DATA struct TradeResources2 * gUnknown_2031DAC = NULL;
+EWRAM_DATA struct TradeMenuResources * sTradeMenuResourcesPtr = NULL;
+EWRAM_DATA struct TradeAnimationResources * sTradeAnimationResourcesPtr = NULL;
void sub_804C728(void);
void sub_804D4F8(void);
@@ -137,7 +152,7 @@ void sub_804D694(u8 state);
void sub_804D764(void);
u8 shedinja_maker_maybe(void);
void sub_804DFF0(void);
-void sub_804E9E4(void);
+static void RunTradeMenuCallback(void);
void sub_804EAAC(u8 a0);
void sub_804EAE4(u8 side);
u8 sub_804EE6C(u8 *str, u8 whichParty, u8 partyIdx);
@@ -148,8 +163,8 @@ void sub_804F284(u8 side);
void sub_804F3B4(void);
void sub_804F3C8(u8 a0);
void sub_804F488(u16 a0, u8 a1);
-void sub_804F4DC(void);
-void sub_804F5BC(u8 str_idx);
+static void sub_804F4DC(void);
+void PrintTradeErrorOrStatusMessage(u8 str_idx);
bool8 sub_804F610(void);
void sub_804F728(const u8 *name, u8 *a1, u8 unused);
void sub_804F748(u8 side);
@@ -157,8 +172,17 @@ void sub_804F890(u8 side);
void sub_804F964(void);
void sub_804F9D8(void);
u32 sub_804FA14(struct Pokemon * party, int partyCount, int cursorPos);
+void CB2_InitTradeAnim_LinkTrade(void);
+void sub_805049C(void);
+void sub_80504B0(void);
+void TradeAnimInit_LoadGfx(void);
+void CB2_RunTradeAnim_InGameTrade(void);
+void sub_8050968(u8 idx);
+void sub_8050DE0(void);
+void sub_8050E24(void);
+void sub_8050F14(void);
+void CB2_RunTradeAnim_LinkTrade(void);
void LoadHeldItemIcons(void);
-void sub_8050138(void);
extern const u16 gUnknown_8260C30[];
extern const u16 gUnknown_8261430[];
@@ -180,11 +204,19 @@ extern const u8 gUnknown_8261F18[];
extern const u8 gUnknown_8261EB6[];
extern const u8 gUnknown_8261EC7[];
extern const u8 gUnknown_841E09F[];
-extern const u8 *const gUnknown_8261EF4[];
+extern const u8 *const sTradeErrorOrStatusMessagePtrs[];
extern const struct SpritePalette gUnknown_8261D00;
extern const struct SpritePalette gUnknown_8261C60;
extern const struct SpriteSheet gUnknown_8261C58;
extern const u16 gTradeGlow2PaletteAnimTable[];
+extern const struct SpriteSheet gUnknown_826CDD4;
+extern const struct SpritePalette gUnknown_826CDDC;
+extern const struct BgTemplate gUnknown_826D1D4[4];
+extern const struct WindowTemplate gUnknown_826D1BC[];
+extern const u16 gUnknown_826AA5C[];
+extern const u16 gUnknown_8269A5C[];
+extern const u32 gUnknown_3379A0Bin[];
+extern const u16 gUnknown_826407C[];
void sub_804C600(void)
{
@@ -200,7 +232,7 @@ void sub_804C600(void)
LoadPalette(gTMCaseMainWindowPalette, 0xD0, 0x14);
ResetBgsAndClearDma3BusyFlags(FALSE);
InitBgsFromTemplates(0, gUnknown_8261F1C, NELEMS(gUnknown_8261F1C));
- SetBgTilemapBuffer(1, gUnknown_2031DA8->tilemapBuffer);
+ SetBgTilemapBuffer(1, sTradeMenuResourcesPtr->tilemapBuffer);
if (InitWindows(gUnknown_8261F2C))
{
DeactivateAllTextPrinters();
@@ -214,14 +246,14 @@ void sub_804C600(void)
TextWindow_SetStdFrame0_WithPal(0, 0x014, 0xC0);
TextWindow_SetUserSelectedFrame(2, 0x001, 0xE0);
LoadMonIconPalettes();
- gUnknown_2031DA8->unk_69 = 0;
- gUnknown_2031DA8->unk_6F = 0;
- gUnknown_2031DA8->unk_70 = 0;
- gUnknown_2031DA8->unk_74[0] = 0;
- gUnknown_2031DA8->unk_74[1] = 0;
- gUnknown_2031DA8->unk_7A = 0;
- gUnknown_2031DA8->unk_7B = 0;
- gUnknown_2031DA8->unk_A8 = 0;
+ sTradeMenuResourcesPtr->unk_69 = 0;
+ sTradeMenuResourcesPtr->unk_6F = 0;
+ sTradeMenuResourcesPtr->unk_70 = 0;
+ sTradeMenuResourcesPtr->unk_74[0] = 0;
+ sTradeMenuResourcesPtr->unk_74[1] = 0;
+ sTradeMenuResourcesPtr->unk_7A = 0;
+ sTradeMenuResourcesPtr->unk_7B = 0;
+ sTradeMenuResourcesPtr->unk_A8 = 0;
}
}
@@ -243,7 +275,7 @@ void sub_804C728(void)
switch (gMain.state)
{
case 0:
- gUnknown_2031DA8 = AllocZeroed(sizeof(*gUnknown_2031DA8));
+ sTradeMenuResourcesPtr = AllocZeroed(sizeof(*sTradeMenuResourcesPtr));
sub_804C600();
gUnknown_2031C90 = AllocZeroed(0xE00);
@@ -262,13 +294,13 @@ void sub_804C728(void)
CreateMon(&gEnemyParty[i], SPECIES_NONE, 0, 0x20, FALSE, 0, OT_ID_PLAYER_ID, 0);
}
- sub_804F5BC(0);
+ PrintTradeErrorOrStatusMessage(TRADESTATMSG_COMMSTANDBY);
ShowBg(0);
if (!gReceivedRemoteLinkPlayers)
{
gLinkType = 0x1122;
- gUnknown_2031DA8->unk_A8 = 0;
+ sTradeMenuResourcesPtr->unk_A8 = 0;
if (gWirelessCommType)
{
@@ -290,10 +322,10 @@ void sub_804C728(void)
}
break;
case 2:
- gUnknown_2031DA8->unk_A8++;
- if (gUnknown_2031DA8->unk_A8 > 11)
+ sTradeMenuResourcesPtr->unk_A8++;
+ if (sTradeMenuResourcesPtr->unk_A8 > 11)
{
- gUnknown_2031DA8->unk_A8 = 0;
+ sTradeMenuResourcesPtr->unk_A8 = 0;
gMain.state++;
}
break;
@@ -302,7 +334,7 @@ void sub_804C728(void)
{
if (IsLinkMaster())
{
- if (++gUnknown_2031DA8->unk_A8 > 30)
+ if (++sTradeMenuResourcesPtr->unk_A8 > 30)
{
CheckShouldAdvanceLinkState();
gMain.state++;
@@ -320,7 +352,7 @@ void sub_804C728(void)
sub_80FBB4C();
CalculatePlayerPartyCount();
gMain.state++;
- gUnknown_2031DA8->unk_A8 = 0;
+ sTradeMenuResourcesPtr->unk_A8 = 0;
if (gWirelessCommType)
{
sub_80FA484(TRUE);
@@ -354,13 +386,13 @@ void sub_804C728(void)
CalculateEnemyPartyCount();
SetGpuReg(REG_OFFSET_DISPCNT, 0);
SetGpuReg(REG_OFFSET_BLDCNT, 0);
- gUnknown_2031DA8->partyCounts[0] = gPlayerPartyCount;
- gUnknown_2031DA8->partyCounts[1] = gEnemyPartyCount;
+ sTradeMenuResourcesPtr->partyCounts[0] = gPlayerPartyCount;
+ sTradeMenuResourcesPtr->partyCounts[1] = gEnemyPartyCount;
- for (i = 0; i < gUnknown_2031DA8->partyCounts[0]; i++)
+ for (i = 0; i < sTradeMenuResourcesPtr->partyCounts[0]; i++)
{
struct Pokemon *mon = &gPlayerParty[i];
- gUnknown_2031DA8->partyIcons[0][i] = CreateMonIcon(GetMonData(mon, MON_DATA_SPECIES2),
+ sTradeMenuResourcesPtr->partyIcons[0][i] = CreateMonIcon(GetMonData(mon, MON_DATA_SPECIES2),
SpriteCB_MonIcon,
(gTradeMonSpriteCoords[i][0] * 8) + 14,
(gTradeMonSpriteCoords[i][1] * 8) - 12,
@@ -369,10 +401,10 @@ void sub_804C728(void)
TRUE);
}
- for (i = 0; i < gUnknown_2031DA8->partyCounts[1]; i++)
+ for (i = 0; i < sTradeMenuResourcesPtr->partyCounts[1]; i++)
{
struct Pokemon *mon = &gEnemyParty[i];
- gUnknown_2031DA8->partyIcons[1][i] = CreateMonIcon(GetMonData(mon, MON_DATA_SPECIES2, NULL),
+ 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,
@@ -384,11 +416,11 @@ void sub_804C728(void)
break;
case 8:
LoadHeldItemIcons();
- sub_812256C(gUnknown_2031DA8->partyCounts, gUnknown_2031DA8->partyIcons, 0);
+ sub_812256C(sTradeMenuResourcesPtr->partyCounts, sTradeMenuResourcesPtr->partyIcons, 0);
gMain.state++;
break;
case 9:
- sub_812256C(gUnknown_2031DA8->partyCounts, gUnknown_2031DA8->partyIcons, 1);
+ sub_812256C(sTradeMenuResourcesPtr->partyCounts, sTradeMenuResourcesPtr->partyIcons, 1);
gMain.state++;
break;
case 10:
@@ -398,7 +430,7 @@ void sub_804C728(void)
sub_808BEB4(gUnknown_8261ECC[0], gUnknown_2031C94[6], 0, 0, gDecompressionBuffer, 2);
sub_804F728(gUnknown_8261ECC[1], gUnknown_2031C94[8], 24);
gMain.state++;
- gUnknown_2031DA8->unk_A8 = 0;
+ sTradeMenuResourcesPtr->unk_A8 = 0;
break;
case 11:
if (sub_804F610())
@@ -445,16 +477,16 @@ void sub_804C728(void)
CreateSprite(&temp, (i * 32) + 24, 150, 1);
}
- gUnknown_2031DA8->tradeMenuCursorSpriteIdx = CreateSprite(&gUnknown_8261CB0, gTradeMonSpriteCoords[0][0] * 8 + 32, gTradeMonSpriteCoords[0][1] * 8, 2);
- gUnknown_2031DA8->tradeMenuCursorPosition = 0;
+ sTradeMenuResourcesPtr->tradeMenuCursorSpriteIdx = CreateSprite(&gUnknown_8261CB0, gTradeMonSpriteCoords[0][0] * 8 + 32, gTradeMonSpriteCoords[0][1] * 8, 2);
+ sTradeMenuResourcesPtr->tradeMenuCursorPosition = 0;
gMain.state++;
rbox_fill_rectangle(0);
break;
case 14:
sub_804F748(0);
sub_804F020(0);
- gUnknown_2031DA8->unk_0 = 0;
- gUnknown_2031DA8->unk_1 = 0;
+ sTradeMenuResourcesPtr->unk_0 = 0;
+ sTradeMenuResourcesPtr->unk_1 = 0;
sub_804D764();
gMain.state++;
PlayBGM(MUS_SLOT);
@@ -557,7 +589,7 @@ void sub_804C728(void)
"\t.4byte _0804CEB0\n"
"\t.4byte _0804CED0\n"
"_0804C7B0:\n"
- "\tldr r4, _0804C7E8 @ =gUnknown_2031DA8\n"
+ "\tldr r4, _0804C7E8 @ =sTradeMenuResourcesPtr\n"
"\tldr r0, _0804C7EC @ =0x000010f0\n"
"\tbl AllocZeroed\n"
"\tstr r0, [r4]\n"
@@ -583,7 +615,7 @@ void sub_804C728(void)
"\tadds r1, r3\n"
"\tb _0804CEC2\n"
"\t.align 2, 0\n"
- "_0804C7E8: .4byte gUnknown_2031DA8\n"
+ "_0804C7E8: .4byte sTradeMenuResourcesPtr\n"
"_0804C7EC: .4byte 0x000010f0\n"
"_0804C7F0: .4byte gUnknown_2031C90\n"
"_0804C7F4: .4byte gUnknown_2031C94\n"
@@ -613,7 +645,7 @@ void sub_804C728(void)
"\tcmp r6, 0x5\n"
"\tble _0804C80A\n"
"\tmovs r0, 0\n"
- "\tbl sub_804F5BC\n"
+ "\tbl PrintTradeErrorOrStatusMessage\n"
"\tmovs r0, 0\n"
"\tbl ShowBg\n"
"\tldr r0, _0804C86C @ =gReceivedRemoteLinkPlayers\n"
@@ -624,7 +656,7 @@ void sub_804C728(void)
"\tldr r5, _0804C874 @ =0x00001122\n"
"\tadds r0, r5, 0\n"
"\tstrh r0, [r1]\n"
- "\tldr r0, _0804C878 @ =gUnknown_2031DA8\n"
+ "\tldr r0, _0804C878 @ =sTradeMenuResourcesPtr\n"
"\tldr r0, [r0]\n"
"\tadds r0, 0xA8\n"
"\tstrb r2, [r0]\n"
@@ -642,7 +674,7 @@ void sub_804C728(void)
"_0804C86C: .4byte gReceivedRemoteLinkPlayers\n"
"_0804C870: .4byte gLinkType\n"
"_0804C874: .4byte 0x00001122\n"
- "_0804C878: .4byte gUnknown_2031DA8\n"
+ "_0804C878: .4byte sTradeMenuResourcesPtr\n"
"_0804C87C: .4byte gWirelessCommType\n"
"_0804C880:\n"
"\tbl OpenLink\n"
@@ -679,7 +711,7 @@ void sub_804C728(void)
"\t.align 2, 0\n"
"_0804C8C4: .4byte gMain\n"
"_0804C8C8:\n"
- "\tldr r2, _0804C8F0 @ =gUnknown_2031DA8\n"
+ "\tldr r2, _0804C8F0 @ =sTradeMenuResourcesPtr\n"
"\tldr r1, [r2]\n"
"\tadds r1, 0xA8\n"
"\tldrb r0, [r1]\n"
@@ -700,7 +732,7 @@ void sub_804C728(void)
"\tadds r1, r3, r2\n"
"\tb _0804CEC2\n"
"\t.align 2, 0\n"
- "_0804C8F0: .4byte gUnknown_2031DA8\n"
+ "_0804C8F0: .4byte sTradeMenuResourcesPtr\n"
"_0804C8F4:\n"
"\tbl GetLinkPlayerCount_2\n"
"\tadds r4, r0, 0\n"
@@ -715,7 +747,7 @@ void sub_804C728(void)
"\tlsls r0, 24\n"
"\tcmp r0, 0\n"
"\tbeq _0804C940\n"
- "\tldr r0, _0804C938 @ =gUnknown_2031DA8\n"
+ "\tldr r0, _0804C938 @ =sTradeMenuResourcesPtr\n"
"\tldr r1, [r0]\n"
"\tadds r1, 0xA8\n"
"\tldrb r0, [r1]\n"
@@ -734,7 +766,7 @@ void sub_804C728(void)
"\tadds r1, r3\n"
"\tb _0804CEC2\n"
"\t.align 2, 0\n"
- "_0804C938: .4byte gUnknown_2031DA8\n"
+ "_0804C938: .4byte sTradeMenuResourcesPtr\n"
"_0804C93C: .4byte gMain\n"
"_0804C940:\n"
"\tldr r1, _0804C94C @ =gMain\n"
@@ -768,7 +800,7 @@ void sub_804C728(void)
"\tadds r0, 0x1\n"
"\tmovs r2, 0\n"
"\tstrb r0, [r1]\n"
- "\tldr r0, _0804C9A8 @ =gUnknown_2031DA8\n"
+ "\tldr r0, _0804C9A8 @ =sTradeMenuResourcesPtr\n"
"\tldr r0, [r0]\n"
"\tadds r0, 0xA8\n"
"\tstrb r2, [r0]\n"
@@ -785,7 +817,7 @@ void sub_804C728(void)
"\t.align 2, 0\n"
"_0804C9A0: .4byte gReceivedRemoteLinkPlayers\n"
"_0804C9A4: .4byte gMain\n"
- "_0804C9A8: .4byte gUnknown_2031DA8\n"
+ "_0804C9A8: .4byte sTradeMenuResourcesPtr\n"
"_0804C9AC: .4byte gWirelessCommType\n"
"_0804C9B0:\n"
"\tldr r0, _0804C9E0 @ =gWirelessCommType\n"
@@ -841,7 +873,7 @@ void sub_804C728(void)
"\tmovs r0, 0x50\n"
"\tmovs r1, 0\n"
"\tbl SetGpuReg\n"
- "\tldr r2, _0804CB2C @ =gUnknown_2031DA8\n"
+ "\tldr r2, _0804CB2C @ =sTradeMenuResourcesPtr\n"
"\tldr r0, [r2]\n"
"\tldr r1, _0804CB30 @ =gPlayerPartyCount\n"
"\tldrb r1, [r1]\n"
@@ -907,7 +939,7 @@ void sub_804C728(void)
"\tblt _0804CA4A\n"
"_0804CAA8:\n"
"\tmovs r6, 0\n"
- "\tldr r1, _0804CB2C @ =gUnknown_2031DA8\n"
+ "\tldr r1, _0804CB2C @ =sTradeMenuResourcesPtr\n"
"\tldr r0, [r1]\n"
"\tadds r0, 0x37\n"
"\tldrb r0, [r0]\n"
@@ -971,7 +1003,7 @@ void sub_804C728(void)
"\tadds r1, r3\n"
"\tb _0804CEC2\n"
"\t.align 2, 0\n"
- "_0804CB2C: .4byte gUnknown_2031DA8\n"
+ "_0804CB2C: .4byte sTradeMenuResourcesPtr\n"
"_0804CB30: .4byte gPlayerPartyCount\n"
"_0804CB34: .4byte gEnemyPartyCount\n"
"_0804CB38: .4byte gTradeMonSpriteCoords\n"
@@ -982,7 +1014,7 @@ void sub_804C728(void)
"_0804CB4C: .4byte gMain\n"
"_0804CB50:\n"
"\tbl LoadHeldItemIcons\n"
- "\tldr r0, _0804CB70 @ =gUnknown_2031DA8\n"
+ "\tldr r0, _0804CB70 @ =sTradeMenuResourcesPtr\n"
"\tldr r1, [r0]\n"
"\tadds r0, r1, 0\n"
"\tadds r0, 0x36\n"
@@ -995,10 +1027,10 @@ void sub_804C728(void)
"\tadds r1, r5\n"
"\tb _0804CEC2\n"
"\t.align 2, 0\n"
- "_0804CB70: .4byte gUnknown_2031DA8\n"
+ "_0804CB70: .4byte sTradeMenuResourcesPtr\n"
"_0804CB74: .4byte gMain\n"
"_0804CB78:\n"
- "\tldr r0, _0804CB94 @ =gUnknown_2031DA8\n"
+ "\tldr r0, _0804CB94 @ =sTradeMenuResourcesPtr\n"
"\tldr r1, [r0]\n"
"\tadds r0, r1, 0\n"
"\tadds r0, 0x36\n"
@@ -1011,7 +1043,7 @@ void sub_804C728(void)
"\tadds r1, r7\n"
"\tb _0804CEC2\n"
"\t.align 2, 0\n"
- "_0804CB94: .4byte gUnknown_2031DA8\n"
+ "_0804CB94: .4byte sTradeMenuResourcesPtr\n"
"_0804CB98: .4byte gMain\n"
"_0804CB9C:\n"
"\tldr r0, _0804CC14 @ =gSaveBlock2Ptr\n"
@@ -1063,7 +1095,7 @@ void sub_804C728(void)
"\tadds r0, 0x1\n"
"\tmovs r2, 0\n"
"\tstrb r0, [r1]\n"
- "\tldr r0, _0804CC2C @ =gUnknown_2031DA8\n"
+ "\tldr r0, _0804CC2C @ =sTradeMenuResourcesPtr\n"
"\tldr r0, [r0]\n"
"\tadds r0, 0xA8\n"
"\tstrb r2, [r0]\n"
@@ -1075,7 +1107,7 @@ void sub_804C728(void)
"_0804CC20: .4byte gLinkPlayers + 8\n"
"_0804CC24: .4byte gUnknown_8261ECC\n"
"_0804CC28: .4byte gMain\n"
- "_0804CC2C: .4byte gUnknown_2031DA8\n"
+ "_0804CC2C: .4byte sTradeMenuResourcesPtr\n"
"_0804CC30:\n"
"\tbl sub_804F610\n"
"\tlsls r0, 24\n"
@@ -1255,7 +1287,7 @@ void sub_804C728(void)
"\tlsls r2, 3\n"
"\tmovs r3, 0x2\n"
"\tbl CreateSprite\n"
- "\tldr r2, _0804CDD8 @ =gUnknown_2031DA8\n"
+ "\tldr r2, _0804CDD8 @ =sTradeMenuResourcesPtr\n"
"\tldr r1, [r2]\n"
"\tadds r1, 0x34\n"
"\tmovs r3, 0\n"
@@ -1277,14 +1309,14 @@ void sub_804C728(void)
"_0804CDCC: .4byte gUnknown_8261CC8\n"
"_0804CDD0: .4byte gUnknown_8261CB0\n"
"_0804CDD4: .4byte gTradeMonSpriteCoords\n"
- "_0804CDD8: .4byte gUnknown_2031DA8\n"
+ "_0804CDD8: .4byte sTradeMenuResourcesPtr\n"
"_0804CDDC: .4byte gMain\n"
"_0804CDE0:\n"
"\tmovs r0, 0\n"
"\tbl sub_804F748\n"
"\tmovs r0, 0\n"
"\tbl sub_804F020\n"
- "\tldr r2, _0804CE14 @ =gUnknown_2031DA8\n"
+ "\tldr r2, _0804CE14 @ =sTradeMenuResourcesPtr\n"
"\tldr r0, [r2]\n"
"\tmovs r1, 0\n"
"\tstrb r1, [r0]\n"
@@ -1302,7 +1334,7 @@ void sub_804C728(void)
"\tbl PlayBGM\n"
"\tb _0804CEE6\n"
"\t.align 2, 0\n"
- "_0804CE14: .4byte gUnknown_2031DA8\n"
+ "_0804CE14: .4byte sTradeMenuResourcesPtr\n"
"_0804CE18: .4byte gMain\n"
"_0804CE1C: .4byte 0x00000111\n"
"_0804CE20:\n"
@@ -1436,7 +1468,7 @@ void sub_804CF14(void)
break;
case 1:
gMain.state++;
- gUnknown_2031DA8->unk_A8 = 0;
+ sTradeMenuResourcesPtr->unk_A8 = 0;
break;
case 2:
gMain.state++;
@@ -1461,14 +1493,14 @@ void sub_804CF14(void)
break;
case 7:
CalculateEnemyPartyCount();
- gUnknown_2031DA8->partyCounts[0] = gPlayerPartyCount;
- gUnknown_2031DA8->partyCounts[1] = gEnemyPartyCount;
+ sTradeMenuResourcesPtr->partyCounts[0] = gPlayerPartyCount;
+ sTradeMenuResourcesPtr->partyCounts[1] = gEnemyPartyCount;
ClearWindowTilemap(0);
sub_804F020(0);
sub_804F020(1);
- for (i = 0; i < gUnknown_2031DA8->partyCounts[0]; i++)
+ for (i = 0; i < sTradeMenuResourcesPtr->partyCounts[0]; i++)
{
- gUnknown_2031DA8->partyIcons[0][i] = CreateMonIcon(
+ sTradeMenuResourcesPtr->partyIcons[0][i] = CreateMonIcon(
GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL),
SpriteCB_MonIcon,
gTradeMonSpriteCoords[i][0] * 8 + 14,
@@ -1478,9 +1510,9 @@ void sub_804CF14(void)
TRUE
);
}
- for (i = 0; i < gUnknown_2031DA8->partyCounts[1]; i++)
+ for (i = 0; i < sTradeMenuResourcesPtr->partyCounts[1]; i++)
{
- gUnknown_2031DA8->partyIcons[1][i] = CreateMonIcon(
+ sTradeMenuResourcesPtr->partyIcons[1][i] = CreateMonIcon(
GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2, NULL),
SpriteCB_MonIcon,
gTradeMonSpriteCoords[i + 6][0] * 8 + 14,
@@ -1494,11 +1526,11 @@ void sub_804CF14(void)
break;
case 8:
LoadHeldItemIcons();
- sub_812256C(gUnknown_2031DA8->partyCounts, gUnknown_2031DA8->partyIcons, 0);
+ sub_812256C(sTradeMenuResourcesPtr->partyCounts, sTradeMenuResourcesPtr->partyIcons, 0);
gMain.state++;
break;
case 9:
- sub_812256C(gUnknown_2031DA8->partyCounts, gUnknown_2031DA8->partyIcons, 1);
+ sub_812256C(sTradeMenuResourcesPtr->partyCounts, sTradeMenuResourcesPtr->partyIcons, 1);
gMain.state++;
break;
case 10:
@@ -1508,7 +1540,7 @@ void sub_804CF14(void)
sub_808BEB4(gUnknown_8261ECC[0], gUnknown_2031C94[6], 0, 0, gDecompressionBuffer, 2);
sub_804F728(gUnknown_8261ECC[1], gUnknown_2031C94[8], 24);
gMain.state++;
- gUnknown_2031DA8->unk_A8 = 0;
+ sTradeMenuResourcesPtr->unk_A8 = 0;
break;
case 11:
if (sub_804F610())
@@ -1557,12 +1589,12 @@ void sub_804CF14(void)
CreateSprite(&temp, (i * 32) + 24, 150, 1);
}
- if (gUnknown_2031DA8->tradeMenuCursorPosition < 6)
- gUnknown_2031DA8->tradeMenuCursorPosition = sub_8138B20();
+ if (sTradeMenuResourcesPtr->tradeMenuCursorPosition < 6)
+ sTradeMenuResourcesPtr->tradeMenuCursorPosition = sub_8138B20();
else
- gUnknown_2031DA8->tradeMenuCursorPosition = sub_8138B20() + 6;
+ sTradeMenuResourcesPtr->tradeMenuCursorPosition = sub_8138B20() + 6;
- gUnknown_2031DA8->tradeMenuCursorSpriteIdx = CreateSprite(&gUnknown_8261CB0, gTradeMonSpriteCoords[gUnknown_2031DA8->tradeMenuCursorPosition][0] * 8 + 32, gTradeMonSpriteCoords[gUnknown_2031DA8->tradeMenuCursorPosition][1] * 8, 2);
+ sTradeMenuResourcesPtr->tradeMenuCursorSpriteIdx = CreateSprite(&gUnknown_8261CB0, gTradeMonSpriteCoords[sTradeMenuResourcesPtr->tradeMenuCursorPosition][0] * 8 + 32, gTradeMonSpriteCoords[sTradeMenuResourcesPtr->tradeMenuCursorPosition][1] * 8, 2);
gMain.state = 16;
break;
case 16:
@@ -1571,8 +1603,8 @@ void sub_804CF14(void)
break;
case 17:
sub_804D694(1);
- gUnknown_2031DA8->unk_0 = 0;
- gUnknown_2031DA8->unk_1 = 0;
+ sTradeMenuResourcesPtr->unk_0 = 0;
+ sTradeMenuResourcesPtr->unk_1 = 0;
sub_804D764();
gMain.state++;
break;
@@ -1716,7 +1748,7 @@ void sub_804CF14(void)
"\tb _0804D4B4\n"
"_0804D00C:\n"
"\tbl CalculateEnemyPartyCount\n"
- "\tldr r4, _0804D12C @ =gUnknown_2031DA8\n"
+ "\tldr r4, _0804D12C @ =sTradeMenuResourcesPtr\n"
"\tldr r0, [r4]\n"
"\tldr r1, _0804D130 @ =gPlayerPartyCount\n"
"\tldrb r1, [r1]\n"
@@ -1789,7 +1821,7 @@ void sub_804CF14(void)
"\tblt _0804D048\n"
"_0804D0A8:\n"
"\tmovs r6, 0\n"
- "\tldr r1, _0804D12C @ =gUnknown_2031DA8\n"
+ "\tldr r1, _0804D12C @ =sTradeMenuResourcesPtr\n"
"\tldr r0, [r1]\n"
"\tadds r0, 0x37\n"
"\tldrb r0, [r0]\n"
@@ -1853,7 +1885,7 @@ void sub_804CF14(void)
"\tadds r1, r3\n"
"\tb _0804D4B4\n"
"\t.align 2, 0\n"
- "_0804D12C: .4byte gUnknown_2031DA8\n"
+ "_0804D12C: .4byte sTradeMenuResourcesPtr\n"
"_0804D130: .4byte gPlayerPartyCount\n"
"_0804D134: .4byte gEnemyPartyCount\n"
"_0804D138: .4byte gTradeMonSpriteCoords\n"
@@ -1864,7 +1896,7 @@ void sub_804CF14(void)
"_0804D14C: .4byte gMain\n"
"_0804D150:\n"
"\tbl LoadHeldItemIcons\n"
- "\tldr r0, _0804D170 @ =gUnknown_2031DA8\n"
+ "\tldr r0, _0804D170 @ =sTradeMenuResourcesPtr\n"
"\tldr r1, [r0]\n"
"\tadds r0, r1, 0\n"
"\tadds r0, 0x36\n"
@@ -1877,10 +1909,10 @@ void sub_804CF14(void)
"\tadds r1, r5\n"
"\tb _0804D4B4\n"
"\t.align 2, 0\n"
- "_0804D170: .4byte gUnknown_2031DA8\n"
+ "_0804D170: .4byte sTradeMenuResourcesPtr\n"
"_0804D174: .4byte gMain\n"
"_0804D178:\n"
- "\tldr r0, _0804D194 @ =gUnknown_2031DA8\n"
+ "\tldr r0, _0804D194 @ =sTradeMenuResourcesPtr\n"
"\tldr r1, [r0]\n"
"\tadds r0, r1, 0\n"
"\tadds r0, 0x36\n"
@@ -1893,7 +1925,7 @@ void sub_804CF14(void)
"\tadds r1, r7\n"
"\tb _0804D4B4\n"
"\t.align 2, 0\n"
- "_0804D194: .4byte gUnknown_2031DA8\n"
+ "_0804D194: .4byte sTradeMenuResourcesPtr\n"
"_0804D198: .4byte gMain\n"
"_0804D19C:\n"
"\tldr r0, _0804D214 @ =gSaveBlock2Ptr\n"
@@ -1946,7 +1978,7 @@ void sub_804CF14(void)
"\tadds r0, 0x1\n"
"\tmovs r2, 0\n"
"\tstrb r0, [r1]\n"
- "\tldr r0, _0804D22C @ =gUnknown_2031DA8\n"
+ "\tldr r0, _0804D22C @ =sTradeMenuResourcesPtr\n"
"\tldr r0, [r0]\n"
"\tadds r0, 0xA8\n"
"\tstrb r2, [r0]\n"
@@ -1958,7 +1990,7 @@ void sub_804CF14(void)
"_0804D220: .4byte gLinkPlayers + 8\n"
"_0804D224: .4byte gUnknown_8261ECC\n"
"_0804D228: .4byte gMain\n"
- "_0804D22C: .4byte gUnknown_2031DA8\n"
+ "_0804D22C: .4byte sTradeMenuResourcesPtr\n"
"_0804D230:\n"
"\tbl sub_804F610\n"
"\tlsls r0, 24\n"
@@ -2132,7 +2164,7 @@ void sub_804CF14(void)
"\tadds r6, 0x1\n"
"\tcmp r6, 0x5\n"
"\tble _0804D36C\n"
- "\tldr r4, _0804D3B4 @ =gUnknown_2031DA8\n"
+ "\tldr r4, _0804D3B4 @ =sTradeMenuResourcesPtr\n"
"\tldr r0, [r4]\n"
"\tadds r0, 0x35\n"
"\tldrb r0, [r0]\n"
@@ -2143,7 +2175,7 @@ void sub_804CF14(void)
"\tb _0804D3C0\n"
"\t.align 2, 0\n"
"_0804D3B0: .4byte gUnknown_8261CC8\n"
- "_0804D3B4: .4byte gUnknown_2031DA8\n"
+ "_0804D3B4: .4byte sTradeMenuResourcesPtr\n"
"_0804D3B8:\n"
"\tbl sub_8138B20\n"
"\tldr r1, [r4]\n"
@@ -2153,7 +2185,7 @@ void sub_804CF14(void)
"\tstrb r0, [r1]\n"
"\tldr r0, _0804D404 @ =gUnknown_8261CB0\n"
"\tldr r3, _0804D408 @ =gTradeMonSpriteCoords\n"
- "\tldr r4, _0804D40C @ =gUnknown_2031DA8\n"
+ "\tldr r4, _0804D40C @ =sTradeMenuResourcesPtr\n"
"\tldr r1, [r4]\n"
"\tadds r1, 0x35\n"
"\tldrb r2, [r1]\n"
@@ -2184,7 +2216,7 @@ void sub_804CF14(void)
"\t.align 2, 0\n"
"_0804D404: .4byte gUnknown_8261CB0\n"
"_0804D408: .4byte gTradeMonSpriteCoords\n"
- "_0804D40C: .4byte gUnknown_2031DA8\n"
+ "_0804D40C: .4byte sTradeMenuResourcesPtr\n"
"_0804D410: .4byte gMain\n"
"_0804D414:\n"
"\tmovs r0, 0\n"
@@ -2193,7 +2225,7 @@ void sub_804CF14(void)
"_0804D41C:\n"
"\tmovs r0, 0x1\n"
"\tbl sub_804D694\n"
- "\tldr r2, _0804D43C @ =gUnknown_2031DA8\n"
+ "\tldr r2, _0804D43C @ =sTradeMenuResourcesPtr\n"
"\tldr r0, [r2]\n"
"\tmovs r1, 0\n"
"\tstrb r1, [r0]\n"
@@ -2206,7 +2238,7 @@ void sub_804CF14(void)
"\tadds r1, r2\n"
"\tb _0804D4B4\n"
"\t.align 2, 0\n"
- "_0804D43C: .4byte gUnknown_2031DA8\n"
+ "_0804D43C: .4byte sTradeMenuResourcesPtr\n"
"_0804D440: .4byte gMain\n"
"_0804D444:\n"
"\tldr r2, _0804D478 @ =gPaletteFade\n"
@@ -2303,10 +2335,10 @@ void sub_804D4F8(void)
void sub_804D50C(void)
{
- if (++gUnknown_2031DA8->unk_A8 >= 16)
+ if (++sTradeMenuResourcesPtr->unk_A8 >= 16)
{
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
- gUnknown_2031DA8->unk_6F = 10;
+ sTradeMenuResourcesPtr->unk_6F = 10;
}
}
@@ -2314,16 +2346,16 @@ void sub_804D548(void)
{
if (!gPaletteFade.active)
{
- gUnknown_2031DA4[0] = gUnknown_2031DA8->tradeMenuCursorPosition;
- gUnknown_2031DA4[1] = gUnknown_2031DA8->unk_7E;
+ gUnknown_2031DA4[0] = sTradeMenuResourcesPtr->tradeMenuCursorPosition;
+ gUnknown_2031DA4[1] = sTradeMenuResourcesPtr->unk_7E;
if (gWirelessCommType != 0)
{
- gUnknown_2031DA8->unk_6F = 16;
+ sTradeMenuResourcesPtr->unk_6F = 16;
}
else
{
sub_800AA80(32);
- gUnknown_2031DA8->unk_6F = 13;
+ sTradeMenuResourcesPtr->unk_6F = 13;
}
}
}
@@ -2337,10 +2369,10 @@ void sub_804D5A4(void)
{
Free(gUnknown_2031C90);
FreeAllWindowBuffers();
- Free(gUnknown_2031DA8);
+ Free(sTradeMenuResourcesPtr);
gMain.callback1 = NULL;
DestroyWirelessStatusIndicatorSprite();
- SetMainCallback2(sub_8050138);
+ SetMainCallback2(CB2_InitTradeAnim_LinkTrade);
}
}
else
@@ -2349,21 +2381,21 @@ void sub_804D5A4(void)
{
Free(gUnknown_2031C90);
FreeAllWindowBuffers();
- Free(gUnknown_2031DA8);
+ Free(sTradeMenuResourcesPtr);
gMain.callback1 = NULL;
- SetMainCallback2(sub_8050138);
+ SetMainCallback2(CB2_InitTradeAnim_LinkTrade);
}
}
}
void sub_804D638(void)
{
- sub_804E9E4();
+ RunTradeMenuCallback();
sub_804F4DC();
sub_804EAE4(0);
sub_804EAE4(1);
- SetGpuReg(REG_OFFSET_BG2HOFS, gUnknown_2031DA8->unk_0++);
- SetGpuReg(REG_OFFSET_BG3HOFS, gUnknown_2031DA8->unk_1--);
+ SetGpuReg(REG_OFFSET_BG2HOFS, sTradeMenuResourcesPtr->unk_0++);
+ SetGpuReg(REG_OFFSET_BG3HOFS, sTradeMenuResourcesPtr->unk_1--);
RunTextPrinters_CheckPrinter0Active();
RunTasks();
AnimateSprites();
@@ -2408,26 +2440,26 @@ void sub_804D764(void)
int i;
for (i = 0; i < PARTY_SIZE; i++)
{
- if (i < gUnknown_2031DA8->partyCounts[0])
+ if (i < sTradeMenuResourcesPtr->partyCounts[0])
{
- gSprites[gUnknown_2031DA8->partyIcons[0][i]].invisible = FALSE;
- gUnknown_2031DA8->tradeMenuOptionsActive[i] = TRUE;
+ gSprites[sTradeMenuResourcesPtr->partyIcons[0][i]].invisible = FALSE;
+ sTradeMenuResourcesPtr->tradeMenuOptionsActive[i] = TRUE;
}
else
{
- gUnknown_2031DA8->tradeMenuOptionsActive[i] = FALSE;
+ sTradeMenuResourcesPtr->tradeMenuOptionsActive[i] = FALSE;
}
- if (i < gUnknown_2031DA8->partyCounts[1])
+ if (i < sTradeMenuResourcesPtr->partyCounts[1])
{
- gSprites[gUnknown_2031DA8->partyIcons[1][i]].invisible = FALSE;
- gUnknown_2031DA8->tradeMenuOptionsActive[i + 6] = TRUE;
+ gSprites[sTradeMenuResourcesPtr->partyIcons[1][i]].invisible = FALSE;
+ sTradeMenuResourcesPtr->tradeMenuOptionsActive[i + 6] = TRUE;
}
else
{
- gUnknown_2031DA8->tradeMenuOptionsActive[i + 6] = FALSE;
+ sTradeMenuResourcesPtr->tradeMenuOptionsActive[i + 6] = FALSE;
}
}
- gUnknown_2031DA8->tradeMenuOptionsActive[12] = TRUE;
+ sTradeMenuResourcesPtr->tradeMenuOptionsActive[12] = TRUE;
}
static void Trade_Memcpy(void *dest, const void *src, size_t size)
@@ -2445,24 +2477,24 @@ bool8 shedinja_maker_maybe(void)
int i;
struct Pokemon *mon;
- switch (gUnknown_2031DA8->unk_69)
+ switch (sTradeMenuResourcesPtr->unk_69)
{
case 0:
Trade_Memcpy(gBlockSendBuffer, &gPlayerParty[0], 2 * sizeof(struct Pokemon));
- gUnknown_2031DA8->unk_69++;
- gUnknown_2031DA8->unk_A8 = 0;
+ sTradeMenuResourcesPtr->unk_69++;
+ sTradeMenuResourcesPtr->unk_A8 = 0;
break;
case 1:
if (IsLinkTaskFinished())
{
if (GetBlockReceivedStatus() == 0)
{
- gUnknown_2031DA8->unk_69++;
+ sTradeMenuResourcesPtr->unk_69++;
}
else
{
ResetBlockReceivedFlags();
- gUnknown_2031DA8->unk_69++;
+ sTradeMenuResourcesPtr->unk_69++;
}
}
break;
@@ -2471,90 +2503,90 @@ bool8 shedinja_maker_maybe(void)
{
sub_800A474(1);
}
- gUnknown_2031DA8->unk_69++;
+ sTradeMenuResourcesPtr->unk_69++;
break;
case 4:
if (GetBlockReceivedStatus() == 3)
{
Trade_Memcpy(&gEnemyParty[0], gBlockRecvBuffer[id ^ 1], 2 * sizeof(struct Pokemon));
ResetBlockReceivedFlags();
- gUnknown_2031DA8->unk_69++;
+ sTradeMenuResourcesPtr->unk_69++;
}
break;
case 5:
Trade_Memcpy(gBlockSendBuffer, &gPlayerParty[2], 2 * sizeof(struct Pokemon));
- gUnknown_2031DA8->unk_69++;
+ sTradeMenuResourcesPtr->unk_69++;
break;
case 7:
if (id == 0)
{
sub_800A474(1);
}
- gUnknown_2031DA8->unk_69++;
+ sTradeMenuResourcesPtr->unk_69++;
break;
case 8:
if (GetBlockReceivedStatus() == 3)
{
Trade_Memcpy(&gEnemyParty[2], gBlockRecvBuffer[id ^ 1], 200);
ResetBlockReceivedFlags();
- gUnknown_2031DA8->unk_69++;
+ sTradeMenuResourcesPtr->unk_69++;
}
break;
case 9:
Trade_Memcpy(gBlockSendBuffer, &gPlayerParty[4], 200);
- gUnknown_2031DA8->unk_69++;
+ sTradeMenuResourcesPtr->unk_69++;
break;
case 11:
if (id == 0)
{
sub_800A474(1);
}
- gUnknown_2031DA8->unk_69++;
+ sTradeMenuResourcesPtr->unk_69++;
break;
case 12:
if (GetBlockReceivedStatus() == 3)
{
Trade_Memcpy(&gEnemyParty[4], gBlockRecvBuffer[id ^ 1], 200);
ResetBlockReceivedFlags();
- gUnknown_2031DA8->unk_69++;
+ sTradeMenuResourcesPtr->unk_69++;
}
break;
case 13:
Trade_Memcpy(gBlockSendBuffer, gSaveBlock1Ptr->mail, 220);
- gUnknown_2031DA8->unk_69++;
+ sTradeMenuResourcesPtr->unk_69++;
break;
case 15:
if (id == 0)
{
sub_800A474(3);
}
- gUnknown_2031DA8->unk_69++;
+ sTradeMenuResourcesPtr->unk_69++;
break;
case 16:
if (GetBlockReceivedStatus() == 3)
{
- Trade_Memcpy(gUnknown_2031CCC, gBlockRecvBuffer[id ^ 1], 216);
+ Trade_Memcpy(gLinkPartnerMail, gBlockRecvBuffer[id ^ 1], 216);
ResetBlockReceivedFlags();
- gUnknown_2031DA8->unk_69++;
+ sTradeMenuResourcesPtr->unk_69++;
}
break;
case 17:
Trade_Memcpy(gBlockSendBuffer, gSaveBlock1Ptr->giftRibbons, 11);
- gUnknown_2031DA8->unk_69++;
+ sTradeMenuResourcesPtr->unk_69++;
break;
case 19:
if (id == 0)
{
sub_800A474(4);
}
- gUnknown_2031DA8->unk_69++;
+ sTradeMenuResourcesPtr->unk_69++;
break;
case 20:
if (GetBlockReceivedStatus() == 3)
{
- Trade_Memcpy(gUnknown_2031DA8->unk_A9, gBlockRecvBuffer[id ^ 1], 11);
+ Trade_Memcpy(sTradeMenuResourcesPtr->unk_A9, gBlockRecvBuffer[id ^ 1], 11);
ResetBlockReceivedFlags();
- gUnknown_2031DA8->unk_69++;
+ sTradeMenuResourcesPtr->unk_69++;
}
break;
case 21:
@@ -2582,11 +2614,11 @@ bool8 shedinja_maker_maybe(void)
case 10:
case 14:
case 18:
- gUnknown_2031DA8->unk_A8++;
- if (gUnknown_2031DA8->unk_A8 > 10)
+ sTradeMenuResourcesPtr->unk_A8++;
+ if (sTradeMenuResourcesPtr->unk_A8 > 10)
{
- gUnknown_2031DA8->unk_A8 = 0;
- gUnknown_2031DA8->unk_69++;
+ sTradeMenuResourcesPtr->unk_A8 = 0;
+ sTradeMenuResourcesPtr->unk_69++;
}
break;
}
@@ -2595,7 +2627,7 @@ bool8 shedinja_maker_maybe(void)
void sub_804DBAC(void)
{
- sub_804F728(gUnknown_841E0A5, (u8 *)OBJ_VRAM0 + gUnknown_2031DA8->unk_72 * 32, 0x18);
+ sub_804F728(gUnknown_841E0A5, (u8 *)OBJ_VRAM0 + sTradeMenuResourcesPtr->unk_72 * 32, 0x18);
}
void sub_804DBD4(u8 a0, u8 a1)
@@ -2605,16 +2637,16 @@ void sub_804DBD4(u8 a0, u8 a1)
switch (gBlockRecvBuffer[0][0])
{
case 0xEEAA:
- gUnknown_2031DA8->unk_78 = 2;
+ sTradeMenuResourcesPtr->unk_78 = 2;
break;
case 0xAABB:
- gUnknown_2031DA8->unk_78 = 1;
+ sTradeMenuResourcesPtr->unk_78 = 1;
break;
case 0xBBBB:
- gUnknown_2031DA8->unk_7A = 1;
+ sTradeMenuResourcesPtr->unk_7A = 1;
break;
case 0xBBCC:
- gUnknown_2031DA8->unk_7A = 2;
+ sTradeMenuResourcesPtr->unk_7A = 2;
break;
}
ResetBlockReceivedFlag(0);
@@ -2625,17 +2657,17 @@ void sub_804DBD4(u8 a0, u8 a1)
switch (gBlockRecvBuffer[1][0])
{
case 0xEEAA:
- gUnknown_2031DA8->unk_79 = 2;
+ sTradeMenuResourcesPtr->unk_79 = 2;
break;
case 0xAABB:
- gUnknown_2031DA8->unk_7E = gBlockRecvBuffer[1][1] + 6;
- gUnknown_2031DA8->unk_79 = 1;
+ sTradeMenuResourcesPtr->unk_7E = gBlockRecvBuffer[1][1] + 6;
+ sTradeMenuResourcesPtr->unk_79 = 1;
break;
case 0xBBBB:
- gUnknown_2031DA8->unk_7B = 1;
+ sTradeMenuResourcesPtr->unk_7B = 1;
break;
case 0xBBCC:
- gUnknown_2031DA8->unk_7B = 2;
+ sTradeMenuResourcesPtr->unk_7B = 2;
break;
}
ResetBlockReceivedFlag(1);
@@ -2650,27 +2682,27 @@ void sub_804DCF4(u8 a0, u8 a1)
{
case 0xEEBB:
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
- sub_804F5BC(4);
- gUnknown_2031DA8->unk_6F = 11;
+ PrintTradeErrorOrStatusMessage(TRADESTATMSG_WAITINGFORFRIEND);
+ sTradeMenuResourcesPtr->unk_6F = 11;
break;
case 0xEECC:
- sub_804F5BC(5);
- gUnknown_2031DA8->unk_6F = 8;
+ PrintTradeErrorOrStatusMessage(TRADESTATMSG_FRIENDWANTSTOTRADE);
+ sTradeMenuResourcesPtr->unk_6F = 8;
break;
case 0xDDDD:
- gUnknown_2031DA8->unk_7E = gBlockRecvBuffer[0][1] + 6;
+ sTradeMenuResourcesPtr->unk_7E = gBlockRecvBuffer[0][1] + 6;
rbox_fill_rectangle(0);
- sub_804EAAC(gUnknown_2031DA8->tradeMenuCursorPosition);
- sub_804EAAC(gUnknown_2031DA8->unk_7E);
- gUnknown_2031DA8->unk_6F = 7;
+ sub_804EAAC(sTradeMenuResourcesPtr->tradeMenuCursorPosition);
+ sub_804EAAC(sTradeMenuResourcesPtr->unk_7E);
+ sTradeMenuResourcesPtr->unk_6F = 7;
break;
case 0xCCDD:
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
- gUnknown_2031DA8->unk_6F = 10;
+ sTradeMenuResourcesPtr->unk_6F = 10;
break;
case 0xDDEE:
- sub_804F5BC(1);
- gUnknown_2031DA8->unk_6F = 8;
+ PrintTradeErrorOrStatusMessage(TRADESTATMSG_CANCELED);
+ sTradeMenuResourcesPtr->unk_6F = 8;
}
ResetBlockReceivedFlag(0);
}
@@ -2681,68 +2713,68 @@ void sub_804DCF4(u8 a0, u8 a1)
void sub_804DDF0(void)
{
- if (gUnknown_2031DA8->unk_78 && gUnknown_2031DA8->unk_79)
+ if (sTradeMenuResourcesPtr->unk_78 && sTradeMenuResourcesPtr->unk_79)
{
- if (gUnknown_2031DA8->unk_78 == 1 && gUnknown_2031DA8->unk_79 == 1)
+ if (sTradeMenuResourcesPtr->unk_78 == 1 && sTradeMenuResourcesPtr->unk_79 == 1)
{
- gUnknown_2031DA8->unk_6F = 6;
- gUnknown_2031DA8->linkData[0] = 0xDDDD;
- gUnknown_2031DA8->linkData[1] = gUnknown_2031DA8->tradeMenuCursorPosition;
+ sTradeMenuResourcesPtr->unk_6F = 6;
+ sTradeMenuResourcesPtr->linkData[0] = 0xDDDD;
+ sTradeMenuResourcesPtr->linkData[1] = sTradeMenuResourcesPtr->tradeMenuCursorPosition;
sub_804F488(5, 0);
- gUnknown_2031DA8->unk_78 = gUnknown_2031DA8->unk_79 = 0;
+ sTradeMenuResourcesPtr->unk_78 = sTradeMenuResourcesPtr->unk_79 = 0;
}
- else if (gUnknown_2031DA8->unk_78 == 1 && gUnknown_2031DA8->unk_79 == 2)
+ else if (sTradeMenuResourcesPtr->unk_78 == 1 && sTradeMenuResourcesPtr->unk_79 == 2)
{
- sub_804F5BC(1);
- gUnknown_2031DA8->linkData[0] = 0xEECC;
- gUnknown_2031DA8->linkData[1] = 0;
+ PrintTradeErrorOrStatusMessage(TRADESTATMSG_CANCELED);
+ sTradeMenuResourcesPtr->linkData[0] = 0xEECC;
+ sTradeMenuResourcesPtr->linkData[1] = 0;
sub_804F488(5, 0);
- gUnknown_2031DA8->unk_7A = gUnknown_2031DA8->unk_7B = 0;
- gUnknown_2031DA8->unk_78 = gUnknown_2031DA8->unk_79 = 0;
- gUnknown_2031DA8->unk_6F = 8;
+ sTradeMenuResourcesPtr->unk_7A = sTradeMenuResourcesPtr->unk_7B = 0;
+ sTradeMenuResourcesPtr->unk_78 = sTradeMenuResourcesPtr->unk_79 = 0;
+ sTradeMenuResourcesPtr->unk_6F = 8;
}
- else if (gUnknown_2031DA8->unk_78 == 2 && gUnknown_2031DA8->unk_79 == 1)
+ else if (sTradeMenuResourcesPtr->unk_78 == 2 && sTradeMenuResourcesPtr->unk_79 == 1)
{
- sub_804F5BC(5);
- gUnknown_2031DA8->linkData[0] = 0xDDEE;
- gUnknown_2031DA8->linkData[1] = 0;
+ PrintTradeErrorOrStatusMessage(TRADESTATMSG_FRIENDWANTSTOTRADE);
+ sTradeMenuResourcesPtr->linkData[0] = 0xDDEE;
+ sTradeMenuResourcesPtr->linkData[1] = 0;
sub_804F488(5, 0);
- gUnknown_2031DA8->unk_7A = gUnknown_2031DA8->unk_7B = 0;
- gUnknown_2031DA8->unk_78 = gUnknown_2031DA8->unk_79 = 0;
- gUnknown_2031DA8->unk_6F = 8;
+ sTradeMenuResourcesPtr->unk_7A = sTradeMenuResourcesPtr->unk_7B = 0;
+ sTradeMenuResourcesPtr->unk_78 = sTradeMenuResourcesPtr->unk_79 = 0;
+ sTradeMenuResourcesPtr->unk_6F = 8;
}
- else if (gUnknown_2031DA8->unk_78 == 2 && gUnknown_2031DA8->unk_79 == 2)
+ else if (sTradeMenuResourcesPtr->unk_78 == 2 && sTradeMenuResourcesPtr->unk_79 == 2)
{
- gUnknown_2031DA8->linkData[0] = 0xEEBB;
- gUnknown_2031DA8->linkData[1] = 0;
+ sTradeMenuResourcesPtr->linkData[0] = 0xEEBB;
+ sTradeMenuResourcesPtr->linkData[1] = 0;
sub_804F488(5, 0);
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
- gUnknown_2031DA8->unk_78 = gUnknown_2031DA8->unk_79 = 0;
- gUnknown_2031DA8->unk_6F = 11;
+ sTradeMenuResourcesPtr->unk_78 = sTradeMenuResourcesPtr->unk_79 = 0;
+ sTradeMenuResourcesPtr->unk_6F = 11;
}
}
- if (gUnknown_2031DA8->unk_7A && gUnknown_2031DA8->unk_7B)
+ if (sTradeMenuResourcesPtr->unk_7A && sTradeMenuResourcesPtr->unk_7B)
{
- if (gUnknown_2031DA8->unk_7A == 1 && gUnknown_2031DA8->unk_7B == 1)
+ if (sTradeMenuResourcesPtr->unk_7A == 1 && sTradeMenuResourcesPtr->unk_7B == 1)
{
- gUnknown_2031DA8->linkData[0] = 0xCCDD;
- gUnknown_2031DA8->linkData[1] = 0;
+ sTradeMenuResourcesPtr->linkData[0] = 0xCCDD;
+ sTradeMenuResourcesPtr->linkData[1] = 0;
sub_804F488(5, 0);
- gUnknown_2031DA8->unk_7A = 0;
- gUnknown_2031DA8->unk_7B = 0;
- gUnknown_2031DA8->unk_6F = 9;
+ sTradeMenuResourcesPtr->unk_7A = 0;
+ sTradeMenuResourcesPtr->unk_7B = 0;
+ sTradeMenuResourcesPtr->unk_6F = 9;
}
- if (gUnknown_2031DA8->unk_7A == 2 || gUnknown_2031DA8->unk_7B == 2)
+ if (sTradeMenuResourcesPtr->unk_7A == 2 || sTradeMenuResourcesPtr->unk_7B == 2)
{
- sub_804F5BC(1);
- gUnknown_2031DA8->linkData[0] = 0xDDEE;
- gUnknown_2031DA8->linkData[1] = 0;
+ PrintTradeErrorOrStatusMessage(TRADESTATMSG_CANCELED);
+ sTradeMenuResourcesPtr->linkData[0] = 0xDDEE;
+ sTradeMenuResourcesPtr->linkData[1] = 0;
sub_804F488(5, 0);
- gUnknown_2031DA8->unk_7A = 0;
- gUnknown_2031DA8->unk_7B = 0;
- gUnknown_2031DA8->unk_6F = 8;
+ sTradeMenuResourcesPtr->unk_7A = 0;
+ sTradeMenuResourcesPtr->unk_7B = 0;
+ sTradeMenuResourcesPtr->unk_6F = 8;
}
}
}
@@ -2769,7 +2801,7 @@ u8 sub_804E028(u8 oldPosition, u8 direction)
for (i = 0; i < PARTY_SIZE; i++)
{
- if (gUnknown_2031DA8->tradeMenuOptionsActive[gUnknown_8261D08[oldPosition][direction][i]] == TRUE)
+ if (sTradeMenuResourcesPtr->tradeMenuOptionsActive[gUnknown_8261D08[oldPosition][direction][i]] == TRUE)
{
newPosition = gUnknown_8261D08[oldPosition][direction][i];
break;
@@ -2786,15 +2818,15 @@ void TradeMenuMoveCursor(u8 *tradeMenuCursorPosition, u8 direction)
if (newPosition == 12) // CANCEL
{
- StartSpriteAnim(&gSprites[gUnknown_2031DA8->tradeMenuCursorSpriteIdx], 1);
- gSprites[gUnknown_2031DA8->tradeMenuCursorSpriteIdx].pos1.x = 224;
- gSprites[gUnknown_2031DA8->tradeMenuCursorSpriteIdx].pos1.y = 160;
+ StartSpriteAnim(&gSprites[sTradeMenuResourcesPtr->tradeMenuCursorSpriteIdx], 1);
+ gSprites[sTradeMenuResourcesPtr->tradeMenuCursorSpriteIdx].pos1.x = 224;
+ gSprites[sTradeMenuResourcesPtr->tradeMenuCursorSpriteIdx].pos1.y = 160;
}
else
{
- StartSpriteAnim(&gSprites[gUnknown_2031DA8->tradeMenuCursorSpriteIdx], 0);
- gSprites[gUnknown_2031DA8->tradeMenuCursorSpriteIdx].pos1.x = gTradeMonSpriteCoords[newPosition][0] * 8 + 32;
- gSprites[gUnknown_2031DA8->tradeMenuCursorSpriteIdx].pos1.y = gTradeMonSpriteCoords[newPosition][1] * 8;
+ StartSpriteAnim(&gSprites[sTradeMenuResourcesPtr->tradeMenuCursorSpriteIdx], 0);
+ gSprites[sTradeMenuResourcesPtr->tradeMenuCursorSpriteIdx].pos1.x = gTradeMonSpriteCoords[newPosition][0] * 8 + 32;
+ gSprites[sTradeMenuResourcesPtr->tradeMenuCursorSpriteIdx].pos1.y = gTradeMonSpriteCoords[newPosition][1] * 8;
}
if (*tradeMenuCursorPosition != newPosition)
@@ -2807,18 +2839,18 @@ void TradeMenuMoveCursor(u8 *tradeMenuCursorPosition, u8 direction)
void sub_804E134(void)
{
- sub_804F5BC(0);
- gUnknown_2031DA8->unk_6F = 5;
+ PrintTradeErrorOrStatusMessage(TRADESTATMSG_COMMSTANDBY);
+ sTradeMenuResourcesPtr->unk_6F = 5;
if (GetMultiplayerId() == 1)
{
- gUnknown_2031DA8->linkData[0] = 0xAABB;
- gUnknown_2031DA8->linkData[1] = gUnknown_2031DA8->tradeMenuCursorPosition;
- SendBlock(bitmask_all_link_players_but_self(), gUnknown_2031DA8->linkData, 0x14);
+ sTradeMenuResourcesPtr->linkData[0] = 0xAABB;
+ sTradeMenuResourcesPtr->linkData[1] = sTradeMenuResourcesPtr->tradeMenuCursorPosition;
+ SendBlock(bitmask_all_link_players_but_self(), sTradeMenuResourcesPtr->linkData, 0x14);
}
else
{
- gUnknown_2031DA8->unk_78 = 1;
+ sTradeMenuResourcesPtr->unk_78 = 1;
}
}
@@ -2831,26 +2863,26 @@ void sub_804E194(void)
if (JOY_REPT(DPAD_UP))
{
- TradeMenuMoveCursor(&gUnknown_2031DA8->tradeMenuCursorPosition, 0);
+ TradeMenuMoveCursor(&sTradeMenuResourcesPtr->tradeMenuCursorPosition, 0);
}
else if (JOY_REPT(DPAD_DOWN))
{
- TradeMenuMoveCursor(&gUnknown_2031DA8->tradeMenuCursorPosition, 1);
+ TradeMenuMoveCursor(&sTradeMenuResourcesPtr->tradeMenuCursorPosition, 1);
}
else if (JOY_REPT(DPAD_LEFT))
{
- TradeMenuMoveCursor(&gUnknown_2031DA8->tradeMenuCursorPosition, 2);
+ TradeMenuMoveCursor(&sTradeMenuResourcesPtr->tradeMenuCursorPosition, 2);
}
else if (JOY_REPT(DPAD_RIGHT))
{
- TradeMenuMoveCursor(&gUnknown_2031DA8->tradeMenuCursorPosition, 3);
+ TradeMenuMoveCursor(&sTradeMenuResourcesPtr->tradeMenuCursorPosition, 3);
}
if (JOY_NEW(A_BUTTON))
{
PlaySE(SE_SELECT);
- if (gUnknown_2031DA8->tradeMenuCursorPosition < 6) // PlayerParty
+ if (sTradeMenuResourcesPtr->tradeMenuCursorPosition < 6) // PlayerParty
{
DrawTextBorderOuter(1, 1, 14);
FillWindowPixelBuffer(1, PIXEL_FILL(1));
@@ -2858,34 +2890,34 @@ void sub_804E194(void)
Menu_InitCursor(1, 3, 0, 0, 16, 2, 0);
PutWindowTilemap(1);
CopyWindowToVram(1, 3);
- gUnknown_2031DA8->unk_6F = 1;
+ sTradeMenuResourcesPtr->unk_6F = 1;
}
- else if (gUnknown_2031DA8->tradeMenuCursorPosition < 12)
+ else if (sTradeMenuResourcesPtr->tradeMenuCursorPosition < 12)
{
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
- gUnknown_2031DA8->unk_6F = 2;
+ sTradeMenuResourcesPtr->unk_6F = 2;
}
- else if (gUnknown_2031DA8->tradeMenuCursorPosition == 12)
+ else if (sTradeMenuResourcesPtr->tradeMenuCursorPosition == 12)
{
CreateYesNoMenu(&gUnknown_8261FC4, 3, 0, 2, 0x001, 14, 0);
- gUnknown_2031DA8->unk_6F = 4;
- sub_804F728(gUnknown_8261ECC[4], (void *)OBJ_VRAM0 + gUnknown_2031DA8->unk_72 * 32, 24);
+ sTradeMenuResourcesPtr->unk_6F = 4;
+ sub_804F728(gUnknown_8261ECC[4], (void *)OBJ_VRAM0 + sTradeMenuResourcesPtr->unk_72 * 32, 24);
}
}
if (JOY_NEW(R_BUTTON))
{
for (i = 0; i < 10; i++)
- gUnknown_2031DA8->linkData[i] = i;
- SendBlock(bitmask_all_link_players_but_self(), gUnknown_2031DA8->linkData, 20);
+ sTradeMenuResourcesPtr->linkData[i] = i;
+ SendBlock(bitmask_all_link_players_but_self(), sTradeMenuResourcesPtr->linkData, 20);
}
}
void sub_804E330(void)
{
sub_804F3B4();
- gUnknown_2031DA8->unk_6F = 0;
- gSprites[gUnknown_2031DA8->tradeMenuCursorSpriteIdx].invisible = FALSE;
- sub_804F728(gUnknown_8261ECC[1], (void *)OBJ_VRAM0 + gUnknown_2031DA8->unk_72 * 32, 24);
+ sTradeMenuResourcesPtr->unk_6F = 0;
+ gSprites[sTradeMenuResourcesPtr->tradeMenuCursorSpriteIdx].invisible = FALSE;
+ sub_804F728(gUnknown_8261ECC[1], (void *)OBJ_VRAM0 + sTradeMenuResourcesPtr->unk_72 * 32, 24);
}
void sub_804E388(void)
@@ -2900,28 +2932,28 @@ void sub_804E388(void)
break;
case 0:
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
- gUnknown_2031DA8->unk_6F = 2;
+ sTradeMenuResourcesPtr->unk_6F = 2;
break;
case 1:
- switch (sub_804FA14(gPlayerParty, gPlayerPartyCount, gUnknown_2031DA8->tradeMenuCursorPosition))
+ switch (sub_804FA14(gPlayerParty, gPlayerPartyCount, sTradeMenuResourcesPtr->tradeMenuCursorPosition))
{
case 0:
sub_804E134();
- gSprites[gUnknown_2031DA8->tradeMenuCursorSpriteIdx].invisible = TRUE;
+ gSprites[sTradeMenuResourcesPtr->tradeMenuCursorSpriteIdx].invisible = TRUE;
break;
case 1:
sub_804F488(3, 3);
- gUnknown_2031DA8->unk_6F = 8;
+ sTradeMenuResourcesPtr->unk_6F = 8;
break;
case 2:
case 4:
sub_804F488(3, 6);
- gUnknown_2031DA8->unk_6F = 8;
+ sTradeMenuResourcesPtr->unk_6F = 8;
break;
case 3:
case 5:
sub_804F488(3, 7);
- gUnknown_2031DA8->unk_6F = 8;
+ sTradeMenuResourcesPtr->unk_6F = 8;
break;
}
break;
@@ -2941,10 +2973,10 @@ void sub_804E494(void)
{
if (!gPaletteFade.active)
{
- if (gUnknown_2031DA8->tradeMenuCursorPosition < 6)
- ShowPokemonSummaryScreen(gPlayerParty, gUnknown_2031DA8->tradeMenuCursorPosition, gUnknown_2031DA8->partyCounts[0] - 1, sub_804CF14, 4);
+ if (sTradeMenuResourcesPtr->tradeMenuCursorPosition < 6)
+ ShowPokemonSummaryScreen(gPlayerParty, sTradeMenuResourcesPtr->tradeMenuCursorPosition, sTradeMenuResourcesPtr->partyCounts[0] - 1, sub_804CF14, 4);
else
- ShowPokemonSummaryScreen(gEnemyParty, gUnknown_2031DA8->tradeMenuCursorPosition - 6, gUnknown_2031DA8->partyCounts[1] - 1, sub_804CF14, 4);
+ ShowPokemonSummaryScreen(gEnemyParty, sTradeMenuResourcesPtr->tradeMenuCursorPosition - 6, sTradeMenuResourcesPtr->partyCounts[1] - 1, sub_804CF14, 4);
FreeAllWindowBuffers();
}
}
@@ -2959,8 +2991,8 @@ u8 sub_804E50C(u8 *a0, u8 a1, u8 a2)
if (a2 != i)
r4 += a0[i];
}
- species = GetMonData(&gEnemyParty[gUnknown_2031DA8->unk_7E % 6], MON_DATA_SPECIES);
- if ((species == SPECIES_DEOXYS || species == SPECIES_MEW) && !GetMonData(&gEnemyParty[gUnknown_2031DA8->unk_7E % 6], MON_DATA_OBEDIENCE))
+ species = GetMonData(&gEnemyParty[sTradeMenuResourcesPtr->unk_7E % 6], MON_DATA_SPECIES);
+ if ((species == SPECIES_DEOXYS || species == SPECIES_MEW) && !GetMonData(&gEnemyParty[sTradeMenuResourcesPtr->unk_7E % 6], MON_DATA_OBEDIENCE))
return 2;
if (r4 != 0)
r4 = 1;
@@ -2972,29 +3004,29 @@ void sub_804E5A0(void)
int i;
u8 arr[12];
- for (i = 0; i < gUnknown_2031DA8->partyCounts[0]; i++)
+ for (i = 0; i < sTradeMenuResourcesPtr->partyCounts[0]; i++)
{
- arr[i] = gUnknown_2031DA8->unk_45[0][i];
+ arr[i] = sTradeMenuResourcesPtr->unk_45[0][i];
}
- switch (sub_804E50C(arr, gUnknown_2031DA8->partyCounts[0], gUnknown_2031DA8->tradeMenuCursorPosition))
+ switch (sub_804E50C(arr, sTradeMenuResourcesPtr->partyCounts[0], sTradeMenuResourcesPtr->tradeMenuCursorPosition))
{
case 0:
sub_804F488(3, 3);
- gUnknown_2031DA8->linkData[0] = 0xBBCC;
+ sTradeMenuResourcesPtr->linkData[0] = 0xBBCC;
sub_804F488(0xB4, 0);
break;
case 1:
sub_804F488(3, 1);
- gUnknown_2031DA8->linkData[0] = 0xBBBB;
+ sTradeMenuResourcesPtr->linkData[0] = 0xBBBB;
if (IsLinkTaskFinished())
{
- SendBlock(bitmask_all_link_players_but_self(), gUnknown_2031DA8->linkData, 20);
+ SendBlock(bitmask_all_link_players_but_self(), sTradeMenuResourcesPtr->linkData, 20);
}
break;
case 2:
sub_804F488(3, 8);
- gUnknown_2031DA8->linkData[0] = 0xBBCC;
+ sTradeMenuResourcesPtr->linkData[0] = 0xBBCC;
sub_804F488(0xB4, 0);
break;
}
@@ -3006,7 +3038,7 @@ void sub_804E674(void)
{
case 0:
sub_804E5A0();
- gUnknown_2031DA8->unk_6F = 100;
+ sTradeMenuResourcesPtr->unk_6F = 100;
PutWindowTilemap(17);
break;
case 1:
@@ -3014,10 +3046,10 @@ void sub_804E674(void)
sub_804F488(3, 1);
if (IsLinkTaskFinished())
{
- gUnknown_2031DA8->linkData[0] = 0xBBCC;
- SendBlock(bitmask_all_link_players_but_self(), gUnknown_2031DA8->linkData, 20);
+ sTradeMenuResourcesPtr->linkData[0] = 0xBBCC;
+ SendBlock(bitmask_all_link_players_but_self(), sTradeMenuResourcesPtr->linkData, 20);
}
- gUnknown_2031DA8->unk_6F = 100;
+ sTradeMenuResourcesPtr->unk_6F = 100;
PutWindowTilemap(17);
break;
}
@@ -3027,7 +3059,7 @@ void sub_804E6FC(void)
{
int i;
- for (i = 0; i < gUnknown_2031DA8->partyCounts[1] - 4; i++)
+ for (i = 0; i < sTradeMenuResourcesPtr->partyCounts[1] - 4; i++)
{
PutWindowTilemap(i + 12);
CopyWindowToVram(i + 12, 1);
@@ -3039,12 +3071,12 @@ void sub_804E744(void)
switch (Menu_ProcessInputNoWrapClearOnChoose())
{
case 0:
- sub_804F5BC(4);
- gUnknown_2031DA8->linkData[0] = 0xEEAA;
- gUnknown_2031DA8->linkData[1] = 0;
+ PrintTradeErrorOrStatusMessage(TRADESTATMSG_WAITINGFORFRIEND);
+ sTradeMenuResourcesPtr->linkData[0] = 0xEEAA;
+ sTradeMenuResourcesPtr->linkData[1] = 0;
sub_804F488(5, 0);
- gSprites[gUnknown_2031DA8->tradeMenuCursorSpriteIdx].invisible = TRUE;
- gUnknown_2031DA8->unk_6F = 100;
+ gSprites[sTradeMenuResourcesPtr->tradeMenuCursorSpriteIdx].invisible = TRUE;
+ sTradeMenuResourcesPtr->unk_6F = 100;
sub_804E6FC();
break;
case 1:
@@ -3060,30 +3092,30 @@ void sub_804E7C8(void)
if (GetMultiplayerId() == 0)
{
rbox_fill_rectangle(0);
- sub_804EAAC(gUnknown_2031DA8->tradeMenuCursorPosition);
- sub_804EAAC(gUnknown_2031DA8->unk_7E);
+ sub_804EAAC(sTradeMenuResourcesPtr->tradeMenuCursorPosition);
+ sub_804EAAC(sTradeMenuResourcesPtr->unk_7E);
}
- gUnknown_2031DA8->unk_6F = 7;
+ sTradeMenuResourcesPtr->unk_6F = 7;
}
void sub_804E804(void)
{
- if (gUnknown_2031DA8->unk_74[0] == 5 && gUnknown_2031DA8->unk_74[1] == 5)
+ if (sTradeMenuResourcesPtr->unk_74[0] == 5 && sTradeMenuResourcesPtr->unk_74[1] == 5)
{
sub_804DBAC();
- gUnknown_2031DA8->unk_6F = 14;
+ sTradeMenuResourcesPtr->unk_6F = 14;
}
}
void sub_804E830(void)
{
- gUnknown_2031DA8->unk_A8++;
+ sTradeMenuResourcesPtr->unk_A8++;
- if (gUnknown_2031DA8->unk_A8 > 120)
+ if (sTradeMenuResourcesPtr->unk_A8 > 120)
{
CreateYesNoMenu(&gUnknown_8261FC4, 3, 0, 2, 1, 14, 0);
- gUnknown_2031DA8->unk_A8 = 0;
- gUnknown_2031DA8->unk_6F = 3;
+ sTradeMenuResourcesPtr->unk_A8 = 0;
+ sTradeMenuResourcesPtr->unk_6F = 3;
}
}
@@ -3105,8 +3137,8 @@ void sub_804E880(void)
sub_804F3C8(0);
sub_804F3C8(1);
- gUnknown_2031DA8->unk_6F = 0;
- gSprites[gUnknown_2031DA8->tradeMenuCursorSpriteIdx].invisible = FALSE;
+ sTradeMenuResourcesPtr->unk_6F = 0;
+ gSprites[sTradeMenuResourcesPtr->tradeMenuCursorSpriteIdx].invisible = FALSE;
}
}
@@ -3123,7 +3155,7 @@ void sub_804E908(void)
sub_800AA80(12);
}
- gUnknown_2031DA8->unk_6F = 12;
+ sTradeMenuResourcesPtr->unk_6F = 12;
}
}
@@ -3134,7 +3166,7 @@ void sub_804E944(void)
if (IsLinkTaskFinished())
{
Free(gUnknown_2031C90);
- Free(gUnknown_2031DA8);
+ Free(sTradeMenuResourcesPtr);
FreeAllWindowBuffers();
DestroyWirelessStatusIndicatorSprite();
SetMainCallback2(c2_8056854);
@@ -3145,7 +3177,7 @@ void sub_804E944(void)
if (!gReceivedRemoteLinkPlayers)
{
Free(gUnknown_2031C90);
- Free(gUnknown_2031DA8);
+ Free(sTradeMenuResourcesPtr);
FreeAllWindowBuffers();
SetMainCallback2(c2_8056854);
}
@@ -3157,13 +3189,13 @@ void sub_804E9C0(void)
if (!sub_80FA484(FALSE))
{
sub_800AB9C();
- gUnknown_2031DA8->unk_6F = 13;
+ sTradeMenuResourcesPtr->unk_6F = 13;
}
}
-void sub_804E9E4(void)
+static void RunTradeMenuCallback(void)
{
- switch (gUnknown_2031DA8->unk_6F)
+ switch (sTradeMenuResourcesPtr->unk_6F)
{
case 0:
sub_804E194();
@@ -3220,10 +3252,10 @@ void sub_804EAAC(u8 a0)
{
u8 whichParty = a0 / PARTY_SIZE;
- if (gUnknown_2031DA8->unk_74[whichParty] == 0)
+ if (sTradeMenuResourcesPtr->unk_74[whichParty] == 0)
{
- gUnknown_2031DA8->unk_74[whichParty] = 1;
- gUnknown_2031DA8->unk_76[whichParty] = a0;
+ sTradeMenuResourcesPtr->unk_74[whichParty] = 1;
+ sTradeMenuResourcesPtr->unk_76[whichParty] = a0;
}
}
@@ -3235,20 +3267,20 @@ void sub_804EAE4(u8 a0)
u8 i;
u8 partyIdx;
u8 whichParty;
- u8 monIdx = gUnknown_2031DA8->unk_76[a0];
+ u8 monIdx = sTradeMenuResourcesPtr->unk_76[a0];
whichParty = 1;
- if (gUnknown_2031DA8->unk_76[a0] < PARTY_SIZE)
+ if (sTradeMenuResourcesPtr->unk_76[a0] < PARTY_SIZE)
whichParty = 0;
partyIdx = monIdx % PARTY_SIZE;
nameStringWidth = 0;
- switch (gUnknown_2031DA8->unk_74[a0])
+ switch (sTradeMenuResourcesPtr->unk_74[a0])
{
case 1:
- for (i = 0; i < gUnknown_2031DA8->partyCounts[a0]; i++)
+ for (i = 0; i < sTradeMenuResourcesPtr->partyCounts[a0]; i++)
{
- gSprites[gUnknown_2031DA8->partyIcons[0][i + (whichParty * PARTY_SIZE)]].invisible = TRUE;
+ gSprites[sTradeMenuResourcesPtr->partyIcons[0][i + (whichParty * PARTY_SIZE)]].invisible = TRUE;
}
for (i = 0; i < 6; i++)
@@ -3256,13 +3288,13 @@ void sub_804EAE4(u8 a0)
ClearWindowTilemap(i + (a0 * 6 + 2));
}
- gSprites[gUnknown_2031DA8->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]].invisible = FALSE;
- gSprites[gUnknown_2031DA8->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]].data[0] = 20;
- gSprites[gUnknown_2031DA8->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]].data[2] = (gTradeMonSpriteCoords[whichParty * PARTY_SIZE][0] + gTradeMonSpriteCoords[whichParty * PARTY_SIZE + 1][0]) / 2 * 8 + 14;
- gSprites[gUnknown_2031DA8->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]].data[4] = (gTradeMonSpriteCoords[whichParty * PARTY_SIZE][1] * 8) - 12;
- StoreSpriteCallbackInData6(&gSprites[gUnknown_2031DA8->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]], SpriteCB_MonIcon);
- gUnknown_2031DA8->unk_74[a0]++;
- sub_8075490(&gSprites[gUnknown_2031DA8->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]]);
+ 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;
+ 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);
CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(0);
@@ -3271,16 +3303,16 @@ void sub_804EAE4(u8 a0)
sub_804F3B4();
break;
case 2:
- if (gSprites[gUnknown_2031DA8->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]].callback == SpriteCB_MonIcon)
- gUnknown_2031DA8->unk_74[a0] = 3;
+ if (gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]].callback == SpriteCB_MonIcon)
+ sTradeMenuResourcesPtr->unk_74[a0] = 3;
break;
case 3:
CopyToBgTilemapBufferRect_ChangePalette(1, gTradeMovesBoxTilemap, whichParty * 15, 0, 15, 17, 0);
CopyBgTilemapBufferToVram(1);
- gSprites[gUnknown_2031DA8->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]].pos1.x = (gTradeMonSpriteCoords[whichParty * PARTY_SIZE][0] + gTradeMonSpriteCoords[whichParty * PARTY_SIZE + 1][0]) / 2 * 8 + 14;
- gSprites[gUnknown_2031DA8->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]].pos1.y = (gTradeMonSpriteCoords[whichParty * PARTY_SIZE][1] * 8) - 12;
- gSprites[gUnknown_2031DA8->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]].pos2.x = 0;
- gSprites[gUnknown_2031DA8->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]].pos2.y = 0;
+ 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)]].pos2.x = 0;
+ gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]].pos2.y = 0;
nameStringWidth = sub_804EE6C(nickname, whichParty, partyIdx);
AddTextPrinterParameterized3((a0 * 2) + 14, 0, (80 - nameStringWidth) / 2, 4, gUnknown_8261F18, 0, nickname);
sub_804EED4(movesString, whichParty, partyIdx);
@@ -3289,11 +3321,11 @@ void sub_804EAE4(u8 a0)
CopyWindowToVram((a0 * 2) + 14, 3);
PutWindowTilemap((a0 * 2) + 15);
CopyWindowToVram((a0 * 2) + 15, 3);
- gUnknown_2031DA8->unk_74[a0]++;
+ sTradeMenuResourcesPtr->unk_74[a0]++;
break;
case 4:
sub_804F08C(a0, partyIdx, gUnknown_8262055[a0][0] + 4, gUnknown_8262055[a0][1] + 1, gUnknown_8262055[a0][0], gUnknown_8262055[a0][1]);
- gUnknown_2031DA8->unk_74[a0]++;
+ sTradeMenuResourcesPtr->unk_74[a0]++;
break;
}
}
@@ -3314,7 +3346,7 @@ void sub_804EED4(u8 *a0, u8 a1, u8 a2)
u16 moves[MAX_MON_MOVES];
u16 i;
- if (!gUnknown_2031DA8->unk_51[a1][a2])
+ if (!sTradeMenuResourcesPtr->unk_51[a1][a2])
{
for (i = 0; i < MAX_MON_MOVES; i++)
{
@@ -3365,7 +3397,7 @@ void sub_804F020(u8 whichParty)
u8 nickname[30];
struct Pokemon * party = whichParty == 0 ? gPlayerParty : gEnemyParty;
u8 i;
- for (i = 0; i < gUnknown_2031DA8->partyCounts[whichParty]; i++)
+ for (i = 0; i < sTradeMenuResourcesPtr->partyCounts[whichParty]; i++)
{
GetMonData(&party[i], MON_DATA_NICKNAME, buff);
StringCopy10(nickname, buff);
@@ -3388,20 +3420,20 @@ void sub_804F08C(u8 whichParty, u8 monIdx, u8 a2, u8 a3, u8 a4, u8 a5)
else
level = GetMonData(&gEnemyParty[monIdx], MON_DATA_LEVEL, NULL);
- if (gUnknown_2031DA8->unk_51[whichParty][monIdx] == 0)
+ if (sTradeMenuResourcesPtr->unk_51[whichParty][monIdx] == 0)
{
if (level / 10 != 0)
- gUnknown_2031DA8->tilemapBuffer[a2 + (a3 * 32)] = (level / 10) + 0x60;
+ sTradeMenuResourcesPtr->tilemapBuffer[a2 + (a3 * 32)] = (level / 10) + 0x60;
- gUnknown_2031DA8->tilemapBuffer[a2 + (a3 * 32) + 1] = (level % 10) + 0x70;
+ sTradeMenuResourcesPtr->tilemapBuffer[a2 + (a3 * 32) + 1] = (level % 10) + 0x70;
}
else
{
- gUnknown_2031DA8->tilemapBuffer[a2 + (a3 * 32) - 32] = gUnknown_2031DA8->tilemapBuffer[a2 + (a3 * 32) - 33];
- gUnknown_2031DA8->tilemapBuffer[a2 + (a3 * 32) - 31] = gUnknown_2031DA8->tilemapBuffer[a2 + (a3 * 32) - 36] | 0x400;
+ sTradeMenuResourcesPtr->tilemapBuffer[a2 + (a3 * 32) - 32] = sTradeMenuResourcesPtr->tilemapBuffer[a2 + (a3 * 32) - 33];
+ sTradeMenuResourcesPtr->tilemapBuffer[a2 + (a3 * 32) - 31] = sTradeMenuResourcesPtr->tilemapBuffer[a2 + (a3 * 32) - 36] | 0x400;
}
- if (gUnknown_2031DA8->unk_51[whichParty][monIdx] != 0)
+ if (sTradeMenuResourcesPtr->unk_51[whichParty][monIdx] != 0)
{
r2 = 0x480;
}
@@ -3431,7 +3463,7 @@ void sub_804F08C(u8 whichParty, u8 monIdx, u8 a2, u8 a3, u8 a4, u8 a5)
break;
}
}
- gUnknown_2031DA8->tilemapBuffer[(a3 - 1) * 32 + a2 + 1] = r2;
+ sTradeMenuResourcesPtr->tilemapBuffer[(a3 - 1) * 32 + a2 + 1] = r2;
}
#ifdef NONMATCHING
@@ -3441,7 +3473,7 @@ void sub_804F284(u8 whichParty)
s32 i;
const u8 *r5;
const u8 *r4;
- for (i = 0; i < gUnknown_2031DA8->partyCounts[whichParty]; i++)
+ for (i = 0; i < sTradeMenuResourcesPtr->partyCounts[whichParty]; i++)
{
r5 = gUnknown_8261E5A[whichParty];
r4 = gUnknown_8261E72[whichParty];
@@ -3457,7 +3489,7 @@ void sub_804F284(u8 whichParty)
"\tlsls r0, 24\n"
"\tlsrs r6, r0, 24\n"
"\tmovs r7, 0\n"
- "\tldr r0, _0804F2DC @ =gUnknown_2031DA8\n"
+ "\tldr r0, _0804F2DC @ =sTradeMenuResourcesPtr\n"
"\tldr r0, [r0]\n"
"\tadds r0, 0x36\n"
"\tadds r0, r6\n"
@@ -3485,7 +3517,7 @@ void sub_804F284(u8 whichParty)
"\tadds r5, 0x2\n"
"\tadds r4, 0x2\n"
"\tadds r7, 0x1\n"
- "\tldr r0, _0804F2DC @ =gUnknown_2031DA8\n"
+ "\tldr r0, _0804F2DC @ =sTradeMenuResourcesPtr\n"
"\tldr r0, [r0]\n"
"\tadds r0, 0x36\n"
"\tadds r0, r6\n"
@@ -3498,7 +3530,7 @@ void sub_804F284(u8 whichParty)
"\tpop {r0}\n"
"\tbx r0\n"
"\t.align 2, 0\n"
- "_0804F2DC: .4byte gUnknown_2031DA8\n"
+ "_0804F2DC: .4byte sTradeMenuResourcesPtr\n"
"_0804F2E0: .4byte gUnknown_8261E5A\n"
"_0804F2E4: .4byte gUnknown_8261E72");
}
@@ -3508,13 +3540,13 @@ void sub_804F2E8(u8 whichParty)
{
int i;
- for (i = 0; i < gUnknown_2031DA8->partyCounts[whichParty]; i++)
+ for (i = 0; i < sTradeMenuResourcesPtr->partyCounts[whichParty]; i++)
{
- gSprites[gUnknown_2031DA8->partyIcons[whichParty][i]].invisible = FALSE;
- gSprites[gUnknown_2031DA8->partyIcons[whichParty][i]].pos1.x = gTradeMonSpriteCoords[(whichParty * PARTY_SIZE) + i][0] * 8 + 14;
- gSprites[gUnknown_2031DA8->partyIcons[whichParty][i]].pos1.y = gTradeMonSpriteCoords[(whichParty * PARTY_SIZE) + i][1] * 8 - 12;
- gSprites[gUnknown_2031DA8->partyIcons[whichParty][i]].pos2.x = 0;
- gSprites[gUnknown_2031DA8->partyIcons[whichParty][i]].pos2.y = 0;
+ 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]].pos2.x = 0;
+ gSprites[sTradeMenuResourcesPtr->partyIcons[whichParty][i]].pos2.y = 0;
}
}
@@ -3531,8 +3563,8 @@ void sub_804F3C8(u8 whichParty)
sub_804F284(whichParty);
sub_804F020(whichParty);
sub_804F2E8(whichParty);
- sub_804F728(gUnknown_8261ECC[1], (void *)OBJ_VRAM0 + 32 * gUnknown_2031DA8->unk_72, 24);
- gUnknown_2031DA8->unk_74[whichParty] = 0;
+ sub_804F728(gUnknown_8261ECC[1], (void *)OBJ_VRAM0 + 32 * sTradeMenuResourcesPtr->unk_72, 24);
+ sTradeMenuResourcesPtr->unk_74[whichParty] = 0;
}
void sub_804F440(void)
@@ -3552,66 +3584,66 @@ void sub_804F488(u16 a0, u8 a1)
int i;
for (i = 0; i < 4; i++)
{
- if (!gUnknown_2031DA8->unk_8D0[i].unk_0)
+ if (!sTradeMenuResourcesPtr->unk_8D0[i].unk_0)
{
- gUnknown_2031DA8->unk_8D0[i].unk_2 = a0;
- gUnknown_2031DA8->unk_8D0[i].unk_4 = a1;
- gUnknown_2031DA8->unk_8D0[i].unk_0 = TRUE;
+ sTradeMenuResourcesPtr->unk_8D0[i].unk_2 = a0;
+ sTradeMenuResourcesPtr->unk_8D0[i].unk_4 = a1;
+ sTradeMenuResourcesPtr->unk_8D0[i].unk_0 = TRUE;
break;
}
}
}
-void sub_804F4DC(void)
+static void sub_804F4DC(void)
{
int i;
for (i = 0; i < 4; i++)
{
- if (gUnknown_2031DA8->unk_8D0[i].unk_0)
+ if (sTradeMenuResourcesPtr->unk_8D0[i].unk_0)
{
- if (gUnknown_2031DA8->unk_8D0[i].unk_2)
+ if (sTradeMenuResourcesPtr->unk_8D0[i].unk_2)
{
- gUnknown_2031DA8->unk_8D0[i].unk_2--;
+ sTradeMenuResourcesPtr->unk_8D0[i].unk_2--;
}
else
{
- switch (gUnknown_2031DA8->unk_8D0[i].unk_4)
+ switch (sTradeMenuResourcesPtr->unk_8D0[i].unk_4)
{
case 0:
- SendBlock(bitmask_all_link_players_but_self(), gUnknown_2031DA8->linkData, 20);
+ SendBlock(bitmask_all_link_players_but_self(), sTradeMenuResourcesPtr->linkData, 20);
break;
case 1:
- sub_804F5BC(0);
+ PrintTradeErrorOrStatusMessage(TRADESTATMSG_COMMSTANDBY);
break;
case 2:
- sub_804F5BC(2);
+ PrintTradeErrorOrStatusMessage(TRADESTATMSG_ONLYMON);
break;
case 3:
case 4:
case 5:
- sub_804F5BC(3);
+ PrintTradeErrorOrStatusMessage(TRADESTATMSG_ONLYMON2);
break;
case 6:
- sub_804F5BC(6);
+ PrintTradeErrorOrStatusMessage(TRADESTATMSG_YOURMONCANTBETRADED);
break;
case 7:
- sub_804F5BC(7);
+ PrintTradeErrorOrStatusMessage(TRADESTATMSG_EGGCANTBETRADED);
break;
case 8:
- sub_804F5BC(8);
+ PrintTradeErrorOrStatusMessage(TRADESTATMSG_PARTNERMONCANTBETRADED);
break;
}
- gUnknown_2031DA8->unk_8D0[i].unk_0 = FALSE;
+ sTradeMenuResourcesPtr->unk_8D0[i].unk_0 = FALSE;
}
}
}
}
-void sub_804F5BC(u8 idx)
+void PrintTradeErrorOrStatusMessage(u8 idx)
{
FillWindowPixelBuffer(0, PIXEL_FILL(1));
- AddTextPrinterParameterized(0, 3, gUnknown_8261EF4[idx], 0, 2, 0xFF, NULL);
+ AddTextPrinterParameterized(0, 3, sTradeErrorOrStatusMessagePtrs[idx], 0, 2, 0xFF, NULL);
DrawTextBorderOuter(0, 0x014, 12);
PutWindowTilemap(0);
CopyWindowToVram(0, 3);
@@ -3621,41 +3653,41 @@ bool8 sub_804F610(void)
{
struct SpriteSheet sheet;
- if (gUnknown_2031DA8->unk_A8 < 14)
+ if (sTradeMenuResourcesPtr->unk_A8 < 14)
{
- sheet.data = gUnknown_2031C94[gUnknown_2031DA8->unk_A8];
+ sheet.data = gUnknown_2031C94[sTradeMenuResourcesPtr->unk_A8];
sheet.size = 0x100;
- sheet.tag = 200 + gUnknown_2031DA8->unk_A8;
+ sheet.tag = 200 + sTradeMenuResourcesPtr->unk_A8;
}
- switch (gUnknown_2031DA8->unk_A8)
+ switch (sTradeMenuResourcesPtr->unk_A8)
{
case 0 ... 7:
LoadSpriteSheet(&sheet);
- gUnknown_2031DA8->unk_A8++;
+ sTradeMenuResourcesPtr->unk_A8++;
break;
case 8:
- gUnknown_2031DA8->unk_72 = LoadSpriteSheet(&sheet);
- gUnknown_2031DA8->unk_A8++;
+ sTradeMenuResourcesPtr->unk_72 = LoadSpriteSheet(&sheet);
+ sTradeMenuResourcesPtr->unk_A8++;
break;
case 9 ... 13:
LoadSpriteSheet(&sheet);
- gUnknown_2031DA8->unk_A8++;
+ sTradeMenuResourcesPtr->unk_A8++;
break;
case 14:
LoadSpritePalette(&gUnknown_8261D00);
- gUnknown_2031DA8->unk_A8++;
+ sTradeMenuResourcesPtr->unk_A8++;
break;
case 15:
LoadSpritePalette(&gUnknown_8261C60);
- gUnknown_2031DA8->unk_A8++;
+ sTradeMenuResourcesPtr->unk_A8++;
break;
case 16:
LoadSpriteSheet(&gUnknown_8261C58);
- gUnknown_2031DA8->unk_A8++;
+ sTradeMenuResourcesPtr->unk_A8++;
break;
case 17:
- gUnknown_2031DA8->unk_A8 = 0;
+ sTradeMenuResourcesPtr->unk_A8 = 0;
return TRUE;
}
@@ -3674,42 +3706,42 @@ void sub_804F748(u8 who)
switch (who)
{
case 0:
- for (i = 0; i < gUnknown_2031DA8->partyCounts[who]; i++)
+ for (i = 0; i < sTradeMenuResourcesPtr->partyCounts[who]; i++)
{
if (GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) == TRUE)
{
- gUnknown_2031DA8->unk_45[who][i] = 0;
- gUnknown_2031DA8->unk_51[who][i] = 1;
+ sTradeMenuResourcesPtr->unk_45[who][i] = 0;
+ sTradeMenuResourcesPtr->unk_51[who][i] = 1;
}
else if (GetMonData(&gPlayerParty[i], MON_DATA_HP) == 0)
{
- gUnknown_2031DA8->unk_45[who][i] = 0;
- gUnknown_2031DA8->unk_51[who][i] = 0;
+ sTradeMenuResourcesPtr->unk_45[who][i] = 0;
+ sTradeMenuResourcesPtr->unk_51[who][i] = 0;
}
else
{
- gUnknown_2031DA8->unk_45[who][i] = 1;
- gUnknown_2031DA8->unk_51[who][i] = 0;
+ sTradeMenuResourcesPtr->unk_45[who][i] = 1;
+ sTradeMenuResourcesPtr->unk_51[who][i] = 0;
}
}
break;
case 1:
- for (i = 0; i < gUnknown_2031DA8->partyCounts[who]; i++)
+ for (i = 0; i < sTradeMenuResourcesPtr->partyCounts[who]; i++)
{
if (GetMonData(&gEnemyParty[i], MON_DATA_IS_EGG) == TRUE)
{
- gUnknown_2031DA8->unk_45[who][i] = 0;
- gUnknown_2031DA8->unk_51[who][i] = 1;
+ sTradeMenuResourcesPtr->unk_45[who][i] = 0;
+ sTradeMenuResourcesPtr->unk_51[who][i] = 1;
}
else if (GetMonData(&gEnemyParty[i], MON_DATA_HP) == 0)
{
- gUnknown_2031DA8->unk_45[who][i] = 0;
- gUnknown_2031DA8->unk_51[who][i] = 0;
+ sTradeMenuResourcesPtr->unk_45[who][i] = 0;
+ sTradeMenuResourcesPtr->unk_51[who][i] = 0;
}
else
{
- gUnknown_2031DA8->unk_45[who][i] = 1;
- gUnknown_2031DA8->unk_51[who][i] = 0;
+ sTradeMenuResourcesPtr->unk_45[who][i] = 1;
+ sTradeMenuResourcesPtr->unk_51[who][i] = 0;
}
}
break;
@@ -3723,19 +3755,19 @@ void sub_804F890(u8 who)
switch (who)
{
case 0:
- for (i = 0; i < gUnknown_2031DA8->partyCounts[0]; i++)
+ for (i = 0; i < sTradeMenuResourcesPtr->partyCounts[0]; i++)
{
curHp = GetMonData(&gPlayerParty[i], MON_DATA_HP);
maxHp = GetMonData(&gPlayerParty[i], MON_DATA_MAX_HP);
- gUnknown_2031DA8->unk_5D[0][i] = GetHPBarLevel(curHp, maxHp);
+ sTradeMenuResourcesPtr->unk_5D[0][i] = GetHPBarLevel(curHp, maxHp);
}
break;
case 1:
- for (i = 0; i < gUnknown_2031DA8->partyCounts[1]; i++)
+ for (i = 0; i < sTradeMenuResourcesPtr->partyCounts[1]; i++)
{
curHp = GetMonData(&gEnemyParty[i], MON_DATA_HP);
maxHp = GetMonData(&gEnemyParty[i], MON_DATA_MAX_HP);
- gUnknown_2031DA8->unk_5D[1][i] = GetHPBarLevel(curHp, maxHp);
+ sTradeMenuResourcesPtr->unk_5D[1][i] = GetHPBarLevel(curHp, maxHp);
}
break;
}
@@ -3746,9 +3778,9 @@ void sub_804F964(void)
int i, j;
for (i = 0; i < 2; i++)
{
- for (j = 0; j < gUnknown_2031DA8->partyCounts[i]; j++)
+ for (j = 0; j < sTradeMenuResourcesPtr->partyCounts[i]; j++)
{
- MonIcon_SetAnim(&gSprites[gUnknown_2031DA8->partyIcons[i][j]], 4 - gUnknown_2031DA8->unk_5D[i][j]);
+ MonIcon_SetAnim(&gSprites[sTradeMenuResourcesPtr->partyIcons[i][j]], 4 - sTradeMenuResourcesPtr->unk_5D[i][j]);
}
}
}
@@ -3758,8 +3790,8 @@ void sub_804F9D8(void)
int i;
for (i = 0; i < 11; i++)
{
- if (gSaveBlock1Ptr->giftRibbons[i] == 0 && gUnknown_2031DA8->unk_A9[i] != 0)
- gSaveBlock1Ptr->giftRibbons[i] = gUnknown_2031DA8->unk_A9[i];
+ if (gSaveBlock1Ptr->giftRibbons[i] == 0 && sTradeMenuResourcesPtr->unk_A9[i] != 0)
+ gSaveBlock1Ptr->giftRibbons[i] = sTradeMenuResourcesPtr->unk_A9[i];
}
}
@@ -3979,16 +4011,16 @@ int sub_804FBEC(struct UnkLinkRfuStruct_02022B14Substruct a0, struct UnkLinkRfuS
return 0;
}
-int sub_804FCE0(struct UnkLinkRfuStruct_02022B14Substruct a0, u16 species, u16 a2, u8 a3)
+int Trade_CanTradeSelectedMon(struct UnkLinkRfuStruct_02022B14Substruct a0, u16 species, u16 a2, u8 a3)
{
- u8 unk = a0.unk_01_0;
+ u8 canTradeEggAndNational = a0.unk_01_0;
if (IsDeoxysOrMewUntradable(a2, a3))
{
return 1;
}
- if (unk)
+ if (canTradeEggAndNational)
{
return 0;
}
@@ -4007,7 +4039,7 @@ int sub_804FCE0(struct UnkLinkRfuStruct_02022B14Substruct a0, u16 species, u16 a
}
// Sprite callback for link cable trade glow
-void sub_804FD24(struct Sprite * sprite)
+void SpriteCB_TradeGlowCable(struct Sprite * sprite)
{
sprite->data[0]++;
if (sprite->data[0] == 10)
@@ -4018,7 +4050,7 @@ void sub_804FD24(struct Sprite * sprite)
}
// Sprite callback for wireless trade glow
-void sub_804FD48(struct Sprite * sprite)
+void SpriteCB_TradeGlowWireless(struct Sprite * sprite)
{
if (!sprite->invisible)
{
@@ -4032,7 +4064,7 @@ void sub_804FD48(struct Sprite * sprite)
}
// Palette flash for trade glow core
-void sub_804FD78(struct Sprite * sprite)
+void SpriteCB_TradeGlowCore(struct Sprite * sprite)
{
if (sprite->data[1] == 0)
{
@@ -4043,7 +4075,7 @@ void sub_804FD78(struct Sprite * sprite)
}
}
-void sub_804FDB8(struct Sprite * sprite)
+void SpriteCB_GameLinkCableEnd_Outbound(struct Sprite * sprite)
{
sprite->data[0]++;
sprite->pos2.y++;
@@ -4051,7 +4083,7 @@ void sub_804FDB8(struct Sprite * sprite)
DestroySprite(sprite);
}
-void sub_804FDDC(struct Sprite * sprite)
+void SpriteCB_GameLinkCableEnd_Inbound(struct Sprite * sprite)
{
sprite->data[0]++;
sprite->pos2.y--;
@@ -4069,10 +4101,10 @@ void sub_804FE00(struct Sprite * sprite)
}
}
-void sub_804FE24(void)
+void TradeAnim_UpdateBgAffine(void)
{
struct BgAffineDstData affine;
- DoBgAffineSet(&affine, gUnknown_2031DAC->unk_D4 * 0x100, gUnknown_2031DAC->unk_D6 * 0x100, gUnknown_2031DAC->unk_DC, gUnknown_2031DAC->unk_DE, gUnknown_2031DAC->unk_E8, gUnknown_2031DAC->unk_E8, gUnknown_2031DAC->unk_EC);
+ DoBgAffineSet(&affine, sTradeAnimationResourcesPtr->unk_D4 * 0x100, sTradeAnimationResourcesPtr->unk_D6 * 0x100, sTradeAnimationResourcesPtr->unk_DC, sTradeAnimationResourcesPtr->unk_DE, sTradeAnimationResourcesPtr->unk_E8, sTradeAnimationResourcesPtr->unk_E8, sTradeAnimationResourcesPtr->unk_EC);
SetGpuReg(REG_OFFSET_BG2PA, affine.pa);
SetGpuReg(REG_OFFSET_BG2PB, affine.pb);
SetGpuReg(REG_OFFSET_BG2PC, affine.pc);
@@ -4081,28 +4113,28 @@ void sub_804FE24(void)
SetGpuReg(REG_OFFSET_BG2Y, affine.dy);
}
-void sub_804FEB4(void)
+static void TradeAnim_UpdateBgRegs(void)
{
u16 dispcnt;
- SetGpuReg(REG_OFFSET_BG1VOFS, gUnknown_2031DAC->bg1vofs);
- SetGpuReg(REG_OFFSET_BG1HOFS, gUnknown_2031DAC->bg1hofs);
+ SetGpuReg(REG_OFFSET_BG1VOFS, sTradeAnimationResourcesPtr->bg1vofs);
+ SetGpuReg(REG_OFFSET_BG1HOFS, sTradeAnimationResourcesPtr->bg1hofs);
dispcnt = GetGpuReg(REG_OFFSET_DISPCNT);
if ((dispcnt & 7) == DISPCNT_MODE_0)
{
- SetGpuReg(REG_OFFSET_BG2VOFS, gUnknown_2031DAC->bg2vofs);
- SetGpuReg(REG_OFFSET_BG2HOFS, gUnknown_2031DAC->bg2hofs);
+ SetGpuReg(REG_OFFSET_BG2VOFS, sTradeAnimationResourcesPtr->bg2vofs);
+ SetGpuReg(REG_OFFSET_BG2HOFS, sTradeAnimationResourcesPtr->bg2hofs);
}
else
{
- sub_804FE24();
+ TradeAnim_UpdateBgAffine();
}
}
-void sub_804FF0C(void)
+static void VBlankCB_TradeAnim(void)
{
- sub_804FEB4();
+ TradeAnim_UpdateBgRegs();
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
@@ -4110,28 +4142,28 @@ void sub_804FF0C(void)
void sub_804FF24(void)
{
- gUnknown_2031DAC->unk_8A = 0;
- gUnknown_2031DAC->unk_88 = 0;
- gUnknown_2031DAC->unk_89 = 0;
+ sTradeAnimationResourcesPtr->unk_8A = 0;
+ sTradeAnimationResourcesPtr->unk_88 = 0;
+ sTradeAnimationResourcesPtr->unk_89 = 0;
}
void sub_804FF4C(void)
{
- if (gUnknown_2031DAC->unk_88 == gUnknown_2031DAC->unk_89)
- gUnknown_2031DAC->unk_8A++;
+ if (sTradeAnimationResourcesPtr->unk_88 == sTradeAnimationResourcesPtr->unk_89)
+ sTradeAnimationResourcesPtr->unk_8A++;
else
- gUnknown_2031DAC->unk_8A = 0;
+ sTradeAnimationResourcesPtr->unk_8A = 0;
- if (gUnknown_2031DAC->unk_8A > 300)
+ if (sTradeAnimationResourcesPtr->unk_8A > 300)
{
CloseLink();
SetMainCallback2(CB2_LinkError);
- gUnknown_2031DAC->unk_8A = 0;
- gUnknown_2031DAC->unk_89 = 0;
- gUnknown_2031DAC->unk_88 = 0;
+ sTradeAnimationResourcesPtr->unk_8A = 0;
+ sTradeAnimationResourcesPtr->unk_89 = 0;
+ sTradeAnimationResourcesPtr->unk_88 = 0;
}
- gUnknown_2031DAC->unk_89 = gUnknown_2031DAC->unk_88;
+ sTradeAnimationResourcesPtr->unk_89 = sTradeAnimationResourcesPtr->unk_88;
}
u32 sub_804FFC4(void)
@@ -4172,14 +4204,411 @@ void sub_804FFE4(u8 whichParty, u8 a1)
HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites[whichParty * 2 + 1], species, personality);
LoadCompressedSpritePalette(GetMonSpritePalStruct(mon));
- gUnknown_2031DAC->tradeSpecies[whichParty] = species;
- gUnknown_2031DAC->unk_68[whichParty] = personality;
+ sTradeAnimationResourcesPtr->tradeSpecies[whichParty] = species;
+ sTradeAnimationResourcesPtr->unk_68[whichParty] = personality;
break;
case 1:
SetMultiuseSpriteTemplateToPokemon(GetMonSpritePalStruct(mon)->tag, pos);
- gUnknown_2031DAC->pokePicSpriteIdxs[whichParty] = CreateSprite(&gMultiuseSpriteTemplate, 120, 60, 6);
- gSprites[gUnknown_2031DAC->pokePicSpriteIdxs[whichParty]].invisible = TRUE;
- gSprites[gUnknown_2031DAC->pokePicSpriteIdxs[whichParty]].callback = SpriteCallbackDummy;
+ sTradeAnimationResourcesPtr->pokePicSpriteIdxs[whichParty] = CreateSprite(&gMultiuseSpriteTemplate, 120, 60, 6);
+ gSprites[sTradeAnimationResourcesPtr->pokePicSpriteIdxs[whichParty]].invisible = TRUE;
+ gSprites[sTradeAnimationResourcesPtr->pokePicSpriteIdxs[whichParty]].callback = SpriteCallbackDummy;
+ break;
+ }
+}
+
+void CB2_InitTradeAnim_LinkTrade(void)
+{
+ switch (gMain.state)
+ {
+ case 0:
+ if (!gReceivedRemoteLinkPlayers)
+ {
+ gLinkType = 0x1144;
+ CloseLink();
+ }
+ sTradeAnimationResourcesPtr = AllocZeroed(sizeof(struct TradeAnimationResources));
+ AllocateMonSpritesGfx();
+ ResetTasks();
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ SetVBlankCallback(VBlankCB_TradeAnim);
+ TradeAnimInit_LoadGfx();
+ sub_804FF24();
+ gMain.state++;
+ sTradeAnimationResourcesPtr->unk_8C = 0;
+ sTradeAnimationResourcesPtr->state = 0;
+ sTradeAnimationResourcesPtr->isLinkTrade = TRUE;
+ sTradeAnimationResourcesPtr->unk_D4 = 64;
+ sTradeAnimationResourcesPtr->unk_D6 = 64;
+ sTradeAnimationResourcesPtr->unk_D8 = 0;
+ sTradeAnimationResourcesPtr->unk_DA = 0;
+ sTradeAnimationResourcesPtr->unk_DC = 120;
+ sTradeAnimationResourcesPtr->unk_DE = 80;
+ sTradeAnimationResourcesPtr->unk_E8 = 256;
+ sTradeAnimationResourcesPtr->unk_EC = 0;
+ break;
+ case 1:
+ if (!gReceivedRemoteLinkPlayers)
+ {
+ sTradeAnimationResourcesPtr->unk_108 = TRUE;
+ OpenLink();
+ gMain.state++;
+ sTradeAnimationResourcesPtr->timer = 0;
+ }
+ else
+ {
+ gMain.state = 4;
+ }
+ break;
+ case 2:
+ sTradeAnimationResourcesPtr->timer++;
+ if (sTradeAnimationResourcesPtr->timer > 60)
+ {
+ sTradeAnimationResourcesPtr->timer = 0;
+ gMain.state++;
+ }
+ break;
+ case 3:
+ if (IsLinkMaster())
+ {
+ if (GetLinkPlayerCount_2() >= GetSavedPlayerCount())
+ {
+ sTradeAnimationResourcesPtr->timer++;
+ if (sTradeAnimationResourcesPtr->timer > 30)
+ {
+ CheckShouldAdvanceLinkState();
+ gMain.state++;
+ }
+ }
+ else
+ {
+ sub_804FF4C();
+ }
+ }
+ else
+ {
+ gMain.state++;
+ }
+ break;
+ case 4:
+ sub_804FF4C();
+ if (gReceivedRemoteLinkPlayers == 1 && IsLinkPlayerDataExchangeComplete() == 1)
+ {
+ gMain.state++;
+ }
break;
+ case 5:
+ sTradeAnimationResourcesPtr->unk_72 = 0;
+ sTradeAnimationResourcesPtr->unk_73 = 0;
+ sTradeAnimationResourcesPtr->unk_93 = 0;
+ sub_804FFE4(0, 0);
+ gMain.state++;
+ break;
+ case 6:
+ sub_804FFE4(0, 1);
+ gMain.state++;
+ break;
+ case 7:
+ sub_804FFE4(1, 0);
+ gMain.state++;
+ break;
+ case 8:
+ sub_804FFE4(1, 1);
+ sub_80504B0();
+ gMain.state++;
+ break;
+ case 9:
+ sub_8050DE0();
+ LoadSpriteSheet(&gUnknown_826CDD4);
+ LoadSpritePalette(&gUnknown_826CDDC);
+ gMain.state++;
+ break;
+ case 10:
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK);
+ ShowBg(0);
+ sTradeAnimationResourcesPtr->unk_F8 = GetMonData(&gPlayerParty[gUnknown_2031DA4[0]], MON_DATA_SPECIES2);
+ sTradeAnimationResourcesPtr->unk_FA = GetMonData(&gEnemyParty[gUnknown_2031DA4[1] % 6], MON_DATA_SPECIES2);
+ memcpy(sTradeAnimationResourcesPtr->unk_FC, gLinkPlayers[GetMultiplayerId() ^ 1].name, 7);
+ gMain.state++;
+ break;
+ case 11:
+ sub_805049C();
+ sub_8050E24();
+ gMain.state++;
+ break;
+ case 12:
+ if (!gPaletteFade.active)
+ {
+ if (gWirelessCommType != 0)
+ {
+ LoadWirelessStatusIndicatorSpriteGfx();
+ CreateWirelessStatusIndicatorSprite(0, 0);
+ }
+ SetMainCallback2(CB2_RunTradeAnim_LinkTrade);
+ }
+ break;
+ }
+ RunTasks();
+ RunTextPrinters();
+ AnimateSprites();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+}
+
+void sub_805049C(void)
+{
+ sub_8050968(5);
+ sub_8050968(0);
+}
+
+void sub_80504B0(void)
+{
+ FillWindowPixelBuffer(0, PIXEL_FILL(15));
+ PutWindowTilemap(0);
+ CopyWindowToVram(0, 3);
+}
+
+void TradeAnimInit_LoadGfx(void)
+{
+ SetGpuReg(REG_OFFSET_DISPCNT, 0);
+ ResetBgsAndClearDma3BusyFlags(FALSE);
+ InitBgsFromTemplates(0, gUnknown_826D1D4, NELEMS(gUnknown_826D1D4));
+ ChangeBgX(0, 0, 0);
+ ChangeBgY(0, 0, 0);
+ SetBgTilemapBuffer(0, Alloc(BG_SCREEN_SIZE));
+ SetBgTilemapBuffer(1, Alloc(BG_SCREEN_SIZE));
+ SetBgTilemapBuffer(3, Alloc(BG_SCREEN_SIZE));
+ DeactivateAllTextPrinters();
+ // Doing the graphics load...
+ DecompressAndLoadBgGfxUsingHeap(0, gBattleTextboxTiles, 0, 0, 0);
+ LZDecompressWram(gFile_graphics_interface_menu_map_tilemap, gDecompressionBuffer);
+ CopyToBgTilemapBuffer(0, gDecompressionBuffer, BG_SCREEN_SIZE, 0);
+ LoadCompressedPalette(gBattleTextboxPalette, 0x000, 0x20);
+ InitWindows(gUnknown_826D1BC);
+ // ... and doing the same load again
+ DecompressAndLoadBgGfxUsingHeap(0, gBattleTextboxTiles, 0, 0, 0);
+ LZDecompressWram(gFile_graphics_interface_menu_map_tilemap, gDecompressionBuffer);
+ CopyToBgTilemapBuffer(0, gDecompressionBuffer, BG_SCREEN_SIZE, 0);
+ LoadCompressedPalette(gBattleTextboxPalette, 0x000, 0x20);
+}
+
+void CB2_InitTradeAnim_InGameTrade(void)
+{
+ u8 otName[11];
+
+ switch (gMain.state)
+ {
+ case 0:
+ gUnknown_2031DA4[0] = gSpecialVar_0x8005;
+ gUnknown_2031DA4[1] = 6;
+ StringCopy(gLinkPlayers[0].name, gSaveBlock2Ptr->playerName);
+ GetMonData(&gEnemyParty[0], MON_DATA_OT_NAME, otName);
+ StringCopy(gLinkPlayers[1].name, otName);
+ sTradeAnimationResourcesPtr = AllocZeroed(sizeof(*sTradeAnimationResourcesPtr));
+ AllocateMonSpritesGfx();
+ ResetTasks();
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ SetVBlankCallback(VBlankCB_TradeAnim);
+ TradeAnimInit_LoadGfx();
+ sTradeAnimationResourcesPtr->isLinkTrade = FALSE;
+ sTradeAnimationResourcesPtr->unk_8C = 0;
+ sTradeAnimationResourcesPtr->state = 0;
+ sTradeAnimationResourcesPtr->unk_D4 = 64;
+ sTradeAnimationResourcesPtr->unk_D6 = 64;
+ sTradeAnimationResourcesPtr->unk_D8 = 0;
+ sTradeAnimationResourcesPtr->unk_DA = 0;
+ sTradeAnimationResourcesPtr->unk_DC = 120;
+ sTradeAnimationResourcesPtr->unk_DE = 80;
+ sTradeAnimationResourcesPtr->unk_E8 = 256;
+ sTradeAnimationResourcesPtr->unk_EC = 0;
+ sTradeAnimationResourcesPtr->timer = 0;
+ gMain.state = 5;
+ break;
+ case 5:
+ sub_804FFE4(0, 0);
+ gMain.state++;
+ break;
+ case 6:
+ sub_804FFE4(0, 1);
+ gMain.state++;
+ break;
+ case 7:
+ sub_804FFE4(1, 0);
+ ShowBg(0);
+ gMain.state++;
+ break;
+ case 8:
+ sub_804FFE4(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);
+ gMain.state++;
+ break;
+ case 10:
+ ShowBg(0);
+ gMain.state++;
+ break;
+ case 11:
+ sub_8050968(5);
+ sub_8050968(0);
+ sub_8050E24();
+ gMain.state++;
+ break;
+ case 12:
+ SetMainCallback2(CB2_RunTradeAnim_InGameTrade);
+ break;
+ }
+
+ RunTasks();
+ RunTextPrinters();
+ AnimateSprites();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+}
+
+static void ReceivedMonSetPokedexFlags(u8 partyIdx)
+{
+ struct Pokemon *mon = &gPlayerParty[partyIdx];
+
+ if (!GetMonData(mon, MON_DATA_IS_EGG))
+ {
+ u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL);
+ u32 personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL);
+ species = SpeciesToNationalPokedexNum(species);
+ GetSetPokedexFlag(species, FLAG_SET_SEEN);
+ HandleSetPokedexFlag(species, FLAG_SET_CAUGHT, personality);
+ }
+}
+
+static void RS_TryEnableNationalPokedex(void)
+{
+ u8 mpId = GetMultiplayerId();
+ // Originally in Ruby but commented out
+ /*if (gLinkPlayers[mpId ^ 1].lp_field_2 == 0x8000)
+ EnableNationalPokedex();*/
+}
+
+void Trade_SwapPlayerAndParterMonData(u8 playerPartyIdx, u8 partnerPartyIdx)
+{
+ u8 friendship;
+
+ // Get whether the offered Pokemon have mail
+ struct Pokemon *playerMon = &gPlayerParty[playerPartyIdx];
+ u16 playerMail = GetMonData(playerMon, MON_DATA_MAIL);
+
+ 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.
+ if (playerMail != 0xFF)
+ ClearMailStruct(&gSaveBlock1Ptr->mail[playerMail]);
+
+ // This is where the actual trade happens!!
+ sTradeAnimationResourcesPtr->mon = *playerMon;
+ *playerMon = *partnerMon;
+ *partnerMon = sTradeAnimationResourcesPtr->mon;
+
+ // By default, a Pokemon received from a trade will have 70 Friendship.
+ friendship = 70;
+ if (!GetMonData(playerMon, MON_DATA_IS_EGG))
+ SetMonData(playerMon, MON_DATA_FRIENDSHIP, &friendship);
+
+ // Associate your partner's mail with the Pokemon they sent over.
+ if (partnerMail != 0xFF)
+ GiveMailToMon2(playerMon, &gLinkPartnerMail[partnerMail]);
+
+ ReceivedMonSetPokedexFlags(playerPartyIdx);
+ if (gReceivedRemoteLinkPlayers)
+ RS_TryEnableNationalPokedex();
+}
+
+void sub_80508F4(void)
+{
+ switch (sTradeAnimationResourcesPtr->unk_93)
+ {
+ case 1:
+ if (IsLinkTaskFinished())
+ {
+ SendBlock(bitmask_all_link_players_but_self(), sTradeAnimationResourcesPtr->linkData, 20);
+ sTradeAnimationResourcesPtr->unk_93++;
+ }
+ case 2:
+ sTradeAnimationResourcesPtr->unk_93 = 0;
+ break;
+ }
+}
+
+void CB2_RunTradeAnim_InGameTrade(void)
+{
+ sub_8050F14();
+ RunTasks();
+ RunTextPrinters();
+ AnimateSprites();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+}
+/*
+
+void sub_8050968(u8 state)
+{
+ switch (state)
+ {
+ case 0:
+ sTradeAnimationResourcesPtr->bg2hofs = 0;
+ sTradeAnimationResourcesPtr->bg2vofs = 0xB4;
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG2_ON | DISPCNT_OBJ_ON);
+ SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(2) | BGCNT_CHARBASE(1) | BGCNT_SCREENBASE(18) | BGCNT_AFF256x256);
+ LoadPalette(gTradeGba2_Pal, 0x10, 0x60);
+ DmaCopyLarge16(3, gTradeGba_Gfx, (void *)BG_CHAR_ADDR(1), 0x1420, 0x1000);
+ break;
+ case 1:
+ sTradeAnimationResourcesPtr->bg1hofs = 0;
+ sTradeAnimationResourcesPtr->bg1vofs = 0x15C;
+ SetGpuReg(REG_OFFSET_BG1VOFS, 0x15C);
+ SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(2) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(5) | BGCNT_TXT256x512);
+ SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(2) | BGCNT_CHARBASE(1) | BGCNT_SCREENBASE(18) | BGCNT_AFF512x512);
+ if (sTradeAnimationResourcesPtr->unk_108)
+ {
+ DmaCopy16(3, gUnknown_826AA5C, (void *)BG_SCREEN_ADDR(5), 0x1000);
+ }
+ else
+ {
+ DmaCopy16(3, gUnknown_8269A5C, (void *)BG_SCREEN_ADDR(5), 0x1000);
+ }
+ DmaCopyLarge16(3, gTradeGba_Gfx, (void *)BG_CHAR_ADDR(0), 0x1420, 0x1000);
+ break;
+ case 2:
+ sTradeAnimationResourcesPtr->bg1hofs = 0;
+ sTradeAnimationResourcesPtr->bg1vofs = 0;
+ if (sTradeAnimationResourcesPtr->unk_108 == FALSE)
+ {
+ 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));
+ BlendPalettes(0x000000008, 0x10, RGB_BLACK);
+ }
+ else
+ {
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_1 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG1_ON | DISPCNT_OBJ_ON);
+ DmaCopy16(3, gUnknown_826407C, (void *)BG_SCREEN_ADDR(5), 0x800);
+ BlendPalettes(0x00000001, 0x10, RGB_BLACK);
+ }
+ break;
+ case 3:
+ LoadPalette(gUnknown_826BF5C, 0x30, 0x20);
+ LZ77UnCompVram(gWirelessSignal4bpp, BG_CHAR_ADDR(1));
+ LZ77UnCompVram(gUnknown_826C60C, BG_SCREEN_ADDR(18));
+ sTradeAnimationResourcesPtr->bg2hofs = 0x50;
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG1_ON | DISPCNT_BG2_ON | DISPCNT_OBJ_ON);
+ break;
+ case 4:
+
}
}
+*/