summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Huderle <huderlem@gmail.com>2017-09-24 13:05:06 -0700
committerMarcus Huderle <huderlem@gmail.com>2017-09-25 20:31:21 -0700
commit31748e93d8be0b5e8410c2f11b5719d60c2162db (patch)
tree0cde5adac38aad6b6a96c3b737aeecfdc5ae667f
parentc3792f2bd4c6ee3fecea548f45b2a54a9b468ab1 (diff)
More party_menu decomp
-rw-r--r--asm/party_menu.s1997
-rw-r--r--include/party_menu.h21
-rw-r--r--include/pokemon_icon.h3
-rw-r--r--src/battle_party_menu.c2
-rw-r--r--src/choose_party.c6
-rw-r--r--src/party_menu.c758
6 files changed, 760 insertions, 2027 deletions
diff --git a/asm/party_menu.s b/asm/party_menu.s
index 2dfba003b..2c400dd09 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -547,7 +547,7 @@ _0806B344:
lsls r1, 2
adds r4, r0, r1
ldrb r0, [r4]
- bl sub_806D718
+ bl LoadPartyMenuGraphics
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -3655,1999 +3655,4 @@ _0806CAF4: .4byte gUnknown_083769A8
_0806CAF8: .4byte 0x0001a261
thumb_func_end sub_806CA60
- thumb_func_start sub_806CAFC
-sub_806CAFC: @ 806CAFC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _0806CB48 @ =0x02001000
- ldrb r3, [r4, 0x1]
- lsls r2, r3, 4
- adds r2, r3
- lsls r2, 2
- ldr r3, _0806CB4C @ =gSprites
- adds r5, r2, r3
- ldrb r2, [r4, 0x2]
- lsls r4, r2, 4
- adds r4, r2
- lsls r4, 2
- adds r4, r3
- lsls r1, 24
- asrs r1, 24
- bl sub_806BF74
- ldrh r2, [r5, 0x2E]
- movs r0, 0x2E
- ldrsh r1, [r5, r0]
- movs r3, 0x2E
- ldrsh r0, [r4, r3]
- cmp r1, r0
- beq _0806CB54
- adds r0, r1, 0
- lsls r0, 1
- ldr r1, _0806CB50 @ =gUnknown_083769A8
- adds r0, r1
- lsls r1, r2, 24
- lsrs r1, 24
- movs r2, 0x6
- movs r3, 0x1
- bl sub_806BF24
- b _0806CB6A
- .align 2, 0
-_0806CB48: .4byte 0x02001000
-_0806CB4C: .4byte gSprites
-_0806CB50: .4byte gUnknown_083769A8
-_0806CB54:
- movs r3, 0x2E
- ldrsh r0, [r5, r3]
- lsls r0, 1
- ldr r1, _0806CB70 @ =gUnknown_083769A8
- adds r0, r1
- lsls r1, r2, 24
- lsrs r1, 24
- movs r2, 0x6
- movs r3, 0
- bl sub_806BF24
-_0806CB6A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806CB70: .4byte gUnknown_083769A8
- thumb_func_end sub_806CAFC
-
- thumb_func_start sub_806CB74
-sub_806CB74: @ 806CB74
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806CB8C @ =gMain
- ldrh r0, [r0, 0x30]
- cmp r0, 0x20
- beq _0806CBBC
- cmp r0, 0x20
- bgt _0806CB90
- cmp r0, 0x10
- beq _0806CBD0
- b _0806CBDA
- .align 2, 0
-_0806CB8C: .4byte gMain
-_0806CB90:
- cmp r0, 0x40
- beq _0806CB9A
- cmp r0, 0x80
- beq _0806CBAC
- b _0806CBDA
-_0806CB9A:
- ldr r0, _0806CBA8 @ =0x02001000
- ldrb r0, [r0]
- movs r1, 0x1
- negs r1, r1
- bl sub_806CAFC
- b _0806CBDA
- .align 2, 0
-_0806CBA8: .4byte 0x02001000
-_0806CBAC:
- ldr r0, _0806CBB8 @ =0x02001000
- ldrb r0, [r0]
- movs r1, 0x1
- bl sub_806CAFC
- b _0806CBDA
- .align 2, 0
-_0806CBB8: .4byte 0x02001000
-_0806CBBC:
- ldr r0, _0806CBCC @ =0x02001000
- ldrb r0, [r0]
- movs r1, 0x2
- negs r1, r1
- bl sub_806CAFC
- b _0806CBDA
- .align 2, 0
-_0806CBCC: .4byte 0x02001000
-_0806CBD0:
- ldr r0, _0806CC04 @ =0x02001000
- ldrb r0, [r0]
- movs r1, 0x2
- bl sub_806CAFC
-_0806CBDA:
- ldr r0, _0806CC08 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0806CC10
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0806CC0C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806CC04 @ =0x02001000
- ldr r1, [r1, 0xC]
- str r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- b _0806CC24
- .align 2, 0
-_0806CC04: .4byte 0x02001000
-_0806CC08: .4byte gMain
-_0806CC0C: .4byte gTasks
-_0806CC10:
- lsls r0, r1, 16
- lsrs r0, 16
- cmp r0, 0x2
- bne _0806CC24
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_806CD44
-_0806CC24:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_806CB74
-
- thumb_func_start sub_806CC2C
-sub_806CC2C: @ 806CC2C
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _0806CC68 @ =0x02001000
- ldrb r1, [r5, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0806CC6C @ =gSprites
- adds r0, r1
- bl DestroySprite
- movs r0, 0
- movs r1, 0
- bl sub_806D538
- ldr r0, _0806CC70 @ =0x0001a261
- adds r1, r5, r0
- movs r0, 0x2
- strb r0, [r1]
- ldrb r0, [r5]
- bl SwitchTaskToFollowupFunc
- adds r0, r4, 0
- bl DestroyTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806CC68: .4byte 0x02001000
-_0806CC6C: .4byte gSprites
-_0806CC70: .4byte 0x0001a261
- thumb_func_end sub_806CC2C
-
- thumb_func_start sub_806CC74
-sub_806CC74: @ 806CC74
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0806CCD8 @ =gSprites
- mov r8, r0
- ldr r6, _0806CCDC @ =0x02001000
- ldrb r0, [r6, 0x2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r8
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- lsls r0, 1
- ldr r5, _0806CCE0 @ =gUnknown_083769A8
- adds r0, r5
- ldrh r1, [r1, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0x3
- movs r3, 0x1
- bl sub_806BF24
- ldrb r0, [r6, 0x1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r8
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- lsls r0, 1
- adds r0, r5
- ldrh r1, [r1, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0x3
- movs r3, 0
- bl sub_806BF24
- adds r0, r4, 0
- bl sub_806CC2C
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806CCD8: .4byte gSprites
-_0806CCDC: .4byte 0x02001000
-_0806CCE0: .4byte gUnknown_083769A8
- thumb_func_end sub_806CC74
-
- thumb_func_start sub_806CCE4
-sub_806CCE4: @ 806CCE4
- push {r4,r5,lr}
- ldr r3, _0806CD38 @ =gSprites
- ldr r2, _0806CD3C @ =0x02001000
- ldrb r1, [r2, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x2E]
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r1, [r2, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x2E]
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r4, 0x5
- bhi _0806CD1E
- lsls r0, r4, 1
- ldr r1, _0806CD40 @ =gUnknown_083769A8
- adds r0, r1
- adds r1, r4, 0
- movs r2, 0x3
- movs r3, 0
- bl sub_806BF24
-_0806CD1E:
- cmp r5, 0x5
- bhi _0806CD32
- lsls r0, r5, 1
- ldr r1, _0806CD40 @ =gUnknown_083769A8
- adds r0, r1
- adds r1, r5, 0
- movs r2, 0x3
- movs r3, 0x1
- bl sub_806BF24
-_0806CD32:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806CD38: .4byte gSprites
-_0806CD3C: .4byte 0x02001000
-_0806CD40: .4byte gUnknown_083769A8
- thumb_func_end sub_806CCE4
-
- thumb_func_start sub_806CD44
-sub_806CD44: @ 806CD44
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_806CCE4
- adds r0, r4, 0
- bl sub_806CC2C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_806CD44
-
- thumb_func_start sub_806CD5C
-sub_806CD5C: @ 806CD5C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r2, _0806CDA8 @ =gSprites
- ldr r6, _0806CDAC @ =0x02001000
- ldrb r1, [r6, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- lsls r0, 24
- lsrs r5, r0, 24
- mov r9, r5
- ldrb r1, [r6, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- lsls r0, 24
- lsrs r4, r0, 24
- adds r7, r4, 0
- cmp r5, r4
- beq _0806CD9E
- cmp r5, 0x7
- beq _0806CD9E
- cmp r4, 0x7
- bne _0806CDB0
-_0806CD9E:
- mov r0, r8
- bl sub_806CD44
- b _0806CED2
- .align 2, 0
-_0806CDA8: .4byte gSprites
-_0806CDAC: .4byte 0x02001000
-_0806CDB0:
- adds r0, r5, 0
- bl sub_806D5B8
- adds r0, r4, 0
- bl sub_806D5B8
- cmp r5, r4
- bls _0806CDC6
- strb r4, [r6, 0x5]
- strb r5, [r6, 0x6]
- b _0806CDCC
-_0806CDC6:
- mov r0, r9
- strb r0, [r6, 0x5]
- strb r7, [r6, 0x6]
-_0806CDCC:
- ldr r4, _0806CE1C @ =0x02001000
- ldrb r0, [r4]
- ldrb r1, [r4, 0x5]
- bl GetMonIconSpriteId_maybe
- strb r0, [r4, 0x3]
- ldrb r0, [r4]
- ldrb r1, [r4, 0x6]
- bl GetMonIconSpriteId_maybe
- strb r0, [r4, 0x4]
- ldrb r3, [r4, 0x5]
- cmp r3, 0
- bne _0806CE34
- ldr r2, _0806CE20 @ =gSprites
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _0806CE24 @ =0x0000fff8
- strh r1, [r0, 0x2E]
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _0806CE28 @ =0x0000ff58
- strh r1, [r0, 0x32]
- strh r3, [r4, 0x8]
- movs r0, 0xB
- strh r0, [r4, 0xA]
- ldr r1, _0806CE2C @ =gTasks
- mov r3, r8
- lsls r0, r3, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806CE30 @ =sub_806D014
- b _0806CE66
- .align 2, 0
-_0806CE1C: .4byte 0x02001000
-_0806CE20: .4byte gSprites
-_0806CE24: .4byte 0x0000fff8
-_0806CE28: .4byte 0x0000ff58
-_0806CE2C: .4byte gTasks
-_0806CE30: .4byte sub_806D014
-_0806CE34:
- ldr r2, _0806CEE0 @ =gSprites
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x8
- strh r1, [r0, 0x2E]
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0xA8
- strh r1, [r0, 0x32]
- movs r0, 0xB
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
- ldr r1, _0806CEE4 @ =gTasks
- mov r3, r8
- lsls r0, r3, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806CEE8 @ =sub_806D118
-_0806CE66:
- str r1, [r0]
- ldr r0, _0806CEEC @ =0x0001a261
- adds r1, r4, r0
- movs r0, 0x1
- strb r0, [r1]
- adds r6, r2, 0
- ldr r4, _0806CEF0 @ =0x02001000
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r5, r6, 0
- adds r5, 0x1C
- adds r0, r5
- ldr r2, _0806CEF4 @ =sub_806D37C
- str r2, [r0]
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x8
- strh r1, [r0, 0x2E]
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0xA8
- strh r1, [r0, 0x32]
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- str r2, [r0]
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r5
- adds r0, r6
- ldr r1, [r1]
- bl _call_via_r1
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r5, r0, r5
- adds r0, r6
- ldr r1, [r5]
- bl _call_via_r1
-_0806CED2:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806CEE0: .4byte gSprites
-_0806CEE4: .4byte gTasks
-_0806CEE8: .4byte sub_806D118
-_0806CEEC: .4byte 0x0001a261
-_0806CEF0: .4byte 0x02001000
-_0806CEF4: .4byte sub_806D37C
- thumb_func_end sub_806CD5C
-
- thumb_func_start sub_806CEF8
-sub_806CEF8: @ 806CEF8
- ldrh r3, [r0]
- ldrh r2, [r1]
- strh r2, [r0]
- strh r3, [r1]
- bx lr
- thumb_func_end sub_806CEF8
-
- thumb_func_start sub_806CF04
-sub_806CF04: @ 806CF04
- push {r4,r5,lr}
- ldr r4, _0806CF94 @ =0x02001000
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _0806CF98 @ =gSprites + 0x20
- adds r0, r5
- ldrb r2, [r4, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- bl sub_806CEF8
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r5, 0x2
- adds r0, r3
- ldrb r2, [r4, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- bl sub_806CEF8
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r5, 0x4
- adds r0, r3
- ldrb r2, [r4, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- bl sub_806CEF8
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r5, 0
- adds r3, 0xE
- adds r0, r3
- ldrb r2, [r4, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- bl sub_806CEF8
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- subs r5, 0x4
- adds r0, r5
- ldr r2, _0806CF9C @ =sub_806D37C
- str r2, [r0]
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- str r2, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806CF94: .4byte 0x02001000
-_0806CF98: .4byte gSprites + 0x20
-_0806CF9C: .4byte sub_806D37C
- thumb_func_end sub_806CF04
-
- thumb_func_start sub_806CFA0
-sub_806CFA0: @ 806CFA0
- push {r4-r6,lr}
- lsls r4, r1, 24
- lsrs r4, 24
- ldr r5, _0806CFDC @ =0x02001000
- ldrb r1, [r5, 0x6]
- subs r1, 0x1
- lsls r0, r1, 1
- adds r0, r1
- adds r0, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- movs r1, 0x3
- bl sub_806BA34
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- adds r1, r6, 0
- bl sub_806BB3C
- cmp r4, 0
- bne _0806CFE0
- ldrh r0, [r5, 0x8]
- subs r0, 0x1
- strh r0, [r5, 0x8]
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- b _0806CFEA
- .align 2, 0
-_0806CFDC: .4byte 0x02001000
-_0806CFE0:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- ldrh r0, [r5, 0xA]
- subs r0, 0x1
-_0806CFEA:
- strh r0, [r5, 0xA]
- ldr r4, _0806D010 @ =0x02001000
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- movs r1, 0x3
- movs r2, 0xA
- bl sub_806B9A4
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0xA
- bl sub_806BA94
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D010: .4byte 0x02001000
- thumb_func_end sub_806CFA0
-
- thumb_func_start sub_806D014
-sub_806D014: @ 806D014
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- movs r1, 0
- bl sub_806CFA0
- ldr r2, _0806D050 @ =0x02001000
- movs r0, 0x8
- ldrsh r1, [r2, r0]
- movs r0, 0xD
- negs r0, r0
- cmp r1, r0
- bge _0806D04A
- movs r1, 0xA
- ldrsh r0, [r2, r1]
- cmp r0, 0x20
- ble _0806D04A
- bl sub_806CF04
- ldr r0, _0806D054 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806D058 @ =sub_806D05C
- str r0, [r1]
-_0806D04A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D050: .4byte 0x02001000
-_0806D054: .4byte gTasks
-_0806D058: .4byte sub_806D05C
- thumb_func_end sub_806D014
-
- thumb_func_start sub_806D05C
-sub_806D05C: @ 806D05C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806CFA0
- ldr r0, _0806D08C @ =0x02001000
- ldr r1, [r0, 0x8]
- movs r0, 0xB0
- lsls r0, 12
- cmp r1, r0
- bne _0806D084
- ldr r0, _0806D090 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806D094 @ =sub_806D198
- str r0, [r1]
-_0806D084:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D08C: .4byte 0x02001000
-_0806D090: .4byte gTasks
-_0806D094: .4byte sub_806D198
- thumb_func_end sub_806D05C
-
- thumb_func_start sub_806D098
-sub_806D098: @ 806D098
- push {r4-r7,lr}
- lsls r4, r1, 24
- lsrs r4, 24
- ldr r5, _0806D0E0 @ =0x02001000
- ldrb r1, [r5, 0x5]
- subs r1, 0x1
- lsls r0, r1, 1
- adds r0, r1
- adds r0, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldrb r1, [r5, 0x6]
- subs r1, 0x1
- lsls r0, r1, 1
- adds r0, r1
- adds r0, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- adds r1, r7, 0
- bl sub_806BB3C
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- adds r1, r6, 0
- bl sub_806BB3C
- cmp r4, 0
- bne _0806D0E4
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- b _0806D0EE
- .align 2, 0
-_0806D0E0: .4byte 0x02001000
-_0806D0E4:
- ldrh r0, [r5, 0x8]
- subs r0, 0x1
- strh r0, [r5, 0x8]
- ldrh r0, [r5, 0xA]
- subs r0, 0x1
-_0806D0EE:
- strh r0, [r5, 0xA]
- ldr r4, _0806D114 @ =0x02001000
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- adds r1, r7, 0
- movs r2, 0
- movs r3, 0xA
- bl sub_806BA94
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0xA
- bl sub_806BA94
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D114: .4byte 0x02001000
- thumb_func_end sub_806D098
-
- thumb_func_start sub_806D118
-sub_806D118: @ 806D118
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- movs r1, 0
- bl sub_806D098
- ldr r1, _0806D150 @ =0x02001000
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0x20
- ble _0806D14A
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0x20
- ble _0806D14A
- bl sub_806CF04
- ldr r0, _0806D154 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806D158 @ =sub_806D15C
- str r0, [r1]
-_0806D14A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D150: .4byte 0x02001000
-_0806D154: .4byte gTasks
-_0806D158: .4byte sub_806D15C
- thumb_func_end sub_806D118
-
- thumb_func_start sub_806D15C
-sub_806D15C: @ 806D15C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806D098
- ldr r0, _0806D188 @ =0x02001000
- ldr r1, [r0, 0x8]
- ldr r0, _0806D18C @ =0x000b000b
- cmp r1, r0
- bne _0806D182
- ldr r0, _0806D190 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806D194 @ =sub_806D198
- str r0, [r1]
-_0806D182:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D188: .4byte 0x02001000
-_0806D18C: .4byte 0x000b000b
-_0806D190: .4byte gTasks
-_0806D194: .4byte sub_806D198
- thumb_func_end sub_806D15C
-
- thumb_func_start sub_806D198
-sub_806D198: @ 806D198
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r10, r0
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r4, _0806D364 @ =0x02001000
- ldrb r0, [r4]
- ldrb r1, [r4, 0x5]
- ldrb r2, [r4, 0x4]
- bl SetMonIconSpriteId_maybe
- ldrb r0, [r4]
- ldrb r1, [r4, 0x6]
- ldrb r2, [r4, 0x3]
- bl SetMonIconSpriteId_maybe
- bl IsDoubleBattle
- ldr r5, _0806D368 @ =gSprites
- ldrb r1, [r4, 0x3]
- lsls r3, r1, 4
- adds r3, r1
- lsls r3, 2
- adds r3, r5
- ldr r6, _0806D36C @ =gUnknown_08376678
- ldrb r2, [r4, 0x6]
- lsls r2, 2
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r2, r1
- adds r2, r6
- ldrb r0, [r2]
- movs r1, 0
- mov r8, r1
- strh r0, [r3, 0x20]
- bl IsDoubleBattle
- ldrb r1, [r4, 0x3]
- lsls r3, r1, 4
- adds r3, r1
- lsls r3, 2
- adds r3, r5
- ldrb r2, [r4, 0x6]
- lsls r2, 2
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r2, r1
- adds r2, r6
- ldrb r0, [r2, 0x1]
- strh r0, [r3, 0x22]
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x24]
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x26]
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- movs r1, 0x1C
- adds r1, r5
- mov r9, r1
- add r0, r9
- ldr r7, _0806D370 @ =UpdateMonIconFrame_806DA38
- str r7, [r0]
- bl IsDoubleBattle
- ldrb r1, [r4, 0x4]
- lsls r3, r1, 4
- adds r3, r1
- lsls r3, 2
- adds r3, r5
- ldrb r2, [r4, 0x5]
- lsls r2, 2
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r2, r1
- adds r2, r6
- ldrb r0, [r2]
- strh r0, [r3, 0x20]
- bl IsDoubleBattle
- ldrb r1, [r4, 0x4]
- lsls r3, r1, 4
- adds r3, r1
- lsls r3, 2
- adds r3, r5
- ldrb r2, [r4, 0x5]
- lsls r2, 2
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r2, r1
- adds r2, r6
- ldrb r0, [r2, 0x1]
- strh r0, [r3, 0x22]
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x24]
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x26]
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- str r7, [r0]
- ldrb r0, [r4]
- ldrb r2, [r4, 0x2]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- ldrh r1, [r1, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- bl GetMonIconSpriteId_maybe
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r9
- ldr r0, _0806D374 @ =UpdateMonIconFrame_806DA0C
- str r0, [r1]
- ldrb r0, [r4, 0x5]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _0806D378 @ =gPlayerParty
- adds r0, r5
- ldrb r1, [r4, 0x6]
- muls r1, r6
- adds r1, r5
- bl SwapPokemon
- ldrb r0, [r4, 0x5]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r5
- bl PartyMenuPrintMonLevelOrStatus
- ldrb r0, [r4, 0x5]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r5
- bl TryPrintPartyMenuMonNickname
- ldrb r0, [r4, 0x5]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r5
- bl PartyMenuTryPrintHP
- ldrb r0, [r4, 0x5]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r5
- bl nullsub_12
- ldrb r0, [r4, 0x6]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r5
- bl PartyMenuPrintMonLevelOrStatus
- ldrb r0, [r4, 0x6]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r5
- bl TryPrintPartyMenuMonNickname
- ldrb r0, [r4, 0x6]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r5
- bl PartyMenuTryPrintHP
- ldrb r0, [r4, 0x6]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r5
- bl nullsub_12
- bl PartyMenuDrawHPBars
- mov r0, r10
- bl sub_806CC74
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D364: .4byte 0x02001000
-_0806D368: .4byte gSprites
-_0806D36C: .4byte gUnknown_08376678
-_0806D370: .4byte UpdateMonIconFrame_806DA38
-_0806D374: .4byte UpdateMonIconFrame_806DA0C
-_0806D378: .4byte gPlayerParty
- thumb_func_end sub_806D198
-
- thumb_func_start sub_806D37C
-sub_806D37C: @ 806D37C
- push {r4,lr}
- adds r4, r0, 0
- bl UpdateMonIconFrame
- ldrh r2, [r4, 0x24]
- movs r0, 0x24
- ldrsh r1, [r4, r0]
- movs r3, 0x32
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _0806D3A8
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- negs r0, r0
- movs r1, 0
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x32]
- ldr r0, _0806D3A4 @ =UpdateMonIconFrame_806DA38
- str r0, [r4, 0x1C]
- b _0806D3AE
- .align 2, 0
-_0806D3A4: .4byte UpdateMonIconFrame_806DA38
-_0806D3A8:
- ldrh r0, [r4, 0x2E]
- adds r0, r2, r0
- strh r0, [r4, 0x24]
-_0806D3AE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_806D37C
-
- thumb_func_start sub_806D3B4
-sub_806D3B4: @ 806D3B4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r4, 16
- lsrs r4, 16
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- ldr r6, _0806D438 @ =gUnknown_083769C0
- ldr r1, _0806D43C @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0x8]
- ldrb r1, [r6, 0x2]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrb r1, [r6, 0x3]
- bl sub_806BA34
- ldrh r0, [r5, 0x8]
- ldrb r1, [r6, 0x8]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrb r1, [r6, 0x9]
- bl sub_806BB3C
- ldrh r0, [r5, 0x8]
- ldrb r1, [r6, 0xA]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrb r1, [r6, 0xB]
- bl sub_806BB3C
- ldrh r1, [r5, 0x8]
- subs r1, 0x1
- strh r1, [r5, 0x8]
- ldrb r0, [r6, 0x2]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrb r1, [r6, 0x3]
- movs r2, 0x4
- bl sub_806B9A4
- cmp r4, 0
- beq _0806D440
- ldrh r0, [r5, 0x8]
- ldrb r1, [r6, 0x8]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrb r1, [r6, 0x9]
- movs r2, 0
- movs r3, 0x4
- bl sub_806BA94
- b _0806D454
- .align 2, 0
-_0806D438: .4byte gUnknown_083769C0
-_0806D43C: .4byte gTasks
-_0806D440:
- ldrh r0, [r5, 0x8]
- ldrb r1, [r6, 0x8]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrb r1, [r6, 0x9]
- movs r2, 0x1
- movs r3, 0x4
- bl sub_806BA94
-_0806D454:
- mov r0, r8
- cmp r0, 0
- beq _0806D480
- ldr r1, _0806D47C @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x8]
- ldrb r1, [r6, 0xA]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrb r1, [r6, 0xB]
- movs r2, 0
- movs r3, 0x4
- bl sub_806BA94
- b _0806D49E
- .align 2, 0
-_0806D47C: .4byte gTasks
-_0806D480:
- ldr r1, _0806D4A8 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x8]
- ldrb r1, [r6, 0xA]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrb r1, [r6, 0xB]
- movs r2, 0x1
- movs r3, 0x4
- bl sub_806BA94
-_0806D49E:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D4A8: .4byte gTasks
- thumb_func_end sub_806D3B4
-
- thumb_func_start sub_806D4AC
-sub_806D4AC: @ 806D4AC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 16
- lsls r2, 24
- lsrs r2, 24
- cmp r1, 0
- beq _0806D4F6
- adds r1, r2, 0x3
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl GetMonIconSpriteId_maybe
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0806D4FC @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r4, r1, r2
- ldr r0, _0806D500 @ =0x0000fff8
- strh r0, [r4, 0x2E]
- ldr r3, _0806D504 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r3
- movs r3, 0x8
- ldrsh r0, [r0, r3]
- lsls r0, 3
- negs r0, r0
- strh r0, [r4, 0x32]
- adds r2, 0x1C
- adds r1, r2
- ldr r0, _0806D508 @ =sub_806D37C
- str r0, [r1]
-_0806D4F6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D4FC: .4byte gSprites
-_0806D500: .4byte 0x0000fff8
-_0806D504: .4byte gTasks
-_0806D508: .4byte sub_806D37C
- thumb_func_end sub_806D4AC
-
- thumb_func_start sub_806D50C
-sub_806D50C: @ 806D50C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- bl GetMonIconSpriteId_maybe
- ldr r2, _0806D534 @ =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x20]
- adds r0, 0xF0
- strh r0, [r1, 0x20]
- pop {r0}
- bx r0
- .align 2, 0
-_0806D534: .4byte gSprites
- thumb_func_end sub_806D50C
-
- thumb_func_start sub_806D538
-sub_806D538: @ 806D538
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r1, 24
- adds r0, r1, 0
- cmp r4, 0xFF
- beq _0806D59A
- cmp r1, 0x1
- beq _0806D568
- cmp r1, 0x1
- bgt _0806D556
- cmp r1, 0
- beq _0806D560
- b _0806D58A
-_0806D556:
- cmp r0, 0x2
- beq _0806D570
- cmp r0, 0x3
- beq _0806D57E
- b _0806D58A
-_0806D560:
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x17
- b _0806D576
-_0806D568:
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x13
- b _0806D576
-_0806D570:
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x16
-_0806D576:
- movs r3, 0x13
- bl MenuDrawTextWindow
- b _0806D58A
-_0806D57E:
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x12
- movs r3, 0x13
- bl MenuDrawTextWindow
-_0806D58A:
- ldr r0, _0806D5A0 @ =gUnknown_08376624
- lsls r1, r4, 2
- adds r1, r0
- ldr r0, [r1]
- movs r1, 0x1
- movs r2, 0x11
- bl MenuPrint
-_0806D59A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D5A0: .4byte gUnknown_08376624
- thumb_func_end sub_806D538
-
- thumb_func_start sub_806D5A4
-sub_806D5A4: @ 806D5A4
- push {lr}
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- thumb_func_end sub_806D5A4
-
- thumb_func_start sub_806D5B8
-sub_806D5B8: @ 806D5B8
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x8
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _0806D658 @ =gUnknown_08376948
- bl IsDoubleBattle
- lsls r4, r5, 2
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r4, r1
- adds r1, r6
- ldrb r1, [r1]
- mov r10, r1
- bl IsDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r4, r1
- adds r1, r6
- ldrb r1, [r1, 0x1]
- mov r9, r1
- bl IsDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r4, r1
- adds r1, r6
- ldrb r1, [r1, 0x2]
- mov r8, r1
- bl IsDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r4, r1
- adds r4, r6
- ldrb r1, [r4, 0x3]
- ldr r0, _0806D65C @ =gUnknown_03004210
- str r1, [sp]
- mov r1, r10
- mov r2, r9
- mov r3, r8
- bl ZeroFillWindowRect
- movs r0, 0
- str r0, [sp, 0x4]
- lsls r5, 10
- ldr r0, _0806D660 @ =0x06014000
- adds r5, r0
- ldr r2, _0806D664 @ =0x01000100
- add r0, sp, 0x4
- adds r1, r5, 0
- bl CpuFastSet
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D658: .4byte gUnknown_08376948
-_0806D65C: .4byte gUnknown_03004210
-_0806D660: .4byte 0x06014000
-_0806D664: .4byte 0x01000100
- thumb_func_end sub_806D5B8
-
- thumb_func_start sub_806D668
-sub_806D668: @ 806D668
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x8
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _0806D708 @ =gUnknown_08376978
- bl IsDoubleBattle
- lsls r4, r5, 2
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r4, r1
- adds r1, r6
- ldrb r1, [r1]
- mov r10, r1
- bl IsDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r4, r1
- adds r1, r6
- ldrb r1, [r1, 0x1]
- mov r9, r1
- bl IsDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r4, r1
- adds r1, r6
- ldrb r1, [r1, 0x2]
- mov r8, r1
- bl IsDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r4, r1
- adds r4, r6
- ldrb r1, [r4, 0x3]
- ldr r0, _0806D70C @ =gUnknown_03004210
- str r1, [sp]
- mov r1, r10
- mov r2, r9
- mov r3, r8
- bl ZeroFillWindowRect
- movs r0, 0
- str r0, [sp, 0x4]
- lsls r5, 10
- ldr r0, _0806D710 @ =0x06014300
- adds r5, r0
- ldr r2, _0806D714 @ =0x01000040
- add r0, sp, 0x4
- adds r1, r5, 0
- bl CpuFastSet
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D708: .4byte gUnknown_08376978
-_0806D70C: .4byte gUnknown_03004210
-_0806D710: .4byte 0x06014300
-_0806D714: .4byte 0x01000040
- thumb_func_end sub_806D668
-
- thumb_func_start sub_806D718
-sub_806D718: @ 806D718
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _0806D7C4 @ =0x00007fff
- mov r0, sp
- strh r1, [r0]
- movs r5, 0
- cmp r4, 0x1
- bhi _0806D736
- ldr r0, _0806D7C8 @ =gPartyMenuMisc_Gfx
- movs r1, 0xC0
- lsls r1, 19
- bl LZDecompressVram
-_0806D736:
- cmp r4, 0x2
- beq _0806D73E
- cmp r4, 0
- bne _0806D746
-_0806D73E:
- ldr r0, _0806D7CC @ =gPartyMenuMisc_Tilemap
- ldr r1, _0806D7D0 @ =0x06003800
- bl LZDecompressVram
-_0806D746:
- cmp r4, 0x3
- beq _0806D74E
- cmp r4, 0
- bne _0806D75A
-_0806D74E:
- ldr r0, _0806D7D4 @ =gPartyMenuMisc_Pal
- movs r2, 0xB0
- lsls r2, 1
- movs r1, 0
- bl LoadCompressedPalette
-_0806D75A:
- cmp r4, 0x4
- beq _0806D762
- cmp r4, 0
- bne _0806D776
-_0806D762:
- mov r0, sp
- movs r1, 0
- movs r2, 0x2
- bl LoadPalette
- ldr r0, _0806D7D8 @ =gFontDefaultPalette
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
-_0806D776:
- cmp r4, 0x5
- beq _0806D77E
- cmp r4, 0
- bne _0806D786
-_0806D77E:
- ldr r0, _0806D7DC @ =gPartyMenuHpBar_Gfx
- ldr r1, _0806D7E0 @ =0x06006000
- bl LZDecompressVram
-_0806D786:
- cmp r4, 0x6
- beq _0806D78E
- cmp r4, 0
- bne _0806D796
-_0806D78E:
- ldr r0, _0806D7E4 @ =gPartyMenuOrderText_Gfx
- ldr r1, _0806D7E8 @ =0x06006180
- bl LZDecompressVram
-_0806D796:
- cmp r4, 0x7
- beq _0806D79E
- cmp r4, 0
- bne _0806D7A6
-_0806D79E:
- ldr r0, _0806D7EC @ =gStatusGfx_Icons
- ldr r1, _0806D7F0 @ =0x06007180
- bl LZDecompressVram
-_0806D7A6:
- cmp r4, 0x8
- beq _0806D7AE
- cmp r4, 0
- bne _0806D7BA
-_0806D7AE:
- ldr r0, _0806D7F4 @ =gStatusPal_Icons
- movs r1, 0xB0
- movs r2, 0x20
- bl LoadCompressedPalette
- movs r5, 0x1
-_0806D7BA:
- adds r0, r5, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806D7C4: .4byte 0x00007fff
-_0806D7C8: .4byte gPartyMenuMisc_Gfx
-_0806D7CC: .4byte gPartyMenuMisc_Tilemap
-_0806D7D0: .4byte 0x06003800
-_0806D7D4: .4byte gPartyMenuMisc_Pal
-_0806D7D8: .4byte gFontDefaultPalette
-_0806D7DC: .4byte gPartyMenuHpBar_Gfx
-_0806D7E0: .4byte 0x06006000
-_0806D7E4: .4byte gPartyMenuOrderText_Gfx
-_0806D7E8: .4byte 0x06006180
-_0806D7EC: .4byte gStatusGfx_Icons
-_0806D7F0: .4byte 0x06007180
-_0806D7F4: .4byte gStatusPal_Icons
- thumb_func_end sub_806D718
-
- thumb_func_start SetMonIconAnimByHP
-SetMonIconAnimByHP: @ 806D7F8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsls r2, 16
- lsrs r5, r1, 16
- asrs r1, 16
- lsrs r4, r2, 16
- asrs r2, 16
- adds r0, r1, 0
- adds r1, r2, 0
- bl GetHPBarLevel
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0
- cmp r5, r4
- beq _0806D830
- movs r2, 0x1
- cmp r0, 0x3
- beq _0806D830
- movs r2, 0x2
- cmp r0, 0x2
- beq _0806D830
- movs r2, 0x4
- cmp r0, 0x1
- bne _0806D830
- movs r2, 0x3
-_0806D830:
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- ldr r1, _0806D848 @ =gSprites
- adds r0, r1
- adds r1, r2, 0
- bl sub_809D824
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D848: .4byte gSprites
- thumb_func_end SetMonIconAnimByHP
-
- thumb_func_start SetMonIconAnim
-SetMonIconAnim: @ 806D84C
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- movs r1, 0x39
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r6, 0
- movs r1, 0x3A
- bl GetMonData
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl SetMonIconAnimByHP
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end SetMonIconAnim
-
- thumb_func_start CreatePartyMenuMonIcon
-CreatePartyMenuMonIcon: @ 806D880
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x8
- adds r6, r0, 0
- adds r5, r1, 0
- mov r8, r3
- lsls r6, 24
- lsrs r6, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _0806D904 @ =gUnknown_08376678
- lsls r1, r5, 2
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r1, r3
- ldrb r0, [r1]
- mov r9, r0
- ldrb r1, [r1, 0x1]
- mov r10, r1
- mov r0, r8
- movs r1, 0x41
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0
- bl GetMonData
- ldr r1, _0806D908 @ =sub_809D62C
- movs r2, 0x5
- str r2, [sp]
- str r0, [sp, 0x4]
- adds r0, r4, 0
- mov r2, r9
- mov r3, r10
- bl CreateMonIcon
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl SetMonIconSpriteId_maybe
- adds r0, r4, 0
- mov r1, r8
- bl SetMonIconAnim
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D904: .4byte gUnknown_08376678
-_0806D908: .4byte sub_809D62C
- thumb_func_end CreatePartyMenuMonIcon
-
- thumb_func_start TryCreatePartyMenuMonIcon
-TryCreatePartyMenuMonIcon: @ 806D90C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r2, 0
- lsls r0, 24
- lsrs r6, r0, 24
- mov r8, r6
- lsls r1, 24
- lsrs r5, r1, 24
- adds r7, r5, 0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806D95A
- bl IsLinkDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806D946
- adds r0, r6, 0
- adds r1, r5, 0
- movs r2, 0x2
- adds r3, r4, 0
- bl CreatePartyMenuMonIcon
- b _0806D95A
-_0806D946:
- bl IsDoubleBattle
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- mov r0, r8
- adds r1, r7, 0
- adds r3, r4, 0
- bl CreatePartyMenuMonIcon
-_0806D95A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end TryCreatePartyMenuMonIcon
-
- thumb_func_start unref_sub_806D964
-unref_sub_806D964: @ 806D964
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- b _0806D986
-_0806D96E:
- movs r0, 0x64
- adds r2, r4, 0
- muls r2, r0
- ldr r0, _0806D994 @ =gPlayerParty
- adds r2, r0
- adds r0, r5, 0
- adds r1, r4, 0
- bl TryCreatePartyMenuMonIcon
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_0806D986:
- ldr r0, _0806D998 @ =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r4, r0
- bcc _0806D96E
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D994: .4byte gPlayerParty
-_0806D998: .4byte gPlayerPartyCount
- thumb_func_end unref_sub_806D964
-
- thumb_func_start CreateMonIcon_806D99C
-CreateMonIcon_806D99C: @ 806D99C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r6, r0, 0
- adds r5, r1, 0
- mov r8, r3
- lsls r6, 24
- lsrs r6, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _0806DA04 @ =gUnknown_08376678
- lsls r1, r5, 2
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r1, r3
- ldrb r2, [r1]
- ldrb r3, [r1, 0x1]
- mov r1, r8
- ldrh r0, [r1]
- ldr r1, _0806DA08 @ =sub_809D62C
- movs r4, 0x5
- str r4, [sp]
- mov r7, r8
- ldr r4, [r7, 0x18]
- str r4, [sp, 0x4]
- bl CreateMonIcon
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl SetMonIconSpriteId_maybe
- ldrh r1, [r7, 0x10]
- ldrh r2, [r7, 0x12]
- adds r0, r4, 0
- bl SetMonIconAnimByHP
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DA04: .4byte gUnknown_08376678
-_0806DA08: .4byte sub_809D62C
- thumb_func_end CreateMonIcon_806D99C
-
- thumb_func_start UpdateMonIconFrame_806DA0C
-UpdateMonIconFrame_806DA0C: @ 806DA0C
- push {r4,lr}
- adds r4, r0, 0
- bl UpdateMonIconFrame
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _0806DA32
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0806DA30
- ldr r0, _0806DA2C @ =0x0000fffd
- strh r0, [r4, 0x26]
- b _0806DA32
- .align 2, 0
-_0806DA2C: .4byte 0x0000fffd
-_0806DA30:
- strh r1, [r4, 0x26]
-_0806DA32:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end UpdateMonIconFrame_806DA0C
-
- thumb_func_start UpdateMonIconFrame_806DA38
-UpdateMonIconFrame_806DA38: @ 806DA38
- push {lr}
- bl UpdateMonIconFrame
- pop {r0}
- bx r0
- thumb_func_end UpdateMonIconFrame_806DA38
-
- thumb_func_start UpdateMonIconFrame_806DA44
-UpdateMonIconFrame_806DA44: @ 806DA44
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- cmp r1, 0x5
- bhi _0806DA8E
- bl GetMonIconSpriteId_maybe
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0806DA7C @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r2, r1, 2
- adds r1, r2, r3
- movs r0, 0
- strh r0, [r1, 0x26]
- strh r0, [r1, 0x2E]
- cmp r4, 0
- bne _0806DA84
- adds r0, r3, 0
- adds r0, 0x1C
- adds r0, r2, r0
- ldr r1, _0806DA80 @ =UpdateMonIconFrame_806DA38
- b _0806DA8C
- .align 2, 0
-_0806DA7C: .4byte gSprites
-_0806DA80: .4byte UpdateMonIconFrame_806DA38
-_0806DA84:
- adds r0, r3, 0
- adds r0, 0x1C
- adds r0, r2, r0
- ldr r1, _0806DA94 @ =UpdateMonIconFrame_806DA0C
-_0806DA8C:
- str r1, [r0]
-_0806DA8E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DA94: .4byte UpdateMonIconFrame_806DA0C
- thumb_func_end UpdateMonIconFrame_806DA44
-
.align 2, 0 @ Don't pad with nop.
diff --git a/include/party_menu.h b/include/party_menu.h
index cf6d06650..510c12616 100644
--- a/include/party_menu.h
+++ b/include/party_menu.h
@@ -58,11 +58,9 @@ struct Unk2001000
u8 unk5;
u8 unk6;
u8 unk7;
- u8 unk8;
- u8 unk9;
- u8 unkA;
- u8 unkB;
- void* unkC;
+ s16 unk8;
+ s16 unkA;
+ TaskFunc unkC;
u16 array[53561];
};
@@ -85,18 +83,23 @@ u8 sub_806BD58(u8, u8);
u8 sub_806BD58(u8, u8);
u16 sub_806BD80(u8);
void task_pc_turn_off();
-void sub_806BF74(u8 arg0, u8 arg1);
+void sub_806BF74(u8 arg0, s8 arg1);
void sub_806C994(u8 arg0, u8 arg1);
u8 sub_806CA38(u8 taskID);
void sub_806CB74(u8 taskId);
void sub_806CCE4(void);
void sub_806CD44(u8 taskId);
+void sub_806D3B4(u8 taskId, u16 species1, u16 species2);
+void sub_806D4AC(u8 taskId, u16 species, u8 c);
+void sub_806D50C(u8 taskId, u8 monIndex);
void sub_806D538(u8 arg0, u8 arg1);
void sub_806D5A4(void);
-void SetMonIconAnim();
-void TryCreatePartyMenuMonIcon(u8, u8, struct Pokemon *);
+void SetMonIconAnim(u8 spriteId, struct Pokemon *pokemon);
+void CreatePartyMenuMonIcon(u8 taskId, u8 monIndex, u8 c, struct Pokemon *pokemon);
+void TryCreatePartyMenuMonIcon(u8 a, u8 monIndex, struct Pokemon *pokemon);
void LoadHeldItemIconGraphics(void);
void PartyMenuTryGiveMonHeldItem(u8 taskId, u16 newItem, TaskFunc c);
+void SetMonIconSpriteId_maybe(u8 taskId, u8 monIndex, u8 spriteId);
void CreateHeldItemIcons_806DC34(u8 taskId);
void SetHeldItemIconVisibility(u8 a, u8 monIndex);
void PartyMenuDoPrintMonNickname(u8 monIndex, int b, const u8 *nameBuffer);
@@ -173,7 +176,7 @@ void sub_806CD5C(u8 taskId);
void DoTakeMail(u8 taskId, TaskFunc func);
void PartyMenuTryGiveMonHeldItem_806ECE8(u8 taskId, TaskFunc func);
void PartyMenuTryGiveMonMail(u8 taskId, TaskFunc func);
-void sub_806D668(u8 partyID);
+void sub_806D668(u8 monIndex);
void TaughtMove(u8 taskId);
void StopTryingToTeachMove_806F588(u8 taskId);
diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h
index 98f984564..62b3eb438 100644
--- a/include/pokemon_icon.h
+++ b/include/pokemon_icon.h
@@ -1,7 +1,6 @@
#ifndef GUARD_POKEMON_ICON_H
#define GUARD_POKEMON_ICON_H
-u8 CreateMonIcon();
u8 sub_809D3A4(u16 arg0, void (*)(struct Sprite *), int, u8 arg3, u32 arg4);
u16 GetUnownLetterByPersonality(u32);
u16 sub_809D4A8(u16);
@@ -9,6 +8,6 @@ void sub_809D510(struct Sprite *);
void sub_809D51C(void);
void sub_809D580(u16);
void sub_809D608(u16);
-void UpdateMonIconFrame(struct Sprite *sprite);
+void sub_809D824(struct Sprite *sprite, u8 animNum);
#endif // GUARD_POKEMON_ICON_H
diff --git a/src/battle_party_menu.c b/src/battle_party_menu.c
index f8f43e2bd..9a71c09e8 100644
--- a/src/battle_party_menu.c
+++ b/src/battle_party_menu.c
@@ -23,12 +23,10 @@ extern u8 ewram[];
#define UNK_201606C_ARRAY (ewram + 0x1606C) // lazy define but whatever.
extern u8 IsLinkDoubleBattle(void);
-extern void TryCreatePartyMenuMonIcon(u8, u8, struct Pokemon *);
extern u8 sub_806BD58(u8, u8);
extern void PartyMenuPrintMonsLevelOrStatus(void);
extern void nullsub_13(void);
extern u8 sub_806B58C(u8);
-extern void sub_806D5A4(void);
extern void sub_802E414(void);
extern void sub_80A6DCC(void);
extern void sub_806AF4C();
diff --git a/src/choose_party.c b/src/choose_party.c
index aa2e04f03..f798baab1 100644
--- a/src/choose_party.c
+++ b/src/choose_party.c
@@ -43,7 +43,6 @@ extern const u16 gBattleTowerBanlist[];
EWRAM_DATA u8 gSelectedOrderFromParty[3] = {0};
extern void OpenPartyMenu();
-extern void TryCreatePartyMenuMonIcon(u8, u8, struct Pokemon *);
extern u8 sub_806BD58(u8, u8);
extern void PartyMenuPrintMonsLevelOrStatus(void);
extern void sub_806BC3C(u8, u8);
@@ -57,17 +56,12 @@ extern void sub_806AEDC(void);
extern void sub_806AF4C();
extern void ShowPokemonSummaryScreen(struct Pokemon *, u8, u8, void (*)(void), int);
extern void sub_806C890();
-extern void sub_806D5A4();
extern void sub_806B908(void);
extern void CreateMonIcon_806D99C(int, u8, int, struct UnknownPokemonStruct2 *);
-extern void sub_806D50C(int, u8);
-extern void CreatePartyMenuMonIcon();
extern void CreateHeldItemIcon_806DCD4(int, u8, int);
extern u8 GetMonStatusAndPokerus();
extern void PartyMenuPrintHP();
extern bool8 sub_80F9344(void);
-extern void sub_806D4AC();
-extern void sub_806D3B4();
extern void sub_806BCE8(void);
static void ClearPartySelection(void);
diff --git a/src/party_menu.c b/src/party_menu.c
index 48576a156..0f7e95612 100644
--- a/src/party_menu.c
+++ b/src/party_menu.c
@@ -4,6 +4,7 @@
#include "battle_interface.h"
#include "battle_party_menu.h"
#include "data2.h"
+#include "decompress.h"
#include "event_data.h"
#include "evolution_scene.h"
#include "item.h"
@@ -15,6 +16,7 @@
#include "menu.h"
#include "palette.h"
#include "pokemon.h"
+#include "pokemon_icon.h"
#include "pokemon_item_effect.h"
#include "pokemon_menu.h"
#include "pokemon_summary_screen.h"
@@ -66,6 +68,28 @@ struct GenderIconCoords
u8 y;
};
+struct PartyMenuWindowCoords
+{
+ u8 left;
+ u8 top;
+ u8 right;
+ u8 bottom;
+};
+
+struct UnknownPokemonStruct2
+{
+ /*0x00*/ u16 species;
+ /*0x02*/ u16 heldItem;
+ /*0x04*/ u8 nickname[11];
+ /*0x0F*/ u8 level;
+ /*0x10*/ u16 hp;
+ /*0x12*/ u16 maxhp;
+ /*0x14*/ u32 status;
+ /*0x18*/ u32 personality;
+ /*0x1C*/ u8 gender;
+ /*0x1D*/ u8 language;
+};
+
#define ewram1C000 (*(struct Unk201C000 *)(ewram + 0x1C000))
#define ewram1F000 (*(struct Unk201F000 *)(ewram + 0x1F000))
@@ -79,6 +103,11 @@ extern s32 gBattleMoveDamage;
extern u16 gMoveToLearn;
extern struct GenderIconCoords const gUnknown_08376738[12][6];
+extern struct GenderIconCoords const gUnknown_08376678[12][6];
+extern struct PartyMenuWindowCoords const gUnknown_08376948[2][6];
+extern struct PartyMenuWindowCoords const gUnknown_08376978[2][6];
+extern u8 *const gUnknown_08376624[];
+extern const u8 gUnknown_083769C0[];
//extern const u16 gUnknown_083769A8[][6];
//extern const u8 gUnknown_083769A8[][12];
extern u16 *const gUnknown_08376858[][6];
@@ -93,9 +122,28 @@ extern const struct UnknownStruct5 gUnknown_08376BB4[][6];
extern u8 gUnknown_02039460[];
extern u8 gTileBuffer[];
extern const struct SpriteTemplate gSpriteTemplate_837660C[];
-
+extern struct Window gUnknown_03004210;
+
+extern const u8 gPartyMenuMisc_Gfx[];
+extern const u8 gPartyMenuMisc_Tilemap[];
+extern const u8 gPartyMenuMisc_Pal[];
+extern const u8 gFontDefaultPalette[];
+extern const u8 gPartyMenuHpBar_Gfx[];
+extern const u8 gPartyMenuOrderText_Gfx[];
+extern const u8 gStatusGfx_Icons[];
+extern const u8 gStatusPal_Icons[];
+
+static void nullsub_12(u8 monIndex, struct Pokemon *pokemon);
+static void TryPrintPartyMenuMonNickname(u8 monIndex, struct Pokemon *pokemon);
+static void PartyMenuTryPrintHP(u8 monIndex, struct Pokemon *pokemon);
+static void sub_806D05C(u8 taskId);
+static void sub_806D15C(u8 taskId);
+static void sub_806D198(u8 taskId);
static void sub_806E884(u8 taskId);
static void sub_8070D90(u8 taskId);
+static void sub_806D5B8(u8 taskId);
+static void sub_806D014(u8 taskId);
+static void sub_806D118(u8 taskId);
/*
void sub_806AEDC(void)
@@ -121,8 +169,694 @@ void sub_806AEDC(void)
#define WINDOW_RIGHT (29)
#endif
+extern u8 UpdateMonIconFrame(struct Sprite *sprite);
extern u8 GetMonIconSpriteId_maybe(u8 taskId, u8 monIndex);
+extern u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality);
+extern void sub_809D62C(struct Sprite *sprite);
+extern void UpdateMonIconFrame_806DA0C(struct Sprite *sprite);
+extern void UpdateMonIconFrame_806DA38(struct Sprite *sprite);
+extern void sub_806BB3C(s16 a, u8 b);
+extern void sub_806BA94(s16 a, u8 b, u8 c, u8 d);
+extern void sub_806B9A4(s16 a, u8 b, u8 c);
+extern void SpriteCB_sub_806D37C(struct Sprite *sprite);
+extern void sub_806BA34(s16 a, u8 b);
+extern void sub_806BF24(const u8 *a, u8 monIndex, u8 c, u8 d);
+extern void sub_806CD44(u8 taskId);
+
+
+void sub_806CAFC(u8 a, s16 b)
+{
+ struct Sprite *sprite1 = &gSprites[ewram01000.unk1];
+ struct Sprite *sprite2 = &gSprites[ewram01000.unk2];
+
+ sub_806BF74(a, b);
+
+ if (sprite1->data0 != sprite2->data0)
+ {
+ sub_806BF24(&gUnknown_083769A8[sprite1->data0 * 2], sprite1->data0, 6, 1);
+ }
+ else
+ {
+ sub_806BF24(&gUnknown_083769A8[sprite1->data0 * 2], sprite1->data0, 6, 0);
+ }
+}
+
+void sub_806CB74(u8 taskId)
+{
+ switch (gMain.newAndRepeatedKeys)
+ {
+ case DPAD_UP:
+ sub_806CAFC(ewram01000.unk0, -1);
+ break;
+ case DPAD_DOWN:
+ sub_806CAFC(ewram01000.unk0, 1);
+ break;
+ case DPAD_LEFT:
+ sub_806CAFC(ewram01000.unk0, -2);
+ break;
+ case DPAD_RIGHT:
+ sub_806CAFC(ewram01000.unk0, 2);
+ break;
+ }
+
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(5);
+ gTasks[taskId].func = ewram01000.unkC;
+ gTasks[taskId].func(taskId);
+ }
+ else if (gMain.newKeys == B_BUTTON)
+ {
+ PlaySE(5);
+ sub_806CD44(taskId);
+ }
+}
+
+void sub_806CC2C(u8 taskId)
+{
+ DestroySprite(&gSprites[ewram01000.unk1]);
+ sub_806D538(0, 0);
+
+ ewram1B000.unk261 = 2;
+ SwitchTaskToFollowupFunc(ewram01000.unk0);
+ DestroyTask(taskId);
+}
+
+void sub_806CC74(u8 taskId)
+{
+ sub_806BF24(&gUnknown_083769A8[gSprites[ewram01000.unk2].data0 * 2], gSprites[ewram01000.unk2].data0, 3, 1);
+ sub_806BF24(&gUnknown_083769A8[gSprites[ewram01000.unk1].data0 * 2], gSprites[ewram01000.unk1].data0, 3, 0);
+ sub_806CC2C(taskId);
+}
+
+void sub_806CCE4()
+{
+ u8 monIndex1 = gSprites[ewram01000.unk1].data0;
+ u8 monIndex2 = gSprites[ewram01000.unk2].data0;
+
+ if (monIndex1 <= 5)
+ {
+ sub_806BF24(&gUnknown_083769A8[monIndex1 * 2], monIndex1, 3, 0);
+ }
+
+ if (monIndex2 <= 5)
+ {
+ sub_806BF24(&gUnknown_083769A8[monIndex2 * 2], monIndex2, 3, 1);
+ }
+}
+
+void sub_806CD44(u8 taskId)
+{
+ sub_806CCE4();
+ sub_806CC2C(taskId);
+}
+
+void sub_806CD5C(u8 taskId)
+{
+ u8 monIndex1 = gSprites[ewram01000.unk1].data0;
+ u8 monIndex2 = gSprites[ewram01000.unk2].data0;
+
+ if (monIndex1 == monIndex2 || monIndex1 == 7 || monIndex2 == 7)
+ {
+ sub_806CD44(taskId);
+ }
+ else
+ {
+ u8 var1;
+
+ sub_806D5B8(monIndex1);
+ sub_806D5B8(monIndex2);
+
+ if (monIndex1 > monIndex2)
+ {
+ ewram01000.unk5 = monIndex2;
+ ewram01000.unk6 = monIndex1;
+ }
+ else
+ {
+ ewram01000.unk5 = monIndex1;
+ ewram01000.unk6 = monIndex2;
+ }
+
+ ewram01000.unk3 = GetMonIconSpriteId_maybe(ewram01000.unk0, ewram01000.unk5);
+ ewram01000.unk4 = GetMonIconSpriteId_maybe(ewram01000.unk0, ewram01000.unk6);
+
+ var1 = ewram01000.unk5;
+ if (!var1)
+ {
+ gSprites[ewram01000.unk3].data0 = -8;
+ gSprites[ewram01000.unk3].data2 = -0xA8;
+ ewram01000.unk8 = var1;
+ ewram01000.unkA = 11;
+
+ gTasks[taskId].func = sub_806D014;
+ ewram1B000.unk261 = 1;
+ }
+ else
+ {
+ gSprites[ewram01000.unk3].data0 = 8;
+ gSprites[ewram01000.unk3].data2 = 0xA8;
+ ewram01000.unk8 = 11;
+ ewram01000.unkA = 11;
+
+ gTasks[taskId].func = sub_806D118;
+ ewram1B000.unk261 = 1;
+ }
+
+ gSprites[ewram01000.unk3].callback = SpriteCB_sub_806D37C;
+
+ gSprites[ewram01000.unk4].data0 = 8;
+ gSprites[ewram01000.unk4].data2 = 0xA8;
+ gSprites[ewram01000.unk4].callback = SpriteCB_sub_806D37C;
+
+ gSprites[ewram01000.unk3].callback(&gSprites[ewram01000.unk3]);
+ gSprites[ewram01000.unk4].callback(&gSprites[ewram01000.unk4]);
+ }
+}
+
+void sub_806CEF8(s16 *x, s16 *y)
+{
+ s16 temp = *x;
+ *x = *y;
+ *y = temp;
+}
+
+#ifdef NONMATCHING
+void sub_806CF04(void)
+{
+ sub_806CEF8(&gSprites[ewram01000.unk3].pos1.x, &gSprites[ewram01000.unk4].pos1.x);
+ sub_806CEF8(&gSprites[ewram01000.unk3].pos1.y, &gSprites[ewram01000.unk4].pos1.y);
+ sub_806CEF8(&gSprites[ewram01000.unk3].pos2.x, &gSprites[ewram01000.unk4].pos2.x);
+ sub_806CEF8(&gSprites[ewram01000.unk3].data0, &gSprites[ewram01000.unk4].data0);
+
+ gSprites[ewram01000.unk3].callback = SpriteCB_sub_806D37C;
+ gSprites[ewram01000.unk4].callback = SpriteCB_sub_806D37C;
+}
+#else
+__attribute__((naked))
+void sub_806CF04(void)
+{
+ asm(".syntax unified\n\
+ push {r4,r5,lr}\n\
+ ldr r4, _0806CF94 @ =0x02001000\n\
+ ldrb r1, [r4, 0x3]\n\
+ lsls r0, r1, 4\n\
+ adds r0, r1\n\
+ lsls r0, 2\n\
+ ldr r5, _0806CF98 @ =gSprites + 0x20\n\
+ adds r0, r5\n\
+ ldrb r2, [r4, 0x4]\n\
+ lsls r1, r2, 4\n\
+ adds r1, r2\n\
+ lsls r1, 2\n\
+ adds r1, r5\n\
+ bl sub_806CEF8\n\
+ ldrb r1, [r4, 0x3]\n\
+ lsls r0, r1, 4\n\
+ adds r0, r1\n\
+ lsls r0, 2\n\
+ adds r3, r5, 0x2\n\
+ adds r0, r3\n\
+ ldrb r2, [r4, 0x4]\n\
+ lsls r1, r2, 4\n\
+ adds r1, r2\n\
+ lsls r1, 2\n\
+ adds r1, r3\n\
+ bl sub_806CEF8\n\
+ ldrb r1, [r4, 0x3]\n\
+ lsls r0, r1, 4\n\
+ adds r0, r1\n\
+ lsls r0, 2\n\
+ adds r3, r5, 0x4\n\
+ adds r0, r3\n\
+ ldrb r2, [r4, 0x4]\n\
+ lsls r1, r2, 4\n\
+ adds r1, r2\n\
+ lsls r1, 2\n\
+ adds r1, r3\n\
+ bl sub_806CEF8\n\
+ ldrb r1, [r4, 0x3]\n\
+ lsls r0, r1, 4\n\
+ adds r0, r1\n\
+ lsls r0, 2\n\
+ adds r3, r5, 0\n\
+ adds r3, 0xE\n\
+ adds r0, r3\n\
+ ldrb r2, [r4, 0x4]\n\
+ lsls r1, r2, 4\n\
+ adds r1, r2\n\
+ lsls r1, 2\n\
+ adds r1, r3\n\
+ bl sub_806CEF8\n\
+ ldrb r1, [r4, 0x3]\n\
+ lsls r0, r1, 4\n\
+ adds r0, r1\n\
+ lsls r0, 2\n\
+ subs r5, 0x4\n\
+ adds r0, r5\n\
+ ldr r2, _0806CF9C @ =SpriteCB_sub_806D37C\n\
+ str r2, [r0]\n\
+ ldrb r1, [r4, 0x4]\n\
+ lsls r0, r1, 4\n\
+ adds r0, r1\n\
+ lsls r0, 2\n\
+ adds r0, r5\n\
+ str r2, [r0]\n\
+ pop {r4,r5}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_0806CF94: .4byte 0x02001000\n\
+_0806CF98: .4byte gSprites + 0x20\n\
+_0806CF9C: .4byte SpriteCB_sub_806D37C\n\
+ .syntax divided\n");
+}
+#endif // NONMATCHING
+
+void sub_806CFA0(u8 taskId, u8 b)
+{
+ u8 var1 = ((ewram01000.unk6 - 1) * 3) + 1;
+
+ sub_806BA34(ewram01000.unk8, 3);
+ sub_806BB3C(ewram01000.unkA, var1);
+
+ if (!b)
+ {
+ ewram01000.unk8--;
+ ewram01000.unkA++;
+ }
+ else
+ {
+ ewram01000.unk8++;
+ ewram01000.unkA--;
+ }
+
+ sub_806B9A4(ewram01000.unk8, 3, 10);
+ sub_806BA94(ewram01000.unkA, var1, 0, 10);
+}
+
+void sub_806D014(u8 taskId)
+{
+ sub_806CFA0(taskId, 0);
+
+ if (ewram01000.unk8 < -13 && ewram01000.unkA > 32)
+ {
+ sub_806CF04();
+ gTasks[taskId].func = sub_806D05C;
+ }
+}
+
+void sub_806D05C(u8 taskId)
+{
+ sub_806CFA0(taskId, 1);
+
+ if (ewram01000.unk8 == 0 && ewram01000.unkA == 11)
+ {
+ gTasks[taskId].func = sub_806D198;
+ }
+}
+
+void sub_806D098(u8 a, u8 b)
+{
+ u8 var1 = ((ewram01000.unk5 - 1) * 3) + 1;
+ u8 var2 = ((ewram01000.unk6 - 1) * 3) + 1;
+
+ sub_806BB3C(ewram01000.unk8, var1);
+ sub_806BB3C(ewram01000.unkA, var2);
+
+ if (!b)
+ {
+ ewram01000.unk8++;
+ ewram01000.unkA++;
+ }
+ else
+ {
+ ewram01000.unk8--;
+ ewram01000.unkA--;
+ }
+
+ sub_806BA94(ewram01000.unk8, var1, 0, 10);
+ sub_806BA94(ewram01000.unkA, var2, 0, 10);
+}
+
+void sub_806D118(u8 taskId)
+{
+ sub_806D098(taskId, 0);
+
+ if (ewram01000.unk8 > 32 && ewram01000.unkA > 32)
+ {
+ sub_806CF04();
+ gTasks[taskId].func = sub_806D15C;
+ }
+}
+
+void sub_806D15C(u8 taskId)
+{
+ sub_806D098(taskId, 1);
+
+ if (ewram01000.unk8 == 11 && ewram01000.unkA == 11)
+ {
+ gTasks[taskId].func = sub_806D198;
+ }
+}
+
+void sub_806D198(u8 taskId)
+{
+ u8 spriteId;
+
+ SetMonIconSpriteId_maybe(ewram01000.unk0, ewram01000.unk5, ewram01000.unk4);
+ SetMonIconSpriteId_maybe(ewram01000.unk0, ewram01000.unk6, ewram01000.unk3);
+
+ gSprites[ewram01000.unk3].pos1.x = gUnknown_08376678[IsDoubleBattle()][ewram01000.unk6].x;
+ gSprites[ewram01000.unk3].pos1.y = gUnknown_08376678[IsDoubleBattle()][ewram01000.unk6].y;
+ gSprites[ewram01000.unk3].pos2.x = 0;
+ gSprites[ewram01000.unk3].pos2.y = 0;
+ gSprites[ewram01000.unk3].callback = UpdateMonIconFrame_806DA38;
+
+ gSprites[ewram01000.unk4].pos1.x = gUnknown_08376678[IsDoubleBattle()][ewram01000.unk5].x;
+ gSprites[ewram01000.unk4].pos1.y = gUnknown_08376678[IsDoubleBattle()][ewram01000.unk5].y;
+ gSprites[ewram01000.unk4].pos2.x = 0;
+ gSprites[ewram01000.unk4].pos2.y = 0;
+ gSprites[ewram01000.unk4].callback = UpdateMonIconFrame_806DA38;
+
+ spriteId = GetMonIconSpriteId_maybe(ewram01000.unk0, gSprites[ewram01000.unk2].data0);
+ gSprites[spriteId].callback = UpdateMonIconFrame_806DA0C;
+ SwapPokemon(&gPlayerParty[ewram01000.unk5], &gPlayerParty[ewram01000.unk6]);
+
+ PartyMenuPrintMonLevelOrStatus(ewram01000.unk5, &gPlayerParty[ewram01000.unk5]);
+ TryPrintPartyMenuMonNickname(ewram01000.unk5, &gPlayerParty[ewram01000.unk5]);
+ PartyMenuTryPrintHP(ewram01000.unk5, &gPlayerParty[ewram01000.unk5]);
+ nullsub_12(ewram01000.unk5, &gPlayerParty[ewram01000.unk5]);
+
+ PartyMenuPrintMonLevelOrStatus(ewram01000.unk6, &gPlayerParty[ewram01000.unk6]);
+ TryPrintPartyMenuMonNickname(ewram01000.unk6, &gPlayerParty[ewram01000.unk6]);
+ PartyMenuTryPrintHP(ewram01000.unk6, &gPlayerParty[ewram01000.unk6]);
+ nullsub_12(ewram01000.unk6, &gPlayerParty[ewram01000.unk6]);
+
+ PartyMenuDrawHPBars();
+ sub_806CC74(taskId);
+}
+
+void SpriteCB_sub_806D37C(struct Sprite *sprite)
+{
+ UpdateMonIconFrame(sprite);
+
+ if (sprite->pos2.x == sprite->data2)
+ {
+ sprite->data0 *= -1;
+ sprite->data2 = 0;
+ sprite->callback = UpdateMonIconFrame_806DA38;
+ }
+ else
+ {
+ sprite->pos2.x += sprite->data0;
+ }
+}
+
+void sub_806D3B4(u8 taskId, u16 species1, u16 species2)
+{
+ const u8 *var1 = gUnknown_083769C0;
+
+ sub_806BA34(var1[2] + gTasks[taskId].data[0], var1[3]);
+ sub_806BB3C(var1[8] + gTasks[taskId].data[0], var1[9]);
+ sub_806BB3C(var1[10] + gTasks[taskId].data[0], var1[11]);
+
+ gTasks[taskId].data[0]--;
+
+ sub_806B9A4(var1[2] + gTasks[taskId].data[0], var1[3], 4);
+
+ if (species1)
+ {
+ sub_806BA94(var1[8] + gTasks[taskId].data[0], var1[9], 0, 4);
+ }
+ else
+ {
+ sub_806BA94(var1[8] + gTasks[taskId].data[0], var1[9], 1, 4);
+ }
+
+ if (species2)
+ {
+ sub_806BA94(var1[10] + gTasks[taskId].data[0], var1[11], 0, 4);
+ }
+ else
+ {
+ sub_806BA94(var1[10] + gTasks[taskId].data[0], var1[11], 1, 4);
+ }
+}
+
+void sub_806D4AC(u8 taskId, u16 species, u8 c)
+{
+ if (species)
+ {
+ u8 monIndex = c + 3;
+ u8 spriteId = GetMonIconSpriteId_maybe(taskId, monIndex);
+
+ gSprites[spriteId].data0 = -8;
+ gSprites[spriteId].data2 = gTasks[taskId].data[0] * -8;
+ gSprites[spriteId].callback = SpriteCB_sub_806D37C;
+ }
+}
+
+void sub_806D50C(u8 taskId, u8 monIndex)
+{
+ gSprites[GetMonIconSpriteId_maybe(taskId, monIndex)].pos1.x += 0xF0;
+}
+
+void sub_806D538(u8 textId, u8 b)
+{
+ if (textId != 0xFF)
+ {
+ switch (b)
+ {
+ case 0:
+ MenuDrawTextWindow(0, 16, 23, 19);
+ break;
+ case 1:
+ MenuDrawTextWindow(0, 16, 19, 19);
+ break;
+ case 2:
+ MenuDrawTextWindow(0, 16, 22, 19);
+ break;
+ case 3:
+ MenuDrawTextWindow(0, 16, 18, 19);
+ break;
+ }
+
+ MenuPrint(gUnknown_08376624[textId], 1, 17);
+ }
+}
+
+void sub_806D5A4(void)
+{
+ MenuZeroFillWindowRect(0, 16, 29, 19);
+}
+
+void sub_806D5B8(u8 monIndex)
+{
+ u32 var1;
+ u8 left = gUnknown_08376948[IsDoubleBattle()][monIndex].left;
+ u8 top = gUnknown_08376948[IsDoubleBattle()][monIndex].top;
+ u8 right = gUnknown_08376948[IsDoubleBattle()][monIndex].right;
+ u8 bottom = gUnknown_08376948[IsDoubleBattle()][monIndex].bottom;
+
+ ZeroFillWindowRect(&gUnknown_03004210, left, top, right, bottom);
+
+ var1 = 0;
+ CpuFastSet(&var1, (void *)(OBJ_VRAM1 + monIndex * 0x400), 0x1000100);
+}
+
+void sub_806D668(u8 monIndex)
+{
+ u32 var1;
+ u8 left = gUnknown_08376978[IsDoubleBattle()][monIndex].left;
+ u8 top = gUnknown_08376978[IsDoubleBattle()][monIndex].top;
+ u8 right = gUnknown_08376978[IsDoubleBattle()][monIndex].right;
+ u8 bottom = gUnknown_08376978[IsDoubleBattle()][monIndex].bottom;
+
+ ZeroFillWindowRect(&gUnknown_03004210, left, top, right, bottom);
+
+ var1 = 0;
+ CpuFastSet(&var1, (void *)(OBJ_VRAM1 + 0x300 + monIndex * 0x400), 0x1000040);
+}
+
+u8 LoadPartyMenuGraphics(u8 a)
+{
+ u16 palette = 0x7FFF;
+ u8 retVal = 0;
+
+ if (a < 2)
+ {
+ LZDecompressVram(gPartyMenuMisc_Gfx, (void *)BG_VRAM);
+ }
+
+ if (a == 2 || a == 0)
+ {
+ LZDecompressVram(gPartyMenuMisc_Tilemap, (void *)(BG_VRAM + 0x3800));
+ }
+
+ if (a == 3 || a == 0)
+ {
+ LoadCompressedPalette(gPartyMenuMisc_Pal, 0, 0x160);
+ }
+
+ if (a == 4 || a == 0)
+ {
+ LoadPalette(&palette, 0, 2);
+ LoadPalette(gFontDefaultPalette, 0xF0, 0x20);
+ }
+
+ if (a == 5 || a == 0)
+ {
+ LZDecompressVram(gPartyMenuHpBar_Gfx, (void *)(BG_VRAM + 0x6000));
+ }
+
+ if (a == 6 || a == 0)
+ {
+ LZDecompressVram(gPartyMenuOrderText_Gfx, (void *)(BG_VRAM + 0x6180));
+ }
+
+ if (a == 7 || a == 0)
+ {
+ LZDecompressVram(gStatusGfx_Icons, (void *)(BG_VRAM + 0x7180));
+ }
+
+ if (a == 8 || a == 0)
+ {
+ LoadCompressedPalette(gStatusPal_Icons, 0xB0, 0x20);
+ retVal = 1;
+ }
+
+ return retVal;
+}
+
+void SetMonIconAnimByHP(u8 spriteId, u16 currentHP, u16 maxHP)
+{
+ u8 hpBarLevel = GetHPBarLevel(currentHP, maxHP);
+ u8 animNum = 0;
+
+ if (currentHP != maxHP)
+ {
+ if (hpBarLevel == 3)
+ {
+ animNum = 1;
+ }
+ else if (hpBarLevel == 2)
+ {
+ animNum = 2;
+ }
+ else if (hpBarLevel == 1)
+ {
+ animNum = 3;
+ }
+ else
+ {
+ animNum = 4;
+ }
+ }
+
+ sub_809D824(&gSprites[spriteId], animNum);
+}
+
+void SetMonIconAnim(u8 spriteId, struct Pokemon *pokemon)
+{
+ u16 currentHP = GetMonData(pokemon, MON_DATA_HP);
+ u16 maxHP = GetMonData(pokemon, MON_DATA_MAX_HP);
+
+ SetMonIconAnimByHP(spriteId, currentHP, maxHP);
+}
+
+void CreatePartyMenuMonIcon(u8 taskId, u8 monIndex, u8 c, struct Pokemon *pokemon)
+{
+ u8 x = gUnknown_08376678[c][monIndex].x;
+ u8 y = gUnknown_08376678[c][monIndex].y;
+
+ u16 species2 = GetMonData(pokemon, MON_DATA_SPECIES2);
+ u32 personality = GetMonData(pokemon, MON_DATA_PERSONALITY);
+
+ u8 spriteId = CreateMonIcon(species2, sub_809D62C, x, y, 5, personality);
+ SetMonIconSpriteId_maybe(taskId, monIndex, spriteId);
+ SetMonIconAnim(spriteId, pokemon);
+}
+
+void TryCreatePartyMenuMonIcon(u8 a, u8 monIndex, struct Pokemon *pokemon)
+{
+ if (GetMonData(pokemon, MON_DATA_SPECIES))
+ {
+ bool8 isLinkDoubleBattle = IsLinkDoubleBattle();
+ if (isLinkDoubleBattle == TRUE)
+ {
+ CreatePartyMenuMonIcon(a, monIndex, 2, pokemon);
+ }
+ else
+ {
+ CreatePartyMenuMonIcon(a, monIndex, IsDoubleBattle(), pokemon);
+ }
+ }
+}
+
+void unref_sub_806D964(u8 a)
+{
+ u8 i;
+ for (i = 0; i < gPlayerPartyCount; i++)
+ {
+ TryCreatePartyMenuMonIcon(a, i, &gPlayerParty[i]);
+ }
+}
+
+void CreateMonIcon_806D99C(u8 taskId, u8 monIndex, u8 c, struct UnknownPokemonStruct2 *d)
+{
+ u8 x = gUnknown_08376678[c][monIndex].x;
+ u8 y = gUnknown_08376678[c][monIndex].y;
+
+ u8 spriteId = CreateMonIcon(d->species, sub_809D62C, x, y, 5, d->personality);
+ SetMonIconSpriteId_maybe(taskId, monIndex, spriteId);
+ SetMonIconAnimByHP(spriteId, d->hp, d->maxhp);
+}
+
+void UpdateMonIconFrame_806DA0C(struct Sprite *sprite)
+{
+ u8 var1;
+
+ var1 = UpdateMonIconFrame(sprite);
+ if (var1)
+ {
+ if (var1 & 1)
+ {
+ sprite->pos2.y = -3;
+ }
+ else
+ {
+ sprite->pos2.y = 1;
+ }
+ }
+}
+
+void UpdateMonIconFrame_806DA38(struct Sprite *sprite)
+{
+ UpdateMonIconFrame(sprite);
+}
+
+void UpdateMonIconFrame_806DA44(u8 taskId, u8 monIndex, u8 c)
+{
+ u8 spriteId;
+
+ if (monIndex < PARTY_SIZE)
+ {
+ spriteId = GetMonIconSpriteId_maybe(taskId, monIndex);
+ gSprites[spriteId].pos2.y = 0;
+ gSprites[spriteId].data0 = 0;
+
+ if (!c)
+ {
+ gSprites[spriteId].callback = UpdateMonIconFrame_806DA38;
+ }
+ else
+ {
+ gSprites[spriteId].callback = UpdateMonIconFrame_806DA0C;
+ }
+ }
+}
void LoadHeldItemIconGraphics(void)
{
@@ -168,7 +902,7 @@ void CreateHeldItemIcons(u8 *a, u8 *b, u8 c)
u16 i;
u16 heldItem;
- switch(c)
+ switch (c)
{
case 0:
i = 0;
@@ -358,7 +1092,7 @@ void SpriteCB_UpdateHeldItemIconPosition(struct Sprite *sprite)
u8 GetMonIconSpriteId_maybe(u8 taskId, u8 monIndex)
{
- switch(monIndex)
+ switch (monIndex)
{
case 1:
return gTasks[taskId].data[0];
@@ -382,27 +1116,27 @@ u8 GetMonIconSpriteId_maybe(u8 taskId, u8 monIndex)
}
}
-void SetMonIconSpriteId_maybe(u8 taskId, u8 monIndex, u8 c)
+void SetMonIconSpriteId_maybe(u8 taskId, u8 monIndex, u8 spriteId)
{
- switch(monIndex)
+ switch (monIndex)
{
case 0:
- gTasks[taskId].data[0] = (u8)gTasks[taskId].data[0] | (c << 8);
+ gTasks[taskId].data[0] = (u8)gTasks[taskId].data[0] | (spriteId << 8);
break;
case 1:
- gTasks[taskId].data[0] = (gTasks[taskId].data[0] & -0x100) | c;
+ gTasks[taskId].data[0] = (gTasks[taskId].data[0] & -0x100) | spriteId;
break;
case 2:
- gTasks[taskId].data[1] = (u8)gTasks[taskId].data[1] | (c << 8);
+ gTasks[taskId].data[1] = (u8)gTasks[taskId].data[1] | (spriteId << 8);
break;
case 3:
- gTasks[taskId].data[1] = (gTasks[taskId].data[1] & -0x100) | c;
+ gTasks[taskId].data[1] = (gTasks[taskId].data[1] & -0x100) | spriteId;
break;
case 4:
- gTasks[taskId].data[2] = (u8)gTasks[taskId].data[2] | (c << 8);
+ gTasks[taskId].data[2] = (u8)gTasks[taskId].data[2] | (spriteId << 8);
break;
case 5:
- gTasks[taskId].data[2] = (gTasks[taskId].data[2] & -0x100) | c;
+ gTasks[taskId].data[2] = (gTasks[taskId].data[2] & -0x100) | spriteId;
break;
}
}
@@ -780,7 +1514,7 @@ void PartyMenuTryPrintMonsHP(void)
void unref_sub_806E564(void) { }
void unref_sub_806E568(void) { }
-void nullsub_12(void) { }
+void nullsub_12(u8 monIndex, struct Pokemon *pokemon) { }
void nullsub_13(void) { }
void PartyMenuDoDrawHPBar(u8 monIndex, u8 b, u16 currentHP, u16 maxHP)