summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/trade.s2231
-rw-r--r--src/trade.c526
2 files changed, 528 insertions, 2229 deletions
diff --git a/asm/trade.s b/asm/trade.s
index 0c863b4f1..0fd2e5c57 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -5,2231 +5,6 @@
.text
- thumb_func_start sub_805232C
-sub_805232C: @ 805232C
- push {r4-r7,lr}
- sub sp, 0x10
- ldr r0, _08052350 @ =sTradeData
- ldr r1, [r0]
- adds r1, 0x94
- ldrh r5, [r1]
- ldr r1, _08052354 @ =0x0000010b
- adds r7, r0, 0
- cmp r5, r1
- bls _08052344
- bl _08053774
-_08052344:
- lsls r0, r5, 2
- ldr r1, _08052358 @ =_0805235C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08052350: .4byte sTradeData
-_08052354: .4byte 0x0000010b
-_08052358: .4byte _0805235C
- .align 2, 0
-_0805235C:
- .4byte _0805278C
- .4byte _08052804
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08052860
- .4byte _080528A8
- .4byte _0805291C
- .4byte _08053774
- .4byte _08052988
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _080529AC
- .4byte _080529DC
- .4byte _080529EE
- .4byte _08052A10
- .4byte _08053774
- .4byte _08053774
- .4byte _08052B08
- .4byte _08052B28
- .4byte _08052B94
- .4byte _08052C18
- .4byte _08052C3C
- .4byte _08052C88
- .4byte _08052CD4
- .4byte _08052D30
- .4byte _08052D9C
- .4byte _08052DB0
- .4byte _08052DC4
- .4byte _08052DD8
- .4byte _08052F00
- .4byte _08052FD0
- .4byte _08053058
- .4byte _080530F8
- .4byte _08053108
- .4byte _08053128
- .4byte _08053774
- .4byte _08053774
- .4byte _0805324C
- .4byte _0805325C
- .4byte _0805327A
- .4byte _08053774
- .4byte _080532A0
- .4byte _080532E0
- .4byte _08053320
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053340
- .4byte _08053368
- .4byte _08053384
- .4byte _080533A4
- .4byte _0805344C
- .4byte _08053480
- .4byte _080534CC
- .4byte _08053584
- .4byte _08053610
- .4byte _0805365C
- .4byte _0805366C
- .4byte _08053672
- .4byte _08053698
- .4byte _080536F4
- .4byte _08053718
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08052A58
- .4byte _08052A8C
- .4byte _08052AE0
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053180
- .4byte _080531E8
- .4byte _08053224
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _080535BC
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08052BC0
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _08053774
- .4byte _080535F4
-_0805278C:
- ldr r3, _080527F8 @ =gSprites
- ldr r0, [r7]
- adds r0, 0x8E
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldr r4, [r7]
- adds r2, r4, 0
- adds r2, 0x8E
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldr r1, _080527FC @ =0x0000ff4c
- strh r1, [r0, 0x24]
- ldrb r0, [r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldr r2, _08052800 @ =gMonFrontPicCoords
- adds r0, r4, 0
- adds r0, 0xF0
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- strh r0, [r1, 0x26]
- adds r1, r4, 0
- adds r1, 0x94
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- bl GetCurrentMapMusic
- ldr r1, [r7]
- adds r1, 0xF4
- strh r0, [r1]
- movs r0, 0x84
- lsls r0, 1
- bl PlayNewMapMusic
- bl _08053774
- .align 2, 0
-_080527F8: .4byte gSprites
-_080527FC: .4byte 0x0000ff4c
-_08052800: .4byte gMonFrontPicCoords
-_08052804:
- ldr r5, [r7]
- adds r6, r5, 0
- adds r6, 0xE6
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- ble _08052838
- ldr r2, _08052834 @ =gSprites
- adds r0, r5, 0
- adds r0, 0x8E
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x24]
- adds r1, 0x3
- strh r1, [r0, 0x24]
- ldrh r0, [r6]
- subs r0, 0x3
- strh r0, [r6]
- bl _08053774
- .align 2, 0
-_08052834: .4byte gSprites
-_08052838:
- ldr r2, _0805285C @ =gSprites
- adds r0, r5, 0
- adds r0, 0x8E
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x24]
- strh r1, [r6]
- adds r1, r5, 0
- adds r1, 0x94
- movs r0, 0xA
- strh r0, [r1]
- bl _08053774
- .align 2, 0
-_0805285C: .4byte gSprites
-_08052860:
- ldr r4, _0805289C @ =gStringVar4
- ldr r1, _080528A0 @ =gText_XWillBeSentToY
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0
- adds r1, r4, 0
- movs r2, 0
- bl DrawTextOnTradeWindow
- ldr r4, _080528A4 @ =sTradeData
- ldr r0, [r4]
- adds r2, r0, 0
- adds r2, 0xF0
- ldrh r1, [r2]
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- beq _0805288E
- adds r0, r1, 0
- movs r1, 0
- bl PlayCry1
-_0805288E:
- ldr r3, [r4]
- adds r1, r3, 0
- adds r1, 0x94
- movs r2, 0
- movs r0, 0xB
- bl _080535EA
- .align 2, 0
-_0805289C: .4byte gStringVar4
-_080528A0: .4byte gText_XWillBeSentToY
-_080528A4: .4byte sTradeData
-_080528A8:
- ldr r1, [r7]
- ldr r0, [r1, 0x64]
- adds r0, 0x1
- str r0, [r1, 0x64]
- cmp r0, 0x50
- beq _080528B8
- bl _08053774
-_080528B8:
- adds r0, r1, 0
- adds r0, 0x8E
- ldrb r0, [r0]
- ldr r2, _0805290C @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x5]
- lsrs r1, 4
- movs r2, 0x2
- str r2, [sp]
- movs r2, 0x1
- str r2, [sp, 0x4]
- movs r2, 0x14
- str r2, [sp, 0x8]
- ldr r2, _08052910 @ =0x000fffff
- str r2, [sp, 0xC]
- movs r2, 0x78
- movs r3, 0x20
- bl CreateTradePokeballSprite
- ldr r1, [r7]
- adds r1, 0xD2
- strb r0, [r1]
- ldr r1, [r7]
- adds r1, 0x94
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- ldr r4, _08052914 @ =gStringVar4
- ldr r1, _08052918 @ =gText_ByeByeVar1
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0
- adds r1, r4, 0
- movs r2, 0
- bl DrawTextOnTradeWindow
- bl _08053774
- .align 2, 0
-_0805290C: .4byte gSprites
-_08052910: .4byte 0x000fffff
-_08052914: .4byte gStringVar4
-_08052918: .4byte gText_ByeByeVar1
-_0805291C:
- ldr r5, _08052978 @ =gSprites
- ldr r0, [r7]
- adds r0, 0xD2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r5, 0
- adds r4, 0x1C
- adds r0, r4
- ldr r1, [r0]
- ldr r0, _0805297C @ =SpriteCallbackDummy
- cmp r1, r0
- beq _0805293C
- bl _08053774
-_0805293C:
- ldr r0, _08052980 @ =sTradePokeballSpriteTemplate
- movs r1, 0x78
- movs r2, 0x20
- movs r3, 0
- bl CreateSprite
- ldr r1, [r7]
- adds r1, 0xD3
- strb r0, [r1]
- ldr r2, [r7]
- adds r0, r2, 0
- adds r0, 0xD3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _08052984 @ =SpriteCB_TradePokeball_Outbound
- str r1, [r0]
- adds r2, 0xD2
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- ldr r1, [r7]
- bl _08053708
- .align 2, 0
-_08052978: .4byte gSprites
-_0805297C: .4byte SpriteCallbackDummy
-_08052980: .4byte sTradePokeballSpriteTemplate
-_08052984: .4byte SpriteCB_TradePokeball_Outbound
-_08052988:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _080529A8 @ =sTradeData
- ldr r0, [r0]
- adds r0, 0x94
- movs r1, 0x14
- strh r1, [r0]
- bl _08053774
- .align 2, 0
-_080529A8: .4byte sTradeData
-_080529AC:
- ldr r0, _080529D8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080529BC
- bl _08053774
-_080529BC:
- movs r0, 0x4
- bl SetTradeSequenceBgGpuRegs
- movs r0, 0
- movs r1, 0xFF
- bl FillWindowPixelBuffer
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- bl _08053704
- .align 2, 0
-_080529D8: .4byte gPaletteFade
-_080529DC:
- movs r1, 0x1
- negs r1, r1
- movs r0, 0
- str r0, [sp]
- adds r0, r1, 0
- movs r2, 0x10
- movs r3, 0
- bl _08053700
-_080529EE:
- ldr r0, _08052A0C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080529FE
- bl _08053774
-_080529FE:
- ldr r0, [r7]
- adds r0, 0x94
- movs r1, 0x17
- strh r1, [r0]
- bl _08053774
- .align 2, 0
-_08052A0C: .4byte gPaletteFade
-_08052A10:
- ldr r4, _08052A2C @ =sTradeData
- ldr r0, [r4]
- adds r2, r0, 0
- adds r2, 0xEA
- ldrh r1, [r2]
- movs r0, 0x80
- lsls r0, 1
- cmp r1, r0
- bls _08052A30
- adds r0, r1, 0
- subs r0, 0x34
- strh r0, [r2]
- b _08052A4A
- .align 2, 0
-_08052A2C: .4byte sTradeData
-_08052A30:
- movs r0, 0x1
- bl SetTradeSequenceBgGpuRegs
- ldr r3, [r4]
- adds r1, r3, 0
- adds r1, 0xEA
- movs r2, 0
- movs r0, 0x80
- strh r0, [r1]
- subs r1, 0x56
- movs r0, 0x7C
- strh r0, [r1]
- str r2, [r3, 0x64]
-_08052A4A:
- ldr r0, _08052A54 @ =sTradeData
- ldr r4, [r0]
- bl _0805330C
- .align 2, 0
-_08052A54: .4byte sTradeData
-_08052A58:
- ldr r1, [r7]
- ldr r0, [r1, 0x64]
- adds r0, 0x1
- str r0, [r1, 0x64]
- cmp r0, 0x14
- bhi _08052A68
- bl _08053774
-_08052A68:
- movs r0, 0x3
- bl SetTradeSequenceBgGpuRegs
- ldr r0, _08052A88 @ =gUnknown_826CF48
- movs r1, 0x78
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- ldr r1, [r7]
- adds r1, 0x91
- strb r0, [r1]
- ldr r1, [r7]
- bl _08053708
- .align 2, 0
-_08052A88: .4byte gUnknown_826CF48
-_08052A8C:
- ldr r2, _08052AD4 @ =gSprites
- ldr r0, [r7]
- adds r0, 0x91
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 27
- cmp r0, 0
- blt _08052AAC
- bl _08053774
-_08052AAC:
- adds r0, r1, 0
- bl DestroySprite
- ldr r1, _08052AD8 @ =0x00000452
- movs r0, 0x50
- bl SetGpuReg
- movs r1, 0x82
- lsls r1, 3
- movs r0, 0x52
- bl SetGpuReg
- ldr r0, _08052ADC @ =c3_08054588
- movs r1, 0x5
- bl CreateTask
- ldr r1, [r7]
- bl _08053708
- .align 2, 0
-_08052AD4: .4byte gSprites
-_08052AD8: .4byte 0x00000452
-_08052ADC: .4byte c3_08054588
-_08052AE0:
- ldr r0, _08052B00 @ =c3_08054588
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- beq _08052AF0
- bl _08053774
-_08052AF0:
- ldr r0, _08052B04 @ =sTradeData
- ldr r0, [r0]
- adds r0, 0x94
- movs r1, 0x1A
- strh r1, [r0]
- bl _08053774
- .align 2, 0
-_08052B00: .4byte c3_08054588
-_08052B04: .4byte sTradeData
-_08052B08:
- ldr r2, [r7]
- adds r0, r2, 0
- adds r0, 0xE0
- ldrh r1, [r0]
- subs r1, 0x1
- strh r1, [r0]
- lsls r1, 16
- movs r0, 0x9E
- lsls r0, 17
- cmp r1, r0
- beq _08052B22
- bl _08053774
-_08052B22:
- adds r1, r2, 0
- bl _08053708
-_08052B28:
- ldr r0, _08052B80 @ =gUnknown_826CE44
- movs r1, 0x78
- movs r2, 0x50
- movs r3, 0x3
- bl CreateSprite
- ldr r4, _08052B84 @ =sTradeData
- ldr r1, [r4]
- adds r1, 0x90
- strb r0, [r1]
- ldr r5, _08052B88 @ =gSprites
- ldr r0, [r4]
- adds r0, 0x90
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _08052B8C @ =SpriteCB_TradeGlowWireless
- str r1, [r0]
- ldr r0, _08052B90 @ =sGlowBallSpriteTemplate
- movs r1, 0x78
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- ldr r1, [r4]
- adds r1, 0x91
- strb r0, [r1]
- ldr r0, [r4]
- adds r0, 0x91
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r1, [r4]
- bl _08053708
- .align 2, 0
-_08052B80: .4byte gUnknown_826CE44
-_08052B84: .4byte sTradeData
-_08052B88: .4byte gSprites
-_08052B8C: .4byte SpriteCB_TradeGlowWireless
-_08052B90: .4byte sGlowBallSpriteTemplate
-_08052B94:
- ldr r2, [r7]
- adds r1, r2, 0
- adds r1, 0xE0
- ldrh r0, [r1]
- subs r0, 0x3
- strh r0, [r1]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA6
- bne _08052BAE
- subs r1, 0x4C
- movs r0, 0xC8
- strh r0, [r1]
-_08052BAE:
- ldr r1, _08052BBC @ =0x00001241
- movs r0, 0
- bl SetGpuReg
- bl _08053774
- .align 2, 0
-_08052BBC: .4byte 0x00001241
-_08052BC0:
- ldr r2, _08052C14 @ =gSprites
- ldr r4, [r7]
- adds r3, r4, 0
- adds r3, 0x90
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- subs r1, 0x2
- strh r1, [r0, 0x22]
- adds r0, r4, 0
- adds r0, 0x91
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- subs r1, 0x2
- strh r1, [r0, 0x22]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r2, 0x22
- ldrsh r1, [r0, r2]
- movs r0, 0x8
- negs r0, r0
- cmp r1, r0
- blt _08052C06
- bl _08053774
-_08052C06:
- adds r1, r4, 0
- adds r1, 0x94
- movs r0, 0x1D
- strh r0, [r1]
- bl _08053774
- .align 2, 0
-_08052C14: .4byte gSprites
-_08052C18:
- movs r1, 0x1
- negs r1, r1
- movs r0, 0
- str r0, [sp]
- adds r0, r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08052C38 @ =sTradeData
- ldr r0, [r0]
- adds r0, 0x94
- movs r1, 0x1E
- strh r1, [r0]
- bl _08053774
- .align 2, 0
-_08052C38: .4byte sTradeData
-_08052C3C:
- ldr r0, _08052C80 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08052C4C
- bl _08053774
-_08052C4C:
- ldr r0, [r7]
- adds r0, 0x90
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08052C84 @ =gSprites
- adds r0, r4
- bl DestroySprite
- ldr r0, [r7]
- adds r0, 0x91
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- movs r0, 0x2
- bl SetTradeSequenceBgGpuRegs
- ldr r1, [r7]
- bl _08053708
- .align 2, 0
-_08052C80: .4byte gPaletteFade
-_08052C84: .4byte gSprites
-_08052C88:
- movs r1, 0x1
- negs r1, r1
- movs r0, 0
- str r0, [sp]
- adds r0, r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r5, _08052CCC @ =sGlowBallSpriteTemplate
- adds r0, r5, 0
- movs r1, 0x6F
- movs r2, 0xAA
- movs r3, 0
- bl CreateSprite
- ldr r4, _08052CD0 @ =sTradeData
- ldr r1, [r4]
- adds r1, 0x90
- strb r0, [r1]
- movs r2, 0xA
- negs r2, r2
- adds r0, r5, 0
- movs r1, 0x81
- movs r3, 0
- bl CreateSprite
- ldr r1, [r4]
- adds r1, 0x91
- strb r0, [r1]
- ldr r1, [r4]
- bl _08053708
- .align 2, 0
-_08052CCC: .4byte sGlowBallSpriteTemplate
-_08052CD0: .4byte sTradeData
-_08052CD4:
- ldr r0, _08052D24 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08052CF2
- movs r0, 0x28
- bl PlaySE
- ldr r0, _08052D28 @ =sTradeData
- ldr r1, [r0]
- adds r1, 0x94
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_08052CF2:
- ldr r3, _08052D2C @ =gSprites
- ldr r0, _08052D28 @ =sTradeData
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x90
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x26]
- subs r1, 0x3
- strh r1, [r0, 0x26]
- adds r2, 0x91
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x26]
- adds r1, 0x3
- strh r1, [r0, 0x26]
- bl _08053774
- .align 2, 0
-_08052D24: .4byte gPaletteFade
-_08052D28: .4byte sTradeData
-_08052D2C: .4byte gSprites
-_08052D30:
- ldr r5, _08052D94 @ =gSprites
- ldr r4, [r7]
- adds r2, r4, 0
- adds r2, 0x90
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x26]
- subs r1, 0x3
- strh r1, [r0, 0x26]
- adds r6, r4, 0
- adds r6, 0x91
- ldrb r1, [r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x26]
- adds r1, 0x3
- strh r1, [r0, 0x26]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r0, r5
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- movs r0, 0x5A
- negs r0, r0
- cmp r1, r0
- ble _08052D76
- bl _08053774
-_08052D76:
- movs r2, 0x1
- strh r2, [r3, 0x30]
- ldrb r1, [r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x30]
- adds r1, r4, 0
- adds r1, 0x94
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- ldr r0, _08052D98 @ =c3_0805465C
- b _08052FBE
- .align 2, 0
-_08052D94: .4byte gSprites
-_08052D98: .4byte c3_0805465C
-_08052D9C:
- ldr r2, _08052DAC @ =0x0000ffff
- movs r0, 0x8
- movs r1, 0x10
- bl BlendPalettes
- bl _08053704
- .align 2, 0
-_08052DAC: .4byte 0x0000ffff
-_08052DB0:
- ldr r2, _08052DC0 @ =0x0000ffff
- movs r0, 0x8
- movs r1, 0x10
- bl BlendPalettes
- bl _08053704
- .align 2, 0
-_08052DC0: .4byte 0x0000ffff
-_08052DC4:
- ldr r2, _08052DD4 @ =0x0000ffff
- movs r0, 0x8
- movs r1, 0x10
- bl BlendPalettes
- bl _08053704
- .align 2, 0
-_08052DD4: .4byte 0x0000ffff
-_08052DD8:
- ldr r5, _08052E44 @ =sTradeData
- ldr r0, [r5]
- adds r0, 0xF0
- ldrh r0, [r0]
- bl IsPokeSpriteNotFlipped
- lsls r0, 24
- cmp r0, 0
- bne _08052E50
- ldr r4, _08052E48 @ =gSprites
- ldr r2, [r5]
- adds r2, 0x8E
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x10
- adds r0, r1
- ldr r1, _08052E4C @ =gUnknown_826CF88
- str r1, [r0]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x1]
- movs r2, 0x3
- orrs r1, r2
- strb r1, [r0, 0x1]
- ldr r0, [r5]
- adds r0, 0x8E
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0
- movs r2, 0x3
- movs r3, 0x3
- bl CalcCenterToCornerVec
- ldr r0, [r5]
- adds r0, 0x8E
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0
- bl StartSpriteAffineAnim
- b _08052E66
- .align 2, 0
-_08052E44: .4byte sTradeData
-_08052E48: .4byte gSprites
-_08052E4C: .4byte gUnknown_826CF88
-_08052E50:
- ldr r0, [r5]
- adds r0, 0x8E
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08052EF4 @ =gSprites
- adds r0, r1
- movs r1, 0
- bl StartSpriteAffineAnim
-_08052E66:
- ldr r5, _08052EF8 @ =sTradeData
- ldr r0, [r5]
- adds r0, 0x8F
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08052EF4 @ =gSprites
- adds r0, r4
- movs r1, 0
- bl StartSpriteAffineAnim
- ldr r2, [r5]
- adds r3, r2, 0
- adds r3, 0x8E
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x28
- strh r1, [r0, 0x20]
- adds r2, 0x8F
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xC8
- strh r1, [r0, 0x20]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xC0
- strh r1, [r0, 0x22]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _08052EFC @ =0x0000ffe0
- strh r1, [r0, 0x22]
- ldrb r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- ldr r0, [r5]
- adds r0, 0x8F
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- ldr r1, [r5]
- bl _08053708
- .align 2, 0
-_08052EF4: .4byte gSprites
-_08052EF8: .4byte sTradeData
-_08052EFC: .4byte 0x0000ffe0
-_08052F00:
- ldr r4, _08052FC8 @ =gSprites
- ldr r2, [r7]
- adds r3, r2, 0
- adds r3, 0x8E
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x26]
- subs r1, 0x3
- movs r5, 0
- strh r1, [r0, 0x26]
- adds r2, 0x8F
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x26]
- adds r1, 0x3
- strh r1, [r0, 0x26]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x26]
- adds r0, 0xA3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bhi _08052F48
- movs r0, 0x27
- bl PlaySE
-_08052F48:
- ldr r2, [r7]
- adds r3, r2, 0
- adds r3, 0x8E
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r6, 0x26
- ldrsh r1, [r0, r6]
- movs r0, 0xDE
- negs r0, r0
- cmp r1, r0
- blt _08052F68
- bl _08053774
-_08052F68:
- adds r0, r2, 0
- adds r0, 0x90
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r5, [r0, 0x30]
- adds r0, r2, 0
- adds r0, 0x91
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r5, [r0, 0x30]
- adds r1, r2, 0
- adds r1, 0x94
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldr r0, [r7]
- adds r0, 0x8F
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- ldr r0, _08052FCC @ =sub_8054734
-_08052FBE:
- movs r1, 0x5
- bl CreateTask
- bl _08053774
- .align 2, 0
-_08052FC8: .4byte gSprites
-_08052FCC: .4byte sub_8054734
-_08052FD0:
- ldr r4, _08053054 @ =gSprites
- ldr r2, [r7]
- adds r3, r2, 0
- adds r3, 0x90
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x26]
- subs r1, 0x3
- strh r1, [r0, 0x26]
- adds r2, 0x91
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x26]
- adds r1, 0x3
- strh r1, [r0, 0x26]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r2, 0x26
- ldrsh r1, [r0, r2]
- movs r0, 0xDE
- negs r0, r0
- cmp r1, r0
- ble _08053012
- b _08053774
-_08053012:
- movs r1, 0x1
- negs r1, r1
- movs r0, 0
- str r0, [sp]
- adds r0, r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, [r7]
- adds r2, r1, 0
- adds r2, 0x94
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- adds r1, 0x90
- ldrb r1, [r1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldr r0, [r7]
- adds r0, 0x91
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- b _08053774
- .align 2, 0
-_08053054: .4byte gSprites
-_08053058:
- ldr r0, _080530E4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08053066
- b _08053774
-_08053066:
- ldr r1, [r7]
- adds r1, 0x94
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r0, 0x1
- bl SetTradeSequenceBgGpuRegs
- ldr r0, [r7]
- adds r0, 0xE0
- movs r1, 0xA6
- strh r1, [r0]
- movs r0, 0x3
- bl SetTradeSequenceBgGpuRegs
- ldr r0, [r7]
- adds r0, 0xE4
- movs r1, 0xCE
- lsls r1, 1
- strh r1, [r0]
- ldr r0, _080530E8 @ =gUnknown_826CE44
- movs r4, 0x14
- negs r4, r4
- movs r1, 0x78
- adds r2, r4, 0
- movs r3, 0x3
- bl CreateSprite
- ldr r1, [r7]
- adds r1, 0x90
- strb r0, [r1]
- ldr r5, _080530EC @ =gSprites
- ldr r0, [r7]
- adds r0, 0x90
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _080530F0 @ =SpriteCB_TradeGlowWireless
- str r1, [r0]
- ldr r0, _080530F4 @ =sGlowBallSpriteTemplate
- movs r1, 0x78
- adds r2, r4, 0
- movs r3, 0
- bl CreateSprite
- ldr r1, [r7]
- adds r1, 0x91
- strb r0, [r1]
- ldr r0, [r7]
- adds r0, 0x91
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x1
- bl StartSpriteAnim
- b _08053774
- .align 2, 0
-_080530E4: .4byte gPaletteFade
-_080530E8: .4byte gUnknown_826CE44
-_080530EC: .4byte gSprites
-_080530F0: .4byte SpriteCB_TradeGlowWireless
-_080530F4: .4byte sGlowBallSpriteTemplate
-_080530F8:
- movs r1, 0x1
- negs r1, r1
- movs r0, 0
- str r0, [sp]
- adds r0, r1, 0
- movs r2, 0x10
- movs r3, 0
- b _08053700
-_08053108:
- movs r1, 0x92
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- ldr r0, _08053124 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08053120
- b _08053774
-_08053120:
- b _08053704
- .align 2, 0
-_08053124: .4byte gPaletteFade
-_08053128:
- ldr r2, _0805317C @ =gSprites
- ldr r4, [r7]
- adds r3, r4, 0
- adds r3, 0x90
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- adds r1, 0x4
- strh r1, [r0, 0x26]
- adds r0, r4, 0
- adds r0, 0x91
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- adds r1, 0x4
- strh r1, [r0, 0x26]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r6, 0x26
- ldrsh r1, [r0, r6]
- movs r2, 0x22
- ldrsh r0, [r0, r2]
- adds r1, r0
- cmp r1, 0x40
- beq _0805316E
- b _08053774
-_0805316E:
- adds r0, r4, 0
- adds r0, 0x94
- movs r1, 0x90
- strh r1, [r0]
- movs r0, 0
- str r0, [r4, 0x64]
- b _08053774
- .align 2, 0
-_0805317C: .4byte gSprites
-_08053180:
- movs r1, 0xB2
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- ldr r4, _080531DC @ =sTradeData
- ldr r2, [r4]
- adds r1, r2, 0
- adds r1, 0xE0
- ldrh r0, [r1]
- adds r0, 0x3
- strh r0, [r1]
- adds r1, 0x4
- ldrh r0, [r1]
- adds r0, 0x3
- strh r0, [r1]
- ldr r0, [r2, 0x64]
- adds r0, 0x1
- str r0, [r2, 0x64]
- cmp r0, 0xA
- bne _080531C4
- ldr r0, _080531E0 @ =c3_08054588
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080531E4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0x1
- strh r0, [r1, 0xC]
-_080531C4:
- ldr r1, [r4]
- adds r3, r1, 0
- adds r3, 0xE0
- movs r6, 0
- ldrsh r0, [r3, r6]
- movs r2, 0x9E
- lsls r2, 1
- cmp r0, r2
- bgt _080531D8
- b _08053774
-_080531D8:
- strh r2, [r3]
- b _08053708
- .align 2, 0
-_080531DC: .4byte sTradeData
-_080531E0: .4byte c3_08054588
-_080531E4: .4byte gTasks
-_080531E8:
- ldr r0, [r7]
- adds r0, 0x90
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08053220 @ =gSprites
- adds r0, r4
- bl DestroySprite
- ldr r0, [r7]
- adds r0, 0x91
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldr r3, [r7]
- adds r2, r3, 0
- adds r2, 0x94
- ldrh r0, [r2]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r2]
- str r1, [r3, 0x64]
- b _08053774
- .align 2, 0
-_08053220: .4byte gSprites
-_08053224:
- ldr r0, _08053244 @ =c3_08054588
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _08053234
- b _08053774
-_08053234:
- ldr r0, _08053248 @ =sTradeData
- ldr r2, [r0]
- adds r1, r2, 0
- adds r1, 0x94
- movs r0, 0x2E
- strh r0, [r1]
- str r3, [r2, 0x64]
- b _08053774
- .align 2, 0
-_08053244: .4byte c3_08054588
-_08053248: .4byte sTradeData
-_0805324C:
- ldr r1, [r7]
- ldr r0, [r1, 0x64]
- adds r0, 0x1
- str r0, [r1, 0x64]
- cmp r0, 0xA
- beq _0805325A
- b _08053774
-_0805325A:
- b _08053708
-_0805325C:
- ldr r1, [r7]
- adds r5, r1, 0
- adds r5, 0xE0
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
- lsls r0, 16
- asrs r0, 16
- movs r6, 0xAE
- lsls r6, 1
- cmp r0, r6
- bgt _08053276
- b _08053774
-_08053276:
- strh r6, [r5]
- b _08053708
-_0805327A:
- ldr r0, _08053298 @ =gUnknown_826CF30
- movs r1, 0x78
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- ldr r2, _0805329C @ =sTradeData
- ldr r1, [r2]
- adds r1, 0x91
- strb r0, [r1]
- ldr r0, [r2]
- adds r0, 0x94
- movs r1, 0x32
- strh r1, [r0]
- b _08053774
- .align 2, 0
-_08053298: .4byte gUnknown_826CF30
-_0805329C: .4byte sTradeData
-_080532A0:
- ldr r2, _080532DC @ =gSprites
- ldr r0, [r7]
- adds r0, 0x91
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 27
- cmp r0, 0
- blt _080532BE
- b _08053774
-_080532BE:
- adds r0, r1, 0
- bl DestroySprite
- movs r0, 0x6
- bl SetTradeSequenceBgGpuRegs
- ldr r1, [r7]
- adds r1, 0x94
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r0, 0x98
- bl PlaySE
- b _08053774
- .align 2, 0
-_080532DC: .4byte gSprites
-_080532E0:
- ldr r1, [r7]
- adds r2, r1, 0
- adds r2, 0xEA
- ldrh r3, [r2]
- ldr r0, _080532F8 @ =0x000003ff
- cmp r3, r0
- bhi _080532FC
- adds r0, r3, 0
- adds r0, 0x34
- strh r0, [r2]
- b _0805330A
- .align 2, 0
-_080532F8: .4byte 0x000003ff
-_080532FC:
- movs r0, 0x80
- lsls r0, 3
- strh r0, [r2]
- adds r1, 0x94
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_0805330A:
- ldr r4, [r7]
-_0805330C:
- adds r0, r4, 0
- adds r0, 0xEA
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 8
- bl __divsi3
- adds r4, 0xE8
- strh r0, [r4]
- b _08053774
-_08053320:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0805333C @ =sTradeData
- ldr r0, [r0]
- adds r0, 0x94
- movs r1, 0x3C
- strh r1, [r0]
- b _08053774
- .align 2, 0
-_0805333C: .4byte sTradeData
-_08053340:
- ldr r4, _08053364 @ =gPaletteFade
- ldrb r1, [r4, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0805334E
- b _08053774
-_0805334E:
- movs r0, 0x5
- bl SetTradeSequenceBgGpuRegs
- movs r0, 0x7
- bl SetTradeSequenceBgGpuRegs
- ldrb r0, [r4, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r4, 0x8]
- b _08053704
- .align 2, 0
-_08053364: .4byte gPaletteFade
-_08053368:
- ldr r2, _08053380 @ =gPaletteFade
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- b _08053700
- .align 2, 0
-_08053380: .4byte gPaletteFade
-_08053384:
- movs r1, 0xA2
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- ldr r0, _080533A0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0805339C
- b _08053774
-_0805339C:
- b _08053704
- .align 2, 0
-_080533A0: .4byte gPaletteFade
-_080533A4:
- ldr r0, _08053438 @ =sTradePokeballSpriteTemplate
- movs r2, 0x8
- negs r2, r2
- movs r1, 0x78
- movs r3, 0
- bl CreateSprite
- ldr r5, _0805343C @ =sTradeData
- ldr r1, [r5]
- adds r1, 0xD3
- movs r6, 0
- strb r0, [r1]
- ldr r4, _08053440 @ =gSprites
- ldr r2, [r5]
- adds r2, 0xD3
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x4A
- strh r1, [r0, 0x34]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _08053444 @ =SpriteCB_TradePokeball_Inbound
- str r1, [r0]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r0, [r5]
- adds r0, 0xD3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x2
- bl StartSpriteAffineAnim
- ldr r0, [r5]
- adds r0, 0xD3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x5]
- lsrs r1, 4
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- ldr r2, _08053448 @ =0x0000ffff
- movs r1, 0x10
- bl BlendPalettes
- ldr r2, [r5]
- adds r1, r2, 0
- adds r1, 0x94
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- str r6, [r2, 0x64]
- b _08053774
- .align 2, 0
-_08053438: .4byte sTradePokeballSpriteTemplate
-_0805343C: .4byte sTradeData
-_08053440: .4byte gSprites
-_08053444: .4byte SpriteCB_TradePokeball_Inbound
-_08053448: .4byte 0x0000ffff
-_0805344C:
- ldr r2, _08053478 @ =gSprites
- ldr r0, [r7]
- adds r0, 0xD3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x5]
- lsrs r1, 4
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- ldr r1, _0805347C @ =0x0000ffff
- str r1, [sp]
- movs r1, 0x1
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, [r7]
- b _08053708
- .align 2, 0
-_08053478: .4byte gSprites
-_0805347C: .4byte 0x0000ffff
-_08053480:
- ldr r2, _080534BC @ =gSprites
- ldr r3, [r7]
- adds r0, r3, 0
- adds r0, 0xD3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _080534C0 @ =SpriteCallbackDummy
- cmp r1, r0
- beq _0805349E
- b _08053774
-_0805349E:
- adds r0, r3, 0
- adds r0, 0xF2
- ldrh r2, [r0]
- lsls r0, r2, 3
- ldr r1, _080534C4 @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _080534C8 @ =gMonSpritesGfxPtr
- ldr r1, [r1]
- ldr r1, [r1, 0x10]
- ldr r3, [r3, 0x6C]
- bl HandleLoadSpecialPokePic
- ldr r1, [r7]
- b _08053708
- .align 2, 0
-_080534BC: .4byte gSprites
-_080534C0: .4byte SpriteCallbackDummy
-_080534C4: .4byte gMonFrontPicTable
-_080534C8: .4byte gMonSpritesGfxPtr
-_080534CC:
- ldr r4, _08053578 @ =gSprites
- ldr r2, [r7]
- adds r6, r2, 0
- adds r6, 0x8F
- ldrb r1, [r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r5, 0
- movs r1, 0x78
- strh r1, [r0, 0x20]
- ldrb r0, [r6]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldr r3, _0805357C @ =gMonFrontPicCoords
- adds r2, 0xF2
- ldrh r0, [r2]
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x1]
- adds r0, 0x3C
- strh r0, [r1, 0x22]
- ldrb r1, [r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r5, [r0, 0x24]
- ldrb r1, [r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r5, [r0, 0x26]
- ldrb r1, [r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0
- bl StartSpriteAnim
- ldr r0, [r7]
- adds r0, 0x8F
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r1, [r1, 0x5]
- lsrs r1, 4
- movs r2, 0x2
- str r2, [sp]
- movs r2, 0x1
- str r2, [sp, 0x4]
- movs r2, 0x14
- str r2, [sp, 0x8]
- ldr r2, _08053580 @ =0x000fffff
- str r2, [sp, 0xC]
- movs r2, 0x78
- movs r3, 0x54
- bl CreatePokeballSpriteToReleaseMon
- ldr r0, [r7]
- adds r0, 0xD3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldr r0, [r7]
- adds r0, 0xD3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldr r1, [r7]
- b _08053708
- .align 2, 0
-_08053578: .4byte gSprites
-_0805357C: .4byte gMonFrontPicCoords
-_08053580: .4byte 0x000fffff
-_08053584:
- movs r1, 0xAA
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- ldr r4, _080535B0 @ =gStringVar4
- ldr r1, _080535B4 @ =gText_XSentOverY
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0
- adds r1, r4, 0
- movs r2, 0
- bl DrawTextOnTradeWindow
- ldr r0, _080535B8 @ =sTradeData
- ldr r3, [r0]
- adds r1, r3, 0
- adds r1, 0x94
- movs r2, 0
- movs r0, 0xA7
- b _080535EA
- .align 2, 0
-_080535B0: .4byte gStringVar4
-_080535B4: .4byte gText_XSentOverY
-_080535B8: .4byte sTradeData
-_080535BC:
- ldr r1, [r7]
- ldr r0, [r1, 0x64]
- adds r0, 0x1
- str r0, [r1, 0x64]
- cmp r0, 0x3C
- bhi _080535CA
- b _08053774
-_080535CA:
- adds r2, r1, 0
- adds r2, 0xF2
- ldrh r1, [r2]
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- beq _080535E0
- adds r0, r1, 0
- movs r1, 0
- bl PlayCry1
-_080535E0:
- ldr r3, [r7]
- adds r1, r3, 0
- adds r1, 0x94
- movs r2, 0
- ldr r0, _080535F0 @ =0x0000010b
-_080535EA:
- strh r0, [r1]
- str r2, [r3, 0x64]
- b _08053774
- .align 2, 0
-_080535F0: .4byte 0x0000010b
-_080535F4:
- bl IsCryFinished
- lsls r0, 24
- cmp r0, 0
- bne _08053600
- b _08053774
-_08053600:
- ldr r0, _0805360C @ =sTradeData
- ldr r0, [r0]
- adds r0, 0x94
- movs r1, 0x44
- strh r1, [r0]
- b _08053774
- .align 2, 0
-_0805360C: .4byte sTradeData
-_08053610:
- ldr r1, [r7]
- ldr r0, [r1, 0x64]
- adds r0, 0x1
- str r0, [r1, 0x64]
- cmp r0, 0xA
- bne _08053622
- ldr r0, _08053650 @ =0x00000103
- bl PlayFanfare
-_08053622:
- ldr r1, [r7]
- ldr r0, [r1, 0x64]
- cmp r0, 0xFA
- beq _0805362C
- b _08053774
-_0805362C:
- adds r1, 0x94
- ldrh r0, [r1]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r1]
- ldr r4, _08053654 @ =gStringVar4
- ldr r1, _08053658 @ =gText_TakeGoodCareOfX
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0
- adds r1, r4, 0
- movs r2, 0
- bl DrawTextOnTradeWindow
- ldr r0, [r7]
- str r5, [r0, 0x64]
- b _08053774
- .align 2, 0
-_08053650: .4byte 0x00000103
-_08053654: .4byte gStringVar4
-_08053658: .4byte gText_TakeGoodCareOfX
-_0805365C:
- ldr r1, [r7]
- ldr r0, [r1, 0x64]
- adds r0, 0x1
- str r0, [r1, 0x64]
- cmp r0, 0x3C
- beq _0805366A
- b _08053774
-_0805366A:
- b _08053708
-_0805366C:
- bl CheckPartnersMonForRibbons
- b _08053704
-_08053672:
- ldr r2, [r7]
- adds r0, r2, 0
- adds r0, 0xEE
- ldrb r0, [r0]
- cmp r0, 0
- beq _08053682
- movs r0, 0x1
- b _08053776
-_08053682:
- ldr r0, _08053694 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08053774
- adds r1, r2, 0
- b _08053708
- .align 2, 0
-_08053694: .4byte gMain
-_08053698:
- ldr r0, _080536DC @ =gSpecialVar_0x8005
- ldrb r0, [r0]
- movs r1, 0
- bl TradeMons
- ldr r1, _080536E0 @ =gCB2_AfterEvolution
- ldr r0, _080536E4 @ =CB2_RunTradeAnim_InGameTrade
- str r0, [r1]
- ldr r7, _080536E8 @ =gSelectedTradeMonPositions
- ldrb r0, [r7]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _080536EC @ =gPlayerParty
- adds r0, r5
- movs r1, 0x1
- movs r2, 0
- bl GetEvolutionTargetSpecies
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _08053704
- ldrb r3, [r7]
- adds r0, r3, 0
- muls r0, r6
- adds r0, r5
- ldr r1, _080536F0 @ =sTradeData
- ldr r1, [r1]
- adds r1, 0x8F
- ldrb r2, [r1]
- adds r1, r4, 0
- bl TradeEvolutionScene
- b _08053704
- .align 2, 0
-_080536DC: .4byte gSpecialVar_0x8005
-_080536E0: .4byte gCB2_AfterEvolution
-_080536E4: .4byte CB2_RunTradeAnim_InGameTrade
-_080536E8: .4byte gSelectedTradeMonPositions
-_080536EC: .4byte gPlayerParty
-_080536F0: .4byte sTradeData
-_080536F4:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
-_08053700:
- bl BeginNormalPaletteFade
-_08053704:
- ldr r0, _08053714 @ =sTradeData
- ldr r1, [r0]
-_08053708:
- adds r1, 0x94
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _08053774
- .align 2, 0
-_08053714: .4byte sTradeData
-_08053718:
- ldr r0, _08053780 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08053774
- ldr r0, [r7]
- adds r0, 0xF4
- ldrh r0, [r0]
- bl PlayNewMapMusic
- ldr r0, [r7]
- cmp r0, 0
- beq _08053766
- bl FreeAllWindowBuffers
- movs r0, 0x3
- bl GetBgTilemapBuffer
- bl Free
- movs r0, 0x1
- bl GetBgTilemapBuffer
- bl Free
- movs r0, 0
- bl GetBgTilemapBuffer
- bl Free
- bl FreeMonSpritesGfx
- ldr r0, [r7]
- bl Free
- str r4, [r7]
-_08053766:
- ldr r0, _08053784 @ =CB2_ReturnToField
- bl SetMainCallback2
- bl BufferInGameTradeMonName
- bl HelpSystem_Enable
-_08053774:
- movs r0, 0
-_08053776:
- add sp, 0x10
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08053780: .4byte gPaletteFade
-_08053784: .4byte CB2_ReturnToField
- thumb_func_end sub_805232C
-
thumb_func_start sub_8053788
sub_8053788: @ 8053788
push {r4-r7,lr}
@@ -3856,8 +1631,8 @@ _08054580: .4byte sTradeData
_08054584: .4byte 0x00000105
thumb_func_end DrawTextOnTradeWindow
- thumb_func_start c3_08054588
-c3_08054588: @ 8054588
+ thumb_func_start Task_AnimateWirelessSignal
+Task_AnimateWirelessSignal: @ 8054588
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
@@ -3964,7 +1739,7 @@ _08054656:
pop {r4,r5}
pop {r0}
bx r0
- thumb_func_end c3_08054588
+ thumb_func_end Task_AnimateWirelessSignal
thumb_func_start c3_0805465C
c3_0805465C: @ 805465C
diff --git a/src/trade.c b/src/trade.c
index a21781753..40be0774b 100644
--- a/src/trade.c
+++ b/src/trade.c
@@ -208,6 +208,9 @@ void CheckPartnersMonForRibbons(void);
void BufferInGameTradeMonName(void);
void SpriteCB_TradePokeball_Outbound(struct Sprite * sprite);
void SpriteCB_TradePokeball_Inbound(struct Sprite * sprite);
+void Task_AnimateWirelessSignal(u8 taskId);
+void c3_0805465C(u8 taskId);
+void sub_8054734(u8 taskId);
extern const u16 gUnknown_8260C30[];
extern const u16 gUnknown_8261430[];
@@ -262,6 +265,7 @@ extern const struct SpriteTemplate sGameLinkCableEndSpriteTemplate;
extern const struct SpriteTemplate gUnknown_826CE44;
extern const struct SpriteTemplate sGlowBallSpriteTemplate;
extern const union AffineAnimCmd *const gUnknown_826CF88[];
+extern const struct SpriteTemplate gUnknown_826CF48;
void sub_804C600(void)
{
@@ -4749,7 +4753,6 @@ bool8 sub_8050F14(void)
return sub_805232C();
}
-
bool8 sub_8050F3C(void)
{
u16 evoTarget;
@@ -5246,3 +5249,524 @@ bool8 sub_8050F3C(void)
}
return FALSE;
}
+
+bool8 sub_805232C(void)
+{
+ u16 evoTarget;
+
+ switch (sTradeData->state)
+ {
+ case 0:
+ gSprites[sTradeData->pokePicSpriteIdxs[0]].invisible = FALSE;
+ gSprites[sTradeData->pokePicSpriteIdxs[0]].pos2.x = -180;
+ gSprites[sTradeData->pokePicSpriteIdxs[0]].pos2.y = gMonFrontPicCoords[sTradeData->tradeSpecies[0]].y_offset;
+ sTradeData->state++;
+ sTradeData->cachedMapMusic = GetCurrentMapMusic();
+ PlayNewMapMusic(MUS_SHINKA);
+ break;
+ case 1:
+ if (sTradeData->bg2hofs > 0)
+ {
+ gSprites[sTradeData->pokePicSpriteIdxs[0]].pos2.x += 3;
+ sTradeData->bg2hofs -= 3;
+ }
+ else
+ {
+ gSprites[sTradeData->pokePicSpriteIdxs[0]].pos2.x = 0;
+ sTradeData->bg2hofs = 0;
+ sTradeData->state = 10;
+ }
+ break;
+ case 10:
+ StringExpandPlaceholders(gStringVar4, gText_XWillBeSentToY);
+ DrawTextOnTradeWindow(0, gStringVar4, 0);
+
+ if (sTradeData->tradeSpecies[0] != SPECIES_EGG)
+ {
+ PlayCry1(sTradeData->tradeSpecies[0], 0);
+ }
+
+ sTradeData->state = 11;
+ sTradeData->timer = 0;
+ break;
+ case 11:
+ if (++sTradeData->timer == 80)
+ {
+ sTradeData->pokeballSpriteId = CreateTradePokeballSprite(sTradeData->pokePicSpriteIdxs[0], gSprites[sTradeData->pokePicSpriteIdxs[0]].oam.paletteNum, 120, 32, 2, 1, 0x14, 0xfffff);
+ sTradeData->state++;
+ StringExpandPlaceholders(gStringVar4, gText_ByeByeVar1);
+ DrawTextOnTradeWindow(0, gStringVar4, 0);
+ }
+ break;
+ case 12:
+ if (gSprites[sTradeData->pokeballSpriteId].callback == SpriteCallbackDummy)
+ {
+ sTradeData->unk_D3 = CreateSprite(&sTradePokeballSpriteTemplate, 120, 32, 0);
+ gSprites[sTradeData->unk_D3].callback = SpriteCB_TradePokeball_Outbound;
+ DestroySprite(&gSprites[sTradeData->pokeballSpriteId]);
+ sTradeData->state++;
+ }
+ break;
+ case 13:
+ // The game waits here for the sprite to finish its animation sequence.
+ break;
+ case 14:
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
+ sTradeData->state = 20;
+ break;
+ case 20:
+ if (!gPaletteFade.active)
+ {
+ SetTradeSequenceBgGpuRegs(4);
+ FillWindowPixelBuffer(0, PIXEL_FILL(15));
+ CopyWindowToVram(0, 3);
+ sTradeData->state++;
+ }
+ break;
+ case 21:
+ BeginNormalPaletteFade(0xFFFFFFFF, -1, 16, 0, RGB_BLACK);
+ sTradeData->state++;
+ break;
+ case 22:
+ if (!gPaletteFade.active)
+ {
+ sTradeData->state = 23;
+ }
+ break;
+ case 23:
+ if (sTradeData->unk_EA > 0x100)
+ {
+ sTradeData->unk_EA -= 0x34;
+ }
+ else
+ {
+ SetTradeSequenceBgGpuRegs(1);
+ sTradeData->unk_EA = 0x80;
+ sTradeData->state = 124;
+ sTradeData->timer = 0;
+ }
+ sTradeData->sXY = 0x8000 / sTradeData->unk_EA;
+ break;
+ case 124:
+ if (++sTradeData->timer > 20)
+ {
+ SetTradeSequenceBgGpuRegs(3);
+ sTradeData->unk_91 = CreateSprite(&gUnknown_826CF48, 120, 80, 0);
+ sTradeData->state++;
+ }
+ break;
+ case 125:
+ if (gSprites[sTradeData->unk_91].animEnded)
+ {
+ DestroySprite(&gSprites[sTradeData->unk_91]);
+ SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 |
+ BLDCNT_TGT1_OBJ |
+ BLDCNT_EFFECT_BLEND |
+ BLDCNT_TGT2_BG2);
+ SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 4));
+ CreateTask(Task_AnimateWirelessSignal, 5);
+ sTradeData->state++;
+ }
+ break;
+ case 126:
+ if (!FuncIsActiveTask(Task_AnimateWirelessSignal))
+ {
+ sTradeData->state = 26;
+ }
+ break;
+ case 26:
+ if (--sTradeData->bg1vofs == 316)
+ {
+ sTradeData->state++;
+ }
+ break;
+ case 27:
+ sTradeData->unk_90 = CreateSprite(&gUnknown_826CE44, 120, 80, 3);
+ gSprites[sTradeData->unk_90].callback = SpriteCB_TradeGlowWireless;
+ sTradeData->unk_91 = CreateSprite(&sGlowBallSpriteTemplate, 120, 80, 0);
+ StartSpriteAnim(&gSprites[sTradeData->unk_91], 1);
+ sTradeData->state++;
+ break;
+ case 28:
+ if ((sTradeData->bg1vofs -= 3) == 166)
+ {
+ sTradeData->state = 200;
+ }
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_1 |
+ DISPCNT_OBJ_1D_MAP |
+ DISPCNT_BG1_ON |
+ DISPCNT_OBJ_ON);
+ break;
+ case 200:
+ gSprites[sTradeData->unk_90].pos1.y -= 2;
+ gSprites[sTradeData->unk_91].pos1.y -= 2;
+ if (gSprites[sTradeData->unk_90].pos1.y < -8)
+ {
+ sTradeData->state = 29;
+ }
+ break;
+ case 29:
+ BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 16, RGB_BLACK);
+ sTradeData->state = 30;
+ break;
+ case 30:
+ if (!gPaletteFade.active)
+ {
+ DestroySprite(&gSprites[sTradeData->unk_90]);
+ DestroySprite(&gSprites[sTradeData->unk_91]);
+ SetTradeSequenceBgGpuRegs(2);
+ sTradeData->state++;
+ }
+ break;
+ case 31:
+ BeginNormalPaletteFade(0xFFFFFFFF, -1, 16, 0, RGB_BLACK);
+ sTradeData->unk_90 = CreateSprite(&sGlowBallSpriteTemplate, 111, 170, 0);
+ sTradeData->unk_91 = CreateSprite(&sGlowBallSpriteTemplate, 129, -10, 0);
+ sTradeData->state++;
+ break;
+ case 32:
+ if (!gPaletteFade.active)
+ {
+ PlaySE(SE_TK_WARPOUT);
+ sTradeData->state++;
+ }
+ gSprites[sTradeData->unk_90].pos2.y -= 3;
+ gSprites[sTradeData->unk_91].pos2.y += 3;
+ break;
+ case 33:
+ gSprites[sTradeData->unk_90].pos2.y -= 3;
+ gSprites[sTradeData->unk_91].pos2.y += 3;
+ if (gSprites[sTradeData->unk_90].pos2.y <= -90)
+ {
+ gSprites[sTradeData->unk_90].data[1] = 1;
+ gSprites[sTradeData->unk_91].data[1] = 1;
+ sTradeData->state++;
+ CreateTask(c3_0805465C, 5);
+ }
+ break;
+ case 34:
+ BlendPalettes(0x8, 16, RGB_WHITEALPHA);
+ sTradeData->state++;
+ break;
+ case 35:
+ BlendPalettes(0x8, 16, RGB_WHITEALPHA);
+ sTradeData->state++;
+ break;
+ case 36:
+ BlendPalettes(0x8, 16, RGB_WHITEALPHA);
+ sTradeData->state++;
+ break;
+ case 37:
+ if (!IsPokeSpriteNotFlipped(sTradeData->tradeSpecies[0]))
+ {
+ gSprites[sTradeData->pokePicSpriteIdxs[0]].affineAnims = gUnknown_826CF88;
+ gSprites[sTradeData->pokePicSpriteIdxs[0]].oam.affineMode = 3;
+ CalcCenterToCornerVec(&gSprites[sTradeData->pokePicSpriteIdxs[0]], 0, 3, 3);
+ StartSpriteAffineAnim(&gSprites[sTradeData->pokePicSpriteIdxs[0]], 0);
+ }
+ else
+ {
+ StartSpriteAffineAnim(&gSprites[sTradeData->pokePicSpriteIdxs[0]], 0);
+ }
+ StartSpriteAffineAnim(&gSprites[sTradeData->pokePicSpriteIdxs[1]], 0);
+ gSprites[sTradeData->pokePicSpriteIdxs[0]].pos1.x = 40;
+ gSprites[sTradeData->pokePicSpriteIdxs[1]].pos1.x = 200;
+ gSprites[sTradeData->pokePicSpriteIdxs[0]].pos1.y = 192;
+ gSprites[sTradeData->pokePicSpriteIdxs[1]].pos1.y = -32;
+ gSprites[sTradeData->pokePicSpriteIdxs[0]].invisible = FALSE;
+ gSprites[sTradeData->pokePicSpriteIdxs[1]].invisible = FALSE;
+ sTradeData->state++;
+ break;
+ case 38:
+ gSprites[sTradeData->pokePicSpriteIdxs[0]].pos2.y -= 3;
+ gSprites[sTradeData->pokePicSpriteIdxs[1]].pos2.y += 3;
+ if (gSprites[sTradeData->pokePicSpriteIdxs[0]].pos2.y < -160 && gSprites[sTradeData->pokePicSpriteIdxs[0]].pos2.y >= -163)
+ {
+ PlaySE(SE_TK_WARPIN);
+ }
+ if (gSprites[sTradeData->pokePicSpriteIdxs[0]].pos2.y < -222)
+ {
+ gSprites[sTradeData->unk_90].data[1] = 0;
+ gSprites[sTradeData->unk_91].data[1] = 0;
+ sTradeData->state++;
+ gSprites[sTradeData->pokePicSpriteIdxs[0]].invisible = TRUE;
+ gSprites[sTradeData->pokePicSpriteIdxs[1]].invisible = TRUE;
+ CreateTask(sub_8054734, 5);
+ }
+ break;
+ case 39:
+ gSprites[sTradeData->unk_90].pos2.y -= 3;
+ gSprites[sTradeData->unk_91].pos2.y += 3;
+ if (gSprites[sTradeData->unk_90].pos2.y <= -222)
+ {
+ BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 16, RGB_BLACK);
+ sTradeData->state++;
+ DestroySprite(&gSprites[sTradeData->unk_90]);
+ DestroySprite(&gSprites[sTradeData->unk_91]);
+ }
+ break;
+ case 40:
+ if (!gPaletteFade.active)
+ {
+ sTradeData->state++;
+ SetTradeSequenceBgGpuRegs(1);
+ sTradeData->bg1vofs = 166;
+ SetTradeSequenceBgGpuRegs(3);
+ sTradeData->bg2vofs = 412;
+ sTradeData->unk_90 = CreateSprite(&gUnknown_826CE44, 120, -20, 3);
+ gSprites[sTradeData->unk_90].callback = SpriteCB_TradeGlowWireless;
+ sTradeData->unk_91 = CreateSprite(&sGlowBallSpriteTemplate, 120, -20, 0);
+ StartSpriteAnim(&gSprites[sTradeData->unk_91], 1);
+ }
+ break;
+ case 41:
+ BeginNormalPaletteFade(0xFFFFFFFF, -1, 16, 0, RGB_BLACK);
+ sTradeData->state++;
+ break;
+ case 42:
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 |
+ DISPCNT_OBJ_1D_MAP |
+ DISPCNT_BG1_ON |
+ DISPCNT_OBJ_ON);
+ if (!gPaletteFade.active)
+ {
+ sTradeData->state++;
+ }
+ break;
+ case 43:
+ gSprites[sTradeData->unk_90].pos2.y += 4;
+ gSprites[sTradeData->unk_91].pos2.y += 4;
+ if (gSprites[sTradeData->unk_90].pos2.y + gSprites[sTradeData->unk_90].pos1.y == 64)
+ {
+ sTradeData->state = 144;
+ sTradeData->timer = 0;
+ }
+ break;
+ case 144:
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 |
+ DISPCNT_OBJ_1D_MAP |
+ DISPCNT_BG1_ON |
+ DISPCNT_BG2_ON |
+ DISPCNT_OBJ_ON);
+ sTradeData->bg1vofs += 3;
+ sTradeData->bg2vofs += 3;
+ if (++sTradeData->timer == 10)
+ {
+ u8 taskId = CreateTask(Task_AnimateWirelessSignal, 5);
+ gTasks[taskId].data[2] = TRUE;
+ }
+ if (sTradeData->bg1vofs > 316)
+ {
+ sTradeData->bg1vofs = 316;
+ sTradeData->state++;
+ }
+ break;
+ case 145:
+ DestroySprite(&gSprites[sTradeData->unk_90]);
+ DestroySprite(&gSprites[sTradeData->unk_91]);
+ sTradeData->state++;
+ sTradeData->timer = 0;
+ break;
+ case 146:
+ if (!FuncIsActiveTask(Task_AnimateWirelessSignal))
+ {
+ sTradeData->state = 46;
+ sTradeData->timer = 0;
+ }
+ break;
+ case 46:
+ if (++sTradeData->timer == 10)
+ {
+ sTradeData->state++;
+ }
+ break;
+ case 47:
+ if (++sTradeData->bg1vofs > 348)
+ {
+ sTradeData->bg1vofs = 348;
+ sTradeData->state++;
+ }
+ break;
+ case 48:
+ sTradeData->unk_91 = CreateSprite(&gUnknown_826CF30, 120, 80, 0);
+ sTradeData->state = 50;
+ break;
+ case 50:
+ if (gSprites[sTradeData->unk_91].animEnded)
+ {
+ DestroySprite(&gSprites[sTradeData->unk_91]);
+ SetTradeSequenceBgGpuRegs(6);
+ sTradeData->state++;
+ PlaySE(SE_W028);
+ }
+ break;
+ case 51:
+ if (sTradeData->unk_EA < 0x400)
+ {
+ sTradeData->unk_EA += 0x34;
+ }
+ else
+ {
+ sTradeData->unk_EA = 0x400;
+ sTradeData->state++;
+ }
+ sTradeData->sXY = 0x8000 / sTradeData->unk_EA;
+ break;
+ case 52:
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
+ sTradeData->state = 60;
+ break;
+
+ case 60:
+ if (!gPaletteFade.active)
+ {
+ SetTradeSequenceBgGpuRegs(5);
+ SetTradeSequenceBgGpuRegs(7);
+ gPaletteFade.bufferTransferDisabled = TRUE;
+ sTradeData->state++;
+ }
+ break;
+ case 61:
+ gPaletteFade.bufferTransferDisabled = FALSE;
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK);
+ sTradeData->state++;
+ break;
+ case 62:
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 |
+ DISPCNT_OBJ_1D_MAP |
+ DISPCNT_BG2_ON |
+ DISPCNT_OBJ_ON);
+ if (!gPaletteFade.active)
+ {
+ sTradeData->state++;
+ }
+ break;
+ case 63:
+ sTradeData->unk_D3 = CreateSprite(&sTradePokeballSpriteTemplate, 120, -8, 0);
+ gSprites[sTradeData->unk_D3].data[3] = 74;
+ gSprites[sTradeData->unk_D3].callback = SpriteCB_TradePokeball_Inbound;
+ StartSpriteAnim(&gSprites[sTradeData->unk_D3], 1);
+ StartSpriteAffineAnim(&gSprites[sTradeData->unk_D3], 2);
+ BlendPalettes(1 << (16 + gSprites[sTradeData->unk_D3].oam.paletteNum), 16, RGB_WHITEALPHA);
+ sTradeData->state++;
+ sTradeData->timer = 0;
+ break;
+ case 64:
+ BeginNormalPaletteFade(1 << (16 + gSprites[sTradeData->unk_D3].oam.paletteNum), 1, 16, 0, RGB_WHITEALPHA);
+ sTradeData->state++;
+ break;
+ case 65:
+ if (gSprites[sTradeData->unk_D3].callback == SpriteCallbackDummy)
+ {
+ HandleLoadSpecialPokePic(&gMonFrontPicTable[sTradeData->tradeSpecies[1]], gMonSpritesGfxPtr->sprites[3], sTradeData->tradeSpecies[1], sTradeData->monPersonalities[1]);
+ sTradeData->state++;
+ }
+ break;
+ case 66:
+ gSprites[sTradeData->pokePicSpriteIdxs[1]].pos1.x = 120;
+ gSprites[sTradeData->pokePicSpriteIdxs[1]].pos1.y = gMonFrontPicCoords[sTradeData->tradeSpecies[1]].y_offset + 60;
+ gSprites[sTradeData->pokePicSpriteIdxs[1]].pos2.x = 0;
+ gSprites[sTradeData->pokePicSpriteIdxs[1]].pos2.y = 0;
+ StartSpriteAnim(&gSprites[sTradeData->pokePicSpriteIdxs[1]], 0);
+ CreatePokeballSpriteToReleaseMon(sTradeData->pokePicSpriteIdxs[1], gSprites[sTradeData->pokePicSpriteIdxs[1]].oam.paletteNum, 120, 84, 2, 1, 20, 0xFFFFF);
+ FreeSpriteOamMatrix(&gSprites[sTradeData->unk_D3]);
+ DestroySprite(&gSprites[sTradeData->unk_D3]);
+ sTradeData->state++;
+ break;
+ case 67:
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 |
+ DISPCNT_OBJ_1D_MAP |
+ DISPCNT_BG0_ON |
+ DISPCNT_BG2_ON |
+ DISPCNT_OBJ_ON);
+ StringExpandPlaceholders(gStringVar4, gText_XSentOverY);
+ DrawTextOnTradeWindow(0, gStringVar4, 0);
+ sTradeData->state = 167;
+ sTradeData->timer = 0;
+ break;
+ // 167 and 267 are extra cases added in for animations
+ case 167:
+ if (++sTradeData->timer > 60)
+ {
+ if (sTradeData->tradeSpecies[1] != SPECIES_EGG)
+ {
+ PlayCry1(sTradeData->tradeSpecies[1], 0);
+ }
+ sTradeData->state = 267;
+ sTradeData->timer = 0;
+ }
+ break;
+ case 267:
+ if (IsCryFinished())
+ {
+ sTradeData->state = 68;
+ }
+ break;
+ case 68:
+ if (++sTradeData->timer == 10)
+ {
+ PlayFanfare(MUS_FANFA5);
+ }
+ if (sTradeData->timer == 250)
+ {
+ sTradeData->state++;
+ StringExpandPlaceholders(gStringVar4, gText_TakeGoodCareOfX);
+ DrawTextOnTradeWindow(0, gStringVar4, 0);
+ sTradeData->timer = 0;
+ }
+ break;
+ case 69:
+ if (++sTradeData->timer == 60)
+ {
+ sTradeData->state++;
+ }
+ break;
+ case 70:
+ CheckPartnersMonForRibbons();
+ sTradeData->state++;
+ break;
+ case 71:
+ if (sTradeData->isLinkTrade)
+ {
+ return TRUE;
+ }
+ else if (JOY_NEW(A_BUTTON))
+ {
+ sTradeData->state++;
+ }
+ break;
+ case 72: // Only if in-game trade
+ TradeMons(gSpecialVar_0x8005, 0);
+ gCB2_AfterEvolution = CB2_RunTradeAnim_InGameTrade;
+ evoTarget = GetEvolutionTargetSpecies(&gPlayerParty[gSelectedTradeMonPositions[0]], TRUE, ITEM_NONE);
+ if (evoTarget != SPECIES_NONE)
+ {
+ TradeEvolutionScene(&gPlayerParty[gSelectedTradeMonPositions[0]], evoTarget, sTradeData->pokePicSpriteIdxs[1], gSelectedTradeMonPositions[0]);
+ }
+ sTradeData->state++;
+ break;
+ case 73:
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
+ sTradeData->state++;
+ break;
+ case 74:
+ if (!gPaletteFade.active)
+ {
+ PlayNewMapMusic(sTradeData->cachedMapMusic);
+ if (sTradeData)
+ {
+ FreeAllWindowBuffers();
+ Free(GetBgTilemapBuffer(3));
+ Free(GetBgTilemapBuffer(1));
+ Free(GetBgTilemapBuffer(0));
+ FreeMonSpritesGfx();
+ FREE_AND_SET_NULL(sTradeData);
+ }
+ SetMainCallback2(CB2_ReturnToField);
+ BufferInGameTradeMonName();
+ HelpSystem_Enable();
+ }
+ break;
+ }
+ return FALSE;
+}