summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorscnorton <scnorton@biociphers.org>2017-06-13 10:18:59 -0400
committerscnorton <scnorton@biociphers.org>2017-06-13 10:18:59 -0400
commit71f813e6e21e6ad5ec84b497cbb123b521979b92 (patch)
treeab2f61b73bc57e6a87d950b53eb652fe92225e1f
parentdc79b94bb32c758253aba698115b60cb5a683266 (diff)
parente09e1da6c252e17cf6db429ad142b05dbf156548 (diff)
Merge branch 'master' of github.com:pret/pokeruby
-rw-r--r--asm/battle_811DA74.s3678
-rw-r--r--include/battle.h10
-rw-r--r--include/songs.h34
-rw-r--r--ld_script.txt1
-rw-r--r--src/battle_2.c2
-rw-r--r--src/battle_811DA74.c986
-rw-r--r--src/battle_ai.c2
7 files changed, 983 insertions, 3730 deletions
diff --git a/asm/battle_811DA74.s b/asm/battle_811DA74.s
deleted file mode 100644
index 4190b2400..000000000
--- a/asm/battle_811DA74.s
+++ /dev/null
@@ -1,3678 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_811EC68
-sub_811EC68: @ 811EC68
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x34
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0811ECA0 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- ldr r2, _0811ECA4 @ =gUnknown_02023A63
- adds r3, r0, r2
- adds r6, r3, 0
- subs r1, r2, 0x2
- adds r0, r1
- ldrb r0, [r0]
- adds r7, r2, 0
- cmp r0, 0x3B
- bls _0811EC94
- bl _0811F62E
-_0811EC94:
- lsls r0, 2
- ldr r1, _0811ECA8 @ =_0811ECAC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0811ECA0: .4byte gUnknown_02024A60
-_0811ECA4: .4byte gUnknown_02023A63
-_0811ECA8: .4byte _0811ECAC
- .align 2, 0
-_0811ECAC:
- .4byte _0811ED9C
- .4byte _0811EF34
- .4byte _0811EF54
- .4byte _0811EF74
- .4byte _0811EFCC
- .4byte _0811EFCC
- .4byte _0811EFCC
- .4byte _0811EFCC
- .4byte _0811EFF4
- .4byte _0811F058
- .4byte _0811F058
- .4byte _0811F058
- .4byte _0811F058
- .4byte _0811F62E
- .4byte _0811F62E
- .4byte _0811F62E
- .4byte _0811F62E
- .4byte _0811F088
- .4byte _0811F0A8
- .4byte _0811F0C8
- .4byte _0811F0E8
- .4byte _0811F108
- .4byte _0811F128
- .4byte _0811F148
- .4byte _0811F168
- .4byte _0811F188
- .4byte _0811F1A8
- .4byte _0811F1C8
- .4byte _0811F1E8
- .4byte _0811F208
- .4byte _0811F228
- .4byte _0811F248
- .4byte _0811F2B8
- .4byte _0811F2D8
- .4byte _0811F2F8
- .4byte _0811F318
- .4byte _0811F338
- .4byte _0811F358
- .4byte _0811F378
- .4byte _0811F398
- .4byte _0811F3B8
- .4byte _0811F3D8
- .4byte _0811F3F8
- .4byte _0811F418
- .4byte _0811F438
- .4byte _0811F458
- .4byte _0811F478
- .4byte _0811F498
- .4byte _0811F4B8
- .4byte _0811F4D8
- .4byte _0811F4F8
- .4byte _0811F518
- .4byte _0811F538
- .4byte _0811F558
- .4byte _0811F578
- .4byte _0811F598
- .4byte _0811F5B8
- .4byte _0811F5D8
- .4byte _0811F5F8
- .4byte _0811F618
-_0811ED9C:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0811EF30 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- adds r2, r6, 0
- bl SetMonData
- adds r2, r6, 0
- adds r2, 0x2E
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- movs r0, 0
- mov r8, r0
- movs r0, 0x3B
- adds r0, r6
- mov r10, r0
- adds r0, r6, 0
- adds r0, 0x2B
- str r0, [sp, 0x20]
- adds r0, 0x19
- str r0, [sp, 0x28]
- adds r0, 0x4
- str r0, [sp, 0x2C]
- adds r0, 0x4
- str r0, [sp, 0x30]
- subs r0, 0x22
- str r0, [sp, 0x1C]
- subs r0, 0x2
- str r0, [sp, 0x18]
- adds r0, 0x4
- str r0, [sp, 0x24]
- adds r0, r6, 0x2
- str r0, [sp, 0x4]
- adds r0, r6, 0x4
- str r0, [sp, 0x8]
- adds r0, r6, 0x6
- str r0, [sp, 0xC]
- adds r0, 0x2
- str r0, [sp, 0x10]
- adds r0, 0x2
- str r0, [sp, 0x14]
- mov r9, r4
- adds r7, r6, 0
- adds r7, 0x24
- adds r4, r6, 0
- adds r4, 0xC
-_0811EE02:
- mov r1, r8
- adds r1, 0xD
- mov r0, r9
- adds r2, r4, 0
- bl SetMonData
- mov r1, r8
- adds r1, 0x11
- mov r0, r9
- adds r2, r7, 0
- bl SetMonData
- adds r7, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _0811EE02
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0811EF30 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- mov r2, r10
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x20
- ldr r2, [sp, 0x20]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x19
- ldr r2, [sp, 0x28]
- bl SetMonData
- ldrb r0, [r6, 0x14]
- lsls r0, 27
- lsrs r0, 27
- mov r1, sp
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x27
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrh r0, [r6, 0x14]
- lsls r0, 22
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x28
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r6, 0x15]
- lsls r0, 25
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x29
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldr r0, [r6, 0x14]
- lsls r0, 12
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2A
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrh r0, [r6, 0x16]
- lsls r0, 23
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2B
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r6, 0x17]
- lsls r0, 26
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2C
- mov r2, sp
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0
- ldr r2, [sp, 0x2C]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x37
- ldr r2, [sp, 0x30]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x38
- ldr r2, [sp, 0x1C]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x39
- ldr r2, [sp, 0x18]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3A
- ldr r2, [sp, 0x24]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3B
- ldr r2, [sp, 0x4]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3C
- ldr r2, [sp, 0x8]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3D
- ldr r2, [sp, 0xC]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3E
- ldr r2, [sp, 0x10]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3F
- ldr r2, [sp, 0x14]
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811EF30: .4byte gPlayerParty
-_0811EF34:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EF4C @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811EF50 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0xB
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811EF4C: .4byte gPlayerParty
-_0811EF50: .4byte gUnknown_02024A60
-_0811EF54:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EF6C @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811EF70 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0xC
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811EF6C: .4byte gPlayerParty
-_0811EF70: .4byte gUnknown_02024A60
-_0811EF74:
- movs r0, 0
- mov r8, r0
- movs r0, 0xC
- adds r0, r3
- mov r9, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0811EFC8 @ =gPlayerParty
- adds r7, r1, r0
- adds r6, r3, 0
- adds r6, 0x8
- adds r4, r3, 0
-_0811EF8E:
- mov r1, r8
- adds r1, 0xD
- adds r0, r7, 0
- adds r2, r4, 0
- bl SetMonData
- mov r1, r8
- adds r1, 0x11
- adds r0, r7, 0
- adds r2, r6, 0
- bl SetMonData
- adds r6, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _0811EF8E
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EFC8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- mov r2, r9
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811EFC8: .4byte gPlayerParty
-_0811EFCC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EFE8 @ =gPlayerParty
- adds r0, r1
- ldr r3, _0811EFEC @ =gUnknown_02023A60
- ldr r1, _0811EFF0 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x9
- b _0811F070
- .align 2, 0
-_0811EFE8: .4byte gPlayerParty
-_0811EFEC: .4byte gUnknown_02023A60
-_0811EFF0: .4byte gUnknown_02024A60
-_0811EFF4:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0811F050 @ =gPlayerParty
- adds r4, r0
- ldr r5, _0811F054 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r2, 9
- adds r2, r7
- adds r0, r4, 0
- movs r1, 0x11
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x12
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x13
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x14
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F050: .4byte gPlayerParty
-_0811F054: .4byte gUnknown_02024A60
-_0811F058:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F07C @ =gPlayerParty
- adds r0, r1
- ldr r3, _0811F080 @ =gUnknown_02023A60
- ldr r1, _0811F084 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x8
-_0811F070:
- adds r3, 0x3
- adds r2, r3
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F07C: .4byte gPlayerParty
-_0811F080: .4byte gUnknown_02023A60
-_0811F084: .4byte gUnknown_02024A60
-_0811F088:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F0A0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F0A4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F0A0: .4byte gPlayerParty
-_0811F0A4: .4byte gUnknown_02024A60
-_0811F0A8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F0C0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F0C4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x19
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F0C0: .4byte gPlayerParty
-_0811F0C4: .4byte gUnknown_02024A60
-_0811F0C8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F0E0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F0E4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1A
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F0E0: .4byte gPlayerParty
-_0811F0E4: .4byte gUnknown_02024A60
-_0811F0E8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F100 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F104 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1B
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F100: .4byte gPlayerParty
-_0811F104: .4byte gUnknown_02024A60
-_0811F108:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F120 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F124 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1C
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F120: .4byte gPlayerParty
-_0811F124: .4byte gUnknown_02024A60
-_0811F128:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F140 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F144 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1D
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F140: .4byte gPlayerParty
-_0811F144: .4byte gUnknown_02024A60
-_0811F148:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F160 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F164 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1E
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F160: .4byte gPlayerParty
-_0811F164: .4byte gUnknown_02024A60
-_0811F168:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F180 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F184 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1F
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F180: .4byte gPlayerParty
-_0811F184: .4byte gUnknown_02024A60
-_0811F188:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F1A0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F1A4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x20
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F1A0: .4byte gPlayerParty
-_0811F1A4: .4byte gUnknown_02024A60
-_0811F1A8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F1C0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F1C4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x22
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F1C0: .4byte gPlayerParty
-_0811F1C4: .4byte gUnknown_02024A60
-_0811F1C8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F1E0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F1E4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x23
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F1E0: .4byte gPlayerParty
-_0811F1E4: .4byte gUnknown_02024A60
-_0811F1E8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F200 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F204 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x24
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F200: .4byte gPlayerParty
-_0811F204: .4byte gUnknown_02024A60
-_0811F208:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F220 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F224 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x25
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F220: .4byte gPlayerParty
-_0811F224: .4byte gUnknown_02024A60
-_0811F228:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F240 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F244 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x26
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F240: .4byte gPlayerParty
-_0811F244: .4byte gUnknown_02024A60
-_0811F248:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0811F2B0 @ =gPlayerParty
- adds r4, r0
- ldr r5, _0811F2B4 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r2, 9
- adds r2, r7
- adds r0, r4, 0
- movs r1, 0x27
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x28
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x29
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2A
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2B
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x5
- adds r2, r0
- adds r0, r4, 0
- b _0811F368
- .align 2, 0
-_0811F2B0: .4byte gPlayerParty
-_0811F2B4: .4byte gUnknown_02024A60
-_0811F2B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F2D0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F2D4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x27
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F2D0: .4byte gPlayerParty
-_0811F2D4: .4byte gUnknown_02024A60
-_0811F2D8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F2F0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F2F4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x28
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F2F0: .4byte gPlayerParty
-_0811F2F4: .4byte gUnknown_02024A60
-_0811F2F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F310 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F314 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x29
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F310: .4byte gPlayerParty
-_0811F314: .4byte gUnknown_02024A60
-_0811F318:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F330 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F334 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2A
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F330: .4byte gPlayerParty
-_0811F334: .4byte gUnknown_02024A60
-_0811F338:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F350 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F354 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2B
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F350: .4byte gPlayerParty
-_0811F354: .4byte gUnknown_02024A60
-_0811F358:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F370 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F374 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
-_0811F368:
- movs r1, 0x2C
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F370: .4byte gPlayerParty
-_0811F374: .4byte gUnknown_02024A60
-_0811F378:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F390 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F394 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F390: .4byte gPlayerParty
-_0811F394: .4byte gUnknown_02024A60
-_0811F398:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F3B0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F3B4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x9
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F3B0: .4byte gPlayerParty
-_0811F3B4: .4byte gUnknown_02024A60
-_0811F3B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F3D0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F3D4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x37
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F3D0: .4byte gPlayerParty
-_0811F3D4: .4byte gUnknown_02024A60
-_0811F3D8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F3F0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F3F4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x38
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F3F0: .4byte gPlayerParty
-_0811F3F4: .4byte gUnknown_02024A60
-_0811F3F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F410 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F414 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x39
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F410: .4byte gPlayerParty
-_0811F414: .4byte gUnknown_02024A60
-_0811F418:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F430 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F434 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3A
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F430: .4byte gPlayerParty
-_0811F434: .4byte gUnknown_02024A60
-_0811F438:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F450 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F454 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3B
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F450: .4byte gPlayerParty
-_0811F454: .4byte gUnknown_02024A60
-_0811F458:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F470 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F474 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3C
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F470: .4byte gPlayerParty
-_0811F474: .4byte gUnknown_02024A60
-_0811F478:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F490 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F494 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3D
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F490: .4byte gPlayerParty
-_0811F494: .4byte gUnknown_02024A60
-_0811F498:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F4B0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F4B4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3E
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F4B0: .4byte gPlayerParty
-_0811F4B4: .4byte gUnknown_02024A60
-_0811F4B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F4D0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F4D4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3F
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F4D0: .4byte gPlayerParty
-_0811F4D4: .4byte gUnknown_02024A60
-_0811F4D8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F4F0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F4F4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x16
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F4F0: .4byte gPlayerParty
-_0811F4F4: .4byte gUnknown_02024A60
-_0811F4F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F510 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F514 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x17
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F510: .4byte gPlayerParty
-_0811F514: .4byte gUnknown_02024A60
-_0811F518:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F530 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F534 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x18
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F530: .4byte gPlayerParty
-_0811F534: .4byte gUnknown_02024A60
-_0811F538:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F550 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F554 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x21
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F550: .4byte gPlayerParty
-_0811F554: .4byte gUnknown_02024A60
-_0811F558:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F570 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F574 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2F
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F570: .4byte gPlayerParty
-_0811F574: .4byte gUnknown_02024A60
-_0811F578:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F590 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F594 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x30
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F590: .4byte gPlayerParty
-_0811F594: .4byte gUnknown_02024A60
-_0811F598:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F5B0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F5B4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x32
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F5B0: .4byte gPlayerParty
-_0811F5B4: .4byte gUnknown_02024A60
-_0811F5B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F5D0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F5D4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x33
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F5D0: .4byte gPlayerParty
-_0811F5D4: .4byte gUnknown_02024A60
-_0811F5D8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F5F0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F5F4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x34
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F5F0: .4byte gPlayerParty
-_0811F5F4: .4byte gUnknown_02024A60
-_0811F5F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F610 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F614 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x35
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F610: .4byte gPlayerParty
-_0811F614: .4byte gUnknown_02024A60
-_0811F618:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F658 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F65C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x36
- bl SetMonData
-_0811F62E:
- ldr r2, _0811F660 @ =gUnknown_02024A6A
- ldr r0, _0811F65C @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0811F658 @ =gPlayerParty
- adds r0, r2
- bl sub_80324F8
- add sp, 0x34
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811F658: .4byte gPlayerParty
-_0811F65C: .4byte gUnknown_02024A60
-_0811F660: .4byte gUnknown_02024A6A
- thumb_func_end sub_811EC68
-
- thumb_func_start sub_811F664
-sub_811F664: @ 811F664
- push {r4-r7,lr}
- ldr r1, _0811F6C8 @ =gUnknown_02024A6A
- ldr r7, _0811F6CC @ =gUnknown_02024A60
- ldrb r2, [r7]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- adds r3, r1, 0
- muls r3, r0
- ldr r4, _0811F6D0 @ =gUnknown_02023A60
- lsls r2, 9
- adds r0, r4, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- ldr r1, _0811F6D4 @ =gPlayerParty
- adds r0, r1
- adds r5, r3, r0
- movs r3, 0
- adds r0, r4, 0x2
- adds r2, r0
- ldrb r2, [r2]
- cmp r3, r2
- bcs _0811F6BC
- adds r6, r4, 0
- adds r2, r7, 0
- adds r4, r0, 0
-_0811F69A:
- adds r1, r5, r3
- ldrb r0, [r2]
- lsls r0, 9
- adds r0, 0x3
- adds r0, r3, r0
- adds r0, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r0, [r2]
- lsls r0, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r3, r0
- bcc _0811F69A
-_0811F6BC:
- bl dp01_tbl3_exec_completed
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811F6C8: .4byte gUnknown_02024A6A
-_0811F6CC: .4byte gUnknown_02024A60
-_0811F6D0: .4byte gUnknown_02023A60
-_0811F6D4: .4byte gPlayerParty
- thumb_func_end sub_811F664
-
- thumb_func_start sub_811F6D8
-sub_811F6D8: @ 811F6D8
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r0, _0811F7CC @ =gUnknown_02024A6A
- mov r8, r0
- ldr r6, _0811F7D0 @ =gUnknown_02024A60
- ldrb r1, [r6]
- lsls r0, r1, 1
- add r0, r8
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _0811F7D4 @ =gPlayerParty
- adds r0, r4
- bl sub_80318FC
- ldrb r0, [r6]
- lsls r0, 1
- add r0, r8
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r4
- movs r1, 0xB
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r6]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _0811F7D8 @ =gUnknown_02024E8C
- mov r8, r0
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldrb r0, [r6]
- bl sub_8077F68
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r6]
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r4, _0811F7DC @ =gUnknown_02024BE0
- ldrb r1, [r6]
- adds r1, r4
- strb r0, [r1]
- ldr r5, _0811F7E0 @ =gSprites
- ldrb r0, [r6]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0811F7E4 @ =0x0000ff10
- strh r1, [r0, 0x24]
- ldrb r2, [r6]
- adds r0, r2, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x2E]
- ldrb r3, [r6]
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r2, [r6]
- adds r4, r2, r4
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0811F7E8 @ =gBattleMonForms
- adds r2, r1
- ldrb r1, [r2]
- bl StartSpriteAnim
- ldr r1, _0811F7EC @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811F7F0 @ =sub_811DDE8
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811F7CC: .4byte gUnknown_02024A6A
-_0811F7D0: .4byte gUnknown_02024A60
-_0811F7D4: .4byte gPlayerParty
-_0811F7D8: .4byte gUnknown_02024E8C
-_0811F7DC: .4byte gUnknown_02024BE0
-_0811F7E0: .4byte gSprites
-_0811F7E4: .4byte 0x0000ff10
-_0811F7E8: .4byte gBattleMonForms
-_0811F7EC: .4byte gUnknown_03004330
-_0811F7F0: .4byte sub_811DDE8
- thumb_func_end sub_811F6D8
-
- thumb_func_start sub_811F7F4
-sub_811F7F4: @ 811F7F4
- push {r4-r6,lr}
- ldr r5, _0811F84C @ =gUnknown_02024A60
- ldrb r0, [r5]
- ldr r4, _0811F850 @ =gUnknown_02023A60
- lsls r1, r0, 9
- adds r6, r4, 0x2
- adds r1, r6
- ldrb r1, [r1]
- bl sub_8032AA8
- ldr r2, _0811F854 @ =gUnknown_02024A6A
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r2
- lsls r0, 9
- adds r4, 0x1
- adds r0, r4
- ldrb r0, [r0]
- strh r0, [r1]
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0811F858 @ =gPlayerParty
- adds r0, r2
- bl sub_80318FC
- ldrb r0, [r5]
- lsls r1, r0, 9
- adds r1, r6
- ldrb r1, [r1]
- bl sub_811F864
- ldr r1, _0811F85C @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811F860 @ =sub_811E1BC
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811F84C: .4byte gUnknown_02024A60
-_0811F850: .4byte gUnknown_02023A60
-_0811F854: .4byte gUnknown_02024A6A
-_0811F858: .4byte gPlayerParty
-_0811F85C: .4byte gUnknown_03004330
-_0811F860: .4byte sub_811E1BC
- thumb_func_end sub_811F7F4
-
- thumb_func_start sub_811F864
-sub_811F864: @ 811F864
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl sub_8032AA8
- ldr r0, _0811F9A8 @ =gUnknown_02024A6A
- lsls r2, r6, 1
- adds r2, r0
- ldr r0, _0811F9AC @ =gUnknown_02023A60
- lsls r1, r6, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- strh r0, [r2]
- ldrh r1, [r2]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0811F9B0 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- mov r8, r0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, _0811F9B4 @ =sub_80312F0
- bl CreateInvisibleSpriteWithCallback
- ldr r1, _0811F9B8 @ =gUnknown_0300434C
- mov r9, r1
- add r9, r6
- mov r1, r9
- strb r0, [r1]
- adds r0, r6, 0
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _0811F9BC @ =gUnknown_02024E8C
- mov r10, r0
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- bl sub_8077F68
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r10
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r4, _0811F9C0 @ =gUnknown_02024BE0
- adds r4, r6, r4
- strb r0, [r4]
- ldr r5, _0811F9C4 @ =gSprites
- mov r0, r9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r4]
- strh r1, [r0, 0x30]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x2E]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x32]
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, r6, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0811F9C8 @ =gBattleMonForms
- adds r6, r1
- ldrb r1, [r6]
- bl StartSpriteAnim
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0811F9CC @ =SpriteCallbackDummy
- str r1, [r0]
- movs r0, 0
- movs r1, 0xFF
- bl sub_8046400
- mov r1, r9
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x2E]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811F9A8: .4byte gUnknown_02024A6A
-_0811F9AC: .4byte gUnknown_02023A60
-_0811F9B0: .4byte gPlayerParty
-_0811F9B4: .4byte sub_80312F0
-_0811F9B8: .4byte gUnknown_0300434C
-_0811F9BC: .4byte gUnknown_02024E8C
-_0811F9C0: .4byte gUnknown_02024BE0
-_0811F9C4: .4byte gSprites
-_0811F9C8: .4byte gBattleMonForms
-_0811F9CC: .4byte SpriteCallbackDummy
- thumb_func_end sub_811F864
-
- thumb_func_start sub_811F9D0
-sub_811F9D0: @ 811F9D0
- push {r4-r6,lr}
- ldr r1, _0811FA00 @ =gUnknown_02023A60
- ldr r6, _0811FA04 @ =gUnknown_02024A60
- ldrb r2, [r6]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r3, [r0]
- cmp r3, 0
- bne _0811FA14
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _0811FA08 @ =0x02017810
- adds r0, r1
- strb r3, [r0, 0x4]
- ldr r1, _0811FA0C @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811FA10 @ =sub_811FA5C
- str r1, [r0]
- b _0811FA4A
- .align 2, 0
-_0811FA00: .4byte gUnknown_02023A60
-_0811FA04: .4byte gUnknown_02024A60
-_0811FA08: .4byte 0x02017810
-_0811FA0C: .4byte gUnknown_03004330
-_0811FA10: .4byte sub_811FA5C
-_0811FA14:
- ldr r5, _0811FA50 @ =gUnknown_02024BE0
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0811FA54 @ =gSprites
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldr r1, _0811FA58 @ =gUnknown_03004340
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl3_exec_completed
-_0811FA4A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811FA50: .4byte gUnknown_02024BE0
-_0811FA54: .4byte gSprites
-_0811FA58: .4byte gUnknown_03004340
- thumb_func_end sub_811F9D0
-
- thumb_func_start sub_811FA5C
-sub_811FA5C: @ 811FA5C
- push {r4,r5,lr}
- ldr r5, _0811FA78 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r4, _0811FA7C @ =0x02017810
- adds r3, r0, r4
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- beq _0811FA80
- cmp r0, 0x1
- beq _0811FAAC
- b _0811FAD4
- .align 2, 0
-_0811FA78: .4byte gUnknown_02024A60
-_0811FA7C: .4byte 0x02017810
-_0811FA80:
- lsls r0, r2, 2
- adds r1, r4, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0811FA9C
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_0811FA9C:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _0811FAD4
-_0811FAAC:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0811FAD4
- strb r0, [r3, 0x4]
- ldrb r2, [r5]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x1
- bl move_anim_start_t4
- ldr r1, _0811FADC @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811FAE0 @ =sub_811DF34
- str r1, [r0]
-_0811FAD4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811FADC: .4byte gUnknown_03004330
-_0811FAE0: .4byte sub_811DF34
- thumb_func_end sub_811FA5C
-
- thumb_func_start sub_811FAE4
-sub_811FAE4: @ 811FAE4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r0, _0811FB14 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0811FB24
- ldr r6, _0811FB18 @ =gUnknown_02024A60
- ldrb r0, [r6]
- bl battle_get_per_side_status
- movs r1, 0x2
- ands r1, r0
- ldr r5, _0811FB1C @ =0x0000fff0
- cmp r1, 0
- beq _0811FB0A
- movs r5, 0x10
-_0811FB0A:
- ldr r4, _0811FB20 @ =gLinkPlayers
- ldrb r0, [r6]
- bl sub_803FC34
- b _0811FB34
- .align 2, 0
-_0811FB14: .4byte gBattleTypeFlags
-_0811FB18: .4byte gUnknown_02024A60
-_0811FB1C: .4byte 0x0000fff0
-_0811FB20: .4byte gLinkPlayers
-_0811FB24:
- movs r5, 0
- ldr r4, _0811FC08 @ =gLinkPlayers
- bl GetMultiplayerId
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
-_0811FB34:
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r4, [r1, 0x13]
- ldr r6, _0811FC0C @ =gUnknown_02024A60
- ldrb r1, [r6]
- adds r0, r4, 0
- bl sub_8031AF4
- ldrb r0, [r6]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl GetMonSpriteTemplate_803C5A0
- ldr r0, _0811FC10 @ =gUnknown_02024E8C
- mov r8, r0
- lsls r5, 16
- movs r0, 0xA0
- lsls r0, 15
- adds r5, r0
- asrs r5, 16
- ldr r0, _0811FC14 @ =gTrainerBackPicCoords
- lsls r4, 2
- adds r4, r0
- ldrb r0, [r4]
- movs r4, 0x8
- subs r4, r0
- lsls r4, 18
- movs r0, 0xA0
- lsls r0, 15
- adds r4, r0
- asrs r4, 16
- ldrb r0, [r6]
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r5, _0811FC18 @ =gUnknown_02024BE0
- ldrb r1, [r6]
- adds r1, r5
- strb r0, [r1]
- ldr r4, _0811FC1C @ =gSprites
- ldrb r3, [r6]
- adds r0, r3, r5
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xF0
- strh r1, [r0, 0x24]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _0811FC20 @ =0x0000fffe
- strh r1, [r0, 0x2E]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _0811FC24 @ =sub_80313A0
- str r1, [r0]
- ldr r1, _0811FC28 @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811FC2C @ =sub_811DAE4
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811FC08: .4byte gLinkPlayers
-_0811FC0C: .4byte gUnknown_02024A60
-_0811FC10: .4byte gUnknown_02024E8C
-_0811FC14: .4byte gTrainerBackPicCoords
-_0811FC18: .4byte gUnknown_02024BE0
-_0811FC1C: .4byte gSprites
-_0811FC20: .4byte 0x0000fffe
-_0811FC24: .4byte sub_80313A0
-_0811FC28: .4byte gUnknown_03004330
-_0811FC2C: .4byte sub_811DAE4
- thumb_func_end sub_811FAE4
-
- thumb_func_start sub_811FC30
-sub_811FC30: @ 811FC30
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_811FC30
-
- thumb_func_start sub_811FC3C
-sub_811FC3C: @ 811FC3C
- push {r4-r6,lr}
- ldr r6, _0811FCC8 @ =gUnknown_02024BE0
- ldr r4, _0811FCCC @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _0811FCD0 @ =gSprites
- adds r0, r5
- bl oamt_add_pos2_onto_pos1
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x23
- strh r1, [r0, 0x2E]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0811FCD4 @ =0x0000ffd8
- strh r1, [r0, 0x32]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0811FCD8 @ =sub_8078B34
- str r1, [r0]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0811FCDC @ =SpriteCallbackDummy
- bl oamt_set_x3A_32
- ldr r1, _0811FCE0 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811FCE4 @ =sub_811DB1C
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811FCC8: .4byte gUnknown_02024BE0
-_0811FCCC: .4byte gUnknown_02024A60
-_0811FCD0: .4byte gSprites
-_0811FCD4: .4byte 0x0000ffd8
-_0811FCD8: .4byte sub_8078B34
-_0811FCDC: .4byte SpriteCallbackDummy
-_0811FCE0: .4byte gUnknown_03004330
-_0811FCE4: .4byte sub_811DB1C
- thumb_func_end sub_811FC3C
-
- thumb_func_start sub_811FCE8
-sub_811FCE8: @ 811FCE8
- push {r4,r5,lr}
- ldr r5, _0811FD2C @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r4, _0811FD30 @ =0x02017810
- adds r3, r0, r4
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- bne _0811FD34
- lsls r0, r2, 2
- adds r1, r4, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0811FD1A
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_0811FD1A:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _0811FDAA
- .align 2, 0
-_0811FD2C: .4byte gUnknown_02024A60
-_0811FD30: .4byte 0x02017810
-_0811FD34:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0811FDAA
- strb r4, [r3, 0x4]
- ldr r2, _0811FDB0 @ =gUnknown_02024A6A
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0811FDB4 @ =gPlayerParty
- adds r0, r2
- bl sub_80324F8
- movs r1, 0x40
- negs r1, r1
- movs r0, 0x10
- bl PlaySE12WithPanning
- ldr r2, _0811FDB8 @ =gSprites
- ldr r3, _0811FDBC @ =gUnknown_02024BE0
- ldrb r0, [r5]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r4, [r0, 0x30]
- ldrb r0, [r5]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x5
- strh r1, [r0, 0x32]
- ldrb r0, [r5]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _0811FDC0 @ =sub_80105EC
- str r1, [r0]
- ldr r1, _0811FDC4 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811FDC8 @ =sub_811DE98
- str r1, [r0]
-_0811FDAA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811FDB0: .4byte gUnknown_02024A6A
-_0811FDB4: .4byte gPlayerParty
-_0811FDB8: .4byte gSprites
-_0811FDBC: .4byte gUnknown_02024BE0
-_0811FDC0: .4byte sub_80105EC
-_0811FDC4: .4byte gUnknown_03004330
-_0811FDC8: .4byte sub_811DE98
- thumb_func_end sub_811FCE8
-
- thumb_func_start sub_811FDCC
-sub_811FDCC: @ 811FDCC
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_811FDCC
-
- thumb_func_start sub_811FDD8
-sub_811FDD8: @ 811FDD8
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_811FDD8
-
- thumb_func_start sub_811FDE4
-sub_811FDE4: @ 811FDE4
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_811FDE4
-
- thumb_func_start sub_811FDF0
-sub_811FDF0: @ 811FDF0
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_811FDF0
-
- thumb_func_start sub_811FDFC
-sub_811FDFC: @ 811FDFC
- push {r4-r6,lr}
- ldr r6, _0811FEE0 @ =gUnknown_02024A60
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- beq _0811FE0E
- b _0811FF1E
-_0811FE0E:
- ldr r0, _0811FEE4 @ =gUnknown_02023A60
- mov r12, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r0, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- mov r1, r12
- adds r1, 0x2
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- ldr r5, _0811FEE8 @ =gUnknown_0202F7C4
- mov r1, r12
- adds r1, 0x3
- adds r2, r1
- ldrb r1, [r2]
- strb r1, [r5]
- ldr r4, _0811FEEC @ =gUnknown_0202F7BC
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x4
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x5
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r4, _0811FEF0 @ =gUnknown_0202F7B8
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x6
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x7
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r3, r1
- mov r1, r12
- adds r1, 0x8
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 16
- orrs r3, r1
- mov r1, r12
- adds r1, 0x9
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 24
- orrs r3, r1
- str r3, [r4]
- ldr r3, _0811FEF4 @ =gUnknown_0202F7BE
- ldrb r1, [r6]
- lsls r1, 9
- mov r2, r12
- adds r2, 0xA
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r3]
- ldr r4, _0811FEF8 @ =gUnknown_0202F7C0
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0xC
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0xD
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r3, _0811FEFC @ =gUnknown_0202F7B4
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x10
- adds r2, r1
- str r2, [r3]
- ldr r3, _0811FF00 @ =gUnknown_02024E70
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r3
- ldr r2, [r2]
- str r2, [r1]
- ldrb r1, [r5]
- bl sub_8031720
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _0811FF04
- bl dp01_tbl3_exec_completed
- b _0811FF1E
- .align 2, 0
-_0811FEE0: .4byte gUnknown_02024A60
-_0811FEE4: .4byte gUnknown_02023A60
-_0811FEE8: .4byte gUnknown_0202F7C4
-_0811FEEC: .4byte gUnknown_0202F7BC
-_0811FEF0: .4byte gUnknown_0202F7B8
-_0811FEF4: .4byte gUnknown_0202F7BE
-_0811FEF8: .4byte gUnknown_0202F7C0
-_0811FEFC: .4byte gUnknown_0202F7B4
-_0811FF00: .4byte gUnknown_02024E70
-_0811FF04:
- ldrb r1, [r6]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0811FF24 @ =0x02017810
- adds r0, r1
- strb r2, [r0, 0x4]
- ldr r1, _0811FF28 @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811FF2C @ =sub_811FF30
- str r1, [r0]
-_0811FF1E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811FF24: .4byte 0x02017810
-_0811FF28: .4byte gUnknown_03004330
-_0811FF2C: .4byte sub_811FF30
- thumb_func_end sub_811FDFC
-
- thumb_func_start sub_811FF30
-sub_811FF30: @ 811FF30
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r2, _0811FF74 @ =gUnknown_02023A60
- ldr r5, _0811FF78 @ =gUnknown_02024A60
- ldrb r3, [r5]
- lsls r1, r3, 9
- adds r0, r2, 0x1
- mov r9, r0
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r6, r2, 0x2
- mov r8, r6
- adds r0, r1, r6
- ldrb r0, [r0]
- lsls r0, 8
- orrs r4, r0
- adds r2, 0xB
- adds r1, r2
- ldrb r7, [r1]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r6, _0811FF7C @ =0x02017810
- adds r0, r6
- ldrb r2, [r0, 0x4]
- cmp r2, 0x1
- beq _0811FFBE
- cmp r2, 0x1
- bgt _0811FF80
- cmp r2, 0
- beq _0811FF8A
- b _08120088
- .align 2, 0
-_0811FF74: .4byte gUnknown_02023A60
-_0811FF78: .4byte gUnknown_02024A60
-_0811FF7C: .4byte 0x02017810
-_0811FF80:
- cmp r2, 0x2
- beq _0811FFE4
- cmp r2, 0x3
- beq _08120050
- b _08120088
-_0811FF8A:
- lsls r1, r3, 2
- adds r0, r6, 0
- subs r0, 0x10
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0xC
- ands r0, r2
- cmp r0, 0x4
- bne _0811FFAE
- movs r0, 0x8
- orrs r0, r2
- strb r0, [r1]
- ldrb r2, [r5]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_0811FFAE:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _08120088
-_0811FFBE:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08120088
- movs r0, 0
- bl sub_80326EC
- adds r0, r4, 0
- bl ExecuteMoveAnim
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x2
- strb r0, [r1, 0x4]
- b _08120088
-_0811FFE4:
- ldr r0, _08120040 @ =gAnimScriptCallback
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _08120044 @ =gAnimScriptActive
- ldrb r0, [r0]
- cmp r0, 0
- bne _08120088
- movs r0, 0x1
- bl sub_80326EC
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r4, r6, 0
- subs r4, 0x10
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0812002C
- cmp r7, 0x1
- bhi _0812002C
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x6
- bl move_anim_start_t4
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0]
- movs r1, 0x9
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_0812002C:
- ldr r0, _08120048 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0812004C @ =0x02017810
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0, 0x4]
- b _08120088
- .align 2, 0
-_08120040: .4byte gAnimScriptCallback
-_08120044: .4byte gAnimScriptActive
-_08120048: .4byte gUnknown_02024A60
-_0812004C: .4byte 0x02017810
-_08120050:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08120088
- bl sub_8031F24
- ldrb r0, [r5]
- lsls r2, r0, 9
- mov r3, r9
- adds r1, r2, r3
- ldrb r1, [r1]
- add r2, r8
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- bl sub_80324BC
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strb r4, [r0, 0x4]
- bl dp01_tbl3_exec_completed
-_08120088:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_811FF30
-
- thumb_func_start sub_8120094
-sub_8120094: @ 8120094
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _081200D8 @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _081200DC @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r4, _081200E0 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 9
- ldr r1, _081200E4 @ =gUnknown_02023A62
- adds r0, r1
- ldrh r0, [r0]
- bl sub_8120AA8
- ldr r0, _081200E8 @ =gUnknown_03004210
- ldr r1, _081200EC @ =gUnknown_020238CC
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _081200F0 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _081200F4 @ =sub_811DFA0
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081200D8: .4byte gUnknown_030042A4
-_081200DC: .4byte gUnknown_030042A0
-_081200E0: .4byte gUnknown_02024A60
-_081200E4: .4byte gUnknown_02023A62
-_081200E8: .4byte gUnknown_03004210
-_081200EC: .4byte gUnknown_020238CC
-_081200F0: .4byte gUnknown_03004330
-_081200F4: .4byte sub_811DFA0
- thumb_func_end sub_8120094
-
- thumb_func_start sub_81200F8
-sub_81200F8: @ 81200F8
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81200F8
-
- thumb_func_start sub_8120104
-sub_8120104: @ 8120104
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120104
-
- thumb_func_start sub_8120110
-sub_8120110: @ 8120110
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120110
-
- thumb_func_start sub_812011C
-sub_812011C: @ 812011C
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812011C
-
- thumb_func_start sub_8120128
-sub_8120128: @ 8120128
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120128
-
- thumb_func_start sub_8120134
-sub_8120134: @ 8120134
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120134
-
- thumb_func_start sub_8120140
-sub_8120140: @ 8120140
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120140
-
- thumb_func_start sub_812014C
-sub_812014C: @ 812014C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- movs r0, 0
- bl load_gfxc_health_bar
- ldr r3, _081201C4 @ =gUnknown_02023A60
- ldr r0, _081201C8 @ =gUnknown_02024A60
- mov r9, r0
- ldrb r4, [r0]
- lsls r2, r4, 9
- adds r0, r3, 0x2
- adds r0, r2, r0
- ldrb r1, [r0]
- adds r3, 0x3
- adds r2, r3
- ldrb r0, [r2]
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- asrs r7, r1, 16
- ldr r0, _081201CC @ =0x00007fff
- cmp r7, r0
- beq _081201DC
- ldr r6, _081201D0 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r6
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _081201D4 @ =gPlayerParty
- adds r0, r4
- movs r1, 0x3A
- bl GetMonData
- mov r8, r0
- mov r1, r9
- ldrb r0, [r1]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r4
- movs r1, 0x39
- bl GetMonData
- adds r3, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, _081201D8 @ =gUnknown_03004340
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- mov r2, r8
- bl sub_8043D84
- b _08120206
- .align 2, 0
-_081201C4: .4byte gUnknown_02023A60
-_081201C8: .4byte gUnknown_02024A60
-_081201CC: .4byte 0x00007fff
-_081201D0: .4byte gUnknown_02024A6A
-_081201D4: .4byte gPlayerParty
-_081201D8: .4byte gUnknown_03004340
-_081201DC:
- ldr r1, _08120224 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08120228 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3A
- bl GetMonData
- adds r2, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, _0812022C @ =gUnknown_03004340
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- movs r3, 0
- bl sub_8043D84
-_08120206:
- ldr r1, _08120230 @ =gUnknown_03004330
- ldr r0, _08120234 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08120238 @ =bx_t3_healthbar_update
- str r1, [r0]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08120224: .4byte gUnknown_02024A6A
-_08120228: .4byte gPlayerParty
-_0812022C: .4byte gUnknown_03004340
-_08120230: .4byte gUnknown_03004330
-_08120234: .4byte gUnknown_02024A60
-_08120238: .4byte bx_t3_healthbar_update
- thumb_func_end sub_812014C
-
- thumb_func_start sub_812023C
-sub_812023C: @ 812023C
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812023C
-
- thumb_func_start sub_8120248
-sub_8120248: @ 8120248
- push {r4,lr}
- ldr r4, _081202A0 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _08120298
- ldr r0, _081202A4 @ =gUnknown_03004340
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r2, _081202A8 @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _081202AC @ =gPlayerParty
- adds r1, r2
- movs r2, 0x9
- bl sub_8045A5C
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, _081202B0 @ =0x02017810
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, _081202B4 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _081202B8 @ =sub_811E38C
- str r1, [r0]
-_08120298:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081202A0: .4byte gUnknown_02024A60
-_081202A4: .4byte gUnknown_03004340
-_081202A8: .4byte gUnknown_02024A6A
-_081202AC: .4byte gPlayerParty
-_081202B0: .4byte 0x02017810
-_081202B4: .4byte gUnknown_03004330
-_081202B8: .4byte sub_811E38C
- thumb_func_end sub_8120248
-
- thumb_func_start sub_81202BC
-sub_81202BC: @ 81202BC
- push {r4,r5,lr}
- ldr r5, _08120314 @ =gUnknown_02024A60
- ldrb r0, [r5]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _0812030C
- ldr r4, _08120318 @ =gUnknown_02023A60
- ldrb r3, [r5]
- lsls r3, 9
- adds r0, r4, 0x1
- adds r0, r3, r0
- ldrb r0, [r0]
- adds r1, r4, 0x2
- adds r1, r3, r1
- ldrb r1, [r1]
- adds r2, r4, 0x3
- adds r2, r3, r2
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- adds r2, r4, 0x4
- adds r2, r3, r2
- ldrb r2, [r2]
- lsls r2, 16
- orrs r1, r2
- adds r4, 0x5
- adds r3, r4
- ldrb r2, [r3]
- lsls r2, 24
- orrs r1, r2
- bl move_anim_start_t2_for_situation
- ldr r1, _0812031C @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08120320 @ =sub_811E38C
- str r1, [r0]
-_0812030C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08120314: .4byte gUnknown_02024A60
-_08120318: .4byte gUnknown_02023A60
-_0812031C: .4byte gUnknown_03004330
-_08120320: .4byte sub_811E38C
- thumb_func_end sub_81202BC
-
- thumb_func_start sub_8120324
-sub_8120324: @ 8120324
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120324
-
- thumb_func_start sub_8120330
-sub_8120330: @ 8120330
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120330
-
- thumb_func_start sub_812033C
-sub_812033C: @ 812033C
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812033C
-
- thumb_func_start sub_8120348
-sub_8120348: @ 8120348
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120348
-
- thumb_func_start sub_8120354
-sub_8120354: @ 8120354
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120354
-
- thumb_func_start sub_8120360
-sub_8120360: @ 8120360
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120360
-
- thumb_func_start sub_812036C
-sub_812036C: @ 812036C
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812036C
-
- thumb_func_start sub_8120378
-sub_8120378: @ 8120378
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120378
-
- thumb_func_start sub_8120384
-sub_8120384: @ 8120384
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120384
-
- thumb_func_start sub_8120390
-sub_8120390: @ 8120390
- push {lr}
- ldr r2, _081203A8 @ =gUnknown_020238C8
- ldrb r1, [r2]
- movs r0, 0x80
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_081203A8: .4byte gUnknown_020238C8
- thumb_func_end sub_8120390
-
- thumb_func_start sub_81203AC
-sub_81203AC: @ 81203AC
- push {lr}
- ldr r3, _081203D8 @ =gUnknown_020238C8
- ldr r1, _081203DC @ =gUnknown_02023A60
- ldr r0, _081203E0 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x7F
- ands r1, r0
- ldrb r2, [r3]
- movs r0, 0x80
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_081203D8: .4byte gUnknown_020238C8
-_081203DC: .4byte gUnknown_02023A60
-_081203E0: .4byte gUnknown_02024A60
- thumb_func_end sub_81203AC
-
- thumb_func_start sub_81203E4
-sub_81203E4: @ 81203E4
- push {lr}
- ldr r2, _081203F8 @ =gUnknown_020238C8
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_081203F8: .4byte gUnknown_020238C8
- thumb_func_end sub_81203E4
-
- thumb_func_start sub_81203FC
-sub_81203FC: @ 81203FC
- push {lr}
- ldr r3, _08120420 @ =gUnknown_020238C8
- ldr r1, [r3]
- lsls r1, 24
- lsrs r1, 31
- movs r0, 0x1
- eors r1, r0
- lsls r1, 7
- ldrb r2, [r3]
- movs r0, 0x7F
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08120420: .4byte gUnknown_020238C8
- thumb_func_end sub_81203FC
-
- thumb_func_start dp01t_29_3_blink
-dp01t_29_3_blink: @ 8120424
- push {r4,lr}
- ldr r3, _0812044C @ =gSprites
- ldr r2, _08120450 @ =gUnknown_02024BE0
- ldr r4, _08120454 @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _08120458
- bl dp01_tbl3_exec_completed
- b _08120482
- .align 2, 0
-_0812044C: .4byte gSprites
-_08120450: .4byte gUnknown_02024BE0
-_08120454: .4byte gUnknown_02024A60
-_08120458:
- ldr r1, _08120488 @ =gUnknown_02024E6D
- movs r0, 0x1
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x30]
- ldrb r0, [r4]
- bl sub_8047858
- ldr r1, _0812048C @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08120490 @ =bx_blink_t3
- str r1, [r0]
-_08120482:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08120488: .4byte gUnknown_02024E6D
-_0812048C: .4byte gUnknown_03004330
-_08120490: .4byte bx_blink_t3
- thumb_func_end dp01t_29_3_blink
-
- thumb_func_start sub_8120494
-sub_8120494: @ 8120494
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120494
-
- thumb_func_start sub_81204A0
-sub_81204A0: @ 81204A0
- push {r4,lr}
- ldr r4, _081204DC @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- movs r3, 0x3F
- cmp r0, 0
- bne _081204B4
- movs r3, 0xC0
-_081204B4:
- ldr r2, _081204E0 @ =gUnknown_02023A60
- ldrb r1, [r4]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- lsls r1, r3, 24
- asrs r1, 24
- bl PlaySE12WithPanning
- bl dp01_tbl3_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081204DC: .4byte gUnknown_02024A60
-_081204E0: .4byte gUnknown_02023A60
- thumb_func_end sub_81204A0
-
- thumb_func_start sub_81204E4
-sub_81204E4: @ 81204E4
- push {lr}
- ldr r2, _0812050C @ =gUnknown_02023A60
- ldr r0, _08120510 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl PlayFanfare
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0812050C: .4byte gUnknown_02023A60
-_08120510: .4byte gUnknown_02024A60
- thumb_func_end sub_81204E4
-
- thumb_func_start sub_8120514
-sub_8120514: @ 8120514
- push {lr}
- ldr r1, _08120548 @ =gUnknown_02024A6A
- ldr r0, _0812054C @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08120550 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- negs r1, r1
- movs r2, 0x5
- bl PlayCry3
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08120548: .4byte gUnknown_02024A6A
-_0812054C: .4byte gUnknown_02024A60
-_08120550: .4byte gPlayerParty
- thumb_func_end sub_8120514
-
- thumb_func_start dp01t_2E_3_battle_intro
-dp01t_2E_3_battle_intro: @ 8120554
- push {lr}
- ldr r1, _0812057C @ =gUnknown_02023A60
- ldr r0, _08120580 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80E43C0
- ldr r2, _08120584 @ =gUnknown_02024DE8
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0812057C: .4byte gUnknown_02023A60
-_08120580: .4byte gUnknown_02024A60
-_08120584: .4byte gUnknown_02024DE8
- thumb_func_end dp01t_2E_3_battle_intro
-
- thumb_func_start sub_8120588
-sub_8120588: @ 8120588
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r6, _081206DC @ =gUnknown_02024BE0
- ldr r7, _081206E0 @ =gUnknown_02024A60
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _081206E4 @ =gSprites
- adds r0, r5
- bl oamt_add_pos2_onto_pos1
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x32
- strh r1, [r0, 0x2E]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _081206E8 @ =0x0000ffd8
- strh r1, [r0, 0x32]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _081206EC @ =sub_8078B34
- str r1, [r0]
- ldrb r2, [r7]
- adds r0, r2, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x38]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _081206F0 @ =sub_8030E38
- bl oamt_set_x3A_32
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r0, _081206F4 @ =0x0000d6f9
- bl AllocSpritePalette
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _081206F8 @ =gTrainerBackPicPaletteTable
- mov r8, r0
- ldrb r0, [r7]
- bl sub_803FC34
- ldr r2, _081206FC @ =gLinkPlayers
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x13]
- lsls r0, 3
- add r0, r8
- ldr r0, [r0]
- lsls r4, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r4, r2
- movs r2, 0x20
- bl LoadCompressedPalette
- ldrb r0, [r7]
- adds r0, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r4
- strb r0, [r1, 0x5]
- ldr r0, _08120700 @ =sub_812071C
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08120704 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- ldrb r0, [r7]
- strh r0, [r1, 0x8]
- ldrb r3, [r7]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r2, _08120708 @ =0x02017810
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081206BA
- ldr r0, _0812070C @ =gUnknown_02024E68
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- ldr r1, _08120710 @ =sub_8044CA0
- str r1, [r0]
-_081206BA:
- adds r2, 0x30
- ldrb r0, [r2, 0x9]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _08120714 @ =gUnknown_03004330
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08120718 @ =nullsub_74
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081206DC: .4byte gUnknown_02024BE0
-_081206E0: .4byte gUnknown_02024A60
-_081206E4: .4byte gSprites
-_081206E8: .4byte 0x0000ffd8
-_081206EC: .4byte sub_8078B34
-_081206F0: .4byte sub_8030E38
-_081206F4: .4byte 0x0000d6f9
-_081206F8: .4byte gTrainerBackPicPaletteTable
-_081206FC: .4byte gLinkPlayers
-_08120700: .4byte sub_812071C
-_08120704: .4byte gTasks
-_08120708: .4byte 0x02017810
-_0812070C: .4byte gUnknown_02024E68
-_08120710: .4byte sub_8044CA0
-_08120714: .4byte gUnknown_03004330
-_08120718: .4byte nullsub_74
- thumb_func_end sub_8120588
-
- thumb_func_start sub_812071C
-sub_812071C: @ 812071C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, _08120744 @ =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0xA]
- movs r3, 0xA
- ldrsh r0, [r1, r3]
- cmp r0, 0x17
- bgt _08120748
- adds r0, r2, 0x1
- strh r0, [r1, 0xA]
- b _08120804
- .align 2, 0
-_08120744: .4byte gTasks
-_08120748:
- ldr r7, _08120788 @ =gUnknown_02024A60
- ldrb r0, [r7]
- mov r9, r0
- ldrh r0, [r1, 0x8]
- strb r0, [r7]
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- beq _08120768
- ldr r0, _0812078C @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08120798
-_08120768:
- ldr r0, _08120790 @ =gUnknown_02023A60
- ldrb r1, [r7]
- lsls r2, r1, 9
- adds r0, 0x1
- adds r2, r0
- ldr r0, _08120794 @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- strb r0, [r2]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_811F864
- b _081207EC
- .align 2, 0
-_08120788: .4byte gUnknown_02024A60
-_0812078C: .4byte gBattleTypeFlags
-_08120790: .4byte gUnknown_02023A60
-_08120794: .4byte gUnknown_02024A6A
-_08120798:
- ldr r4, _08120810 @ =gUnknown_02023A60
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r4, 0x1
- adds r1, r4
- ldr r5, _08120814 @ =gUnknown_02024A6A
- lsls r0, 1
- adds r0, r5
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_811F864
- ldrb r0, [r7]
- movs r6, 0x2
- eors r0, r6
- strb r0, [r7]
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r1, r4
- lsls r0, 1
- adds r0, r5
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r0, r1, 1
- adds r0, r5
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _08120818 @ =gPlayerParty
- adds r0, r2
- bl sub_80318FC
- ldrb r0, [r7]
- movs r1, 0
- bl sub_811F864
- ldrb r0, [r7]
- eors r0, r6
- strb r0, [r7]
-_081207EC:
- ldr r1, _0812081C @ =gUnknown_03004330
- ldr r2, _08120820 @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08120824 @ =sub_811DCA0
- str r1, [r0]
- mov r3, r9
- strb r3, [r2]
- mov r0, r8
- bl DestroyTask
-_08120804:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08120810: .4byte gUnknown_02023A60
-_08120814: .4byte gUnknown_02024A6A
-_08120818: .4byte gPlayerParty
-_0812081C: .4byte gUnknown_03004330
-_08120820: .4byte gUnknown_02024A60
-_08120824: .4byte sub_811DCA0
- thumb_func_end sub_812071C
-
- thumb_func_start dp01t_30_3_80EB11C
-dp01t_30_3_80EB11C: @ 8120828
- push {r4-r6,lr}
- ldr r1, _08120850 @ =gUnknown_02023A60
- ldr r0, _08120854 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08120858
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08120858
- bl dp01_tbl3_exec_completed
- b _081208C0
- .align 2, 0
-_08120850: .4byte gUnknown_02023A60
-_08120854: .4byte gUnknown_02024A60
-_08120858:
- ldr r5, _081208C8 @ =gUnknown_02024A60
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r6, _081208CC @ =0x02017810
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- ldrb r0, [r5]
- lsls r3, r0, 9
- ldr r4, _081208D0 @ =gUnknown_02023A64
- adds r1, r3, r4
- subs r2, r4, 0x3
- adds r2, r3, r2
- ldrb r2, [r2]
- subs r4, 0x2
- adds r3, r4
- ldrb r3, [r3]
- bl sub_8044804
- ldr r2, _081208D4 @ =gUnknown_02024E68
- ldrb r1, [r5]
- adds r1, r2
- movs r2, 0
- strb r0, [r1]
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strb r2, [r0, 0x5]
- ldrb r1, [r5]
- lsls r0, r1, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _081208B4
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x5D
- strb r1, [r0, 0x5]
-_081208B4:
- ldr r0, _081208D8 @ =gUnknown_03004330
- ldrb r1, [r5]
- lsls r1, 2
- adds r1, r0
- ldr r0, _081208DC @ =sub_81208E0
- str r0, [r1]
-_081208C0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081208C8: .4byte gUnknown_02024A60
-_081208CC: .4byte 0x02017810
-_081208D0: .4byte gUnknown_02023A64
-_081208D4: .4byte gUnknown_02024E68
-_081208D8: .4byte gUnknown_03004330
-_081208DC: .4byte sub_81208E0
- thumb_func_end dp01t_30_3_80EB11C
-
- thumb_func_start sub_81208E0
-sub_81208E0: @ 81208E0
- push {r4,lr}
- ldr r4, _08120918 @ =gUnknown_02024A60
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r3, _0812091C @ =0x02017810
- adds r0, r3
- ldrb r1, [r0, 0x5]
- adds r2, r1, 0x1
- strb r2, [r0, 0x5]
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x5C
- bls _08120910
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- movs r0, 0
- strb r0, [r1, 0x5]
- bl dp01_tbl3_exec_completed
-_08120910:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08120918: .4byte gUnknown_02024A60
-_0812091C: .4byte 0x02017810
- thumb_func_end sub_81208E0
-
- thumb_func_start sub_8120920
-sub_8120920: @ 8120920
- push {lr}
- ldr r0, _08120958 @ =gUnknown_02024A60
- ldrb r3, [r0]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r1, _0812095C @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0812094E
- ldr r2, _08120960 @ =gTasks
- ldr r0, _08120964 @ =gUnknown_02024E68
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _08120968 @ =sub_8044CA0
- str r1, [r0]
-_0812094E:
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08120958: .4byte gUnknown_02024A60
-_0812095C: .4byte 0x02017810
-_08120960: .4byte gTasks
-_08120964: .4byte gUnknown_02024E68
-_08120968: .4byte sub_8044CA0
- thumb_func_end sub_8120920
-
- thumb_func_start sub_812096C
-sub_812096C: @ 812096C
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812096C
-
- thumb_func_start sub_8120978
-sub_8120978: @ 8120978
- push {r4,lr}
- ldr r4, _081209C8 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl sub_8078874
- lsls r0, 24
- cmp r0, 0
- beq _081209BE
- ldr r3, _081209CC @ =gSprites
- ldr r0, _081209D0 @ =gUnknown_02024BE0
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldr r0, _081209D4 @ =gUnknown_02023A60
- lsls r1, 9
- adds r0, 0x1
- adds r1, r0
- adds r2, 0x3E
- movs r0, 0x1
- ldrb r1, [r1]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r4]
- bl sub_8031F88
-_081209BE:
- bl dp01_tbl3_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081209C8: .4byte gUnknown_02024A60
-_081209CC: .4byte gSprites
-_081209D0: .4byte gUnknown_02024BE0
-_081209D4: .4byte gUnknown_02023A60
- thumb_func_end sub_8120978
-
- thumb_func_start sub_81209D8
-sub_81209D8: @ 81209D8
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r6, _08120A1C @ =gUnknown_02024A60
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _08120A30
- ldr r5, _08120A20 @ =gUnknown_02023A60
- ldrb r2, [r6]
- lsls r1, r2, 9
- adds r0, r5, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r0, r5, 0x2
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r5, 0x3
- adds r1, r5
- ldrb r0, [r1]
- lsls r0, 8
- orrs r4, r0
- str r4, [sp]
- adds r0, r2, 0
- adds r1, r2, 0
- bl move_anim_start_t3
- lsls r0, 24
- cmp r0, 0
- beq _08120A24
- bl dp01_tbl3_exec_completed
- b _08120A30
- .align 2, 0
-_08120A1C: .4byte gUnknown_02024A60
-_08120A20: .4byte gUnknown_02023A60
-_08120A24:
- ldr r0, _08120A38 @ =gUnknown_03004330
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _08120A3C @ =sub_811E3B8
- str r0, [r1]
-_08120A30:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08120A38: .4byte gUnknown_03004330
-_08120A3C: .4byte sub_811E3B8
- thumb_func_end sub_81209D8
-
- thumb_func_start sub_8120A40
-sub_8120A40: @ 8120A40
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120A40
-
- thumb_func_start sub_8120A4C
-sub_8120A4C: @ 8120A4C
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120A4C
-
- thumb_func_start sub_8120A58
-sub_8120A58: @ 8120A58
- push {r4,lr}
- ldr r2, _08120A90 @ =gUnknown_02024D26
- ldr r1, _08120A94 @ =gUnknown_02023A60
- ldr r4, _08120A98 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- movs r0, 0x5
- bl FadeOutMapMusic
- movs r0, 0x3
- bl BeginFastPaletteFade
- bl dp01_tbl3_exec_completed
- ldr r1, _08120A9C @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08120AA0 @ =sub_811E29C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08120A90: .4byte gUnknown_02024D26
-_08120A94: .4byte gUnknown_02023A60
-_08120A98: .4byte gUnknown_02024A60
-_08120A9C: .4byte gUnknown_03004330
-_08120AA0: .4byte sub_811E29C
- thumb_func_end sub_8120A58
-
- thumb_func_start nullsub_75
-nullsub_75: @ 8120AA4
- bx lr
- thumb_func_end nullsub_75
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/include/battle.h b/include/battle.h
index 858e493f1..9714c6add 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -35,7 +35,7 @@ extern u8 unk_2000000[];
// to do: maybe try to reduce the defines needed to match?
#define BATTLE_STRUCT ((struct BattleStruct *)(unk_2000000))
#define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)(unk_2000000 + 0x16800))
-#define UNK_2016A00_STRUCT ((struct UnknownStruct1 *)(unk_2000000 + 0x16A00))
+#define UNK_2016A00_STRUCT ((struct UnkBattleStruct1 *)(unk_2000000 + 0x16A00))
#define AI_STACK ((struct AI_Stack *)(unk_2000000 + 0x16C00))
#define AI_ARRAY_160CC ((struct SmallItemStruct *)(unk_2000000 + 0x160CC))
@@ -61,7 +61,7 @@ struct Trainer
/*0x24*/ void *party;
};
-struct UnknownStruct1 // AI_Opponent_Info?
+struct UnkBattleStruct1 // AI_Opponent_Info?
{
/*0x00*/ u16 movesUsed[2][8]; // 0xFFFF means move not used (confuse self hit, etc)
/*0x20*/ u8 unk20[2];
@@ -119,10 +119,10 @@ struct BattleStruct /* 0x2000000 */
u8 filler2[0x72E];
/* 0x16800 */ struct AI_ThinkingStruct ai; /* 0x2016800 */
u8 filler1681C[0x1E4];
- /* 0x16A00 */ struct UnknownStruct1 unk_2016A00_2;
+ /* 0x16A00 */ struct UnkBattleStruct1 unk_2016A00_2;
};
-struct UnknownStruct4
+struct UnkBattleStruct4
{
/*0x00*/ u8 filler0[0x3];
/*0x04*/ u16 unk4;
@@ -143,7 +143,7 @@ struct UnknownStruct4
};
extern struct UnknownStruct1 unk_2016A00;
-extern struct UnknownStruct4 gUnknown_02024CA8[];
+extern struct UnkBattleStruct4 gUnknown_02024CA8[];
extern struct AI_ThinkingStruct gAIThinkingSpace;
struct UnknownStruct11
diff --git a/include/songs.h b/include/songs.h
index c465ac562..d7829479f 100644
--- a/include/songs.h
+++ b/include/songs.h
@@ -3,23 +3,23 @@
enum
{
- SE_STOP,
- SE_KAIFUKU,
- SE_PC_LOGON,
- SE_PC_OFF,
- SE_PC_ON,
- SE_SELECT,
- SE_WIN_OPEN,
- SE_WALL_HIT,
- SE_DOOR,
- SE_KAIDAN,
- SE_DANSA,
- SE_JITENSYA,
- SE_KOUKA_L,
- SE_KOUKA_M,
- SE_KOUKA_H,
- SE_BOWA2,
- SE_POKE_DEAD,
+ /*0x00*/ SE_STOP,
+ /*0x01*/ SE_KAIFUKU,
+ /*0x02*/ SE_PC_LOGON,
+ /*0x03*/ SE_PC_OFF,
+ /*0x04*/ SE_PC_ON,
+ /*0x05*/ SE_SELECT,
+ /*0x06*/ SE_WIN_OPEN,
+ /*0x07*/ SE_WALL_HIT,
+ /*0x08*/ SE_DOOR,
+ /*0x09*/ SE_KAIDAN,
+ /*0x0A*/ SE_DANSA,
+ /*0x0B*/ SE_JITENSYA,
+ /*0x0C*/ SE_KOUKA_L,
+ /*0x0D*/ SE_KOUKA_M,
+ /*0x0E*/ SE_KOUKA_H,
+ /*0x0F*/ SE_BOWA2,
+ /*0x10*/ SE_POKE_DEAD,
SE_NIGERU,
SE_JIDO_DOA,
SE_NAMINORI,
diff --git a/ld_script.txt b/ld_script.txt
index b4c30ad57..89fe8c93e 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -234,7 +234,6 @@ SECTIONS {
src/fldeff_strength.o(.text);
asm/battle_transition.o(.text);
src/battle_811DA74.o(.text);
- asm/battle_811DA74.o(.text);
asm/battle_message.o(.text);
asm/choose_party.o(.text);
asm/cable_car.o(.text);
diff --git a/src/battle_2.c b/src/battle_2.c
index 119085e14..17a583441 100644
--- a/src/battle_2.c
+++ b/src/battle_2.c
@@ -1796,7 +1796,7 @@ void sub_8010874(void)
void sub_8010B88(void)
{
- struct UnknownStruct4 sp0 = gUnknown_02024CA8[gUnknown_02024A60];
+ struct UnkBattleStruct4 sp0 = gUnknown_02024CA8[gUnknown_02024A60];
s32 i;
u8 *ptr;
u32 *ptr2;
diff --git a/src/battle_811DA74.c b/src/battle_811DA74.c
index 328b45f49..56a4bd0c4 100644
--- a/src/battle_811DA74.c
+++ b/src/battle_811DA74.c
@@ -1,11 +1,15 @@
#include "global.h"
#include "asm.h"
+#include "battle.h"
+#include "battle_interface.h"
+#include "data2.h"
#include "link.h"
#include "m4a.h"
#include "main.h"
#include "palette.h"
#include "pokemon.h"
#include "sound.h"
+#include "songs.h"
#include "sprite.h"
#include "string_util.h"
#include "text.h"
@@ -19,9 +23,18 @@ struct UnknownStruct1
struct UnknownStruct2
{
- u8 unk0;
- u8 unk1;
- u8 filler2[7];
+ u8 unk0_0:1;
+ u8 unk0_1:2;
+ u8 unk0_3:1;
+ u8 unk0_4:1;
+ u8 unk0_5:1;
+ u8 unk0_6:1;
+ u8 unk0_7:1;
+ u8 unk1_0:1;
+ u8 filler2[2];
+ u8 unk4;
+ u8 unk5;
+ u8 filler6[3];
u8 unk9;
u8 fillerA[2];
};
@@ -34,32 +47,100 @@ struct UnknownStruct3
u8 ppBonuses;
};
+struct UnknownStruct4
+{
+ u8 unk0_0:2;
+ u8 unk0_2:1;
+ u8 unk0_3:1;
+};
+
+struct UnknownStruct5
+{
+ u8 unk0_0:7;
+ u8 unk0_7:1;
+};
+
+struct UnknownStruct6
+{
+ u8 filler0[9];
+ u8 unk9;
+};
+
extern u32 gBitTable[];
extern u16 gBattleTypeFlags;
+extern struct UnknownStruct5 gUnknown_020238C8;
+extern u8 gUnknown_020238CC[];
extern u8 gUnknown_02023A60[][0x200];
extern u8 gUnknown_02024A60;
extern u32 gUnknown_02024A64;
extern u16 gUnknown_02024A6A[];
extern u8 gUnknown_02024BE0[];
+extern u8 gUnknown_02024D26;
+extern u16 gUnknown_02024DE8;
+extern u8 gUnknown_02024E68[];
extern u8 gUnknown_02024E6D;
+extern u32 gUnknown_02024E70[];
+extern struct SpriteTemplate gUnknown_02024E8C;
+extern u32 *gUnknown_0202F7B4;
+extern u32 gUnknown_0202F7B8;
+extern u16 gUnknown_0202F7BC;
+extern u8 gUnknown_0202F7BE;
+extern u16 gUnknown_0202F7C0;
+extern u8 gUnknown_0202F7C4;
extern struct Window gUnknown_03004210;
+extern u16 gUnknown_030042A0;
+extern u16 gUnknown_030042A4;
extern MainCallback gUnknown_030042D0;
extern void (*gUnknown_03004330[])(void);
extern u8 gUnknown_03004340[];
extern u8 gUnknown_0300434C[];
+extern u8 gBattleMonForms[];
+extern u8 gAnimScriptActive;
+extern void (*gAnimScriptCallback)(void);
extern void (*const gUnknown_083FE4F4[])(void);
-extern u8 unk_2000000[];
+extern u8 ewram[];
-#define EWRAM_17800 ((u8 *)(unk_2000000 + 0x17800))
-#define EWRAM_17810 ((struct UnknownStruct2 *)(unk_2000000 + 0x17810))
+#define ewram17800 ((struct UnknownStruct4 *)(ewram + 0x17800))
+#define ewram17810 ((struct UnknownStruct2 *)(ewram + 0x17810))
+#define ewram17840 (*(struct UnknownStruct6 *)(ewram + 0x17840))
+extern u8 move_anim_start_t3();
+extern u8 sub_8078874();
+extern void sub_8044CA0(u8);
+extern void sub_8030E38(struct Sprite *);
+extern void sub_80E43C0();
+extern void sub_8047858();
+extern void move_anim_start_t2_for_situation();
+extern void load_gfxc_health_bar();
+extern void sub_8043D84();
+extern void sub_8120AA8();
+extern void sub_8031F24(void);
+extern void sub_80326EC();
+extern void ExecuteMoveAnim();
+extern void sub_80324BC();
+extern u8 sub_8031720();
+extern u8 mplay_80342A4();
+extern void oamt_add_pos2_onto_pos1();
+extern void oamt_set_x3A_32();
+extern void sub_8078B34(struct Sprite *);
+extern void sub_80105EC(struct Sprite *);
+extern s32 sub_803FC34(u16);
+extern void sub_8031AF4();
+extern void sub_80313A0(struct Sprite *);
+extern u8 sub_8046400();
+extern void sub_80312F0(struct Sprite *);
+extern u8 CreateInvisibleSpriteWithCallback();
+extern void sub_80318FC();
+extern u8 sub_8077ABC();
+extern u8 sub_8077F68();
+extern u8 sub_8079E90();
extern void nullsub_10();
extern void sub_8045A5C();
extern void sub_804777C();
extern void sub_8043DFC();
-extern s16 sub_8045C78();
+//extern s16 sub_8045C78();
extern void sub_80440EC();
extern void sub_80324F8();
extern void nullsub_9(u16);
@@ -77,6 +158,11 @@ void sub_811E0A0(void);
void dp01_tbl3_exec_completed(void);
u32 dp01_getattr_by_ch1_for_player_pokemon(u8 a, u8 *b);
void sub_811EC68(u8);
+void sub_811F864(u8, u8);
+void sub_811FA5C(void);
+void sub_811FF30(void);
+void sub_812071C(u8);
+void sub_81208E0(void);
void nullsub_74(void)
{
@@ -117,9 +203,9 @@ void sub_811DB1C(void)
void sub_811DB84(void)
{
- if ((--EWRAM_17810[gUnknown_02024A60].unk9) == 0xFF)
+ if ((--ewram17810[gUnknown_02024A60].unk9) == 0xFF)
{
- EWRAM_17810[gUnknown_02024A60].unk9 = 0;
+ ewram17810[gUnknown_02024A60].unk9 = 0;
dp01_tbl3_exec_completed();
}
}
@@ -143,7 +229,7 @@ void sub_811DBC0(void)
r6 = FALSE;
if (r6)
{
- EWRAM_17810[gUnknown_02024A60].unk9 = 3;
+ ewram17810[gUnknown_02024A60].unk9 = 3;
gUnknown_03004330[gUnknown_02024A60] = sub_811DB84;
}
}
@@ -152,12 +238,13 @@ void sub_811DCA0(void)
{
u8 r2;
- if (!(EWRAM_17810[gUnknown_02024A60].unk0 & 8))
+ if (!ewram17810[gUnknown_02024A60].unk0_3)
{
- r2 = EWRAM_17810[gUnknown_02024A60 ^ 2].unk0 & 8;
- if (!r2 && (++EWRAM_17810[gUnknown_02024A60].unk9) != 1)
+ // I couldn't get it to work as a bitfield here
+ r2 = *((u8 *)&ewram17810[gUnknown_02024A60 ^ 2]) & 8;
+ if (!r2 && (++ewram17810[gUnknown_02024A60].unk9) != 1)
{
- EWRAM_17810[gUnknown_02024A60].unk9 = r2;
+ ewram17810[gUnknown_02024A60].unk9 = r2;
if (IsDoubleBattle() && !(gBattleTypeFlags & 0x40))
{
DestroySprite(&gSprites[gUnknown_0300434C[gUnknown_02024A60 ^ 2]]);
@@ -169,7 +256,7 @@ void sub_811DCA0(void)
sub_8045A5C(gUnknown_03004340[gUnknown_02024A60], &gPlayerParty[gUnknown_02024A6A[gUnknown_02024A60]], 0);
sub_804777C(gUnknown_02024A60);
sub_8043DFC(gUnknown_03004340[gUnknown_02024A60]);
- (s8)EWRAM_17810[4].unk9 &= ~1;
+ (s8)ewram17810[4].unk9 &= ~1;
gUnknown_03004330[gUnknown_02024A60] = sub_811DBC0;
}
}
@@ -213,7 +300,7 @@ void sub_811DE98(void)
void sub_811DF34(void)
{
- if (!(EWRAM_17810[gUnknown_02024A60].unk0 & 0x40))
+ if (!ewram17810[gUnknown_02024A60].unk0_6)
{
FreeSpriteOamMatrix(&gSprites[gUnknown_02024BE0[gUnknown_02024A60]]);
DestroySprite(&gSprites[gUnknown_02024BE0[gUnknown_02024A60]]);
@@ -252,7 +339,7 @@ void sub_811E034(void)
{
if (gSprites[gUnknown_03004340[gUnknown_02024A60]].callback == SpriteCallbackDummy)
{
- if (EWRAM_17800[gUnknown_02024A60 * 4] & 4)
+ if (ewram17800[gUnknown_02024A60].unk0_2)
move_anim_start_t4(gUnknown_02024A60, gUnknown_02024A60, gUnknown_02024A60, 6);
gUnknown_03004330[gUnknown_02024A60] = sub_811E0A0;
}
@@ -260,16 +347,16 @@ void sub_811E034(void)
void sub_811E0A0(void)
{
- if (!(EWRAM_17810[gUnknown_02024A60].unk0 & 0x40))
+ if (!ewram17810[gUnknown_02024A60].unk0_6)
dp01_tbl3_exec_completed();
}
void sub_811E0CC(void)
{
- if (EWRAM_17810[gUnknown_02024A60].unk1 & 1)
+ if (ewram17810[gUnknown_02024A60].unk1_0)
{
- EWRAM_17810[gUnknown_02024A60].unk0 &= 0x7F;
- (s8)EWRAM_17810[gUnknown_02024A60].unk1 &= ~1;
+ ewram17810[gUnknown_02024A60].unk0_7 = 0;
+ ewram17810[gUnknown_02024A60].unk1_0 = 0;
FreeSpriteTilesByTag(0x27F9);
FreeSpritePaletteByTag(0x27F9);
CreateTask(c3_0802FDF4, 10);
@@ -285,10 +372,10 @@ void sub_811E0CC(void)
void sub_811E1BC(void)
{
- if (!(EWRAM_17810[gUnknown_02024A60].unk0 & 0x88))
+ if (!ewram17810[gUnknown_02024A60].unk0_3 && !ewram17810[gUnknown_02024A60].unk0_7)
sub_8141828(gUnknown_02024A60, &gPlayerParty[gUnknown_02024A6A[gUnknown_02024A60]]);
if (gSprites[gUnknown_0300434C[gUnknown_02024A60]].callback == SpriteCallbackDummy
- && !(EWRAM_17810[gUnknown_02024A60].unk0 & 8))
+ && !ewram17810[gUnknown_02024A60].unk0_3)
{
DestroySprite(&gSprites[gUnknown_0300434C[gUnknown_02024A60]]);
gUnknown_03004330[gUnknown_02024A60] = sub_811E0CC;
@@ -344,13 +431,13 @@ void dp01_tbl3_exec_completed(void)
void sub_811E38C(void)
{
- if (!(EWRAM_17810[gUnknown_02024A60].unk0 & 0x10))
+ if (!ewram17810[gUnknown_02024A60].unk0_4)
dp01_tbl3_exec_completed();
}
void sub_811E3B8(void)
{
- if (!(EWRAM_17810[gUnknown_02024A60].unk0 & 0x20))
+ if (!ewram17810[gUnknown_02024A60].unk0_5)
dp01_tbl3_exec_completed();
}
@@ -455,7 +542,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon(u8 a, u8 *buffer)
case 5:
case 6:
case 7:
- data16 = GetMonData(&gPlayerParty[a], gUnknown_02023A60[gUnknown_02024A60][1] + MON_DATA_CHECKSUM);
+ data16 = GetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + gUnknown_02023A60[gUnknown_02024A60][1] - 4);
buffer[0] = data16;
buffer[1] = data16 >> 8;
size = 2;
@@ -470,7 +557,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon(u8 a, u8 *buffer)
case 10:
case 11:
case 12:
- buffer[0] = GetMonData(&gPlayerParty[a], gUnknown_02023A60[gUnknown_02024A60][1] + MON_DATA_MARKINGS);
+ buffer[0] = GetMonData(&gPlayerParty[a], MON_DATA_PP1 + gUnknown_02023A60[gUnknown_02024A60][1] - 9);
size = 1;
break;
case 17:
@@ -710,3 +797,848 @@ void sub_811EC10(void)
}
dp01_tbl3_exec_completed();
}
+
+void sub_811EC68(u8 a)
+{
+ struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gUnknown_02023A60[gUnknown_02024A60][3];
+ struct UnknownStruct3 *moveData = (struct UnknownStruct3 *)&gUnknown_02023A60[gUnknown_02024A60][3];
+ s32 i;
+
+ switch (gUnknown_02023A60[gUnknown_02024A60][1])
+ {
+ case 0:
+ {
+ u8 iv;
+
+ SetMonData(&gPlayerParty[a], MON_DATA_SPECIES, (u8 *)&battlePokemon->species);
+ SetMonData(&gPlayerParty[a], MON_DATA_HELD_ITEM, (u8 *)&battlePokemon->item);
+ for (i = 0; i < 4; i++)
+ {
+ SetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + i, (u8 *)&battlePokemon->moves[i]);
+ SetMonData(&gPlayerParty[a], MON_DATA_PP1 + i, (u8 *)&battlePokemon->pp[i]);
+ }
+ SetMonData(&gPlayerParty[a], MON_DATA_PP_BONUSES, (u8 *)&battlePokemon->ppBonuses);
+ SetMonData(&gPlayerParty[a], MON_DATA_FRIENDSHIP, (u8 *)&battlePokemon->friendship);
+ SetMonData(&gPlayerParty[a], MON_DATA_EXP, (u8 *)&battlePokemon->experience);
+ iv = battlePokemon->hpIV;
+ SetMonData(&gPlayerParty[a], MON_DATA_HP_IV, (u8 *)&iv);
+ iv = battlePokemon->attackIV;
+ SetMonData(&gPlayerParty[a], MON_DATA_ATK_IV, (u8 *)&iv);
+ iv = battlePokemon->defenseIV;
+ SetMonData(&gPlayerParty[a], MON_DATA_DEF_IV, (u8 *)&iv);
+ iv = battlePokemon->speedIV;
+ SetMonData(&gPlayerParty[a], MON_DATA_SPD_IV, (u8 *)&iv);
+ iv = battlePokemon->spAttackIV;
+ SetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV, (u8 *)&iv);
+ iv = battlePokemon->spDefenseIV;
+ SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV, (u8 *)&iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_PERSONALITY, (u8 *)&battlePokemon->personality);
+ SetMonData(&gPlayerParty[a], MON_DATA_STATUS, (u8 *)&battlePokemon->status1);
+ SetMonData(&gPlayerParty[a], MON_DATA_LEVEL, (u8 *)&battlePokemon->level);
+ SetMonData(&gPlayerParty[a], MON_DATA_HP, (u8 *)&battlePokemon->hp);
+ SetMonData(&gPlayerParty[a], MON_DATA_MAX_HP, (u8 *)&battlePokemon->maxHP);
+ SetMonData(&gPlayerParty[a], MON_DATA_ATK, (u8 *)&battlePokemon->attack);
+ SetMonData(&gPlayerParty[a], MON_DATA_DEF, (u8 *)&battlePokemon->defense);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPD, (u8 *)&battlePokemon->speed);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPATK, (u8 *)&battlePokemon->spAttack);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPDEF, (u8 *)&battlePokemon->spDefense);
+ }
+ break;
+ case 1:
+ SetMonData(&gPlayerParty[a], MON_DATA_SPECIES, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 2:
+ SetMonData(&gPlayerParty[a], MON_DATA_HELD_ITEM, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 3:
+ for (i = 0; i < 4; i++)
+ {
+ SetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + i, (u8 *)&moveData->moves[i]);
+ SetMonData(&gPlayerParty[a], MON_DATA_PP1 + i, (u8 *)&moveData->pp[i]);
+ }
+ SetMonData(&gPlayerParty[a], MON_DATA_PP_BONUSES, &moveData->ppBonuses);
+ break;
+ case 4:
+ case 5:
+ case 6:
+ case 7:
+ SetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + gUnknown_02023A60[gUnknown_02024A60][1] - 4, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 8:
+ SetMonData(&gPlayerParty[a], MON_DATA_PP1, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ SetMonData(&gPlayerParty[a], MON_DATA_PP2, &gUnknown_02023A60[gUnknown_02024A60][4]);
+ SetMonData(&gPlayerParty[a], MON_DATA_PP3, &gUnknown_02023A60[gUnknown_02024A60][5]);
+ SetMonData(&gPlayerParty[a], MON_DATA_PP4, &gUnknown_02023A60[gUnknown_02024A60][6]);
+ SetMonData(&gPlayerParty[a], MON_DATA_PP_BONUSES, &gUnknown_02023A60[gUnknown_02024A60][7]);
+ break;
+ case 9:
+ case 10:
+ case 11:
+ case 12:
+ SetMonData(&gPlayerParty[a], MON_DATA_PP1 + gUnknown_02023A60[gUnknown_02024A60][1] - 9, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 17:
+ SetMonData(&gPlayerParty[a], MON_DATA_OT_ID, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 18:
+ SetMonData(&gPlayerParty[a], MON_DATA_EXP, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 19:
+ SetMonData(&gPlayerParty[a], MON_DATA_HP_EV, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 20:
+ SetMonData(&gPlayerParty[a], MON_DATA_ATK_EV, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 21:
+ SetMonData(&gPlayerParty[a], MON_DATA_DEF_EV, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 22:
+ SetMonData(&gPlayerParty[a], MON_DATA_SPD_EV, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 23:
+ SetMonData(&gPlayerParty[a], MON_DATA_SPATK_EV, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 24:
+ SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_EV, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 25:
+ SetMonData(&gPlayerParty[a], MON_DATA_FRIENDSHIP, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 26:
+ SetMonData(&gPlayerParty[a], MON_DATA_POKERUS, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 27:
+ SetMonData(&gPlayerParty[a], MON_DATA_MET_LOCATION, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 28:
+ SetMonData(&gPlayerParty[a], MON_DATA_MET_LEVEL, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 29:
+ SetMonData(&gPlayerParty[a], MON_DATA_MET_GAME, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 30:
+ SetMonData(&gPlayerParty[a], MON_DATA_POKEBALL, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 31:
+ SetMonData(&gPlayerParty[a], MON_DATA_HP_IV, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ SetMonData(&gPlayerParty[a], MON_DATA_ATK_IV, &gUnknown_02023A60[gUnknown_02024A60][4]);
+ SetMonData(&gPlayerParty[a], MON_DATA_DEF_IV, &gUnknown_02023A60[gUnknown_02024A60][5]);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPD_IV, &gUnknown_02023A60[gUnknown_02024A60][6]);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV, &gUnknown_02023A60[gUnknown_02024A60][7]);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV, &gUnknown_02023A60[gUnknown_02024A60][8]);
+ break;
+ case 32:
+ SetMonData(&gPlayerParty[a], MON_DATA_HP_IV, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 33:
+ SetMonData(&gPlayerParty[a], MON_DATA_ATK_IV, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 34:
+ SetMonData(&gPlayerParty[a], MON_DATA_DEF_IV, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 35:
+ SetMonData(&gPlayerParty[a], MON_DATA_SPD_IV, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 36:
+ SetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 37:
+ SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 38:
+ SetMonData(&gPlayerParty[a], MON_DATA_PERSONALITY, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 39:
+ SetMonData(&gPlayerParty[a], MON_DATA_CHECKSUM, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 40:
+ SetMonData(&gPlayerParty[a], MON_DATA_STATUS, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 41:
+ SetMonData(&gPlayerParty[a], MON_DATA_LEVEL, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 42:
+ SetMonData(&gPlayerParty[a], MON_DATA_HP, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 43:
+ SetMonData(&gPlayerParty[a], MON_DATA_MAX_HP, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 44:
+ SetMonData(&gPlayerParty[a], MON_DATA_ATK, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 45:
+ SetMonData(&gPlayerParty[a], MON_DATA_DEF, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 46:
+ SetMonData(&gPlayerParty[a], MON_DATA_SPD, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 47:
+ SetMonData(&gPlayerParty[a], MON_DATA_SPATK, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 48:
+ SetMonData(&gPlayerParty[a], MON_DATA_SPDEF, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 49:
+ SetMonData(&gPlayerParty[a], MON_DATA_COOL, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 50:
+ SetMonData(&gPlayerParty[a], MON_DATA_BEAUTY, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 51:
+ SetMonData(&gPlayerParty[a], MON_DATA_CUTE, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 52:
+ SetMonData(&gPlayerParty[a], MON_DATA_SMART, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 53:
+ SetMonData(&gPlayerParty[a], MON_DATA_TOUGH, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 54:
+ SetMonData(&gPlayerParty[a], MON_DATA_SHEEN, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 55:
+ SetMonData(&gPlayerParty[a], MON_DATA_COOL_RIBBON, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 56:
+ SetMonData(&gPlayerParty[a], MON_DATA_BEAUTY_RIBBON, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 57:
+ SetMonData(&gPlayerParty[a], MON_DATA_CUTE_RIBBON, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 58:
+ SetMonData(&gPlayerParty[a], MON_DATA_SMART_RIBBON, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ case 59:
+ SetMonData(&gPlayerParty[a], MON_DATA_TOUGH_RIBBON, &gUnknown_02023A60[gUnknown_02024A60][3]);
+ break;
+ }
+ sub_80324F8(&gPlayerParty[gUnknown_02024A6A[gUnknown_02024A60]], gUnknown_02024A60);
+}
+
+void sub_811F664(void)
+{
+ u8 *dst;
+ u8 i;
+
+ dst = (u8 *)&gPlayerParty[gUnknown_02024A6A[gUnknown_02024A60]] + gUnknown_02023A60[gUnknown_02024A60][1];
+ for (i = 0; i < gUnknown_02023A60[gUnknown_02024A60][2]; i++)
+ dst[i] = gUnknown_02023A60[gUnknown_02024A60][3 + i];
+ dp01_tbl3_exec_completed();
+}
+
+void sub_811F6D8(void)
+{
+ sub_80318FC(&gPlayerParty[gUnknown_02024A6A[gUnknown_02024A60]], gUnknown_02024A60);
+ GetMonSpriteTemplate_803C56C(
+ GetMonData(&gPlayerParty[gUnknown_02024A6A[gUnknown_02024A60]], MON_DATA_SPECIES),
+ battle_get_per_side_status(gUnknown_02024A60));
+ gUnknown_02024BE0[gUnknown_02024A60] = CreateSprite(
+ &gUnknown_02024E8C,
+ sub_8077ABC(gUnknown_02024A60, 2),
+ sub_8077F68(gUnknown_02024A60),
+ sub_8079E90(gUnknown_02024A60));
+ gSprites[gUnknown_02024BE0[gUnknown_02024A60]].pos2.x = -240;
+ gSprites[gUnknown_02024BE0[gUnknown_02024A60]].data0 = gUnknown_02024A60;
+ gSprites[gUnknown_02024BE0[gUnknown_02024A60]].oam.paletteNum = gUnknown_02024A60;
+ StartSpriteAnim(&gSprites[gUnknown_02024BE0[gUnknown_02024A60]], gBattleMonForms[gUnknown_02024A60]);
+ gUnknown_03004330[gUnknown_02024A60] = sub_811DDE8;
+}
+
+void sub_811F7F4(void)
+{
+ sub_8032AA8(gUnknown_02024A60, gUnknown_02023A60[gUnknown_02024A60][2]);
+ gUnknown_02024A6A[gUnknown_02024A60] = gUnknown_02023A60[gUnknown_02024A60][1];
+ sub_80318FC(&gPlayerParty[gUnknown_02024A6A[gUnknown_02024A60]], gUnknown_02024A60);
+ sub_811F864(gUnknown_02024A60, gUnknown_02023A60[gUnknown_02024A60][2]);
+ gUnknown_03004330[gUnknown_02024A60] = sub_811E1BC;
+}
+
+void sub_811F864(u8 a, u8 b)
+{
+ u16 species;
+
+ sub_8032AA8(a, b);
+ gUnknown_02024A6A[a] = gUnknown_02023A60[a][1];
+ species = GetMonData(&gPlayerParty[gUnknown_02024A6A[a]], MON_DATA_SPECIES);
+ gUnknown_0300434C[a] = CreateInvisibleSpriteWithCallback(sub_80312F0);
+ GetMonSpriteTemplate_803C56C(species, battle_get_per_side_status(a));
+ gUnknown_02024BE0[a] = CreateSprite(
+ &gUnknown_02024E8C,
+ sub_8077ABC(a, 2),
+ sub_8077F68(a),
+ sub_8079E90(a));
+ gSprites[gUnknown_0300434C[a]].data1 = gUnknown_02024BE0[a];
+ gSprites[gUnknown_02024BE0[a]].data0 = a;
+ gSprites[gUnknown_02024BE0[a]].data2 = species;
+ gSprites[gUnknown_02024BE0[a]].oam.paletteNum = a;
+ StartSpriteAnim(&gSprites[gUnknown_02024BE0[a]], gBattleMonForms[a]);
+ gSprites[gUnknown_02024BE0[a]].invisible = TRUE;
+ gSprites[gUnknown_02024BE0[a]].callback = SpriteCallbackDummy;
+ gSprites[gUnknown_0300434C[a]].data0 = sub_8046400(0, 0xFF);
+}
+
+void sub_811F9D0(void)
+{
+ if (gUnknown_02023A60[gUnknown_02024A60][1] == 0)
+ {
+ ewram17810[gUnknown_02024A60].unk4 = 0;
+ gUnknown_03004330[gUnknown_02024A60] = sub_811FA5C;
+ }
+ else
+ {
+ FreeSpriteOamMatrix(&gSprites[gUnknown_02024BE0[gUnknown_02024A60]]);
+ DestroySprite(&gSprites[gUnknown_02024BE0[gUnknown_02024A60]]);
+ sub_8043DB0(gUnknown_03004340[gUnknown_02024A60]);
+ dp01_tbl3_exec_completed();
+ }
+}
+
+void sub_811FA5C(void)
+{
+ switch (ewram17810[gUnknown_02024A60].unk4)
+ {
+ case 0:
+ if (ewram17800[gUnknown_02024A60].unk0_2)
+ move_anim_start_t4(gUnknown_02024A60, gUnknown_02024A60, gUnknown_02024A60, 5);
+ ewram17810[gUnknown_02024A60].unk4 = 1;
+ break;
+ case 1:
+ if (!ewram17810[gUnknown_02024A60].unk0_6)
+ {
+ ewram17810[gUnknown_02024A60].unk4 = 0;
+ move_anim_start_t4(gUnknown_02024A60, gUnknown_02024A60, gUnknown_02024A60, 1);
+ gUnknown_03004330[gUnknown_02024A60] = sub_811DF34;
+ }
+ break;
+ }
+}
+
+void sub_811FAE4(void)
+{
+ s16 xOffset;
+ u32 gender;
+
+ if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
+ {
+ if (battle_get_per_side_status(gUnknown_02024A60) & 2)
+ xOffset = 16;
+ else
+ xOffset = -16;
+ gender = gLinkPlayers[sub_803FC34(gUnknown_02024A60)].gender;
+ }
+ else
+ {
+ xOffset = 0;
+ gender = gLinkPlayers[GetMultiplayerId() ^ 1].gender;
+ }
+ sub_8031AF4(gender, gUnknown_02024A60);
+ GetMonSpriteTemplate_803C5A0(gender, battle_get_per_side_status(gUnknown_02024A60));
+ gUnknown_02024BE0[gUnknown_02024A60] = CreateSprite(
+ &gUnknown_02024E8C,
+ 80 + xOffset, 80 + 4 * (8 - gTrainerBackPicCoords[gender].coords),
+ sub_8079E90(gUnknown_02024A60));
+ gSprites[gUnknown_02024BE0[gUnknown_02024A60]].oam.paletteNum = gUnknown_02024A60;
+ gSprites[gUnknown_02024BE0[gUnknown_02024A60]].pos2.x = 240;
+ gSprites[gUnknown_02024BE0[gUnknown_02024A60]].data0 = -2;
+ gSprites[gUnknown_02024BE0[gUnknown_02024A60]].callback = sub_80313A0;
+ gUnknown_03004330[gUnknown_02024A60] = sub_811DAE4;
+}
+
+void sub_811FC30(void)
+{
+ dp01_tbl3_exec_completed();
+}
+
+void sub_811FC3C(void)
+{
+ oamt_add_pos2_onto_pos1(&gSprites[gUnknown_02024BE0[gUnknown_02024A60]]);
+ gSprites[gUnknown_02024BE0[gUnknown_02024A60]].data0 = 35;
+ gSprites[gUnknown_02024BE0[gUnknown_02024A60]].data2 = -40;
+ gSprites[gUnknown_02024BE0[gUnknown_02024A60]].data4 = gSprites[gUnknown_02024BE0[gUnknown_02024A60]].pos1.y;
+ gSprites[gUnknown_02024BE0[gUnknown_02024A60]].callback = sub_8078B34;
+ oamt_set_x3A_32(&gSprites[gUnknown_02024BE0[gUnknown_02024A60]], SpriteCallbackDummy);
+ gUnknown_03004330[gUnknown_02024A60] = sub_811DB1C;
+}
+
+void sub_811FCE8(void)
+{
+ if (ewram17810[gUnknown_02024A60].unk4 == 0)
+ {
+ if (ewram17800[gUnknown_02024A60].unk0_2)
+ move_anim_start_t4(gUnknown_02024A60, gUnknown_02024A60, gUnknown_02024A60, 5);
+ ewram17810[gUnknown_02024A60].unk4++;
+ }
+ else if (!ewram17810[gUnknown_02024A60].unk0_6)
+ {
+ ewram17810[gUnknown_02024A60].unk4 = 0;
+ sub_80324F8(&gPlayerParty[gUnknown_02024A6A[gUnknown_02024A60]], gUnknown_02024A60);
+ PlaySE12WithPanning(SE_POKE_DEAD, -64);
+ gSprites[gUnknown_02024BE0[gUnknown_02024A60]].data1 = 0;
+ gSprites[gUnknown_02024BE0[gUnknown_02024A60]].data2 = 5;
+ gSprites[gUnknown_02024BE0[gUnknown_02024A60]].callback = sub_80105EC;
+ gUnknown_03004330[gUnknown_02024A60] = sub_811DE98;
+ }
+}
+
+void sub_811FDCC(void)
+{
+ dp01_tbl3_exec_completed();
+}
+
+void sub_811FDD8(void)
+{
+ dp01_tbl3_exec_completed();
+}
+
+void sub_811FDE4(void)
+{
+ dp01_tbl3_exec_completed();
+}
+
+void sub_811FDF0(void)
+{
+ dp01_tbl3_exec_completed();
+}
+
+void sub_811FDFC(void)
+{
+ if (mplay_80342A4(gUnknown_02024A60) == 0)
+ {
+ u32 r0 = gUnknown_02023A60[gUnknown_02024A60][1]
+ | (gUnknown_02023A60[gUnknown_02024A60][2] << 8);
+
+ gUnknown_0202F7C4 = gUnknown_02023A60[gUnknown_02024A60][3];
+ gUnknown_0202F7BC = gUnknown_02023A60[gUnknown_02024A60][4]
+ | (gUnknown_02023A60[gUnknown_02024A60][5] << 8);
+ gUnknown_0202F7B8 = gUnknown_02023A60[gUnknown_02024A60][6]
+ | (gUnknown_02023A60[gUnknown_02024A60][7] << 8)
+ | (gUnknown_02023A60[gUnknown_02024A60][8] << 16)
+ | (gUnknown_02023A60[gUnknown_02024A60][9] << 24);
+ gUnknown_0202F7BE = gUnknown_02023A60[gUnknown_02024A60][10];
+ gUnknown_0202F7C0 = gUnknown_02023A60[gUnknown_02024A60][12]
+ | (gUnknown_02023A60[gUnknown_02024A60][13] << 8);
+ gUnknown_0202F7B4 = (u32 *)&gUnknown_02023A60[gUnknown_02024A60][16];
+ gUnknown_02024E70[gUnknown_02024A60] = *gUnknown_0202F7B4;
+
+ if (sub_8031720(r0, gUnknown_0202F7C4) != 0)
+ dp01_tbl3_exec_completed();
+ else
+ {
+ ewram17810[gUnknown_02024A60].unk4 = 0;
+ gUnknown_03004330[gUnknown_02024A60] = sub_811FF30;
+ }
+ }
+}
+
+void sub_811FF30(void)
+{
+ u16 r4 = gUnknown_02023A60[gUnknown_02024A60][1]
+ | (gUnknown_02023A60[gUnknown_02024A60][2] << 8);
+ u8 r7 = gUnknown_02023A60[gUnknown_02024A60][11];
+
+ switch (ewram17810[gUnknown_02024A60].unk4)
+ {
+ case 0:
+ if (ewram17800[gUnknown_02024A60].unk0_2 && !ewram17800[gUnknown_02024A60].unk0_3)
+ {
+ ewram17800[gUnknown_02024A60].unk0_3 = 1;
+ move_anim_start_t4(gUnknown_02024A60, gUnknown_02024A60, gUnknown_02024A60, 5);
+ }
+ ewram17810[gUnknown_02024A60].unk4 = 1;
+ break;
+ case 1:
+ if (!ewram17810[gUnknown_02024A60].unk0_6)
+ {
+ sub_80326EC(0);
+ ExecuteMoveAnim(r4);
+ ewram17810[gUnknown_02024A60].unk4 = 2;
+ }
+ break;
+ case 2:
+ gAnimScriptCallback();
+ if (!gAnimScriptActive)
+ {
+ sub_80326EC(1);
+ if ((ewram17800[gUnknown_02024A60].unk0_2) && r7 <= 1)
+ {
+ move_anim_start_t4(gUnknown_02024A60, gUnknown_02024A60, gUnknown_02024A60, 6);
+ ewram17800[gUnknown_02024A60].unk0_3 = 0;
+ }
+ ewram17810[gUnknown_02024A60].unk4 = 3;
+ }
+ break;
+ case 3:
+ if (!ewram17810[gUnknown_02024A60].unk0_6)
+ {
+ sub_8031F24();
+ sub_80324BC(
+ gUnknown_02024A60,
+ gUnknown_02023A60[gUnknown_02024A60][1] | (gUnknown_02023A60[gUnknown_02024A60][2] << 8));
+ ewram17810[gUnknown_02024A60].unk4 = 0;
+ dp01_tbl3_exec_completed();
+ }
+ break;
+ }
+}
+
+void sub_8120094(void)
+{
+ gUnknown_030042A4 = 0;
+ gUnknown_030042A0 = 0;
+ sub_8120AA8(*(u16 *)&gUnknown_02023A60[gUnknown_02024A60][2]);
+ sub_8002EB0(&gUnknown_03004210, gUnknown_020238CC, 144, 2, 15);
+ gUnknown_03004330[gUnknown_02024A60] = sub_811DFA0;
+}
+
+void sub_81200F8(void)
+{
+ dp01_tbl3_exec_completed();
+}
+
+void sub_8120104(void)
+{
+ dp01_tbl3_exec_completed();
+}
+
+void sub_8120110(void)
+{
+ dp01_tbl3_exec_completed();
+}
+
+void sub_812011C(void)
+{
+ dp01_tbl3_exec_completed();
+}
+
+void sub_8120128(void)
+{
+ dp01_tbl3_exec_completed();
+}
+
+void sub_8120134(void)
+{
+ dp01_tbl3_exec_completed();
+}
+
+void sub_8120140(void)
+{
+ dp01_tbl3_exec_completed();
+}
+
+void sub_812014C(void)
+{
+ s16 r7;
+
+ load_gfxc_health_bar(0);
+ r7 = gUnknown_02023A60[gUnknown_02024A60][2] | (gUnknown_02023A60[gUnknown_02024A60][3] << 8);
+ if (r7 != 0x7FFF)
+ {
+ u32 maxHP = GetMonData(&gPlayerParty[gUnknown_02024A6A[gUnknown_02024A60]], MON_DATA_MAX_HP);
+ u32 hp = GetMonData(&gPlayerParty[gUnknown_02024A6A[gUnknown_02024A60]], MON_DATA_HP);
+
+ sub_8043D84(gUnknown_02024A60, gUnknown_03004340[gUnknown_02024A60], maxHP, hp, r7);
+ }
+ else
+ {
+ u32 maxHP = GetMonData(&gPlayerParty[gUnknown_02024A6A[gUnknown_02024A60]], MON_DATA_MAX_HP);
+
+ sub_8043D84(gUnknown_02024A60, gUnknown_03004340[gUnknown_02024A60], maxHP, 0, r7);
+ }
+ gUnknown_03004330[gUnknown_02024A60] = bx_t3_healthbar_update;
+}
+
+void sub_812023C(void)
+{
+ dp01_tbl3_exec_completed();
+}
+
+void sub_8120248(void)
+{
+ if (mplay_80342A4(gUnknown_02024A60) == 0)
+ {
+ sub_8045A5C(gUnknown_03004340[gUnknown_02024A60], &gPlayerParty[gUnknown_02024A6A[gUnknown_02024A60]], 9);
+ ewram17810[gUnknown_02024A60].unk0_4 = 0;
+ gUnknown_03004330[gUnknown_02024A60] = sub_811E38C;
+ }
+}
+
+void sub_81202BC(void)
+{
+ if (mplay_80342A4(gUnknown_02024A60) == 0)
+ {
+ move_anim_start_t2_for_situation(
+ gUnknown_02023A60[gUnknown_02024A60][1],
+ gUnknown_02023A60[gUnknown_02024A60][2]
+ | (gUnknown_02023A60[gUnknown_02024A60][3] << 8)
+ | (gUnknown_02023A60[gUnknown_02024A60][4] << 16)
+ | (gUnknown_02023A60[gUnknown_02024A60][5] << 24));
+ gUnknown_03004330[gUnknown_02024A60] = sub_811E38C;
+ }
+}
+
+void sub_8120324(void)
+{
+ dp01_tbl3_exec_completed();
+}
+
+void sub_8120330(void)
+{
+ dp01_tbl3_exec_completed();
+}
+
+void sub_812033C(void)
+{
+ dp01_tbl3_exec_completed();
+}
+
+void sub_8120348(void)
+{
+ dp01_tbl3_exec_completed();
+}
+
+void sub_8120354(void)
+{
+ dp01_tbl3_exec_completed();
+}
+
+void sub_8120360(void)
+{
+ dp01_tbl3_exec_completed();
+}
+
+void sub_812036C(void)
+{
+ dp01_tbl3_exec_completed();
+}
+
+void sub_8120378(void)
+{
+ dp01_tbl3_exec_completed();
+}
+
+void sub_8120384(void)
+{
+ dp01_tbl3_exec_completed();
+}
+
+void sub_8120390(void)
+{
+ gUnknown_020238C8.unk0_0 = 0;
+ dp01_tbl3_exec_completed();
+}
+
+void sub_81203AC(void)
+{
+ gUnknown_020238C8.unk0_0 = gUnknown_02023A60[gUnknown_02024A60][1];
+ dp01_tbl3_exec_completed();
+}
+
+void sub_81203E4(void)
+{
+ gUnknown_020238C8.unk0_7 = 0;
+ dp01_tbl3_exec_completed();
+}
+
+void sub_81203FC(void)
+{
+ gUnknown_020238C8.unk0_7 ^= 1;
+ dp01_tbl3_exec_completed();
+}
+
+void dp01t_29_3_blink(void)
+{
+ if (gSprites[gUnknown_02024BE0[gUnknown_02024A60]].invisible == TRUE)
+ dp01_tbl3_exec_completed();
+ else
+ {
+ gUnknown_02024E6D = 1;
+ gSprites[gUnknown_02024BE0[gUnknown_02024A60]].data1 = 0;
+ sub_8047858(gUnknown_02024A60);
+ gUnknown_03004330[gUnknown_02024A60] = bx_blink_t3;
+ }
+}
+
+void sub_8120494(void)
+{
+ dp01_tbl3_exec_completed();
+}
+
+void sub_81204A0(void)
+{
+ s8 pan;
+
+ if (battle_side_get_owner(gUnknown_02024A60) == 0)
+ pan = -64;
+ else
+ pan = 63;
+ PlaySE12WithPanning(gUnknown_02023A60[gUnknown_02024A60][1] | (gUnknown_02023A60[gUnknown_02024A60][2] << 8), pan);
+ dp01_tbl3_exec_completed();
+}
+
+void sub_81204E4(void)
+{
+ PlayFanfare(gUnknown_02023A60[gUnknown_02024A60][1] | (gUnknown_02023A60[gUnknown_02024A60][2] << 8));
+ dp01_tbl3_exec_completed();
+}
+
+void sub_8120514(void)
+{
+ PlayCry3(
+ GetMonData(&gPlayerParty[gUnknown_02024A6A[gUnknown_02024A60]], MON_DATA_SPECIES),
+ -25, 5);
+ dp01_tbl3_exec_completed();
+}
+
+void dp01t_2E_3_battle_intro(void)
+{
+ sub_80E43C0(gUnknown_02023A60[gUnknown_02024A60][1]);
+ gUnknown_02024DE8 |= 1;
+ dp01_tbl3_exec_completed();
+}
+
+void sub_8120588(void)
+{
+ u8 r4;
+ u8 taskId;
+
+ oamt_add_pos2_onto_pos1(&gSprites[gUnknown_02024BE0[gUnknown_02024A60]]);
+ gSprites[gUnknown_02024BE0[gUnknown_02024A60]].data0 = 50;
+ gSprites[gUnknown_02024BE0[gUnknown_02024A60]].data2 = -40;
+ gSprites[gUnknown_02024BE0[gUnknown_02024A60]].data4 = gSprites[gUnknown_02024BE0[gUnknown_02024A60]].pos1.y;
+ gSprites[gUnknown_02024BE0[gUnknown_02024A60]].callback = sub_8078B34;
+ gSprites[gUnknown_02024BE0[gUnknown_02024A60]].data5 = gUnknown_02024A60;
+ oamt_set_x3A_32(&gSprites[gUnknown_02024BE0[gUnknown_02024A60]], sub_8030E38);
+ StartSpriteAnim(&gSprites[gUnknown_02024BE0[gUnknown_02024A60]], 1);
+ r4 = AllocSpritePalette(0xD6F9);
+ LoadCompressedPalette(
+ gTrainerBackPicPaletteTable[gLinkPlayers[sub_803FC34(gUnknown_02024A60)].gender].data,
+ 0x100 + r4 * 16, 0x20);
+ gSprites[gUnknown_02024BE0[gUnknown_02024A60]].oam.paletteNum = r4;
+ taskId = CreateTask(sub_812071C, 5);
+ gTasks[taskId].data[0] = gUnknown_02024A60;
+ if (ewram17810[gUnknown_02024A60].unk0_0)
+ gTasks[gUnknown_02024E68[gUnknown_02024A60]].func = sub_8044CA0;
+ ewram17840.unk9 |= 1;
+ gUnknown_03004330[gUnknown_02024A60] = nullsub_74;
+}
+
+void sub_812071C(u8 taskId)
+{
+ u8 r9;
+
+ if (gTasks[taskId].data[1] < 24)
+ {
+ gTasks[taskId].data[1]++;
+ return;
+ }
+
+ r9 = gUnknown_02024A60;
+ gUnknown_02024A60 = gTasks[taskId].data[0];
+ if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI))
+ {
+ gUnknown_02023A60[gUnknown_02024A60][1] = gUnknown_02024A6A[gUnknown_02024A60];
+ sub_811F864(gUnknown_02024A60, 0);
+ }
+ else
+ {
+ gUnknown_02023A60[gUnknown_02024A60][1] = gUnknown_02024A6A[gUnknown_02024A60];
+ sub_811F864(gUnknown_02024A60, 0);
+ gUnknown_02024A60 ^= 2;
+ gUnknown_02023A60[gUnknown_02024A60][1] = gUnknown_02024A6A[gUnknown_02024A60];
+ sub_80318FC(&gPlayerParty[gUnknown_02024A6A[gUnknown_02024A60]], gUnknown_02024A60);
+ sub_811F864(gUnknown_02024A60, 0);
+ gUnknown_02024A60 ^= 2;
+ }
+ gUnknown_03004330[gUnknown_02024A60] = sub_811DCA0;
+ gUnknown_02024A60 = r9;
+ DestroyTask(taskId);
+}
+
+void dp01t_30_3_80EB11C(void)
+{
+ if (gUnknown_02023A60[gUnknown_02024A60][1] != 0 && battle_side_get_owner(gUnknown_02024A60) == 0)
+ {
+ dp01_tbl3_exec_completed();
+ return;
+ }
+
+ ewram17810[gUnknown_02024A60].unk0_0 = 1;
+ gUnknown_02024E68[gUnknown_02024A60] = sub_8044804(
+ gUnknown_02024A60,
+ (struct BattleInterfaceStruct2 *)&gUnknown_02023A60[gUnknown_02024A60][4],
+ gUnknown_02023A60[gUnknown_02024A60][1],
+ gUnknown_02023A60[gUnknown_02024A60][2]);
+ ewram17810[gUnknown_02024A60].unk5 = 0;
+ if (gUnknown_02023A60[gUnknown_02024A60][2] != 0)
+ ewram17810[gUnknown_02024A60].unk5 = 0x5D;
+ gUnknown_03004330[gUnknown_02024A60] = sub_81208E0;
+}
+
+void sub_81208E0(void)
+{
+ if (ewram17810[gUnknown_02024A60].unk5++ >= 93)
+ {
+ ewram17810[gUnknown_02024A60].unk5 = 0;
+ dp01_tbl3_exec_completed();
+ }
+}
+
+void sub_8120920(void)
+{
+ if (ewram17810[gUnknown_02024A60].unk0_0)
+ gTasks[gUnknown_02024E68[gUnknown_02024A60]].func = sub_8044CA0;
+ dp01_tbl3_exec_completed();
+}
+
+void sub_812096C(void)
+{
+ dp01_tbl3_exec_completed();
+}
+
+void sub_8120978(void)
+{
+ if (sub_8078874(gUnknown_02024A60) != 0)
+ {
+ gSprites[gUnknown_02024BE0[gUnknown_02024A60]].invisible = gUnknown_02023A60[gUnknown_02024A60][1];
+ sub_8031F88(gUnknown_02024A60);
+ }
+ dp01_tbl3_exec_completed();
+}
+
+void sub_81209D8(void)
+{
+ if (mplay_80342A4(gUnknown_02024A60) == 0)
+ {
+ u8 r3 = gUnknown_02023A60[gUnknown_02024A60][1];
+ u16 r4 = gUnknown_02023A60[gUnknown_02024A60][2] | (gUnknown_02023A60[gUnknown_02024A60][3] << 8);
+ u8 var = gUnknown_02024A60;
+
+ if (move_anim_start_t3(var, var, var, r3, r4) != 0)
+ dp01_tbl3_exec_completed();
+ else
+ gUnknown_03004330[gUnknown_02024A60] = sub_811E3B8;
+ }
+}
+
+void sub_8120A40(void)
+{
+ dp01_tbl3_exec_completed();
+}
+
+void sub_8120A4C(void)
+{
+ dp01_tbl3_exec_completed();
+}
+
+void sub_8120A58(void)
+{
+ gUnknown_02024D26 = gUnknown_02023A60[gUnknown_02024A60][1];
+ FadeOutMapMusic(5);
+ BeginFastPaletteFade(3);
+ dp01_tbl3_exec_completed();
+ gUnknown_03004330[gUnknown_02024A60] = sub_811E29C;
+}
+
+void nullsub_75(void)
+{
+}
diff --git a/src/battle_ai.c b/src/battle_ai.c
index f10c6a013..dbd926000 100644
--- a/src/battle_ai.c
+++ b/src/battle_ai.c
@@ -269,7 +269,7 @@ void BattleAI_HandleItemUseBeforeAISetup(void)
s32 i;
u8 *data = (u8 *)UNK_2016A00_STRUCT;
- for (i = 0; (u32)i < sizeof(struct UnknownStruct1); i++)
+ for (i = 0; (u32)i < sizeof(struct UnkBattleStruct1); i++)
data[i] = 0;
if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER)