summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2020-03-04 14:58:44 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2020-03-04 14:58:44 -0500
commit6871f3dd3357b5660af6e1607028fde5a0afd862 (patch)
tree69323e844ac2b81bad73ce134910bc9942decabe
parent171e4bbea427e66c5a30d01d4306dbcdf165e81c (diff)
through sub_8153048
-rw-r--r--asm/dodrio_berry_picking.s3074
-rw-r--r--include/dodrio_berry_picking.h7
-rw-r--r--src/dodrio_berry_picking.c961
-rw-r--r--src/sound.c29
4 files changed, 986 insertions, 3085 deletions
diff --git a/asm/dodrio_berry_picking.s b/asm/dodrio_berry_picking.s
index 81204d1ba..dbe7dc85c 100644
--- a/asm/dodrio_berry_picking.s
+++ b/asm/dodrio_berry_picking.s
@@ -5,3074 +5,6 @@
.text
- thumb_func_start sub_8151A5C
-sub_8151A5C: @ 8151A5C
- push {r4-r7,lr}
- sub sp, 0x18
- ldr r5, _08151B20 @ =gUnknown_203F3E0
- ldr r0, [r5]
- adds r1, r0, 0
- adds r1, 0x24
- ldrb r6, [r1]
- ldr r2, _08151B24 @ =0x000031a0
- adds r1, r0, r2
- ldr r3, _08151B28 @ =0x000031cc
- adds r2, r0, r3
- ldr r4, _08151B2C @ =0x00003208
- adds r3, r0, r4
- ldr r7, _08151B30 @ =0x00003244
- adds r4, r0, r7
- str r4, [sp]
- adds r7, 0x3C
- adds r4, r0, r7
- str r4, [sp, 0x4]
- adds r7, 0x3C
- adds r4, r0, r7
- str r4, [sp, 0x8]
- adds r4, r0, 0
- adds r4, 0x40
- str r4, [sp, 0xC]
- movs r7, 0x90
- lsls r7, 1
- adds r4, r0, r7
- str r4, [sp, 0x10]
- movs r4, 0x96
- lsls r4, 1
- adds r0, r4
- str r0, [sp, 0x14]
- movs r0, 0
- bl sub_815A950
- ldr r1, [r5]
- ldr r7, _08151B34 @ =0x000031b0
- adds r2, r1, r7
- str r0, [r2]
- movs r0, 0x94
- lsls r0, 1
- adds r1, r0
- movs r0, 0x1
- strb r0, [r1]
- movs r4, 0x1
- cmp r4, r6
- bcs _08151AEC
-_08151ABC:
- adds r0, r4, 0
- bl sub_815AB60
- cmp r0, 0
- beq _08151AE2
- ldr r0, _08151B20 @ =gUnknown_203F3E0
- ldr r2, [r0]
- lsls r1, r4, 2
- movs r3, 0x98
- lsls r3, 1
- adds r0, r2, r3
- adds r0, r1
- movs r1, 0x1
- str r1, [r0]
- movs r7, 0x94
- lsls r7, 1
- adds r1, r2, r7
- movs r0, 0
- strb r0, [r1]
-_08151AE2:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r6
- bcc _08151ABC
-_08151AEC:
- ldr r5, _08151B20 @ =gUnknown_203F3E0
- ldr r1, [r5]
- movs r6, 0x92
- lsls r6, 1
- adds r1, r6
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3B
- bls _08151B4A
- ldr r1, [r5]
- movs r2, 0x94
- lsls r2, 1
- adds r0, r1, r2
- ldrb r4, [r0]
- cmp r4, 0
- beq _08151B38
- bl sub_80FBA44
- ldr r0, [r5]
- adds r0, r6
- movs r1, 0
- strb r1, [r0]
- b _08151B4A
- .align 2, 0
-_08151B20: .4byte gUnknown_203F3E0
-_08151B24: .4byte 0x000031a0
-_08151B28: .4byte 0x000031cc
-_08151B2C: .4byte 0x00003208
-_08151B30: .4byte 0x00003244
-_08151B34: .4byte 0x000031b0
-_08151B38:
- adds r0, r1, r6
- ldrb r0, [r0]
- cmp r0, 0x46
- bls _08151B4A
- bl sub_80FBA44
- ldr r0, [r5]
- adds r0, r6
- strb r4, [r0]
-_08151B4A:
- add sp, 0x18
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8151A5C
-
- thumb_func_start sub_8151B54
-sub_8151B54: @ 8151B54
- push {r4,r5,lr}
- ldr r5, _08151B6C @ =gUnknown_203F3E0
- ldr r0, [r5]
- ldrb r0, [r0, 0x18]
- cmp r0, 0x4
- beq _08151B90
- cmp r0, 0x4
- bgt _08151B70
- cmp r0, 0x3
- beq _08151B76
- b _08151B9A
- .align 2, 0
-_08151B6C: .4byte gUnknown_203F3E0
-_08151B70:
- cmp r0, 0xB
- beq _08151B96
- b _08151B9A
-_08151B76:
- bl sub_8152A00
- adds r4, r0, 0
- cmp r4, 0x1
- bne _08151B9A
- bl sub_8152A70
- ldr r0, [r5]
- movs r1, 0x8E
- lsls r1, 1
- adds r0, r1
- str r4, [r0]
- b _08151B9A
-_08151B90:
- bl sub_815184C
- b _08151B9A
-_08151B96:
- bl sub_8151A5C
-_08151B9A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8151B54
-
- thumb_func_start sub_8151BA0
-sub_8151BA0: @ 8151BA0
- push {r4-r6,lr}
- sub sp, 0x14
- ldr r0, _08151BB4 @ =gUnknown_203F3E0
- ldr r5, [r0]
- ldrb r0, [r5, 0x18]
- cmp r0, 0x4
- beq _08151BB8
- cmp r0, 0xB
- beq _08151C08
- b _08151C44
- .align 2, 0
-_08151BB4: .4byte gUnknown_203F3E0
-_08151BB8:
- ldr r1, _08151BF8 @ =0x000032cc
- adds r0, r5, r1
- ldr r2, _08151BFC @ =0x000031cc
- adds r1, r5, r2
- ldr r3, _08151C00 @ =0x00003208
- adds r2, r5, r3
- ldr r4, _08151C04 @ =0x00003244
- adds r3, r5, r4
- movs r6, 0xCA
- lsls r6, 6
- adds r4, r5, r6
- str r4, [sp]
- adds r6, 0x3C
- adds r4, r5, r6
- str r4, [sp, 0x4]
- adds r4, r5, 0
- adds r4, 0x40
- ldrb r4, [r4]
- str r4, [sp, 0x8]
- movs r6, 0x90
- lsls r6, 1
- adds r4, r5, r6
- ldr r4, [r4]
- str r4, [sp, 0xC]
- adds r6, 0xC
- adds r4, r5, r6
- ldr r4, [r4]
- str r4, [sp, 0x10]
- bl sub_815A61C
- b _08151C44
- .align 2, 0
-_08151BF8: .4byte 0x000032cc
-_08151BFC: .4byte 0x000031cc
-_08151C00: .4byte 0x00003208
-_08151C04: .4byte 0x00003244
-_08151C08:
- ldr r1, _08151C4C @ =0x000032cc
- adds r0, r5, r1
- ldr r2, _08151C50 @ =0x000031cc
- adds r1, r5, r2
- ldr r3, _08151C54 @ =0x00003208
- adds r2, r5, r3
- ldr r4, _08151C58 @ =0x00003244
- adds r3, r5, r4
- movs r6, 0xCA
- lsls r6, 6
- adds r4, r5, r6
- str r4, [sp]
- adds r6, 0x3C
- adds r4, r5, r6
- str r4, [sp, 0x4]
- adds r4, r5, 0
- adds r4, 0x40
- ldrb r4, [r4]
- str r4, [sp, 0x8]
- movs r6, 0x90
- lsls r6, 1
- adds r4, r5, r6
- ldr r4, [r4]
- str r4, [sp, 0xC]
- adds r6, 0xC
- adds r4, r5, r6
- ldr r4, [r4]
- str r4, [sp, 0x10]
- bl sub_815A61C
-_08151C44:
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08151C4C: .4byte 0x000032cc
-_08151C50: .4byte 0x000031cc
-_08151C54: .4byte 0x00003208
-_08151C58: .4byte 0x00003244
- thumb_func_end sub_8151BA0
-
- thumb_func_start sub_8151C5C
-sub_8151C5C: @ 8151C5C
- push {r4-r6,lr}
- sub sp, 0x18
- ldr r0, _08151C70 @ =gUnknown_203F3E0
- ldr r5, [r0]
- ldrb r0, [r5, 0x18]
- cmp r0, 0x4
- beq _08151C74
- cmp r0, 0xB
- beq _08151CCC
- b _08151D10
- .align 2, 0
-_08151C70: .4byte gUnknown_203F3E0
-_08151C74:
- adds r0, r5, 0
- adds r0, 0x28
- ldrb r0, [r0]
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 2
- ldr r2, _08151CBC @ =0x000031a0
- adds r1, r2
- adds r1, r5, r1
- ldr r3, _08151CC0 @ =0x000031cc
- adds r2, r5, r3
- ldr r4, _08151CC4 @ =0x00003208
- adds r3, r5, r4
- ldr r6, _08151CC8 @ =0x00003244
- adds r4, r5, r6
- str r4, [sp]
- adds r6, 0x3C
- adds r4, r5, r6
- str r4, [sp, 0x4]
- adds r6, 0x3C
- adds r4, r5, r6
- str r4, [sp, 0x8]
- adds r4, r5, 0
- adds r4, 0x40
- str r4, [sp, 0xC]
- movs r6, 0x90
- lsls r6, 1
- adds r4, r5, r6
- str r4, [sp, 0x10]
- adds r6, 0xC
- adds r4, r5, r6
- str r4, [sp, 0x14]
- bl sub_815A950
- b _08151D10
- .align 2, 0
-_08151CBC: .4byte 0x000031a0
-_08151CC0: .4byte 0x000031cc
-_08151CC4: .4byte 0x00003208
-_08151CC8: .4byte 0x00003244
-_08151CCC:
- adds r0, r5, 0
- adds r0, 0x28
- ldrb r0, [r0]
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 2
- ldr r2, _08151D18 @ =0x000031a0
- adds r1, r2
- adds r1, r5, r1
- ldr r3, _08151D1C @ =0x000031cc
- adds r2, r5, r3
- ldr r4, _08151D20 @ =0x00003208
- adds r3, r5, r4
- ldr r6, _08151D24 @ =0x00003244
- adds r4, r5, r6
- str r4, [sp]
- adds r6, 0x3C
- adds r4, r5, r6
- str r4, [sp, 0x4]
- adds r6, 0x3C
- adds r4, r5, r6
- str r4, [sp, 0x8]
- adds r4, r5, 0
- adds r4, 0x40
- str r4, [sp, 0xC]
- movs r6, 0x90
- lsls r6, 1
- adds r4, r5, r6
- str r4, [sp, 0x10]
- adds r6, 0xC
- adds r4, r5, r6
- str r4, [sp, 0x14]
- bl sub_815A950
-_08151D10:
- add sp, 0x18
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08151D18: .4byte 0x000031a0
-_08151D1C: .4byte 0x000031cc
-_08151D20: .4byte 0x00003208
-_08151D24: .4byte 0x00003244
- thumb_func_end sub_8151C5C
-
- thumb_func_start sub_8151D28
-sub_8151D28: @ 8151D28
- push {r4,lr}
- ldr r4, _08151D40 @ =gUnknown_203F3E0
- ldr r1, [r4]
- ldrb r0, [r1, 0x18]
- cmp r0, 0x4
- beq _08151D5E
- cmp r0, 0x4
- bgt _08151D44
- cmp r0, 0x3
- beq _08151D4A
- b _08151D90
- .align 2, 0
-_08151D40: .4byte gUnknown_203F3E0
-_08151D44:
- cmp r0, 0xB
- beq _08151D74
- b _08151D90
-_08151D4A:
- movs r0, 0x1
- bl sub_815A5BC
- ldr r0, [r4]
- movs r1, 0x8E
- lsls r1, 1
- adds r0, r1
- movs r1, 0x1
- str r1, [r0]
- b _08151D90
-_08151D5E:
- ldr r2, _08151D70 @ =0x000032f8
- adds r1, r2
- ldrb r0, [r1]
- cmp r0, 0
- beq _08151D90
- bl sub_815AAD8
- b _08151D90
- .align 2, 0
-_08151D70: .4byte 0x000032f8
-_08151D74:
- movs r2, 0x90
- lsls r2, 1
- adds r0, r1, r2
- ldr r0, [r0]
- cmp r0, 0
- bne _08151D90
- adds r2, 0xC
- adds r0, r1, r2
- ldr r0, [r0]
- cmp r0, 0
- bne _08151D90
- movs r0, 0x1
- bl sub_815AB3C
-_08151D90:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8151D28
-
- thumb_func_start sub_8151D98
-sub_8151D98: @ 8151D98
- push {r4-r6,lr}
- ldr r6, _08151DD0 @ =gUnknown_203F3E0
- ldr r2, [r6]
- adds r0, r2, 0
- adds r0, 0x28
- ldrb r1, [r0]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 2
- adds r1, r2, r0
- ldr r3, _08151DD4 @ =0x000031cc
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _08151DD8
- bl IsSEPlaying
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08151E3A
- ldr r0, [r6]
- movs r2, 0xA2
- lsls r2, 1
- adds r0, r2
- strb r1, [r0]
- b _08151E3A
- .align 2, 0
-_08151DD0: .4byte gUnknown_203F3E0
-_08151DD4: .4byte 0x000031cc
-_08151DD8:
- ldr r3, _08151E04 @ =0x000031d0
- adds r0, r1, r3
- ldrb r4, [r0]
- cmp r4, 0x1
- bne _08151E08
- movs r1, 0xA2
- lsls r1, 1
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08151E3A
- movs r0, 0x19
- bl m4aSongNumStop
- movs r0, 0x19
- bl PlaySE
- ldr r0, [r6]
- movs r2, 0xA2
- lsls r2, 1
- adds r0, r2
- b _08151E38
- .align 2, 0
-_08151E04: .4byte 0x000031d0
-_08151E08:
- ldr r3, _08151E64 @ =0x000031d4
- adds r0, r1, r3
- ldrb r4, [r0]
- cmp r4, 0x1
- bne _08151E3A
- movs r5, 0xA2
- lsls r5, 1
- adds r0, r2, r5
- ldrb r0, [r0]
- cmp r0, 0
- bne _08151E3A
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _08151E3A
- movs r0, 0x16
- bl PlaySE
- movs r0, 0x1
- bl sub_8153BC0
- ldr r0, [r6]
- adds r0, r5
-_08151E38:
- strb r4, [r0]
-_08151E3A:
- ldr r0, _08151E68 @ =gUnknown_203F3E0
- ldr r2, [r0]
- movs r5, 0xAA
- lsls r5, 1
- adds r1, r2, r5
- ldrb r1, [r1]
- adds r4, r0, 0
- cmp r1, 0
- bne _08151E6C
- adds r0, r2, 0
- adds r0, 0x40
- ldrb r0, [r0]
- cmp r0, 0x9
- bls _08151E6C
- bl StopMapMusic
- ldr r0, [r4]
- adds r0, r5
- movs r1, 0x1
- b _08151E8A
- .align 2, 0
-_08151E64: .4byte 0x000031d4
-_08151E68: .4byte gUnknown_203F3E0
-_08151E6C:
- ldr r0, [r4]
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08151E8C
- movs r0, 0xA
- bl PlayFanfareByFanfareNum
- ldr r0, [r4]
- movs r2, 0xAA
- lsls r2, 1
- adds r0, r2
- movs r1, 0x2
-_08151E8A:
- strb r1, [r0]
-_08151E8C:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8151D98
-
- thumb_func_start sub_8151E94
-sub_8151E94: @ 8151E94
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r6, _08151EE0 @ =gUnknown_203F3E0
- ldr r2, [r6]
- adds r0, r2, 0
- adds r0, 0x44
- ldrb r0, [r0]
- mov r8, r0
- adds r0, r2, 0
- adds r0, 0x48
- ldrb r7, [r0]
- subs r0, 0x20
- ldrb r1, [r0]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 2
- adds r1, r2, r0
- ldr r3, _08151EE4 @ =0x000031cc
- adds r0, r1, r3
- ldrb r3, [r0]
- cmp r3, 0
- bne _08151EEC
- ldr r4, _08151EE8 @ =0x000031d0
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08151F4E
- adds r4, 0x4
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08151F4E
- movs r1, 0xA2
- lsls r1, 1
- adds r0, r2, r1
- strb r3, [r0]
- b _08151F4E
- .align 2, 0
-_08151EE0: .4byte gUnknown_203F3E0
-_08151EE4: .4byte 0x000031cc
-_08151EE8: .4byte 0x000031d0
-_08151EEC:
- ldr r3, _08151F18 @ =0x000031d0
- adds r0, r1, r3
- ldrb r4, [r0]
- cmp r4, 0x1
- bne _08151F1C
- movs r1, 0xA2
- lsls r1, 1
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08151F4E
- movs r0, 0x19
- bl m4aSongNumStop
- movs r0, 0x19
- bl PlaySE
- ldr r0, [r6]
- movs r3, 0xA2
- lsls r3, 1
- adds r0, r3
- b _08151F4C
- .align 2, 0
-_08151F18: .4byte 0x000031d0
-_08151F1C:
- ldr r4, _08151FA0 @ =0x000031d4
- adds r0, r1, r4
- ldrb r4, [r0]
- cmp r4, 0x1
- bne _08151F4E
- movs r5, 0xA2
- lsls r5, 1
- adds r0, r2, r5
- ldrb r0, [r0]
- cmp r0, 0
- bne _08151F4E
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _08151F4E
- movs r0, 0x16
- bl PlaySE
- movs r0, 0x1
- bl sub_8153BC0
- ldr r0, [r6]
- adds r0, r5
-_08151F4C:
- strb r4, [r0]
-_08151F4E:
- mov r4, r8
- cmp r4, r7
- bcs _08151FC2
- ldr r5, _08151FA4 @ =gUnknown_203F3E0
-_08151F56:
- ldr r2, [r5]
- adds r0, r2, 0
- adds r0, 0x28
- ldrb r1, [r0]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 2
- ldr r1, _08151FA8 @ =0x000031a0
- adds r0, r1
- adds r0, r2, r0
- adds r1, r0, 0
- adds r1, 0x14
- adds r0, 0x1F
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x9
- bls _08151FAC
- movs r3, 0xA4
- lsls r3, 1
- adds r0, r2, r3
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _08151FB8
- adds r0, r1, r4
- ldrb r0, [r0]
- adds r0, 0x43
- bl PlaySE
- ldr r0, [r5]
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r1
- adds r0, r4
- movs r1, 0x1
- b _08151FB6
- .align 2, 0
-_08151FA0: .4byte 0x000031d4
-_08151FA4: .4byte gUnknown_203F3E0
-_08151FA8: .4byte 0x000031a0
-_08151FAC:
- movs r3, 0xA4
- lsls r3, 1
- adds r0, r2, r3
- adds r0, r4
- movs r1, 0
-_08151FB6:
- strb r1, [r0]
-_08151FB8:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r7
- bcc _08151F56
-_08151FC2:
- ldr r0, _08151FEC @ =gUnknown_203F3E0
- ldr r2, [r0]
- movs r5, 0xAA
- lsls r5, 1
- adds r1, r2, r5
- ldrb r1, [r1]
- adds r4, r0, 0
- cmp r1, 0
- bne _08151FF0
- adds r0, r2, 0
- adds r0, 0x40
- ldrb r0, [r0]
- cmp r0, 0x9
- bls _08151FF0
- bl StopMapMusic
- ldr r0, [r4]
- adds r0, r5
- movs r1, 0x1
- b _0815200E
- .align 2, 0
-_08151FEC: .4byte gUnknown_203F3E0
-_08151FF0:
- ldr r0, [r4]
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08152010
- movs r0, 0xA
- bl PlayFanfareByFanfareNum
- ldr r0, [r4]
- movs r3, 0xAA
- lsls r3, 1
- adds r0, r3
- movs r1, 0x2
-_0815200E:
- strb r1, [r0]
-_08152010:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8151E94
-
- thumb_func_start sub_815201C
-sub_815201C: @ 815201C
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_815201C
-
- thumb_func_start sub_8152034
-sub_8152034: @ 8152034
- push {lr}
- bl TransferPlttBuffer
- bl LoadOam
- bl ProcessSpriteCopyRequests
- pop {r0}
- bx r0
- thumb_func_end sub_8152034
-
- thumb_func_start sub_8152048
-sub_8152048: @ 8152048
- push {r4,lr}
- adds r4, r0, 0
- adds r0, r1, 0
- bl IsMonShiny
- strb r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8152048
-
- thumb_func_start sub_815205C
-sub_815205C: @ 815205C
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- bl CreateTask
- pop {r0}
- bx r0
- thumb_func_end sub_815205C
-
- thumb_func_start sub_815206C
-sub_815206C: @ 815206C
- push {lr}
- movs r1, 0x1
- bl CreateTask
- ldr r1, _0815208C @ =gUnknown_203F3E0
- ldr r3, [r1]
- movs r2, 0
- strb r0, [r3, 0x4]
- ldr r0, [r1]
- strb r2, [r0, 0x10]
- ldr r0, [r1]
- strb r2, [r0, 0xC]
- ldr r0, [r1]
- strb r2, [r0, 0x14]
- pop {r0}
- bx r0
- .align 2, 0
-_0815208C: .4byte gUnknown_203F3E0
- thumb_func_end sub_815206C
-
- thumb_func_start sub_8152090
-sub_8152090: @ 8152090
- push {r4,lr}
- ldr r2, _081520B0 @ =gUnknown_203F3E0
- ldr r1, [r2]
- ldrb r3, [r1, 0x18]
- movs r4, 0
- strb r3, [r1, 0x1C]
- ldr r1, [r2]
- strb r0, [r1, 0x18]
- ldr r0, [r2]
- strb r4, [r0, 0x10]
- ldr r0, [r2]
- strb r4, [r0, 0x14]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081520B0: .4byte gUnknown_203F3E0
- thumb_func_end sub_8152090
-
- thumb_func_start sub_81520B4
-sub_81520B4: @ 81520B4
- push {r4,lr}
- ldr r3, _081520E8 @ =gUnknown_203F3E0
- ldr r1, [r3]
- ldrb r0, [r1, 0x14]
- lsrs r2, r0, 2
- adds r0, 0x1
- strb r0, [r1, 0x14]
- cmp r2, 0
- beq _08152108
- ldr r3, [r3]
- ldrb r0, [r3, 0x14]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08152108
- ldr r1, _081520EC @ =sUnknown_8475548
- adds r0, r3, 0
- adds r0, 0x24
- ldrb r0, [r0]
- subs r0, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r2, r0
- bcc _081520F0
- movs r0, 0x1
- b _0815210A
- .align 2, 0
-_081520E8: .4byte gUnknown_203F3E0
-_081520EC: .4byte sUnknown_8475548
-_081520F0:
- lsls r4, r2, 3
- adds r1, r4, 0
- movs r0, 0x14
- bl SetGpuReg
- negs r4, r4
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0x18
- adds r1, r4, 0
- bl SetGpuReg
-_08152108:
- movs r0, 0
-_0815210A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81520B4
-
- thumb_func_start sub_8152110
-sub_8152110: @ 8152110
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r2, _08152168 @ =gUnknown_203F3E0
- ldr r0, [r2]
- adds r1, r0, 0
- adds r1, 0x44
- adds r0, 0x48
- ldrb r5, [r0]
- ldrb r1, [r1]
- cmp r1, r5
- bcs _0815215C
- mov r8, r2
- ldr r0, _0815216C @ =0x000032e0
- mov r12, r0
- movs r7, 0
- movs r6, 0x1
-_08152132:
- mov r2, r8
- ldr r0, [r2]
- mov r2, r12
- adds r4, r0, r2
- ldr r2, _08152170 @ =0x000032eb
- adds r0, r2
- adds r2, r0, r1
- movs r3, 0
- adds r0, r1, 0
- ands r0, r6
- cmp r0, 0
- bne _0815214C
- movs r3, 0x1
-_0815214C:
- strb r3, [r2]
- adds r0, r4, r1
- strb r7, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, r5
- bcc _08152132
-_0815215C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08152168: .4byte gUnknown_203F3E0
-_0815216C: .4byte 0x000032e0
-_08152170: .4byte 0x000032eb
- thumb_func_end sub_8152110
-
- thumb_func_start sub_8152174
-sub_8152174: @ 8152174
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- ldr r0, _08152248 @ =gUnknown_203F3E0
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x44
- ldrb r0, [r0]
- str r0, [sp]
- adds r0, r1, 0
- adds r0, 0x48
- ldrb r0, [r0]
- str r0, [sp, 0x4]
- adds r0, r1, 0
- adds r0, 0x24
- ldrb r0, [r0]
- str r0, [sp, 0x8]
- adds r0, r1, 0
- adds r0, 0x40
- ldrb r0, [r0]
- cmp r0, 0x9
- bls _081521A8
- b _08152464
-_081521A8:
- movs r6, 0
- ldr r0, [sp, 0x8]
- cmp r6, r0
- bcs _08152290
-_081521B0:
- ldr r3, _08152248 @ =gUnknown_203F3E0
- lsls r0, r6, 4
- subs r1, r0, r6
- lsls r1, 2
- ldr r2, [r3]
- adds r1, r2
- ldr r4, _0815224C @ =0x000031cc
- adds r4, r1
- mov r8, r4
- ldrb r1, [r4]
- mov r9, r0
- adds r0, r6, 0x1
- str r0, [sp, 0xC]
- cmp r1, 0
- beq _08152284
- adds r0, r2, 0
- adds r0, 0xA8
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08152284
- ldr r1, [sp]
- mov r10, r1
- ldr r2, [sp, 0x4]
- cmp r10, r2
- bcs _08152284
- adds r7, r3, 0
-_081521E6:
- ldr r0, _08152250 @ =sUnknown_8471F50
- add r0, r10
- ldrb r5, [r0]
- ldr r1, [r7]
- lsls r4, r5, 1
- adds r0, r1, 0
- adds r0, 0xF4
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, r6
- beq _08152284
- adds r0, r1, 0
- adds r0, 0xF5
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, r6
- beq _08152284
- mov r0, r8
- ldrb r1, [r0]
- adds r0, r6, 0
- adds r2, r5, 0
- bl sub_8152484
- cmp r0, 0x1
- bne _08152260
- movs r2, 0
- ldr r3, _08152248 @ =gUnknown_203F3E0
- mov r8, r4
-_0815221E:
- ldr r0, [r3]
- mov r4, r8
- adds r1, r2, r4
- adds r0, 0xF4
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _08152254
- strb r6, [r1]
- ldr r0, [r3]
- adds r0, 0xA8
- adds r0, r6
- movs r1, 0x2
- strb r1, [r0]
- ldr r0, [r3]
- adds r0, 0xC4
- adds r0, r5
- movs r1, 0x1
- strb r1, [r0]
- b _08152284
- .align 2, 0
-_08152248: .4byte gUnknown_203F3E0
-_0815224C: .4byte 0x000031cc
-_08152250: .4byte sUnknown_8471F50
-_08152254:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x1
- bls _0815221E
- b _08152284
-_08152260:
- ldr r0, [r7]
- mov r2, r9
- subs r1, r2, r6
- lsls r1, 2
- adds r0, r1
- ldr r4, _08152354 @ =0x000031d4
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08152284
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, [sp, 0x4]
- cmp r10, r0
- bcc _081521E6
-_08152284:
- ldr r1, [sp, 0xC]
- lsls r0, r1, 24
- lsrs r6, r0, 24
- ldr r2, [sp, 0x8]
- cmp r6, r2
- bcc _081521B0
-_08152290:
- ldr r4, [sp]
- mov r10, r4
- ldr r0, [sp, 0x4]
- cmp r10, r0
- bcc _0815229C
- b _08152464
-_0815229C:
- ldr r1, _08152358 @ =gUnknown_203F3E0
- mov r9, r1
-_081522A0:
- movs r6, 0xFF
- ldr r0, _0815235C @ =sUnknown_8471F50
- add r0, r10
- ldrb r5, [r0]
- mov r2, r9
- ldr r0, [r2]
- adds r0, 0xC4
- adds r0, r5
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _081522B8
- b _08152452
-_081522B8:
- adds r0, r5, 0
- bl sub_8152BD4
- mov r1, r9
- ldr r4, [r1]
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- adds r1, 0x90
- adds r1, r0
- ldrb r0, [r1]
- movs r1, 0x7
- bl __udivsi3
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x1
- bls _081522DE
- movs r3, 0x2
-_081522DE:
- ldr r2, _08152360 @ =sUnknown_847553C
- ldr r0, _08152364 @ =0x000031b4
- adds r1, r4, r0
- adds r1, r5
- lsls r0, r3, 1
- adds r0, r3
- ldrb r1, [r1]
- adds r0, r1
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r4, 0
- adds r0, 0xD0
- adds r0, r5
- ldrb r0, [r0]
- subs r2, r1, r0
- cmp r2, 0x5
- bgt _0815230C
- adds r1, r4, 0
- adds r1, 0x9C
- adds r1, r5
- ldrb r0, [r1]
- adds r0, r2
- strb r0, [r1]
-_0815230C:
- mov r2, r9
- ldr r1, [r2]
- adds r1, 0x9C
- adds r1, r5
- ldrb r0, [r1]
- adds r0, 0x1
- movs r2, 0
- strb r0, [r1]
- movs r4, 0xFF
- ands r0, r4
- cmp r0, 0x5
- bhi _08152326
- b _08152452
-_08152326:
- mov r1, r9
- ldr r0, [r1]
- adds r0, 0x9C
- adds r0, r5
- strb r2, [r0]
- ldr r3, [r1]
- lsls r1, r5, 1
- adds r0, r3, 0
- adds r0, 0xF4
- adds r2, r0, r1
- ldrb r0, [r2]
- mov r8, r1
- cmp r0, 0xFF
- bne _08152368
- adds r0, r3, 0
- adds r0, 0xF5
- add r0, r8
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08152350
- b _08152452
-_08152350:
- b _08152378
- .align 2, 0
-_08152354: .4byte 0x000031d4
-_08152358: .4byte gUnknown_203F3E0
-_0815235C: .4byte sUnknown_8471F50
-_08152360: .4byte sUnknown_847553C
-_08152364: .4byte 0x000031b4
-_08152368:
- adds r0, r3, 0
- adds r0, 0xF5
- add r0, r8
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08152378
- ldrb r4, [r2]
- b _0815239E
-_08152378:
- mov r2, r9
- ldr r1, [r2]
- adds r0, r1, 0
- adds r0, 0xF4
- add r0, r8
- ldrb r7, [r0]
- adds r1, 0xF5
- add r1, r8
- ldrb r6, [r1]
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- bne _0815239A
- adds r4, r7, 0
- b _0815239E
-_0815239A:
- adds r4, r6, 0
- adds r6, r7, 0
-_0815239E:
- mov r1, r9
- ldr r0, [r1]
- ldr r2, _08152474 @ =0x000032eb
- adds r0, r2
- adds r0, r5
- movs r1, 0x7
- strb r1, [r0]
- mov r1, r9
- ldr r0, [r1]
- adds r0, 0xC4
- adds r0, r5
- movs r1, 0x2
- strb r1, [r0]
- mov r2, r9
- ldr r0, [r2]
- adds r0, 0xA8
- adds r0, r4
- movs r1, 0x3
- strb r1, [r0]
- ldr r0, [r2]
- adds r0, 0xB8
- adds r0, r5
- strb r4, [r0]
- ldr r1, [r2]
- lsls r0, r4, 4
- subs r0, r4
- lsls r0, 2
- adds r1, r0
- ldr r2, _08152478 @ =0x000031d0
- adds r1, r2
- movs r0, 0x1
- strb r0, [r1]
- mov r2, r9
- ldr r1, [r2]
- lsls r0, r6, 4
- subs r0, r6
- lsls r0, 2
- adds r1, r0
- ldr r0, _0815247C @ =0x000031d4
- adds r1, r0
- movs r2, 0x1
- strb r2, [r1]
- mov r0, r9
- ldr r1, [r0]
- lsls r0, r4, 1
- adds r1, 0x86
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r0, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_8152D34
- movs r0, 0x1
- bl sub_8152F94
- adds r0, r4, 0
- bl sub_8152B64
- mov r1, r9
- ldr r0, [r1]
- adds r1, r0, 0
- adds r1, 0xE8
- adds r1, r5
- ldr r2, _08152480 @ =0x000032e0
- adds r0, r2
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1]
- mov r4, r9
- ldr r0, [r4]
- adds r0, r2
- adds r0, r5
- movs r1, 0x3
- strb r1, [r0]
- ldr r1, [r4]
- adds r1, 0xF4
- add r1, r8
- ldrb r0, [r1]
- movs r2, 0xFF
- orrs r0, r2
- strb r0, [r1]
- ldr r1, [r4]
- adds r1, 0xF5
- add r1, r8
- ldrb r0, [r1]
- orrs r0, r2
- strb r0, [r1]
-_08152452:
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r4, [sp, 0x4]
- cmp r10, r4
- bcs _08152464
- b _081522A0
-_08152464:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08152474: .4byte 0x000032eb
-_08152478: .4byte 0x000031d0
-_0815247C: .4byte 0x000031d4
-_08152480: .4byte 0x000032e0
- thumb_func_end sub_8152174
-
- thumb_func_start sub_8152484
-sub_8152484: @ 8152484
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- movs r7, 0
- ldr r2, _081524B8 @ =gUnknown_203F3E0
- ldr r1, [r2]
- adds r0, r1, 0
- adds r0, 0x24
- ldrb r0, [r0]
- subs r0, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _081524BC @ =0x000032e0
- adds r1, r0
- mov r12, r2
- cmp r3, 0x2
- beq _081524C0
- cmp r3, 0x2
- bgt _081524C6
- cmp r3, 0x1
- beq _081524C4
- b _081524C6
- .align 2, 0
-_081524B8: .4byte gUnknown_203F3E0
-_081524BC: .4byte 0x000032e0
-_081524C0:
- movs r7, 0x1
- b _081524C6
-_081524C4:
- movs r7, 0x2
-_081524C6:
- adds r0, r1, 0
- adds r0, 0xB
- adds r0, r6
- ldrb r0, [r0]
- subs r0, 0x6
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08152524
- ldr r0, _08152518 @ =sUnknown_8472063
- lsls r1, r4, 1
- adds r1, r4
- adds r1, r7, r1
- lsls r2, r5, 4
- subs r2, r5
- adds r1, r2
- adds r1, r0
- ldrb r1, [r1]
- cmp r6, r1
- bne _0815255A
- mov r0, r12
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0xC4
- adds r0, r6
- ldrb r0, [r0]
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08152520
- lsls r0, r4, 4
- subs r0, r4
- lsls r0, 2
- adds r0, r1, r0
- ldr r1, _0815251C @ =0x000031d4
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- b _0815255A
- .align 2, 0
-_08152518: .4byte sUnknown_8472063
-_0815251C: .4byte 0x000031d4
-_08152520:
- movs r0, 0x1
- b _0815255C
-_08152524:
- ldr r0, _08152564 @ =sUnknown_8472063
- lsls r1, r4, 1
- adds r1, r4
- adds r1, r7, r1
- lsls r2, r5, 4
- subs r2, r5
- adds r1, r2
- adds r1, r0
- ldrb r1, [r1]
- cmp r6, r1
- bne _0815255A
- mov r1, r12
- ldr r0, [r1]
- adds r0, 0xA8
- adds r0, r4
- movs r1, 0x4
- strb r1, [r0]
- mov r0, r12
- ldr r1, [r0]
- lsls r0, r4, 4
- subs r0, r4
- lsls r0, 2
- adds r1, r0
- ldr r0, _08152568 @ =0x000031d4
- adds r1, r0
- movs r0, 0x1
- strb r0, [r1]
-_0815255A:
- movs r0, 0
-_0815255C:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08152564: .4byte sUnknown_8472063
-_08152568: .4byte 0x000031d4
- thumb_func_end sub_8152484
-
- thumb_func_start sub_815256C
-sub_815256C: @ 815256C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r2, _08152640 @ =gUnknown_203F3E0
- ldr r4, [r2]
- adds r0, r4, 0
- adds r0, 0x44
- ldrb r1, [r0]
- adds r0, 0x4
- ldrb r0, [r0]
- mov r9, r0
- movs r3, 0
- mov r10, r3
- movs r5, 0x90
- lsls r5, 1
- adds r0, r4, r5
- str r3, [r0]
- adds r5, r1, 0
- mov r0, r9
- subs r0, 0x1
- cmp r5, r0
- blt _0815259E
- b _081527BC
-_0815259E:
- mov r8, r2
-_081525A0:
- mov r0, r8
- ldr r4, [r0]
- adds r0, r4, 0
- adds r0, 0xC4
- adds r0, r5
- ldrb r0, [r0]
- cmp r0, 0x1
- bls _081525B2
- b _081526BC
-_081525B2:
- movs r1, 0x90
- lsls r1, 1
- adds r0, r4, r1
- movs r2, 0x1
- str r2, [r0]
- ldr r1, _08152644 @ =0x000032eb
- adds r0, r4, r1
- adds r6, r0, r5
- ldrb r0, [r6]
- cmp r0, 0x9
- bls _0815264C
- movs r7, 0
- movs r0, 0xA
- strb r0, [r6]
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0xC4
- adds r0, r5
- movs r1, 0x3
- strb r1, [r0]
- mov r1, r8
- ldr r0, [r1]
- movs r6, 0xA4
- lsls r6, 1
- adds r0, r6
- adds r1, r0, r5
- ldrb r0, [r1]
- cmp r0, 0
- bne _081525FC
- strb r2, [r1]
- ldr r2, _08152648 @ =0x000032e0
- adds r0, r4, r2
- adds r0, r5
- ldrb r0, [r0]
- adds r0, 0x43
- bl PlaySE
-_081525FC:
- mov r0, r8
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x40
- ldrb r0, [r0]
- cmp r0, 0x9
- bls _08152612
- mov r2, r10
- cmp r2, 0x1
- beq _08152612
- b _081527AC
-_08152612:
- movs r0, 0x1
- mov r10, r0
- adds r0, r1, r6
- adds r0, r5
- strb r7, [r0]
- mov r1, r8
- ldr r0, [r1]
- adds r1, r0, 0
- adds r1, 0x40
- ldrb r0, [r1]
- cmp r0, 0x9
- bhi _0815262E
- adds r0, 0x1
- strb r0, [r1]
-_0815262E:
- movs r0, 0x3
- adds r1, r5, 0
- movs r2, 0
- bl sub_8152D34
- movs r0, 0
- bl sub_8152F94
- b _081527AC
- .align 2, 0
-_08152640: .4byte gUnknown_203F3E0
-_08152644: .4byte 0x000032eb
-_08152648: .4byte 0x000032e0
-_0815264C:
- adds r0, r5, 0
- bl sub_8152BD4
- mov r2, r8
- ldr r7, [r2]
- lsls r0, 24
- lsrs r0, 24
- adds r1, r7, 0
- adds r1, 0x90
- adds r1, r0
- ldrb r0, [r1]
- movs r1, 0x7
- bl __udivsi3
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x1
- bls _08152672
- movs r3, 0x2
-_08152672:
- ldr r2, _081526B4 @ =sUnknown_847553C
- ldr r0, _081526B8 @ =0x000032e0
- adds r1, r4, r0
- adds r1, r5
- lsls r0, r3, 1
- adds r0, r3
- ldrb r1, [r1]
- adds r0, r1
- adds r0, r2
- ldrb r2, [r0]
- adds r1, r7, 0
- adds r1, 0xD0
- adds r1, r5
- ldrb r0, [r1]
- adds r0, 0x1
- movs r3, 0
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r2
- bcc _081526AC
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0xD0
- adds r0, r5
- strb r3, [r0]
-_081526AC:
- bl sub_8152174
- b _081527AC
- .align 2, 0
-_081526B4: .4byte sUnknown_847553C
-_081526B8: .4byte 0x000032e0
-_081526BC:
- cmp r0, 0x2
- bne _0815273C
- adds r1, r4, 0
- adds r1, 0xDC
- adds r1, r5
- ldrb r0, [r1]
- adds r0, 0x1
- movs r3, 0
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bls _081527AC
- mov r0, r8
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0xB8
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 2
- adds r2, r0
- ldr r1, _08152730 @ =0x000031d0
- adds r2, r1
- strb r3, [r2]
- mov r2, r8
- ldr r0, [r2]
- adds r0, 0xDC
- adds r0, r5
- strb r3, [r0]
- ldr r0, [r2]
- adds r0, 0xD0
- adds r0, r5
- strb r3, [r0]
- ldr r0, [r2]
- adds r0, 0xC4
- adds r0, r5
- strb r3, [r0]
- ldr r1, _08152734 @ =0x000032eb
- adds r0, r4, r1
- adds r0, r5
- movs r1, 0x1
- strb r1, [r0]
- adds r0, r5, 0
- bl sub_8152BD4
- lsls r0, 24
- lsrs r0, 24
- adds r1, r5, 0
- bl sub_8152BF8
- ldr r2, _08152738 @ =0x000032e0
- adds r1, r4, r2
- adds r1, r5
- strb r0, [r1]
- b _081527AC
- .align 2, 0
-_08152730: .4byte 0x000031d0
-_08152734: .4byte 0x000032eb
-_08152738: .4byte 0x000032e0
-_0815273C:
- cmp r0, 0x3
- bne _081527AC
- adds r1, r4, 0
- adds r1, 0xDC
- adds r1, r5
- ldrb r0, [r1]
- adds r0, 0x1
- movs r2, 0
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bls _081527AC
- mov r0, r8
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x40
- ldrb r0, [r0]
- cmp r0, 0x9
- bhi _081527AC
- adds r0, r1, 0
- adds r0, 0xDC
- adds r0, r5
- strb r2, [r0]
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0xD0
- adds r0, r5
- strb r2, [r0]
- ldr r0, [r1]
- adds r0, 0xC4
- adds r0, r5
- strb r2, [r0]
- ldr r2, _081527CC @ =0x000032eb
- adds r0, r4, r2
- adds r0, r5
- movs r1, 0x1
- strb r1, [r0]
- mov r0, r8
- ldr r1, [r0]
- adds r1, 0xE8
- adds r1, r5
- subs r2, 0xB
- adds r4, r2
- adds r4, r5
- ldrb r0, [r4]
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_8152BD4
- lsls r0, 24
- lsrs r0, 24
- adds r1, r5, 0
- bl sub_8152BF8
- strb r0, [r4]
-_081527AC:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- mov r0, r9
- subs r0, 0x1
- cmp r5, r0
- bge _081527BC
- b _081525A0
-_081527BC:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081527CC: .4byte 0x000032eb
- thumb_func_end sub_815256C
-
- thumb_func_start sub_81527D0
-sub_81527D0: @ 81527D0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _08152838 @ =gUnknown_203F3E0
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0x44
- adds r0, 0x48
- ldrb r0, [r0]
- mov r8, r0
- ldrb r6, [r1]
- cmp r6, r8
- bcs _081528C2
- ldr r0, _0815283C @ =sUnknown_8471F50
- mov r9, r0
-_081527F0:
- ldr r0, _08152838 @ =gUnknown_203F3E0
- ldr r3, [r0]
- adds r0, r3, 0
- adds r0, 0x28
- ldrb r1, [r0]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 2
- ldr r2, _08152840 @ =0x000031a0
- adds r0, r2
- adds r7, r3, r0
- movs r0, 0xB
- adds r2, r1, 0
- muls r2, r0
- adds r2, r6, r2
- adds r3, 0x24
- ldrb r1, [r3]
- subs r1, 0x1
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 3
- subs r0, r1
- adds r2, r0
- add r2, r9
- ldrb r4, [r2]
- adds r0, r7, 0
- adds r0, 0x1F
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _08152844
- adds r0, r6, 0
- movs r1, 0
- bl sub_81542EC
- b _0815284C
- .align 2, 0
-_08152838: .4byte gUnknown_203F3E0
-_0815283C: .4byte sUnknown_8471F50
-_08152840: .4byte 0x000031a0
-_08152844:
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_81542EC
-_0815284C:
- adds r0, r7, 0
- adds r0, 0x1F
- adds r5, r0, r4
- ldrb r0, [r5]
- cmp r0, 0x9
- bls _08152878
- adds r0, r7, 0
- adds r0, 0x14
- adds r0, r4
- ldrb r1, [r0]
- adds r1, 0x3
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl sub_8154398
- ldrb r1, [r5]
- lsls r1, 25
- movs r0, 0xFF
- lsls r0, 24
- adds r1, r0
- b _0815289A
-_08152878:
- adds r0, r7, 0
- adds r0, 0x14
- adds r3, r0, r4
- ldrb r0, [r3]
- cmp r0, 0x3
- bne _081528A4
- movs r0, 0x7
- strb r0, [r5]
- adds r0, r6, 0
- movs r1, 0x6
- bl sub_8154398
- ldrb r1, [r5]
- lsls r1, 25
- movs r2, 0xFF
- lsls r2, 24
- adds r1, r2
-_0815289A:
- lsrs r1, 24
- adds r0, r6, 0
- bl sub_8154370
- b _081528B8
-_081528A4:
- ldrb r1, [r3]
- adds r0, r6, 0
- bl sub_8154398
- ldrb r1, [r5]
- lsls r1, 25
- lsrs r1, 24
- adds r0, r6, 0
- bl sub_8154370
-_081528B8:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, r8
- bcc _081527F0
-_081528C2:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81527D0
-
- thumb_func_start sub_81528D0
-sub_81528D0: @ 81528D0
- push {r4-r6,lr}
- ldr r1, _08152908 @ =gUnknown_203F3E0
- ldr r0, [r1]
- adds r0, 0x24
- ldrb r5, [r0]
- movs r4, 0
- cmp r4, r5
- bcs _08152902
- adds r6, r1, 0
-_081528E2:
- lsls r0, r4, 4
- subs r0, r4
- lsls r0, 2
- ldr r1, [r6]
- adds r0, r1
- ldr r1, _0815290C @ =0x000031cc
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r4, 0
- bl sub_8153DA8
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _081528E2
-_08152902:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08152908: .4byte gUnknown_203F3E0
-_0815290C: .4byte 0x000031cc
- thumb_func_end sub_81528D0
-
- thumb_func_start sub_8152910
-sub_8152910: @ 8152910
- push {r4,r5,lr}
- ldr r0, _08152938 @ =gUnknown_203F3E0
- ldr r0, [r0]
- adds r0, 0x24
- ldrb r5, [r0]
- movs r4, 0
- cmp r4, r5
- bcs _08152932
-_08152920:
- adds r0, r4, 0
- movs r1, 0x4
- bl sub_8153DA8
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _08152920
-_08152932:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08152938: .4byte gUnknown_203F3E0
- thumb_func_end sub_8152910
-
- thumb_func_start sub_815293C
-sub_815293C: @ 815293C
- push {lr}
- bl sub_81527D0
- ldr r0, _08152954 @ =gUnknown_203F3E0
- ldr r0, [r0]
- adds r0, 0x40
- ldrb r0, [r0]
- cmp r0, 0x9
- bls _08152958
- bl sub_8152910
- b _0815295C
- .align 2, 0
-_08152954: .4byte gUnknown_203F3E0
-_08152958:
- bl sub_81528D0
-_0815295C:
- ldr r0, _0815296C @ =gUnknown_203F3E0
- ldr r0, [r0]
- adds r0, 0x40
- ldrb r0, [r0]
- bl sub_8153FC8
- pop {r0}
- bx r0
- .align 2, 0
-_0815296C: .4byte gUnknown_203F3E0
- thumb_func_end sub_815293C
-
- thumb_func_start sub_8152970
-sub_8152970: @ 8152970
- push {lr}
- bl sub_81527D0
- ldr r0, _08152988 @ =gUnknown_203F3E0
- ldr r0, [r0]
- adds r0, 0x40
- ldrb r0, [r0]
- cmp r0, 0x9
- bls _0815298C
- bl sub_8152910
- b _08152990
- .align 2, 0
-_08152988: .4byte gUnknown_203F3E0
-_0815298C:
- bl sub_81528D0
-_08152990:
- ldr r0, _081529A0 @ =gUnknown_203F3E0
- ldr r0, [r0]
- adds r0, 0x40
- ldrb r0, [r0]
- bl sub_8153FC8
- pop {r0}
- bx r0
- .align 2, 0
-_081529A0: .4byte gUnknown_203F3E0
- thumb_func_end sub_8152970
-
- thumb_func_start sub_81529A4
-sub_81529A4: @ 81529A4
- push {lr}
- adds r3, r1, 0
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- cmp r0, 0x4
- bhi _081529FC
- lsls r0, 2
- ldr r1, _081529BC @ =_081529C0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081529BC: .4byte _081529C0
- .align 2, 0
-_081529C0:
- .4byte _081529D4
- .4byte _081529DC
- .4byte _081529E4
- .4byte _081529EC
- .4byte _081529F4
-_081529D4:
- movs r0, 0x4
- strb r0, [r3]
- movs r0, 0x7
- b _081529FA
-_081529DC:
- movs r0, 0x3
- strb r0, [r3]
- movs r0, 0x8
- b _081529FA
-_081529E4:
- movs r0, 0x2
- strb r0, [r3]
- movs r0, 0x9
- b _081529FA
-_081529EC:
- movs r0, 0x1
- strb r0, [r3]
- movs r0, 0xA
- b _081529FA
-_081529F4:
- movs r0, 0
- strb r0, [r3]
- movs r0, 0xB
-_081529FA:
- strb r0, [r2]
-_081529FC:
- pop {r0}
- bx r0
- thumb_func_end sub_81529A4
-
- thumb_func_start sub_8152A00
-sub_8152A00: @ 8152A00
- push {r4-r6,lr}
- ldr r1, _08152A58 @ =gUnknown_203F3E0
- ldr r0, [r1]
- adds r0, 0x24
- ldrb r5, [r0]
- movs r4, 0x1
- cmp r4, r5
- bcs _08152A66
- adds r6, r1, 0
-_08152A12:
- ldr r0, [r6]
- movs r1, 0xAC
- lsls r1, 1
- adds r0, r1
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _08152A34
- adds r0, r4, 0
- bl sub_815A5E8
- ldr r1, [r6]
- movs r2, 0xAC
- lsls r2, 1
- adds r1, r2
- adds r1, r4
- strb r0, [r1]
-_08152A34:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _08152A12
- cmp r4, r5
- bcs _08152A66
- ldr r0, _08152A58 @ =gUnknown_203F3E0
- ldr r0, [r0]
- movs r2, 0xAC
- lsls r2, 1
- adds r1, r0, r2
-_08152A4C:
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _08152A5C
- movs r0, 0
- b _08152A68
- .align 2, 0
-_08152A58: .4byte gUnknown_203F3E0
-_08152A5C:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _08152A4C
-_08152A66:
- movs r0, 0x1
-_08152A68:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8152A00
-
- thumb_func_start sub_8152A70
-sub_8152A70: @ 8152A70
- push {r4,lr}
- movs r1, 0
- ldr r4, _08152A94 @ =gUnknown_203F3E0
- movs r3, 0xAC
- lsls r3, 1
- movs r2, 0
-_08152A7C:
- ldr r0, [r4]
- adds r0, r3
- adds r0, r1
- strb r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x4
- bls _08152A7C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08152A94: .4byte gUnknown_203F3E0
- thumb_func_end sub_8152A70
-
- thumb_func_start sub_8152A98
-sub_8152A98: @ 8152A98
- push {r4,lr}
- ldr r3, _08152ACC @ =gUnknown_203F3E0
- ldr r1, [r3]
- adds r2, r1, 0
- adds r2, 0x40
- ldrb r0, [r2]
- cmp r0, 0x9
- bls _08152AD0
- movs r4, 0x90
- lsls r4, 1
- adds r0, r1, r4
- ldr r0, [r0]
- cmp r0, 0
- bne _08152AD0
- movs r0, 0xA
- strb r0, [r2]
- ldr r0, [r3]
- movs r1, 0x96
- lsls r1, 1
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- beq _08152AD0
- movs r0, 0x1
- b _08152AD2
- .align 2, 0
-_08152ACC: .4byte gUnknown_203F3E0
-_08152AD0:
- movs r0, 0
-_08152AD2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8152A98
-
- thumb_func_start sub_8152AD8
-sub_8152AD8: @ 8152AD8
- push {r4-r6,lr}
- ldr r4, _08152B50 @ =gUnknown_203F3E0
- ldr r1, [r4]
- adds r2, r1, 0
- adds r2, 0x40
- ldrb r0, [r2]
- cmp r0, 0x9
- bls _08152B5C
- adds r0, r1, 0
- adds r0, 0x44
- ldrb r3, [r0]
- adds r0, 0x4
- ldrb r5, [r0]
- movs r0, 0xA
- strb r0, [r2]
- ldr r4, [r4]
- mov r12, r4
- movs r0, 0x96
- lsls r0, 1
- add r0, r12
- ldr r0, [r0]
- cmp r0, 0
- beq _08152B5C
- adds r4, r3, 0
- cmp r4, r5
- bcs _08152B4C
- mov r0, r12
- adds r0, 0x28
- ldrb r3, [r0]
- lsls r1, r3, 4
- subs r1, r3
- lsls r1, 2
- ldr r6, _08152B54 @ =sUnknown_8471F50
- subs r0, 0x4
- ldrb r2, [r0]
- subs r2, 0x1
- add r1, r12
- movs r0, 0xB
- muls r3, r0
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 3
- subs r2, r0, r2
- ldr r0, _08152B58 @ =0x000031bf
- adds r1, r0
-_08152B32:
- adds r0, r4, r3
- adds r0, r2
- adds r0, r6
- ldrb r0, [r0]
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0xA
- bne _08152B5C
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _08152B32
-_08152B4C:
- movs r0, 0x1
- b _08152B5E
- .align 2, 0
-_08152B50: .4byte gUnknown_203F3E0
-_08152B54: .4byte sUnknown_8471F50
-_08152B58: .4byte 0x000031bf
-_08152B5C:
- movs r0, 0
-_08152B5E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8152AD8
-
- thumb_func_start sub_8152B64
-sub_8152B64: @ 8152B64
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _08152BCC @ =sUnknown_8475550
- mov r8, r0
- ldr r0, _08152BD0 @ =gUnknown_203F3E0
- ldr r6, [r0]
- adds r0, r6, 0
- adds r0, 0x90
- adds r0, r5
- mov r9, r0
- ldrb r7, [r0]
- adds r0, r7, 0
- movs r1, 0x7
- bl __umodsi3
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- add r4, r8
- adds r0, r7, 0
- movs r1, 0x7
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldrb r4, [r4]
- adds r0, r4
- lsls r0, 24
- lsls r5, 1
- adds r6, 0x86
- adds r6, r5
- ldrh r1, [r6]
- lsrs r0, 24
- cmp r1, r0
- bcc _08152BBE
- adds r0, r7, 0x1
- mov r1, r9
- strb r0, [r1]
-_08152BBE:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08152BCC: .4byte sUnknown_8475550
-_08152BD0: .4byte gUnknown_203F3E0
- thumb_func_end sub_8152B64
-
- thumb_func_start sub_8152BD4
-sub_8152BD4: @ 8152BD4
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08152BF0 @ =sUnknown_84720FC
- ldr r1, _08152BF4 @ =gUnknown_203F3E0
- ldr r1, [r1]
- adds r1, 0x24
- ldrb r1, [r1]
- subs r1, 0x1
- movs r2, 0xB
- muls r1, r2
- adds r0, r1
- adds r0, r3
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08152BF0: .4byte sUnknown_84720FC
-_08152BF4: .4byte gUnknown_203F3E0
- thumb_func_end sub_8152BD4
-
- thumb_func_start sub_8152BF8
-sub_8152BF8: @ 8152BF8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r4, _08152C78 @ =gUnknown_203F3E0
- ldr r1, [r4]
- adds r1, 0x24
- ldrb r2, [r1]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _08152C7C @ =sUnknown_84720AE
- lsls r1, r0, 1
- adds r1, r0
- lsls r0, r2, 4
- subs r0, r2
- adds r1, r0
- adds r0, r1, r3
- ldrb r0, [r0]
- mov r12, r0
- adds r0, r3, 0x1
- adds r0, r1, r0
- ldrb r7, [r0]
- adds r3, 0x2
- adds r1, r3
- ldrb r1, [r1]
- mov r8, r1
- movs r3, 0
- ldr r1, _08152C80 @ =sUnknown_8472133
- lsls r0, r2, 2
- adds r2, r0, r2
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08152C60
- adds r6, r1, 0
-_08152C46:
- adds r0, r3, r2
- adds r0, r6
- ldrb r0, [r0]
- cmp r5, r0
- beq _08152C84
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r3, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08152C46
-_08152C60:
- ldr r0, [r4]
- adds r0, 0x90
- mov r1, r12
- adds r2, r0, r1
- adds r1, r0, r7
- ldrb r0, [r2]
- ldrb r3, [r1]
- cmp r0, r3
- bls _08152C8E
- adds r1, r0, 0
- b _08152C90
- .align 2, 0
-_08152C78: .4byte gUnknown_203F3E0
-_08152C7C: .4byte sUnknown_84720AE
-_08152C80: .4byte sUnknown_8472133
-_08152C84:
- ldr r0, [r4]
- adds r0, 0x90
- adds r0, r7
- ldrb r0, [r0]
- b _08152CA2
-_08152C8E:
- ldrb r1, [r1]
-_08152C90:
- ldr r0, [r4]
- adds r0, 0x90
- mov r2, r8
- adds r4, r0, r2
- ldrb r0, [r4]
- cmp r0, r1
- bls _08152CA0
- adds r1, r0, 0
-_08152CA0:
- adds r0, r1, 0
-_08152CA2:
- adds r1, r5, 0
- bl sub_8152CB8
- lsls r0, 24
- lsrs r0, 24
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8152BF8
-
- thumb_func_start sub_8152CB8
-sub_8152CB8: @ 8152CB8
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _08152CE4 @ =gUnknown_203F3E0
- ldr r2, [r2]
- adds r2, 0xE8
- adds r2, r1
- ldrb r4, [r2]
- movs r1, 0x7
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bhi _08152D26
- lsls r0, 2
- ldr r1, _08152CE8 @ =_08152CEC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08152CE4: .4byte gUnknown_203F3E0
-_08152CE8: .4byte _08152CEC
- .align 2, 0
-_08152CEC:
- .4byte _08152D26
- .4byte _08152D1E
- .4byte _08152D2A
- .4byte _08152D08
- .4byte _08152D0E
- .4byte _08152D14
- .4byte _08152D1A
-_08152D08:
- cmp r4, 0
- beq _08152D1E
- b _08152D26
-_08152D0E:
- cmp r4, 0
- beq _08152D2A
- b _08152D26
-_08152D14:
- cmp r4, 0x2
- beq _08152D1E
- b _08152D2A
-_08152D1A:
- cmp r4, 0
- bne _08152D22
-_08152D1E:
- movs r0, 0x1
- b _08152D2C
-_08152D22:
- cmp r4, 0x1
- beq _08152D2A
-_08152D26:
- movs r0, 0
- b _08152D2C
-_08152D2A:
- movs r0, 0x2
-_08152D2C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8152CB8
-
- thumb_func_start sub_8152D34
-sub_8152D34: @ 8152D34
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r1, _08152D60 @ =gUnknown_203F3E0
- ldr r2, [r1]
- adds r0, r2, 0
- adds r0, 0x24
- ldrb r0, [r0]
- adds r5, r1, 0
- cmp r4, 0
- bge _08152D54
- b _08152F8E
-_08152D54:
- cmp r4, 0x2
- ble _08152D64
- cmp r4, 0x3
- beq _08152D94
- b _08152F8E
- .align 2, 0
-_08152D60: .4byte gUnknown_203F3E0
-_08152D64:
- ldr r1, _08152D8C @ =0x000031b4
- adds r0, r2, r1
- adds r0, r3
- ldrb r4, [r0]
- lsls r4, 1
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r4, r0
- adds r0, r2, 0
- adds r0, 0x4A
- adds r0, r4
- ldrh r0, [r0]
- ldr r1, _08152D90 @ =0x00004e20
- bl sub_815378C
- ldr r1, [r5]
- adds r1, 0x4A
- adds r1, r4
- b _08152F8C
- .align 2, 0
-_08152D8C: .4byte 0x000031b4
-_08152D90: .4byte 0x00004e20
-_08152D94:
- cmp r0, 0x3
- bne _08152D9A
- b _08152EE0
-_08152D9A:
- cmp r0, 0x3
- bgt _08152DA6
- cmp r0, 0x2
- bne _08152DA4
- b _08152F4A
-_08152DA4:
- b _08152F8E
-_08152DA6:
- cmp r0, 0x4
- beq _08152E56
- cmp r0, 0x5
- beq _08152DB0
- b _08152F8E
-_08152DB0:
- cmp r3, 0x9
- bls _08152DB6
- b _08152F8E
-_08152DB6:
- lsls r0, r3, 2
- ldr r1, _08152DC0 @ =_08152DC4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08152DC0: .4byte _08152DC4
- .align 2, 0
-_08152DC4:
- .4byte _08152DEC
- .4byte _08152DFC
- .4byte _08152E02
- .4byte _08152E12
- .4byte _08152E18
- .4byte _08152E28
- .4byte _08152E2E
- .4byte _08152E3C
- .4byte _08152E40
- .4byte _08152E50
-_08152DEC:
- ldr r1, [r5]
- adds r2, r1, 0
- adds r2, 0x68
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- adds r1, 0x74
- b _08152F88
-_08152DFC:
- ldr r1, [r5]
- adds r1, 0x74
- b _08152F88
-_08152E02:
- ldr r1, [r5]
- adds r2, r1, 0
- adds r2, 0x74
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- adds r1, 0x80
- b _08152F88
-_08152E12:
- ldr r1, [r5]
- adds r1, 0x80
- b _08152F88
-_08152E18:
- ldr r1, [r5]
- adds r2, r1, 0
- adds r2, 0x80
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- adds r1, 0x50
- b _08152F88
-_08152E28:
- ldr r1, [r5]
- adds r1, 0x50
- b _08152F88
-_08152E2E:
- ldr r1, [r5]
- adds r2, r1, 0
- adds r2, 0x50
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- b _08152F86
-_08152E3C:
- ldr r1, [r5]
- b _08152F86
-_08152E40:
- ldr r1, [r5]
- adds r2, r1, 0
- adds r2, 0x5C
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- adds r1, 0x68
- b _08152F88
-_08152E50:
- ldr r1, [r5]
- adds r1, 0x68
- b _08152F88
-_08152E56:
- subs r0, r3, 0x1
- cmp r0, 0x7
- bls _08152E5E
- b _08152F8E
-_08152E5E:
- lsls r0, 2
- ldr r1, _08152E68 @ =_08152E6C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08152E68: .4byte _08152E6C
- .align 2, 0
-_08152E6C:
- .4byte _08152E8C
- .4byte _08152E9C
- .4byte _08152EA2
- .4byte _08152EB2
- .4byte _08152EB8
- .4byte _08152EC6
- .4byte _08152ECA
- .4byte _08152EDA
-_08152E8C:
- ldr r1, [r5]
- adds r2, r1, 0
- adds r2, 0x68
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- adds r1, 0x74
- b _08152F88
-_08152E9C:
- ldr r1, [r5]
- adds r1, 0x74
- b _08152F88
-_08152EA2:
- ldr r1, [r5]
- adds r2, r1, 0
- adds r2, 0x74
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- adds r1, 0x50
- b _08152F88
-_08152EB2:
- ldr r1, [r5]
- adds r1, 0x50
- b _08152F88
-_08152EB8:
- ldr r1, [r5]
- adds r2, r1, 0
- adds r2, 0x50
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- b _08152F86
-_08152EC6:
- ldr r1, [r5]
- b _08152F86
-_08152ECA:
- ldr r1, [r5]
- adds r2, r1, 0
- adds r2, 0x5C
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- adds r1, 0x68
- b _08152F88
-_08152EDA:
- ldr r1, [r5]
- adds r1, 0x68
- b _08152F88
-_08152EE0:
- subs r0, r3, 0x2
- cmp r0, 0x5
- bhi _08152F8E
- lsls r0, 2
- ldr r1, _08152EF0 @ =_08152EF4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08152EF0: .4byte _08152EF4
- .align 2, 0
-_08152EF4:
- .4byte _08152F0C
- .4byte _08152F1C
- .4byte _08152F22
- .4byte _08152F32
- .4byte _08152F38
- .4byte _08152F46
-_08152F0C:
- ldr r1, [r5]
- adds r2, r1, 0
- adds r2, 0x5C
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- adds r1, 0x68
- b _08152F88
-_08152F1C:
- ldr r1, [r5]
- adds r1, 0x68
- b _08152F88
-_08152F22:
- ldr r1, [r5]
- adds r2, r1, 0
- adds r2, 0x68
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- adds r1, 0x50
- b _08152F88
-_08152F32:
- ldr r1, [r5]
- adds r1, 0x50
- b _08152F88
-_08152F38:
- ldr r1, [r5]
- adds r2, r1, 0
- adds r2, 0x50
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- b _08152F86
-_08152F46:
- ldr r1, [r5]
- b _08152F86
-_08152F4A:
- cmp r3, 0x4
- beq _08152F70
- cmp r3, 0x4
- bgt _08152F58
- cmp r3, 0x3
- beq _08152F62
- b _08152F8E
-_08152F58:
- cmp r3, 0x5
- beq _08152F76
- cmp r3, 0x6
- beq _08152F84
- b _08152F8E
-_08152F62:
- adds r1, r2, 0
- adds r1, 0x50
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- adds r1, 0xC
- b _08152F88
-_08152F70:
- adds r1, r2, 0
- adds r1, 0x50
- b _08152F88
-_08152F76:
- adds r1, r2, 0
- adds r1, 0x50
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- adds r1, 0xC
- b _08152F88
-_08152F84:
- adds r1, r2, 0
-_08152F86:
- adds r1, 0x5C
-_08152F88:
- ldrh r0, [r1]
- adds r0, 0x1
-_08152F8C:
- strh r0, [r1]
-_08152F8E:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8152D34
-
- thumb_func_start sub_8152F94
-sub_8152F94: @ 8152F94
- push {r4,r5,lr}
- adds r1, r0, 0
- ldr r4, _08152FD8 @ =gUnknown_203F3E0
- ldr r3, [r4]
- adds r0, r3, 0
- adds r0, 0x24
- ldrb r0, [r0]
- cmp r0, 0x5
- bne _08152FFE
- cmp r1, 0x1
- bne _08152FE0
- movs r5, 0x89
- lsls r5, 1
- adds r1, r3, r5
- ldrh r0, [r1]
- adds r2, r0, 0x1
- strh r2, [r1]
- movs r0, 0x8A
- lsls r0, 1
- adds r1, r3, r0
- lsls r0, r2, 16
- lsrs r0, 16
- ldrh r3, [r1]
- cmp r0, r3
- bls _08152FC8
- strh r2, [r1]
-_08152FC8:
- ldr r0, [r4]
- adds r2, r0, r5
- ldrh r0, [r2]
- ldr r1, _08152FDC @ =0x0000270f
- cmp r0, r1
- bls _08152FFE
- strh r1, [r2]
- b _08152FFE
- .align 2, 0
-_08152FD8: .4byte gUnknown_203F3E0
-_08152FDC: .4byte 0x0000270f
-_08152FE0:
- movs r2, 0x89
- lsls r2, 1
- adds r0, r3, r2
- movs r5, 0x8A
- lsls r5, 1
- adds r1, r3, r5
- ldrh r0, [r0]
- ldrh r3, [r1]
- cmp r0, r3
- bls _08152FF6
- strh r0, [r1]
-_08152FF6:
- ldr r0, [r4]
- adds r0, r2
- movs r1, 0
- strh r1, [r0]
-_08152FFE:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8152F94
-
- thumb_func_start sub_8153004
-sub_8153004: @ 8153004
- push {r4,r5,lr}
- movs r3, 0
- ldr r2, _08153044 @ =gUnknown_203F3E0
- ldr r0, [r2]
- adds r0, 0x24
- ldrb r0, [r0]
- cmp r3, r0
- bcs _0815303C
- adds r5, r2, 0
- movs r4, 0x8A
- lsls r4, 1
-_0815301A:
- ldr r2, [r5]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r1, r2, 0
- adds r1, 0x54
- adds r1, r0
- adds r0, r2, r4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r2, 0x24
- ldrb r2, [r2]
- cmp r3, r2
- bcc _0815301A
-_0815303C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08153044: .4byte gUnknown_203F3E0
- thumb_func_end sub_8153004
-
- thumb_func_start sub_8153048
-sub_8153048: @ 8153048
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r5, 0
- ldr r7, _08153138 @ =gUnknown_203F3E0
- movs r4, 0
- ldr r0, _0815313C @ =0x000031bf
- mov r10, r0
-_0815305C:
- movs r2, 0
- lsls r6, r5, 4
- lsls r1, r5, 1
- mov r8, r1
- lsls r0, r5, 3
- mov r12, r0
- adds r1, r5, 0x1
- mov r9, r1
- subs r0, r6, r5
- lsls r3, r0, 2
-_08153070:
- ldr r0, [r7]
- adds r1, r2, r3
- add r0, r10
- adds r0, r1
- strb r4, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xA
- bls _08153070
- ldr r0, [r7]
- subs r1, r6, r5
- lsls r1, 2
- adds r0, r1
- ldr r2, _08153140 @ =0x000031cc
- adds r0, r2
- strb r4, [r0]
- ldr r0, [r7]
- adds r0, r1
- ldr r1, _08153144 @ =0x000031d0
- adds r0, r1
- strb r4, [r0]
- ldr r0, [r7]
- adds r0, 0x90
- adds r0, r5
- strb r4, [r0]
- ldr r1, [r7]
- adds r0, r1, 0
- adds r0, 0x86
- add r0, r8
- strh r4, [r0]
- add r1, r12
- ldr r2, _08153148 @ =0x00003308
- adds r1, r2
- strb r4, [r1]
- ldr r2, [r7]
- ldr r1, _0815314C @ =0x0000330c
- adds r0, r2, r1
- add r0, r12
- str r4, [r0]
- mov r0, r8
- adds r1, r0, r5
- lsls r1, 2
- adds r0, r2, 0
- adds r0, 0x4A
- adds r0, r1
- strh r4, [r0]
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r1
- strh r4, [r0]
- adds r0, r2, 0
- adds r0, 0x4E
- adds r0, r1
- strh r4, [r0]
- adds r0, r2, 0
- adds r0, 0x50
- adds r0, r1
- strh r4, [r0]
- adds r0, r2, 0
- adds r0, 0x52
- adds r0, r1
- strh r4, [r0]
- adds r0, r2, 0
- adds r0, 0x54
- adds r0, r1
- strh r4, [r0]
- mov r1, r9
- lsls r0, r1, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bls _0815305C
- ldr r2, _08153138 @ =gUnknown_203F3E0
- ldr r0, [r2]
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r1
- movs r2, 0
- strb r2, [r0]
- ldr r1, _08153138 @ =gUnknown_203F3E0
- ldr r0, [r1]
- movs r1, 0x89
- lsls r1, 1
- adds r3, r0, r1
- movs r1, 0
- strh r2, [r3]
- adds r0, 0x40
- strb r1, [r0]
- bl sub_81528D0
- bl sub_81527D0
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08153138: .4byte gUnknown_203F3E0
-_0815313C: .4byte 0x000031bf
-_08153140: .4byte 0x000031cc
-_08153144: .4byte 0x000031d0
-_08153148: .4byte 0x00003308
-_0815314C: .4byte 0x0000330c
- thumb_func_end sub_8153048
-
thumb_func_start sub_8153150
sub_8153150: @ 8153150
push {r4,r5,lr}
@@ -3938,8 +870,8 @@ _08153786:
bx r1
thumb_func_end sub_815372C
- thumb_func_start sub_815378C
-sub_815378C: @ 815378C
+ thumb_func_start IncrementWithLimit
+IncrementWithLimit: @ 815378C
push {lr}
adds r2, r0, 0
adds r0, r1, 0
@@ -3949,7 +881,7 @@ sub_815378C: @ 815378C
_08153798:
pop {r1}
bx r1
- thumb_func_end sub_815378C
+ thumb_func_end IncrementWithLimit
thumb_func_start sub_815379C
sub_815379C: @ 815379C
diff --git a/include/dodrio_berry_picking.h b/include/dodrio_berry_picking.h
index 5304ae6ee..582c263c5 100644
--- a/include/dodrio_berry_picking.h
+++ b/include/dodrio_berry_picking.h
@@ -27,5 +27,12 @@ void StartDodrioBerryPicking(u16 species, MainCallback callback);
u32 sub_815A950(u32 unused, struct DodrioSubstruct_31A0 *arg0, struct DodrioSubstruct_31A0_2C *arg1, struct DodrioSubstruct_31A0_2C *arg2, struct DodrioSubstruct_31A0_2C *arg3, struct DodrioSubstruct_31A0_2C *arg4, struct DodrioSubstruct_31A0_2C *arg5, u8 *arg6, u32 *arg7, u32 *arg8);
u32 sub_815AB04(u32 arg0, u8 *arg1);
+bool32 sub_815AB60(u8 a0);
+void sub_815A61C(struct DodrioSubstruct_31A0 *arg0, struct DodrioSubstruct_31A0_2C *arg1, struct DodrioSubstruct_31A0_2C *arg2, struct DodrioSubstruct_31A0_2C *arg3, struct DodrioSubstruct_31A0_2C *arg4, struct DodrioSubstruct_31A0_2C *arg5, u8 arg6, u32 arg7, u32 arg8);
+void sub_815A5BC(u8 a0);
+void sub_815AAD8(u8 a0);
+void sub_815AB3C(u8 a0);
+u8 sub_815A5E8(s32 a0);
+u32 IncrementWithLimit(u32, u32);
#endif //GUARD_DODRIO_BERRY_PICKING_H
diff --git a/src/dodrio_berry_picking.c b/src/dodrio_berry_picking.c
index 405b22165..3aecec1fc 100644
--- a/src/dodrio_berry_picking.c
+++ b/src/dodrio_berry_picking.c
@@ -3,10 +3,13 @@
#include "dodrio_berry_picking.h"
#include "link.h"
#include "link_rfu.h"
+#include "m4a.h"
#include "minigame_countdown.h"
+#include "random.h"
#include "strings.h"
#include "task.h"
#include "constants/songs.h"
+#include "constants/fanfares.h"
struct DodrioSubstruct_0160
{
@@ -141,12 +144,21 @@ void sub_815206C(TaskFunc func);
void sub_8152090(u8 a0);
bool32 sub_81520B4(void);
void sub_8152110(void);
+bool32 sub_8152484(u8 a0, u8 a1, u8 a2);
void sub_815256C(void);
void sub_815293C(void);
void sub_8152970(void);
+bool32 sub_8152A00(void);
+void sub_8152A70(void);
void sub_81529A4(u8 a0, u8 *a1, u8 *a2);
bool32 sub_8152A98(void);
bool32 sub_8152AD8(void);
+void sub_8152B64(u8 a0);
+u8 sub_8152BD4(u8 a0);
+u8 sub_8152BF8(u8 a0, u8 a1);
+u8 sub_8152CB8(u8 arg0, u8 arg1);
+void sub_8152D34(u8 a0, u8 a1, u8 a2);
+void sub_8152F94(bool32 a0);
void sub_8153004(void);
void sub_8153048(void);
void sub_8153150(void);
@@ -157,9 +169,12 @@ void sub_815336C(void);
u32 sub_81534AC(void);
void sub_8153A9C(void);
void sub_8153AFC(struct DodrioSubstruct_318C * unk318C, u8 a1, u8 a2, u8 a3);
+void sub_8153BC0(u8 a0);
void sub_8153BF8(u8 a0);
void sub_8153D08(u8 playerCount);
void sub_8153D80(bool8 a0, u8 a1);
+void sub_8153DA8(u8 a0, u8 a1);
+void sub_8153FC8(u8 a0);
void sub_8153DD8(void);
void nullsub_97(struct Sprite *sprite);
void sub_8153E28(void);
@@ -169,6 +184,9 @@ void sub_81540DC(bool8 a0);
void sub_8154128(void);
void sub_815417C(void);
void sub_8154274(void);
+void sub_81542EC(u8 a0, u8 a1);
+void sub_8154370(u8 a0, u8 a1);
+void sub_8154398(u8 a0, u8 a1);
void sub_81543E8(struct Sprite *sprite);
void sub_8154438(void);
void sub_81544F0(void);
@@ -1369,6 +1387,949 @@ void sub_815184C(void)
}
}
+void sub_8151A5C(void)
+{
+ u8 i;
+ u8 r6 = gUnknown_203F3E0->unk24;
+
+ gUnknown_203F3E0->unk31A0[0].unk10 = sub_815A950(0, &gUnknown_203F3E0->unk31A0[0], &gUnknown_203F3E0->unk31A0[0].unk2C, &gUnknown_203F3E0->unk31A0[1].unk2C, &gUnknown_203F3E0->unk31A0[2].unk2C, &gUnknown_203F3E0->unk31A0[3].unk2C, &gUnknown_203F3E0->unk31A0[4].unk2C, &gUnknown_203F3E0->unk40, &gUnknown_203F3E0->unk120, &gUnknown_203F3E0->unk12C);
+ gUnknown_203F3E0->unk128 = 1;
+
+ for (i = 1; i < r6; i++)
+ {
+ if (sub_815AB60(i) != 0)
+ {
+ gUnknown_203F3E0->unk130[i] = 1;
+ gUnknown_203F3E0->unk128 = 0;
+ }
+ }
+ if (++gUnknown_203F3E0->unk124 >= 60)
+ {
+ if (gUnknown_203F3E0->unk128 != 0)
+ {
+ sub_80FBA44();
+ gUnknown_203F3E0->unk124 = 0;
+ }
+ else if (gUnknown_203F3E0->unk124 > 70)
+ {
+ sub_80FBA44();
+ gUnknown_203F3E0->unk124 = 0;
+ }
+ }
+}
+
+void sub_8151B54(void)
+{
+ switch (gUnknown_203F3E0->unk18)
+ {
+ case 3:
+ if (sub_8152A00() == TRUE)
+ {
+ sub_8152A70();
+ gUnknown_203F3E0->unk11C = 1;
+ }
+ break;
+ case 4:
+ sub_815184C();
+ break;
+ case 11:
+ sub_8151A5C();
+ break;
+ }
+}
+
+void sub_8151BA0(void)
+{
+ switch (gUnknown_203F3E0->unk18)
+ {
+ case 4:
+ sub_815A61C(&gUnknown_203F3E0->unk32CC, &gUnknown_203F3E0->unk31A0[0].unk2C, &gUnknown_203F3E0->unk31A0[1].unk2C, &gUnknown_203F3E0->unk31A0[2].unk2C, &gUnknown_203F3E0->unk31A0[3].unk2C, &gUnknown_203F3E0->unk31A0[4].unk2C, gUnknown_203F3E0->unk40, gUnknown_203F3E0->unk120, gUnknown_203F3E0->unk12C);
+ break;
+ case 11:
+ sub_815A61C(&gUnknown_203F3E0->unk32CC, &gUnknown_203F3E0->unk31A0[0].unk2C, &gUnknown_203F3E0->unk31A0[1].unk2C, &gUnknown_203F3E0->unk31A0[2].unk2C, &gUnknown_203F3E0->unk31A0[3].unk2C, &gUnknown_203F3E0->unk31A0[4].unk2C, gUnknown_203F3E0->unk40, gUnknown_203F3E0->unk120, gUnknown_203F3E0->unk12C);
+ break;
+ }
+}
+
+void sub_8151C5C(void)
+{
+ switch (gUnknown_203F3E0->unk18)
+ {
+ case 4:
+ sub_815A950(gUnknown_203F3E0->multiplayerId, &gUnknown_203F3E0->unk31A0[gUnknown_203F3E0->multiplayerId], &gUnknown_203F3E0->unk31A0[0].unk2C, &gUnknown_203F3E0->unk31A0[1].unk2C, &gUnknown_203F3E0->unk31A0[2].unk2C, &gUnknown_203F3E0->unk31A0[3].unk2C, &gUnknown_203F3E0->unk31A0[4].unk2C, &gUnknown_203F3E0->unk40, &gUnknown_203F3E0->unk120, &gUnknown_203F3E0->unk12C);
+ break;
+ case 11:
+ sub_815A950(gUnknown_203F3E0->multiplayerId, &gUnknown_203F3E0->unk31A0[gUnknown_203F3E0->multiplayerId], &gUnknown_203F3E0->unk31A0[0].unk2C, &gUnknown_203F3E0->unk31A0[1].unk2C, &gUnknown_203F3E0->unk31A0[2].unk2C, &gUnknown_203F3E0->unk31A0[3].unk2C, &gUnknown_203F3E0->unk31A0[4].unk2C, &gUnknown_203F3E0->unk40, &gUnknown_203F3E0->unk120, &gUnknown_203F3E0->unk12C);
+ break;
+ }
+}
+
+void sub_8151D28(void)
+{
+ switch (gUnknown_203F3E0->unk18)
+ {
+ case 3:
+ sub_815A5BC(1);
+ gUnknown_203F3E0->unk11C = 1;
+ break;
+ case 4:
+ if (gUnknown_203F3E0->unk32CC.unk2C.unk0 != 0)
+ {
+ sub_815AAD8(gUnknown_203F3E0->unk32CC.unk2C.unk0);
+ }
+ break;
+ case 11:
+ if (gUnknown_203F3E0->unk120 == 0 && gUnknown_203F3E0->unk12C == 0)
+ {
+ sub_815AB3C(1);
+ }
+ break;
+ }
+}
+
+void sub_8151D98(void)
+{
+ if (gUnknown_203F3E0->unk31A0[gUnknown_203F3E0->multiplayerId].unk2C.unk0 == 0)
+ {
+ if (!IsSEPlaying())
+ {
+ gUnknown_203F3E0->unk144 = 0;
+ }
+ }
+ else if (gUnknown_203F3E0->unk31A0[gUnknown_203F3E0->multiplayerId].unk2C.unk4 == 1)
+ {
+ if (gUnknown_203F3E0->unk144 == 0)
+ {
+ m4aSongNumStop(SE_SEIKAI);
+ PlaySE(SE_SEIKAI);
+ gUnknown_203F3E0->unk144 = 1;
+ }
+ }
+ else if (gUnknown_203F3E0->unk31A0[gUnknown_203F3E0->multiplayerId].unk2C.unk8 == 1)
+ {
+ if (gUnknown_203F3E0->unk144 == 0 && !IsSEPlaying())
+ {
+ PlaySE(SE_BOO);
+ sub_8153BC0(1);
+ gUnknown_203F3E0->unk144 = 1;
+ }
+ }
+
+ if (gUnknown_203F3E0->unk154 == 0 && gUnknown_203F3E0->unk40 >= 10)
+ {
+ StopMapMusic();
+ gUnknown_203F3E0->unk154 = 1;
+ }
+ else if (gUnknown_203F3E0->unk154 == 1)
+ {
+ PlayFanfareByFanfareNum(FANFARE_10); // MUS_ME_ZANNEN
+ gUnknown_203F3E0->unk154 = 2;
+ }
+}
+
+void sub_8151E94(void)
+{
+ u8 r8 = gUnknown_203F3E0->unk44;
+ u8 r7 = gUnknown_203F3E0->unk48;
+ u8 r4;
+ if (gUnknown_203F3E0->unk31A0[gUnknown_203F3E0->multiplayerId].unk2C.unk0 == 0)
+ {
+ if (gUnknown_203F3E0->unk31A0[gUnknown_203F3E0->multiplayerId].unk2C.unk4 != 1 && gUnknown_203F3E0->unk31A0[gUnknown_203F3E0->multiplayerId].unk2C.unk8 != 1)
+ {
+ gUnknown_203F3E0->unk144 = 0;
+ }
+ }
+ else if (gUnknown_203F3E0->unk31A0[gUnknown_203F3E0->multiplayerId].unk2C.unk4 == 1)
+ {
+ if (gUnknown_203F3E0->unk144 == 0)
+ {
+ m4aSongNumStop(SE_SEIKAI);
+ PlaySE(SE_SEIKAI);
+ gUnknown_203F3E0->unk144 = 1;
+ }
+ }
+ else if (gUnknown_203F3E0->unk31A0[gUnknown_203F3E0->multiplayerId].unk2C.unk8 == 1)
+ {
+ if (gUnknown_203F3E0->unk144 == 0 && !IsSEPlaying())
+ {
+ PlaySE(SE_BOO);
+ sub_8153BC0(1);
+ gUnknown_203F3E0->unk144 = 1;
+ }
+ }
+ for (r4 = r8; r4 < r7; r4++)
+ {
+ struct DodrioSubstruct_31A0_14 * ptr = &gUnknown_203F3E0->unk31A0[gUnknown_203F3E0->multiplayerId].unk14;
+ if (ptr->unkB[r4] >= 10)
+ {
+ if (gUnknown_203F3E0->unk148[r4] == 0)
+ {
+ PlaySE(SE_FUUSEN1 + ptr->unk0[r4]);
+ gUnknown_203F3E0->unk148[r4] = 1;
+ }
+ }
+ else
+ {
+ gUnknown_203F3E0->unk148[r4] = 0;
+ }
+ }
+ if (gUnknown_203F3E0->unk154 == 0 && gUnknown_203F3E0->unk40 >= 10)
+ {
+ StopMapMusic();
+ gUnknown_203F3E0->unk154 = 1;
+ }
+ else if (gUnknown_203F3E0->unk154 == 1)
+ {
+ PlayFanfareByFanfareNum(FANFARE_10); // MUS_ME_ZANNEN
+ gUnknown_203F3E0->unk154 = 2;
+ }
+}
+
+void sub_815201C(void)
+{
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+}
+
+void sub_8152034(void)
+{
+ TransferPlttBuffer();
+ LoadOam();
+ ProcessSpriteCopyRequests();
+}
+
+void sub_8152048(struct DodrioSubstruct_318C * a0, struct Pokemon * a1)
+{
+ a0->isShiny = IsMonShiny(a1);
+}
+
+void sub_815205C(TaskFunc func, u8 priority)
+{
+ CreateTask(func, priority);
+}
+
+void sub_815206C(TaskFunc func)
+{
+ gUnknown_203F3E0->unk04 = CreateTask(func, 1);
+ gUnknown_203F3E0->unk10 = 0;
+ gUnknown_203F3E0->unk0C = 0;
+ gUnknown_203F3E0->unk14 = 0;
+}
+
+void sub_8152090(u8 a0)
+{
+ gUnknown_203F3E0->unk1C = gUnknown_203F3E0->unk18;
+ gUnknown_203F3E0->unk18 = a0;
+ gUnknown_203F3E0->unk10 = 0;
+ gUnknown_203F3E0->unk14 = 0;
+}
+
+bool32 sub_81520B4(void)
+{
+ u8 r2 = gUnknown_203F3E0->unk14 / 4;
+ gUnknown_203F3E0->unk14++;
+ if (r2 != 0 && gUnknown_203F3E0->unk14 % 4 == 0)
+ {
+ if (r2 < sUnknown_8475548[gUnknown_203F3E0->unk24 - 1])
+ {
+ SetGpuReg(REG_OFFSET_BG1HOFS, (r2 * 8));
+ SetGpuReg(REG_OFFSET_BG2HOFS, -(r2 * 8));
+ return FALSE;
+ }
+ else
+ {
+ return TRUE;
+ }
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+void sub_8152110(void)
+{
+ u8 i;
+ u8 start = gUnknown_203F3E0->unk44;
+ u8 finish = gUnknown_203F3E0->unk48;
+
+ for (i = start; i < finish; i++)
+ {
+ struct DodrioSubstruct_31A0_14 * ptr = &gUnknown_203F3E0->unk32CC.unk14;
+ ptr->unkB[i] = (i % 2 == 0) ? 1 : 0;
+ ptr->unk0[i] = 0;
+ }
+}
+
+void sub_8152174(void)
+{
+ u8 sp0 = gUnknown_203F3E0->unk44;
+ u8 sp4 = gUnknown_203F3E0->unk48;
+ u8 sp8 = gUnknown_203F3E0->unk24;
+ u8 i, j, k, r5;
+
+ if (gUnknown_203F3E0->unk40 >= 10)
+ return;
+
+ for (i = 0; i < sp8; i++)
+ {
+ u8 *ptr = &gUnknown_203F3E0->unk31A0[i].unk2C.unk0;
+ if (*ptr != 0 && gUnknown_203F3E0->unkA8[i] == 1)
+ {
+ for (j = sp0; j < sp4; j++)
+ {
+ r5 = sUnknown_8471F50[0][0][j];
+ if (gUnknown_203F3E0->unkF4[r5][0] == i || gUnknown_203F3E0->unkF4[r5][1] == i)
+ break;
+ if (sub_8152484(i, *ptr, r5) == TRUE)
+ {
+ for (k = 0; k < 2; k++)
+ {
+ if (gUnknown_203F3E0->unkF4[r5][k] == 0xFF)
+ {
+ gUnknown_203F3E0->unkF4[r5][k] = i;
+ gUnknown_203F3E0->unkA8[i] = 2;
+ gUnknown_203F3E0->unkC4[r5] = 1;
+ break;
+ }
+ }
+ break;
+ }
+ if (gUnknown_203F3E0->unk31A0[i].unk2C.unk8 == 1)
+ break;
+ }
+ }
+ }
+
+ for (j = sp0; j < sp4; j++)
+ {
+ u8 id = 0xFF;
+ r5 = sUnknown_8471F50[0][0][j];
+ if (gUnknown_203F3E0->unkC4[r5] == 1)
+ {
+ s32 r2;
+ u8 r4, r3 = gUnknown_203F3E0->unk90[sub_8152BD4(r5)] / 7;
+ if (r3 >= NELEMS(sUnknown_847553C) - 1)
+ r3 = NELEMS(sUnknown_847553C) - 1;
+
+ r2 = sUnknown_847553C[r3][gUnknown_203F3E0->unk31A0[0].unk14.unk0[r5]] - gUnknown_203F3E0->unkD0[r5];
+ if (r2 < 6)
+ gUnknown_203F3E0->unk9C[r5] += r2;
+
+ if (++gUnknown_203F3E0->unk9C[r5] >= 6)
+ {
+ gUnknown_203F3E0->unk9C[r5] = 0;
+ if (gUnknown_203F3E0->unkF4[r5][0] == 0xFF && gUnknown_203F3E0->unkF4[r5][1] == 0xFF)
+ {
+ continue;
+ }
+ else if (gUnknown_203F3E0->unkF4[r5][0] != 0xFF && gUnknown_203F3E0->unkF4[r5][1] == 0xFF)
+ {
+ r4 = gUnknown_203F3E0->unkF4[r5][0];
+ }
+ else
+ {
+ u8 unk0 = gUnknown_203F3E0->unkF4[r5][0];
+ i = gUnknown_203F3E0->unkF4[r5][1]; // Have to re-use the variable to match.
+ if (!(Random() & 1))
+ {
+ r4 = unk0;
+ id = i;
+ }
+ else
+ {
+ r4 = i;
+ id = unk0;
+ }
+ }
+ gUnknown_203F3E0->unk32CC.unk14.unkB[r5] = 7;
+ gUnknown_203F3E0->unkC4[r5] = 2;
+ gUnknown_203F3E0->unkA8[r4] = 3;
+ gUnknown_203F3E0->unkB8[r5] = r4;
+ gUnknown_203F3E0->unk31A0[r4].unk2C.unk4 = 1;
+ gUnknown_203F3E0->unk31A0[id].unk2C.unk8 = 1;
+ gUnknown_203F3E0->unk86[r4]++;
+ sub_8152D34(0, r5, r4);
+ sub_8152F94(TRUE);
+ sub_8152B64(r4);
+ gUnknown_203F3E0->unkE8[r5] = gUnknown_203F3E0->unk32CC.unk14.unk0[r5];
+ gUnknown_203F3E0->unk32CC.unk14.unk0[r5] = 3;
+ gUnknown_203F3E0->unkF4[r5][0] = 0xFF;
+ gUnknown_203F3E0->unkF4[r5][1] = 0xFF;
+ }
+ }
+ }
+}
+
+bool32 sub_8152484(u8 a0, u8 a1, u8 a2)
+{
+ s32 r7 = 0;
+ u8 r5 = gUnknown_203F3E0->unk24 - 1;
+ struct DodrioSubstruct_31A0_14 * ptr = &gUnknown_203F3E0->unk32CC.unk14;
+
+ switch (a1)
+ {
+ case 3:
+ default:
+ r7 = 0;
+ break;
+ case 2:
+ r7 = 1;
+ break;
+ case 1:
+ r7 = 2;
+ break;
+ }
+ if (ptr->unkB[a2] == 6 || ptr->unkB[a2] == 7)
+ {
+ if (a2 == sUnknown_8472063[r5][a0][r7])
+ {
+ if (gUnknown_203F3E0->unkC4[a2] == 1 || gUnknown_203F3E0->unkC4[a2] == 2)
+ {
+ gUnknown_203F3E0->unk31A0[a0].unk2C.unk8 = 1;
+ return FALSE;
+ }
+ else
+ {
+ return TRUE;
+ }
+ }
+ }
+ else
+ {
+ if (a2 == sUnknown_8472063[r5][a0][r7])
+ {
+ gUnknown_203F3E0->unkA8[a0] = 4;
+ gUnknown_203F3E0->unk31A0[a0].unk2C.unk8 = 1;
+ }
+ }
+ return FALSE;
+}
+
+void sub_815256C(void)
+{
+ u8 r1 = gUnknown_203F3E0->unk44;
+ u8 r9 = gUnknown_203F3E0->unk48;
+ u8 r3 = 0;
+ u8 r10 = 0;
+ u8 i;
+ u8 r2;
+ struct DodrioStruct *ptr;
+
+ gUnknown_203F3E0->unk120 = 0;
+
+ for (i = r1; i < r9 - 1; i++)
+ {
+ ptr = gUnknown_203F3E0;
+
+ if (gUnknown_203F3E0->unkC4[i] == 0 || gUnknown_203F3E0->unkC4[i] == 1)
+ {
+ gUnknown_203F3E0->unk120 = 1;
+ if (ptr->unk32CC.unk14.unkB[i] >= 10)
+ {
+ ptr->unk32CC.unk14.unkB[i] = 10;
+ gUnknown_203F3E0->unkC4[i] = 3;
+ if (gUnknown_203F3E0->unk148[i] == 0)
+ {
+ gUnknown_203F3E0->unk148[i] = 1;
+ PlaySE(SE_FUUSEN1 + ptr->unk32CC.unk14.unk0[i]);
+ }
+ if (gUnknown_203F3E0->unk40 < 10 || r10 == 1)
+ {
+ r10 = 1;
+ gUnknown_203F3E0->unk148[i] = 0;
+ if (gUnknown_203F3E0->unk40 < 10)
+ {
+ gUnknown_203F3E0->unk40++;
+ }
+ sub_8152D34(3, i, 0);
+ sub_8152F94(FALSE);
+ }
+ }
+ else
+ {
+ r3 = gUnknown_203F3E0->unk90[sub_8152BD4(i)] / 7;
+ if (r3 >= NELEMS(sUnknown_847553C) - 1)
+ {
+ r3 = NELEMS(sUnknown_847553C) - 1;
+ }
+ r2 = sUnknown_847553C[r3][ptr->unk32CC.unk14.unk0[i]];
+ if (++gUnknown_203F3E0->unkD0[i] >= r2)
+ {
+ ptr->unk32CC.unk14.unkB[i]++;
+ gUnknown_203F3E0->unkD0[i] = 0;
+ }
+ sub_8152174();
+ }
+ }
+ else if (gUnknown_203F3E0->unkC4[i] == 2)
+ {
+ // gUnknown_203F3E0->unk120 = 1;
+ if (++gUnknown_203F3E0->unkDC[i] >= 20)
+ {
+ gUnknown_203F3E0->unk31A0[gUnknown_203F3E0->unkB8[i]].unk2C.unk4 = 0;
+ gUnknown_203F3E0->unkDC[i] = 0;
+ gUnknown_203F3E0->unkD0[i] = 0;
+ gUnknown_203F3E0->unkC4[i] = 0;
+ ptr->unk32CC.unk14.unkB[i] = 1;
+ ptr->unk32CC.unk14.unk0[i] = sub_8152BF8(sub_8152BD4(i), i);
+ }
+ }
+ else if (gUnknown_203F3E0->unkC4[i] == 3)
+ {
+ if (++gUnknown_203F3E0->unkDC[i] >= 20)
+ {
+ if (gUnknown_203F3E0->unk40 < 10)
+ {
+ gUnknown_203F3E0->unkDC[i] = 0;
+ gUnknown_203F3E0->unkD0[i] = 0;
+ gUnknown_203F3E0->unkC4[i] = 0;
+ ptr->unk32CC.unk14.unkB[i] = 1;
+ gUnknown_203F3E0->unkE8[i] = ptr->unk32CC.unk14.unk0[i];
+ ptr->unk32CC.unk14.unk0[i] = sub_8152BF8(sub_8152BD4(i), i);
+ }
+ }
+ }
+ }
+}
+
+void sub_81527D0(void)
+{
+ u8 i, first, count;
+
+ first = gUnknown_203F3E0->unk44;
+ count = gUnknown_203F3E0->unk48;
+ for (i = first; i < count; i++)
+ {
+ struct DodrioSubstruct_31A0 *ptr = &gUnknown_203F3E0->unk31A0[gUnknown_203F3E0->multiplayerId];
+ u8 var = sUnknown_8471F50[gUnknown_203F3E0->unk24 - 1][gUnknown_203F3E0->multiplayerId][i];
+
+ if (ptr->unk14.unkB[var] != 0)
+ sub_81542EC(i, FALSE);
+ else
+ sub_81542EC(i, TRUE);
+
+ if (ptr->unk14.unkB[var] > 9)
+ {
+ sub_8154398(i, ptr->unk14.unk0[var] + 3);
+ sub_8154370(i, ptr->unk14.unkB[var] * 2 - 1);
+ }
+ else if (ptr->unk14.unk0[var] == 3)
+ {
+ ptr->unk14.unkB[var] = 7;
+ sub_8154398(i, 6);
+ sub_8154370(i, ptr->unk14.unkB[var] * 2 - 1);
+ }
+ else
+ {
+ sub_8154398(i, ptr->unk14.unk0[var]);
+ sub_8154370(i, ptr->unk14.unkB[var] * 2);
+ }
+ }
+}
+
+void sub_81528D0(void)
+{
+ u8 i, count;
+
+ count = gUnknown_203F3E0->unk24;
+ for (i = 0; i < count; i++)
+ {
+ struct DodrioSubstruct_31A0 *ptr = &gUnknown_203F3E0->unk31A0[i];
+ sub_8153DA8(i, ptr->unk2C.unk0);
+ }
+}
+
+void sub_8152910(void)
+{
+ u8 i, count;
+
+ count = gUnknown_203F3E0->unk24;
+ for (i = 0; i < count; i++)
+ sub_8153DA8(i, 4);
+}
+
+void sub_815293C(void)
+{
+ sub_81527D0();
+ if (gUnknown_203F3E0->unk40 > 9)
+ sub_8152910();
+ else
+ sub_81528D0();
+
+ sub_8153FC8(gUnknown_203F3E0->unk40);
+}
+
+// This function is literally the same as the one above...Why?
+void sub_8152970(void)
+{
+ sub_81527D0();
+ if (gUnknown_203F3E0->unk40 > 9)
+ sub_8152910();
+ else
+ sub_81528D0();
+
+ sub_8153FC8(gUnknown_203F3E0->unk40);
+}
+
+void sub_81529A4(u8 arg0, u8 *arg1, u8 *arg2)
+{
+ switch (arg0)
+ {
+ case 1:
+ *arg1 = 4, *arg2 = 7;
+ break;
+ case 2:
+ *arg1 = 3, *arg2 = 8;
+ break;
+ case 3:
+ *arg1 = 2, *arg2 = 9;
+ break;
+ case 4:
+ *arg1 = 1, *arg2 = 10;
+ break;
+ case 5:
+ *arg1 = 0, *arg2 = 11;
+ break;
+ }
+}
+
+bool32 sub_8152A00(void)
+{
+ u8 i, count;
+
+ count = gUnknown_203F3E0->unk24;
+ for (i = 1; i < count; i++)
+ {
+ if (gUnknown_203F3E0->unk158[i] == 0)
+ gUnknown_203F3E0->unk158[i] = sub_815A5E8(i);
+ }
+
+ // This loop won't ever run, the seemingly poitnless assingment below is to make the compiler
+ // generate code for it.
+ count = count;
+ for (; i < count; i++)
+ {
+ if (gUnknown_203F3E0->unk158[i] == 0)
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+void sub_8152A70(void)
+{
+ u8 i;
+
+ for (i = 0; i < 5; i++)
+ gUnknown_203F3E0->unk158[i] = 0;
+}
+
+bool32 sub_8152A98(void)
+{
+ if (gUnknown_203F3E0->unk40 > 9 && gUnknown_203F3E0->unk120 == 0)
+ {
+ gUnknown_203F3E0->unk40 = 10;
+ if (gUnknown_203F3E0->unk12C != 0)
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+bool32 sub_8152AD8(void)
+{
+ u8 i, first, count;
+
+ if (gUnknown_203F3E0->unk40 > 9)
+ {
+ first = gUnknown_203F3E0->unk44;
+ count = gUnknown_203F3E0->unk48;
+ gUnknown_203F3E0->unk40 = 10;
+ if (gUnknown_203F3E0->unk12C != 0)
+ {
+ for (i = first; i < count; i++)
+ {
+ struct DodrioSubstruct_31A0 *ptr = &gUnknown_203F3E0->unk31A0[gUnknown_203F3E0->multiplayerId];
+ u8 var = sUnknown_8471F50[gUnknown_203F3E0->unk24 - 1][gUnknown_203F3E0->multiplayerId][i];
+
+ if (ptr->unk14.unkB[var] != 10)
+ return FALSE;
+ }
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}
+
+void sub_8152B64(u8 arg0)
+{
+ u8 var = sUnknown_8475550[gUnknown_203F3E0->unk90[arg0] % 7] + (gUnknown_203F3E0->unk90[arg0] / 7) * 100;
+ if (gUnknown_203F3E0->unk86[arg0] >= var)
+ gUnknown_203F3E0->unk90[arg0]++;
+}
+
+u8 sub_8152BD4(u8 arg0)
+{
+ return sUnknown_84720FC[gUnknown_203F3E0->unk24 - 1][arg0];
+}
+
+u8 sub_8152BF8(u8 arg0, u8 arg1)
+{
+ u8 i, var3;
+ u8 count = gUnknown_203F3E0->unk24 - 1;
+ u8 var0 = sUnknown_84720AE[count][arg0][0];
+ u8 var1 = sUnknown_84720AE[count][arg0][1];
+ u8 var2 = sUnknown_84720AE[count][arg0][2];
+
+ for (i = 0; sUnknown_8472133[count][i] != 0; i++)
+ {
+ if (arg1 == sUnknown_8472133[count][i])
+ return sub_8152CB8(gUnknown_203F3E0->unk90[var1], arg1);
+ }
+
+ // Gets the highest of the three.
+ if (gUnknown_203F3E0->unk90[var0] > gUnknown_203F3E0->unk90[var1])
+ var3 = gUnknown_203F3E0->unk90[var0];
+ else
+ var3 = gUnknown_203F3E0->unk90[var1];
+
+ if (gUnknown_203F3E0->unk90[var2] > var3)
+ var3 = gUnknown_203F3E0->unk90[var2];
+
+ return sub_8152CB8(var3, arg1);
+}
+
+u8 sub_8152CB8(u8 arg0, u8 arg1)
+{
+ u8 var = gUnknown_203F3E0->unkE8[arg1];
+ switch (arg0 % 7)
+ {
+ default: return 0;
+ case 0: return 0;
+ case 1: return 1;
+ case 2: return 2;
+ case 3:
+ if (var == 0)
+ return 1;
+ else
+ return 0;
+ case 4:
+ if (var == 0)
+ return 2;
+ else
+ return 0;
+ case 5:
+ if (var == 2)
+ return 1;
+ else
+ return 2;
+ case 6:
+ if (var == 0)
+ return 1;
+ else if (var == 1)
+ return 2;
+ else
+ return 0;
+ }
+}
+
+void sub_8152D34(u8 arg0, u8 arg1, u8 arg2)
+{
+ u8 var;
+ u8 count = gUnknown_203F3E0->unk24;
+ switch (arg0)
+ {
+ case 0:
+ case 1:
+ case 2:
+ var = gUnknown_203F3E0->unk31A0[0].unk14.unk0[arg1];
+ gUnknown_203F3E0->unk4A[arg2][var] = IncrementWithLimit(gUnknown_203F3E0->unk4A[arg2][var], 20000);
+ break;
+ case 3:
+ switch (count)
+ {
+ case 5:
+ switch (arg1)
+ {
+ case 0:
+ gUnknown_203F3E0->unk4A[2][3]++;
+ gUnknown_203F3E0->unk4A[3][3]++;
+ break;
+ case 1:
+ gUnknown_203F3E0->unk4A[3][3]++;
+ break;
+ case 2:
+ gUnknown_203F3E0->unk4A[3][3]++;
+ gUnknown_203F3E0->unk4A[4][3]++;
+ break;
+ case 3:
+ gUnknown_203F3E0->unk4A[4][3]++;
+ break;
+ case 4:
+ gUnknown_203F3E0->unk4A[4][3]++;
+ gUnknown_203F3E0->unk4A[0][3]++;
+ break;
+ case 5:
+ gUnknown_203F3E0->unk4A[0][3]++;
+ break;
+ case 6:
+ gUnknown_203F3E0->unk4A[0][3]++;
+ gUnknown_203F3E0->unk4A[1][3]++;
+ break;
+ case 7:
+ gUnknown_203F3E0->unk4A[1][3]++;
+ break;
+ case 8:
+ gUnknown_203F3E0->unk4A[1][3]++;
+ gUnknown_203F3E0->unk4A[2][3]++;
+ break;
+ case 9:
+ gUnknown_203F3E0->unk4A[2][3]++;
+ break;
+ }
+ break;
+ case 4:
+ switch (arg1)
+ {
+ case 1:
+ gUnknown_203F3E0->unk4A[2][3]++;
+ gUnknown_203F3E0->unk4A[3][3]++;
+ break;
+ case 2:
+ gUnknown_203F3E0->unk4A[3][3]++;
+ break;
+ case 3:
+ gUnknown_203F3E0->unk4A[3][3]++;
+ gUnknown_203F3E0->unk4A[0][3]++;
+ break;
+ case 4:
+ gUnknown_203F3E0->unk4A[0][3]++;
+ break;
+ case 5:
+ gUnknown_203F3E0->unk4A[0][3]++;
+ gUnknown_203F3E0->unk4A[1][3]++;
+ break;
+ case 6:
+ gUnknown_203F3E0->unk4A[1][3]++;
+ break;
+ case 7:
+ gUnknown_203F3E0->unk4A[1][3]++;
+ gUnknown_203F3E0->unk4A[2][3]++;
+ break;
+ case 8:
+ gUnknown_203F3E0->unk4A[2][3]++;
+ break;
+ }
+ break;
+ case 3:
+ switch (arg1)
+ {
+ case 2:
+ gUnknown_203F3E0->unk4A[1][3]++;
+ gUnknown_203F3E0->unk4A[2][3]++;
+ break;
+ case 3:
+ gUnknown_203F3E0->unk4A[2][3]++;
+ break;
+ case 4:
+ gUnknown_203F3E0->unk4A[2][3]++;
+ gUnknown_203F3E0->unk4A[0][3]++;
+ break;
+ case 5:
+ gUnknown_203F3E0->unk4A[0][3]++;
+ break;
+ case 6:
+ gUnknown_203F3E0->unk4A[0][3]++;
+ gUnknown_203F3E0->unk4A[1][3]++;
+ break;
+ case 7:
+ gUnknown_203F3E0->unk4A[1][3]++;
+ break;
+ }
+ break;
+ case 2:
+ switch (arg1)
+ {
+ case 3:
+ gUnknown_203F3E0->unk4A[0][3]++;
+ gUnknown_203F3E0->unk4A[1][3]++;
+ break;
+ case 4:
+ gUnknown_203F3E0->unk4A[0][3]++;
+ break;
+ case 5:
+ gUnknown_203F3E0->unk4A[0][3]++;
+ gUnknown_203F3E0->unk4A[1][3]++;
+ break;
+ case 6:
+ gUnknown_203F3E0->unk4A[1][3]++;
+ break;
+ }
+ break;
+ }
+ break;
+ }
+}
+
+void sub_8152F94(bool32 arg0)
+{
+ if (gUnknown_203F3E0->unk24 != 5)
+ return;
+
+ if (arg0 == TRUE)
+ {
+ if (++gUnknown_203F3E0->unk112 > gUnknown_203F3E0->unk114)
+ gUnknown_203F3E0->unk114 = gUnknown_203F3E0->unk112;
+ if (gUnknown_203F3E0->unk112 > 9999)
+ gUnknown_203F3E0->unk112 = 9999;
+ }
+ else
+ {
+ if (gUnknown_203F3E0->unk112 > gUnknown_203F3E0->unk114)
+ gUnknown_203F3E0->unk114 = gUnknown_203F3E0->unk112;
+ gUnknown_203F3E0->unk112 = 0;
+ }
+}
+
+void sub_8153004(void)
+{
+ u8 i;
+ for (i = 0; i < gUnknown_203F3E0->unk24; i++)
+ gUnknown_203F3E0->unk4A[i][5] = gUnknown_203F3E0->unk114;
+}
+
+void sub_8153048(void)
+{
+ u8 i, j;
+
+ for (i = 0; i < 5; i++)
+ {
+ for (j = 0; j < 11; j++)
+ gUnknown_203F3E0->unk31A0[i].unk14.unkB[j] = 0;
+ gUnknown_203F3E0->unk31A0[i].unk2C.unk0 = 0;
+ gUnknown_203F3E0->unk31A0[i].unk2C.unk4 = 0;
+ gUnknown_203F3E0->unk90[i] = 0;
+ gUnknown_203F3E0->unk86[i] = 0;
+ gUnknown_203F3E0->unk3308[i].unk0 = 0;
+ gUnknown_203F3E0->unk3308[i].unk4 = 0;
+ gUnknown_203F3E0->unk4A[i][0] = 0;
+ gUnknown_203F3E0->unk4A[i][1] = 0;
+ gUnknown_203F3E0->unk4A[i][2] = 0;
+ gUnknown_203F3E0->unk4A[i][3] = 0;
+ gUnknown_203F3E0->unk4A[i][4] = 0;
+ gUnknown_203F3E0->unk4A[i][5] = 0;
+ }
+ gUnknown_203F3E0->unk154 = 0;
+ gUnknown_203F3E0->unk112 = 0;
+ gUnknown_203F3E0->unk40 = 0;
+ sub_81528D0();
+ sub_81527D0();
+}
+
const s16 sUnknown_84755D8[] = {10, 30, 50, 50};
// Data related to printing saved results.
diff --git a/src/sound.c b/src/sound.c
index b88d3b642..99e9a162e 100644
--- a/src/sound.c
+++ b/src/sound.c
@@ -6,6 +6,7 @@
#include "m4a.h"
#include "main.h"
#include "constants/songs.h"
+#include "constants/fanfares.h"
#include "task.h"
struct Fanfare
@@ -41,20 +42,20 @@ extern struct ToneData gCryTable[];
extern struct ToneData gCryTable2[];
static const struct Fanfare sFanfares[] = {
- { MUS_FANFA1, 80 },
- { MUS_FANFA4, 160 },
- { MUS_FANFA5, 220 },
- { MUS_ME_WAZA, 220 },
- { MUS_ME_ASA, 160 },
- { MUS_ME_BACHI, 340 },
- { MUS_ME_WASURE, 180 },
- { MUS_ME_KINOMI, 120 },
- { MUS_ME_B_BIG, 250 },
- { MUS_ME_B_SMALL, 150 },
- { MUS_ME_ZANNEN, 160 },
- { MUS_POKEFUE, 450 },
- { MUS_FAN5, 170 },
- { MUS_FAN2, 196 }
+ [FANFARE_00] = { MUS_FANFA1, 80 },
+ [FANFARE_01] = { MUS_FANFA4, 160 },
+ [FANFARE_02] = { MUS_FANFA5, 220 },
+ [FANFARE_03] = { MUS_ME_WAZA, 220 },
+ [FANFARE_04] = { MUS_ME_ASA, 160 },
+ [FANFARE_05] = { MUS_ME_BACHI, 340 },
+ [FANFARE_06] = { MUS_ME_WASURE, 180 },
+ [FANFARE_07] = { MUS_ME_KINOMI, 120 },
+ [FANFARE_08] = { MUS_ME_B_BIG, 250 },
+ [FANFARE_09] = { MUS_ME_B_SMALL, 150 },
+ [FANFARE_10] = { MUS_ME_ZANNEN, 160 },
+ [FANFARE_POKEFLUTE] = { MUS_POKEFUE, 450 },
+ [FANFARE_KEY_ITEM] = { MUS_FAN5, 170 },
+ [FANFARE_DEX_EVAL] = { MUS_FAN2, 196 }
};
extern u16 SpeciesToCryId(u16);