trade through sub_804EED4
This commit is contained in:
+2
-744
@@ -5,748 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_804E9C0
|
||||
sub_804E9C0: @ 804E9C0
|
||||
push {lr}
|
||||
movs r0, 0
|
||||
bl sub_80FA484
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0804E9DC
|
||||
bl sub_800AB9C
|
||||
ldr r0, _0804E9E0 @ =gUnknown_2031DA8
|
||||
ldr r0, [r0]
|
||||
adds r0, 0x6F
|
||||
movs r1, 0xD
|
||||
strb r1, [r0]
|
||||
_0804E9DC:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0804E9E0: .4byte gUnknown_2031DA8
|
||||
thumb_func_end sub_804E9C0
|
||||
|
||||
thumb_func_start sub_804E9E4
|
||||
sub_804E9E4: @ 804E9E4
|
||||
push {lr}
|
||||
ldr r0, _0804E9FC @ =gUnknown_2031DA8
|
||||
ldr r0, [r0]
|
||||
adds r0, 0x6F
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x10
|
||||
bhi _0804EAA6
|
||||
lsls r0, 2
|
||||
ldr r1, _0804EA00 @ =_0804EA04
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_0804E9FC: .4byte gUnknown_2031DA8
|
||||
_0804EA00: .4byte _0804EA04
|
||||
.align 2, 0
|
||||
_0804EA04:
|
||||
.4byte _0804EA48
|
||||
.4byte _0804EA4E
|
||||
.4byte _0804EA54
|
||||
.4byte _0804EA5A
|
||||
.4byte _0804EA60
|
||||
.4byte _0804EAA6
|
||||
.4byte _0804EA66
|
||||
.4byte _0804EA6C
|
||||
.4byte _0804EA72
|
||||
.4byte _0804EA78
|
||||
.4byte _0804EA7E
|
||||
.4byte _0804EA84
|
||||
.4byte _0804EA8A
|
||||
.4byte _0804EA90
|
||||
.4byte _0804EA96
|
||||
.4byte _0804EA9C
|
||||
.4byte _0804EAA2
|
||||
_0804EA48:
|
||||
bl sub_804E194
|
||||
b _0804EAA6
|
||||
_0804EA4E:
|
||||
bl sub_804E388
|
||||
b _0804EAA6
|
||||
_0804EA54:
|
||||
bl sub_804E494
|
||||
b _0804EAA6
|
||||
_0804EA5A:
|
||||
bl sub_804E674
|
||||
b _0804EAA6
|
||||
_0804EA60:
|
||||
bl sub_804E744
|
||||
b _0804EAA6
|
||||
_0804EA66:
|
||||
bl sub_804E7C8
|
||||
b _0804EAA6
|
||||
_0804EA6C:
|
||||
bl sub_804E804
|
||||
b _0804EAA6
|
||||
_0804EA72:
|
||||
bl sub_804E880
|
||||
b _0804EAA6
|
||||
_0804EA78:
|
||||
bl sub_804D50C
|
||||
b _0804EAA6
|
||||
_0804EA7E:
|
||||
bl sub_804D548
|
||||
b _0804EAA6
|
||||
_0804EA84:
|
||||
bl sub_804E908
|
||||
b _0804EAA6
|
||||
_0804EA8A:
|
||||
bl sub_804E944
|
||||
b _0804EAA6
|
||||
_0804EA90:
|
||||
bl sub_804D5A4
|
||||
b _0804EAA6
|
||||
_0804EA96:
|
||||
bl sub_804E830
|
||||
b _0804EAA6
|
||||
_0804EA9C:
|
||||
bl sub_804E46C
|
||||
b _0804EAA6
|
||||
_0804EAA2:
|
||||
bl sub_804E9C0
|
||||
_0804EAA6:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_804E9E4
|
||||
|
||||
thumb_func_start sub_804EAAC
|
||||
sub_804EAAC: @ 804EAAC
|
||||
push {r4,lr}
|
||||
lsls r0, 24
|
||||
lsrs r4, r0, 24
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x6
|
||||
bl __udivsi3
|
||||
lsls r0, 24
|
||||
lsrs r2, r0, 24
|
||||
ldr r3, _0804EAE0 @ =gUnknown_2031DA8
|
||||
ldr r0, [r3]
|
||||
adds r0, 0x74
|
||||
adds r1, r0, r2
|
||||
ldrb r0, [r1]
|
||||
cmp r0, 0
|
||||
bne _0804EAD8
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
ldr r0, [r3]
|
||||
adds r0, 0x76
|
||||
adds r0, r2
|
||||
strb r4, [r0]
|
||||
_0804EAD8:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0804EAE0: .4byte gUnknown_2031DA8
|
||||
thumb_func_end sub_804EAAC
|
||||
|
||||
thumb_func_start sub_804EAE4
|
||||
sub_804EAE4: @ 804EAE4
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
sub sp, 0x68
|
||||
lsls r0, 24
|
||||
lsrs r7, r0, 24
|
||||
ldr r0, _0804EB34 @ =gUnknown_2031DA8
|
||||
ldr r4, [r0]
|
||||
adds r0, r4, 0
|
||||
adds r0, 0x76
|
||||
adds r0, r7
|
||||
ldrb r0, [r0]
|
||||
movs r1, 0x1
|
||||
str r1, [sp, 0x60]
|
||||
cmp r0, 0x5
|
||||
bhi _0804EB0C
|
||||
movs r2, 0
|
||||
str r2, [sp, 0x60]
|
||||
_0804EB0C:
|
||||
movs r1, 0x6
|
||||
bl __umodsi3
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
mov r10, r0
|
||||
movs r0, 0
|
||||
mov r8, r0
|
||||
adds r0, r4, 0
|
||||
adds r0, 0x74
|
||||
adds r3, r0, r7
|
||||
ldrb r0, [r3]
|
||||
cmp r0, 0x2
|
||||
bne _0804EB2A
|
||||
b _0804ECB4
|
||||
_0804EB2A:
|
||||
cmp r0, 0x2
|
||||
bgt _0804EB38
|
||||
cmp r0, 0x1
|
||||
beq _0804EB46
|
||||
b _0804EE54
|
||||
.align 2, 0
|
||||
_0804EB34: .4byte gUnknown_2031DA8
|
||||
_0804EB38:
|
||||
cmp r0, 0x3
|
||||
bne _0804EB3E
|
||||
b _0804ECEC
|
||||
_0804EB3E:
|
||||
cmp r0, 0x4
|
||||
bne _0804EB44
|
||||
b _0804EE1C
|
||||
_0804EB44:
|
||||
b _0804EE54
|
||||
_0804EB46:
|
||||
movs r5, 0
|
||||
adds r0, r4, 0
|
||||
adds r0, 0x36
|
||||
adds r0, r7
|
||||
ldr r1, [sp, 0x60]
|
||||
lsls r1, 1
|
||||
mov r9, r1
|
||||
lsls r6, r7, 1
|
||||
lsls r2, r7, 4
|
||||
str r2, [sp, 0x64]
|
||||
ldrb r0, [r0]
|
||||
cmp r8, r0
|
||||
bcs _0804EB9A
|
||||
ldr r0, _0804ECA0 @ =gSprites
|
||||
mov r8, r0
|
||||
ldr r4, _0804ECA4 @ =gUnknown_2031DA8
|
||||
ldr r0, [sp, 0x60]
|
||||
add r0, r9
|
||||
lsls r2, r0, 1
|
||||
movs r3, 0x4
|
||||
_0804EB6E:
|
||||
ldr r0, [r4]
|
||||
adds r1, r5, r2
|
||||
adds r0, 0x28
|
||||
adds r0, r1
|
||||
ldrb r1, [r0]
|
||||
lsls r0, r1, 4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
add r0, r8
|
||||
adds r0, 0x3E
|
||||
ldrb r1, [r0]
|
||||
orrs r1, r3
|
||||
strb r1, [r0]
|
||||
adds r0, r5, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x36
|
||||
adds r0, r7
|
||||
ldrb r0, [r0]
|
||||
cmp r5, r0
|
||||
bcc _0804EB6E
|
||||
_0804EB9A:
|
||||
movs r5, 0
|
||||
adds r0, r6, r7
|
||||
lsls r0, 1
|
||||
adds r4, r0, 0x2
|
||||
_0804EBA2:
|
||||
lsls r0, r5, 24
|
||||
asrs r0, 24
|
||||
adds r0, r4
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl ClearWindowTilemap
|
||||
adds r0, r5, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
cmp r5, 0x5
|
||||
bls _0804EBA2
|
||||
ldr r1, _0804ECA0 @ =gSprites
|
||||
mov r8, r1
|
||||
ldr r2, _0804ECA4 @ =gUnknown_2031DA8
|
||||
ldr r0, [r2]
|
||||
ldr r6, [sp, 0x60]
|
||||
add r6, r9
|
||||
lsls r3, r6, 1
|
||||
add r10, r3
|
||||
adds r0, 0x28
|
||||
add r0, r10
|
||||
ldrb r1, [r0]
|
||||
lsls r0, r1, 4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
add r0, r8
|
||||
adds r0, 0x3E
|
||||
ldrb r2, [r0]
|
||||
movs r1, 0x5
|
||||
negs r1, r1
|
||||
ands r1, r2
|
||||
strb r1, [r0]
|
||||
ldr r0, _0804ECA4 @ =gUnknown_2031DA8
|
||||
ldr r4, [r0]
|
||||
adds r4, 0x28
|
||||
add r4, r10
|
||||
ldrb r1, [r4]
|
||||
lsls r0, r1, 4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
add r0, r8
|
||||
movs r1, 0x14
|
||||
strh r1, [r0, 0x2E]
|
||||
ldrb r0, [r4]
|
||||
lsls r2, r0, 4
|
||||
adds r2, r0
|
||||
lsls r2, 2
|
||||
add r2, r8
|
||||
ldr r5, _0804ECA8 @ =gTradeMonSpriteCoords
|
||||
lsls r6, 2
|
||||
adds r0, r6, r5
|
||||
ldrb r0, [r0]
|
||||
adds r3, 0x1
|
||||
lsls r3, 1
|
||||
adds r3, r5
|
||||
ldrb r1, [r3]
|
||||
adds r0, r1
|
||||
asrs r0, 1
|
||||
lsls r0, 3
|
||||
adds r0, 0xE
|
||||
strh r0, [r2, 0x32]
|
||||
ldrb r0, [r4]
|
||||
lsls r1, r0, 4
|
||||
adds r1, r0
|
||||
lsls r1, 2
|
||||
add r1, r8
|
||||
adds r5, 0x1
|
||||
adds r6, r5
|
||||
ldrb r0, [r6]
|
||||
lsls r0, 3
|
||||
subs r0, 0xC
|
||||
strh r0, [r1, 0x36]
|
||||
ldrb r1, [r4]
|
||||
lsls r0, r1, 4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
add r0, r8
|
||||
ldr r1, _0804ECAC @ =SpriteCB_MonIcon
|
||||
bl StoreSpriteCallbackInData6
|
||||
ldr r2, _0804ECA4 @ =gUnknown_2031DA8
|
||||
ldr r1, [r2]
|
||||
adds r1, 0x74
|
||||
adds r1, r7
|
||||
ldrb r0, [r1]
|
||||
adds r0, 0x1
|
||||
strb r0, [r1]
|
||||
ldr r0, [r2]
|
||||
adds r0, 0x28
|
||||
add r0, r10
|
||||
ldrb r1, [r0]
|
||||
lsls r0, r1, 4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
add r0, r8
|
||||
bl sub_8075490
|
||||
ldr r1, _0804ECB0 @ =gUnknown_8260A32
|
||||
ldr r0, [sp, 0x64]
|
||||
subs r2, r0, r7
|
||||
lsls r2, 24
|
||||
lsrs r2, 24
|
||||
movs r0, 0xF
|
||||
str r0, [sp]
|
||||
movs r0, 0x11
|
||||
str r0, [sp, 0x4]
|
||||
movs r0, 0
|
||||
str r0, [sp, 0x8]
|
||||
movs r0, 0x1
|
||||
movs r3, 0
|
||||
bl CopyToBgTilemapBufferRect_ChangePalette
|
||||
movs r0, 0x1
|
||||
bl CopyBgTilemapBufferToVram
|
||||
movs r0, 0
|
||||
bl CopyBgTilemapBufferToVram
|
||||
ldr r1, [sp, 0x60]
|
||||
cmp r1, 0
|
||||
beq _0804EC98
|
||||
b _0804EE54
|
||||
_0804EC98:
|
||||
bl sub_804F3B4
|
||||
b _0804EE54
|
||||
.align 2, 0
|
||||
_0804ECA0: .4byte gSprites
|
||||
_0804ECA4: .4byte gUnknown_2031DA8
|
||||
_0804ECA8: .4byte gTradeMonSpriteCoords
|
||||
_0804ECAC: .4byte SpriteCB_MonIcon
|
||||
_0804ECB0: .4byte gUnknown_8260A32
|
||||
_0804ECB4:
|
||||
ldr r2, _0804ECE4 @ =gSprites
|
||||
ldr r1, [sp, 0x60]
|
||||
lsls r0, r1, 1
|
||||
adds r0, r1
|
||||
lsls r0, 1
|
||||
add r0, r10
|
||||
adds r1, r4, 0
|
||||
adds r1, 0x28
|
||||
adds r1, r0
|
||||
ldrb r1, [r1]
|
||||
lsls r0, r1, 4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r2, 0x1C
|
||||
adds r0, r2
|
||||
ldr r1, [r0]
|
||||
ldr r0, _0804ECE8 @ =SpriteCB_MonIcon
|
||||
cmp r1, r0
|
||||
beq _0804ECDC
|
||||
b _0804EE54
|
||||
_0804ECDC:
|
||||
movs r0, 0x3
|
||||
strb r0, [r3]
|
||||
b _0804EE54
|
||||
.align 2, 0
|
||||
_0804ECE4: .4byte gSprites
|
||||
_0804ECE8: .4byte SpriteCB_MonIcon
|
||||
_0804ECEC:
|
||||
ldr r1, _0804EE08 @ =gUnknown_8260834
|
||||
ldr r0, [sp, 0x60]
|
||||
lsls r2, r0, 4
|
||||
subs r2, r0
|
||||
lsls r2, 24
|
||||
lsrs r2, 24
|
||||
movs r0, 0xF
|
||||
str r0, [sp]
|
||||
movs r0, 0x11
|
||||
str r0, [sp, 0x4]
|
||||
mov r0, r8
|
||||
str r0, [sp, 0x8]
|
||||
movs r0, 0x1
|
||||
movs r3, 0
|
||||
bl CopyToBgTilemapBufferRect_ChangePalette
|
||||
movs r0, 0x1
|
||||
bl CopyBgTilemapBufferToVram
|
||||
ldr r6, _0804EE0C @ =gSprites
|
||||
ldr r1, _0804EE10 @ =gUnknown_2031DA8
|
||||
ldr r4, [r1]
|
||||
ldr r2, [sp, 0x60]
|
||||
lsls r3, r2, 1
|
||||
adds r3, r2
|
||||
lsls r1, r3, 1
|
||||
mov r2, r10
|
||||
adds r0, r2, r1
|
||||
adds r4, 0x28
|
||||
adds r4, r0
|
||||
ldrb r0, [r4]
|
||||
lsls r2, r0, 4
|
||||
adds r2, r0
|
||||
lsls r2, 2
|
||||
adds r2, r6
|
||||
ldr r5, _0804EE14 @ =gTradeMonSpriteCoords
|
||||
lsls r3, 2
|
||||
adds r0, r3, r5
|
||||
ldrb r0, [r0]
|
||||
adds r1, 0x1
|
||||
lsls r1, 1
|
||||
adds r1, r5
|
||||
ldrb r1, [r1]
|
||||
adds r0, r1
|
||||
asrs r0, 1
|
||||
lsls r0, 3
|
||||
adds r0, 0xE
|
||||
strh r0, [r2, 0x20]
|
||||
ldrb r0, [r4]
|
||||
lsls r1, r0, 4
|
||||
adds r1, r0
|
||||
lsls r1, 2
|
||||
adds r1, r6
|
||||
adds r5, 0x1
|
||||
adds r3, r5
|
||||
ldrb r0, [r3]
|
||||
lsls r0, 3
|
||||
subs r0, 0xC
|
||||
strh r0, [r1, 0x22]
|
||||
ldrb r1, [r4]
|
||||
lsls r0, r1, 4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r6
|
||||
mov r1, r8
|
||||
strh r1, [r0, 0x24]
|
||||
ldrb r1, [r4]
|
||||
lsls r0, r1, 4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r6
|
||||
mov r2, r8
|
||||
strh r2, [r0, 0x26]
|
||||
add r0, sp, 0x14
|
||||
ldr r1, [sp, 0x60]
|
||||
mov r2, r10
|
||||
bl sub_804EE6C
|
||||
lsls r4, r7, 1
|
||||
adds r5, r4, 0
|
||||
adds r5, 0xE
|
||||
lsls r5, 24
|
||||
lsrs r5, 24
|
||||
lsls r0, 24
|
||||
asrs r0, 24
|
||||
movs r2, 0x50
|
||||
subs r2, r0
|
||||
lsrs r0, r2, 31
|
||||
adds r2, r0
|
||||
asrs r2, 1
|
||||
lsls r2, 24
|
||||
lsrs r2, 24
|
||||
ldr r0, _0804EE18 @ =gUnknown_8261F18
|
||||
mov r8, r0
|
||||
str r0, [sp]
|
||||
movs r1, 0
|
||||
str r1, [sp, 0x4]
|
||||
add r0, sp, 0x14
|
||||
str r0, [sp, 0x8]
|
||||
adds r0, r5, 0
|
||||
movs r3, 0x4
|
||||
bl AddTextPrinterParameterized3
|
||||
add r6, sp, 0x28
|
||||
adds r0, r6, 0
|
||||
ldr r1, [sp, 0x60]
|
||||
mov r2, r10
|
||||
bl sub_804EED4
|
||||
adds r4, 0xF
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
movs r1, 0
|
||||
str r1, [sp]
|
||||
str r1, [sp, 0x4]
|
||||
mov r2, r8
|
||||
str r2, [sp, 0x8]
|
||||
str r1, [sp, 0xC]
|
||||
str r6, [sp, 0x10]
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x1
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl AddTextPrinterParameterized4
|
||||
adds r0, r5, 0
|
||||
bl PutWindowTilemap
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x3
|
||||
bl CopyWindowToVram
|
||||
adds r0, r4, 0
|
||||
bl PutWindowTilemap
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x3
|
||||
bl CopyWindowToVram
|
||||
ldr r0, _0804EE10 @ =gUnknown_2031DA8
|
||||
ldr r1, [r0]
|
||||
b _0804EE4A
|
||||
.align 2, 0
|
||||
_0804EE08: .4byte gUnknown_8260834
|
||||
_0804EE0C: .4byte gSprites
|
||||
_0804EE10: .4byte gUnknown_2031DA8
|
||||
_0804EE14: .4byte gTradeMonSpriteCoords
|
||||
_0804EE18: .4byte gUnknown_8261F18
|
||||
_0804EE1C:
|
||||
ldr r0, _0804EE64 @ =gUnknown_8262055
|
||||
lsls r1, r7, 1
|
||||
adds r4, r1, r0
|
||||
ldrb r2, [r4]
|
||||
adds r2, 0x4
|
||||
lsls r2, 24
|
||||
lsrs r2, 24
|
||||
adds r0, 0x1
|
||||
adds r1, r0
|
||||
ldrb r3, [r1]
|
||||
adds r3, 0x1
|
||||
lsls r3, 24
|
||||
lsrs r3, 24
|
||||
ldrb r0, [r4]
|
||||
str r0, [sp]
|
||||
ldrb r0, [r1]
|
||||
str r0, [sp, 0x4]
|
||||
adds r0, r7, 0
|
||||
mov r1, r10
|
||||
bl sub_804F08C
|
||||
ldr r2, _0804EE68 @ =gUnknown_2031DA8
|
||||
ldr r1, [r2]
|
||||
_0804EE4A:
|
||||
adds r1, 0x74
|
||||
adds r1, r7
|
||||
ldrb r0, [r1]
|
||||
adds r0, 0x1
|
||||
strb r0, [r1]
|
||||
_0804EE54:
|
||||
add sp, 0x68
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0804EE64: .4byte gUnknown_8262055
|
||||
_0804EE68: .4byte gUnknown_2031DA8
|
||||
thumb_func_end sub_804EAE4
|
||||
|
||||
thumb_func_start sub_804EE6C
|
||||
sub_804EE6C: @ 804EE6C
|
||||
push {r4,lr}
|
||||
sub sp, 0xC
|
||||
adds r4, r0, 0
|
||||
lsls r1, 24
|
||||
lsls r2, 24
|
||||
lsrs r2, 24
|
||||
cmp r1, 0
|
||||
bne _0804EE94
|
||||
movs r0, 0x64
|
||||
muls r0, r2
|
||||
ldr r1, _0804EE90 @ =gPlayerParty
|
||||
adds r0, r1
|
||||
movs r1, 0x2
|
||||
mov r2, sp
|
||||
bl GetMonData
|
||||
b _0804EEA4
|
||||
.align 2, 0
|
||||
_0804EE90: .4byte gPlayerParty
|
||||
_0804EE94:
|
||||
movs r0, 0x64
|
||||
muls r0, r2
|
||||
ldr r1, _0804EED0 @ =gEnemyParty
|
||||
adds r0, r1
|
||||
movs r1, 0x2
|
||||
mov r2, sp
|
||||
bl GetMonData
|
||||
_0804EEA4:
|
||||
adds r0, r4, 0
|
||||
mov r1, sp
|
||||
bl StringCopy10
|
||||
movs r0, 0
|
||||
movs r1, 0x2
|
||||
bl GetFontAttribute
|
||||
adds r2, r0, 0
|
||||
lsls r2, 24
|
||||
lsrs r2, 24
|
||||
movs r0, 0
|
||||
adds r1, r4, 0
|
||||
bl GetStringWidth
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
add sp, 0xC
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0804EED0: .4byte gEnemyParty
|
||||
thumb_func_end sub_804EE6C
|
||||
|
||||
thumb_func_start sub_804EED4
|
||||
sub_804EED4: @ 804EED4
|
||||
push {r4-r7,lr}
|
||||
mov r7, r9
|
||||
mov r6, r8
|
||||
push {r6,r7}
|
||||
sub sp, 0x8
|
||||
adds r6, r0, 0
|
||||
lsls r1, 24
|
||||
lsrs r7, r1, 24
|
||||
lsls r2, 24
|
||||
lsrs r2, 24
|
||||
ldr r0, _0804EF1C @ =gUnknown_2031DA8
|
||||
ldr r1, [r0]
|
||||
lsls r0, r7, 1
|
||||
adds r0, r7
|
||||
lsls r0, 1
|
||||
adds r0, r2, r0
|
||||
adds r1, 0x51
|
||||
adds r1, r0
|
||||
ldrb r0, [r1]
|
||||
cmp r0, 0
|
||||
bne _0804EF8C
|
||||
movs r4, 0
|
||||
movs r0, 0x64
|
||||
adds r5, r2, 0
|
||||
muls r5, r0
|
||||
ldr r0, _0804EF20 @ =gPlayerParty
|
||||
mov r9, r0
|
||||
ldr r2, _0804EF24 @ =gEnemyParty
|
||||
mov r8, r2
|
||||
_0804EF0E:
|
||||
cmp r7, 0
|
||||
bne _0804EF28
|
||||
adds r1, r4, 0
|
||||
adds r1, 0xD
|
||||
mov r2, r9
|
||||
b _0804EF2E
|
||||
.align 2, 0
|
||||
_0804EF1C: .4byte gUnknown_2031DA8
|
||||
_0804EF20: .4byte gPlayerParty
|
||||
_0804EF24: .4byte gEnemyParty
|
||||
_0804EF28:
|
||||
adds r1, r4, 0
|
||||
adds r1, 0xD
|
||||
mov r2, r8
|
||||
_0804EF2E:
|
||||
adds r0, r5, r2
|
||||
movs r2, 0
|
||||
bl GetMonData
|
||||
lsls r1, r4, 1
|
||||
add r1, sp
|
||||
strh r0, [r1]
|
||||
adds r0, r4, 0x1
|
||||
lsls r0, 16
|
||||
lsrs r4, r0, 16
|
||||
cmp r4, 0x3
|
||||
bls _0804EF0E
|
||||
ldr r1, _0804EF80 @ =gUnknown_8261EB6
|
||||
adds r0, r6, 0
|
||||
bl StringCopy
|
||||
movs r4, 0
|
||||
_0804EF50:
|
||||
lsls r0, r4, 1
|
||||
mov r2, sp
|
||||
adds r1, r2, r0
|
||||
ldrh r0, [r1]
|
||||
cmp r0, 0
|
||||
beq _0804EF6C
|
||||
adds r1, r0, 0
|
||||
movs r0, 0xD
|
||||
muls r1, r0
|
||||
ldr r0, _0804EF84 @ =gMoveNames
|
||||
adds r1, r0
|
||||
adds r0, r6, 0
|
||||
bl StringAppend
|
||||
_0804EF6C:
|
||||
adds r0, r6, 0
|
||||
ldr r1, _0804EF88 @ =gUnknown_8261EC7
|
||||
bl StringAppend
|
||||
adds r0, r4, 0x1
|
||||
lsls r0, 16
|
||||
lsrs r4, r0, 16
|
||||
cmp r4, 0x3
|
||||
bls _0804EF50
|
||||
b _0804EF9C
|
||||
.align 2, 0
|
||||
_0804EF80: .4byte gUnknown_8261EB6
|
||||
_0804EF84: .4byte gMoveNames
|
||||
_0804EF88: .4byte gUnknown_8261EC7
|
||||
_0804EF8C:
|
||||
ldr r1, _0804EFAC @ =gUnknown_8261EB6
|
||||
adds r0, r6, 0
|
||||
bl StringCopy
|
||||
ldr r1, _0804EFB0 @ =gUnknown_841E09F
|
||||
adds r0, r6, 0
|
||||
bl StringAppend
|
||||
_0804EF9C:
|
||||
add sp, 0x8
|
||||
pop {r3,r4}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0804EFAC: .4byte gUnknown_8261EB6
|
||||
_0804EFB0: .4byte gUnknown_841E09F
|
||||
thumb_func_end sub_804EED4
|
||||
|
||||
thumb_func_start sub_804EFB4
|
||||
sub_804EFB4: @ 804EFB4
|
||||
push {r4-r6,lr}
|
||||
@@ -1282,7 +540,7 @@ sub_804F3C8: @ 804F3C8
|
||||
adds r4, r0, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
ldr r1, _0804F430 @ =gUnknown_8260A32
|
||||
ldr r1, _0804F430 @ =gTradePartyBoxTilemap
|
||||
lsls r2, r4, 4
|
||||
subs r2, r4
|
||||
lsls r2, 24
|
||||
@@ -1324,7 +582,7 @@ sub_804F3C8: @ 804F3C8
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0804F430: .4byte gUnknown_8260A32
|
||||
_0804F430: .4byte gTradePartyBoxTilemap
|
||||
_0804F434: .4byte gUnknown_8261ECC
|
||||
_0804F438: .4byte gUnknown_2031DA8
|
||||
_0804F43C: .4byte 0x06010000
|
||||
|
||||
+2
-2
@@ -19,10 +19,10 @@ gUnknown_8260814:: @ 8260814
|
||||
.4byte 0x00000064 @ sizeof(struct Pokemon)
|
||||
.4byte 0x00000528
|
||||
|
||||
gUnknown_8260834:: @ 8260834
|
||||
gTradeMovesBoxTilemap:: @ 8260834
|
||||
.incbin "data/trade/unk_8260834.bin"
|
||||
|
||||
gUnknown_8260A32:: @ 8260A32
|
||||
gTradePartyBoxTilemap:: @ 8260A32
|
||||
.incbin "data/trade/unk_8260A32.bin"
|
||||
|
||||
gUnknown_8260C30:: @ 8260C30
|
||||
|
||||
+206
@@ -19,6 +19,7 @@
|
||||
#include "strings.h"
|
||||
#include "menu.h"
|
||||
#include "overworld.h"
|
||||
#include "battle_anim.h"
|
||||
#include "party_menu.h"
|
||||
#include "pokemon_summary_screen.h"
|
||||
#include "pokemon_storage_system.h"
|
||||
@@ -27,6 +28,7 @@
|
||||
#include "constants/items.h"
|
||||
#include "constants/easy_chat.h"
|
||||
#include "constants/songs.h"
|
||||
#include "constants/moves.h"
|
||||
|
||||
struct TradeResources
|
||||
{
|
||||
@@ -87,7 +89,10 @@ void sub_804DFF0(void);
|
||||
void sub_804E9E4(void);
|
||||
void sub_804EAAC(u8 a0);
|
||||
void sub_804EAE4(u8 side);
|
||||
u8 sub_804EE6C(u8 *str, u8 whichParty, u8 partyIdx);
|
||||
void sub_804EED4(u8 *str, u8 whichParty, u8 partyIdx);
|
||||
void sub_804F020(u8 side);
|
||||
void sub_804F08C(u8 a0, u8 partyIdx, u8 a2, u8 a3, u8 a4, u8 a5);
|
||||
void sub_804F284(u8 side);
|
||||
void sub_804F3B4(void);
|
||||
void sub_804F3C8(u8 a0);
|
||||
@@ -115,6 +120,13 @@ extern const struct SpriteTemplate gUnknown_8261CB0;
|
||||
extern const struct SpriteTemplate gUnknown_8261CC8;
|
||||
extern const u8 gJPText_Shedinja[];
|
||||
extern const u8 gUnknown_8261D08[][4][6];
|
||||
extern const u16 gTradePartyBoxTilemap[];
|
||||
extern const u16 gTradeMovesBoxTilemap[];
|
||||
extern const u8 gUnknown_8262055[][2];
|
||||
extern const u8 gUnknown_8261F18[];
|
||||
extern const u8 gUnknown_8261EB6[];
|
||||
extern const u8 gUnknown_8261EC7[];
|
||||
extern const u8 gUnknown_841E09F[];
|
||||
|
||||
void sub_804C600(void)
|
||||
{
|
||||
@@ -3082,3 +3094,197 @@ void sub_804E944(void)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_804E9C0(void)
|
||||
{
|
||||
if (!sub_80FA484(FALSE))
|
||||
{
|
||||
sub_800AB9C();
|
||||
gUnknown_2031DA8->unk_6F = 13;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_804E9E4(void)
|
||||
{
|
||||
switch (gUnknown_2031DA8->unk_6F)
|
||||
{
|
||||
case 0:
|
||||
sub_804E194();
|
||||
break;
|
||||
case 1:
|
||||
sub_804E388();
|
||||
break;
|
||||
case 2:
|
||||
sub_804E494();
|
||||
break;
|
||||
case 3:
|
||||
sub_804E674();
|
||||
break;
|
||||
case 4:
|
||||
sub_804E744();
|
||||
break;
|
||||
case 6:
|
||||
sub_804E7C8();
|
||||
break;
|
||||
case 7:
|
||||
sub_804E804();
|
||||
break;
|
||||
case 8:
|
||||
sub_804E880();
|
||||
break;
|
||||
case 9:
|
||||
sub_804D50C();
|
||||
break;
|
||||
case 10:
|
||||
sub_804D548();
|
||||
break;
|
||||
case 11:
|
||||
sub_804E908();
|
||||
break;
|
||||
case 12:
|
||||
sub_804E944();
|
||||
break;
|
||||
case 13:
|
||||
sub_804D5A4();
|
||||
break;
|
||||
case 14:
|
||||
sub_804E830();
|
||||
break;
|
||||
case 15:
|
||||
sub_804E46C();
|
||||
break;
|
||||
case 16:
|
||||
sub_804E9C0();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_804EAAC(u8 a0)
|
||||
{
|
||||
u8 whichParty = a0 / PARTY_SIZE;
|
||||
|
||||
if (gUnknown_2031DA8->unk_74[whichParty] == 0)
|
||||
{
|
||||
gUnknown_2031DA8->unk_74[whichParty] = 1;
|
||||
gUnknown_2031DA8->unk_76[whichParty] = a0;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_804EAE4(u8 a0)
|
||||
{
|
||||
s8 nameStringWidth;
|
||||
u8 nickname[20];
|
||||
u8 movesString[56];
|
||||
u8 i;
|
||||
u8 partyIdx;
|
||||
u8 whichParty;
|
||||
u8 monIdx = gUnknown_2031DA8->unk_76[a0];
|
||||
|
||||
whichParty = 1;
|
||||
if (gUnknown_2031DA8->unk_76[a0] < PARTY_SIZE)
|
||||
whichParty = 0;
|
||||
partyIdx = monIdx % PARTY_SIZE;
|
||||
nameStringWidth = 0;
|
||||
|
||||
switch (gUnknown_2031DA8->unk_74[a0])
|
||||
{
|
||||
case 1:
|
||||
for (i = 0; i < gUnknown_2031DA8->partyCounts[a0]; i++)
|
||||
{
|
||||
gSprites[gUnknown_2031DA8->partyIcons[0][i + (whichParty * PARTY_SIZE)]].invisible = TRUE;
|
||||
}
|
||||
|
||||
for (i = 0; i < 6; i++)
|
||||
{
|
||||
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)]]);
|
||||
CopyToBgTilemapBufferRect_ChangePalette(1, gTradePartyBoxTilemap, a0 * 15, 0, 15, 17, 0);
|
||||
CopyBgTilemapBufferToVram(1);
|
||||
CopyBgTilemapBufferToVram(0);
|
||||
|
||||
if (whichParty == 0)
|
||||
sub_804F3B4();
|
||||
break;
|
||||
case 2:
|
||||
if (gSprites[gUnknown_2031DA8->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]].callback == SpriteCB_MonIcon)
|
||||
gUnknown_2031DA8->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;
|
||||
nameStringWidth = sub_804EE6C(nickname, whichParty, partyIdx);
|
||||
AddTextPrinterParameterized3((a0 * 2) + 14, 0, (80 - nameStringWidth) / 2, 4, gUnknown_8261F18, 0, nickname);
|
||||
sub_804EED4(movesString, whichParty, partyIdx);
|
||||
AddTextPrinterParameterized4((a0 * 2) + 15, 1, 0, 0, 0, 0, gUnknown_8261F18, 0, movesString);
|
||||
PutWindowTilemap((a0 * 2) + 14);
|
||||
CopyWindowToVram((a0 * 2) + 14, 3);
|
||||
PutWindowTilemap((a0 * 2) + 15);
|
||||
CopyWindowToVram((a0 * 2) + 15, 3);
|
||||
gUnknown_2031DA8->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]++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
u8 sub_804EE6C(u8 *dest, u8 whichParty, u8 partyIdx)
|
||||
{
|
||||
u8 nickname[11];
|
||||
if (whichParty == 0)
|
||||
GetMonData(&gPlayerParty[partyIdx], MON_DATA_NICKNAME, nickname);
|
||||
else
|
||||
GetMonData(&gEnemyParty[partyIdx], MON_DATA_NICKNAME, nickname);
|
||||
StringCopy10(dest, nickname);
|
||||
return GetStringWidth(0, dest, GetFontAttribute(0, FONTATTR_LETTER_SPACING));
|
||||
}
|
||||
|
||||
void sub_804EED4(u8 *a0, u8 a1, u8 a2)
|
||||
{
|
||||
u16 moves[MAX_MON_MOVES];
|
||||
u16 i;
|
||||
|
||||
if (!gUnknown_2031DA8->unk_51[a1][a2])
|
||||
{
|
||||
for (i = 0; i < MAX_MON_MOVES; i++)
|
||||
{
|
||||
if (!a1)
|
||||
{
|
||||
moves[i] = GetMonData(&gPlayerParty[a2], i + MON_DATA_MOVE1, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
moves[i] = GetMonData(&gEnemyParty[a2], i + MON_DATA_MOVE1, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
StringCopy(a0, gUnknown_8261EB6);
|
||||
|
||||
for (i = 0; i < MAX_MON_MOVES; i++)
|
||||
{
|
||||
if (moves[i] != MOVE_NONE)
|
||||
{
|
||||
StringAppend(a0, gMoveNames[moves[i]]);
|
||||
}
|
||||
|
||||
StringAppend(a0, gUnknown_8261EC7);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
StringCopy(a0, gUnknown_8261EB6);
|
||||
StringAppend(a0, gUnknown_841E09F);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user