diff options
author | scnorton <scnorton@biociphers.org> | 2017-06-13 10:18:59 -0400 |
---|---|---|
committer | scnorton <scnorton@biociphers.org> | 2017-06-13 10:18:59 -0400 |
commit | 71f813e6e21e6ad5ec84b497cbb123b521979b92 (patch) | |
tree | ab2f61b73bc57e6a87d950b53eb652fe92225e1f | |
parent | dc79b94bb32c758253aba698115b60cb5a683266 (diff) | |
parent | e09e1da6c252e17cf6db429ad142b05dbf156548 (diff) |
Merge branch 'master' of github.com:pret/pokeruby
-rw-r--r-- | asm/battle_811DA74.s | 3678 | ||||
-rw-r--r-- | include/battle.h | 10 | ||||
-rw-r--r-- | include/songs.h | 34 | ||||
-rw-r--r-- | ld_script.txt | 1 | ||||
-rw-r--r-- | src/battle_2.c | 2 | ||||
-rw-r--r-- | src/battle_811DA74.c | 986 | ||||
-rw-r--r-- | src/battle_ai.c | 2 |
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) |