trade through sub_804EED4

This commit is contained in:
PikalaxALT
2019-10-28 16:31:59 -04:00
parent efe914a5ba
commit 4e296b8777
3 changed files with 210 additions and 746 deletions
+2 -744
View File
@@ -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
View File
@@ -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
View File
@@ -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);
}
}