mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-06 22:28:44 -05:00
13888 lines
248 KiB
ArmAsm
13888 lines
248 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_800FD9C
|
|
sub_800FD9C: @ 800FD9C
|
|
push {r4,lr}
|
|
bl MoveSaveBlocks_ResetHeap
|
|
bl sub_802E03C
|
|
bl AllocateBattleSpritesData
|
|
bl AllocateMonSpritesGfx
|
|
ldr r4, _0800FDCC @ =gBattleTypeFlags
|
|
ldr r0, [r4]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0800FDD8
|
|
bl sub_800D230
|
|
ldr r0, _0800FDD0 @ =sub_80109C8
|
|
bl SetMainCallback2
|
|
ldr r1, _0800FDD4 @ =gUnknown_2023E82
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
b _0800FE1C
|
|
.align 2, 0
|
|
_0800FDCC: .4byte gBattleTypeFlags
|
|
_0800FDD0: .4byte sub_80109C8
|
|
_0800FDD4: .4byte gUnknown_2023E82
|
|
_0800FDD8:
|
|
bl sub_800FE24
|
|
ldr r1, [r4]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0800FE1C
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0800FE06
|
|
movs r0, 0x1
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0800FDFE
|
|
movs r0, 0x19
|
|
bl sub_812B1F0
|
|
b _0800FE1C
|
|
_0800FDFE:
|
|
movs r0, 0x18
|
|
bl sub_812B1F0
|
|
b _0800FE1C
|
|
_0800FE06:
|
|
movs r0, 0x80
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0800FE16
|
|
movs r0, 0x1A
|
|
bl sub_812B1F0
|
|
b _0800FE1C
|
|
_0800FE16:
|
|
movs r0, 0x17
|
|
bl sub_812B1F0
|
|
_0800FE1C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_800FD9C
|
|
|
|
thumb_func_start sub_800FE24
|
|
sub_800FE24: @ 800FE24
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
movs r0, 0
|
|
bl SetHBlankCallback
|
|
movs r0, 0
|
|
bl SetVBlankCallback
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r1, 0xC0
|
|
lsls r1, 19
|
|
ldr r2, _0800FF28 @ =0x05006000
|
|
mov r0, sp
|
|
bl CpuSet
|
|
movs r0, 0x4C
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x40
|
|
movs r1, 0xF0
|
|
bl SetGpuReg
|
|
ldr r4, _0800FF2C @ =0x00005051
|
|
movs r0, 0x44
|
|
adds r1, r4, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x48
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x4A
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
ldr r1, _0800FF30 @ =gUnknown_2022984
|
|
movs r0, 0xF0
|
|
strh r0, [r1]
|
|
ldr r0, _0800FF34 @ =gUnknown_2022986
|
|
strh r4, [r0]
|
|
bl dp12_8087EA4
|
|
ldr r0, _0800FF38 @ =gUnknown_2038700
|
|
movs r3, 0xF0
|
|
movs r1, 0xF0
|
|
lsls r1, 3
|
|
adds r2, r0, r1
|
|
movs r1, 0x4F
|
|
_0800FE88:
|
|
strh r3, [r0]
|
|
strh r3, [r2]
|
|
adds r2, 0x2
|
|
adds r0, 0x2
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bge _0800FE88
|
|
movs r1, 0x50
|
|
ldr r4, _0800FF3C @ =gUnknown_824EFE4
|
|
ldr r0, _0800FF38 @ =gUnknown_2038700
|
|
ldr r3, _0800FF40 @ =0x0000ff10
|
|
movs r5, 0x82
|
|
lsls r5, 4
|
|
adds r2, r0, r5
|
|
adds r0, 0xA0
|
|
_0800FEA6:
|
|
strh r3, [r0]
|
|
strh r3, [r2]
|
|
adds r2, 0x2
|
|
adds r0, 0x2
|
|
adds r1, 0x1
|
|
cmp r1, 0x9F
|
|
ble _0800FEA6
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, 0x4]
|
|
ldr r2, [r4, 0x8]
|
|
bl sub_8087EE4
|
|
bl ResetPaletteFade
|
|
ldr r0, _0800FF44 @ =gUnknown_2022974
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, _0800FF48 @ =gUnknown_2022976
|
|
strh r1, [r0]
|
|
ldr r0, _0800FF4C @ =gUnknown_2022978
|
|
strh r1, [r0]
|
|
ldr r0, _0800FF50 @ =gUnknown_202297A
|
|
strh r1, [r0]
|
|
ldr r0, _0800FF54 @ =gUnknown_202297C
|
|
strh r1, [r0]
|
|
ldr r0, _0800FF58 @ =gUnknown_202297E
|
|
strh r1, [r0]
|
|
ldr r0, _0800FF5C @ =gUnknown_2022980
|
|
strh r1, [r0]
|
|
ldr r0, _0800FF60 @ =gUnknown_2022982
|
|
strh r1, [r0]
|
|
bl sub_807FC5C
|
|
ldr r1, _0800FF64 @ =gUnknown_2022B50
|
|
strb r0, [r1]
|
|
bl sub_800F34C
|
|
bl LoadBattleTextboxAndBackground
|
|
bl ResetSpriteData
|
|
bl ResetTasks
|
|
bl sub_800FAE0
|
|
bl FreeAllSpritePalettes
|
|
ldr r1, _0800FF68 @ =gReservedSpritePaletteCount
|
|
movs r0, 0x4
|
|
strb r0, [r1]
|
|
ldr r0, _0800FF6C @ =sub_80116F4
|
|
bl SetVBlankCallback
|
|
bl sub_800D278
|
|
ldr r0, _0800FF70 @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0800FF78
|
|
ldr r0, _0800FF74 @ =sub_8010BA0
|
|
bl SetMainCallback2
|
|
b _0800FF7E
|
|
.align 2, 0
|
|
_0800FF28: .4byte 0x05006000
|
|
_0800FF2C: .4byte 0x00005051
|
|
_0800FF30: .4byte gUnknown_2022984
|
|
_0800FF34: .4byte gUnknown_2022986
|
|
_0800FF38: .4byte gUnknown_2038700
|
|
_0800FF3C: .4byte gUnknown_824EFE4
|
|
_0800FF40: .4byte 0x0000ff10
|
|
_0800FF44: .4byte gUnknown_2022974
|
|
_0800FF48: .4byte gUnknown_2022976
|
|
_0800FF4C: .4byte gUnknown_2022978
|
|
_0800FF50: .4byte gUnknown_202297A
|
|
_0800FF54: .4byte gUnknown_202297C
|
|
_0800FF58: .4byte gUnknown_202297E
|
|
_0800FF5C: .4byte gUnknown_2022980
|
|
_0800FF60: .4byte gUnknown_2022982
|
|
_0800FF64: .4byte gUnknown_2022B50
|
|
_0800FF68: .4byte gReservedSpritePaletteCount
|
|
_0800FF6C: .4byte sub_80116F4
|
|
_0800FF70: .4byte gBattleTypeFlags
|
|
_0800FF74: .4byte sub_8010BA0
|
|
_0800FF78:
|
|
ldr r0, _0800FFCC @ =sub_8010508
|
|
bl SetMainCallback2
|
|
_0800FF7E:
|
|
ldr r0, _0800FFD0 @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0800FF98
|
|
ldr r0, _0800FFD4 @ =gEnemyParty
|
|
ldr r1, _0800FFD8 @ =gTrainerBattleOpponent_A
|
|
ldrh r1, [r1]
|
|
bl sub_80112E0
|
|
bl SetWildMonHeldItem
|
|
_0800FF98:
|
|
ldr r0, _0800FFDC @ =gMain
|
|
ldr r1, _0800FFE0 @ =0x00000439
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r2, 0x2
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldr r4, _0800FFE4 @ =gPlayerParty
|
|
movs r0, 0xFA
|
|
lsls r0, 1
|
|
adds r5, r4, r0
|
|
_0800FFAE:
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
bl AdjustFriendship
|
|
adds r4, 0x64
|
|
cmp r4, r5
|
|
ble _0800FFAE
|
|
movs r1, 0
|
|
ldr r0, _0800FFE8 @ =gUnknown_2023E82
|
|
strb r1, [r0]
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0800FFCC: .4byte sub_8010508
|
|
_0800FFD0: .4byte gBattleTypeFlags
|
|
_0800FFD4: .4byte gEnemyParty
|
|
_0800FFD8: .4byte gTrainerBattleOpponent_A
|
|
_0800FFDC: .4byte gMain
|
|
_0800FFE0: .4byte 0x00000439
|
|
_0800FFE4: .4byte gPlayerParty
|
|
_0800FFE8: .4byte gUnknown_2023E82
|
|
thumb_func_end sub_800FE24
|
|
|
|
thumb_func_start sub_800FFEC
|
|
sub_800FFEC: @ 800FFEC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
movs r6, 0
|
|
mov r9, r6
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
mov r10, r0
|
|
mov r8, r6
|
|
_08010002:
|
|
movs r0, 0x64
|
|
mov r4, r9
|
|
muls r4, r0
|
|
ldr r0, _080100B0 @ =gPlayerParty
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0x37
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
cmp r5, 0
|
|
beq _0801007E
|
|
cmp r5, r10
|
|
beq _0801004A
|
|
cmp r7, 0
|
|
beq _0801004A
|
|
cmp r1, 0
|
|
bne _0801004A
|
|
movs r0, 0x1
|
|
mov r2, r8
|
|
lsls r0, r2
|
|
orrs r6, r0
|
|
lsls r0, r6, 16
|
|
lsrs r6, r0, 16
|
|
_0801004A:
|
|
cmp r5, 0
|
|
beq _0801007E
|
|
cmp r7, 0
|
|
beq _08010066
|
|
cmp r5, r10
|
|
beq _0801005A
|
|
cmp r1, 0
|
|
beq _08010066
|
|
_0801005A:
|
|
movs r0, 0x2
|
|
mov r1, r8
|
|
lsls r0, r1
|
|
orrs r6, r0
|
|
lsls r0, r6, 16
|
|
lsrs r6, r0, 16
|
|
_08010066:
|
|
cmp r5, 0
|
|
beq _0801007E
|
|
cmp r5, r10
|
|
beq _0801007E
|
|
cmp r7, 0
|
|
bne _0801007E
|
|
movs r0, 0x3
|
|
mov r2, r8
|
|
lsls r0, r2
|
|
orrs r6, r0
|
|
lsls r0, r6, 16
|
|
lsrs r6, r0, 16
|
|
_0801007E:
|
|
movs r0, 0x2
|
|
add r8, r0
|
|
movs r1, 0x1
|
|
add r9, r1
|
|
mov r2, r9
|
|
cmp r2, 0x5
|
|
ble _08010002
|
|
ldr r1, _080100B4 @ =gBattleStruct
|
|
ldr r0, [r1]
|
|
movs r2, 0xC3
|
|
lsls r2, 1
|
|
adds r0, r2
|
|
strb r6, [r0]
|
|
ldr r0, [r1]
|
|
adds r2, 0x1
|
|
adds r1, r0, r2
|
|
lsrs r0, r6, 8
|
|
strb r0, [r1]
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080100B0: .4byte gPlayerParty
|
|
_080100B4: .4byte gBattleStruct
|
|
thumb_func_end sub_800FFEC
|
|
|
|
thumb_func_start sub_80100B8
|
|
sub_80100B8: @ 80100B8
|
|
push {r4-r7,lr}
|
|
ldr r0, _08010120 @ =gBattleStruct
|
|
ldr r5, [r0]
|
|
movs r0, 0xC4
|
|
lsls r0, 1
|
|
adds r4, r5, r0
|
|
bl IsEnigmaBerryValid
|
|
cmp r0, 0x1
|
|
bne _08010134
|
|
movs r2, 0
|
|
ldr r7, _08010124 @ =gSaveBlock1Ptr
|
|
movs r1, 0xC8
|
|
lsls r1, 1
|
|
adds r5, r1
|
|
adds r6, r7, 0
|
|
ldr r3, _08010128 @ =0x000030ec
|
|
_080100DA:
|
|
adds r0, r4, r2
|
|
ldr r1, [r6]
|
|
adds r1, r3
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x5
|
|
ble _080100DA
|
|
adds r1, r4, r2
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
movs r2, 0
|
|
adds r3, r5, 0
|
|
ldr r6, _08010124 @ =gSaveBlock1Ptr
|
|
ldr r5, _0801012C @ =0x00003108
|
|
_080100FA:
|
|
adds r0, r3, r2
|
|
ldr r1, [r6]
|
|
adds r1, r5
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x11
|
|
ble _080100FA
|
|
ldr r0, [r7]
|
|
ldr r1, _08010130 @ =0x0000311a
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r4, 0x7]
|
|
ldr r0, [r7]
|
|
adds r1, 0x1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
b _08010174
|
|
.align 2, 0
|
|
_08010120: .4byte gBattleStruct
|
|
_08010124: .4byte gSaveBlock1Ptr
|
|
_08010128: .4byte 0x000030ec
|
|
_0801012C: .4byte 0x00003108
|
|
_08010130: .4byte 0x0000311a
|
|
_08010134:
|
|
movs r0, 0xAF
|
|
bl ItemIdToBerryType
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_809C8A0
|
|
adds r3, r0, 0
|
|
movs r2, 0
|
|
movs r0, 0xC8
|
|
lsls r0, 1
|
|
adds r5, r0
|
|
_0801014C:
|
|
adds r0, r4, r2
|
|
adds r1, r3, r2
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x5
|
|
ble _0801014C
|
|
adds r1, r4, r2
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
movs r2, 0
|
|
adds r1, r0, 0
|
|
adds r1, 0x11
|
|
_08010168:
|
|
strb r2, [r1]
|
|
subs r1, 0x1
|
|
cmp r1, r0
|
|
bge _08010168
|
|
movs r0, 0
|
|
strb r0, [r4, 0x7]
|
|
_08010174:
|
|
strb r0, [r4, 0x1A]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80100B8
|
|
|
|
thumb_func_start sub_801017C
|
|
sub_801017C: @ 801017C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r0, _08010234 @ =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08010194
|
|
b _080102C0
|
|
_08010194:
|
|
bl IsEnigmaBerryValid
|
|
cmp r0, 0x1
|
|
bne _08010250
|
|
movs r5, 0
|
|
ldr r3, _08010238 @ =gEnigmaBerries
|
|
ldr r0, _0801023C @ =gSaveBlock1Ptr
|
|
mov r8, r0
|
|
adds r6, r3, 0
|
|
mov r4, r8
|
|
ldr r2, _08010240 @ =0x000030ec
|
|
adds r7, r3, 0
|
|
adds r7, 0x38
|
|
_080101AE:
|
|
adds r1, r5, r6
|
|
ldr r0, [r4]
|
|
adds r0, r2
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r1, r5, r7
|
|
ldr r0, [r4]
|
|
adds r0, r2
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r5, 0x1
|
|
cmp r5, 0x5
|
|
ble _080101AE
|
|
adds r1, r5, r3
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
adds r0, r3, 0
|
|
adds r0, 0x38
|
|
adds r0, r5, r0
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
strb r1, [r0]
|
|
movs r5, 0
|
|
adds r7, r3, 0
|
|
adds r7, 0x8
|
|
ldr r4, _0801023C @ =gSaveBlock1Ptr
|
|
ldr r2, _08010244 @ =0x00003108
|
|
adds r6, r3, 0
|
|
adds r6, 0x40
|
|
_080101EC:
|
|
adds r1, r5, r7
|
|
ldr r0, [r4]
|
|
adds r0, r2
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r1, r5, r6
|
|
ldr r0, [r4]
|
|
adds r0, r2
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r5, 0x1
|
|
cmp r5, 0x11
|
|
ble _080101EC
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
ldr r2, _08010248 @ =0x0000311a
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
strb r1, [r3, 0x7]
|
|
ldrb r0, [r0]
|
|
adds r1, r3, 0
|
|
adds r1, 0x3F
|
|
strb r0, [r1]
|
|
mov r4, r8
|
|
ldr r0, [r4]
|
|
ldr r1, _0801024C @ =0x0000311b
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
strb r1, [r3, 0x1A]
|
|
ldrb r1, [r0]
|
|
adds r0, r3, 0
|
|
adds r0, 0x52
|
|
strb r1, [r0]
|
|
b _080103FC
|
|
.align 2, 0
|
|
_08010234: .4byte gBattleTypeFlags
|
|
_08010238: .4byte gEnigmaBerries
|
|
_0801023C: .4byte gSaveBlock1Ptr
|
|
_08010240: .4byte 0x000030ec
|
|
_08010244: .4byte 0x00003108
|
|
_08010248: .4byte 0x0000311a
|
|
_0801024C: .4byte 0x0000311b
|
|
_08010250:
|
|
movs r0, 0xAF
|
|
bl ItemIdToBerryType
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_809C8A0
|
|
adds r6, r0, 0
|
|
movs r5, 0
|
|
ldr r4, _080102BC @ =gEnigmaBerries
|
|
adds r7, r4, 0
|
|
adds r7, 0x38
|
|
adds r3, r4, 0
|
|
_0801026A:
|
|
adds r1, r5, r4
|
|
adds r2, r6, r5
|
|
ldrb r0, [r2]
|
|
strb r0, [r1]
|
|
adds r1, r5, r7
|
|
ldrb r0, [r2]
|
|
strb r0, [r1]
|
|
adds r5, 0x1
|
|
cmp r5, 0x5
|
|
ble _0801026A
|
|
adds r1, r5, r3
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
adds r0, r3, 0
|
|
adds r0, 0x38
|
|
adds r0, r5, r0
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
strb r1, [r0]
|
|
movs r5, 0
|
|
adds r4, r3, 0
|
|
adds r4, 0x8
|
|
movs r1, 0
|
|
adds r2, r3, 0
|
|
adds r2, 0x40
|
|
_0801029C:
|
|
adds r0, r5, r4
|
|
strb r1, [r0]
|
|
adds r0, r5, r2
|
|
strb r1, [r0]
|
|
adds r5, 0x1
|
|
cmp r5, 0x11
|
|
ble _0801029C
|
|
movs r1, 0
|
|
strb r1, [r3, 0x7]
|
|
adds r0, r3, 0
|
|
adds r0, 0x3F
|
|
strb r1, [r0]
|
|
strb r1, [r3, 0x1A]
|
|
adds r0, 0x13
|
|
strb r1, [r0]
|
|
b _080103FC
|
|
.align 2, 0
|
|
_080102BC: .4byte gEnigmaBerries
|
|
_080102C0:
|
|
movs r0, 0x40
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0801034C
|
|
movs r5, 0
|
|
ldr r3, _08010340 @ =gEnigmaBerries
|
|
ldr r2, _08010344 @ =gLinkPlayers
|
|
mov r9, r2
|
|
adds r6, r3, 0
|
|
movs r4, 0x8
|
|
adds r4, r6
|
|
mov r8, r4
|
|
_080102D8:
|
|
lsls r0, r5, 8
|
|
ldr r1, _08010348 @ =gUnknown_202211C
|
|
adds r7, r0, r1
|
|
lsls r0, r5, 3
|
|
subs r0, r5
|
|
lsls r0, 2
|
|
add r0, r9
|
|
ldrb r3, [r0, 0x18]
|
|
movs r4, 0
|
|
adds r5, 0x1
|
|
mov r10, r5
|
|
lsls r1, r3, 3
|
|
subs r0, r1, r3
|
|
adds r5, r1, 0
|
|
lsls r0, 2
|
|
adds r1, r0, r6
|
|
_080102F8:
|
|
adds r0, r7, r4
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r1, 0x1
|
|
adds r4, 0x1
|
|
cmp r4, 0x5
|
|
ble _080102F8
|
|
subs r0, r5, r3
|
|
lsls r0, 2
|
|
adds r1, r4, r0
|
|
adds r1, r6
|
|
movs r2, 0xFF
|
|
strb r2, [r1]
|
|
movs r4, 0
|
|
mov r2, r8
|
|
adds r1, r0, r2
|
|
adds r2, r7, 0
|
|
adds r2, 0x8
|
|
_0801031C:
|
|
adds r0, r2, r4
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r1, 0x1
|
|
adds r4, 0x1
|
|
cmp r4, 0x11
|
|
ble _0801031C
|
|
subs r0, r5, r3
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldrb r1, [r7, 0x7]
|
|
strb r1, [r0, 0x7]
|
|
ldrb r1, [r7, 0x1A]
|
|
strb r1, [r0, 0x1A]
|
|
mov r5, r10
|
|
cmp r5, 0x3
|
|
ble _080102D8
|
|
b _080103FC
|
|
.align 2, 0
|
|
_08010340: .4byte gEnigmaBerries
|
|
_08010344: .4byte gLinkPlayers
|
|
_08010348: .4byte gUnknown_202211C
|
|
_0801034C:
|
|
movs r5, 0
|
|
ldr r4, _0801040C @ =gEnigmaBerries
|
|
mov r9, r4
|
|
_08010352:
|
|
lsls r0, r5, 8
|
|
ldr r1, _08010410 @ =gUnknown_202211C
|
|
adds r7, r0, r1
|
|
movs r4, 0
|
|
adds r2, r5, 0x1
|
|
mov r10, r2
|
|
lsls r0, r5, 3
|
|
mov r8, r0
|
|
adds r1, r5, 0x2
|
|
mov r12, r1
|
|
subs r1, r0, r5
|
|
mov r2, r12
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
mov r2, r9
|
|
adds r3, r0, r2
|
|
lsls r1, 2
|
|
adds r2, r1, r2
|
|
_08010378:
|
|
adds r0, r7, r4
|
|
ldrb r1, [r0]
|
|
strb r1, [r2]
|
|
ldrb r0, [r0]
|
|
strb r0, [r3]
|
|
adds r3, 0x1
|
|
adds r2, 0x1
|
|
adds r4, 0x1
|
|
cmp r4, 0x5
|
|
ble _08010378
|
|
mov r0, r8
|
|
subs r3, r0, r5
|
|
lsls r3, 2
|
|
adds r1, r4, r3
|
|
add r1, r9
|
|
ldrb r0, [r1]
|
|
movs r2, 0xFF
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
mov r0, r12
|
|
lsls r2, r0, 3
|
|
subs r2, r0
|
|
lsls r2, 2
|
|
adds r1, r4, r2
|
|
add r1, r9
|
|
ldrb r0, [r1]
|
|
movs r4, 0xFF
|
|
orrs r0, r4
|
|
strb r0, [r1]
|
|
movs r4, 0
|
|
ldr r0, _0801040C @ =gEnigmaBerries
|
|
adds r0, 0x8
|
|
adds r2, r0
|
|
adds r3, r0
|
|
adds r6, r7, 0
|
|
adds r6, 0x8
|
|
_080103C0:
|
|
adds r0, r6, r4
|
|
ldrb r1, [r0]
|
|
strb r1, [r3]
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
adds r2, 0x1
|
|
adds r3, 0x1
|
|
adds r4, 0x1
|
|
cmp r4, 0x11
|
|
ble _080103C0
|
|
mov r0, r8
|
|
subs r2, r0, r5
|
|
lsls r2, 2
|
|
add r2, r9
|
|
ldrb r0, [r7, 0x7]
|
|
strb r0, [r2, 0x7]
|
|
mov r1, r12
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
add r0, r9
|
|
ldrb r1, [r7, 0x7]
|
|
strb r1, [r0, 0x7]
|
|
ldrb r1, [r7, 0x1A]
|
|
strb r1, [r2, 0x1A]
|
|
ldrb r1, [r7, 0x1A]
|
|
strb r1, [r0, 0x1A]
|
|
mov r5, r10
|
|
cmp r5, 0x1
|
|
ble _08010352
|
|
_080103FC:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0801040C: .4byte gEnigmaBerries
|
|
_08010410: .4byte gUnknown_202211C
|
|
thumb_func_end sub_801017C
|
|
|
|
thumb_func_start sub_8010414
|
|
sub_8010414: @ 8010414
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r1, 24
|
|
lsrs r3, r1, 24
|
|
movs r6, 0
|
|
ldr r0, _08010440 @ =gUnknown_2022118
|
|
ldrh r2, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
mov r12, r0
|
|
cmp r2, r1
|
|
bne _08010458
|
|
cmp r3, 0
|
|
bne _08010448
|
|
ldr r0, _08010444 @ =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r2, 0xC
|
|
b _0801044E
|
|
.align 2, 0
|
|
_08010440: .4byte gUnknown_2022118
|
|
_08010444: .4byte gBattleTypeFlags
|
|
_08010448:
|
|
ldr r0, _0801048C @ =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r2, 0x8
|
|
_0801044E:
|
|
orrs r1, r2
|
|
str r1, [r0]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_08010458:
|
|
cmp r6, 0
|
|
bne _080104FC
|
|
movs r2, 0
|
|
cmp r2, r4
|
|
bge _0801047C
|
|
ldr r1, _08010490 @ =gUnknown_2022118
|
|
mov r8, r1
|
|
movs r5, 0x80
|
|
lsls r5, 1
|
|
_0801046A:
|
|
adds r1, r5
|
|
adds r2, 0x1
|
|
cmp r2, r4
|
|
bge _0801047C
|
|
mov r7, r8
|
|
ldrh r0, [r7]
|
|
ldrh r7, [r1]
|
|
cmp r0, r7
|
|
beq _0801046A
|
|
_0801047C:
|
|
cmp r2, r4
|
|
bne _080104A4
|
|
cmp r3, 0
|
|
bne _08010494
|
|
ldr r0, _0801048C @ =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r2, 0xC
|
|
b _0801049A
|
|
.align 2, 0
|
|
_0801048C: .4byte gBattleTypeFlags
|
|
_08010490: .4byte gUnknown_2022118
|
|
_08010494:
|
|
ldr r0, _080104EC @ =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r2, 0x8
|
|
_0801049A:
|
|
orrs r1, r2
|
|
str r1, [r0]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_080104A4:
|
|
cmp r6, 0
|
|
bne _080104FC
|
|
movs r2, 0
|
|
ldr r5, _080104EC @ =gBattleTypeFlags
|
|
cmp r2, r4
|
|
bge _080104E2
|
|
mov r0, r12
|
|
ldrh r1, [r0]
|
|
ldr r0, _080104F0 @ =0x00000201
|
|
cmp r1, r0
|
|
beq _080104DA
|
|
_080104BA:
|
|
lsls r0, r2, 8
|
|
add r0, r12
|
|
ldrh r0, [r0]
|
|
ldr r1, _080104F0 @ =0x00000201
|
|
cmp r0, r1
|
|
bls _080104CA
|
|
cmp r2, r3
|
|
bne _080104E2
|
|
_080104CA:
|
|
adds r2, 0x1
|
|
cmp r2, r4
|
|
bge _080104E2
|
|
lsls r0, r2, 8
|
|
add r0, r12
|
|
ldrh r0, [r0]
|
|
cmp r0, r1
|
|
bne _080104BA
|
|
_080104DA:
|
|
cmp r2, r3
|
|
beq _080104BA
|
|
cmp r2, r3
|
|
bge _080104BA
|
|
_080104E2:
|
|
cmp r2, r4
|
|
bne _080104F4
|
|
ldr r0, [r5]
|
|
movs r1, 0xC
|
|
b _080104F8
|
|
.align 2, 0
|
|
_080104EC: .4byte gBattleTypeFlags
|
|
_080104F0: .4byte 0x00000201
|
|
_080104F4:
|
|
ldr r0, [r5]
|
|
movs r1, 0x8
|
|
_080104F8:
|
|
orrs r0, r1
|
|
str r0, [r5]
|
|
_080104FC:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8010414
|
|
|
|
thumb_func_start sub_8010508
|
|
sub_8010508: @ 8010508
|
|
push {r4-r6,lr}
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, _08010540 @ =gBattleStruct
|
|
ldr r0, [r0]
|
|
adds r0, 0xB5
|
|
strb r4, [r0]
|
|
movs r0, 0x1
|
|
adds r5, r4, 0
|
|
eors r5, r0
|
|
ldr r0, _08010544 @ =gUnknown_2023E82
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x10
|
|
bls _08010536
|
|
b _080108B8
|
|
_08010536:
|
|
lsls r0, 2
|
|
ldr r1, _08010548 @ =_0801054C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08010540: .4byte gBattleStruct
|
|
_08010544: .4byte gUnknown_2023E82
|
|
_08010548: .4byte _0801054C
|
|
.align 2, 0
|
|
_0801054C:
|
|
.4byte _08010590
|
|
.4byte _080105D4
|
|
.4byte _08010670
|
|
.4byte _080106F4
|
|
.4byte _0801071C
|
|
.4byte _08010898
|
|
.4byte _080108A4
|
|
.4byte _0801074C
|
|
.4byte _08010774
|
|
.4byte _08010898
|
|
.4byte _080108A4
|
|
.4byte _080107A4
|
|
.4byte _080107CC
|
|
.4byte _08010898
|
|
.4byte _080108A4
|
|
.4byte _08010834
|
|
.4byte _0801084C
|
|
_08010590:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080105BC
|
|
movs r0, 0
|
|
bl ShowBg
|
|
movs r0, 0x1
|
|
bl ShowBg
|
|
movs r0, 0x2
|
|
bl ShowBg
|
|
movs r0, 0x3
|
|
bl ShowBg
|
|
bl sub_80357C8
|
|
ldr r1, _080105CC @ =gUnknown_2023E82
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_080105BC:
|
|
ldr r0, _080105D0 @ =gUnknown_3003F3C
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080105C6
|
|
b _080108B8
|
|
_080105C6:
|
|
bl sub_80FCEA8
|
|
b _080108B8
|
|
.align 2, 0
|
|
_080105CC: .4byte gUnknown_2023E82
|
|
_080105D0: .4byte gUnknown_3003F3C
|
|
_080105D4:
|
|
ldr r2, _08010640 @ =gBattleTypeFlags
|
|
ldr r1, [r2]
|
|
movs r6, 0x2
|
|
adds r0, r1, 0
|
|
ands r0, r6
|
|
cmp r0, 0
|
|
beq _08010658
|
|
ldr r0, _08010644 @ =gUnknown_3003F64
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080105EC
|
|
b _080108B8
|
|
_080105EC:
|
|
bl sub_800A4BC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0801062A
|
|
ldr r4, _08010648 @ =gBattleStruct
|
|
ldr r0, [r4]
|
|
movs r5, 0xC2
|
|
lsls r5, 1
|
|
adds r0, r5
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
ldr r1, _0801064C @ =0x00000185
|
|
adds r0, r1
|
|
strb r6, [r0]
|
|
bl sub_800FFEC
|
|
bl sub_80100B8
|
|
bl bitmask_all_link_players_but_self
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, [r4]
|
|
adds r1, r5
|
|
movs r2, 0x20
|
|
bl SendBlock
|
|
ldr r0, _08010650 @ =gUnknown_2023E82
|
|
strb r6, [r0]
|
|
_0801062A:
|
|
ldr r0, _08010654 @ =gUnknown_3003F3C
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08010634
|
|
b _080108B8
|
|
_08010634:
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_80FCD74
|
|
b _080108B8
|
|
.align 2, 0
|
|
_08010640: .4byte gBattleTypeFlags
|
|
_08010644: .4byte gUnknown_3003F64
|
|
_08010648: .4byte gBattleStruct
|
|
_0801064C: .4byte 0x00000185
|
|
_08010650: .4byte gUnknown_2023E82
|
|
_08010654: .4byte gUnknown_3003F3C
|
|
_08010658:
|
|
movs r0, 0x4
|
|
orrs r1, r0
|
|
str r1, [r2]
|
|
ldr r1, _0801066C @ =gUnknown_2023E82
|
|
movs r0, 0xF
|
|
strb r0, [r1]
|
|
bl sub_801017C
|
|
b _080108B8
|
|
.align 2, 0
|
|
_0801066C: .4byte gUnknown_2023E82
|
|
_08010670:
|
|
bl GetBlockReceivedStatus
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
cmp r1, 0x3
|
|
beq _0801067E
|
|
b _080108B8
|
|
_0801067E:
|
|
bl ResetBlockReceivedFlags
|
|
movs r0, 0x2
|
|
adds r1, r4, 0
|
|
bl sub_8010414
|
|
bl sub_801017C
|
|
ldr r0, _080106E0 @ =sub_800F6FC
|
|
movs r1, 0
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _080106E4 @ =gTasks
|
|
lsls r2, r0, 2
|
|
adds r2, r0
|
|
lsls r2, 3
|
|
adds r2, r1
|
|
movs r1, 0
|
|
movs r0, 0x87
|
|
lsls r0, 1
|
|
strh r0, [r2, 0xA]
|
|
movs r0, 0x5A
|
|
strh r0, [r2, 0xC]
|
|
strh r1, [r2, 0x12]
|
|
ldr r0, _080106E8 @ =gBattleStruct
|
|
ldr r3, [r0]
|
|
movs r4, 0xC3
|
|
lsls r4, 1
|
|
adds r0, r3, r4
|
|
ldrb r1, [r0]
|
|
adds r4, 0x1
|
|
adds r0, r3, r4
|
|
ldrb r0, [r0]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
strh r1, [r2, 0xE]
|
|
ldr r0, _080106EC @ =gUnknown_2022118
|
|
lsls r1, r5, 8
|
|
adds r0, 0x2
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
strh r0, [r2, 0x10]
|
|
bl sub_8044708
|
|
ldr r1, _080106F0 @ =gUnknown_2023E82
|
|
b _080108B2
|
|
.align 2, 0
|
|
_080106E0: .4byte sub_800F6FC
|
|
_080106E4: .4byte gTasks
|
|
_080106E8: .4byte gBattleStruct
|
|
_080106EC: .4byte gUnknown_2022118
|
|
_080106F0: .4byte gUnknown_2023E82
|
|
_080106F4:
|
|
bl sub_800A4BC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08010700
|
|
b _080108B8
|
|
_08010700:
|
|
bl bitmask_all_link_players_but_self
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _08010714 @ =gPlayerParty
|
|
movs r2, 0xC8
|
|
bl SendBlock
|
|
ldr r1, _08010718 @ =gUnknown_2023E82
|
|
b _080108B2
|
|
.align 2, 0
|
|
_08010714: .4byte gPlayerParty
|
|
_08010718: .4byte gUnknown_2023E82
|
|
_0801071C:
|
|
bl GetBlockReceivedStatus
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
cmp r1, 0x3
|
|
beq _0801072A
|
|
b _080108B8
|
|
_0801072A:
|
|
bl ResetBlockReceivedFlags
|
|
ldr r0, _08010740 @ =gEnemyParty
|
|
lsls r1, r5, 8
|
|
ldr r2, _08010744 @ =gUnknown_2022118
|
|
adds r1, r2
|
|
movs r2, 0xC8
|
|
bl memcpy
|
|
ldr r1, _08010748 @ =gUnknown_2023E82
|
|
b _080108B2
|
|
.align 2, 0
|
|
_08010740: .4byte gEnemyParty
|
|
_08010744: .4byte gUnknown_2022118
|
|
_08010748: .4byte gUnknown_2023E82
|
|
_0801074C:
|
|
bl sub_800A4BC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08010758
|
|
b _080108B8
|
|
_08010758:
|
|
bl bitmask_all_link_players_but_self
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0801076C @ =gUnknown_202434C
|
|
movs r2, 0xC8
|
|
bl SendBlock
|
|
ldr r1, _08010770 @ =gUnknown_2023E82
|
|
b _080108B2
|
|
.align 2, 0
|
|
_0801076C: .4byte gUnknown_202434C
|
|
_08010770: .4byte gUnknown_2023E82
|
|
_08010774:
|
|
bl GetBlockReceivedStatus
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
cmp r1, 0x3
|
|
beq _08010782
|
|
b _080108B8
|
|
_08010782:
|
|
bl ResetBlockReceivedFlags
|
|
ldr r0, _08010798 @ =gUnknown_20240F4
|
|
lsls r1, r5, 8
|
|
ldr r2, _0801079C @ =gUnknown_2022118
|
|
adds r1, r2
|
|
movs r2, 0xC8
|
|
bl memcpy
|
|
ldr r1, _080107A0 @ =gUnknown_2023E82
|
|
b _080108B2
|
|
.align 2, 0
|
|
_08010798: .4byte gUnknown_20240F4
|
|
_0801079C: .4byte gUnknown_2022118
|
|
_080107A0: .4byte gUnknown_2023E82
|
|
_080107A4:
|
|
bl sub_800A4BC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080107B0
|
|
b _080108B8
|
|
_080107B0:
|
|
bl bitmask_all_link_players_but_self
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _080107C4 @ =gUnknown_2024414
|
|
movs r2, 0xC8
|
|
bl SendBlock
|
|
ldr r1, _080107C8 @ =gUnknown_2023E82
|
|
b _080108B2
|
|
.align 2, 0
|
|
_080107C4: .4byte gUnknown_2024414
|
|
_080107C8: .4byte gUnknown_2023E82
|
|
_080107CC:
|
|
bl GetBlockReceivedStatus
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
cmp r1, 0x3
|
|
bne _080108B8
|
|
bl ResetBlockReceivedFlags
|
|
ldr r4, _08010820 @ =gUnknown_20241BC
|
|
lsls r1, r5, 8
|
|
ldr r0, _08010824 @ =gUnknown_2022118
|
|
adds r1, r0
|
|
adds r0, r4, 0
|
|
movs r2, 0xC8
|
|
bl memcpy
|
|
ldr r1, _08010828 @ =0xfffffe70
|
|
adds r0, r4, r1
|
|
bl sub_8011D0C
|
|
ldr r1, _0801082C @ =0xfffffed4
|
|
adds r0, r4, r1
|
|
bl sub_8011D0C
|
|
adds r0, r4, 0
|
|
subs r0, 0xC8
|
|
bl sub_8011D0C
|
|
adds r0, r4, 0
|
|
subs r0, 0x64
|
|
bl sub_8011D0C
|
|
adds r0, r4, 0
|
|
bl sub_8011D0C
|
|
adds r0, r4, 0
|
|
adds r0, 0x64
|
|
bl sub_8011D0C
|
|
ldr r1, _08010830 @ =gUnknown_2023E82
|
|
b _080108B2
|
|
.align 2, 0
|
|
_08010820: .4byte gUnknown_20241BC
|
|
_08010824: .4byte gUnknown_2022118
|
|
_08010828: .4byte 0xfffffe70
|
|
_0801082C: .4byte 0xfffffed4
|
|
_08010830: .4byte gUnknown_2023E82
|
|
_08010834:
|
|
bl sub_800D30C
|
|
ldr r0, _08010848 @ =gUnknown_2023E82
|
|
ldrb r1, [r0]
|
|
adds r1, 0x1
|
|
movs r2, 0
|
|
strb r1, [r0]
|
|
strb r2, [r0, 0x1]
|
|
strb r2, [r0, 0x2]
|
|
b _080108B8
|
|
.align 2, 0
|
|
_08010848: .4byte gUnknown_2023E82
|
|
_0801084C:
|
|
ldr r0, _08010880 @ =gUnknown_2023E83
|
|
adds r1, r0, 0x1
|
|
bl BattleInitAllSprites
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080108B8
|
|
ldr r2, _08010884 @ =gUnknown_3004F80
|
|
ldr r1, _08010888 @ =gMain
|
|
ldr r0, [r1]
|
|
str r0, [r2]
|
|
ldr r0, _0801088C @ =sub_80123E4
|
|
str r0, [r1]
|
|
ldr r0, _08010890 @ =sub_8011100
|
|
bl SetMainCallback2
|
|
ldr r2, _08010894 @ =gBattleTypeFlags
|
|
ldr r1, [r2]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080108B8
|
|
movs r0, 0x20
|
|
orrs r1, r0
|
|
str r1, [r2]
|
|
b _080108B8
|
|
.align 2, 0
|
|
_08010880: .4byte gUnknown_2023E83
|
|
_08010884: .4byte gUnknown_3004F80
|
|
_08010888: .4byte gMain
|
|
_0801088C: .4byte sub_80123E4
|
|
_08010890: .4byte sub_8011100
|
|
_08010894: .4byte gBattleTypeFlags
|
|
_08010898:
|
|
ldr r0, _080108C0 @ =gUnknown_2023E82
|
|
ldrb r1, [r0]
|
|
adds r1, 0x1
|
|
strb r1, [r0]
|
|
movs r1, 0x1
|
|
strb r1, [r0, 0x1]
|
|
_080108A4:
|
|
ldr r1, _080108C0 @ =gUnknown_2023E82
|
|
ldrb r0, [r1, 0x1]
|
|
subs r0, 0x1
|
|
strb r0, [r1, 0x1]
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080108B8
|
|
_080108B2:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_080108B8:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080108C0: .4byte gUnknown_2023E82
|
|
thumb_func_end sub_8010508
|
|
|
|
thumb_func_start sub_80108C4
|
|
sub_80108C4: @ 80108C4
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
movs r0, 0
|
|
mov r8, r0
|
|
ldr r1, _080109BC @ =gUnknown_2022B58
|
|
mov r9, r1
|
|
movs r0, 0x18
|
|
add r0, r9
|
|
mov r10, r0
|
|
_080108DC:
|
|
movs r0, 0x64
|
|
mov r4, r8
|
|
muls r4, r0
|
|
ldr r0, _080109C0 @ =gPlayerParty
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
mov r1, r8
|
|
lsls r5, r1, 5
|
|
mov r1, r9
|
|
adds r6, r5, r1
|
|
strh r0, [r6]
|
|
adds r0, r4, 0
|
|
movs r1, 0xC
|
|
bl GetMonData
|
|
strh r0, [r6, 0x2]
|
|
mov r0, r9
|
|
adds r0, 0x4
|
|
adds r7, r5, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
adds r2, r7, 0
|
|
bl GetMonData
|
|
adds r0, r4, 0
|
|
movs r1, 0x38
|
|
bl GetMonData
|
|
strb r0, [r6, 0xF]
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
strh r0, [r6, 0x10]
|
|
adds r0, r4, 0
|
|
movs r1, 0x3A
|
|
bl GetMonData
|
|
strh r0, [r6, 0x12]
|
|
adds r0, r4, 0
|
|
movs r1, 0x37
|
|
bl GetMonData
|
|
mov r1, r9
|
|
adds r1, 0x14
|
|
adds r1, r5, r1
|
|
str r0, [r1]
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl GetMonData
|
|
add r5, r10
|
|
str r0, [r5]
|
|
adds r0, r4, 0
|
|
bl GetMonGender
|
|
strb r0, [r6, 0x1C]
|
|
adds r0, r7, 0
|
|
bl StripExtCtrlCodes
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
bl GetMonData
|
|
mov r4, r8
|
|
adds r4, 0x1
|
|
cmp r0, 0x1
|
|
beq _08010994
|
|
adds r2, r7, 0
|
|
movs r1, 0
|
|
ldrb r0, [r2]
|
|
cmp r0, 0xFF
|
|
beq _0801097E
|
|
_08010974:
|
|
adds r1, 0x1
|
|
adds r0, r2, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xFF
|
|
bne _08010974
|
|
_0801097E:
|
|
cmp r1, 0x5
|
|
bgt _0801098E
|
|
movs r3, 0
|
|
_08010984:
|
|
adds r0, r2, r1
|
|
strb r3, [r0]
|
|
adds r1, 0x1
|
|
cmp r1, 0x5
|
|
ble _08010984
|
|
_0801098E:
|
|
adds r1, r2, r1
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
_08010994:
|
|
mov r8, r4
|
|
cmp r4, 0x2
|
|
ble _080108DC
|
|
ldr r0, _080109C4 @ =gBattleStruct
|
|
ldr r0, [r0]
|
|
movs r1, 0xC2
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
ldr r1, _080109BC @ =gUnknown_2022B58
|
|
movs r2, 0x60
|
|
bl memcpy
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080109BC: .4byte gUnknown_2022B58
|
|
_080109C0: .4byte gPlayerParty
|
|
_080109C4: .4byte gBattleStruct
|
|
thumb_func_end sub_80108C4
|
|
|
|
thumb_func_start sub_80109C8
|
|
sub_80109C8: @ 80109C8
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r4, _08010A0C @ =gBattleStruct
|
|
ldr r0, [r4]
|
|
adds r0, 0xB5
|
|
strb r6, [r0]
|
|
ldr r0, [r4]
|
|
movs r1, 0xB0
|
|
adds r1, r0
|
|
mov r9, r1
|
|
adds r0, 0xAE
|
|
mov r8, r0
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
ldr r5, _08010A10 @ =gUnknown_2023E82
|
|
ldrb r0, [r5]
|
|
cmp r0, 0x1
|
|
beq _08010A5C
|
|
cmp r0, 0x1
|
|
bgt _08010A14
|
|
cmp r0, 0
|
|
beq _08010A20
|
|
b _08010B82
|
|
.align 2, 0
|
|
_08010A0C: .4byte gBattleStruct
|
|
_08010A10: .4byte gUnknown_2023E82
|
|
_08010A14:
|
|
cmp r0, 0x2
|
|
beq _08010AFC
|
|
cmp r0, 0x3
|
|
bne _08010A1E
|
|
b _08010B2A
|
|
_08010A1E:
|
|
b _08010B82
|
|
_08010A20:
|
|
ldr r0, _08010A58 @ =gUnknown_3003F64
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08010A2A
|
|
b _08010B82
|
|
_08010A2A:
|
|
bl sub_800A4BC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08010A36
|
|
b _08010B82
|
|
_08010A36:
|
|
bl sub_80108C4
|
|
bl bitmask_all_link_players_but_self
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, [r4]
|
|
movs r2, 0xC2
|
|
lsls r2, 1
|
|
adds r1, r2
|
|
movs r2, 0x60
|
|
bl SendBlock
|
|
ldrb r0, [r5]
|
|
adds r0, 0x1
|
|
strb r0, [r5]
|
|
b _08010B82
|
|
.align 2, 0
|
|
_08010A58: .4byte gUnknown_3003F64
|
|
_08010A5C:
|
|
bl GetBlockReceivedStatus
|
|
movs r1, 0xF
|
|
ands r1, r0
|
|
cmp r1, 0xF
|
|
beq _08010A6A
|
|
b _08010B82
|
|
_08010A6A:
|
|
bl ResetBlockReceivedFlags
|
|
movs r4, 0
|
|
lsls r0, r6, 3
|
|
subs r0, r6
|
|
lsls r5, r0, 2
|
|
movs r7, 0
|
|
_08010A78:
|
|
cmp r4, r6
|
|
beq _08010ABA
|
|
ldr r2, _08010A9C @ =gLinkPlayers
|
|
adds r0, r7, r2
|
|
ldrh r1, [r0, 0x18]
|
|
movs r3, 0x1
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08010AA0
|
|
adds r0, r5, r2
|
|
ldrh r1, [r0, 0x18]
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08010AAC
|
|
b _08010ABA
|
|
.align 2, 0
|
|
_08010A9C: .4byte gLinkPlayers
|
|
_08010AA0:
|
|
adds r0, r5, r2
|
|
ldrh r1, [r0, 0x18]
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08010ABA
|
|
_08010AAC:
|
|
lsls r1, r4, 8
|
|
ldr r0, _08010AE4 @ =gUnknown_2022118
|
|
adds r1, r0
|
|
ldr r0, _08010AE8 @ =gUnknown_2022B58
|
|
movs r2, 0x60
|
|
bl memcpy
|
|
_08010ABA:
|
|
adds r7, 0x1C
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _08010A78
|
|
ldr r1, _08010AEC @ =gUnknown_2023E82
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r1, _08010AF0 @ =gMain
|
|
ldr r0, [r1, 0x8]
|
|
mov r2, r9
|
|
str r0, [r2]
|
|
ldr r0, _08010AF4 @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
mov r2, r8
|
|
strh r0, [r2]
|
|
ldr r0, _08010AF8 @ =sub_80109C8
|
|
str r0, [r1, 0x8]
|
|
bl sub_8128198
|
|
b _08010B82
|
|
.align 2, 0
|
|
_08010AE4: .4byte gUnknown_2022118
|
|
_08010AE8: .4byte gUnknown_2022B58
|
|
_08010AEC: .4byte gUnknown_2023E82
|
|
_08010AF0: .4byte gMain
|
|
_08010AF4: .4byte gBattleTypeFlags
|
|
_08010AF8: .4byte sub_80109C8
|
|
_08010AFC:
|
|
ldr r0, _08010B1C @ =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08010B82
|
|
movs r0, 0x3
|
|
strb r0, [r5]
|
|
ldr r0, _08010B20 @ =gUnknown_3003F3C
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08010B24
|
|
bl sub_800AB9C
|
|
b _08010B82
|
|
.align 2, 0
|
|
_08010B1C: .4byte gPaletteFade
|
|
_08010B20: .4byte gUnknown_3003F3C
|
|
_08010B24:
|
|
bl sub_800AAC0
|
|
b _08010B82
|
|
_08010B2A:
|
|
ldr r0, _08010B54 @ =gUnknown_3003F3C
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08010B64
|
|
bl sub_80FA4F8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08010B82
|
|
ldr r1, _08010B58 @ =gBattleTypeFlags
|
|
mov r2, r8
|
|
ldrh r0, [r2]
|
|
str r0, [r1]
|
|
ldr r1, _08010B5C @ =gMain
|
|
mov r2, r9
|
|
ldr r0, [r2]
|
|
str r0, [r1, 0x8]
|
|
ldr r0, _08010B60 @ =sub_800FE24
|
|
bl SetMainCallback2
|
|
b _08010B82
|
|
.align 2, 0
|
|
_08010B54: .4byte gUnknown_3003F3C
|
|
_08010B58: .4byte gBattleTypeFlags
|
|
_08010B5C: .4byte gMain
|
|
_08010B60: .4byte sub_800FE24
|
|
_08010B64:
|
|
ldr r0, _08010B90 @ =gUnknown_3003F64
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08010B82
|
|
ldr r1, _08010B94 @ =gBattleTypeFlags
|
|
mov r2, r8
|
|
ldrh r0, [r2]
|
|
str r0, [r1]
|
|
ldr r1, _08010B98 @ =gMain
|
|
mov r2, r9
|
|
ldr r0, [r2]
|
|
str r0, [r1, 0x8]
|
|
ldr r0, _08010B9C @ =sub_800FE24
|
|
bl SetMainCallback2
|
|
_08010B82:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08010B90: .4byte gUnknown_3003F64
|
|
_08010B94: .4byte gBattleTypeFlags
|
|
_08010B98: .4byte gMain
|
|
_08010B9C: .4byte sub_800FE24
|
|
thumb_func_end sub_80109C8
|
|
|
|
thumb_func_start sub_8010BA0
|
|
sub_8010BA0: @ 8010BA0
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r0, _08010BD8 @ =gBattleStruct
|
|
ldr r0, [r0]
|
|
adds r0, 0xB5
|
|
strb r7, [r0]
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
ldr r0, _08010BDC @ =gUnknown_2023E82
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xC
|
|
bls _08010BCC
|
|
b _080110F0
|
|
_08010BCC:
|
|
lsls r0, 2
|
|
ldr r1, _08010BE0 @ =_08010BE4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08010BD8: .4byte gBattleStruct
|
|
_08010BDC: .4byte gUnknown_2023E82
|
|
_08010BE0: .4byte _08010BE4
|
|
.align 2, 0
|
|
_08010BE4:
|
|
.4byte _08010C18
|
|
.4byte _08010C5C
|
|
.4byte _08010CD4
|
|
.4byte _08010DB6
|
|
.4byte _08010DE0
|
|
.4byte _080110D0
|
|
.4byte _080110DC
|
|
.4byte _08010ED8
|
|
.4byte _08010F00
|
|
.4byte _080110D0
|
|
.4byte _080110DC
|
|
.4byte _0801106C
|
|
.4byte _08011084
|
|
_08010C18:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08010C44
|
|
movs r0, 0
|
|
bl ShowBg
|
|
movs r0, 0x1
|
|
bl ShowBg
|
|
movs r0, 0x2
|
|
bl ShowBg
|
|
movs r0, 0x3
|
|
bl ShowBg
|
|
bl sub_80357C8
|
|
ldr r1, _08010C54 @ =gUnknown_2023E82
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_08010C44:
|
|
ldr r0, _08010C58 @ =gUnknown_3003F3C
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08010C4E
|
|
b _080110F0
|
|
_08010C4E:
|
|
bl sub_80FCEA8
|
|
b _080110F0
|
|
.align 2, 0
|
|
_08010C54: .4byte gUnknown_2023E82
|
|
_08010C58: .4byte gUnknown_3003F3C
|
|
_08010C5C:
|
|
ldr r0, _08010CC0 @ =gUnknown_3003F64
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08010C66
|
|
b _080110F0
|
|
_08010C66:
|
|
bl sub_800A4BC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08010CAA
|
|
ldr r4, _08010CC4 @ =gBattleStruct
|
|
ldr r0, [r4]
|
|
movs r5, 0xC2
|
|
lsls r5, 1
|
|
adds r0, r5
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
ldr r2, _08010CC8 @ =0x00000185
|
|
adds r1, r0, r2
|
|
movs r0, 0x2
|
|
strb r0, [r1]
|
|
bl sub_800FFEC
|
|
bl sub_80100B8
|
|
bl bitmask_all_link_players_but_self
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, [r4]
|
|
adds r1, r5
|
|
movs r2, 0x20
|
|
bl SendBlock
|
|
ldr r1, _08010CCC @ =gUnknown_2023E82
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_08010CAA:
|
|
ldr r0, _08010CD0 @ =gUnknown_3003F3C
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08010CB4
|
|
b _080110F0
|
|
_08010CB4:
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_80FCD74
|
|
b _080110F0
|
|
.align 2, 0
|
|
_08010CC0: .4byte gUnknown_3003F64
|
|
_08010CC4: .4byte gBattleStruct
|
|
_08010CC8: .4byte 0x00000185
|
|
_08010CCC: .4byte gUnknown_2023E82
|
|
_08010CD0: .4byte gUnknown_3003F3C
|
|
_08010CD4:
|
|
bl GetBlockReceivedStatus
|
|
movs r1, 0xF
|
|
ands r1, r0
|
|
cmp r1, 0xF
|
|
beq _08010CE2
|
|
b _080110F0
|
|
_08010CE2:
|
|
bl ResetBlockReceivedFlags
|
|
movs r0, 0x4
|
|
adds r1, r7, 0
|
|
bl sub_8010414
|
|
bl sub_801017C
|
|
bl sub_8044708
|
|
ldr r0, _08010D4C @ =gDecompressionBuffer
|
|
ldr r1, _08010D50 @ =gPlayerParty
|
|
movs r2, 0x96
|
|
lsls r2, 1
|
|
bl memcpy
|
|
ldr r0, _08010D54 @ =sub_800F6FC
|
|
movs r1, 0
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _08010D58 @ =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
movs r2, 0
|
|
movs r0, 0x87
|
|
lsls r0, 1
|
|
strh r0, [r1, 0xA]
|
|
movs r0, 0x5A
|
|
strh r0, [r1, 0xC]
|
|
strh r2, [r1, 0x12]
|
|
strh r2, [r1, 0xE]
|
|
strh r2, [r1, 0x10]
|
|
adds r2, r1, 0
|
|
ldr r0, _08010D5C @ =gUnknown_2022118
|
|
adds r3, r0, 0x2
|
|
ldr r5, _08010D60 @ =gLinkPlayers
|
|
movs r4, 0x3F
|
|
movs r7, 0x80
|
|
lsls r7, 1
|
|
movs r6, 0x3
|
|
_08010D3A:
|
|
ldrh r0, [r5, 0x18]
|
|
cmp r0, 0x1
|
|
beq _08010D76
|
|
cmp r0, 0x1
|
|
bgt _08010D64
|
|
cmp r0, 0
|
|
beq _08010D6E
|
|
b _08010D9C
|
|
.align 2, 0
|
|
_08010D4C: .4byte gDecompressionBuffer
|
|
_08010D50: .4byte gPlayerParty
|
|
_08010D54: .4byte sub_800F6FC
|
|
_08010D58: .4byte gTasks
|
|
_08010D5C: .4byte gUnknown_2022118
|
|
_08010D60: .4byte gLinkPlayers
|
|
_08010D64:
|
|
cmp r0, 0x2
|
|
beq _08010D7E
|
|
cmp r0, 0x3
|
|
beq _08010D8E
|
|
b _08010D9C
|
|
_08010D6E:
|
|
ldrh r0, [r3]
|
|
adds r1, r4, 0
|
|
ands r1, r0
|
|
b _08010D86
|
|
_08010D76:
|
|
ldrh r0, [r3]
|
|
adds r1, r4, 0
|
|
ands r1, r0
|
|
b _08010D96
|
|
_08010D7E:
|
|
ldrh r0, [r3]
|
|
adds r1, r4, 0
|
|
ands r1, r0
|
|
lsls r1, 6
|
|
_08010D86:
|
|
ldrh r0, [r2, 0xE]
|
|
orrs r1, r0
|
|
strh r1, [r2, 0xE]
|
|
b _08010D9C
|
|
_08010D8E:
|
|
ldrh r0, [r3]
|
|
adds r1, r4, 0
|
|
ands r1, r0
|
|
lsls r1, 6
|
|
_08010D96:
|
|
ldrh r0, [r2, 0x10]
|
|
orrs r1, r0
|
|
strh r1, [r2, 0x10]
|
|
_08010D9C:
|
|
adds r3, r7
|
|
adds r5, 0x1C
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bge _08010D3A
|
|
bl ZeroPlayerPartyMons
|
|
bl ZeroEnemyPartyMons
|
|
ldr r1, _08010DD8 @ =gUnknown_2023E82
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_08010DB6:
|
|
bl sub_800A4BC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08010DC2
|
|
b _080110F0
|
|
_08010DC2:
|
|
bl bitmask_all_link_players_but_self
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _08010DDC @ =gDecompressionBuffer
|
|
movs r2, 0xC8
|
|
bl SendBlock
|
|
ldr r1, _08010DD8 @ =gUnknown_2023E82
|
|
b _080110EA
|
|
.align 2, 0
|
|
_08010DD8: .4byte gUnknown_2023E82
|
|
_08010DDC: .4byte gDecompressionBuffer
|
|
_08010DE0:
|
|
bl GetBlockReceivedStatus
|
|
movs r1, 0xF
|
|
ands r1, r0
|
|
cmp r1, 0xF
|
|
beq _08010DEE
|
|
b _080110F0
|
|
_08010DEE:
|
|
bl ResetBlockReceivedFlags
|
|
movs r6, 0
|
|
lsls r0, r7, 3
|
|
subs r0, r7
|
|
lsls r0, 2
|
|
mov r8, r0
|
|
ldr r4, _08010E18 @ =gUnknown_2022118
|
|
movs r5, 0
|
|
_08010E00:
|
|
cmp r6, r7
|
|
bne _08010E34
|
|
ldr r0, _08010E1C @ =gLinkPlayers
|
|
adds r0, r5, r0
|
|
ldrh r0, [r0, 0x18]
|
|
cmp r0, 0x2
|
|
bgt _08010E20
|
|
cmp r0, 0x1
|
|
bge _08010E2C
|
|
cmp r0, 0
|
|
beq _08010E24
|
|
b _08010EBE
|
|
.align 2, 0
|
|
_08010E18: .4byte gUnknown_2022118
|
|
_08010E1C: .4byte gLinkPlayers
|
|
_08010E20:
|
|
cmp r0, 0x3
|
|
bne _08010EBE
|
|
_08010E24:
|
|
ldr r0, _08010E28 @ =gPlayerParty
|
|
b _08010EA4
|
|
.align 2, 0
|
|
_08010E28: .4byte gPlayerParty
|
|
_08010E2C:
|
|
ldr r0, _08010E30 @ =gUnknown_20243B0
|
|
b _08010EA4
|
|
.align 2, 0
|
|
_08010E30: .4byte gUnknown_20243B0
|
|
_08010E34:
|
|
ldr r2, _08010E54 @ =gLinkPlayers
|
|
adds r0, r5, r2
|
|
ldrh r1, [r0, 0x18]
|
|
movs r3, 0x1
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08010E58
|
|
mov r1, r8
|
|
adds r0, r1, r2
|
|
ldrh r1, [r0, 0x18]
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08010E66
|
|
b _08010E8C
|
|
.align 2, 0
|
|
_08010E54: .4byte gLinkPlayers
|
|
_08010E58:
|
|
mov r1, r8
|
|
adds r0, r1, r2
|
|
ldrh r1, [r0, 0x18]
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08010E8C
|
|
_08010E66:
|
|
adds r0, r5, r2
|
|
ldrh r2, [r0, 0x18]
|
|
cmp r2, 0x2
|
|
bgt _08010E78
|
|
cmp r2, 0x1
|
|
bge _08010E84
|
|
cmp r2, 0
|
|
beq _08010E7C
|
|
b _08010EBE
|
|
_08010E78:
|
|
cmp r2, 0x3
|
|
bne _08010EBE
|
|
_08010E7C:
|
|
ldr r0, _08010E80 @ =gPlayerParty
|
|
b _08010EA4
|
|
.align 2, 0
|
|
_08010E80: .4byte gPlayerParty
|
|
_08010E84:
|
|
ldr r0, _08010E88 @ =gUnknown_20243B0
|
|
b _08010EA4
|
|
.align 2, 0
|
|
_08010E88: .4byte gUnknown_20243B0
|
|
_08010E8C:
|
|
adds r0, r5, r2
|
|
ldrh r2, [r0, 0x18]
|
|
cmp r2, 0x2
|
|
bgt _08010E9E
|
|
cmp r2, 0x1
|
|
bge _08010EB4
|
|
cmp r2, 0
|
|
beq _08010EA2
|
|
b _08010EBE
|
|
_08010E9E:
|
|
cmp r2, 0x3
|
|
bne _08010EBE
|
|
_08010EA2:
|
|
ldr r0, _08010EB0 @ =gEnemyParty
|
|
_08010EA4:
|
|
adds r1, r4, 0
|
|
movs r2, 0xC8
|
|
bl memcpy
|
|
b _08010EBE
|
|
.align 2, 0
|
|
_08010EB0: .4byte gEnemyParty
|
|
_08010EB4:
|
|
ldr r0, _08010ED0 @ =gUnknown_2024158
|
|
adds r1, r4, 0
|
|
movs r2, 0xC8
|
|
bl memcpy
|
|
_08010EBE:
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r4, r2
|
|
adds r5, 0x1C
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _08010E00
|
|
ldr r1, _08010ED4 @ =gUnknown_2023E82
|
|
b _080110EA
|
|
.align 2, 0
|
|
_08010ED0: .4byte gUnknown_2024158
|
|
_08010ED4: .4byte gUnknown_2023E82
|
|
_08010ED8:
|
|
bl sub_800A4BC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08010EE4
|
|
b _080110F0
|
|
_08010EE4:
|
|
bl bitmask_all_link_players_but_self
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _08010EF8 @ =gUnknown_201C0C8
|
|
movs r2, 0x64
|
|
bl SendBlock
|
|
ldr r1, _08010EFC @ =gUnknown_2023E82
|
|
b _080110EA
|
|
.align 2, 0
|
|
_08010EF8: .4byte gUnknown_201C0C8
|
|
_08010EFC: .4byte gUnknown_2023E82
|
|
_08010F00:
|
|
bl GetBlockReceivedStatus
|
|
movs r1, 0xF
|
|
ands r1, r0
|
|
cmp r1, 0xF
|
|
beq _08010F0E
|
|
b _080110F0
|
|
_08010F0E:
|
|
bl ResetBlockReceivedFlags
|
|
movs r6, 0
|
|
lsls r0, r7, 3
|
|
subs r0, r7
|
|
lsls r0, 2
|
|
mov r8, r0
|
|
ldr r4, _08010F38 @ =gUnknown_2022118
|
|
movs r5, 0
|
|
_08010F20:
|
|
cmp r6, r7
|
|
bne _08010F54
|
|
ldr r0, _08010F3C @ =gLinkPlayers
|
|
adds r0, r5, r0
|
|
ldrh r0, [r0, 0x18]
|
|
cmp r0, 0x2
|
|
bgt _08010F40
|
|
cmp r0, 0x1
|
|
bge _08010F4C
|
|
cmp r0, 0
|
|
beq _08010F44
|
|
b _08010FDE
|
|
.align 2, 0
|
|
_08010F38: .4byte gUnknown_2022118
|
|
_08010F3C: .4byte gLinkPlayers
|
|
_08010F40:
|
|
cmp r0, 0x3
|
|
bne _08010FDE
|
|
_08010F44:
|
|
ldr r0, _08010F48 @ =gUnknown_202434C
|
|
b _08010FC4
|
|
.align 2, 0
|
|
_08010F48: .4byte gUnknown_202434C
|
|
_08010F4C:
|
|
ldr r0, _08010F50 @ =gUnknown_2024478
|
|
b _08010FC4
|
|
.align 2, 0
|
|
_08010F50: .4byte gUnknown_2024478
|
|
_08010F54:
|
|
ldr r2, _08010F74 @ =gLinkPlayers
|
|
adds r0, r5, r2
|
|
ldrh r1, [r0, 0x18]
|
|
movs r3, 0x1
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08010F78
|
|
mov r1, r8
|
|
adds r0, r1, r2
|
|
ldrh r1, [r0, 0x18]
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08010F86
|
|
b _08010FAC
|
|
.align 2, 0
|
|
_08010F74: .4byte gLinkPlayers
|
|
_08010F78:
|
|
mov r1, r8
|
|
adds r0, r1, r2
|
|
ldrh r1, [r0, 0x18]
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08010FAC
|
|
_08010F86:
|
|
adds r0, r5, r2
|
|
ldrh r2, [r0, 0x18]
|
|
cmp r2, 0x2
|
|
bgt _08010F98
|
|
cmp r2, 0x1
|
|
bge _08010FA4
|
|
cmp r2, 0
|
|
beq _08010F9C
|
|
b _08010FDE
|
|
_08010F98:
|
|
cmp r2, 0x3
|
|
bne _08010FDE
|
|
_08010F9C:
|
|
ldr r0, _08010FA0 @ =gUnknown_202434C
|
|
b _08010FC4
|
|
.align 2, 0
|
|
_08010FA0: .4byte gUnknown_202434C
|
|
_08010FA4:
|
|
ldr r0, _08010FA8 @ =gUnknown_2024478
|
|
b _08010FC4
|
|
.align 2, 0
|
|
_08010FA8: .4byte gUnknown_2024478
|
|
_08010FAC:
|
|
adds r0, r5, r2
|
|
ldrh r2, [r0, 0x18]
|
|
cmp r2, 0x2
|
|
bgt _08010FBE
|
|
cmp r2, 0x1
|
|
bge _08010FD4
|
|
cmp r2, 0
|
|
beq _08010FC2
|
|
b _08010FDE
|
|
_08010FBE:
|
|
cmp r2, 0x3
|
|
bne _08010FDE
|
|
_08010FC2:
|
|
ldr r0, _08010FD0 @ =gUnknown_20240F4
|
|
_08010FC4:
|
|
adds r1, r4, 0
|
|
movs r2, 0x64
|
|
bl memcpy
|
|
b _08010FDE
|
|
.align 2, 0
|
|
_08010FD0: .4byte gUnknown_20240F4
|
|
_08010FD4:
|
|
ldr r0, _0801105C @ =gUnknown_2024220
|
|
adds r1, r4, 0
|
|
movs r2, 0x64
|
|
bl memcpy
|
|
_08010FDE:
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r4, r2
|
|
adds r5, 0x1C
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _08010F20
|
|
ldr r4, _08011060 @ =gPlayerParty
|
|
adds r0, r4, 0
|
|
bl sub_8011D0C
|
|
adds r0, r4, 0
|
|
adds r0, 0x64
|
|
bl sub_8011D0C
|
|
adds r0, r4, 0
|
|
adds r0, 0xC8
|
|
bl sub_8011D0C
|
|
movs r1, 0x96
|
|
lsls r1, 1
|
|
adds r0, r4, r1
|
|
bl sub_8011D0C
|
|
movs r2, 0xC8
|
|
lsls r2, 1
|
|
adds r0, r4, r2
|
|
bl sub_8011D0C
|
|
movs r1, 0xFA
|
|
lsls r1, 1
|
|
adds r0, r4, r1
|
|
bl sub_8011D0C
|
|
ldr r4, _08011064 @ =gEnemyParty
|
|
adds r0, r4, 0
|
|
bl sub_8011D0C
|
|
adds r0, r4, 0
|
|
adds r0, 0x64
|
|
bl sub_8011D0C
|
|
adds r0, r4, 0
|
|
adds r0, 0xC8
|
|
bl sub_8011D0C
|
|
movs r2, 0x96
|
|
lsls r2, 1
|
|
adds r0, r4, r2
|
|
bl sub_8011D0C
|
|
movs r1, 0xC8
|
|
lsls r1, 1
|
|
adds r0, r4, r1
|
|
bl sub_8011D0C
|
|
movs r2, 0xFA
|
|
lsls r2, 1
|
|
adds r0, r4, r2
|
|
bl sub_8011D0C
|
|
ldr r1, _08011068 @ =gUnknown_2023E82
|
|
b _080110EA
|
|
.align 2, 0
|
|
_0801105C: .4byte gUnknown_2024220
|
|
_08011060: .4byte gPlayerParty
|
|
_08011064: .4byte gEnemyParty
|
|
_08011068: .4byte gUnknown_2023E82
|
|
_0801106C:
|
|
bl sub_800D30C
|
|
ldr r0, _08011080 @ =gUnknown_2023E82
|
|
ldrb r1, [r0]
|
|
adds r1, 0x1
|
|
movs r2, 0
|
|
strb r1, [r0]
|
|
strb r2, [r0, 0x1]
|
|
strb r2, [r0, 0x2]
|
|
b _080110F0
|
|
.align 2, 0
|
|
_08011080: .4byte gUnknown_2023E82
|
|
_08011084:
|
|
ldr r0, _080110B8 @ =gUnknown_2023E83
|
|
adds r1, r0, 0x1
|
|
bl BattleInitAllSprites
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080110F0
|
|
ldr r2, _080110BC @ =gUnknown_3004F80
|
|
ldr r1, _080110C0 @ =gMain
|
|
ldr r0, [r1]
|
|
str r0, [r2]
|
|
ldr r0, _080110C4 @ =sub_80123E4
|
|
str r0, [r1]
|
|
ldr r0, _080110C8 @ =sub_8011100
|
|
bl SetMainCallback2
|
|
ldr r2, _080110CC @ =gBattleTypeFlags
|
|
ldr r1, [r2]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080110F0
|
|
movs r0, 0x20
|
|
orrs r1, r0
|
|
str r1, [r2]
|
|
b _080110F0
|
|
.align 2, 0
|
|
_080110B8: .4byte gUnknown_2023E83
|
|
_080110BC: .4byte gUnknown_3004F80
|
|
_080110C0: .4byte gMain
|
|
_080110C4: .4byte sub_80123E4
|
|
_080110C8: .4byte sub_8011100
|
|
_080110CC: .4byte gBattleTypeFlags
|
|
_080110D0:
|
|
ldr r0, _080110FC @ =gUnknown_2023E82
|
|
ldrb r1, [r0]
|
|
adds r1, 0x1
|
|
strb r1, [r0]
|
|
movs r1, 0x1
|
|
strb r1, [r0, 0x1]
|
|
_080110DC:
|
|
ldr r1, _080110FC @ =gUnknown_2023E82
|
|
ldrb r0, [r1, 0x1]
|
|
subs r0, 0x1
|
|
strb r0, [r1, 0x1]
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080110F0
|
|
_080110EA:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_080110F0:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080110FC: .4byte gUnknown_2023E82
|
|
thumb_func_end sub_8010BA0
|
|
|
|
thumb_func_start sub_8011100
|
|
sub_8011100: @ 8011100
|
|
push {lr}
|
|
sub sp, 0x4
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl RunTextPrinters
|
|
bl UpdatePaletteFade
|
|
bl RunTasks
|
|
ldr r0, _08011160 @ =gMain
|
|
ldrh r1, [r0, 0x2C]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08011158
|
|
ldr r0, _08011164 @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 9
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08011158
|
|
ldr r2, _08011168 @ =gUnknown_20370D0
|
|
ldr r1, _0801116C @ =gUnknown_2023E8A
|
|
movs r0, 0x3
|
|
strb r0, [r1]
|
|
movs r0, 0x3
|
|
strh r0, [r2]
|
|
bl ResetPaletteFadeControl
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, _08011170 @ =CB2_QuitRecordedBattle
|
|
bl SetMainCallback2
|
|
_08011158:
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08011160: .4byte gMain
|
|
_08011164: .4byte gBattleTypeFlags
|
|
_08011168: .4byte gUnknown_20370D0
|
|
_0801116C: .4byte gUnknown_2023E8A
|
|
_08011170: .4byte CB2_QuitRecordedBattle
|
|
thumb_func_end sub_8011100
|
|
|
|
thumb_func_start FreeRestoreBattleData
|
|
FreeRestoreBattleData: @ 8011174
|
|
push {lr}
|
|
ldr r1, _080111AC @ =gMain
|
|
ldr r0, _080111B0 @ =gUnknown_3004F80
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
ldr r2, _080111B4 @ =gUnknown_2039600
|
|
movs r0, 0x3
|
|
strb r0, [r2, 0x15]
|
|
ldr r0, _080111B8 @ =0x00000439
|
|
adds r1, r0
|
|
ldrb r2, [r1]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
bl ZeroEnemyPartyMons
|
|
movs r0, 0x53
|
|
bl m4aSongNumStop
|
|
bl FreeMonSpritesGfx
|
|
bl FreeBattleSpritesData
|
|
bl sub_802E138
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080111AC: .4byte gMain
|
|
_080111B0: .4byte gUnknown_3004F80
|
|
_080111B4: .4byte gUnknown_2039600
|
|
_080111B8: .4byte 0x00000439
|
|
thumb_func_end FreeRestoreBattleData
|
|
|
|
thumb_func_start CB2_QuitRecordedBattle
|
|
CB2_QuitRecordedBattle: @ 80111BC
|
|
push {lr}
|
|
bl UpdatePaletteFade
|
|
ldr r0, _080111E4 @ =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080111DE
|
|
bl FreeRestoreBattleData
|
|
bl FreeAllWindowBuffers
|
|
ldr r0, _080111E8 @ =gMain
|
|
ldr r0, [r0, 0x8]
|
|
bl SetMainCallback2
|
|
_080111DE:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080111E4: .4byte gPaletteFade
|
|
_080111E8: .4byte gMain
|
|
thumb_func_end CB2_QuitRecordedBattle
|
|
|
|
thumb_func_start sub_80111EC
|
|
sub_80111EC: @ 80111EC
|
|
movs r1, 0
|
|
strh r1, [r0, 0x2E]
|
|
ldr r1, _080111F8 @ =sub_80111FC
|
|
str r1, [r0, 0x1C]
|
|
bx lr
|
|
.align 2, 0
|
|
_080111F8: .4byte sub_80111FC
|
|
thumb_func_end sub_80111EC
|
|
|
|
thumb_func_start sub_80111FC
|
|
sub_80111FC: @ 80111FC
|
|
push {r4-r7,lr}
|
|
adds r5, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r6, [r5, r0]
|
|
cmp r6, 0x1
|
|
beq _08011236
|
|
cmp r6, 0x1
|
|
bgt _08011212
|
|
cmp r6, 0
|
|
beq _08011218
|
|
b _080112D0
|
|
_08011212:
|
|
cmp r6, 0x2
|
|
beq _080112A0
|
|
b _080112D0
|
|
_08011218:
|
|
ldr r4, _08011298 @ =gUnknown_2022BC0
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
ldrh r0, [r5, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x2E]
|
|
strh r6, [r5, 0x30]
|
|
ldr r0, _0801129C @ =0x00000281
|
|
strh r0, [r5, 0x32]
|
|
strh r6, [r5, 0x34]
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x36]
|
|
_08011236:
|
|
ldrh r0, [r5, 0x36]
|
|
subs r0, 0x1
|
|
strh r0, [r5, 0x36]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080112D0
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x36]
|
|
movs r1, 0x30
|
|
ldrsh r2, [r5, r1]
|
|
movs r3, 0x34
|
|
ldrsh r0, [r5, r3]
|
|
lsls r0, 5
|
|
adds r2, r0
|
|
movs r3, 0x32
|
|
ldrsh r1, [r5, r3]
|
|
subs r1, r0
|
|
movs r3, 0
|
|
ldr r0, _08011298 @ =gUnknown_2022BC0
|
|
mov r12, r0
|
|
lsls r7, r2, 1
|
|
movs r4, 0x3D
|
|
lsls r6, r1, 1
|
|
_08011264:
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
lsls r2, r3, 1
|
|
adds r1, r7, r0
|
|
adds r1, r2, r1
|
|
strh r4, [r1]
|
|
adds r0, r6, r0
|
|
adds r2, r0
|
|
strh r4, [r2]
|
|
adds r3, 0x2
|
|
cmp r3, 0x1D
|
|
ble _08011264
|
|
ldrh r0, [r5, 0x34]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x34]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x15
|
|
bne _080112D0
|
|
ldrh r0, [r5, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x2E]
|
|
movs r0, 0x20
|
|
strh r0, [r5, 0x30]
|
|
b _080112D0
|
|
.align 2, 0
|
|
_08011298: .4byte gUnknown_2022BC0
|
|
_0801129C: .4byte 0x00000281
|
|
_080112A0:
|
|
ldrh r0, [r5, 0x30]
|
|
subs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x14
|
|
bne _080112D0
|
|
ldr r4, _080112D8 @ =gUnknown_2022BC0
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _080112CA
|
|
movs r2, 0x80
|
|
lsls r2, 5
|
|
movs r1, 0
|
|
bl memset
|
|
ldr r0, [r4]
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_080112CA:
|
|
ldr r0, _080112DC @ =sub_800FD9C
|
|
bl SetMainCallback2
|
|
_080112D0:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080112D8: .4byte gUnknown_2022BC0
|
|
_080112DC: .4byte sub_800FD9C
|
|
thumb_func_end sub_80111FC
|
|
|
|
thumb_func_start sub_80112E0
|
|
sub_80112E0: @ 80112E0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x24
|
|
str r0, [sp, 0x10]
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
str r1, [sp, 0x14]
|
|
movs r0, 0
|
|
mov r9, r0
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
cmp r1, r0
|
|
bne _08011304
|
|
movs r0, 0
|
|
b _080116AC
|
|
_08011304:
|
|
ldr r0, _08011334 @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
ldr r1, _08011338 @ =0x00080908
|
|
ands r0, r1
|
|
ldr r1, [sp, 0x14]
|
|
lsls r1, 2
|
|
str r1, [sp, 0x20]
|
|
cmp r0, 0x8
|
|
beq _08011318
|
|
b _0801169C
|
|
_08011318:
|
|
bl ZeroEnemyPartyMons
|
|
movs r2, 0
|
|
str r2, [sp, 0x18]
|
|
ldr r2, _0801133C @ =gTrainers
|
|
ldr r1, [sp, 0x20]
|
|
ldr r3, [sp, 0x14]
|
|
adds r0, r1, r3
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
adds r0, 0x20
|
|
ldr r4, [sp, 0x18]
|
|
b _0801167E
|
|
.align 2, 0
|
|
_08011334: .4byte gBattleTypeFlags
|
|
_08011338: .4byte 0x00080908
|
|
_0801133C: .4byte gTrainers
|
|
_08011340:
|
|
ldr r3, [sp, 0x14]
|
|
adds r0, r1, r3
|
|
lsls r0, 3
|
|
adds r1, r0, r2
|
|
ldrb r0, [r1, 0x18]
|
|
cmp r0, 0x1
|
|
bne _08011354
|
|
movs r4, 0x80
|
|
mov r10, r4
|
|
b _08011366
|
|
_08011354:
|
|
ldrb r1, [r1, 0x2]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
movs r1, 0x88
|
|
mov r10, r1
|
|
cmp r0, 0
|
|
beq _08011366
|
|
movs r2, 0x78
|
|
mov r10, r2
|
|
_08011366:
|
|
movs r6, 0
|
|
ldr r0, _080113BC @ =gTrainers
|
|
ldr r2, [sp, 0x20]
|
|
ldr r3, [sp, 0x14]
|
|
adds r1, r2, r3
|
|
lsls r1, 3
|
|
adds r3, r0, 0x4
|
|
adds r1, r3
|
|
ldrb r1, [r1]
|
|
adds r4, r0, 0
|
|
ldr r0, [sp, 0x18]
|
|
adds r0, 0x1
|
|
str r0, [sp, 0x1C]
|
|
cmp r1, 0xFF
|
|
beq _0801139E
|
|
_08011384:
|
|
ldr r0, [sp, 0x14]
|
|
adds r1, r2, r0
|
|
lsls r1, 3
|
|
adds r0, r6, r1
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
add r9, r0
|
|
adds r6, 0x1
|
|
adds r1, r6, r1
|
|
adds r1, r3
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xFF
|
|
bne _08011384
|
|
_0801139E:
|
|
adds r2, r4, 0
|
|
ldr r1, [sp, 0x20]
|
|
ldr r3, [sp, 0x14]
|
|
adds r0, r1, r3
|
|
lsls r1, r0, 3
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _08011454
|
|
cmp r0, 0x1
|
|
bgt _080113C0
|
|
cmp r0, 0
|
|
beq _080113CE
|
|
b _0801166C
|
|
.align 2, 0
|
|
_080113BC: .4byte gTrainers
|
|
_080113C0:
|
|
cmp r0, 0x2
|
|
bne _080113C6
|
|
b _08011514
|
|
_080113C6:
|
|
cmp r0, 0x3
|
|
bne _080113CC
|
|
b _080115A8
|
|
_080113CC:
|
|
b _0801166C
|
|
_080113CE:
|
|
adds r0, r2, 0
|
|
adds r0, 0x24
|
|
adds r0, r1, r0
|
|
ldr r4, [r0]
|
|
movs r6, 0
|
|
ldr r0, [sp, 0x18]
|
|
lsls r2, r0, 3
|
|
adds r0, r2, r4
|
|
ldrh r1, [r0, 0x4]
|
|
movs r0, 0xB
|
|
muls r0, r1
|
|
ldr r1, _08011450 @ =gSpeciesNames
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
adds r5, r2, 0
|
|
cmp r0, 0xFF
|
|
beq _08011410
|
|
adds r3, r1, 0
|
|
movs r7, 0xB
|
|
_080113F4:
|
|
adds r0, r2, r4
|
|
ldrh r0, [r0, 0x4]
|
|
adds r1, r0, 0
|
|
muls r1, r7
|
|
adds r0, r6, r1
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
add r9, r0
|
|
adds r6, 0x1
|
|
adds r1, r6, r1
|
|
adds r1, r3
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xFF
|
|
bne _080113F4
|
|
_08011410:
|
|
mov r2, r9
|
|
lsls r0, r2, 8
|
|
add r10, r0
|
|
adds r4, r5, r4
|
|
ldrh r1, [r4]
|
|
lsls r0, r1, 5
|
|
subs r0, r1
|
|
movs r1, 0xFF
|
|
bl __divsi3
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r3, [sp, 0x18]
|
|
movs r1, 0x64
|
|
adds r0, r3, 0
|
|
muls r0, r1
|
|
ldr r2, [sp, 0x10]
|
|
adds r0, r2, r0
|
|
ldrh r1, [r4, 0x4]
|
|
ldrb r2, [r4, 0x2]
|
|
movs r3, 0x1
|
|
str r3, [sp]
|
|
mov r3, r10
|
|
str r3, [sp, 0x4]
|
|
movs r3, 0x2
|
|
str r3, [sp, 0x8]
|
|
movs r3, 0
|
|
str r3, [sp, 0xC]
|
|
adds r3, r6, 0
|
|
bl CreateMon
|
|
b _0801166C
|
|
.align 2, 0
|
|
_08011450: .4byte gSpeciesNames
|
|
_08011454:
|
|
adds r0, r2, 0
|
|
adds r0, 0x24
|
|
adds r0, r1, r0
|
|
ldr r7, [r0]
|
|
movs r6, 0
|
|
ldr r4, [sp, 0x18]
|
|
lsls r2, r4, 4
|
|
adds r0, r2, r7
|
|
ldrh r1, [r0, 0x4]
|
|
movs r0, 0xB
|
|
muls r0, r1
|
|
ldr r1, _0801150C @ =gSpeciesNames
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
mov r8, r2
|
|
cmp r0, 0xFF
|
|
beq _08011496
|
|
adds r3, r1, 0
|
|
movs r4, 0xB
|
|
_0801147A:
|
|
adds r0, r2, r7
|
|
ldrh r0, [r0, 0x4]
|
|
adds r1, r0, 0
|
|
muls r1, r4
|
|
adds r0, r6, r1
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
add r9, r0
|
|
adds r6, 0x1
|
|
adds r1, r6, r1
|
|
adds r1, r3
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xFF
|
|
bne _0801147A
|
|
_08011496:
|
|
mov r2, r9
|
|
lsls r0, r2, 8
|
|
add r10, r0
|
|
mov r3, r8
|
|
adds r4, r3, r7
|
|
ldrh r1, [r4]
|
|
lsls r0, r1, 5
|
|
subs r0, r1
|
|
movs r1, 0xFF
|
|
bl __divsi3
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r0, [sp, 0x18]
|
|
movs r1, 0x64
|
|
adds r5, r0, 0
|
|
muls r5, r1
|
|
ldr r2, [sp, 0x10]
|
|
adds r5, r2, r5
|
|
ldrh r1, [r4, 0x4]
|
|
ldrb r2, [r4, 0x2]
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
mov r3, r10
|
|
str r3, [sp, 0x4]
|
|
movs r0, 0x2
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
str r0, [sp, 0xC]
|
|
adds r0, r5, 0
|
|
adds r3, r6, 0
|
|
bl CreateMon
|
|
movs r6, 0
|
|
mov r0, r8
|
|
adds r0, 0x6
|
|
adds r4, r7, r0
|
|
_080114E0:
|
|
adds r1, r6, 0
|
|
adds r1, 0xD
|
|
adds r0, r5, 0
|
|
adds r2, r4, 0
|
|
bl SetMonData
|
|
adds r1, r6, 0
|
|
adds r1, 0x11
|
|
ldrh r0, [r4]
|
|
lsls r2, r0, 1
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
ldr r0, _08011510 @ =gBattleMoves+0x4
|
|
adds r2, r0
|
|
adds r0, r5, 0
|
|
bl SetMonData
|
|
adds r4, 0x2
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _080114E0
|
|
b _0801166C
|
|
.align 2, 0
|
|
_0801150C: .4byte gSpeciesNames
|
|
_08011510: .4byte gBattleMoves+0x4
|
|
_08011514:
|
|
adds r0, r2, 0
|
|
adds r0, 0x24
|
|
adds r0, r1, r0
|
|
ldr r4, [r0]
|
|
movs r6, 0
|
|
ldr r0, [sp, 0x18]
|
|
lsls r2, r0, 3
|
|
adds r0, r2, r4
|
|
ldrh r1, [r0, 0x4]
|
|
movs r0, 0xB
|
|
muls r0, r1
|
|
ldr r1, _080115A4 @ =gSpeciesNames
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
adds r5, r2, 0
|
|
cmp r0, 0xFF
|
|
beq _08011556
|
|
adds r3, r1, 0
|
|
movs r7, 0xB
|
|
_0801153A:
|
|
adds r0, r2, r4
|
|
ldrh r0, [r0, 0x4]
|
|
adds r1, r0, 0
|
|
muls r1, r7
|
|
adds r0, r6, r1
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
add r9, r0
|
|
adds r6, 0x1
|
|
adds r1, r6, r1
|
|
adds r1, r3
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xFF
|
|
bne _0801153A
|
|
_08011556:
|
|
mov r2, r9
|
|
lsls r0, r2, 8
|
|
add r10, r0
|
|
adds r5, r4
|
|
ldrh r1, [r5]
|
|
lsls r0, r1, 5
|
|
subs r0, r1
|
|
movs r1, 0xFF
|
|
bl __divsi3
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r3, [sp, 0x18]
|
|
movs r0, 0x64
|
|
adds r4, r3, 0
|
|
muls r4, r0
|
|
ldr r1, [sp, 0x10]
|
|
adds r4, r1, r4
|
|
ldrh r1, [r5, 0x4]
|
|
ldrb r2, [r5, 0x2]
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
mov r3, r10
|
|
str r3, [sp, 0x4]
|
|
movs r0, 0x2
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
str r0, [sp, 0xC]
|
|
adds r0, r4, 0
|
|
adds r3, r6, 0
|
|
bl CreateMon
|
|
adds r5, 0x6
|
|
adds r0, r4, 0
|
|
movs r1, 0xC
|
|
adds r2, r5, 0
|
|
bl SetMonData
|
|
b _0801166C
|
|
.align 2, 0
|
|
_080115A4: .4byte gSpeciesNames
|
|
_080115A8:
|
|
adds r0, r4, 0
|
|
adds r0, 0x24
|
|
adds r0, r1, r0
|
|
ldr r7, [r0]
|
|
movs r6, 0
|
|
ldr r4, [sp, 0x18]
|
|
lsls r2, r4, 4
|
|
adds r0, r2, r7
|
|
ldrh r1, [r0, 0x4]
|
|
movs r0, 0xB
|
|
muls r0, r1
|
|
ldr r1, _080116BC @ =gSpeciesNames
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
mov r8, r2
|
|
cmp r0, 0xFF
|
|
beq _080115EA
|
|
adds r3, r1, 0
|
|
movs r4, 0xB
|
|
_080115CE:
|
|
adds r0, r2, r7
|
|
ldrh r0, [r0, 0x4]
|
|
adds r1, r0, 0
|
|
muls r1, r4
|
|
adds r0, r6, r1
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
add r9, r0
|
|
adds r6, 0x1
|
|
adds r1, r6, r1
|
|
adds r1, r3
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xFF
|
|
bne _080115CE
|
|
_080115EA:
|
|
mov r2, r9
|
|
lsls r0, r2, 8
|
|
add r10, r0
|
|
mov r3, r8
|
|
adds r5, r3, r7
|
|
ldrh r1, [r5]
|
|
lsls r0, r1, 5
|
|
subs r0, r1
|
|
movs r1, 0xFF
|
|
bl __divsi3
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r0, [sp, 0x18]
|
|
movs r1, 0x64
|
|
adds r4, r0, 0
|
|
muls r4, r1
|
|
ldr r2, [sp, 0x10]
|
|
adds r4, r2, r4
|
|
ldrh r1, [r5, 0x4]
|
|
ldrb r2, [r5, 0x2]
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
mov r3, r10
|
|
str r3, [sp, 0x4]
|
|
movs r0, 0x2
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
str r0, [sp, 0xC]
|
|
adds r0, r4, 0
|
|
adds r3, r6, 0
|
|
bl CreateMon
|
|
adds r5, 0x6
|
|
adds r0, r4, 0
|
|
movs r1, 0xC
|
|
adds r2, r5, 0
|
|
bl SetMonData
|
|
movs r6, 0
|
|
adds r5, r4, 0
|
|
mov r0, r8
|
|
adds r0, 0x8
|
|
adds r4, r7, r0
|
|
_08011642:
|
|
adds r1, r6, 0
|
|
adds r1, 0xD
|
|
adds r0, r5, 0
|
|
adds r2, r4, 0
|
|
bl SetMonData
|
|
adds r1, r6, 0
|
|
adds r1, 0x11
|
|
ldrh r0, [r4]
|
|
lsls r2, r0, 1
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
ldr r0, _080116C0 @ =gBattleMoves+0x4
|
|
adds r2, r0
|
|
adds r0, r5, 0
|
|
bl SetMonData
|
|
adds r4, 0x2
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _08011642
|
|
_0801166C:
|
|
ldr r4, [sp, 0x1C]
|
|
str r4, [sp, 0x18]
|
|
ldr r2, _080116C4 @ =gTrainers
|
|
ldr r1, [sp, 0x20]
|
|
ldr r3, [sp, 0x14]
|
|
adds r0, r1, r3
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
adds r0, 0x20
|
|
_0801167E:
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bge _08011686
|
|
b _08011340
|
|
_08011686:
|
|
ldr r2, _080116C8 @ =gBattleTypeFlags
|
|
ldr r1, _080116C4 @ =gTrainers
|
|
ldr r4, [sp, 0x20]
|
|
ldr r3, [sp, 0x14]
|
|
adds r0, r4, r3
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x18]
|
|
ldr r0, [r2]
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
_0801169C:
|
|
ldr r0, _080116C4 @ =gTrainers
|
|
ldr r4, [sp, 0x20]
|
|
ldr r2, [sp, 0x14]
|
|
adds r1, r4, r2
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
adds r1, 0x20
|
|
ldrb r0, [r1]
|
|
_080116AC:
|
|
add sp, 0x24
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080116BC: .4byte gSpeciesNames
|
|
_080116C0: .4byte gBattleMoves+0x4
|
|
_080116C4: .4byte gTrainers
|
|
_080116C8: .4byte gBattleTypeFlags
|
|
thumb_func_end sub_80112E0
|
|
|
|
thumb_func_start sub_80116CC
|
|
sub_80116CC: @ 80116CC
|
|
push {lr}
|
|
ldr r0, _080116EC @ =0x04000006
|
|
ldrh r0, [r0]
|
|
subs r0, 0x6F
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x30
|
|
bhi _080116E6
|
|
ldr r1, _080116F0 @ =0x04000008
|
|
movs r2, 0x98
|
|
lsls r2, 8
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
_080116E6:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080116EC: .4byte 0x04000006
|
|
_080116F0: .4byte 0x04000008
|
|
thumb_func_end sub_80116CC
|
|
|
|
thumb_func_start sub_80116F4
|
|
sub_80116F4: @ 80116F4
|
|
push {lr}
|
|
bl Random
|
|
ldr r0, _08011788 @ =gUnknown_2022974
|
|
ldrh r1, [r0]
|
|
movs r0, 0x10
|
|
bl SetGpuReg
|
|
ldr r0, _0801178C @ =gUnknown_2022976
|
|
ldrh r1, [r0]
|
|
movs r0, 0x12
|
|
bl SetGpuReg
|
|
ldr r0, _08011790 @ =gUnknown_2022978
|
|
ldrh r1, [r0]
|
|
movs r0, 0x14
|
|
bl SetGpuReg
|
|
ldr r0, _08011794 @ =gUnknown_202297A
|
|
ldrh r1, [r0]
|
|
movs r0, 0x16
|
|
bl SetGpuReg
|
|
ldr r0, _08011798 @ =gUnknown_202297C
|
|
ldrh r1, [r0]
|
|
movs r0, 0x18
|
|
bl SetGpuReg
|
|
ldr r0, _0801179C @ =gUnknown_202297E
|
|
ldrh r1, [r0]
|
|
movs r0, 0x1A
|
|
bl SetGpuReg
|
|
ldr r0, _080117A0 @ =gUnknown_2022980
|
|
ldrh r1, [r0]
|
|
movs r0, 0x1C
|
|
bl SetGpuReg
|
|
ldr r0, _080117A4 @ =gUnknown_2022982
|
|
ldrh r1, [r0]
|
|
movs r0, 0x1E
|
|
bl SetGpuReg
|
|
ldr r0, _080117A8 @ =gUnknown_2022984
|
|
ldrh r1, [r0]
|
|
movs r0, 0x40
|
|
bl SetGpuReg
|
|
ldr r0, _080117AC @ =gUnknown_2022986
|
|
ldrh r1, [r0]
|
|
movs r0, 0x44
|
|
bl SetGpuReg
|
|
ldr r0, _080117B0 @ =gUnknown_2022988
|
|
ldrh r1, [r0]
|
|
movs r0, 0x42
|
|
bl SetGpuReg
|
|
ldr r0, _080117B4 @ =gUnknown_202298A
|
|
ldrh r1, [r0]
|
|
movs r0, 0x46
|
|
bl SetGpuReg
|
|
bl LoadOam
|
|
bl ProcessSpriteCopyRequests
|
|
bl TransferPlttBuffer
|
|
bl sub_8087F54
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08011788: .4byte gUnknown_2022974
|
|
_0801178C: .4byte gUnknown_2022976
|
|
_08011790: .4byte gUnknown_2022978
|
|
_08011794: .4byte gUnknown_202297A
|
|
_08011798: .4byte gUnknown_202297C
|
|
_0801179C: .4byte gUnknown_202297E
|
|
_080117A0: .4byte gUnknown_2022980
|
|
_080117A4: .4byte gUnknown_2022982
|
|
_080117A8: .4byte gUnknown_2022984
|
|
_080117AC: .4byte gUnknown_2022986
|
|
_080117B0: .4byte gUnknown_2022988
|
|
_080117B4: .4byte gUnknown_202298A
|
|
thumb_func_end sub_80116F4
|
|
|
|
thumb_func_start nullsub_9
|
|
nullsub_9: @ 80117B8
|
|
bx lr
|
|
thumb_func_end nullsub_9
|
|
|
|
thumb_func_start sub_80117BC
|
|
sub_80117BC: @ 80117BC
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
beq _080117DC
|
|
movs r1, 0x32
|
|
ldrsh r0, [r5, r1]
|
|
movs r1, 0xFF
|
|
lsls r1, 8
|
|
ands r0, r1
|
|
lsrs r0, 8
|
|
ldrh r1, [r5, 0x30]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x20]
|
|
b _080117EE
|
|
_080117DC:
|
|
movs r1, 0x32
|
|
ldrsh r0, [r5, r1]
|
|
movs r1, 0xFF
|
|
lsls r1, 8
|
|
ands r0, r1
|
|
asrs r0, 8
|
|
ldrh r1, [r5, 0x30]
|
|
subs r1, r0
|
|
strh r1, [r5, 0x20]
|
|
_080117EE:
|
|
movs r1, 0xC0
|
|
lsls r1, 1
|
|
adds r0, r1, 0
|
|
ldrh r1, [r5, 0x32]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x32]
|
|
adds r0, r5, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08011822
|
|
ldr r4, _08011828 @ =0x00002710
|
|
adds r0, r4, 0
|
|
bl FreeSpriteTilesByTag
|
|
adds r0, r4, 0
|
|
bl FreeSpritePaletteByTag
|
|
adds r0, r5, 0
|
|
bl FreeSpriteOamMatrix
|
|
adds r0, r5, 0
|
|
bl DestroySprite
|
|
_08011822:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08011828: .4byte 0x00002710
|
|
thumb_func_end sub_80117BC
|
|
|
|
thumb_func_start sub_801182C
|
|
sub_801182C: @ 801182C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAffineAnim
|
|
ldr r0, _08011848 @ =sub_80117BC
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0x61
|
|
bl PlaySE
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08011848: .4byte sub_80117BC
|
|
thumb_func_end sub_801182C
|
|
|
|
thumb_func_start sub_801184C
|
|
sub_801184C: @ 801184C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
movs r1, 0
|
|
str r1, [sp, 0x8]
|
|
ldr r0, _08011894 @ =gBattleStruct
|
|
ldr r0, [r0]
|
|
adds r0, 0xB5
|
|
ldrb r2, [r0]
|
|
ldr r0, _08011898 @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080118BC
|
|
ldr r1, _0801189C @ =gLinkPlayers
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x18]
|
|
cmp r0, 0x1
|
|
beq _080118A8
|
|
cmp r0, 0x1
|
|
bgt _080118A0
|
|
cmp r0, 0
|
|
beq _080118BC
|
|
b _080118C4
|
|
.align 2, 0
|
|
_08011894: .4byte gBattleStruct
|
|
_08011898: .4byte gBattleTypeFlags
|
|
_0801189C: .4byte gLinkPlayers
|
|
_080118A0:
|
|
cmp r0, 0x2
|
|
beq _080118BC
|
|
cmp r0, 0x3
|
|
bne _080118C4
|
|
_080118A8:
|
|
ldr r0, _080118B4 @ =gEnemyParty
|
|
str r0, [sp, 0x4]
|
|
ldr r1, _080118B8 @ =gPlayerParty
|
|
str r1, [sp, 0x8]
|
|
b _080118C4
|
|
.align 2, 0
|
|
_080118B4: .4byte gEnemyParty
|
|
_080118B8: .4byte gPlayerParty
|
|
_080118BC:
|
|
ldr r2, _08011A10 @ =gPlayerParty
|
|
str r2, [sp, 0x4]
|
|
ldr r3, _08011A14 @ =gEnemyParty
|
|
str r3, [sp, 0x8]
|
|
_080118C4:
|
|
movs r7, 0
|
|
movs r0, 0
|
|
mov r8, r0
|
|
ldr r1, [sp]
|
|
lsls r1, 2
|
|
str r1, [sp, 0xC]
|
|
movs r2, 0xCE
|
|
lsls r2, 1
|
|
mov r10, r2
|
|
mov r9, r0
|
|
_080118D8:
|
|
movs r0, 0x64
|
|
mov r4, r8
|
|
muls r4, r0
|
|
ldr r3, [sp, 0x4]
|
|
adds r4, r3, r4
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0x37
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
cmp r5, 0
|
|
beq _08011948
|
|
cmp r5, r10
|
|
beq _0801191C
|
|
cmp r6, 0
|
|
beq _0801191C
|
|
cmp r1, 0
|
|
bne _0801191C
|
|
movs r0, 0x1
|
|
mov r2, r9
|
|
lsls r0, r2
|
|
orrs r7, r0
|
|
_0801191C:
|
|
cmp r5, 0
|
|
beq _08011948
|
|
cmp r6, 0
|
|
beq _08011934
|
|
cmp r5, r10
|
|
beq _0801192C
|
|
cmp r1, 0
|
|
beq _08011934
|
|
_0801192C:
|
|
movs r0, 0x2
|
|
mov r3, r9
|
|
lsls r0, r3
|
|
orrs r7, r0
|
|
_08011934:
|
|
cmp r5, 0
|
|
beq _08011948
|
|
cmp r5, r10
|
|
beq _08011948
|
|
cmp r6, 0
|
|
bne _08011948
|
|
movs r0, 0x3
|
|
mov r1, r9
|
|
lsls r0, r1
|
|
orrs r7, r0
|
|
_08011948:
|
|
movs r2, 0x2
|
|
add r9, r2
|
|
movs r3, 0x1
|
|
add r8, r3
|
|
mov r0, r8
|
|
cmp r0, 0x5
|
|
ble _080118D8
|
|
ldr r1, _08011A18 @ =gTasks
|
|
ldr r2, [sp, 0xC]
|
|
ldr r3, [sp]
|
|
adds r0, r2, r3
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
strh r7, [r0, 0xE]
|
|
movs r7, 0
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
mov r10, r1
|
|
mov r9, r0
|
|
_08011972:
|
|
movs r0, 0x64
|
|
mov r4, r8
|
|
muls r4, r0
|
|
ldr r2, [sp, 0x8]
|
|
adds r4, r2, r4
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0x37
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
cmp r5, 0
|
|
beq _080119E2
|
|
cmp r5, r10
|
|
beq _080119B6
|
|
cmp r6, 0
|
|
beq _080119B6
|
|
cmp r1, 0
|
|
bne _080119B6
|
|
movs r0, 0x1
|
|
mov r3, r9
|
|
lsls r0, r3
|
|
orrs r7, r0
|
|
_080119B6:
|
|
cmp r5, 0
|
|
beq _080119E2
|
|
cmp r6, 0
|
|
beq _080119CE
|
|
cmp r5, r10
|
|
beq _080119C6
|
|
cmp r1, 0
|
|
beq _080119CE
|
|
_080119C6:
|
|
movs r0, 0x2
|
|
mov r1, r9
|
|
lsls r0, r1
|
|
orrs r7, r0
|
|
_080119CE:
|
|
cmp r5, 0
|
|
beq _080119E2
|
|
cmp r5, r10
|
|
beq _080119E2
|
|
cmp r6, 0
|
|
bne _080119E2
|
|
movs r0, 0x3
|
|
mov r2, r9
|
|
lsls r0, r2
|
|
orrs r7, r0
|
|
_080119E2:
|
|
movs r3, 0x2
|
|
add r9, r3
|
|
movs r0, 0x1
|
|
add r8, r0
|
|
mov r1, r8
|
|
cmp r1, 0x5
|
|
ble _08011972
|
|
ldr r1, _08011A18 @ =gTasks
|
|
ldr r2, [sp, 0xC]
|
|
ldr r3, [sp]
|
|
adds r0, r2, r3
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
strh r7, [r0, 0x10]
|
|
add sp, 0x10
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08011A10: .4byte gPlayerParty
|
|
_08011A14: .4byte gEnemyParty
|
|
_08011A18: .4byte gTasks
|
|
thumb_func_end sub_801184C
|
|
|
|
thumb_func_start sub_8011A1C
|
|
sub_8011A1C: @ 8011A1C
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
movs r0, 0
|
|
bl SetHBlankCallback
|
|
movs r0, 0
|
|
bl SetVBlankCallback
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r1, 0xC0
|
|
lsls r1, 19
|
|
ldr r2, _08011B40 @ =0x05006000
|
|
mov r0, sp
|
|
bl CpuSet
|
|
movs r0, 0x4C
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x40
|
|
movs r1, 0xF0
|
|
bl SetGpuReg
|
|
ldr r4, _08011B44 @ =0x00005051
|
|
movs r0, 0x44
|
|
adds r1, r4, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x48
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x4A
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
ldr r1, _08011B48 @ =gUnknown_2022984
|
|
movs r0, 0xF0
|
|
strh r0, [r1]
|
|
ldr r0, _08011B4C @ =gUnknown_2022986
|
|
strh r4, [r0]
|
|
bl dp12_8087EA4
|
|
ldr r0, _08011B50 @ =gUnknown_2038700
|
|
movs r3, 0xF0
|
|
movs r1, 0xF0
|
|
lsls r1, 3
|
|
adds r2, r0, r1
|
|
movs r1, 0x4F
|
|
_08011A80:
|
|
strh r3, [r0]
|
|
strh r3, [r2]
|
|
adds r2, 0x2
|
|
adds r0, 0x2
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bge _08011A80
|
|
movs r1, 0x50
|
|
ldr r0, _08011B50 @ =gUnknown_2038700
|
|
ldr r3, _08011B54 @ =0x0000ff10
|
|
movs r4, 0x82
|
|
lsls r4, 4
|
|
adds r2, r0, r4
|
|
adds r0, 0xA0
|
|
_08011A9C:
|
|
strh r3, [r0]
|
|
strh r3, [r2]
|
|
adds r2, 0x2
|
|
adds r0, 0x2
|
|
adds r1, 0x1
|
|
cmp r1, 0x9F
|
|
ble _08011A9C
|
|
bl ResetPaletteFade
|
|
ldr r0, _08011B58 @ =gUnknown_2022974
|
|
movs r4, 0
|
|
strh r4, [r0]
|
|
ldr r0, _08011B5C @ =gUnknown_2022976
|
|
strh r4, [r0]
|
|
ldr r0, _08011B60 @ =gUnknown_2022978
|
|
strh r4, [r0]
|
|
ldr r0, _08011B64 @ =gUnknown_202297A
|
|
strh r4, [r0]
|
|
ldr r0, _08011B68 @ =gUnknown_202297C
|
|
strh r4, [r0]
|
|
ldr r0, _08011B6C @ =gUnknown_202297E
|
|
strh r4, [r0]
|
|
ldr r0, _08011B70 @ =gUnknown_2022980
|
|
strh r4, [r0]
|
|
ldr r0, _08011B74 @ =gUnknown_2022982
|
|
strh r4, [r0]
|
|
bl sub_800F34C
|
|
ldr r0, _08011B78 @ =gUnknown_8D004D8
|
|
movs r1, 0
|
|
movs r2, 0x40
|
|
bl LoadCompressedPalette
|
|
bl sub_800F380
|
|
bl ResetSpriteData
|
|
bl ResetTasks
|
|
bl sub_800FAE0
|
|
movs r0, 0x4A
|
|
movs r1, 0x37
|
|
bl SetGpuReg
|
|
bl FreeAllSpritePalettes
|
|
ldr r1, _08011B7C @ =gReservedSpritePaletteCount
|
|
movs r0, 0x4
|
|
strb r0, [r1]
|
|
ldr r0, _08011B80 @ =sub_80116F4
|
|
bl SetVBlankCallback
|
|
ldr r0, _08011B84 @ =sub_800F6FC
|
|
movs r1, 0
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _08011B88 @ =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
movs r2, 0x87
|
|
lsls r2, 1
|
|
strh r2, [r1, 0xA]
|
|
movs r2, 0x5A
|
|
strh r2, [r1, 0xC]
|
|
movs r2, 0x1
|
|
strh r2, [r1, 0x12]
|
|
bl sub_801184C
|
|
ldr r0, _08011B8C @ =sub_8011B94
|
|
bl SetMainCallback2
|
|
ldr r0, _08011B90 @ =gUnknown_2023E82
|
|
strb r4, [r0]
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08011B40: .4byte 0x05006000
|
|
_08011B44: .4byte 0x00005051
|
|
_08011B48: .4byte gUnknown_2022984
|
|
_08011B4C: .4byte gUnknown_2022986
|
|
_08011B50: .4byte gUnknown_2038700
|
|
_08011B54: .4byte 0x0000ff10
|
|
_08011B58: .4byte gUnknown_2022974
|
|
_08011B5C: .4byte gUnknown_2022976
|
|
_08011B60: .4byte gUnknown_2022978
|
|
_08011B64: .4byte gUnknown_202297A
|
|
_08011B68: .4byte gUnknown_202297C
|
|
_08011B6C: .4byte gUnknown_202297E
|
|
_08011B70: .4byte gUnknown_2022980
|
|
_08011B74: .4byte gUnknown_2022982
|
|
_08011B78: .4byte gUnknown_8D004D8
|
|
_08011B7C: .4byte gReservedSpritePaletteCount
|
|
_08011B80: .4byte sub_80116F4
|
|
_08011B84: .4byte sub_800F6FC
|
|
_08011B88: .4byte gTasks
|
|
_08011B8C: .4byte sub_8011B94
|
|
_08011B90: .4byte gUnknown_2023E82
|
|
thumb_func_end sub_8011A1C
|
|
|
|
thumb_func_start sub_8011B94
|
|
sub_8011B94: @ 8011B94
|
|
push {lr}
|
|
bl sub_8011BB0
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
bl RunTasks
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8011B94
|
|
|
|
thumb_func_start sub_8011BB0
|
|
sub_8011BB0: @ 8011BB0
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
ldr r4, _08011BC8 @ =gUnknown_2023E82
|
|
ldrb r0, [r4]
|
|
cmp r0, 0x1
|
|
beq _08011BEA
|
|
cmp r0, 0x1
|
|
bgt _08011BCC
|
|
cmp r0, 0
|
|
beq _08011BD2
|
|
b _08011C34
|
|
.align 2, 0
|
|
_08011BC8: .4byte gUnknown_2023E82
|
|
_08011BCC:
|
|
cmp r0, 0x2
|
|
beq _08011C10
|
|
b _08011C34
|
|
_08011BD2:
|
|
movs r0, 0
|
|
bl ShowBg
|
|
movs r0, 0x1
|
|
bl ShowBg
|
|
movs r0, 0x2
|
|
bl ShowBg
|
|
movs r0, 0xFF
|
|
strb r0, [r4, 0x1]
|
|
b _08011C08
|
|
_08011BEA:
|
|
ldrb r0, [r4, 0x1]
|
|
subs r0, 0x1
|
|
strb r0, [r4, 0x1]
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _08011C34
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r1, [sp]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
_08011C08:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
b _08011C34
|
|
_08011C10:
|
|
ldr r0, _08011C3C @ =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08011C34
|
|
ldr r0, _08011C40 @ =gMain
|
|
ldr r0, [r0, 0x8]
|
|
bl SetMainCallback2
|
|
bl sub_812C224
|
|
bl FreeMonSpritesGfx
|
|
bl FreeBattleSpritesData
|
|
bl sub_802E138
|
|
_08011C34:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08011C3C: .4byte gPaletteFade
|
|
_08011C40: .4byte gMain
|
|
thumb_func_end sub_8011BB0
|
|
|
|
thumb_func_start sub_8011C44
|
|
sub_8011C44: @ 8011C44
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r0, 0
|
|
cmp r1, 0x6
|
|
bhi _08011D04
|
|
lsls r0, r1, 2
|
|
ldr r1, _08011C60 @ =_08011C64
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08011C60: .4byte _08011C64
|
|
.align 2, 0
|
|
_08011C64:
|
|
.4byte _08011C80
|
|
.4byte _08011C94
|
|
.4byte _08011CA8
|
|
.4byte _08011CBC
|
|
.4byte _08011CD0
|
|
.4byte _08011CE4
|
|
.4byte _08011CF8
|
|
_08011C80:
|
|
ldr r0, _08011C90 @ =gUnknown_8248320
|
|
lsls r1, r2, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
lsls r0, 30
|
|
lsrs r0, 30
|
|
b _08011D04
|
|
.align 2, 0
|
|
_08011C90: .4byte gUnknown_8248320
|
|
_08011C94:
|
|
ldr r0, _08011CA4 @ =gUnknown_8248320
|
|
lsls r1, r2, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
lsls r0, 28
|
|
lsrs r0, 30
|
|
b _08011D04
|
|
.align 2, 0
|
|
_08011CA4: .4byte gUnknown_8248320
|
|
_08011CA8:
|
|
ldr r0, _08011CB8 @ =gUnknown_8248320
|
|
lsls r1, r2, 2
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
lsls r0, 23
|
|
lsrs r0, 27
|
|
b _08011D04
|
|
.align 2, 0
|
|
_08011CB8: .4byte gUnknown_8248320
|
|
_08011CBC:
|
|
ldr r0, _08011CCC @ =gUnknown_8248320
|
|
lsls r1, r2, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x1]
|
|
lsls r0, 29
|
|
lsrs r0, 30
|
|
b _08011D04
|
|
.align 2, 0
|
|
_08011CCC: .4byte gUnknown_8248320
|
|
_08011CD0:
|
|
ldr r0, _08011CE0 @ =gUnknown_8248320
|
|
lsls r1, r2, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x1]
|
|
lsls r0, 28
|
|
lsrs r0, 31
|
|
b _08011D04
|
|
.align 2, 0
|
|
_08011CE0: .4byte gUnknown_8248320
|
|
_08011CE4:
|
|
ldr r0, _08011CF4 @ =gUnknown_8248320
|
|
lsls r1, r2, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x1]
|
|
lsls r0, 26
|
|
lsrs r0, 30
|
|
b _08011D04
|
|
.align 2, 0
|
|
_08011CF4: .4byte gUnknown_8248320
|
|
_08011CF8:
|
|
ldr r0, _08011D08 @ =gUnknown_8248320
|
|
lsls r1, r2, 2
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
lsls r0, 8
|
|
lsrs r0, 22
|
|
_08011D04:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08011D08: .4byte gUnknown_8248320
|
|
thumb_func_end sub_8011C44
|
|
|
|
thumb_func_start sub_8011D0C
|
|
sub_8011D0C: @ 8011D0C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x10
|
|
adds r4, r0, 0
|
|
add r5, sp, 0xC
|
|
movs r0, 0x1
|
|
strb r0, [r5]
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
ldr r1, _08011D5C @ =0x0000012f
|
|
cmp r0, r1
|
|
bne _08011D54
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
bl GetMonData
|
|
ldrb r1, [r5]
|
|
cmp r0, r1
|
|
beq _08011D54
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
mov r2, sp
|
|
bl GetMonData
|
|
ldr r1, _08011D60 @ =gUnknown_824F008
|
|
mov r0, sp
|
|
bl StringCompareWithoutExtCtrlCodes
|
|
cmp r0, 0
|
|
bne _08011D54
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
adds r2, r5, 0
|
|
bl SetMonData
|
|
_08011D54:
|
|
add sp, 0x10
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08011D5C: .4byte 0x0000012f
|
|
_08011D60: .4byte gUnknown_824F008
|
|
thumb_func_end sub_8011D0C
|
|
|
|
thumb_func_start oac_poke_opponent
|
|
oac_poke_opponent: @ 8011D64
|
|
push {lr}
|
|
sub sp, 0x4
|
|
ldr r1, _08011D8C @ =sub_8011D94
|
|
str r1, [r0, 0x1C]
|
|
movs r1, 0
|
|
bl StartSpriteAnimIfDifferent
|
|
movs r0, 0x80
|
|
lsls r0, 10
|
|
ldr r1, _08011D90 @ =0x00002108
|
|
str r1, [sp]
|
|
movs r1, 0
|
|
movs r2, 0xA
|
|
movs r3, 0xA
|
|
bl BeginNormalPaletteFade
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08011D8C: .4byte sub_8011D94
|
|
_08011D90: .4byte 0x00002108
|
|
thumb_func_end oac_poke_opponent
|
|
|
|
thumb_func_start sub_8011D94
|
|
sub_8011D94: @ 8011D94
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldr r0, _08011DC0 @ =gUnknown_2023F4C
|
|
ldrh r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08011DBC
|
|
ldrh r0, [r2, 0x24]
|
|
adds r0, 0x2
|
|
strh r0, [r2, 0x24]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _08011DBC
|
|
ldr r0, _08011DC4 @ =sub_8011DC8
|
|
str r0, [r2, 0x1C]
|
|
ldrh r0, [r2, 0x32]
|
|
movs r1, 0x19
|
|
bl PlayCry1
|
|
_08011DBC:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08011DC0: .4byte gUnknown_2023F4C
|
|
_08011DC4: .4byte sub_8011DC8
|
|
thumb_func_end sub_8011D94
|
|
|
|
thumb_func_start sub_8011DC8
|
|
sub_8011DC8: @ 8011DC8
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08011E10
|
|
ldrh r0, [r4, 0x2E]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_804BD94
|
|
ldr r1, _08011E18 @ =gUnknown_3004FF0
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl SetHealthboxSpriteVisible
|
|
ldr r0, _08011E1C @ =nullsub_10
|
|
str r0, [r4, 0x1C]
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl StartSpriteAnimIfDifferent
|
|
movs r0, 0x80
|
|
lsls r0, 10
|
|
ldr r1, _08011E20 @ =0x00002108
|
|
str r1, [sp]
|
|
movs r1, 0
|
|
movs r2, 0xA
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
_08011E10:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08011E18: .4byte gUnknown_3004FF0
|
|
_08011E1C: .4byte nullsub_10
|
|
_08011E20: .4byte 0x00002108
|
|
thumb_func_end sub_8011DC8
|
|
|
|
thumb_func_start nullsub_10
|
|
nullsub_10: @ 8011E24
|
|
bx lr
|
|
thumb_func_end nullsub_10
|
|
|
|
thumb_func_start sub_8011E28
|
|
sub_8011E28: @ 8011E28
|
|
movs r1, 0x6
|
|
strh r1, [r0, 0x34]
|
|
movs r1, 0x1
|
|
strh r1, [r0, 0x36]
|
|
ldr r1, _08011E38 @ =sub_8011E3C
|
|
str r1, [r0, 0x1C]
|
|
bx lr
|
|
.align 2, 0
|
|
_08011E38: .4byte sub_8011E3C
|
|
thumb_func_end sub_8011E28
|
|
|
|
thumb_func_start sub_8011E3C
|
|
sub_8011E3C: @ 8011E3C
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
ldrh r0, [r3, 0x36]
|
|
subs r0, 0x1
|
|
strh r0, [r3, 0x36]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _08011E90
|
|
movs r0, 0x8
|
|
strh r0, [r3, 0x36]
|
|
movs r0, 0x3E
|
|
adds r0, r3
|
|
mov r12, r0
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, 29
|
|
lsrs r0, 31
|
|
movs r1, 0x1
|
|
eors r1, r0
|
|
lsls r1, 2
|
|
movs r4, 0x5
|
|
negs r4, r4
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
mov r1, r12
|
|
strb r0, [r1]
|
|
ldrh r0, [r3, 0x34]
|
|
subs r0, 0x1
|
|
strh r0, [r3, 0x34]
|
|
lsls r0, 16
|
|
asrs r2, r0, 16
|
|
cmp r2, 0
|
|
bne _08011E90
|
|
ldrb r1, [r1]
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
mov r1, r12
|
|
strb r0, [r1]
|
|
ldr r0, _08011E98 @ =nullsub_10
|
|
str r0, [r3, 0x1C]
|
|
ldr r0, _08011E9C @ =gUnknown_2022AE8
|
|
str r2, [r0]
|
|
_08011E90:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08011E98: .4byte nullsub_10
|
|
_08011E9C: .4byte gUnknown_2022AE8
|
|
thumb_func_end sub_8011E3C
|
|
|
|
thumb_func_start sub_8011EA0
|
|
sub_8011EA0: @ 8011EA0
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
mov r9, r0
|
|
ldrh r0, [r0, 0x2E]
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r0, _08011EC4 @ =gUnknown_2024018
|
|
ldr r0, [r0]
|
|
ldr r1, [r0]
|
|
lsls r0, r6, 2
|
|
adds r1, r0, r1
|
|
ldrh r0, [r1, 0x2]
|
|
cmp r0, 0
|
|
beq _08011EC8
|
|
adds r4, r0, 0
|
|
b _08011ECC
|
|
.align 2, 0
|
|
_08011EC4: .4byte gUnknown_2024018
|
|
_08011EC8:
|
|
mov r0, r9
|
|
ldrh r4, [r0, 0x32]
|
|
_08011ECC:
|
|
ldr r1, _08011F34 @ =gBattlerPartyIndexes
|
|
lsls r0, r6, 1
|
|
adds r5, r0, r1
|
|
ldrh r0, [r5]
|
|
movs r1, 0x64
|
|
mov r8, r1
|
|
mov r1, r8
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
ldr r7, _08011F38 @ =gEnemyParty
|
|
adds r0, r7
|
|
movs r1, 0
|
|
bl GetMonData
|
|
cmp r4, 0xC9
|
|
bne _08011F50
|
|
ldrh r0, [r5]
|
|
mov r1, r8
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
adds r0, r7
|
|
movs r1, 0
|
|
bl GetMonData
|
|
adds r2, r0, 0
|
|
movs r0, 0xC0
|
|
lsls r0, 18
|
|
ands r0, r2
|
|
lsrs r0, 18
|
|
movs r1, 0xC0
|
|
lsls r1, 10
|
|
ands r1, r2
|
|
lsrs r1, 12
|
|
orrs r0, r1
|
|
movs r1, 0xC0
|
|
lsls r1, 2
|
|
ands r1, r2
|
|
lsrs r1, 6
|
|
orrs r0, r1
|
|
movs r1, 0x3
|
|
ands r1, r2
|
|
orrs r0, r1
|
|
movs r1, 0x1C
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0
|
|
bne _08011F3C
|
|
movs r0, 0xC9
|
|
b _08011F46
|
|
.align 2, 0
|
|
_08011F34: .4byte gBattlerPartyIndexes
|
|
_08011F38: .4byte gEnemyParty
|
|
_08011F3C:
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
_08011F46:
|
|
ldr r1, _08011F4C @ =gUnknown_82349CC
|
|
lsls r0, 2
|
|
b _08011F88
|
|
.align 2, 0
|
|
_08011F4C: .4byte gUnknown_82349CC
|
|
_08011F50:
|
|
ldr r0, _08011F68 @ =0x00000181
|
|
cmp r4, r0
|
|
bne _08011F74
|
|
ldr r0, _08011F6C @ =gUnknown_83AE03C
|
|
ldr r1, _08011F70 @ =gBattleMonForms
|
|
adds r1, r6, r1
|
|
ldrb r1, [r1]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x1]
|
|
b _08011F8C
|
|
.align 2, 0
|
|
_08011F68: .4byte 0x00000181
|
|
_08011F6C: .4byte gUnknown_83AE03C
|
|
_08011F70: .4byte gBattleMonForms
|
|
_08011F74:
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
cmp r4, r0
|
|
bls _08011F84
|
|
ldr r0, _08011F80 @ =gUnknown_82349CC
|
|
b _08011F8A
|
|
.align 2, 0
|
|
_08011F80: .4byte gUnknown_82349CC
|
|
_08011F84:
|
|
ldr r1, _08011FAC @ =gUnknown_82349CC
|
|
lsls r0, r4, 2
|
|
_08011F88:
|
|
adds r0, r1
|
|
_08011F8A:
|
|
ldrb r0, [r0, 0x1]
|
|
_08011F8C:
|
|
lsrs r1, r0, 3
|
|
movs r0, 0x8
|
|
subs r0, r1
|
|
mov r1, r9
|
|
strh r0, [r1, 0x34]
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x36]
|
|
ldr r0, _08011FB0 @ =sub_8011FB4
|
|
str r0, [r1, 0x1C]
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08011FAC: .4byte gUnknown_82349CC
|
|
_08011FB0: .4byte sub_8011FB4
|
|
thumb_func_end sub_8011EA0
|
|
|
|
thumb_func_start sub_8011FB4
|
|
sub_8011FB4: @ 8011FB4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x36]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x36]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _08012034
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x36]
|
|
ldrh r0, [r4, 0x26]
|
|
adds r0, 0x8
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x34]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x34]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bge _08011FE8
|
|
adds r0, r4, 0
|
|
bl FreeSpriteOamMatrix
|
|
adds r0, r4, 0
|
|
bl DestroySprite
|
|
b _08012034
|
|
_08011FE8:
|
|
ldrh r0, [r4, 0x2E]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl GetBattlerPosition
|
|
ldr r1, _0801203C @ =gMonSpritesGfxPtr
|
|
ldr r1, [r1]
|
|
lsls r0, 24
|
|
lsrs r0, 22
|
|
adds r1, 0x4
|
|
adds r1, r0
|
|
ldr r2, _08012040 @ =gBattleMonForms
|
|
movs r3, 0x2E
|
|
ldrsh r0, [r4, r3]
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
lsls r0, 11
|
|
ldr r1, [r1]
|
|
adds r1, r0
|
|
movs r2, 0x34
|
|
ldrsh r0, [r4, r2]
|
|
lsls r0, 8
|
|
adds r1, r0
|
|
movs r2, 0
|
|
movs r0, 0xFF
|
|
_0801201A:
|
|
strb r2, [r1]
|
|
adds r1, 0x1
|
|
subs r0, 0x1
|
|
cmp r0, 0
|
|
bge _0801201A
|
|
ldr r0, _08012040 @ =gBattleMonForms
|
|
movs r3, 0x2E
|
|
ldrsh r1, [r4, r3]
|
|
adds r1, r0
|
|
ldrb r1, [r1]
|
|
adds r0, r4, 0
|
|
bl StartSpriteAnim
|
|
_08012034:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0801203C: .4byte gMonSpritesGfxPtr
|
|
_08012040: .4byte gBattleMonForms
|
|
thumb_func_end sub_8011FB4
|
|
|
|
thumb_func_start sub_8012044
|
|
sub_8012044: @ 8012044
|
|
movs r1, 0x8
|
|
strh r1, [r0, 0x34]
|
|
adds r1, r0, 0
|
|
adds r1, 0x3E
|
|
ldrb r1, [r1]
|
|
lsls r1, 29
|
|
lsrs r1, 31
|
|
strh r1, [r0, 0x36]
|
|
ldr r1, _0801205C @ =sub_8012060
|
|
str r1, [r0, 0x1C]
|
|
bx lr
|
|
.align 2, 0
|
|
_0801205C: .4byte sub_8012060
|
|
thumb_func_end sub_8012044
|
|
|
|
thumb_func_start sub_8012060
|
|
sub_8012060: @ 8012060
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
ldrh r0, [r3, 0x34]
|
|
subs r0, 0x1
|
|
strh r0, [r3, 0x34]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _08012092
|
|
movs r0, 0x3E
|
|
adds r0, r3
|
|
mov r12, r0
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, 29
|
|
lsrs r0, 31
|
|
movs r1, 0x1
|
|
eors r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
mov r1, r12
|
|
strb r0, [r1]
|
|
movs r0, 0x8
|
|
strh r0, [r3, 0x34]
|
|
_08012092:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8012060
|
|
|
|
thumb_func_start sub_8012098
|
|
sub_8012098: @ 8012098
|
|
movs r1, 0x3E
|
|
adds r1, r0
|
|
mov r12, r1
|
|
movs r1, 0x1
|
|
ldrh r2, [r0, 0x36]
|
|
ands r2, r1
|
|
lsls r2, 2
|
|
mov r1, r12
|
|
ldrb r3, [r1]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r3
|
|
orrs r1, r2
|
|
mov r2, r12
|
|
strb r1, [r2]
|
|
movs r1, 0
|
|
strh r1, [r0, 0x36]
|
|
ldr r1, _080120C0 @ =nullsub_10
|
|
str r1, [r0, 0x1C]
|
|
bx lr
|
|
.align 2, 0
|
|
_080120C0: .4byte nullsub_10
|
|
thumb_func_end sub_8012098
|
|
|
|
thumb_func_start sub_80120C4
|
|
sub_80120C4: @ 80120C4
|
|
ldr r1, _080120CC @ =oac_poke_ally_
|
|
str r1, [r0, 0x1C]
|
|
bx lr
|
|
.align 2, 0
|
|
_080120CC: .4byte oac_poke_ally_
|
|
thumb_func_end sub_80120C4
|
|
|
|
thumb_func_start oac_poke_ally_
|
|
oac_poke_ally_: @ 80120D0
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldr r0, _080120F8 @ =gUnknown_2023F4C
|
|
ldrh r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080120F4
|
|
ldrh r0, [r2, 0x24]
|
|
subs r0, 0x2
|
|
strh r0, [r2, 0x24]
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
cmp r1, 0
|
|
bne _080120F4
|
|
ldr r0, _080120FC @ =nullsub_11
|
|
str r0, [r2, 0x1C]
|
|
strh r1, [r2, 0x30]
|
|
_080120F4:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080120F8: .4byte gUnknown_2023F4C
|
|
_080120FC: .4byte nullsub_11
|
|
thumb_func_end oac_poke_ally_
|
|
|
|
thumb_func_start sub_8012100
|
|
sub_8012100: @ 8012100
|
|
ldr r1, _08012108 @ =nullsub_11
|
|
str r1, [r0, 0x1C]
|
|
bx lr
|
|
.align 2, 0
|
|
_08012108: .4byte nullsub_11
|
|
thumb_func_end sub_8012100
|
|
|
|
thumb_func_start nullsub_11
|
|
nullsub_11: @ 801210C
|
|
bx lr
|
|
thumb_func_end nullsub_11
|
|
|
|
thumb_func_start sub_8012110
|
|
sub_8012110: @ 8012110
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldr r0, _08012134 @ =gUnknown_2023F4C
|
|
ldrh r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08012130
|
|
ldrh r0, [r2, 0x30]
|
|
ldrh r1, [r2, 0x24]
|
|
adds r0, r1
|
|
strh r0, [r2, 0x24]
|
|
ldrh r0, [r2, 0x32]
|
|
ldrh r1, [r2, 0x26]
|
|
adds r0, r1
|
|
strh r0, [r2, 0x26]
|
|
_08012130:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08012134: .4byte gUnknown_2023F4C
|
|
thumb_func_end sub_8012110
|
|
|
|
thumb_func_start dp11b_obj_instanciate
|
|
dp11b_obj_instanciate: @ 8012138
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r8, r1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r9, r2
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
mov r10, r3
|
|
cmp r1, 0
|
|
beq _08012174
|
|
ldr r0, _08012170 @ =gUnknown_2024018
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r2, r4, 1
|
|
adds r0, r2, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
b _08012186
|
|
.align 2, 0
|
|
_08012170: .4byte gUnknown_2024018
|
|
_08012174:
|
|
ldr r0, _080121D0 @ =gUnknown_2024018
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r2, r4, 1
|
|
adds r0, r2, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x4
|
|
_08012186:
|
|
ands r0, r1
|
|
adds r6, r2, 0
|
|
cmp r0, 0
|
|
bne _0801223C
|
|
ldr r0, _080121D4 @ =SpriteCB_HealthBoxBounce
|
|
bl CreateInvisibleSpriteWithCallback
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
mov r0, r8
|
|
cmp r0, 0x1
|
|
bne _080121E0
|
|
ldr r0, _080121D8 @ =gUnknown_3004FF0
|
|
adds r0, r4, r0
|
|
ldrb r7, [r0]
|
|
ldr r2, _080121D0 @ =gUnknown_2024018
|
|
ldr r0, [r2]
|
|
ldr r0, [r0, 0x4]
|
|
adds r1, r6, r4
|
|
lsls r1, 2
|
|
adds r0, r1, r0
|
|
strb r5, [r0, 0x2]
|
|
ldr r0, [r2]
|
|
ldr r0, [r0, 0x4]
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
movs r2, 0x2
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
ldr r2, _080121DC @ =gSprites
|
|
lsls r3, r5, 4
|
|
adds r0, r3, r5
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0x80
|
|
b _0801220E
|
|
.align 2, 0
|
|
_080121D0: .4byte gUnknown_2024018
|
|
_080121D4: .4byte SpriteCB_HealthBoxBounce
|
|
_080121D8: .4byte gUnknown_3004FF0
|
|
_080121DC: .4byte gSprites
|
|
_080121E0:
|
|
ldr r0, _0801224C @ =gUnknown_2023D44
|
|
adds r0, r4, r0
|
|
ldrb r7, [r0]
|
|
ldr r2, _08012250 @ =gUnknown_2024018
|
|
ldr r0, [r2]
|
|
ldr r0, [r0, 0x4]
|
|
adds r1, r6, r4
|
|
lsls r1, 2
|
|
adds r0, r1, r0
|
|
strb r5, [r0, 0x3]
|
|
ldr r0, [r2]
|
|
ldr r0, [r0, 0x4]
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
movs r2, 0x4
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
ldr r2, _08012254 @ =gSprites
|
|
lsls r3, r5, 4
|
|
adds r0, r3, r5
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0xC0
|
|
_0801220E:
|
|
strh r1, [r0, 0x2E]
|
|
adds r4, r2, 0
|
|
adds r1, r3, r5
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
mov r2, r9
|
|
lsls r0, r2, 24
|
|
asrs r0, 24
|
|
movs r2, 0
|
|
strh r0, [r1, 0x30]
|
|
mov r3, r10
|
|
lsls r0, r3, 24
|
|
asrs r0, 24
|
|
strh r0, [r1, 0x32]
|
|
strh r7, [r1, 0x34]
|
|
mov r0, r8
|
|
strh r0, [r1, 0x36]
|
|
lsls r0, r7, 4
|
|
adds r0, r7
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
strh r2, [r0, 0x24]
|
|
strh r2, [r0, 0x26]
|
|
_0801223C:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0801224C: .4byte gUnknown_2023D44
|
|
_08012250: .4byte gUnknown_2024018
|
|
_08012254: .4byte gSprites
|
|
thumb_func_end dp11b_obj_instanciate
|
|
|
|
thumb_func_start dp11b_obj_free
|
|
dp11b_obj_free: @ 8012258
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
cmp r1, 0x1
|
|
bne _080122AC
|
|
ldr r6, _080122A4 @ =gUnknown_2024018
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r5, r0, 2
|
|
adds r3, r5, r1
|
|
ldrb r1, [r3]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080122FA
|
|
ldr r2, _080122A8 @ =gSprites
|
|
ldrb r1, [r3, 0x2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x34]
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
bl DestroySprite
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r5, r1
|
|
ldrb r2, [r1]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
b _080122E6
|
|
.align 2, 0
|
|
_080122A4: .4byte gUnknown_2024018
|
|
_080122A8: .4byte gSprites
|
|
_080122AC:
|
|
ldr r6, _08012300 @ =gUnknown_2024018
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r5, r0, 2
|
|
adds r3, r5, r1
|
|
ldrb r1, [r3]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080122FA
|
|
ldr r2, _08012304 @ =gSprites
|
|
ldrb r1, [r3, 0x3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x34]
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
bl DestroySprite
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r5, r1
|
|
ldrb r2, [r1]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
_080122E6:
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldr r0, _08012304 @ =gSprites
|
|
lsls r1, r4, 4
|
|
adds r1, r4
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
movs r0, 0
|
|
strh r0, [r1, 0x24]
|
|
strh r0, [r1, 0x26]
|
|
_080122FA:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08012300: .4byte gUnknown_2024018
|
|
_08012304: .4byte gSprites
|
|
thumb_func_end dp11b_obj_free
|
|
|
|
thumb_func_start SpriteCB_HealthBoxBounce
|
|
SpriteCB_HealthBoxBounce: @ 8012308
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x34]
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r1, 0x36
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
bne _08012320
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
b _08012324
|
|
_08012320:
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
_08012324:
|
|
movs r2, 0x32
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
ldr r2, _08012350 @ =gSprites
|
|
lsls r1, r5, 4
|
|
adds r1, r5
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrh r2, [r4, 0x32]
|
|
adds r0, r2
|
|
strh r0, [r1, 0x26]
|
|
ldrh r0, [r4, 0x30]
|
|
ldrh r1, [r4, 0x2E]
|
|
adds r0, r1
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x2E]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08012350: .4byte gSprites
|
|
thumb_func_end SpriteCB_HealthBoxBounce
|
|
|
|
thumb_func_start sub_8012354
|
|
sub_8012354: @ 8012354
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
ldr r0, _08012368 @ =sub_8012398
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08012368: .4byte sub_8012398
|
|
thumb_func_end sub_8012354
|
|
|
|
thumb_func_start sub_801236C
|
|
sub_801236C: @ 801236C
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
adds r0, 0x2C
|
|
ldrb r1, [r0]
|
|
movs r0, 0x3F
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0801238E
|
|
ldr r1, _08012394 @ =gUnknown_824F048
|
|
adds r0, r2, 0
|
|
adds r0, 0x2B
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r2, 0
|
|
adds r0, 0x28
|
|
strb r1, [r0]
|
|
_0801238E:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08012394: .4byte gUnknown_824F048
|
|
thumb_func_end sub_801236C
|
|
|
|
thumb_func_start sub_8012398
|
|
sub_8012398: @ 8012398
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_801236C
|
|
adds r0, r4, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080123B2
|
|
ldr r0, _080123B8 @ =nullsub_11
|
|
str r0, [r4, 0x1C]
|
|
_080123B2:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080123B8: .4byte nullsub_11
|
|
thumb_func_end sub_8012398
|
|
|
|
thumb_func_start nullsub_12
|
|
nullsub_12: @ 80123BC
|
|
bx lr
|
|
thumb_func_end nullsub_12
|
|
|
|
thumb_func_start sub_80123C0
|
|
sub_80123C0: @ 80123C0
|
|
push {lr}
|
|
bl sub_8012434
|
|
ldr r1, _080123D8 @ =gUnknown_2023E82
|
|
movs r0, 0
|
|
strb r0, [r1, 0x1]
|
|
ldr r1, _080123DC @ =gUnknown_3004F84
|
|
ldr r0, _080123E0 @ =BattleIntroGetMonsData
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080123D8: .4byte gUnknown_2023E82
|
|
_080123DC: .4byte gUnknown_3004F84
|
|
_080123E0: .4byte BattleIntroGetMonsData
|
|
thumb_func_end sub_80123C0
|
|
|
|
thumb_func_start sub_80123E4
|
|
sub_80123E4: @ 80123E4
|
|
push {r4,r5,lr}
|
|
ldr r0, _08012424 @ =gUnknown_3004F84
|
|
ldr r0, [r0]
|
|
bl _call_via_r0
|
|
ldr r1, _08012428 @ =gActiveBattler
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r0, _0801242C @ =gBattlersCount
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0801241E
|
|
ldr r5, _08012430 @ =gUnknown_3004FE0
|
|
adds r4, r1, 0
|
|
_08012400:
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldr r0, [r0]
|
|
bl _call_via_r0
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
ldr r1, _0801242C @ =gBattlersCount
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _08012400
|
|
_0801241E:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08012424: .4byte gUnknown_3004F84
|
|
_08012428: .4byte gActiveBattler
|
|
_0801242C: .4byte gBattlersCount
|
|
_08012430: .4byte gUnknown_3004FE0
|
|
thumb_func_end sub_80123E4
|
|
|
|
thumb_func_start sub_8012434
|
|
sub_8012434: @ 8012434
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
movs r0, 0
|
|
bl TurnValuesCleanUp
|
|
bl SpecialStatusesClear
|
|
movs r2, 0
|
|
movs r3, 0
|
|
ldr r0, _080126CC @ =gUnknown_2023DB0
|
|
mov r10, r0
|
|
ldr r1, _080126D0 @ =gUnknown_2023DA8
|
|
mov r12, r1
|
|
ldr r0, _080126D4 @ =gUnknown_2023DA0
|
|
mov r9, r0
|
|
ldr r1, _080126D8 @ =gLastUsedMove
|
|
mov r8, r1
|
|
ldr r4, _080126DC @ =gDisableStructs
|
|
movs r5, 0
|
|
ldr r7, _080126E0 @ =gUnknown_2023D90
|
|
ldr r6, _080126E4 @ =gUnknown_2023DB8
|
|
_08012464:
|
|
ldr r0, _080126E8 @ =gStatuses3
|
|
adds r0, r5, r0
|
|
str r3, [r0]
|
|
movs r1, 0
|
|
_0801246C:
|
|
adds r0, r4, r1
|
|
strb r3, [r0]
|
|
adds r1, 0x1
|
|
cmp r1, 0x1B
|
|
bls _0801246C
|
|
movs r0, 0x2
|
|
strb r0, [r4, 0x16]
|
|
ldr r1, _080126EC @ =gUnknown_2023DD4
|
|
adds r0, r2, r1
|
|
strb r3, [r0]
|
|
mov r0, r8
|
|
strh r3, [r0]
|
|
mov r1, r9
|
|
strh r3, [r1]
|
|
mov r0, r12
|
|
strh r3, [r0]
|
|
mov r1, r10
|
|
strh r3, [r1]
|
|
ldr r0, _080126F0 @ =gUnknown_2023DC0
|
|
adds r1, r2, r0
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
strh r3, [r6]
|
|
strh r3, [r7]
|
|
ldr r1, _080126F4 @ =gBattleResources
|
|
ldr r0, [r1]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r5
|
|
str r3, [r0]
|
|
movs r0, 0x2
|
|
add r10, r0
|
|
add r12, r0
|
|
add r9, r0
|
|
add r8, r0
|
|
adds r4, 0x1C
|
|
adds r5, 0x4
|
|
adds r7, 0x2
|
|
adds r6, 0x2
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
ble _08012464
|
|
movs r5, 0
|
|
ldr r3, _080126F8 @ =gSideTimers
|
|
ldr r4, _080126FC @ =gSideAffecting
|
|
movs r2, 0x1
|
|
_080124C6:
|
|
strh r5, [r4]
|
|
movs r1, 0
|
|
_080124CA:
|
|
adds r0, r3, r1
|
|
strb r5, [r0]
|
|
adds r1, 0x1
|
|
cmp r1, 0xB
|
|
bls _080124CA
|
|
adds r3, 0xC
|
|
adds r4, 0x2
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _080124C6
|
|
movs r1, 0
|
|
ldr r2, _08012700 @ =sBattler_AI
|
|
strb r1, [r2]
|
|
ldr r0, _08012704 @ =gBattlerTarget
|
|
strb r1, [r0]
|
|
ldr r2, _08012708 @ =gBattleWeather
|
|
strh r1, [r2]
|
|
ldr r1, _0801270C @ =gUnknown_2023F20
|
|
movs r2, 0
|
|
movs r3, 0
|
|
_080124F2:
|
|
adds r0, r1, r2
|
|
strb r3, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x2B
|
|
bls _080124F2
|
|
movs r0, 0
|
|
ldr r1, _08012710 @ =gUnknown_2023DD0
|
|
str r0, [r1]
|
|
ldr r2, _08012714 @ =gBattleTypeFlags
|
|
ldr r0, [r2]
|
|
ldr r1, _08012718 @ =0x00010002
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08012522
|
|
ldr r1, _0801271C @ =gSaveBlock2Ptr
|
|
ldr r0, [r1]
|
|
ldrb r1, [r0, 0x15]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08012522
|
|
movs r0, 0x80
|
|
ldr r2, _08012710 @ =gUnknown_2023DD0
|
|
str r0, [r2]
|
|
_08012522:
|
|
ldr r1, _0801271C @ =gSaveBlock2Ptr
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, 0x15]
|
|
lsls r0, 30
|
|
lsrs r0, 31
|
|
movs r1, 0
|
|
ldr r2, _08012720 @ =gBattleScripting
|
|
strb r0, [r2, 0x1D]
|
|
ldr r0, _08012724 @ =gUnknown_2023D72
|
|
strb r1, [r0]
|
|
ldr r2, _08012728 @ =gUnknown_2023E8A
|
|
strb r1, [r2]
|
|
ldr r0, _0801272C @ =gUnknown_2023BC8
|
|
str r1, [r0]
|
|
movs r2, 0
|
|
ldr r0, _08012730 @ =gUnknown_2023E7E
|
|
strh r1, [r0]
|
|
ldr r1, _080126F4 @ =gBattleResources
|
|
ldr r0, [r1]
|
|
ldr r0, [r0, 0x8]
|
|
adds r0, 0x20
|
|
strb r2, [r0]
|
|
ldr r0, [r1]
|
|
ldr r0, [r0, 0xC]
|
|
adds r0, 0x20
|
|
strb r2, [r0]
|
|
ldr r1, _08012734 @ =gUnknown_2023E82
|
|
movs r2, 0
|
|
adds r0, r1, 0x7
|
|
_0801255C:
|
|
strb r2, [r0]
|
|
subs r0, 0x1
|
|
cmp r0, r1
|
|
bge _0801255C
|
|
movs r2, 0
|
|
mov r9, r2
|
|
ldr r0, _08012738 @ =gUnknown_2023E7C
|
|
strh r2, [r0]
|
|
movs r0, 0
|
|
ldr r1, _0801273C @ =gBattleMoveDamage
|
|
str r0, [r1]
|
|
ldr r2, _08012740 @ =gUnknown_2023F4C
|
|
strh r0, [r2]
|
|
mov r1, r9
|
|
ldr r0, _08012720 @ =gBattleScripting
|
|
strb r1, [r0, 0x18]
|
|
strb r1, [r0, 0x19]
|
|
ldr r2, _08012744 @ =gUnknown_3004FD4
|
|
strb r1, [r2]
|
|
ldr r0, _08012748 @ =gAbsentBattlerFlags
|
|
strb r1, [r0]
|
|
ldr r7, _0801274C @ =gBattleStruct
|
|
ldr r0, [r7]
|
|
adds r0, 0x6C
|
|
strb r1, [r0]
|
|
ldr r0, [r7]
|
|
adds r0, 0x79
|
|
strb r1, [r0]
|
|
ldr r0, [r7]
|
|
adds r0, 0x7A
|
|
strb r1, [r0]
|
|
ldr r0, _08012750 @ =gEnemyParty
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
ldr r4, [r7]
|
|
adds r4, 0x7C
|
|
ldr r1, _08012754 @ =gBaseStats
|
|
mov r8, r1
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
add r1, r8
|
|
ldrb r0, [r1, 0x8]
|
|
movs r5, 0x64
|
|
muls r0, r5
|
|
ldr r6, _08012758 @ =0x000004fb
|
|
adds r1, r6, 0
|
|
bl __divsi3
|
|
strb r0, [r4]
|
|
ldr r0, _08012750 @ =gEnemyParty
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
ldr r4, [r7]
|
|
adds r4, 0x7B
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
add r1, r8
|
|
ldrb r0, [r1, 0x18]
|
|
muls r0, r5
|
|
adds r1, r6, 0
|
|
bl __divsi3
|
|
strb r0, [r4]
|
|
ldr r0, [r7]
|
|
adds r1, r0, 0
|
|
adds r1, 0x7B
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x1
|
|
bhi _080125F2
|
|
movs r0, 0x2
|
|
strb r0, [r1]
|
|
_080125F2:
|
|
ldr r0, [r7]
|
|
mov r2, r9
|
|
strb r2, [r0, 0x12]
|
|
ldr r0, [r7]
|
|
adds r0, 0x4A
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
movs r2, 0
|
|
adds r4, r7, 0
|
|
ldr r5, _0801275C @ =gBattleResults
|
|
adds r3, r4, 0
|
|
movs r1, 0
|
|
_0801260A:
|
|
ldr r0, [r3]
|
|
adds r0, r2, r0
|
|
adds r0, 0x98
|
|
strb r1, [r0]
|
|
ldr r0, [r3]
|
|
adds r0, r2, r0
|
|
adds r0, 0xB8
|
|
strb r1, [r0]
|
|
ldr r0, [r3]
|
|
adds r0, r2, r0
|
|
adds r0, 0xC8
|
|
strb r1, [r0]
|
|
ldr r0, [r3]
|
|
adds r0, r2, r0
|
|
adds r0, 0xD0
|
|
strb r1, [r0]
|
|
ldr r0, [r3]
|
|
adds r0, r2, r0
|
|
adds r0, 0xE0
|
|
strb r1, [r0]
|
|
ldr r0, [r3]
|
|
adds r0, r2, r0
|
|
adds r0, 0xE8
|
|
strb r1, [r0]
|
|
ldr r0, [r3]
|
|
adds r0, r2, r0
|
|
adds r0, 0xF0
|
|
strb r1, [r0]
|
|
ldr r0, [r3]
|
|
adds r0, r2, r0
|
|
adds r0, 0xF8
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x7
|
|
ble _0801260A
|
|
ldr r0, [r4]
|
|
adds r0, 0x92
|
|
movs r1, 0x6
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, 0x93
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, 0xDF
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, _0801275C @ =gBattleResults
|
|
movs r1, 0
|
|
movs r2, 0xA
|
|
adds r0, 0x40
|
|
_0801266E:
|
|
strb r1, [r0]
|
|
subs r0, 0x1
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _0801266E
|
|
movs r1, 0
|
|
strb r1, [r5, 0x13]
|
|
strb r1, [r5]
|
|
strb r1, [r5, 0x1]
|
|
strb r1, [r5, 0x2]
|
|
strb r1, [r5, 0x3]
|
|
strb r1, [r5, 0x4]
|
|
ldrb r2, [r5, 0x5]
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r2
|
|
movs r2, 0x3
|
|
negs r2, r2
|
|
ands r0, r2
|
|
strb r0, [r5, 0x5]
|
|
strh r1, [r5, 0x20]
|
|
strh r1, [r5, 0x22]
|
|
strh r1, [r5, 0x24]
|
|
strh r1, [r5, 0x6]
|
|
strh r1, [r5, 0x26]
|
|
strh r1, [r5, 0x28]
|
|
movs r2, 0
|
|
adds r4, r5, 0
|
|
adds r4, 0x8
|
|
movs r3, 0
|
|
adds r1, r5, 0
|
|
adds r1, 0x14
|
|
_080126AE:
|
|
adds r0, r2, r4
|
|
strb r3, [r0]
|
|
strb r3, [r1]
|
|
strb r3, [r1, 0x16]
|
|
adds r1, 0x1
|
|
adds r2, 0x1
|
|
cmp r2, 0x9
|
|
ble _080126AE
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080126CC: .4byte gUnknown_2023DB0
|
|
_080126D0: .4byte gUnknown_2023DA8
|
|
_080126D4: .4byte gUnknown_2023DA0
|
|
_080126D8: .4byte gLastUsedMove
|
|
_080126DC: .4byte gDisableStructs
|
|
_080126E0: .4byte gUnknown_2023D90
|
|
_080126E4: .4byte gUnknown_2023DB8
|
|
_080126E8: .4byte gStatuses3
|
|
_080126EC: .4byte gUnknown_2023DD4
|
|
_080126F0: .4byte gUnknown_2023DC0
|
|
_080126F4: .4byte gBattleResources
|
|
_080126F8: .4byte gSideTimers
|
|
_080126FC: .4byte gSideAffecting
|
|
_08012700: .4byte sBattler_AI
|
|
_08012704: .4byte gBattlerTarget
|
|
_08012708: .4byte gBattleWeather
|
|
_0801270C: .4byte gUnknown_2023F20
|
|
_08012710: .4byte gUnknown_2023DD0
|
|
_08012714: .4byte gBattleTypeFlags
|
|
_08012718: .4byte 0x00010002
|
|
_0801271C: .4byte gSaveBlock2Ptr
|
|
_08012720: .4byte gBattleScripting
|
|
_08012724: .4byte gUnknown_2023D72
|
|
_08012728: .4byte gUnknown_2023E8A
|
|
_0801272C: .4byte gUnknown_2023BC8
|
|
_08012730: .4byte gUnknown_2023E7E
|
|
_08012734: .4byte gUnknown_2023E82
|
|
_08012738: .4byte gUnknown_2023E7C
|
|
_0801273C: .4byte gBattleMoveDamage
|
|
_08012740: .4byte gUnknown_2023F4C
|
|
_08012744: .4byte gUnknown_3004FD4
|
|
_08012748: .4byte gAbsentBattlerFlags
|
|
_0801274C: .4byte gBattleStruct
|
|
_08012750: .4byte gEnemyParty
|
|
_08012754: .4byte gBaseStats
|
|
_08012758: .4byte 0x000004fb
|
|
_0801275C: .4byte gBattleResults
|
|
thumb_func_end sub_8012434
|
|
|
|
thumb_func_start sub_8012760
|
|
sub_8012760: @ 8012760
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x1C
|
|
ldr r4, _080128C4 @ =gDisableStructs
|
|
ldr r5, _080128C8 @ =gActiveBattler
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
mov r1, sp
|
|
adds r0, r4
|
|
ldm r0!, {r2,r3,r6}
|
|
stm r1!, {r2,r3,r6}
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
ldr r2, _080128CC @ =gBattleMoves
|
|
ldr r3, _080128D0 @ =gCurrentMove
|
|
ldrh r1, [r3]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
mov r9, r4
|
|
mov r12, r5
|
|
ldr r6, _080128D4 @ =gStatuses3
|
|
mov r10, r6
|
|
cmp r0, 0x7F
|
|
beq _08012838
|
|
movs r5, 0
|
|
mov r4, r12
|
|
movs r3, 0x58
|
|
ldr r2, _080128D8 @ =gBattleMons
|
|
adds r2, 0x18
|
|
movs r1, 0x6
|
|
_080127B0:
|
|
ldrb r0, [r4]
|
|
muls r0, r3
|
|
adds r0, r5, r0
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
adds r5, 0x1
|
|
cmp r5, 0x7
|
|
ble _080127B0
|
|
movs r5, 0
|
|
ldr r7, _080128DC @ =gBattlersCount
|
|
ldrb r7, [r7]
|
|
cmp r5, r7
|
|
bge _08012824
|
|
ldr r0, _080128E0 @ =gUnknown_2023C34
|
|
mov r8, r0
|
|
ldr r3, _080128C4 @ =gDisableStructs
|
|
ldr r4, _080128D4 @ =gStatuses3
|
|
_080127D2:
|
|
movs r0, 0x58
|
|
muls r0, r5
|
|
mov r1, r8
|
|
adds r2, r0, r1
|
|
ldr r1, [r2]
|
|
movs r0, 0x80
|
|
lsls r0, 19
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080127F6
|
|
ldrb r0, [r3, 0x14]
|
|
ldr r6, _080128C8 @ =gActiveBattler
|
|
ldrb r6, [r6]
|
|
cmp r0, r6
|
|
bne _080127F6
|
|
ldr r0, _080128E4 @ =0xfbffffff
|
|
ands r1, r0
|
|
str r1, [r2]
|
|
_080127F6:
|
|
ldr r1, [r4]
|
|
movs r0, 0x18
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08012816
|
|
ldrb r0, [r3, 0x15]
|
|
ldr r7, _080128C8 @ =gActiveBattler
|
|
ldrb r7, [r7]
|
|
cmp r0, r7
|
|
bne _08012816
|
|
movs r0, 0x19
|
|
negs r0, r0
|
|
ands r1, r0
|
|
str r1, [r4]
|
|
movs r0, 0
|
|
strb r0, [r3, 0x15]
|
|
_08012816:
|
|
adds r3, 0x1C
|
|
adds r4, 0x4
|
|
adds r5, 0x1
|
|
ldr r0, _080128DC @ =gBattlersCount
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
blt _080127D2
|
|
_08012824:
|
|
ldr r1, _080128D0 @ =gCurrentMove
|
|
ldrh r0, [r1]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r2, _080128CC @ =gBattleMoves
|
|
adds r1, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x7F
|
|
bne _080128F0
|
|
_08012838:
|
|
mov r3, r12
|
|
ldrb r1, [r3]
|
|
movs r0, 0x58
|
|
adds r2, r1, 0
|
|
muls r2, r0
|
|
ldr r0, _080128D8 @ =gBattleMons
|
|
adds r0, 0x50
|
|
adds r2, r0
|
|
ldr r0, [r2]
|
|
ldr r1, _080128E8 @ =0x15100007
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
ldrb r1, [r3]
|
|
lsls r1, 2
|
|
add r1, r10
|
|
ldr r0, [r1]
|
|
ldr r2, _080128EC @ =0x0003043f
|
|
ands r0, r2
|
|
str r0, [r1]
|
|
movs r5, 0
|
|
ldr r6, _080128DC @ =gBattlersCount
|
|
ldrb r6, [r6]
|
|
cmp r5, r6
|
|
bge _0801290C
|
|
mov r7, r12
|
|
movs r6, 0
|
|
_0801286C:
|
|
ldrb r0, [r7]
|
|
bl GetBattlerSide
|
|
adds r4, r0, 0
|
|
lsls r0, r5, 24
|
|
lsrs r0, 24
|
|
bl GetBattlerSide
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
cmp r4, r0
|
|
beq _080128AC
|
|
ldr r1, _080128D4 @ =gStatuses3
|
|
lsls r0, r5, 2
|
|
adds r2, r0, r1
|
|
ldr r1, [r2]
|
|
movs r0, 0x18
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080128AC
|
|
ldr r0, _080128C4 @ =gDisableStructs
|
|
adds r0, r6, r0
|
|
ldrb r0, [r0, 0x15]
|
|
ldrb r3, [r7]
|
|
cmp r0, r3
|
|
bne _080128AC
|
|
movs r0, 0x19
|
|
negs r0, r0
|
|
ands r1, r0
|
|
movs r0, 0x10
|
|
orrs r1, r0
|
|
str r1, [r2]
|
|
_080128AC:
|
|
adds r6, 0x1C
|
|
adds r5, 0x1
|
|
ldr r0, _080128DC @ =gBattlersCount
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
blt _0801286C
|
|
ldr r6, _080128C4 @ =gDisableStructs
|
|
mov r9, r6
|
|
ldr r7, _080128C8 @ =gActiveBattler
|
|
mov r12, r7
|
|
b _0801290C
|
|
.align 2, 0
|
|
_080128C4: .4byte gDisableStructs
|
|
_080128C8: .4byte gActiveBattler
|
|
_080128CC: .4byte gBattleMoves
|
|
_080128D0: .4byte gCurrentMove
|
|
_080128D4: .4byte gStatuses3
|
|
_080128D8: .4byte gBattleMons
|
|
_080128DC: .4byte gBattlersCount
|
|
_080128E0: .4byte gUnknown_2023C34
|
|
_080128E4: .4byte 0xfbffffff
|
|
_080128E8: .4byte 0x15100007
|
|
_080128EC: .4byte 0x0003043f
|
|
_080128F0:
|
|
mov r0, r12
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
ldr r1, _08012B7C @ =gBattleMons
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
mov r2, r12
|
|
ldrb r0, [r2]
|
|
lsls r0, 2
|
|
add r0, r10
|
|
str r1, [r0]
|
|
_0801290C:
|
|
movs r5, 0
|
|
ldr r7, _08012B80 @ =gBattleStruct
|
|
ldr r3, _08012B84 @ =gUnknown_2023FF8
|
|
mov r10, r3
|
|
ldr r6, _08012B88 @ =gBattlersCount
|
|
ldrb r6, [r6]
|
|
cmp r5, r6
|
|
bge _0801296C
|
|
ldr r0, _08012B8C @ =gUnknown_2023C34
|
|
mov r8, r0
|
|
ldr r6, _08012B90 @ =gBitTable
|
|
ldr r4, _08012B94 @ =gActiveBattler
|
|
_08012924:
|
|
movs r0, 0x58
|
|
muls r0, r5
|
|
mov r1, r8
|
|
adds r3, r0, r1
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldr r0, [r0]
|
|
lsls r2, r0, 16
|
|
ldr r1, [r3]
|
|
adds r0, r1, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08012944
|
|
bics r1, r2
|
|
str r1, [r3]
|
|
_08012944:
|
|
ldr r1, [r3]
|
|
movs r0, 0xE0
|
|
lsls r0, 8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08012962
|
|
ldr r0, [r7]
|
|
adds r0, r5, r0
|
|
ldrb r0, [r0, 0x14]
|
|
ldrb r2, [r4]
|
|
cmp r0, r2
|
|
bne _08012962
|
|
ldr r0, _08012B98 @ =0xffff1fff
|
|
ands r1, r0
|
|
str r1, [r3]
|
|
_08012962:
|
|
adds r5, 0x1
|
|
ldr r3, _08012B88 @ =gBattlersCount
|
|
ldrb r3, [r3]
|
|
cmp r5, r3
|
|
blt _08012924
|
|
_0801296C:
|
|
mov r6, r12
|
|
ldrb r0, [r6]
|
|
add r0, r10
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldrb r0, [r6]
|
|
ldr r2, _08012B9C @ =gUnknown_2023FFC
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
mov r3, r9
|
|
adds r1, r0, r3
|
|
movs r5, 0
|
|
movs r2, 0
|
|
_0801298E:
|
|
adds r0, r1, r5
|
|
strb r2, [r0]
|
|
adds r5, 0x1
|
|
cmp r5, 0x1B
|
|
bls _0801298E
|
|
ldr r6, _08012BA0 @ =gCurrentMove
|
|
ldrh r0, [r6]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, _08012BA4 @ =gBattleMoves
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x7F
|
|
bne _08012A1A
|
|
mov r2, r12
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
add r0, r9
|
|
mov r1, sp
|
|
ldrb r1, [r1, 0xA]
|
|
strb r1, [r0, 0xA]
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
add r0, r9
|
|
mov r1, sp
|
|
ldrb r1, [r1, 0x15]
|
|
strb r1, [r0, 0x15]
|
|
ldrb r0, [r2]
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
add r1, r9
|
|
mov r0, sp
|
|
ldrb r2, [r0, 0xF]
|
|
lsls r2, 28
|
|
movs r4, 0xF
|
|
lsrs r2, 28
|
|
ldrb r3, [r1, 0xF]
|
|
movs r0, 0x10
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r2
|
|
strb r0, [r1, 0xF]
|
|
mov r3, r12
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
add r0, r9
|
|
mov r1, sp
|
|
ldrb r1, [r1, 0xF]
|
|
lsrs r1, 4
|
|
lsls r1, 4
|
|
ldrb r2, [r0, 0xF]
|
|
ands r4, r2
|
|
orrs r4, r1
|
|
strb r4, [r0, 0xF]
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
add r0, r9
|
|
mov r1, sp
|
|
ldrb r1, [r1, 0x14]
|
|
strb r1, [r0, 0x14]
|
|
_08012A1A:
|
|
movs r0, 0
|
|
ldr r6, _08012BA8 @ =gMoveResultFlags
|
|
strb r0, [r6]
|
|
mov r0, r12
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
add r0, r9
|
|
movs r2, 0
|
|
movs r1, 0x2
|
|
strb r1, [r0, 0x16]
|
|
mov r1, r12
|
|
ldrb r0, [r1]
|
|
lsls r0, 1
|
|
ldr r3, _08012BAC @ =gLastUsedMove
|
|
adds r0, r3
|
|
movs r3, 0
|
|
strh r2, [r0]
|
|
ldrb r0, [r1]
|
|
lsls r0, 1
|
|
ldr r6, _08012BB0 @ =gUnknown_2023DA0
|
|
adds r0, r6
|
|
strh r2, [r0]
|
|
ldrb r0, [r1]
|
|
lsls r0, 1
|
|
ldr r1, _08012BB4 @ =gUnknown_2023DA8
|
|
adds r0, r1
|
|
strh r2, [r0]
|
|
mov r6, r12
|
|
ldrb r0, [r6]
|
|
lsls r0, 1
|
|
ldr r1, _08012BB8 @ =gUnknown_2023DB0
|
|
adds r0, r1
|
|
strh r2, [r0]
|
|
ldrb r0, [r6]
|
|
lsls r0, 1
|
|
ldr r6, _08012BBC @ =gUnknown_2023D90
|
|
adds r0, r6
|
|
strh r2, [r0]
|
|
mov r1, r12
|
|
ldrb r0, [r1]
|
|
ldr r2, _08012BC0 @ =gUnknown_2023DC0
|
|
adds r0, r2
|
|
movs r1, 0xFF
|
|
strb r1, [r0]
|
|
mov r6, r12
|
|
ldrb r0, [r6]
|
|
ldr r1, [r7]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
adds r0, 0x98
|
|
strb r3, [r0]
|
|
ldrb r0, [r6]
|
|
ldr r1, [r7]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
adds r0, 0x99
|
|
strb r3, [r0]
|
|
ldrb r0, [r6]
|
|
ldr r1, [r7]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
adds r0, 0xE0
|
|
strb r3, [r0]
|
|
ldrb r0, [r6]
|
|
ldr r1, [r7]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
adds r0, 0xE1
|
|
strb r3, [r0]
|
|
ldrb r0, [r6]
|
|
ldr r1, [r7]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
adds r0, 0xE2
|
|
strb r3, [r0]
|
|
ldrb r0, [r6]
|
|
ldr r1, [r7]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
adds r0, 0xE3
|
|
strb r3, [r0]
|
|
ldrb r0, [r6]
|
|
ldr r1, [r7]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
adds r0, 0xE4
|
|
strb r3, [r0]
|
|
ldrb r0, [r6]
|
|
ldr r1, [r7]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
adds r0, 0xE5
|
|
strb r3, [r0]
|
|
ldrb r0, [r6]
|
|
ldr r1, [r7]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
adds r0, 0xE6
|
|
strb r3, [r0]
|
|
ldrb r0, [r6]
|
|
ldr r1, [r7]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
adds r0, 0xE7
|
|
strb r3, [r0]
|
|
movs r5, 0
|
|
ldr r0, _08012B88 @ =gBattlersCount
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bge _08012B3C
|
|
adds r4, r7, 0
|
|
_08012AFC:
|
|
ldrb r1, [r6]
|
|
cmp r5, r1
|
|
beq _08012B14
|
|
ldr r0, [r4]
|
|
lsls r1, r5, 1
|
|
adds r0, r1, r0
|
|
adds r0, 0x98
|
|
strb r3, [r0]
|
|
ldr r0, [r4]
|
|
adds r1, r0
|
|
adds r1, 0x99
|
|
strb r3, [r1]
|
|
_08012B14:
|
|
ldrb r0, [r6]
|
|
ldr r1, [r4]
|
|
lsls r0, 1
|
|
lsls r2, r5, 3
|
|
adds r0, r2
|
|
adds r0, r1
|
|
adds r0, 0xE0
|
|
strb r3, [r0]
|
|
ldrb r0, [r6]
|
|
ldr r1, [r4]
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
adds r0, r1
|
|
adds r0, 0xE1
|
|
strb r3, [r0]
|
|
adds r5, 0x1
|
|
ldr r2, _08012B88 @ =gBattlersCount
|
|
ldrb r2, [r2]
|
|
cmp r5, r2
|
|
blt _08012AFC
|
|
_08012B3C:
|
|
mov r3, r12
|
|
ldrb r0, [r3]
|
|
ldr r1, [r7]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
adds r0, 0xC8
|
|
movs r2, 0
|
|
strb r2, [r0]
|
|
ldrb r0, [r3]
|
|
ldr r1, [r7]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
adds r0, 0xC9
|
|
strb r2, [r0]
|
|
ldr r6, _08012BC4 @ =gBattleResources
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, 0x4]
|
|
ldrb r0, [r3]
|
|
lsls r0, 2
|
|
adds r1, r0
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
ldr r7, _08012BA0 @ =gCurrentMove
|
|
strh r0, [r7]
|
|
add sp, 0x1C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08012B7C: .4byte gBattleMons
|
|
_08012B80: .4byte gBattleStruct
|
|
_08012B84: .4byte gUnknown_2023FF8
|
|
_08012B88: .4byte gBattlersCount
|
|
_08012B8C: .4byte gUnknown_2023C34
|
|
_08012B90: .4byte gBitTable
|
|
_08012B94: .4byte gActiveBattler
|
|
_08012B98: .4byte 0xffff1fff
|
|
_08012B9C: .4byte gUnknown_2023FFC
|
|
_08012BA0: .4byte gCurrentMove
|
|
_08012BA4: .4byte gBattleMoves
|
|
_08012BA8: .4byte gMoveResultFlags
|
|
_08012BAC: .4byte gLastUsedMove
|
|
_08012BB0: .4byte gUnknown_2023DA0
|
|
_08012BB4: .4byte gUnknown_2023DA8
|
|
_08012BB8: .4byte gUnknown_2023DB0
|
|
_08012BBC: .4byte gUnknown_2023D90
|
|
_08012BC0: .4byte gUnknown_2023DC0
|
|
_08012BC4: .4byte gBattleResources
|
|
thumb_func_end sub_8012760
|
|
|
|
thumb_func_start sub_8012BC8
|
|
sub_8012BC8: @ 8012BC8
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
movs r3, 0
|
|
ldr r7, _08012F5C @ =gActiveBattler
|
|
ldr r6, _08012F60 @ =gStatuses3
|
|
ldr r0, _08012F64 @ =gUnknown_2023FF8
|
|
mov r8, r0
|
|
ldr r1, _08012F68 @ =gUnknown_2023FFC
|
|
mov r9, r1
|
|
ldr r2, _08012F6C @ =gUnknown_2023E8C
|
|
mov r12, r2
|
|
adds r5, r7, 0
|
|
movs r4, 0x58
|
|
ldr r2, _08012F70 @ =gBattleMons
|
|
adds r2, 0x18
|
|
movs r1, 0x6
|
|
_08012BEE:
|
|
ldrb r0, [r5]
|
|
muls r0, r4
|
|
adds r0, r3, r0
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
adds r3, 0x1
|
|
cmp r3, 0x7
|
|
ble _08012BEE
|
|
ldrb r1, [r7]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
ldr r2, _08012F70 @ =gBattleMons
|
|
adds r2, 0x50
|
|
adds r0, r2
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
ldrb r0, [r7]
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
str r1, [r0]
|
|
movs r3, 0
|
|
ldr r0, _08012F74 @ =gBattlersCount
|
|
ldrb r0, [r0]
|
|
cmp r3, r0
|
|
bge _08012C8A
|
|
adds r4, r2, 0
|
|
movs r5, 0
|
|
ldr r6, _08012F78 @ =gBitTable
|
|
_08012C26:
|
|
ldr r1, [r4]
|
|
movs r0, 0x80
|
|
lsls r0, 19
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08012C44
|
|
ldr r2, _08012F7C @ =gDisableStructs
|
|
adds r0, r5, r2
|
|
ldrb r0, [r0, 0x14]
|
|
ldrb r2, [r7]
|
|
cmp r0, r2
|
|
bne _08012C44
|
|
ldr r0, _08012F80 @ =0xfbffffff
|
|
ands r1, r0
|
|
str r1, [r4]
|
|
_08012C44:
|
|
ldrb r0, [r7]
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldr r0, [r0]
|
|
lsls r2, r0, 16
|
|
ldr r1, [r4]
|
|
adds r0, r1, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08012C5C
|
|
bics r1, r2
|
|
str r1, [r4]
|
|
_08012C5C:
|
|
ldr r1, [r4]
|
|
movs r0, 0xE0
|
|
lsls r0, 8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08012C7C
|
|
ldr r2, _08012F84 @ =gBattleStruct
|
|
ldr r0, [r2]
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0, 0x14]
|
|
ldrb r2, [r7]
|
|
cmp r0, r2
|
|
bne _08012C7C
|
|
ldr r0, _08012F88 @ =0xffff1fff
|
|
ands r1, r0
|
|
str r1, [r4]
|
|
_08012C7C:
|
|
adds r4, 0x58
|
|
adds r5, 0x1C
|
|
adds r3, 0x1
|
|
ldr r0, _08012F74 @ =gBattlersCount
|
|
ldrb r0, [r0]
|
|
cmp r3, r0
|
|
blt _08012C26
|
|
_08012C8A:
|
|
ldrb r0, [r7]
|
|
add r0, r8
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldrb r0, [r7]
|
|
add r0, r9
|
|
strb r1, [r0]
|
|
ldrb r1, [r7]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
ldr r2, _08012F7C @ =gDisableStructs
|
|
adds r1, r0, r2
|
|
movs r3, 0
|
|
movs r2, 0
|
|
_08012CA8:
|
|
adds r0, r1, r3
|
|
strb r2, [r0]
|
|
adds r3, 0x1
|
|
cmp r3, 0x1B
|
|
bls _08012CA8
|
|
ldrb r1, [r7]
|
|
lsls r1, 4
|
|
add r1, r12
|
|
ldrb r2, [r1]
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
mov r9, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldrb r1, [r7]
|
|
lsls r1, 4
|
|
add r1, r12
|
|
ldrb r2, [r1]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
mov r8, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldrb r1, [r7]
|
|
lsls r1, 4
|
|
add r1, r12
|
|
ldrb r2, [r1]
|
|
movs r6, 0x5
|
|
negs r6, r6
|
|
adds r0, r6, 0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldrb r1, [r7]
|
|
lsls r1, 4
|
|
add r1, r12
|
|
ldrb r2, [r1]
|
|
movs r0, 0x9
|
|
negs r0, r0
|
|
mov r10, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldrb r1, [r7]
|
|
lsls r1, 4
|
|
add r1, r12
|
|
ldrb r2, [r1]
|
|
movs r0, 0x11
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldrb r1, [r7]
|
|
lsls r1, 4
|
|
add r1, r12
|
|
ldrb r2, [r1]
|
|
movs r5, 0x21
|
|
negs r5, r5
|
|
adds r0, r5, 0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldrb r1, [r7]
|
|
lsls r1, 4
|
|
add r1, r12
|
|
ldrb r2, [r1]
|
|
movs r4, 0x41
|
|
negs r4, r4
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldrb r1, [r7]
|
|
lsls r1, 4
|
|
add r1, r12
|
|
ldrb r2, [r1]
|
|
movs r3, 0x7F
|
|
adds r0, r3, 0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldrb r1, [r7]
|
|
lsls r1, 4
|
|
add r1, r12
|
|
ldrb r2, [r1, 0x1]
|
|
mov r0, r9
|
|
ands r0, r2
|
|
strb r0, [r1, 0x1]
|
|
ldrb r1, [r7]
|
|
lsls r1, 4
|
|
add r1, r12
|
|
ldrb r2, [r1, 0x1]
|
|
mov r0, r8
|
|
ands r0, r2
|
|
strb r0, [r1, 0x1]
|
|
ldrb r1, [r7]
|
|
lsls r1, 4
|
|
add r1, r12
|
|
ldrb r2, [r1, 0x1]
|
|
adds r0, r6, 0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x1]
|
|
ldrb r1, [r7]
|
|
lsls r1, 4
|
|
add r1, r12
|
|
ldrb r2, [r1, 0x1]
|
|
movs r0, 0x19
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x1]
|
|
ldrb r0, [r7]
|
|
lsls r0, 4
|
|
add r0, r12
|
|
ldrb r1, [r0, 0x1]
|
|
ands r5, r1
|
|
strb r5, [r0, 0x1]
|
|
ldrb r0, [r7]
|
|
lsls r0, 4
|
|
add r0, r12
|
|
ldrb r1, [r0, 0x1]
|
|
ands r4, r1
|
|
strb r4, [r0, 0x1]
|
|
ldrb r0, [r7]
|
|
lsls r0, 4
|
|
add r0, r12
|
|
ldrb r1, [r0, 0x1]
|
|
ands r3, r1
|
|
strb r3, [r0, 0x1]
|
|
ldrb r0, [r7]
|
|
lsls r0, 4
|
|
add r0, r12
|
|
ldrb r1, [r0, 0x2]
|
|
mov r2, r9
|
|
ands r2, r1
|
|
strb r2, [r0, 0x2]
|
|
ldrb r0, [r7]
|
|
lsls r0, 4
|
|
add r0, r12
|
|
ldrb r1, [r0, 0x2]
|
|
mov r2, r8
|
|
ands r2, r1
|
|
strb r2, [r0, 0x2]
|
|
ldrb r0, [r7]
|
|
lsls r0, 4
|
|
add r0, r12
|
|
ldrb r1, [r0, 0x2]
|
|
ands r6, r1
|
|
strb r6, [r0, 0x2]
|
|
ldrb r0, [r7]
|
|
lsls r0, 4
|
|
add r0, r12
|
|
ldrb r1, [r0, 0x2]
|
|
mov r2, r10
|
|
ands r2, r1
|
|
strb r2, [r0, 0x2]
|
|
ldrb r1, [r7]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _08012F7C @ =gDisableStructs
|
|
adds r0, r1
|
|
movs r2, 0
|
|
movs r1, 0x2
|
|
strb r1, [r0, 0x16]
|
|
ldrb r0, [r7]
|
|
lsls r0, 1
|
|
ldr r1, _08012F8C @ =gLastUsedMove
|
|
adds r0, r1
|
|
movs r3, 0
|
|
strh r2, [r0]
|
|
ldrb r0, [r7]
|
|
lsls r0, 1
|
|
ldr r1, _08012F90 @ =gUnknown_2023DA0
|
|
adds r0, r1
|
|
strh r2, [r0]
|
|
ldrb r0, [r7]
|
|
lsls r0, 1
|
|
ldr r1, _08012F94 @ =gUnknown_2023DA8
|
|
adds r0, r1
|
|
strh r2, [r0]
|
|
ldrb r0, [r7]
|
|
lsls r0, 1
|
|
ldr r1, _08012F98 @ =gUnknown_2023DB0
|
|
adds r0, r1
|
|
strh r2, [r0]
|
|
ldrb r0, [r7]
|
|
lsls r0, 1
|
|
ldr r1, _08012F9C @ =gUnknown_2023D90
|
|
adds r0, r1
|
|
strh r2, [r0]
|
|
ldrb r0, [r7]
|
|
ldr r2, _08012FA0 @ =gUnknown_2023DC0
|
|
adds r0, r2
|
|
movs r1, 0xFF
|
|
strb r1, [r0]
|
|
ldrb r0, [r7]
|
|
ldr r2, _08012F84 @ =gBattleStruct
|
|
ldr r1, [r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
adds r0, 0xC8
|
|
strb r3, [r0]
|
|
ldrb r0, [r7]
|
|
ldr r1, [r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
adds r0, 0xC9
|
|
strb r3, [r0]
|
|
ldrb r0, [r7]
|
|
ldr r1, [r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
adds r0, 0x98
|
|
strb r3, [r0]
|
|
ldrb r0, [r7]
|
|
ldr r1, [r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
adds r0, 0x99
|
|
strb r3, [r0]
|
|
ldrb r0, [r7]
|
|
ldr r1, [r2]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
adds r0, 0xE0
|
|
strb r3, [r0]
|
|
ldrb r0, [r7]
|
|
ldr r1, [r2]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
adds r0, 0xE1
|
|
strb r3, [r0]
|
|
ldrb r0, [r7]
|
|
ldr r1, [r2]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
adds r0, 0xE2
|
|
strb r3, [r0]
|
|
ldrb r0, [r7]
|
|
ldr r1, [r2]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
adds r0, 0xE3
|
|
strb r3, [r0]
|
|
ldrb r0, [r7]
|
|
ldr r1, [r2]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
adds r0, 0xE4
|
|
strb r3, [r0]
|
|
ldrb r0, [r7]
|
|
ldr r1, [r2]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
adds r0, 0xE5
|
|
strb r3, [r0]
|
|
ldrb r0, [r7]
|
|
ldr r1, [r2]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
adds r0, 0xE6
|
|
strb r3, [r0]
|
|
ldrb r0, [r7]
|
|
ldr r1, [r2]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
adds r0, 0xE7
|
|
strb r3, [r0]
|
|
movs r3, 0
|
|
ldr r0, _08012F74 @ =gBattlersCount
|
|
ldrb r0, [r0]
|
|
cmp r3, r0
|
|
bge _08012F04
|
|
adds r6, r7, 0
|
|
adds r5, r2, 0
|
|
movs r4, 0
|
|
_08012EC4:
|
|
ldrb r1, [r6]
|
|
cmp r3, r1
|
|
beq _08012EDC
|
|
ldr r0, [r5]
|
|
lsls r1, r3, 1
|
|
adds r0, r1, r0
|
|
adds r0, 0x98
|
|
strb r4, [r0]
|
|
ldr r0, [r5]
|
|
adds r1, r0
|
|
adds r1, 0x99
|
|
strb r4, [r1]
|
|
_08012EDC:
|
|
ldrb r0, [r6]
|
|
ldr r1, [r5]
|
|
lsls r0, 1
|
|
lsls r2, r3, 3
|
|
adds r0, r2
|
|
adds r0, r1
|
|
adds r0, 0xE0
|
|
strb r4, [r0]
|
|
ldrb r0, [r6]
|
|
ldr r1, [r5]
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
adds r0, r1
|
|
adds r0, 0xE1
|
|
strb r4, [r0]
|
|
adds r3, 0x1
|
|
ldr r2, _08012F74 @ =gBattlersCount
|
|
ldrb r2, [r2]
|
|
cmp r3, r2
|
|
blt _08012EC4
|
|
_08012F04:
|
|
ldr r1, _08012FA4 @ =gBattleResources
|
|
ldr r0, [r1]
|
|
ldr r1, [r0, 0x4]
|
|
ldrb r0, [r7]
|
|
lsls r0, 2
|
|
adds r1, r0
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
ldrb r0, [r7]
|
|
movs r3, 0x58
|
|
adds r1, r0, 0
|
|
muls r1, r3
|
|
ldr r2, _08012F70 @ =gBattleMons
|
|
adds r1, r2
|
|
ldrh r2, [r1]
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _08012FA8 @ =gBaseStats
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x6]
|
|
adds r1, 0x21
|
|
strb r0, [r1]
|
|
ldrb r0, [r7]
|
|
adds r1, r0, 0
|
|
muls r1, r3
|
|
ldr r0, _08012F70 @ =gBattleMons
|
|
adds r1, r0
|
|
ldrh r2, [r1]
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _08012FA8 @ =gBaseStats
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x7]
|
|
adds r1, 0x22
|
|
strb r0, [r1]
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08012F5C: .4byte gActiveBattler
|
|
_08012F60: .4byte gStatuses3
|
|
_08012F64: .4byte gUnknown_2023FF8
|
|
_08012F68: .4byte gUnknown_2023FFC
|
|
_08012F6C: .4byte gUnknown_2023E8C
|
|
_08012F70: .4byte gBattleMons
|
|
_08012F74: .4byte gBattlersCount
|
|
_08012F78: .4byte gBitTable
|
|
_08012F7C: .4byte gDisableStructs
|
|
_08012F80: .4byte 0xfbffffff
|
|
_08012F84: .4byte gBattleStruct
|
|
_08012F88: .4byte 0xffff1fff
|
|
_08012F8C: .4byte gLastUsedMove
|
|
_08012F90: .4byte gUnknown_2023DA0
|
|
_08012F94: .4byte gUnknown_2023DA8
|
|
_08012F98: .4byte gUnknown_2023DB0
|
|
_08012F9C: .4byte gUnknown_2023D90
|
|
_08012FA0: .4byte gUnknown_2023DC0
|
|
_08012FA4: .4byte gBattleResources
|
|
_08012FA8: .4byte gBaseStats
|
|
thumb_func_end sub_8012BC8
|
|
|
|
thumb_func_start BattleIntroGetMonsData
|
|
BattleIntroGetMonsData: @ 8012FAC
|
|
push {r4,r5,lr}
|
|
ldr r5, _08012FBC @ =gUnknown_2023E82
|
|
ldrb r0, [r5]
|
|
cmp r0, 0
|
|
beq _08012FC0
|
|
cmp r0, 0x1
|
|
beq _08012FE4
|
|
b _0801301A
|
|
.align 2, 0
|
|
_08012FBC: .4byte gUnknown_2023E82
|
|
_08012FC0:
|
|
ldr r4, _08012FE0 @ =gActiveBattler
|
|
ldrb r0, [r5, 0x1]
|
|
strb r0, [r4]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl BtlController_EmitGetMonData
|
|
ldrb r0, [r4]
|
|
bl MarkBufferBankForExecution
|
|
ldrb r0, [r5]
|
|
adds r0, 0x1
|
|
strb r0, [r5]
|
|
b _0801301A
|
|
.align 2, 0
|
|
_08012FE0: .4byte gActiveBattler
|
|
_08012FE4:
|
|
ldr r0, _08013008 @ =gUnknown_2023BC8
|
|
ldr r2, [r0]
|
|
cmp r2, 0
|
|
bne _0801301A
|
|
ldrb r0, [r5, 0x1]
|
|
adds r0, 0x1
|
|
strb r0, [r5, 0x1]
|
|
ldr r1, _0801300C @ =gBattlersCount
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bne _08013018
|
|
ldr r1, _08013010 @ =gUnknown_3004F84
|
|
ldr r0, _08013014 @ =BattleIntroPrepareBackgroundSlide
|
|
str r0, [r1]
|
|
b _0801301A
|
|
.align 2, 0
|
|
_08013008: .4byte gUnknown_2023BC8
|
|
_0801300C: .4byte gBattlersCount
|
|
_08013010: .4byte gUnknown_3004F84
|
|
_08013014: .4byte BattleIntroPrepareBackgroundSlide
|
|
_08013018:
|
|
strb r2, [r5]
|
|
_0801301A:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end BattleIntroGetMonsData
|
|
|
|
thumb_func_start BattleIntroPrepareBackgroundSlide
|
|
BattleIntroPrepareBackgroundSlide: @ 8013020
|
|
push {r4,r5,lr}
|
|
ldr r0, _08013058 @ =gUnknown_2023BC8
|
|
ldr r5, [r0]
|
|
cmp r5, 0
|
|
bne _08013050
|
|
movs r0, 0
|
|
bl GetBattlerAtPosition
|
|
ldr r4, _0801305C @ =gActiveBattler
|
|
strb r0, [r4]
|
|
ldr r0, _08013060 @ =gUnknown_2022B50
|
|
ldrb r1, [r0]
|
|
movs r0, 0
|
|
bl EmitIntroSlide
|
|
ldrb r0, [r4]
|
|
bl MarkBufferBankForExecution
|
|
ldr r1, _08013064 @ =gUnknown_3004F84
|
|
ldr r0, _08013068 @ =sub_8013070
|
|
str r0, [r1]
|
|
ldr r0, _0801306C @ =gUnknown_2023E82
|
|
strb r5, [r0]
|
|
strb r5, [r0, 0x1]
|
|
_08013050:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08013058: .4byte gUnknown_2023BC8
|
|
_0801305C: .4byte gActiveBattler
|
|
_08013060: .4byte gUnknown_2022B50
|
|
_08013064: .4byte gUnknown_3004F84
|
|
_08013068: .4byte sub_8013070
|
|
_0801306C: .4byte gUnknown_2023E82
|
|
thumb_func_end BattleIntroPrepareBackgroundSlide
|
|
|
|
thumb_func_start sub_8013070
|
|
sub_8013070: @ 8013070
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r0, _080130D4 @ =gUnknown_2023BC8
|
|
ldr r1, [r0]
|
|
cmp r1, 0
|
|
beq _08013084
|
|
b _08013314
|
|
_08013084:
|
|
ldr r2, _080130D8 @ =gActiveBattler
|
|
strb r1, [r2]
|
|
ldr r0, _080130DC @ =gBattlersCount
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bcc _08013092
|
|
b _0801330E
|
|
_08013092:
|
|
movs r7, 0x58
|
|
ldr r0, _080130E0 @ =gBattleMons
|
|
mov r8, r0
|
|
mov r9, r2
|
|
movs r1, 0x48
|
|
add r1, r8
|
|
mov r10, r1
|
|
_080130A0:
|
|
ldr r0, _080130E4 @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080130E8
|
|
ldr r4, _080130D8 @ =gActiveBattler
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080130E8
|
|
ldrb r0, [r4]
|
|
muls r0, r7
|
|
mov r2, r8
|
|
adds r3, r0, r2
|
|
movs r2, 0
|
|
movs r1, 0
|
|
_080130C6:
|
|
adds r0, r3, r2
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x57
|
|
bls _080130C6
|
|
b _080131B6
|
|
.align 2, 0
|
|
_080130D4: .4byte gUnknown_2023BC8
|
|
_080130D8: .4byte gActiveBattler
|
|
_080130DC: .4byte gBattlersCount
|
|
_080130E0: .4byte gBattleMons
|
|
_080130E4: .4byte gBattleTypeFlags
|
|
_080130E8:
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
muls r0, r7
|
|
mov r2, r8
|
|
adds r3, r0, r2
|
|
movs r2, 0
|
|
ldr r6, _08013230 @ =gBaseStats
|
|
ldr r5, _08013234 @ =gUnknown_20233C4
|
|
ldr r4, _08013238 @ =gActiveBattler
|
|
_080130FA:
|
|
adds r0, r3, r2
|
|
ldrb r1, [r4]
|
|
lsls r1, 9
|
|
adds r1, 0x4
|
|
adds r1, r2, r1
|
|
adds r1, r5
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x57
|
|
bls _080130FA
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
adds r2, r0, 0
|
|
muls r2, r7
|
|
add r2, r8
|
|
ldrh r1, [r2]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldrb r0, [r0, 0x6]
|
|
adds r2, 0x21
|
|
strb r0, [r2]
|
|
mov r2, r9
|
|
ldrb r0, [r2]
|
|
adds r2, r0, 0
|
|
muls r2, r7
|
|
add r2, r8
|
|
ldrh r1, [r2]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldrb r0, [r0, 0x7]
|
|
adds r2, 0x22
|
|
strb r0, [r2]
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
adds r1, r0, 0
|
|
muls r1, r7
|
|
add r1, r8
|
|
ldrh r0, [r1]
|
|
ldrb r1, [r1, 0x17]
|
|
lsrs r1, 7
|
|
bl GetAbilityBySpecies
|
|
mov r2, r9
|
|
ldrb r1, [r2]
|
|
muls r1, r7
|
|
add r1, r8
|
|
adds r1, 0x20
|
|
strb r0, [r1]
|
|
ldrb r0, [r2]
|
|
bl GetBattlerSide
|
|
ldr r1, _0801323C @ =gBattleStruct
|
|
lsls r0, 24
|
|
lsrs r0, 23
|
|
adds r0, 0xA8
|
|
ldr r1, [r1]
|
|
adds r1, r0
|
|
mov r2, r9
|
|
ldrb r0, [r2]
|
|
muls r0, r7
|
|
add r0, r8
|
|
ldrh r0, [r0, 0x28]
|
|
strh r0, [r1]
|
|
movs r2, 0
|
|
ldr r4, _08013238 @ =gActiveBattler
|
|
movs r5, 0x58
|
|
ldr r1, _08013240 @ =gUnknown_2023BFC
|
|
adds r6, r4, 0
|
|
movs r0, 0x18
|
|
negs r0, r0
|
|
adds r0, r1
|
|
mov r12, r0
|
|
movs r3, 0x6
|
|
_08013196:
|
|
ldrb r0, [r4]
|
|
muls r0, r5
|
|
adds r0, r2, r0
|
|
adds r0, r1
|
|
strb r3, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x7
|
|
ble _08013196
|
|
ldrb r0, [r6]
|
|
adds r1, r0, 0
|
|
muls r1, r7
|
|
mov r0, r12
|
|
adds r0, 0x50
|
|
adds r1, r0
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
_080131B6:
|
|
ldr r4, _08013238 @ =gActiveBattler
|
|
ldrb r0, [r4]
|
|
bl GetBattlerPosition
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080131D0
|
|
movs r0, 0
|
|
bl EmitDrawTrainerPic
|
|
ldrb r0, [r4]
|
|
bl MarkBufferBankForExecution
|
|
_080131D0:
|
|
ldr r5, _08013244 @ =gBattleTypeFlags
|
|
ldr r0, [r5]
|
|
movs r1, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0801324C
|
|
ldrb r0, [r4]
|
|
bl GetBattlerPosition
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080131F6
|
|
movs r0, 0
|
|
bl EmitDrawTrainerPic
|
|
ldrb r0, [r4]
|
|
bl MarkBufferBankForExecution
|
|
_080131F6:
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080132C2
|
|
ldr r0, [r5]
|
|
ldr r1, _08013248 @ =0x0001aa02
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080132C2
|
|
ldrb r0, [r4]
|
|
muls r0, r7
|
|
add r0, r8
|
|
ldrh r0, [r0]
|
|
bl SpeciesToNationalPokedexNum
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldrb r1, [r4]
|
|
muls r1, r7
|
|
add r1, r10
|
|
ldr r2, [r1]
|
|
movs r1, 0x2
|
|
bl sub_8044898
|
|
b _080132C2
|
|
.align 2, 0
|
|
_08013230: .4byte gBaseStats
|
|
_08013234: .4byte gUnknown_20233C4
|
|
_08013238: .4byte gActiveBattler
|
|
_0801323C: .4byte gBattleStruct
|
|
_08013240: .4byte gUnknown_2023BFC
|
|
_08013244: .4byte gBattleTypeFlags
|
|
_08013248: .4byte 0x0001aa02
|
|
_0801324C:
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080132C2
|
|
ldr r1, [r5]
|
|
movs r2, 0xA0
|
|
lsls r2, 8
|
|
ands r2, r1
|
|
cmp r2, 0
|
|
beq _0801328E
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
cmp r2, r0
|
|
beq _080132B4
|
|
ldrb r0, [r4]
|
|
muls r0, r7
|
|
add r0, r8
|
|
ldrh r0, [r0]
|
|
bl SpeciesToNationalPokedexNum
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldrb r1, [r4]
|
|
muls r1, r7
|
|
add r1, r10
|
|
ldr r2, [r1]
|
|
movs r1, 0x2
|
|
bl sub_8044898
|
|
b _080132B4
|
|
_0801328E:
|
|
ldr r0, _08013324 @ =0x0001aa02
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _080132B4
|
|
ldrb r0, [r4]
|
|
muls r0, r7
|
|
add r0, r8
|
|
ldrh r0, [r0]
|
|
bl SpeciesToNationalPokedexNum
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldrb r1, [r4]
|
|
muls r1, r7
|
|
add r1, r10
|
|
ldr r2, [r1]
|
|
movs r1, 0x2
|
|
bl sub_8044898
|
|
_080132B4:
|
|
movs r0, 0
|
|
bl EmitLoadMonSprite
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
bl MarkBufferBankForExecution
|
|
_080132C2:
|
|
ldr r0, _08013328 @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080132F8
|
|
ldr r4, _0801332C @ =gActiveBattler
|
|
ldrb r0, [r4]
|
|
bl GetBattlerPosition
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
beq _080132EC
|
|
ldrb r0, [r4]
|
|
bl GetBattlerPosition
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
bne _080132F8
|
|
_080132EC:
|
|
movs r0, 0
|
|
bl EmitDrawTrainerPic
|
|
ldrb r0, [r4]
|
|
bl MarkBufferBankForExecution
|
|
_080132F8:
|
|
mov r2, r9
|
|
ldrb r0, [r2]
|
|
adds r0, 0x1
|
|
strb r0, [r2]
|
|
ldr r1, _08013330 @ =gBattlersCount
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcs _0801330E
|
|
b _080130A0
|
|
_0801330E:
|
|
ldr r1, _08013334 @ =gUnknown_3004F84
|
|
ldr r0, _08013338 @ =BattleIntroDrawPartySummaryScreens
|
|
str r0, [r1]
|
|
_08013314:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08013324: .4byte 0x0001aa02
|
|
_08013328: .4byte gBattleTypeFlags
|
|
_0801332C: .4byte gActiveBattler
|
|
_08013330: .4byte gBattlersCount
|
|
_08013334: .4byte gUnknown_3004F84
|
|
_08013338: .4byte BattleIntroDrawPartySummaryScreens
|
|
thumb_func_end sub_8013070
|
|
|
|
thumb_func_start BattleIntroDrawPartySummaryScreens
|
|
BattleIntroDrawPartySummaryScreens: @ 801333C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x30
|
|
ldr r0, _08013394 @ =gUnknown_2023BC8
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _0801334E
|
|
b _080134C8
|
|
_0801334E:
|
|
ldr r0, _08013398 @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0801335C
|
|
b _08013468
|
|
_0801335C:
|
|
movs r7, 0
|
|
add r0, sp, 0x4
|
|
mov r8, r0
|
|
mov r6, r8
|
|
mov r5, sp
|
|
_08013366:
|
|
movs r0, 0x64
|
|
adds r1, r7, 0
|
|
muls r1, r0
|
|
ldr r0, _0801339C @ =gEnemyParty
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0801338C
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
bne _080133A4
|
|
_0801338C:
|
|
ldr r0, _080133A0 @ =0x0000ffff
|
|
strh r0, [r5]
|
|
movs r0, 0
|
|
b _080133B6
|
|
.align 2, 0
|
|
_08013394: .4byte gUnknown_2023BC8
|
|
_08013398: .4byte gBattleTypeFlags
|
|
_0801339C: .4byte gEnemyParty
|
|
_080133A0: .4byte 0x0000ffff
|
|
_080133A4:
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
strh r0, [r5]
|
|
adds r0, r4, 0
|
|
movs r1, 0x37
|
|
bl GetMonData
|
|
_080133B6:
|
|
str r0, [r6]
|
|
adds r6, 0x8
|
|
adds r5, 0x8
|
|
adds r7, 0x1
|
|
cmp r7, 0x5
|
|
ble _08013366
|
|
movs r0, 0x1
|
|
bl GetBattlerAtPosition
|
|
ldr r4, _08013410 @ =gActiveBattler
|
|
strb r0, [r4]
|
|
movs r0, 0
|
|
mov r1, sp
|
|
movs r2, 0x80
|
|
bl EmitDrawPartyStatusSummary
|
|
ldrb r0, [r4]
|
|
bl MarkBufferBankForExecution
|
|
movs r7, 0
|
|
mov r6, r8
|
|
mov r5, sp
|
|
_080133E2:
|
|
movs r0, 0x64
|
|
adds r1, r7, 0
|
|
muls r1, r0
|
|
ldr r0, _08013414 @ =gPlayerParty
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _08013408
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
bne _0801341C
|
|
_08013408:
|
|
ldr r0, _08013418 @ =0x0000ffff
|
|
strh r0, [r5]
|
|
movs r0, 0
|
|
b _0801342E
|
|
.align 2, 0
|
|
_08013410: .4byte gActiveBattler
|
|
_08013414: .4byte gPlayerParty
|
|
_08013418: .4byte 0x0000ffff
|
|
_0801341C:
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
strh r0, [r5]
|
|
adds r0, r4, 0
|
|
movs r1, 0x37
|
|
bl GetMonData
|
|
_0801342E:
|
|
str r0, [r6]
|
|
adds r6, 0x8
|
|
adds r5, 0x8
|
|
adds r7, 0x1
|
|
cmp r7, 0x5
|
|
ble _080133E2
|
|
movs r0, 0
|
|
bl GetBattlerAtPosition
|
|
ldr r4, _0801345C @ =gActiveBattler
|
|
strb r0, [r4]
|
|
movs r0, 0
|
|
mov r1, sp
|
|
movs r2, 0x80
|
|
bl EmitDrawPartyStatusSummary
|
|
ldrb r0, [r4]
|
|
bl MarkBufferBankForExecution
|
|
ldr r1, _08013460 @ =gUnknown_3004F84
|
|
ldr r0, _08013464 @ =BattleIntroPrintTrainerWantsToBattle
|
|
b _080134C6
|
|
.align 2, 0
|
|
_0801345C: .4byte gActiveBattler
|
|
_08013460: .4byte gUnknown_3004F84
|
|
_08013464: .4byte BattleIntroPrintTrainerWantsToBattle
|
|
_08013468:
|
|
movs r7, 0
|
|
add r6, sp, 0x4
|
|
mov r5, sp
|
|
_0801346E:
|
|
movs r0, 0x64
|
|
adds r1, r7, 0
|
|
muls r1, r0
|
|
ldr r0, _0801349C @ =gPlayerParty
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _08013494
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
bne _080134A4
|
|
_08013494:
|
|
ldr r0, _080134A0 @ =0x0000ffff
|
|
strh r0, [r5]
|
|
movs r0, 0
|
|
b _080134B6
|
|
.align 2, 0
|
|
_0801349C: .4byte gPlayerParty
|
|
_080134A0: .4byte 0x0000ffff
|
|
_080134A4:
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
strh r0, [r5]
|
|
adds r0, r4, 0
|
|
movs r1, 0x37
|
|
bl GetMonData
|
|
_080134B6:
|
|
str r0, [r6]
|
|
adds r6, 0x8
|
|
adds r5, 0x8
|
|
adds r7, 0x1
|
|
cmp r7, 0x5
|
|
ble _0801346E
|
|
ldr r1, _080134D4 @ =gUnknown_3004F84
|
|
ldr r0, _080134D8 @ =sub_8013514
|
|
_080134C6:
|
|
str r0, [r1]
|
|
_080134C8:
|
|
add sp, 0x30
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080134D4: .4byte gUnknown_3004F84
|
|
_080134D8: .4byte sub_8013514
|
|
thumb_func_end BattleIntroDrawPartySummaryScreens
|
|
|
|
thumb_func_start BattleIntroPrintTrainerWantsToBattle
|
|
BattleIntroPrintTrainerWantsToBattle: @ 80134DC
|
|
push {lr}
|
|
ldr r0, _08013504 @ =gUnknown_2023BC8
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _080134FE
|
|
movs r0, 0x1
|
|
bl GetBattlerAtPosition
|
|
ldr r1, _08013508 @ =gActiveBattler
|
|
strb r0, [r1]
|
|
ldrb r1, [r1]
|
|
movs r0, 0
|
|
bl PrepareStringBattle
|
|
ldr r1, _0801350C @ =gUnknown_3004F84
|
|
ldr r0, _08013510 @ =sub_8013568
|
|
str r0, [r1]
|
|
_080134FE:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08013504: .4byte gUnknown_2023BC8
|
|
_08013508: .4byte gActiveBattler
|
|
_0801350C: .4byte gUnknown_3004F84
|
|
_08013510: .4byte sub_8013568
|
|
thumb_func_end BattleIntroPrintTrainerWantsToBattle
|
|
|
|
thumb_func_start sub_8013514
|
|
sub_8013514: @ 8013514
|
|
push {lr}
|
|
ldr r0, _08013550 @ =gUnknown_2023BC8
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _0801354A
|
|
ldr r1, _08013554 @ =gUnknown_3004F84
|
|
ldr r0, _08013558 @ =sub_80136E4
|
|
str r0, [r1]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl PrepareStringBattle
|
|
ldr r0, _0801355C @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0xA0
|
|
lsls r1, 8
|
|
ands r0, r1
|
|
cmp r0, r1
|
|
bne _0801354A
|
|
movs r0, 0x1
|
|
bl GetBattlerAtPosition
|
|
ldr r1, _08013560 @ =gBattleScripting
|
|
strb r0, [r1, 0x17]
|
|
ldr r0, _08013564 @ =gUnknown_81D91A1
|
|
bl BattleScriptExecute
|
|
_0801354A:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08013550: .4byte gUnknown_2023BC8
|
|
_08013554: .4byte gUnknown_3004F84
|
|
_08013558: .4byte sub_80136E4
|
|
_0801355C: .4byte gBattleTypeFlags
|
|
_08013560: .4byte gBattleScripting
|
|
_08013564: .4byte gUnknown_81D91A1
|
|
thumb_func_end sub_8013514
|
|
|
|
thumb_func_start sub_8013568
|
|
sub_8013568: @ 8013568
|
|
push {lr}
|
|
ldr r0, _08013590 @ =gUnknown_2023BC8
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _0801358A
|
|
movs r0, 0x1
|
|
bl GetBattlerAtPosition
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r0, 0x1
|
|
bl PrepareStringBattle
|
|
ldr r1, _08013594 @ =gUnknown_3004F84
|
|
ldr r0, _08013598 @ =sub_801359C
|
|
str r0, [r1]
|
|
_0801358A:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08013590: .4byte gUnknown_2023BC8
|
|
_08013594: .4byte gUnknown_3004F84
|
|
_08013598: .4byte sub_801359C
|
|
thumb_func_end sub_8013568
|
|
|
|
thumb_func_start sub_801359C
|
|
sub_801359C: @ 801359C
|
|
push {r4,lr}
|
|
ldr r0, _08013614 @ =gUnknown_2023BC8
|
|
ldr r1, [r0]
|
|
cmp r1, 0
|
|
bne _0801360C
|
|
ldr r2, _08013618 @ =gActiveBattler
|
|
strb r1, [r2]
|
|
ldr r0, _0801361C @ =gBattlersCount
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bcs _08013606
|
|
adds r4, r2, 0
|
|
_080135B4:
|
|
ldrb r0, [r4]
|
|
bl GetBattlerPosition
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080135CE
|
|
movs r0, 0
|
|
bl EmitIntroTrainerBallThrow
|
|
ldrb r0, [r4]
|
|
bl MarkBufferBankForExecution
|
|
_080135CE:
|
|
ldr r0, _08013620 @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080135F4
|
|
ldrb r0, [r4]
|
|
bl GetBattlerPosition
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
bne _080135F4
|
|
movs r0, 0
|
|
bl EmitIntroTrainerBallThrow
|
|
ldrb r0, [r4]
|
|
bl MarkBufferBankForExecution
|
|
_080135F4:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
ldr r1, _0801361C @ =gBattlersCount
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _080135B4
|
|
_08013606:
|
|
ldr r1, _08013624 @ =gUnknown_3004F84
|
|
ldr r0, _08013628 @ =sub_801362C
|
|
str r0, [r1]
|
|
_0801360C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08013614: .4byte gUnknown_2023BC8
|
|
_08013618: .4byte gActiveBattler
|
|
_0801361C: .4byte gBattlersCount
|
|
_08013620: .4byte gBattleTypeFlags
|
|
_08013624: .4byte gUnknown_3004F84
|
|
_08013628: .4byte sub_801362C
|
|
thumb_func_end sub_801359C
|
|
|
|
thumb_func_start sub_801362C
|
|
sub_801362C: @ 801362C
|
|
push {r4-r7,lr}
|
|
ldr r0, _080136A4 @ =gUnknown_2023BC8
|
|
ldr r1, [r0]
|
|
cmp r1, 0
|
|
bne _0801369C
|
|
ldr r2, _080136A8 @ =gActiveBattler
|
|
strb r1, [r2]
|
|
ldr r0, _080136AC @ =gBattlersCount
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bcs _08013696
|
|
adds r4, r2, 0
|
|
ldr r6, _080136B0 @ =gBattleMons
|
|
movs r5, 0x58
|
|
adds r7, r6, 0
|
|
adds r7, 0x48
|
|
_0801364C:
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _08013684
|
|
ldr r0, _080136B4 @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
ldr r1, _080136B8 @ =0x0001aa02
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08013684
|
|
ldrb r0, [r4]
|
|
muls r0, r5
|
|
adds r0, r6
|
|
ldrh r0, [r0]
|
|
bl SpeciesToNationalPokedexNum
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldrb r1, [r4]
|
|
muls r1, r5
|
|
adds r1, r7
|
|
ldr r2, [r1]
|
|
movs r1, 0x2
|
|
bl sub_8044898
|
|
_08013684:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
ldr r1, _080136AC @ =gBattlersCount
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _0801364C
|
|
_08013696:
|
|
ldr r1, _080136BC @ =gUnknown_3004F84
|
|
ldr r0, _080136C0 @ =sub_80136E4
|
|
str r0, [r1]
|
|
_0801369C:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080136A4: .4byte gUnknown_2023BC8
|
|
_080136A8: .4byte gActiveBattler
|
|
_080136AC: .4byte gBattlersCount
|
|
_080136B0: .4byte gBattleMons
|
|
_080136B4: .4byte gBattleTypeFlags
|
|
_080136B8: .4byte 0x0001aa02
|
|
_080136BC: .4byte gUnknown_3004F84
|
|
_080136C0: .4byte sub_80136E4
|
|
thumb_func_end sub_801362C
|
|
|
|
thumb_func_start sub_80136C4
|
|
sub_80136C4: @ 80136C4
|
|
push {lr}
|
|
ldr r0, _080136D8 @ =gUnknown_2023BC8
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _080136D4
|
|
ldr r1, _080136DC @ =gUnknown_3004F84
|
|
ldr r0, _080136E0 @ =sub_80136E4
|
|
str r0, [r1]
|
|
_080136D4:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080136D8: .4byte gUnknown_2023BC8
|
|
_080136DC: .4byte gUnknown_3004F84
|
|
_080136E0: .4byte sub_80136E4
|
|
thumb_func_end sub_80136C4
|
|
|
|
thumb_func_start sub_80136E4
|
|
sub_80136E4: @ 80136E4
|
|
push {lr}
|
|
ldr r0, _08013718 @ =gUnknown_2023BC8
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _08013712
|
|
ldr r0, _0801371C @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0801370C
|
|
movs r0, 0
|
|
bl GetBattlerAtPosition
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r0, 0x1
|
|
bl PrepareStringBattle
|
|
_0801370C:
|
|
ldr r1, _08013720 @ =gUnknown_3004F84
|
|
ldr r0, _08013724 @ =sub_8013728
|
|
str r0, [r1]
|
|
_08013712:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08013718: .4byte gUnknown_2023BC8
|
|
_0801371C: .4byte gBattleTypeFlags
|
|
_08013720: .4byte gUnknown_3004F84
|
|
_08013724: .4byte sub_8013728
|
|
thumb_func_end sub_80136E4
|
|
|
|
thumb_func_start sub_8013728
|
|
sub_8013728: @ 8013728
|
|
push {r4,lr}
|
|
ldr r0, _080137B4 @ =gUnknown_2023BC8
|
|
ldr r1, [r0]
|
|
cmp r1, 0
|
|
bne _080137AC
|
|
ldr r2, _080137B8 @ =gActiveBattler
|
|
strb r1, [r2]
|
|
ldr r0, _080137BC @ =gBattlersCount
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bcs _08013790
|
|
adds r4, r2, 0
|
|
_08013740:
|
|
ldrb r0, [r4]
|
|
bl GetBattlerPosition
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08013758
|
|
movs r0, 0
|
|
bl EmitIntroTrainerBallThrow
|
|
ldrb r0, [r4]
|
|
bl MarkBufferBankForExecution
|
|
_08013758:
|
|
ldr r0, _080137C0 @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0801377E
|
|
ldrb r0, [r4]
|
|
bl GetBattlerPosition
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bne _0801377E
|
|
movs r0, 0
|
|
bl EmitIntroTrainerBallThrow
|
|
ldrb r0, [r4]
|
|
bl MarkBufferBankForExecution
|
|
_0801377E:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
ldr r1, _080137BC @ =gBattlersCount
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _08013740
|
|
_08013790:
|
|
ldr r2, _080137C4 @ =gBattleStruct
|
|
ldr r0, [r2]
|
|
adds r0, 0x4C
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
adds r0, 0xD9
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
adds r0, 0xB6
|
|
strb r1, [r0]
|
|
ldr r1, _080137C8 @ =gUnknown_3004F84
|
|
ldr r0, _080137CC @ =sub_801385C
|
|
str r0, [r1]
|
|
_080137AC:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080137B4: .4byte gUnknown_2023BC8
|
|
_080137B8: .4byte gActiveBattler
|
|
_080137BC: .4byte gBattlersCount
|
|
_080137C0: .4byte gBattleTypeFlags
|
|
_080137C4: .4byte gBattleStruct
|
|
_080137C8: .4byte gUnknown_3004F84
|
|
_080137CC: .4byte sub_801385C
|
|
thumb_func_end sub_8013728
|
|
|
|
thumb_func_start sub_80137D0
|
|
sub_80137D0: @ 80137D0
|
|
push {r4,r5,lr}
|
|
ldr r0, _08013840 @ =gUnknown_2023BC8
|
|
ldr r1, [r0]
|
|
cmp r1, 0
|
|
bne _0801383A
|
|
ldr r2, _08013844 @ =gActiveBattler
|
|
strb r1, [r2]
|
|
ldr r0, _08013848 @ =gBattlersCount
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bcs _0801381E
|
|
adds r4, r2, 0
|
|
ldr r5, _0801384C @ =gBattlerPartyIndexes
|
|
_080137EA:
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0801380C
|
|
ldrb r0, [r4]
|
|
lsls r0, 1
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
movs r0, 0
|
|
movs r2, 0
|
|
bl EmitSwitchInAnim
|
|
ldrb r0, [r4]
|
|
bl MarkBufferBankForExecution
|
|
_0801380C:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
ldr r1, _08013848 @ =gBattlersCount
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _080137EA
|
|
_0801381E:
|
|
ldr r2, _08013850 @ =gBattleStruct
|
|
ldr r0, [r2]
|
|
adds r0, 0x4C
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
adds r0, 0xD9
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
adds r0, 0xB6
|
|
strb r1, [r0]
|
|
ldr r1, _08013854 @ =gUnknown_3004F84
|
|
ldr r0, _08013858 @ =sub_801385C
|
|
str r0, [r1]
|
|
_0801383A:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08013840: .4byte gUnknown_2023BC8
|
|
_08013844: .4byte gActiveBattler
|
|
_08013848: .4byte gBattlersCount
|
|
_0801384C: .4byte gBattlerPartyIndexes
|
|
_08013850: .4byte gBattleStruct
|
|
_08013854: .4byte gUnknown_3004F84
|
|
_08013858: .4byte sub_801385C
|
|
thumb_func_end sub_80137D0
|
|
|
|
thumb_func_start sub_801385C
|
|
sub_801385C: @ 801385C
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x8
|
|
movs r0, 0
|
|
mov r9, r0
|
|
ldr r0, _080138A0 @ =gUnknown_2023BC8
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _08013874
|
|
b _08013ADA
|
|
_08013874:
|
|
ldr r0, _080138A4 @ =gBattleStruct
|
|
ldr r0, [r0]
|
|
adds r0, 0x4C
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080138FA
|
|
movs r5, 0
|
|
ldr r1, _080138A8 @ =gBattlersCount
|
|
adds r3, r1, 0
|
|
ldrb r0, [r1]
|
|
cmp r5, r0
|
|
bge _0801389A
|
|
ldr r2, _080138AC @ =gUnknown_2023BDE
|
|
_0801388E:
|
|
adds r0, r5, r2
|
|
strb r5, [r0]
|
|
adds r5, 0x1
|
|
ldrb r0, [r1]
|
|
cmp r5, r0
|
|
blt _0801388E
|
|
_0801389A:
|
|
movs r5, 0
|
|
b _080138F0
|
|
.align 2, 0
|
|
_080138A0: .4byte gUnknown_2023BC8
|
|
_080138A4: .4byte gBattleStruct
|
|
_080138A8: .4byte gBattlersCount
|
|
_080138AC: .4byte gUnknown_2023BDE
|
|
_080138B0:
|
|
adds r4, r5, 0x1
|
|
mov r8, r4
|
|
ldrb r1, [r1]
|
|
cmp r8, r1
|
|
bge _080138EE
|
|
ldr r6, _08013924 @ =gUnknown_2023BDE
|
|
ldr r3, _08013928 @ =gBattlersCount
|
|
lsls r7, r5, 24
|
|
_080138C0:
|
|
adds r0, r5, r6
|
|
ldrb r0, [r0]
|
|
adds r1, r4, r6
|
|
ldrb r1, [r1]
|
|
movs r2, 0x1
|
|
str r3, [sp, 0x4]
|
|
bl GetWhoStrikesFirst
|
|
lsls r0, 24
|
|
ldr r3, [sp, 0x4]
|
|
cmp r0, 0
|
|
beq _080138E4
|
|
lsls r1, r4, 24
|
|
lsrs r1, 24
|
|
lsrs r0, r7, 24
|
|
bl SwapTurnOrder
|
|
ldr r3, [sp, 0x4]
|
|
_080138E4:
|
|
adds r4, 0x1
|
|
ldr r0, _08013928 @ =gBattlersCount
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
blt _080138C0
|
|
_080138EE:
|
|
mov r5, r8
|
|
_080138F0:
|
|
adds r1, r3, 0
|
|
ldrb r0, [r3]
|
|
subs r0, 0x1
|
|
cmp r5, r0
|
|
blt _080138B0
|
|
_080138FA:
|
|
ldr r4, _0801392C @ =gBattleStruct
|
|
ldr r0, [r4]
|
|
adds r0, 0xB6
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08013930
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0xFF
|
|
bl AbilityBattleEffects
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08013930
|
|
ldr r0, [r4]
|
|
adds r0, 0xB6
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
b _08013ADA
|
|
.align 2, 0
|
|
_08013924: .4byte gUnknown_2023BDE
|
|
_08013928: .4byte gBattlersCount
|
|
_0801392C: .4byte gBattleStruct
|
|
_08013930:
|
|
ldr r2, _08013AE8 @ =gBattleStruct
|
|
ldr r0, [r2]
|
|
adds r0, 0x4C
|
|
ldr r1, _08013AEC @ =gBattlersCount
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcs _0801398A
|
|
ldr r5, _08013AF0 @ =gUnknown_2023BDE
|
|
adds r4, r2, 0
|
|
_08013944:
|
|
ldr r0, [r4]
|
|
adds r0, 0x4C
|
|
ldrb r0, [r0]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl AbilityBattleEffects
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0801396A
|
|
mov r0, r9
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
_0801396A:
|
|
ldr r1, [r4]
|
|
adds r1, 0x4C
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
mov r1, r9
|
|
cmp r1, 0
|
|
beq _0801397C
|
|
b _08013ADA
|
|
_0801397C:
|
|
ldr r0, [r4]
|
|
adds r0, 0x4C
|
|
ldr r1, _08013AEC @ =gBattlersCount
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _08013944
|
|
_0801398A:
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x9
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl AbilityBattleEffects
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
beq _080139A4
|
|
b _08013ADA
|
|
_080139A4:
|
|
str r0, [sp]
|
|
movs r0, 0xB
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl AbilityBattleEffects
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080139BA
|
|
b _08013ADA
|
|
_080139BA:
|
|
ldr r2, _08013AE8 @ =gBattleStruct
|
|
ldr r0, [r2]
|
|
adds r0, 0xD9
|
|
ldr r1, _08013AEC @ =gBattlersCount
|
|
ldrb r0, [r0]
|
|
adds r3, r1, 0
|
|
ldrb r1, [r3]
|
|
cmp r0, r1
|
|
bcs _08013A14
|
|
ldr r5, _08013AF0 @ =gUnknown_2023BDE
|
|
adds r4, r2, 0
|
|
_080139D0:
|
|
ldr r0, [r4]
|
|
adds r0, 0xD9
|
|
ldrb r0, [r0]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
movs r0, 0
|
|
movs r2, 0
|
|
str r3, [sp, 0x4]
|
|
bl sub_801BC68
|
|
lsls r0, 24
|
|
ldr r3, [sp, 0x4]
|
|
cmp r0, 0
|
|
beq _080139F6
|
|
mov r0, r9
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
_080139F6:
|
|
ldr r1, [r4]
|
|
adds r1, 0xD9
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
bne _08013ADA
|
|
ldr r0, [r4]
|
|
adds r0, 0xD9
|
|
ldr r1, _08013AEC @ =gBattlersCount
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _080139D0
|
|
_08013A14:
|
|
ldrb r0, [r3]
|
|
cmp r0, 0
|
|
beq _08013A22
|
|
adds r5, r0, 0
|
|
_08013A1C:
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bne _08013A1C
|
|
_08013A22:
|
|
movs r5, 0
|
|
ldr r1, _08013AE8 @ =gBattleStruct
|
|
mov r8, r1
|
|
movs r7, 0x6
|
|
ldr r6, _08013AF4 @ =gUnknown_2023D7C
|
|
ldr r2, _08013AF8 @ =gUnknown_2023DC4
|
|
movs r4, 0xFF
|
|
movs r3, 0
|
|
_08013A32:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, r5, r0
|
|
adds r0, 0x5C
|
|
strb r7, [r0]
|
|
adds r1, r5, r6
|
|
ldrb r0, [r1]
|
|
orrs r0, r4
|
|
strb r0, [r1]
|
|
strh r3, [r2]
|
|
adds r2, 0x2
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _08013A32
|
|
movs r0, 0
|
|
bl TurnValuesCleanUp
|
|
bl SpecialStatusesClear
|
|
ldr r0, _08013AE8 @ =gBattleStruct
|
|
ldr r0, [r0]
|
|
adds r0, 0x91
|
|
ldr r1, _08013AFC @ =gAbsentBattlerFlags
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
ldr r1, _08013B00 @ =gUnknown_3004F84
|
|
ldr r0, _08013B04 @ =sub_8014040
|
|
str r0, [r1]
|
|
bl ResetSentPokesToOpponentValue
|
|
ldr r1, _08013B08 @ =gUnknown_2023E82
|
|
movs r2, 0
|
|
adds r0, r1, 0x7
|
|
_08013A74:
|
|
strb r2, [r0]
|
|
subs r0, 0x1
|
|
cmp r0, r1
|
|
bge _08013A74
|
|
movs r5, 0
|
|
ldr r3, _08013AEC @ =gBattlersCount
|
|
ldr r2, _08013AE8 @ =gBattleStruct
|
|
ldr r6, _08013B0C @ =gBattleScripting
|
|
ldr r7, _08013B10 @ =gMoveResultFlags
|
|
ldrb r0, [r3]
|
|
cmp r5, r0
|
|
bge _08013AA6
|
|
ldr r0, _08013B14 @ =gBattleMons
|
|
movs r4, 0x9
|
|
negs r4, r4
|
|
adds r1, r0, 0
|
|
adds r1, 0x50
|
|
_08013A96:
|
|
ldr r0, [r1]
|
|
ands r0, r4
|
|
str r0, [r1]
|
|
adds r1, 0x58
|
|
adds r5, 0x1
|
|
ldrb r0, [r3]
|
|
cmp r5, r0
|
|
blt _08013A96
|
|
_08013AA6:
|
|
ldr r0, [r2]
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
strb r1, [r0, 0x1]
|
|
ldr r0, [r2]
|
|
movs r3, 0xC0
|
|
lsls r3, 1
|
|
adds r0, r3
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
adds r3, 0x1
|
|
adds r0, r3
|
|
strb r1, [r0]
|
|
movs r1, 0
|
|
strb r1, [r6, 0x14]
|
|
ldr r0, [r2]
|
|
adds r0, 0x4D
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
strb r1, [r0, 0x3]
|
|
strb r1, [r7]
|
|
bl Random
|
|
ldr r1, _08013B18 @ =gUnknown_2023E80
|
|
strh r0, [r1]
|
|
_08013ADA:
|
|
add sp, 0x8
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08013AE8: .4byte gBattleStruct
|
|
_08013AEC: .4byte gBattlersCount
|
|
_08013AF0: .4byte gUnknown_2023BDE
|
|
_08013AF4: .4byte gUnknown_2023D7C
|
|
_08013AF8: .4byte gUnknown_2023DC4
|
|
_08013AFC: .4byte gAbsentBattlerFlags
|
|
_08013B00: .4byte gUnknown_3004F84
|
|
_08013B04: .4byte sub_8014040
|
|
_08013B08: .4byte gUnknown_2023E82
|
|
_08013B0C: .4byte gBattleScripting
|
|
_08013B10: .4byte gMoveResultFlags
|
|
_08013B14: .4byte gBattleMons
|
|
_08013B18: .4byte gUnknown_2023E80
|
|
thumb_func_end sub_801385C
|
|
|
|
thumb_func_start sub_8013B1C
|
|
sub_8013B1C: @ 8013B1C
|
|
push {r4-r6,lr}
|
|
ldr r0, _08013BB4 @ =gUnknown_2023BC8
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _08013BAC
|
|
ldr r1, _08013BB8 @ =gUnknown_3004F84
|
|
ldr r0, _08013BBC @ =sub_8013BD4
|
|
str r0, [r1]
|
|
ldr r3, _08013BC0 @ =gBattlersCount
|
|
ldr r1, _08013BC4 @ =gUnknown_2023E82
|
|
movs r2, 0
|
|
adds r0, r1, 0x7
|
|
_08013B34:
|
|
strb r2, [r0]
|
|
subs r0, 0x1
|
|
cmp r0, r1
|
|
bge _08013B34
|
|
movs r4, 0
|
|
ldrb r3, [r3]
|
|
cmp r4, r3
|
|
bge _08013B86
|
|
ldr r5, _08013BC8 @ =gBattleMons
|
|
adds r6, r5, 0
|
|
adds r6, 0x4C
|
|
_08013B4A:
|
|
movs r0, 0x58
|
|
adds r2, r4, 0
|
|
muls r2, r0
|
|
adds r1, r5, 0
|
|
adds r1, 0x50
|
|
adds r1, r2, r1
|
|
ldr r3, [r1]
|
|
subs r0, 0x61
|
|
ands r3, r0
|
|
str r3, [r1]
|
|
adds r2, r6
|
|
ldr r0, [r2]
|
|
movs r1, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08013B7C
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
ands r3, r0
|
|
cmp r3, 0
|
|
beq _08013B7C
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl CancelMultiTurnMoves
|
|
_08013B7C:
|
|
adds r4, 0x1
|
|
ldr r0, _08013BC0 @ =gBattlersCount
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
blt _08013B4A
|
|
_08013B86:
|
|
ldr r2, _08013BCC @ =gBattleStruct
|
|
ldr r0, [r2]
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
strb r1, [r0, 0x1]
|
|
ldr r0, [r2]
|
|
movs r3, 0xC0
|
|
lsls r3, 1
|
|
adds r0, r3
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
adds r3, 0x1
|
|
adds r0, r3
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
strb r1, [r0, 0x3]
|
|
ldr r0, _08013BD0 @ =gMoveResultFlags
|
|
strb r1, [r0]
|
|
_08013BAC:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08013BB4: .4byte gUnknown_2023BC8
|
|
_08013BB8: .4byte gUnknown_3004F84
|
|
_08013BBC: .4byte sub_8013BD4
|
|
_08013BC0: .4byte gBattlersCount
|
|
_08013BC4: .4byte gUnknown_2023E82
|
|
_08013BC8: .4byte gBattleMons
|
|
_08013BCC: .4byte gBattleStruct
|
|
_08013BD0: .4byte gMoveResultFlags
|
|
thumb_func_end sub_8013B1C
|
|
|
|
thumb_func_start sub_8013BD4
|
|
sub_8013BD4: @ 8013BD4
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
movs r0, 0x1
|
|
bl TurnValuesCleanUp
|
|
ldr r0, _08013C78 @ =gUnknown_2023E8A
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08013C04
|
|
bl UpdateTurnCounters
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08013BF8
|
|
b _08013D20
|
|
_08013BF8:
|
|
bl TurnBasedEffects
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08013C04
|
|
b _08013D20
|
|
_08013C04:
|
|
bl HandleFaintedMonActions
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
beq _08013C12
|
|
b _08013D20
|
|
_08013C12:
|
|
ldr r0, _08013C7C @ =gBattleStruct
|
|
ldr r0, [r0]
|
|
adds r0, 0x4D
|
|
strb r1, [r0]
|
|
bl sub_8018C98
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
bne _08013D20
|
|
movs r0, 0
|
|
bl TurnValuesCleanUp
|
|
ldr r2, _08013C80 @ =gUnknown_2023DD0
|
|
ldr r0, [r2]
|
|
ldr r1, _08013C84 @ =0xfffffdff
|
|
ands r0, r1
|
|
ldr r1, _08013C88 @ =0xfff7ffff
|
|
ands r0, r1
|
|
ldr r1, _08013C8C @ =0xffbfffff
|
|
ands r0, r1
|
|
ldr r1, _08013C90 @ =0xffefffff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
ldr r0, _08013C94 @ =gBattleScripting
|
|
strb r4, [r0, 0x18]
|
|
strb r4, [r0, 0x19]
|
|
strb r4, [r0, 0x14]
|
|
ldr r0, _08013C98 @ =gBattleMoveDamage
|
|
str r4, [r0]
|
|
ldr r0, _08013C9C @ =gMoveResultFlags
|
|
strb r4, [r0]
|
|
ldr r1, _08013CA0 @ =gUnknown_2023E82
|
|
movs r2, 0
|
|
adds r0, r1, 0x4
|
|
_08013C58:
|
|
strb r2, [r0]
|
|
subs r0, 0x1
|
|
cmp r0, r1
|
|
bge _08013C58
|
|
ldr r0, _08013C78 @ =gUnknown_2023E8A
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08013CB0
|
|
ldr r1, _08013CA4 @ =gUnknown_2023BE3
|
|
movs r0, 0xC
|
|
strb r0, [r1]
|
|
ldr r1, _08013CA8 @ =gUnknown_3004F84
|
|
ldr r0, _08013CAC @ =RunTurnActionsFunctions
|
|
str r0, [r1]
|
|
b _08013D20
|
|
.align 2, 0
|
|
_08013C78: .4byte gUnknown_2023E8A
|
|
_08013C7C: .4byte gBattleStruct
|
|
_08013C80: .4byte gUnknown_2023DD0
|
|
_08013C84: .4byte 0xfffffdff
|
|
_08013C88: .4byte 0xfff7ffff
|
|
_08013C8C: .4byte 0xffbfffff
|
|
_08013C90: .4byte 0xffefffff
|
|
_08013C94: .4byte gBattleScripting
|
|
_08013C98: .4byte gBattleMoveDamage
|
|
_08013C9C: .4byte gMoveResultFlags
|
|
_08013CA0: .4byte gUnknown_2023E82
|
|
_08013CA4: .4byte gUnknown_2023BE3
|
|
_08013CA8: .4byte gUnknown_3004F84
|
|
_08013CAC: .4byte RunTurnActionsFunctions
|
|
_08013CB0:
|
|
ldr r1, _08013D30 @ =gBattleResults
|
|
ldrb r0, [r1, 0x13]
|
|
cmp r0, 0xFE
|
|
bhi _08013CBC
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x13]
|
|
_08013CBC:
|
|
movs r2, 0
|
|
ldr r4, _08013D34 @ =gBattlersCount
|
|
ldr r0, _08013D38 @ =gBattleStruct
|
|
mov r8, r0
|
|
ldr r1, _08013D3C @ =gUnknown_3004F84
|
|
mov r10, r1
|
|
ldr r0, _08013D40 @ =gAbsentBattlerFlags
|
|
mov r12, r0
|
|
ldr r1, _08013D44 @ =sub_8014040
|
|
mov r9, r1
|
|
ldrb r0, [r4]
|
|
cmp r2, r0
|
|
bge _08013CF2
|
|
ldr r7, _08013D48 @ =gUnknown_2023D7C
|
|
movs r6, 0xFF
|
|
movs r5, 0
|
|
ldr r3, _08013D4C @ =gUnknown_2023DC4
|
|
_08013CDE:
|
|
adds r1, r2, r7
|
|
ldrb r0, [r1]
|
|
orrs r0, r6
|
|
strb r0, [r1]
|
|
strh r5, [r3]
|
|
adds r3, 0x2
|
|
adds r2, 0x1
|
|
ldrb r1, [r4]
|
|
cmp r2, r1
|
|
blt _08013CDE
|
|
_08013CF2:
|
|
movs r2, 0
|
|
ldr r3, _08013D38 @ =gBattleStruct
|
|
movs r1, 0x6
|
|
_08013CF8:
|
|
ldr r0, [r3]
|
|
adds r0, r2, r0
|
|
adds r0, 0x5C
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
ble _08013CF8
|
|
mov r2, r8
|
|
ldr r0, [r2]
|
|
adds r0, 0x91
|
|
mov r2, r12
|
|
ldrb r1, [r2]
|
|
strb r1, [r0]
|
|
mov r0, r9
|
|
mov r1, r10
|
|
str r0, [r1]
|
|
bl Random
|
|
ldr r1, _08013D50 @ =gUnknown_2023E80
|
|
strh r0, [r1]
|
|
_08013D20:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08013D30: .4byte gBattleResults
|
|
_08013D34: .4byte gBattlersCount
|
|
_08013D38: .4byte gBattleStruct
|
|
_08013D3C: .4byte gUnknown_3004F84
|
|
_08013D40: .4byte gAbsentBattlerFlags
|
|
_08013D44: .4byte sub_8014040
|
|
_08013D48: .4byte gUnknown_2023D7C
|
|
_08013D4C: .4byte gUnknown_2023DC4
|
|
_08013D50: .4byte gUnknown_2023E80
|
|
thumb_func_end sub_8013BD4
|
|
|
|
thumb_func_start IsRunningFromBattleImpossible
|
|
IsRunningFromBattleImpossible: @ 8013D54
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
ldr r1, _08013D78 @ =gBattleMons
|
|
ldr r0, _08013D7C @ =gActiveBattler
|
|
ldrb r2, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r1, r0, r1
|
|
ldrh r0, [r1, 0x2E]
|
|
cmp r0, 0xAF
|
|
bne _08013D84
|
|
ldr r1, _08013D80 @ =gEnigmaBerries
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r2, [r0, 0x7]
|
|
b _08013D8E
|
|
.align 2, 0
|
|
_08013D78: .4byte gBattleMons
|
|
_08013D7C: .4byte gActiveBattler
|
|
_08013D80: .4byte gEnigmaBerries
|
|
_08013D84:
|
|
ldrh r0, [r1, 0x2E]
|
|
bl ItemId_GetHoldEffect
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
_08013D8E:
|
|
ldr r1, _08013EA4 @ =gPotentialItemEffectBattler
|
|
ldr r3, _08013EA8 @ =gActiveBattler
|
|
ldrb r0, [r3]
|
|
strb r0, [r1]
|
|
cmp r2, 0x25
|
|
bne _08013D9C
|
|
b _08013F18
|
|
_08013D9C:
|
|
ldr r0, _08013EAC @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08013DAA
|
|
b _08013F18
|
|
_08013DAA:
|
|
ldr r1, _08013EB0 @ =gBattleMons
|
|
ldrb r2, [r3]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r0, r1
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x32
|
|
bne _08013DBE
|
|
b _08013F18
|
|
_08013DBE:
|
|
adds r0, r2, 0
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r5, 0
|
|
ldr r0, _08013EB4 @ =gBattlersCount
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bge _08013E52
|
|
movs r7, 0
|
|
_08013DD4:
|
|
lsrs r4, r7, 24
|
|
adds r0, r4, 0
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r6, r0
|
|
beq _08013DF8
|
|
ldr r1, _08013EB0 @ =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r5
|
|
adds r0, r1
|
|
adds r2, r0, 0
|
|
adds r2, 0x20
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x17
|
|
bne _08013DF8
|
|
b _08013F20
|
|
_08013DF8:
|
|
adds r0, r4, 0
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r6, r0
|
|
beq _08013E42
|
|
ldr r3, _08013EB0 @ =gBattleMons
|
|
ldr r0, _08013EA8 @ =gActiveBattler
|
|
ldrb r0, [r0]
|
|
movs r2, 0x58
|
|
muls r0, r2
|
|
adds r1, r0, r3
|
|
adds r0, r1, 0
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1A
|
|
beq _08013E42
|
|
adds r0, r1, 0
|
|
adds r0, 0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
beq _08013E42
|
|
adds r0, r1, 0
|
|
adds r0, 0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
beq _08013E42
|
|
adds r0, r5, 0
|
|
muls r0, r2
|
|
adds r0, r3
|
|
adds r2, r0, 0
|
|
adds r2, 0x20
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x47
|
|
bne _08013E42
|
|
b _08013F3C
|
|
_08013E42:
|
|
movs r0, 0x80
|
|
lsls r0, 17
|
|
adds r7, r0
|
|
adds r5, 0x1
|
|
ldr r0, _08013EB4 @ =gBattlersCount
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
blt _08013DD4
|
|
_08013E52:
|
|
ldr r4, _08013EA8 @ =gActiveBattler
|
|
ldrb r1, [r4]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0xF
|
|
movs r2, 0x2A
|
|
movs r3, 0
|
|
bl AbilityBattleEffects
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0
|
|
beq _08013EC4
|
|
ldr r6, _08013EB0 @ =gBattleMons
|
|
ldrb r0, [r4]
|
|
movs r3, 0x58
|
|
muls r0, r3
|
|
adds r1, r0, r6
|
|
adds r0, r1, 0
|
|
adds r0, 0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x8
|
|
beq _08013E8A
|
|
adds r0, r1, 0
|
|
adds r0, 0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x8
|
|
bne _08013EC4
|
|
_08013E8A:
|
|
ldr r0, _08013EB8 @ =gBattleScripting
|
|
subs r1, r5, 0x1
|
|
strb r1, [r0, 0x17]
|
|
ldr r2, _08013EBC @ =gLastUsedAbility
|
|
adds r0, r1, 0
|
|
muls r0, r3
|
|
adds r0, r6
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
ldr r1, _08013EC0 @ =gUnknown_2023E82
|
|
movs r0, 0x2
|
|
b _08013F5C
|
|
.align 2, 0
|
|
_08013EA4: .4byte gPotentialItemEffectBattler
|
|
_08013EA8: .4byte gActiveBattler
|
|
_08013EAC: .4byte gBattleTypeFlags
|
|
_08013EB0: .4byte gBattleMons
|
|
_08013EB4: .4byte gBattlersCount
|
|
_08013EB8: .4byte gBattleScripting
|
|
_08013EBC: .4byte gLastUsedAbility
|
|
_08013EC0: .4byte gUnknown_2023E82
|
|
_08013EC4:
|
|
ldr r1, _08013EF8 @ =gBattleMons
|
|
ldr r0, _08013EFC @ =gActiveBattler
|
|
ldrb r2, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ldr r1, _08013F00 @ =0x0400e000
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08013EEE
|
|
ldr r1, _08013F04 @ =gStatuses3
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08013F0C
|
|
_08013EEE:
|
|
ldr r1, _08013F08 @ =gUnknown_2023E82
|
|
movs r0, 0
|
|
strb r0, [r1, 0x5]
|
|
movs r0, 0x1
|
|
b _08013F5E
|
|
.align 2, 0
|
|
_08013EF8: .4byte gBattleMons
|
|
_08013EFC: .4byte gActiveBattler
|
|
_08013F00: .4byte 0x0400e000
|
|
_08013F04: .4byte gStatuses3
|
|
_08013F08: .4byte gUnknown_2023E82
|
|
_08013F0C:
|
|
ldr r0, _08013F1C @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08013F58
|
|
_08013F18:
|
|
movs r0, 0
|
|
b _08013F5E
|
|
.align 2, 0
|
|
_08013F1C: .4byte gBattleTypeFlags
|
|
_08013F20:
|
|
ldr r0, _08013F30 @ =gBattleScripting
|
|
strb r5, [r0, 0x17]
|
|
ldr r1, _08013F34 @ =gLastUsedAbility
|
|
ldrb r0, [r2]
|
|
strb r0, [r1]
|
|
ldr r1, _08013F38 @ =gUnknown_2023E82
|
|
movs r0, 0x2
|
|
b _08013F5C
|
|
.align 2, 0
|
|
_08013F30: .4byte gBattleScripting
|
|
_08013F34: .4byte gLastUsedAbility
|
|
_08013F38: .4byte gUnknown_2023E82
|
|
_08013F3C:
|
|
ldr r0, _08013F4C @ =gBattleScripting
|
|
strb r5, [r0, 0x17]
|
|
ldr r1, _08013F50 @ =gLastUsedAbility
|
|
ldrb r0, [r2]
|
|
strb r0, [r1]
|
|
ldr r1, _08013F54 @ =gUnknown_2023E82
|
|
movs r0, 0x2
|
|
b _08013F5C
|
|
.align 2, 0
|
|
_08013F4C: .4byte gBattleScripting
|
|
_08013F50: .4byte gLastUsedAbility
|
|
_08013F54: .4byte gUnknown_2023E82
|
|
_08013F58:
|
|
ldr r1, _08013F68 @ =gUnknown_2023E82
|
|
movs r0, 0x1
|
|
_08013F5C:
|
|
strb r0, [r1, 0x5]
|
|
_08013F5E:
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08013F68: .4byte gUnknown_2023E82
|
|
thumb_func_end IsRunningFromBattleImpossible
|
|
|
|
thumb_func_start sub_8013F6C
|
|
sub_8013F6C: @ 8013F6C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r3, 0
|
|
ldr r0, _08014008 @ =gBattlerPartyIndexes
|
|
mov r8, r0
|
|
ldr r1, _0801400C @ =gUnknown_203B0DC
|
|
mov r12, r1
|
|
ldr r7, _08014010 @ =gBattleStruct
|
|
lsls r0, r5, 1
|
|
adds r4, r0, r5
|
|
adds r6, r0, 0
|
|
_08013F88:
|
|
mov r0, r12
|
|
adds r2, r3, r0
|
|
ldr r1, [r7]
|
|
adds r0, r4, r3
|
|
adds r0, r1
|
|
adds r0, 0x60
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
adds r3, 0x1
|
|
cmp r3, 0x2
|
|
ble _08013F88
|
|
mov r1, r8
|
|
adds r0, r6, r1
|
|
ldrb r0, [r0]
|
|
bl pokemon_order_func
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r7, _08014010 @ =gBattleStruct
|
|
ldr r0, [r7]
|
|
adds r0, r5, r0
|
|
adds r0, 0x5C
|
|
ldrb r0, [r0]
|
|
bl pokemon_order_func
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl sub_8127FF4
|
|
ldr r0, _08014014 @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08014018
|
|
movs r3, 0
|
|
adds r4, r7, 0
|
|
adds r6, r5
|
|
movs r0, 0x2
|
|
adds r1, r5, 0
|
|
eors r1, r0
|
|
ldr r7, _0801400C @ =gUnknown_203B0DC
|
|
lsls r0, r1, 1
|
|
adds r5, r0, r1
|
|
_08013FE6:
|
|
ldr r0, [r4]
|
|
adds r1, r6, r3
|
|
adds r1, r0
|
|
adds r1, 0x60
|
|
adds r2, r3, r7
|
|
ldrb r0, [r2]
|
|
strb r0, [r1]
|
|
ldr r1, [r4]
|
|
adds r0, r5, r3
|
|
adds r0, r1
|
|
adds r0, 0x60
|
|
ldrb r1, [r2]
|
|
strb r1, [r0]
|
|
adds r3, 0x1
|
|
cmp r3, 0x2
|
|
ble _08013FE6
|
|
b _08014032
|
|
.align 2, 0
|
|
_08014008: .4byte gBattlerPartyIndexes
|
|
_0801400C: .4byte gUnknown_203B0DC
|
|
_08014010: .4byte gBattleStruct
|
|
_08014014: .4byte gBattleTypeFlags
|
|
_08014018:
|
|
movs r3, 0
|
|
adds r2, r6, r5
|
|
ldr r4, _0801403C @ =gUnknown_203B0DC
|
|
_0801401E:
|
|
ldr r0, [r7]
|
|
adds r1, r2, r3
|
|
adds r1, r0
|
|
adds r1, 0x60
|
|
adds r0, r3, r4
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r3, 0x1
|
|
cmp r3, 0x2
|
|
ble _0801401E
|
|
_08014032:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0801403C: .4byte gUnknown_203B0DC
|
|
thumb_func_end sub_8013F6C
|
|
|
|
thumb_func_start sub_8014040
|
|
sub_8014040: @ 8014040
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x1C
|
|
ldr r0, _0801408C @ =gUnknown_2023E82
|
|
movs r1, 0
|
|
strb r1, [r0, 0x4]
|
|
ldr r0, _08014090 @ =gActiveBattler
|
|
strb r1, [r0]
|
|
ldr r0, _08014094 @ =gBattlersCount
|
|
adds r2, r0, 0
|
|
ldrb r0, [r2]
|
|
cmp r1, r0
|
|
bcc _08014064
|
|
bl _08014C68
|
|
_08014064:
|
|
ldr r4, _08014090 @ =gActiveBattler
|
|
ldrb r0, [r4]
|
|
bl GetBattlerPosition
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, _0801408C @ =gUnknown_2023E82
|
|
ldrb r0, [r4]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x6
|
|
bls _08014080
|
|
bl _08014C4E
|
|
_08014080:
|
|
lsls r0, 2
|
|
ldr r1, _08014098 @ =_0801409C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0801408C: .4byte gUnknown_2023E82
|
|
_08014090: .4byte gActiveBattler
|
|
_08014094: .4byte gBattlersCount
|
|
_08014098: .4byte _0801409C
|
|
.align 2, 0
|
|
_0801409C:
|
|
.4byte _080140B8
|
|
.4byte _080141DC
|
|
.4byte _08014764
|
|
.4byte _08014AA0
|
|
.4byte _08014B44
|
|
.4byte _08014B88
|
|
.4byte _08014C20
|
|
_080140B8:
|
|
ldr r0, _08014150 @ =gActiveBattler
|
|
ldrb r1, [r0]
|
|
ldr r4, _08014154 @ =gBattleStruct
|
|
ldr r0, [r4]
|
|
adds r1, r0
|
|
adds r1, 0x5C
|
|
movs r0, 0x6
|
|
strb r0, [r1]
|
|
ldr r0, _08014158 @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08014114
|
|
movs r1, 0x2
|
|
movs r0, 0x2
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _08014114
|
|
eors r5, r1
|
|
adds r0, r5, 0
|
|
bl GetBattlerAtPosition
|
|
ldr r1, [r4]
|
|
adds r1, 0x91
|
|
ldrb r1, [r1]
|
|
ldr r2, _0801415C @ =gBitTable
|
|
lsls r0, 24
|
|
lsrs r0, 22
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _08014114
|
|
ldr r4, _08014160 @ =gUnknown_2023E82
|
|
adds r0, r5, 0
|
|
bl GetBattlerAtPosition
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x4
|
|
beq _08014114
|
|
bl _08014C4E
|
|
_08014114:
|
|
ldr r0, _08014154 @ =gBattleStruct
|
|
ldr r0, [r0]
|
|
adds r0, 0x91
|
|
ldrb r3, [r0]
|
|
ldr r1, _0801415C @ =gBitTable
|
|
ldr r4, _08014150 @ =gActiveBattler
|
|
ldrb r2, [r4]
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ands r3, r0
|
|
cmp r3, 0
|
|
beq _0801417C
|
|
ldr r0, _08014164 @ =gUnknown_2023D7C
|
|
adds r0, r2, r0
|
|
movs r1, 0xD
|
|
strb r1, [r0]
|
|
ldr r0, _08014158 @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08014168
|
|
ldr r0, _08014160 @ =gUnknown_2023E82
|
|
ldrb r1, [r4]
|
|
adds r1, r0
|
|
movs r0, 0x4
|
|
strb r0, [r1]
|
|
bl _08014C4E
|
|
.align 2, 0
|
|
_08014150: .4byte gActiveBattler
|
|
_08014154: .4byte gBattleStruct
|
|
_08014158: .4byte gBattleTypeFlags
|
|
_0801415C: .4byte gBitTable
|
|
_08014160: .4byte gUnknown_2023E82
|
|
_08014164: .4byte gUnknown_2023D7C
|
|
_08014168:
|
|
ldr r0, _08014178 @ =gUnknown_2023E82
|
|
ldrb r1, [r4]
|
|
adds r1, r0
|
|
movs r0, 0x3
|
|
strb r0, [r1]
|
|
bl _08014C4E
|
|
.align 2, 0
|
|
_08014178: .4byte gUnknown_2023E82
|
|
_0801417C:
|
|
ldr r1, _080141B0 @ =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0801419C
|
|
movs r0, 0x80
|
|
lsls r0, 15
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080141BC
|
|
_0801419C:
|
|
ldr r0, _080141B4 @ =gUnknown_2023D7C
|
|
adds r0, r2, r0
|
|
strb r3, [r0]
|
|
ldr r1, _080141B8 @ =gUnknown_2023E82
|
|
ldrb r0, [r4]
|
|
adds r0, r1
|
|
movs r1, 0x3
|
|
strb r1, [r0]
|
|
bl _08014C4E
|
|
.align 2, 0
|
|
_080141B0: .4byte gBattleMons
|
|
_080141B4: .4byte gUnknown_2023D7C
|
|
_080141B8: .4byte gUnknown_2023E82
|
|
_080141BC:
|
|
ldr r0, _080141D4 @ =gUnknown_2023D7C
|
|
ldrb r1, [r0]
|
|
ldr r0, _080141D8 @ =gUnknown_20233C4
|
|
ldrb r2, [r0, 0x1]
|
|
ldrb r0, [r0, 0x2]
|
|
lsls r0, 8
|
|
orrs r2, r0
|
|
movs r0, 0
|
|
bl EmitChooseAction
|
|
bl _08014B26
|
|
.align 2, 0
|
|
_080141D4: .4byte gUnknown_2023D7C
|
|
_080141D8: .4byte gUnknown_20233C4
|
|
_080141DC:
|
|
ldr r4, _08014234 @ =gUnknown_2023BC8
|
|
ldr r1, _08014238 @ =gBitTable
|
|
ldr r3, _0801423C @ =gActiveBattler
|
|
ldrb r5, [r3]
|
|
lsls r0, r5, 2
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
lsls r0, r2, 4
|
|
movs r1, 0xF0
|
|
lsls r1, 24
|
|
orrs r0, r1
|
|
orrs r0, r2
|
|
lsls r1, r2, 8
|
|
orrs r0, r1
|
|
lsls r2, 12
|
|
orrs r0, r2
|
|
ldr r1, [r4]
|
|
ands r1, r0
|
|
mov r8, r3
|
|
cmp r1, 0
|
|
beq _0801420A
|
|
bl _08014C4E
|
|
_0801420A:
|
|
ldr r2, _08014240 @ =gUnknown_2023D7C
|
|
adds r2, r5, r2
|
|
ldr r1, _08014244 @ =gUnknown_20233C4
|
|
lsls r0, r5, 9
|
|
adds r1, 0x1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
ldrb r0, [r3]
|
|
lsls r0, 9
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xC
|
|
bls _08014228
|
|
b _080146AC
|
|
_08014228:
|
|
lsls r0, 2
|
|
ldr r1, _08014248 @ =_0801424C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08014234: .4byte gUnknown_2023BC8
|
|
_08014238: .4byte gBitTable
|
|
_0801423C: .4byte gActiveBattler
|
|
_08014240: .4byte gUnknown_2023D7C
|
|
_08014244: .4byte gUnknown_20233C4
|
|
_08014248: .4byte _0801424C
|
|
.align 2, 0
|
|
_0801424C:
|
|
.4byte _08014280
|
|
.4byte _080143D4
|
|
.4byte _08014450
|
|
.4byte _080146AC
|
|
.4byte _080146AC
|
|
.4byte _08014620
|
|
.4byte _080146AC
|
|
.4byte _080146AC
|
|
.4byte _080146AC
|
|
.4byte _080146AC
|
|
.4byte _080146AC
|
|
.4byte _080146AC
|
|
.4byte _08014670
|
|
_08014280:
|
|
bl sub_8017998
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080142D8
|
|
ldr r0, _080142C8 @ =gUnknown_2023E82
|
|
ldr r3, _080142CC @ =gActiveBattler
|
|
ldrb r1, [r3]
|
|
adds r1, r0
|
|
movs r4, 0
|
|
movs r0, 0x5
|
|
strb r0, [r1]
|
|
ldrb r1, [r3]
|
|
ldr r2, _080142D0 @ =gBattleStruct
|
|
ldr r0, [r2]
|
|
adds r1, r0
|
|
adds r1, 0x54
|
|
strb r4, [r1]
|
|
ldrb r1, [r3]
|
|
ldr r0, [r2]
|
|
adds r1, r0
|
|
adds r1, 0x84
|
|
movs r0, 0x3
|
|
strb r0, [r1]
|
|
ldrb r1, [r3]
|
|
ldr r2, [r2]
|
|
adds r2, r1, r2
|
|
ldr r0, _080142D4 @ =gUnknown_20233C4
|
|
lsls r1, 9
|
|
adds r0, 0x3
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
strb r0, [r2, 0xC]
|
|
bl _08014C78
|
|
.align 2, 0
|
|
_080142C8: .4byte gUnknown_2023E82
|
|
_080142CC: .4byte gActiveBattler
|
|
_080142D0: .4byte gBattleStruct
|
|
_080142D4: .4byte gUnknown_20233C4
|
|
_080142D8:
|
|
ldr r3, _08014318 @ =gDisableStructs
|
|
ldr r5, _0801431C @ =gActiveBattler
|
|
ldrb r4, [r5]
|
|
lsls r0, r4, 3
|
|
subs r0, r4
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrh r2, [r0, 0x6]
|
|
cmp r2, 0
|
|
beq _0801432C
|
|
ldr r1, _08014320 @ =gUnknown_2023DC4
|
|
lsls r0, r4, 1
|
|
adds r0, r1
|
|
strh r2, [r0]
|
|
ldrb r2, [r5]
|
|
ldr r0, _08014324 @ =gBattleStruct
|
|
ldr r1, [r0]
|
|
adds r1, r2, r1
|
|
adds r1, 0x80
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrb r0, [r0, 0xC]
|
|
strb r0, [r1]
|
|
ldr r1, _08014328 @ =gUnknown_2023E82
|
|
ldrb r0, [r5]
|
|
adds r0, r1
|
|
movs r1, 0x3
|
|
strb r1, [r0]
|
|
bl _08014C78
|
|
.align 2, 0
|
|
_08014318: .4byte gDisableStructs
|
|
_0801431C: .4byte gActiveBattler
|
|
_08014320: .4byte gUnknown_2023DC4
|
|
_08014324: .4byte gBattleStruct
|
|
_08014328: .4byte gUnknown_2023E82
|
|
_0801432C:
|
|
add r2, sp, 0x4
|
|
ldr r3, _080143CC @ =gBattleMons
|
|
movs r1, 0x58
|
|
adds r0, r4, 0
|
|
muls r0, r1
|
|
adds r0, r3
|
|
ldrh r0, [r0]
|
|
strh r0, [r2, 0x10]
|
|
ldrb r0, [r5]
|
|
muls r0, r1
|
|
adds r0, r3
|
|
adds r0, 0x21
|
|
ldrb r0, [r0]
|
|
strb r0, [r2, 0x12]
|
|
ldrb r0, [r5]
|
|
muls r0, r1
|
|
adds r0, r3
|
|
adds r0, 0x22
|
|
ldrb r0, [r0]
|
|
strb r0, [r2, 0x13]
|
|
movs r4, 0
|
|
mov r1, sp
|
|
adds r1, 0xC
|
|
str r1, [sp, 0x18]
|
|
add r2, sp, 0x10
|
|
mov r10, r2
|
|
mov r8, r3
|
|
adds r7, r5, 0
|
|
movs r6, 0x58
|
|
movs r3, 0xC
|
|
add r3, r8
|
|
mov r9, r3
|
|
add r5, sp, 0x4
|
|
_0801436E:
|
|
lsls r2, r4, 1
|
|
ldrb r0, [r7]
|
|
muls r0, r6
|
|
adds r0, r2, r0
|
|
add r0, r9
|
|
ldrh r0, [r0]
|
|
strh r0, [r5]
|
|
ldr r0, [sp, 0x18]
|
|
adds r3, r0, r4
|
|
ldrb r0, [r7]
|
|
muls r0, r6
|
|
adds r0, r4, r0
|
|
mov r1, r8
|
|
adds r1, 0x24
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r3]
|
|
ldrb r0, [r7]
|
|
adds r1, r0, 0
|
|
muls r1, r6
|
|
adds r2, r1
|
|
add r2, r9
|
|
ldrh r0, [r2]
|
|
add r1, r8
|
|
adds r1, 0x3B
|
|
ldrb r1, [r1]
|
|
lsls r2, r4, 24
|
|
lsrs r2, 24
|
|
bl CalculatePPWithBonus
|
|
mov r2, r10
|
|
adds r1, r2, r4
|
|
strb r0, [r1]
|
|
adds r5, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _0801436E
|
|
ldr r0, _080143D0 @ =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r0, 0x1
|
|
ands r1, r0
|
|
movs r0, 0
|
|
movs r2, 0
|
|
add r3, sp, 0x4
|
|
bl EmitChooseMove
|
|
b _0801460E
|
|
.align 2, 0
|
|
_080143CC: .4byte gBattleMons
|
|
_080143D0: .4byte gBattleTypeFlags
|
|
_080143D4:
|
|
ldr r0, _08014410 @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
ldr r1, _08014414 @ =0x00000902
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08014428
|
|
ldr r1, _08014418 @ =gUnknown_2023D80
|
|
mov r3, r8
|
|
ldrb r0, [r3]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, _0801441C @ =gUnknown_81D96A4
|
|
str r1, [r0]
|
|
ldr r0, _08014420 @ =gUnknown_2023E82
|
|
ldrb r1, [r3]
|
|
adds r1, r0
|
|
movs r3, 0
|
|
movs r0, 0x5
|
|
strb r0, [r1]
|
|
mov r0, r8
|
|
ldrb r1, [r0]
|
|
ldr r2, _08014424 @ =gBattleStruct
|
|
ldr r0, [r2]
|
|
adds r1, r0
|
|
adds r1, 0x54
|
|
strb r3, [r1]
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
b _0801472C
|
|
.align 2, 0
|
|
_08014410: .4byte gBattleTypeFlags
|
|
_08014414: .4byte 0x00000902
|
|
_08014418: .4byte gUnknown_2023D80
|
|
_0801441C: .4byte gUnknown_81D96A4
|
|
_08014420: .4byte gUnknown_2023E82
|
|
_08014424: .4byte gBattleStruct
|
|
_08014428:
|
|
ldr r2, _08014448 @ =gBattleStruct
|
|
ldr r4, _0801444C @ =gActiveBattler
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
adds r0, 0x60
|
|
ldr r1, [r2]
|
|
adds r1, r0
|
|
movs r0, 0
|
|
bl EmitChooseItem
|
|
ldrb r0, [r4]
|
|
bl MarkBufferBankForExecution
|
|
b _080146AC
|
|
.align 2, 0
|
|
_08014448: .4byte gBattleStruct
|
|
_0801444C: .4byte gActiveBattler
|
|
_08014450:
|
|
ldr r5, _080144A8 @ =gActiveBattler
|
|
ldrb r0, [r5]
|
|
ldr r3, _080144AC @ =gBattleStruct
|
|
ldr r1, [r3]
|
|
adds r1, r0, r1
|
|
adds r1, 0x58
|
|
ldr r2, _080144B0 @ =gBattlerPartyIndexes
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
strb r0, [r1]
|
|
ldr r7, _080144B4 @ =gBattleMons
|
|
ldrb r2, [r5]
|
|
movs r6, 0x58
|
|
adds r0, r2, 0
|
|
muls r0, r6
|
|
adds r1, r7, 0
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ldr r1, _080144B8 @ =0x0400e000
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08014492
|
|
ldr r0, _080144BC @ =gStatuses3
|
|
lsls r1, r2, 2
|
|
adds r1, r0
|
|
ldr r1, [r1]
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080144C0
|
|
_08014492:
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
adds r1, 0x60
|
|
ldr r0, [r3]
|
|
adds r0, r1
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
movs r2, 0x6
|
|
b _080145DE
|
|
.align 2, 0
|
|
_080144A8: .4byte gActiveBattler
|
|
_080144AC: .4byte gBattleStruct
|
|
_080144B0: .4byte gBattlerPartyIndexes
|
|
_080144B4: .4byte gBattleMons
|
|
_080144B8: .4byte 0x0400e000
|
|
_080144BC: .4byte gStatuses3
|
|
_080144C0:
|
|
str r1, [sp]
|
|
movs r0, 0xC
|
|
adds r1, r2, 0
|
|
movs r2, 0x17
|
|
movs r3, 0
|
|
bl AbilityBattleEffects
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
bne _08014548
|
|
ldrb r1, [r5]
|
|
str r4, [sp]
|
|
movs r0, 0xC
|
|
movs r2, 0x47
|
|
movs r3, 0
|
|
bl AbilityBattleEffects
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
beq _08014510
|
|
ldrb r0, [r5]
|
|
muls r0, r6
|
|
adds r1, r0, r7
|
|
adds r0, r1, 0
|
|
adds r0, 0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
beq _08014510
|
|
adds r0, r1, 0
|
|
adds r0, 0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
beq _08014510
|
|
adds r0, r1, 0
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1A
|
|
bne _08014548
|
|
_08014510:
|
|
ldr r5, _08014574 @ =gActiveBattler
|
|
ldrb r1, [r5]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0xF
|
|
movs r2, 0x2A
|
|
movs r3, 0
|
|
bl AbilityBattleEffects
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
beq _08014584
|
|
ldr r2, _08014578 @ =gBattleMons
|
|
ldrb r1, [r5]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r1, r0, r2
|
|
adds r0, r1, 0
|
|
adds r0, 0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x8
|
|
beq _08014548
|
|
adds r0, r1, 0
|
|
adds r0, 0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x8
|
|
bne _08014584
|
|
_08014548:
|
|
subs r1, r4, 0x1
|
|
lsls r1, 4
|
|
movs r0, 0x4
|
|
orrs r1, r0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r0, _0801457C @ =gLastUsedAbility
|
|
ldrb r3, [r0]
|
|
ldr r4, _08014580 @ =gBattleStruct
|
|
ldr r0, _08014574 @ =gActiveBattler
|
|
ldrb r0, [r0]
|
|
lsls r2, r0, 1
|
|
adds r2, r0
|
|
adds r2, 0x60
|
|
ldr r0, [r4]
|
|
adds r0, r2
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r2, 0x6
|
|
bl EmitChoosePokemon
|
|
b _0801460E
|
|
.align 2, 0
|
|
_08014574: .4byte gActiveBattler
|
|
_08014578: .4byte gBattleMons
|
|
_0801457C: .4byte gLastUsedAbility
|
|
_08014580: .4byte gBattleStruct
|
|
_08014584:
|
|
ldr r0, _080145A8 @ =gActiveBattler
|
|
ldrb r1, [r0]
|
|
mov r8, r0
|
|
cmp r1, 0x2
|
|
bne _080145B4
|
|
ldr r0, _080145AC @ =gUnknown_2023D7C
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
bne _080145B4
|
|
ldr r0, _080145B0 @ =gBattleStruct
|
|
ldr r3, [r0]
|
|
adds r0, r3, 0
|
|
adds r0, 0x5C
|
|
ldrb r2, [r0]
|
|
mov r0, r8
|
|
ldrb r1, [r0]
|
|
b _080145D0
|
|
.align 2, 0
|
|
_080145A8: .4byte gActiveBattler
|
|
_080145AC: .4byte gUnknown_2023D7C
|
|
_080145B0: .4byte gBattleStruct
|
|
_080145B4:
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x3
|
|
bne _080145F0
|
|
ldr r0, _080145E8 @ =gUnknown_2023D7C
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0x2
|
|
bne _080145F0
|
|
ldr r0, _080145EC @ =gBattleStruct
|
|
ldr r3, [r0]
|
|
adds r0, r3, 0
|
|
adds r0, 0x5D
|
|
ldrb r2, [r0]
|
|
ldrb r1, [r1]
|
|
_080145D0:
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
adds r0, 0x60
|
|
adds r3, r0
|
|
str r3, [sp]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
_080145DE:
|
|
movs r3, 0
|
|
bl EmitChoosePokemon
|
|
b _0801460E
|
|
.align 2, 0
|
|
_080145E8: .4byte gUnknown_2023D7C
|
|
_080145EC: .4byte gBattleStruct
|
|
_080145F0:
|
|
ldr r2, _08014618 @ =gBattleStruct
|
|
ldr r0, _0801461C @ =gActiveBattler
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
adds r1, 0x60
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0x6
|
|
movs r3, 0
|
|
bl EmitChoosePokemon
|
|
_0801460E:
|
|
ldr r0, _0801461C @ =gActiveBattler
|
|
ldrb r0, [r0]
|
|
bl MarkBufferBankForExecution
|
|
b _080146AC
|
|
.align 2, 0
|
|
_08014618: .4byte gBattleStruct
|
|
_0801461C: .4byte gActiveBattler
|
|
_08014620:
|
|
bl IsPlayerPartyAndPokemonStorageFull
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080146AC
|
|
ldr r1, _0801465C @ =gUnknown_2023D80
|
|
ldr r3, _08014660 @ =gActiveBattler
|
|
ldrb r0, [r3]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, _08014664 @ =gUnknown_81D8949
|
|
str r1, [r0]
|
|
ldr r0, _08014668 @ =gUnknown_2023E82
|
|
ldrb r1, [r3]
|
|
adds r1, r0
|
|
movs r4, 0
|
|
movs r0, 0x5
|
|
strb r0, [r1]
|
|
ldrb r1, [r3]
|
|
ldr r2, _0801466C @ =gBattleStruct
|
|
ldr r0, [r2]
|
|
adds r1, r0
|
|
adds r1, 0x54
|
|
strb r4, [r1]
|
|
ldrb r0, [r3]
|
|
ldr r1, [r2]
|
|
adds r0, r1
|
|
adds r0, 0x84
|
|
strb r4, [r0]
|
|
b _08014C78
|
|
.align 2, 0
|
|
_0801465C: .4byte gUnknown_2023D80
|
|
_08014660: .4byte gActiveBattler
|
|
_08014664: .4byte gUnknown_81D8949
|
|
_08014668: .4byte gUnknown_2023E82
|
|
_0801466C: .4byte gBattleStruct
|
|
_08014670:
|
|
ldr r4, _080146A8 @ =gUnknown_2023E82
|
|
mov r2, r8
|
|
ldrb r1, [r2]
|
|
adds r1, r4
|
|
movs r5, 0
|
|
movs r0, 0x6
|
|
strb r0, [r1]
|
|
ldrb r0, [r2]
|
|
bl GetBattlerPosition
|
|
movs r1, 0x2
|
|
eors r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl GetBattlerAtPosition
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, r4
|
|
strb r5, [r0]
|
|
movs r0, 0
|
|
bl EmitCmd50
|
|
mov r3, r8
|
|
ldrb r0, [r3]
|
|
bl MarkBufferBankForExecution
|
|
b _08014C78
|
|
.align 2, 0
|
|
_080146A8: .4byte gUnknown_2023E82
|
|
_080146AC:
|
|
ldr r0, _080146D8 @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0xA
|
|
ands r0, r1
|
|
cmp r0, 0x8
|
|
bne _080146EC
|
|
ldr r0, _080146DC @ =gUnknown_20233C4
|
|
ldr r4, _080146E0 @ =gActiveBattler
|
|
ldrb r1, [r4]
|
|
lsls r1, 9
|
|
adds r0, 0x1
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x3
|
|
bne _080146EC
|
|
ldr r0, _080146E4 @ =gUnknown_81D8924
|
|
bl BattleScriptExecute
|
|
ldr r1, _080146E8 @ =gUnknown_2023E82
|
|
ldrb r0, [r4]
|
|
adds r0, r1
|
|
b _08014926
|
|
.align 2, 0
|
|
_080146D8: .4byte gBattleTypeFlags
|
|
_080146DC: .4byte gUnknown_20233C4
|
|
_080146E0: .4byte gActiveBattler
|
|
_080146E4: .4byte gUnknown_81D8924
|
|
_080146E8: .4byte gUnknown_2023E82
|
|
_080146EC:
|
|
bl IsRunningFromBattleImpossible
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08014750
|
|
ldr r0, _08014738 @ =gUnknown_20233C4
|
|
ldr r4, _0801473C @ =gActiveBattler
|
|
ldrb r2, [r4]
|
|
lsls r1, r2, 9
|
|
adds r0, 0x1
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x3
|
|
bne _08014750
|
|
ldr r1, _08014740 @ =gUnknown_2023D80
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldr r1, _08014744 @ =gUnknown_81D8943
|
|
str r1, [r0]
|
|
ldr r0, _08014748 @ =gUnknown_2023E82
|
|
ldrb r1, [r4]
|
|
adds r1, r0
|
|
movs r3, 0
|
|
movs r0, 0x5
|
|
strb r0, [r1]
|
|
ldrb r1, [r4]
|
|
ldr r2, _0801474C @ =gBattleStruct
|
|
ldr r0, [r2]
|
|
adds r1, r0
|
|
adds r1, 0x54
|
|
strb r3, [r1]
|
|
ldrb r0, [r4]
|
|
_0801472C:
|
|
ldr r1, [r2]
|
|
adds r0, r1
|
|
adds r0, 0x84
|
|
strb r3, [r0]
|
|
b _08014C78
|
|
.align 2, 0
|
|
_08014738: .4byte gUnknown_20233C4
|
|
_0801473C: .4byte gActiveBattler
|
|
_08014740: .4byte gUnknown_2023D80
|
|
_08014744: .4byte gUnknown_81D8943
|
|
_08014748: .4byte gUnknown_2023E82
|
|
_0801474C: .4byte gBattleStruct
|
|
_08014750:
|
|
ldr r2, _0801475C @ =gUnknown_2023E82
|
|
ldr r0, _08014760 @ =gActiveBattler
|
|
ldrb r1, [r0]
|
|
adds r1, r2
|
|
b _08014B32
|
|
.align 2, 0
|
|
_0801475C: .4byte gUnknown_2023E82
|
|
_08014760: .4byte gActiveBattler
|
|
_08014764:
|
|
ldr r4, _080147A8 @ =gUnknown_2023BC8
|
|
ldr r1, _080147AC @ =gBitTable
|
|
ldr r3, _080147B0 @ =gActiveBattler
|
|
ldrb r5, [r3]
|
|
lsls r0, r5, 2
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
lsls r0, r2, 4
|
|
movs r1, 0xF0
|
|
lsls r1, 24
|
|
orrs r0, r1
|
|
orrs r0, r2
|
|
lsls r1, r2, 8
|
|
orrs r0, r1
|
|
lsls r2, 12
|
|
orrs r0, r2
|
|
ldr r1, [r4]
|
|
ands r1, r0
|
|
mov r8, r3
|
|
cmp r1, 0
|
|
beq _08014790
|
|
b _08014C4E
|
|
_08014790:
|
|
ldr r1, _080147B4 @ =gUnknown_2023D7C
|
|
adds r0, r5, r1
|
|
ldrb r0, [r0]
|
|
adds r3, r1, 0
|
|
cmp r0, 0x9
|
|
bls _0801479E
|
|
b _08014C4E
|
|
_0801479E:
|
|
lsls r0, 2
|
|
ldr r1, _080147B8 @ =_080147BC
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080147A8: .4byte gUnknown_2023BC8
|
|
_080147AC: .4byte gBitTable
|
|
_080147B0: .4byte gActiveBattler
|
|
_080147B4: .4byte gUnknown_2023D7C
|
|
_080147B8: .4byte _080147BC
|
|
.align 2, 0
|
|
_080147BC:
|
|
.4byte _080147E4
|
|
.4byte _080148D8
|
|
.4byte _08014910
|
|
.4byte _08014A08
|
|
.4byte _08014A2C
|
|
.4byte _08014A40
|
|
.4byte _08014A54
|
|
.4byte _08014A54
|
|
.4byte _08014A68
|
|
.4byte _08014A8C
|
|
_080147E4:
|
|
ldr r0, _08014804 @ =gUnknown_20233C4
|
|
mov r1, r8
|
|
ldrb r4, [r1]
|
|
lsls r1, r4, 9
|
|
adds r2, r0, 0x1
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
adds r7, r0, 0
|
|
cmp r1, 0x9
|
|
bgt _08014808
|
|
cmp r1, 0x3
|
|
blt _08014808
|
|
adds r0, r4, r3
|
|
strb r1, [r0]
|
|
b _08014C78
|
|
.align 2, 0
|
|
_08014804: .4byte gUnknown_20233C4
|
|
_08014808:
|
|
adds r3, r7, 0
|
|
mov r5, r8
|
|
ldrb r4, [r5]
|
|
lsls r1, r4, 9
|
|
adds r6, r3, 0x2
|
|
adds r0, r1, r6
|
|
ldrb r2, [r0]
|
|
adds r3, 0x3
|
|
mov r9, r3
|
|
add r1, r9
|
|
ldrb r0, [r1]
|
|
lsls r0, 8
|
|
orrs r2, r0
|
|
ldr r0, _08014830 @ =0x0000ffff
|
|
cmp r2, r0
|
|
bne _08014838
|
|
ldr r0, _08014834 @ =gUnknown_2023E82
|
|
adds r0, r4, r0
|
|
b _08014926
|
|
.align 2, 0
|
|
_08014830: .4byte 0x0000ffff
|
|
_08014834: .4byte gUnknown_2023E82
|
|
_08014838:
|
|
bl sub_8017594
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0801487C
|
|
ldr r0, _08014874 @ =gUnknown_2023E82
|
|
ldrb r1, [r5]
|
|
adds r1, r0
|
|
movs r3, 0
|
|
movs r0, 0x5
|
|
strb r0, [r1]
|
|
ldrb r1, [r5]
|
|
ldr r2, _08014878 @ =gBattleStruct
|
|
ldr r0, [r2]
|
|
adds r1, r0
|
|
adds r1, 0x54
|
|
strb r3, [r1]
|
|
ldrb r0, [r5]
|
|
lsls r0, 9
|
|
adds r1, r7, 0x1
|
|
adds r0, r1
|
|
strb r3, [r0]
|
|
ldrb r1, [r5]
|
|
ldr r0, [r2]
|
|
adds r1, r0
|
|
adds r1, 0x84
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
b _08014C78
|
|
.align 2, 0
|
|
_08014874: .4byte gUnknown_2023E82
|
|
_08014878: .4byte gBattleStruct
|
|
_0801487C:
|
|
mov r2, r8
|
|
ldrb r0, [r2]
|
|
ldr r4, _080148C8 @ =gBattleStruct
|
|
ldr r1, [r4]
|
|
adds r1, r0, r1
|
|
adds r1, 0x80
|
|
lsls r0, 9
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldr r0, _080148CC @ =gUnknown_2023DC4
|
|
ldrb r2, [r2]
|
|
lsls r5, r2, 1
|
|
adds r5, r0
|
|
ldr r3, _080148D0 @ =gBattleMons
|
|
ldr r4, [r4]
|
|
adds r0, r2, r4
|
|
adds r0, 0x80
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
movs r1, 0x58
|
|
muls r1, r2
|
|
adds r0, r1
|
|
adds r3, 0xC
|
|
adds r0, r3
|
|
ldrh r0, [r0]
|
|
strh r0, [r5]
|
|
mov r3, r8
|
|
ldrb r0, [r3]
|
|
adds r4, r0, r4
|
|
lsls r0, 9
|
|
add r0, r9
|
|
ldrb r0, [r0]
|
|
strb r0, [r4, 0xC]
|
|
ldr r0, _080148D4 @ =gUnknown_2023E82
|
|
ldrb r1, [r3]
|
|
b _08014B30
|
|
.align 2, 0
|
|
_080148C8: .4byte gBattleStruct
|
|
_080148CC: .4byte gUnknown_2023DC4
|
|
_080148D0: .4byte gBattleMons
|
|
_080148D4: .4byte gUnknown_2023E82
|
|
_080148D8:
|
|
ldr r2, _08014900 @ =gUnknown_20233C4
|
|
ldr r5, _08014904 @ =gActiveBattler
|
|
ldrb r4, [r5]
|
|
lsls r1, r4, 9
|
|
adds r0, r2, 0x1
|
|
adds r0, r1, r0
|
|
ldrb r3, [r0]
|
|
adds r2, 0x2
|
|
adds r1, r2
|
|
ldrb r0, [r1]
|
|
lsls r0, 8
|
|
orrs r3, r0
|
|
cmp r3, 0
|
|
bne _080148F6
|
|
b _08014C48
|
|
_080148F6:
|
|
ldr r0, _08014908 @ =gUnknown_2023D68
|
|
strh r3, [r0]
|
|
ldr r0, _0801490C @ =gUnknown_2023E82
|
|
ldrb r1, [r5]
|
|
b _08014B30
|
|
.align 2, 0
|
|
_08014900: .4byte gUnknown_20233C4
|
|
_08014904: .4byte gActiveBattler
|
|
_08014908: .4byte gUnknown_2023D68
|
|
_0801490C: .4byte gUnknown_2023E82
|
|
_08014910:
|
|
ldr r6, _0801492C @ =gUnknown_20233C4
|
|
ldr r7, _08014930 @ =gActiveBattler
|
|
ldrb r2, [r7]
|
|
lsls r0, r2, 9
|
|
adds r1, r6, 0x1
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
cmp r1, 0x6
|
|
bne _08014938
|
|
ldr r0, _08014934 @ =gUnknown_2023E82
|
|
adds r0, r2, r0
|
|
_08014926:
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
b _08014C4E
|
|
.align 2, 0
|
|
_0801492C: .4byte gUnknown_20233C4
|
|
_08014930: .4byte gActiveBattler
|
|
_08014934: .4byte gUnknown_2023E82
|
|
_08014938:
|
|
ldr r0, _080149FC @ =gBattleStruct
|
|
mov r12, r0
|
|
ldr r0, [r0]
|
|
adds r0, r2, r0
|
|
adds r0, 0x5C
|
|
strb r1, [r0]
|
|
ldr r0, _08014A00 @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080149F6
|
|
ldrb r0, [r7]
|
|
mov r1, r12
|
|
ldr r2, [r1]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
adds r1, r2
|
|
adds r1, 0x60
|
|
ldrb r2, [r1]
|
|
movs r0, 0xF
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldrb r0, [r7]
|
|
mov r2, r12
|
|
ldr r1, [r2]
|
|
lsls r2, r0, 1
|
|
adds r2, r0
|
|
adds r2, r1
|
|
adds r2, 0x60
|
|
lsls r0, 9
|
|
adds r5, r6, 0x2
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
movs r3, 0xF0
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldrb r1, [r7]
|
|
mov r0, r12
|
|
ldr r2, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
adds r0, r2
|
|
adds r0, 0x61
|
|
lsls r1, 9
|
|
adds r6, 0x3
|
|
adds r1, r6
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
ldrb r0, [r7]
|
|
movs r4, 0x2
|
|
eors r0, r4
|
|
mov r1, r12
|
|
ldr r2, [r1]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
adds r1, r2
|
|
adds r1, 0x60
|
|
ldrb r2, [r1]
|
|
adds r0, r3, 0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldrb r0, [r7]
|
|
eors r0, r4
|
|
mov r1, r12
|
|
ldr r2, [r1]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
adds r1, r2
|
|
adds r1, 0x60
|
|
ldrb r0, [r7]
|
|
lsls r0, 9
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
ands r3, r0
|
|
lsrs r3, 4
|
|
ldrb r0, [r1]
|
|
orrs r3, r0
|
|
strb r3, [r1]
|
|
ldrb r0, [r7]
|
|
eors r4, r0
|
|
mov r2, r12
|
|
ldr r0, [r2]
|
|
lsls r1, r4, 1
|
|
adds r1, r4
|
|
adds r1, r0
|
|
adds r1, 0x62
|
|
ldrb r0, [r7]
|
|
lsls r0, 9
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
_080149F6:
|
|
ldr r0, _08014A04 @ =gUnknown_2023E82
|
|
ldrb r1, [r7]
|
|
b _08014B30
|
|
.align 2, 0
|
|
_080149FC: .4byte gBattleStruct
|
|
_08014A00: .4byte gBattleTypeFlags
|
|
_08014A04: .4byte gUnknown_2023E82
|
|
_08014A08:
|
|
ldr r2, _08014A20 @ =gUnknown_2023DD0
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 8
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r2, _08014A24 @ =gUnknown_2023E82
|
|
ldr r0, _08014A28 @ =gActiveBattler
|
|
ldrb r1, [r0]
|
|
adds r1, r2
|
|
b _08014B32
|
|
.align 2, 0
|
|
_08014A20: .4byte gUnknown_2023DD0
|
|
_08014A24: .4byte gUnknown_2023E82
|
|
_08014A28: .4byte gActiveBattler
|
|
_08014A2C:
|
|
ldr r2, _08014A38 @ =gUnknown_2023E82
|
|
ldr r0, _08014A3C @ =gActiveBattler
|
|
ldrb r1, [r0]
|
|
adds r1, r2
|
|
b _08014B32
|
|
.align 2, 0
|
|
_08014A38: .4byte gUnknown_2023E82
|
|
_08014A3C: .4byte gActiveBattler
|
|
_08014A40:
|
|
ldr r2, _08014A4C @ =gUnknown_2023E82
|
|
ldr r0, _08014A50 @ =gActiveBattler
|
|
ldrb r1, [r0]
|
|
adds r1, r2
|
|
b _08014B32
|
|
.align 2, 0
|
|
_08014A4C: .4byte gUnknown_2023E82
|
|
_08014A50: .4byte gActiveBattler
|
|
_08014A54:
|
|
ldr r2, _08014A60 @ =gUnknown_2023E82
|
|
ldr r0, _08014A64 @ =gActiveBattler
|
|
ldrb r1, [r0]
|
|
adds r1, r2
|
|
b _08014B32
|
|
.align 2, 0
|
|
_08014A60: .4byte gUnknown_2023E82
|
|
_08014A64: .4byte gActiveBattler
|
|
_08014A68:
|
|
ldr r2, _08014A80 @ =gUnknown_2023DD0
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 8
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r2, _08014A84 @ =gUnknown_2023E82
|
|
ldr r0, _08014A88 @ =gActiveBattler
|
|
ldrb r1, [r0]
|
|
adds r1, r2
|
|
b _08014B32
|
|
.align 2, 0
|
|
_08014A80: .4byte gUnknown_2023DD0
|
|
_08014A84: .4byte gUnknown_2023E82
|
|
_08014A88: .4byte gActiveBattler
|
|
_08014A8C:
|
|
ldr r2, _08014A98 @ =gUnknown_2023E82
|
|
ldr r0, _08014A9C @ =gActiveBattler
|
|
ldrb r1, [r0]
|
|
adds r1, r2
|
|
b _08014B32
|
|
.align 2, 0
|
|
_08014A98: .4byte gUnknown_2023E82
|
|
_08014A9C: .4byte gActiveBattler
|
|
_08014AA0:
|
|
ldr r3, _08014B08 @ =gUnknown_2023BC8
|
|
ldr r4, _08014B0C @ =gBitTable
|
|
ldr r0, _08014B10 @ =gActiveBattler
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldr r2, [r0]
|
|
lsls r1, r2, 4
|
|
movs r0, 0xF0
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
orrs r1, r2
|
|
lsls r0, r2, 8
|
|
orrs r1, r0
|
|
lsls r2, 12
|
|
orrs r1, r2
|
|
ldr r0, [r3]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08014ACA
|
|
b _08014C4E
|
|
_08014ACA:
|
|
ldr r0, _08014B14 @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x41
|
|
ands r0, r1
|
|
cmp r0, 0x1
|
|
bne _08014AFE
|
|
movs r1, 0x2
|
|
movs r0, 0x2
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
bne _08014AFE
|
|
adds r0, r5, 0
|
|
eors r0, r1
|
|
bl GetBattlerAtPosition
|
|
ldr r1, _08014B18 @ =gBattleStruct
|
|
ldr r1, [r1]
|
|
adds r1, 0x91
|
|
ldrb r1, [r1]
|
|
lsls r0, 24
|
|
lsrs r0, 22
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08014B1C
|
|
_08014AFE:
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl EmitLinkStandbyMsg
|
|
b _08014B24
|
|
.align 2, 0
|
|
_08014B08: .4byte gUnknown_2023BC8
|
|
_08014B0C: .4byte gBitTable
|
|
_08014B10: .4byte gActiveBattler
|
|
_08014B14: .4byte gBattleTypeFlags
|
|
_08014B18: .4byte gBattleStruct
|
|
_08014B1C:
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
bl EmitLinkStandbyMsg
|
|
_08014B24:
|
|
ldr r4, _08014B3C @ =gActiveBattler
|
|
_08014B26:
|
|
ldrb r0, [r4]
|
|
bl MarkBufferBankForExecution
|
|
ldr r0, _08014B40 @ =gUnknown_2023E82
|
|
ldrb r1, [r4]
|
|
_08014B30:
|
|
adds r1, r0
|
|
_08014B32:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _08014C4E
|
|
.align 2, 0
|
|
_08014B3C: .4byte gActiveBattler
|
|
_08014B40: .4byte gUnknown_2023E82
|
|
_08014B44:
|
|
ldr r3, _08014B78 @ =gUnknown_2023BC8
|
|
ldr r1, _08014B7C @ =gBitTable
|
|
ldr r0, _08014B80 @ =gActiveBattler
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
lsls r1, r2, 4
|
|
movs r0, 0xF0
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
orrs r1, r2
|
|
lsls r0, r2, 8
|
|
orrs r1, r0
|
|
lsls r2, 12
|
|
orrs r1, r2
|
|
ldr r0, [r3]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08014C4E
|
|
ldr r1, _08014B84 @ =gUnknown_2023E82
|
|
ldrb r0, [r1, 0x4]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x4]
|
|
b _08014C4E
|
|
.align 2, 0
|
|
_08014B78: .4byte gUnknown_2023BC8
|
|
_08014B7C: .4byte gBitTable
|
|
_08014B80: .4byte gActiveBattler
|
|
_08014B84: .4byte gUnknown_2023E82
|
|
_08014B88:
|
|
ldr r5, _08014BA8 @ =gActiveBattler
|
|
ldrb r2, [r5]
|
|
ldr r0, _08014BAC @ =gBattleStruct
|
|
ldr r0, [r0]
|
|
adds r1, r2, r0
|
|
adds r0, r1, 0
|
|
adds r0, 0x54
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08014BB4
|
|
ldr r0, _08014BB0 @ =gUnknown_2023E82
|
|
adds r0, r2, r0
|
|
adds r1, 0x84
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
b _08014C4E
|
|
.align 2, 0
|
|
_08014BA8: .4byte gActiveBattler
|
|
_08014BAC: .4byte gBattleStruct
|
|
_08014BB0: .4byte gUnknown_2023E82
|
|
_08014BB4:
|
|
ldr r0, _08014C08 @ =sBattler_AI
|
|
strb r2, [r0]
|
|
ldr r7, _08014C0C @ =gUnknown_2023D74
|
|
ldr r6, _08014C10 @ =gUnknown_2023D80
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldr r4, [r0]
|
|
str r4, [r7]
|
|
ldr r3, _08014C14 @ =gUnknown_2023BC8
|
|
ldr r1, _08014C18 @ =gBitTable
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
lsls r1, r2, 4
|
|
movs r0, 0xF0
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
orrs r1, r2
|
|
lsls r0, r2, 8
|
|
orrs r1, r0
|
|
lsls r2, 12
|
|
orrs r1, r2
|
|
ldr r0, [r3]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08014BFA
|
|
ldr r0, _08014C1C @ =gUnknown_825011C
|
|
ldrb r1, [r4]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
bl _call_via_r0
|
|
_08014BFA:
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldr r1, [r7]
|
|
str r1, [r0]
|
|
b _08014C4E
|
|
.align 2, 0
|
|
_08014C08: .4byte sBattler_AI
|
|
_08014C0C: .4byte gUnknown_2023D74
|
|
_08014C10: .4byte gUnknown_2023D80
|
|
_08014C14: .4byte gUnknown_2023BC8
|
|
_08014C18: .4byte gBitTable
|
|
_08014C1C: .4byte gUnknown_825011C
|
|
_08014C20:
|
|
ldr r3, _08014C88 @ =gUnknown_2023BC8
|
|
ldr r1, _08014C8C @ =gBitTable
|
|
ldr r0, _08014C90 @ =gActiveBattler
|
|
ldrb r4, [r0]
|
|
lsls r0, r4, 2
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
lsls r0, r2, 4
|
|
movs r1, 0xF0
|
|
lsls r1, 24
|
|
orrs r0, r1
|
|
orrs r0, r2
|
|
lsls r1, r2, 8
|
|
orrs r0, r1
|
|
lsls r2, 12
|
|
orrs r0, r2
|
|
ldr r3, [r3]
|
|
ands r3, r0
|
|
cmp r3, 0
|
|
bne _08014C4E
|
|
_08014C48:
|
|
ldr r0, _08014C94 @ =gUnknown_2023E82
|
|
adds r0, r4, r0
|
|
strb r3, [r0]
|
|
_08014C4E:
|
|
ldr r0, _08014C90 @ =gActiveBattler
|
|
ldrb r1, [r0]
|
|
adds r1, 0x1
|
|
strb r1, [r0]
|
|
ldr r0, _08014C98 @ =gBattlersCount
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r2, r0, 0
|
|
ldrb r3, [r2]
|
|
cmp r1, r3
|
|
bcs _08014C68
|
|
bl _08014064
|
|
_08014C68:
|
|
ldr r0, _08014C94 @ =gUnknown_2023E82
|
|
ldrb r0, [r0, 0x4]
|
|
ldrb r2, [r2]
|
|
cmp r0, r2
|
|
bne _08014C78
|
|
ldr r1, _08014C9C @ =gUnknown_3004F84
|
|
ldr r0, _08014CA0 @ =sub_80150A8
|
|
str r0, [r1]
|
|
_08014C78:
|
|
add sp, 0x1C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08014C88: .4byte gUnknown_2023BC8
|
|
_08014C8C: .4byte gBitTable
|
|
_08014C90: .4byte gActiveBattler
|
|
_08014C94: .4byte gUnknown_2023E82
|
|
_08014C98: .4byte gBattlersCount
|
|
_08014C9C: .4byte gUnknown_3004F84
|
|
_08014CA0: .4byte sub_80150A8
|
|
thumb_func_end sub_8014040
|
|
|
|
thumb_func_start SwapTurnOrder
|
|
SwapTurnOrder: @ 8014CA4
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r2, _08014CD0 @ =gUnknown_2023BDA
|
|
adds r4, r0, r2
|
|
ldrb r5, [r4]
|
|
adds r2, r1, r2
|
|
ldrb r3, [r2]
|
|
strb r3, [r4]
|
|
strb r5, [r2]
|
|
ldr r2, _08014CD4 @ =gUnknown_2023BDE
|
|
adds r0, r2
|
|
ldrb r5, [r0]
|
|
adds r1, r2
|
|
ldrb r2, [r1]
|
|
strb r2, [r0]
|
|
strb r5, [r1]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08014CD0: .4byte gUnknown_2023BDA
|
|
_08014CD4: .4byte gUnknown_2023BDE
|
|
thumb_func_end SwapTurnOrder
|
|
|
|
thumb_func_start GetWhoStrikesFirst
|
|
GetWhoStrikesFirst: @ 8014CD8
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0xC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r10, r1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
str r2, [sp, 0x4]
|
|
movs r0, 0
|
|
str r0, [sp, 0x8]
|
|
str r0, [sp]
|
|
movs r0, 0x13
|
|
movs r1, 0
|
|
movs r2, 0xD
|
|
movs r3, 0
|
|
bl AbilityBattleEffects
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08014DA0
|
|
ldr r1, [sp, 0x8]
|
|
str r1, [sp]
|
|
movs r0, 0x13
|
|
movs r1, 0
|
|
movs r2, 0x4D
|
|
movs r3, 0
|
|
bl AbilityBattleEffects
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08014DA0
|
|
ldr r1, _08014D58 @ =gBattleMons
|
|
movs r0, 0x58
|
|
mov r2, r9
|
|
muls r2, r0
|
|
adds r0, r2, 0
|
|
adds r0, r1
|
|
adds r0, 0x20
|
|
ldrb r3, [r0]
|
|
cmp r3, 0x21
|
|
bne _08014D44
|
|
ldr r0, _08014D5C @ =gBattleWeather
|
|
ldrh r1, [r0]
|
|
movs r0, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08014D54
|
|
_08014D44:
|
|
cmp r3, 0x22
|
|
bne _08014D60
|
|
ldr r0, _08014D5C @ =gBattleWeather
|
|
ldrh r1, [r0]
|
|
movs r0, 0x60
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08014D60
|
|
_08014D54:
|
|
movs r3, 0x2
|
|
b _08014D62
|
|
.align 2, 0
|
|
_08014D58: .4byte gBattleMons
|
|
_08014D5C: .4byte gBattleWeather
|
|
_08014D60:
|
|
movs r3, 0x1
|
|
_08014D62:
|
|
movs r0, 0x58
|
|
mov r1, r10
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
ldr r2, _08014D98 @ =gBattleMons
|
|
adds r0, r2
|
|
adds r0, 0x20
|
|
ldrb r2, [r0]
|
|
cmp r2, 0x21
|
|
bne _08014D82
|
|
ldr r0, _08014D9C @ =gBattleWeather
|
|
ldrh r1, [r0]
|
|
movs r0, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08014D92
|
|
_08014D82:
|
|
cmp r2, 0x22
|
|
bne _08014DA2
|
|
ldr r0, _08014D9C @ =gBattleWeather
|
|
ldrh r1, [r0]
|
|
movs r0, 0x60
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08014DA2
|
|
_08014D92:
|
|
movs r7, 0x2
|
|
b _08014DA4
|
|
.align 2, 0
|
|
_08014D98: .4byte gBattleMons
|
|
_08014D9C: .4byte gBattleWeather
|
|
_08014DA0:
|
|
movs r3, 0x1
|
|
_08014DA2:
|
|
movs r7, 0x1
|
|
_08014DA4:
|
|
ldr r1, _08014DE8 @ =gBattleMons
|
|
movs r0, 0x58
|
|
mov r2, r9
|
|
muls r2, r0
|
|
adds r0, r2, 0
|
|
adds r4, r0, r1
|
|
ldrh r0, [r4, 0x6]
|
|
muls r3, r0
|
|
ldr r2, _08014DEC @ =gStatStageRatios
|
|
movs r1, 0x1B
|
|
ldrsb r1, [r4, r1]
|
|
lsls r1, 1
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
muls r0, r3
|
|
adds r2, 0x1
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
bl __divsi3
|
|
mov r8, r0
|
|
ldrh r0, [r4, 0x2E]
|
|
cmp r0, 0xAF
|
|
bne _08014DF4
|
|
ldr r1, _08014DF0 @ =gEnigmaBerries
|
|
mov r3, r9
|
|
lsls r0, r3, 3
|
|
subs r0, r3
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r6, [r0, 0x7]
|
|
ldrb r5, [r0, 0x1A]
|
|
b _08014E08
|
|
.align 2, 0
|
|
_08014DE8: .4byte gBattleMons
|
|
_08014DEC: .4byte gStatStageRatios
|
|
_08014DF0: .4byte gEnigmaBerries
|
|
_08014DF4:
|
|
ldrh r0, [r4, 0x2E]
|
|
bl ItemId_GetHoldEffect
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldrh r0, [r4, 0x2E]
|
|
bl ItemId_GetHoldEffectParam
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
_08014E08:
|
|
ldr r0, _08014EC4 @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08014E3C
|
|
ldr r0, _08014EC8 @ =0x00000822
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08014E3C
|
|
mov r0, r9
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08014E3C
|
|
movs r0, 0x6E
|
|
mov r1, r8
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
movs r1, 0x64
|
|
bl __udivsi3
|
|
mov r8, r0
|
|
_08014E3C:
|
|
cmp r6, 0x18
|
|
bne _08014E46
|
|
mov r2, r8
|
|
lsrs r2, 1
|
|
mov r8, r2
|
|
_08014E46:
|
|
ldr r1, _08014ECC @ =gBattleMons
|
|
movs r0, 0x58
|
|
mov r3, r9
|
|
muls r3, r0
|
|
adds r0, r3, 0
|
|
adds r1, 0x4C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08014E64
|
|
mov r0, r8
|
|
lsrs r0, 2
|
|
mov r8, r0
|
|
_08014E64:
|
|
cmp r6, 0x1A
|
|
bne _08014E80
|
|
ldr r0, _08014ED0 @ =gUnknown_2023E80
|
|
ldrh r4, [r0]
|
|
lsls r0, r5, 16
|
|
subs r0, r5
|
|
movs r1, 0x64
|
|
bl __divsi3
|
|
cmp r4, r0
|
|
bge _08014E80
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
mov r8, r1
|
|
_08014E80:
|
|
ldr r1, _08014ECC @ =gBattleMons
|
|
movs r0, 0x58
|
|
mov r2, r10
|
|
muls r2, r0
|
|
adds r0, r2, 0
|
|
adds r4, r0, r1
|
|
ldrh r0, [r4, 0x6]
|
|
adds r3, r0, 0
|
|
muls r3, r7
|
|
ldr r2, _08014ED4 @ =gStatStageRatios
|
|
movs r1, 0x1B
|
|
ldrsb r1, [r4, r1]
|
|
lsls r1, 1
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
muls r0, r3
|
|
adds r2, 0x1
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
bl __divsi3
|
|
adds r7, r0, 0
|
|
ldrh r0, [r4, 0x2E]
|
|
cmp r0, 0xAF
|
|
bne _08014EDC
|
|
ldr r1, _08014ED8 @ =gEnigmaBerries
|
|
mov r3, r10
|
|
lsls r0, r3, 3
|
|
subs r0, r3
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r6, [r0, 0x7]
|
|
ldrb r5, [r0, 0x1A]
|
|
b _08014EF0
|
|
.align 2, 0
|
|
_08014EC4: .4byte gBattleTypeFlags
|
|
_08014EC8: .4byte 0x00000822
|
|
_08014ECC: .4byte gBattleMons
|
|
_08014ED0: .4byte gUnknown_2023E80
|
|
_08014ED4: .4byte gStatStageRatios
|
|
_08014ED8: .4byte gEnigmaBerries
|
|
_08014EDC:
|
|
ldrh r0, [r4, 0x2E]
|
|
bl ItemId_GetHoldEffect
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldrh r0, [r4, 0x2E]
|
|
bl ItemId_GetHoldEffectParam
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
_08014EF0:
|
|
ldr r0, _08014F68 @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08014F20
|
|
ldr r0, _08014F6C @ =0x00000822
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08014F20
|
|
mov r0, r10
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08014F20
|
|
movs r0, 0x6E
|
|
muls r0, r7
|
|
movs r1, 0x64
|
|
bl __udivsi3
|
|
adds r7, r0, 0
|
|
_08014F20:
|
|
cmp r6, 0x18
|
|
bne _08014F26
|
|
lsrs r7, 1
|
|
_08014F26:
|
|
ldr r2, _08014F70 @ =gBattleMons
|
|
movs r0, 0x58
|
|
mov r1, r10
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
adds r1, r2, 0
|
|
adds r1, 0x4C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08014F42
|
|
lsrs r7, 2
|
|
_08014F42:
|
|
cmp r6, 0x1A
|
|
bne _08014F5C
|
|
ldr r0, _08014F74 @ =gUnknown_2023E80
|
|
ldrh r4, [r0]
|
|
lsls r0, r5, 16
|
|
subs r0, r5
|
|
movs r1, 0x64
|
|
bl __divsi3
|
|
cmp r4, r0
|
|
bge _08014F5C
|
|
movs r7, 0x1
|
|
negs r7, r7
|
|
_08014F5C:
|
|
ldr r2, [sp, 0x4]
|
|
cmp r2, 0
|
|
beq _08014F78
|
|
movs r3, 0
|
|
b _08015014
|
|
.align 2, 0
|
|
_08014F68: .4byte gBattleTypeFlags
|
|
_08014F6C: .4byte 0x00000822
|
|
_08014F70: .4byte gBattleMons
|
|
_08014F74: .4byte gUnknown_2023E80
|
|
_08014F78:
|
|
ldr r0, _08014F98 @ =gUnknown_2023D7C
|
|
mov r3, r9
|
|
adds r1, r3, r0
|
|
ldrb r1, [r1]
|
|
adds r2, r0, 0
|
|
cmp r1, 0
|
|
bne _08014FC8
|
|
ldr r0, _08014F9C @ =gUnknown_2023E8C
|
|
lsls r1, r3, 4
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
lsls r0, 29
|
|
cmp r0, 0
|
|
bge _08014FA0
|
|
movs r3, 0xA5
|
|
b _08014FCA
|
|
.align 2, 0
|
|
_08014F98: .4byte gUnknown_2023D7C
|
|
_08014F9C: .4byte gUnknown_2023E8C
|
|
_08014FA0:
|
|
ldr r0, _08014FC0 @ =gBattleStruct
|
|
ldr r0, [r0]
|
|
add r0, r9
|
|
adds r0, 0x80
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
movs r1, 0x58
|
|
mov r3, r9
|
|
muls r3, r1
|
|
adds r1, r3, 0
|
|
adds r0, r1
|
|
ldr r1, _08014FC4 @ =gBattleMons
|
|
adds r1, 0xC
|
|
adds r0, r1
|
|
ldrh r3, [r0]
|
|
b _08014FCA
|
|
.align 2, 0
|
|
_08014FC0: .4byte gBattleStruct
|
|
_08014FC4: .4byte gBattleMons
|
|
_08014FC8:
|
|
movs r3, 0
|
|
_08014FCA:
|
|
mov r1, r10
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08015014
|
|
ldr r0, _08014FE8 @ =gUnknown_2023E8C
|
|
lsls r1, 4
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
lsls r0, 29
|
|
cmp r0, 0
|
|
bge _08014FEC
|
|
movs r2, 0xA5
|
|
b _08015016
|
|
.align 2, 0
|
|
_08014FE8: .4byte gUnknown_2023E8C
|
|
_08014FEC:
|
|
ldr r0, _0801500C @ =gBattleStruct
|
|
ldr r0, [r0]
|
|
add r0, r10
|
|
adds r0, 0x80
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
movs r1, 0x58
|
|
mov r2, r10
|
|
muls r2, r1
|
|
adds r1, r2, 0
|
|
adds r0, r1
|
|
ldr r1, _08015010 @ =gBattleMons
|
|
adds r1, 0xC
|
|
adds r0, r1
|
|
ldrh r2, [r0]
|
|
b _08015016
|
|
.align 2, 0
|
|
_0801500C: .4byte gBattleStruct
|
|
_08015010: .4byte gBattleMons
|
|
_08015014:
|
|
movs r2, 0
|
|
_08015016:
|
|
ldr r4, _08015060 @ =gBattleMoves
|
|
lsls r0, r3, 1
|
|
adds r0, r3
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0x7
|
|
ldrsb r1, [r0, r1]
|
|
lsls r3, r2, 1
|
|
cmp r1, 0
|
|
bne _0801503A
|
|
adds r0, r3, r2
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r0, [r0, 0x7]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0
|
|
beq _08015078
|
|
_0801503A:
|
|
adds r0, r3, r2
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r0, [r0, 0x7]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r1, r0
|
|
bne _0801506E
|
|
cmp r8, r7
|
|
bne _08015064
|
|
bl Random
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08015064
|
|
movs r3, 0x2
|
|
b _08015094
|
|
.align 2, 0
|
|
_08015060: .4byte gBattleMoves
|
|
_08015064:
|
|
cmp r8, r7
|
|
bcs _08015096
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x8]
|
|
b _08015096
|
|
_0801506E:
|
|
cmp r1, r0
|
|
bge _08015096
|
|
movs r1, 0x1
|
|
str r1, [sp, 0x8]
|
|
b _08015096
|
|
_08015078:
|
|
cmp r8, r7
|
|
bne _0801508E
|
|
bl Random
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0801508E
|
|
movs r2, 0x2
|
|
str r2, [sp, 0x8]
|
|
b _08015096
|
|
_0801508E:
|
|
cmp r8, r7
|
|
bcs _08015096
|
|
movs r3, 0x1
|
|
_08015094:
|
|
str r3, [sp, 0x8]
|
|
_08015096:
|
|
ldr r0, [sp, 0x8]
|
|
add sp, 0xC
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetWhoStrikesFirst
|
|
|
|
thumb_func_start sub_80150A8
|
|
sub_80150A8: @ 80150A8
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
movs r3, 0
|
|
ldr r0, _080150FC @ =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08015114
|
|
ldr r0, _08015100 @ =gActiveBattler
|
|
strb r3, [r0]
|
|
ldr r4, _08015104 @ =gBattlersCount
|
|
mov r8, r0
|
|
ldrb r0, [r4]
|
|
cmp r3, r0
|
|
bcc _080150D0
|
|
b _080152FA
|
|
_080150D0:
|
|
ldr r7, _08015108 @ =gUnknown_2023BDA
|
|
ldr r6, _0801510C @ =gUnknown_2023D7C
|
|
mov r2, r8
|
|
ldr r5, _08015110 @ =gUnknown_2023BDE
|
|
_080150D8:
|
|
adds r1, r3, r7
|
|
ldrb r0, [r2]
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r1, r3, r5
|
|
ldrb r0, [r2]
|
|
strb r0, [r1]
|
|
adds r3, 0x1
|
|
ldrb r0, [r2]
|
|
adds r0, 0x1
|
|
strb r0, [r2]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r4]
|
|
cmp r0, r1
|
|
bcc _080150D8
|
|
b _080152FA
|
|
.align 2, 0
|
|
_080150FC: .4byte gBattleTypeFlags
|
|
_08015100: .4byte gActiveBattler
|
|
_08015104: .4byte gBattlersCount
|
|
_08015108: .4byte gUnknown_2023BDA
|
|
_0801510C: .4byte gUnknown_2023D7C
|
|
_08015110: .4byte gUnknown_2023BDE
|
|
_08015114:
|
|
movs r0, 0x2
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08015164
|
|
ldr r0, _08015158 @ =gActiveBattler
|
|
strb r3, [r0]
|
|
ldr r1, _0801515C @ =gBattlersCount
|
|
mov r8, r0
|
|
adds r2, r1, 0
|
|
ldrb r2, [r2]
|
|
cmp r3, r2
|
|
bcs _08015174
|
|
ldr r0, _08015160 @ =gUnknown_2023D7C
|
|
ldrb r1, [r0]
|
|
adds r4, r0, 0
|
|
cmp r1, 0x3
|
|
beq _08015172
|
|
_08015136:
|
|
mov r7, r8
|
|
ldrb r0, [r7]
|
|
adds r0, 0x1
|
|
strb r0, [r7]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0801515C @ =gBattlersCount
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcs _08015174
|
|
ldrb r0, [r7]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x3
|
|
bne _08015136
|
|
b _08015172
|
|
.align 2, 0
|
|
_08015158: .4byte gActiveBattler
|
|
_0801515C: .4byte gBattlersCount
|
|
_08015160: .4byte gUnknown_2023D7C
|
|
_08015164:
|
|
ldr r0, _080151D8 @ =gUnknown_2023D7C
|
|
ldrb r0, [r0]
|
|
ldr r2, _080151DC @ =gActiveBattler
|
|
mov r8, r2
|
|
cmp r0, 0x3
|
|
bne _08015174
|
|
strb r3, [r2]
|
|
_08015172:
|
|
movs r3, 0x5
|
|
_08015174:
|
|
cmp r3, 0x5
|
|
bne _080151F8
|
|
ldr r6, _080151E0 @ =gUnknown_2023BDA
|
|
ldr r1, _080151D8 @ =gUnknown_2023D7C
|
|
mov r3, r8
|
|
ldrb r0, [r3]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r6]
|
|
ldr r2, _080151E4 @ =gUnknown_2023BDE
|
|
ldrb r0, [r3]
|
|
strb r0, [r2]
|
|
movs r3, 0x1
|
|
movs r5, 0
|
|
adds r4, r1, 0
|
|
ldr r7, _080151E8 @ =gUnknown_3004F84
|
|
mov r10, r7
|
|
ldr r0, _080151EC @ =CheckFocusPunch_ClearVarsBeforeTurnStarts
|
|
mov r12, r0
|
|
ldr r1, _080151F0 @ =gBattleStruct
|
|
mov r9, r1
|
|
ldr r7, _080151F4 @ =gBattlersCount
|
|
ldrb r7, [r7]
|
|
cmp r5, r7
|
|
bge _080151CC
|
|
adds r7, r6, 0
|
|
adds r6, r4, 0
|
|
adds r4, r2, 0
|
|
ldr r2, _080151F4 @ =gBattlersCount
|
|
_080151AE:
|
|
mov r0, r8
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
beq _080151C4
|
|
adds r1, r3, r7
|
|
adds r0, r5, r6
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r0, r3, r4
|
|
strb r5, [r0]
|
|
adds r3, 0x1
|
|
_080151C4:
|
|
adds r5, 0x1
|
|
ldrb r1, [r2]
|
|
cmp r5, r1
|
|
blt _080151AE
|
|
_080151CC:
|
|
mov r2, r12
|
|
mov r3, r10
|
|
str r2, [r3]
|
|
mov r7, r9
|
|
ldr r0, [r7]
|
|
b _08015304
|
|
.align 2, 0
|
|
_080151D8: .4byte gUnknown_2023D7C
|
|
_080151DC: .4byte gActiveBattler
|
|
_080151E0: .4byte gUnknown_2023BDA
|
|
_080151E4: .4byte gUnknown_2023BDE
|
|
_080151E8: .4byte gUnknown_3004F84
|
|
_080151EC: .4byte CheckFocusPunch_ClearVarsBeforeTurnStarts
|
|
_080151F0: .4byte gBattleStruct
|
|
_080151F4: .4byte gBattlersCount
|
|
_080151F8:
|
|
movs r0, 0
|
|
mov r1, r8
|
|
strb r0, [r1]
|
|
ldr r2, _08015288 @ =gBattlersCount
|
|
ldrb r0, [r2]
|
|
cmp r0, 0
|
|
beq _0801523E
|
|
ldr r6, _0801528C @ =gUnknown_2023D7C
|
|
mov r2, r8
|
|
ldr r5, _08015290 @ =gUnknown_2023BDA
|
|
ldr r4, _08015294 @ =gUnknown_2023BDE
|
|
_0801520E:
|
|
ldrb r0, [r2]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
subs r0, r1, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _0801522C
|
|
adds r0, r3, r5
|
|
strb r1, [r0]
|
|
adds r1, r3, r4
|
|
mov r7, r8
|
|
ldrb r0, [r7]
|
|
strb r0, [r1]
|
|
adds r3, 0x1
|
|
_0801522C:
|
|
ldrb r0, [r2]
|
|
adds r0, 0x1
|
|
strb r0, [r2]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _08015288 @ =gBattlersCount
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _0801520E
|
|
_0801523E:
|
|
movs r0, 0
|
|
mov r2, r8
|
|
strb r0, [r2]
|
|
ldr r7, _08015288 @ =gBattlersCount
|
|
ldrb r0, [r7]
|
|
cmp r0, 0
|
|
beq _08015282
|
|
ldr r6, _0801528C @ =gUnknown_2023D7C
|
|
ldr r5, _08015290 @ =gUnknown_2023BDA
|
|
ldr r4, _08015294 @ =gUnknown_2023BDE
|
|
_08015252:
|
|
ldrb r0, [r2]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
subs r0, r1, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bls _08015270
|
|
adds r0, r3, r5
|
|
strb r1, [r0]
|
|
adds r1, r3, r4
|
|
mov r7, r8
|
|
ldrb r0, [r7]
|
|
strb r0, [r1]
|
|
adds r3, 0x1
|
|
_08015270:
|
|
ldrb r0, [r2]
|
|
adds r0, 0x1
|
|
strb r0, [r2]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _08015288 @ =gBattlersCount
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _08015252
|
|
_08015282:
|
|
movs r5, 0
|
|
b _080152F0
|
|
.align 2, 0
|
|
_08015288: .4byte gBattlersCount
|
|
_0801528C: .4byte gUnknown_2023D7C
|
|
_08015290: .4byte gUnknown_2023BDA
|
|
_08015294: .4byte gUnknown_2023BDE
|
|
_08015298:
|
|
adds r4, r5, 0x1
|
|
adds r7, r4, 0
|
|
ldrb r1, [r1]
|
|
cmp r7, r1
|
|
bge _080152EE
|
|
ldr r6, _08015318 @ =gUnknown_2023BDA
|
|
lsls r2, r5, 24
|
|
mov r8, r2
|
|
_080152A8:
|
|
ldr r0, _0801531C @ =gUnknown_2023BDE
|
|
adds r1, r5, r0
|
|
ldrb r3, [r1]
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0]
|
|
adds r0, r5, r6
|
|
ldrb r2, [r0]
|
|
cmp r2, 0x1
|
|
beq _080152E4
|
|
adds r0, r4, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _080152E4
|
|
cmp r2, 0x2
|
|
beq _080152E4
|
|
cmp r0, 0x2
|
|
beq _080152E4
|
|
adds r0, r3, 0
|
|
movs r2, 0
|
|
bl GetWhoStrikesFirst
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080152E4
|
|
lsls r1, r4, 24
|
|
lsrs r1, 24
|
|
mov r3, r8
|
|
lsrs r0, r3, 24
|
|
bl SwapTurnOrder
|
|
_080152E4:
|
|
adds r4, 0x1
|
|
ldr r0, _08015320 @ =gBattlersCount
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
blt _080152A8
|
|
_080152EE:
|
|
adds r5, r7, 0
|
|
_080152F0:
|
|
ldr r1, _08015320 @ =gBattlersCount
|
|
ldrb r0, [r1]
|
|
subs r0, 0x1
|
|
cmp r5, r0
|
|
blt _08015298
|
|
_080152FA:
|
|
ldr r1, _08015324 @ =gUnknown_3004F84
|
|
ldr r0, _08015328 @ =CheckFocusPunch_ClearVarsBeforeTurnStarts
|
|
str r0, [r1]
|
|
ldr r0, _0801532C @ =gBattleStruct
|
|
ldr r0, [r0]
|
|
_08015304:
|
|
adds r0, 0x48
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08015318: .4byte gUnknown_2023BDA
|
|
_0801531C: .4byte gUnknown_2023BDE
|
|
_08015320: .4byte gBattlersCount
|
|
_08015324: .4byte gUnknown_3004F84
|
|
_08015328: .4byte CheckFocusPunch_ClearVarsBeforeTurnStarts
|
|
_0801532C: .4byte gBattleStruct
|
|
thumb_func_end sub_80150A8
|
|
|
|
thumb_func_start TurnValuesCleanUp
|
|
TurnValuesCleanUp: @ 8015330
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
ldr r1, _08015388 @ =gActiveBattler
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r0, _0801538C @ =gBattlersCount
|
|
ldrb r2, [r0]
|
|
adds r5, r1, 0
|
|
cmp r2, 0
|
|
beq _08015428
|
|
ldr r7, _08015390 @ =gUnknown_2023E8C
|
|
adds r6, r5, 0
|
|
ldr r0, _08015394 @ =gUnknown_2023C34
|
|
mov r12, r0
|
|
ldr r1, _08015398 @ =gDisableStructs
|
|
mov r8, r1
|
|
mov r10, r8
|
|
_0801535E:
|
|
mov r2, r9
|
|
cmp r2, 0
|
|
beq _0801539C
|
|
ldrb r1, [r6]
|
|
lsls r1, 4
|
|
adds r1, r7
|
|
ldrb r2, [r1]
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldrb r1, [r6]
|
|
lsls r1, 4
|
|
adds r1, r7
|
|
ldrb r2, [r1]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
b _080153F8
|
|
.align 2, 0
|
|
_08015388: .4byte gActiveBattler
|
|
_0801538C: .4byte gBattlersCount
|
|
_08015390: .4byte gUnknown_2023E8C
|
|
_08015394: .4byte gUnknown_2023C34
|
|
_08015398: .4byte gDisableStructs
|
|
_0801539C:
|
|
ldrb r0, [r6]
|
|
lsls r0, 4
|
|
adds r2, r0, r7
|
|
movs r1, 0
|
|
mov r4, r10
|
|
movs r3, 0
|
|
_080153A8:
|
|
adds r0, r2, r1
|
|
strb r3, [r0]
|
|
adds r1, 0x1
|
|
cmp r1, 0xF
|
|
bls _080153A8
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r1, r0, r4
|
|
ldrb r0, [r1, 0x16]
|
|
cmp r0, 0
|
|
beq _080153C6
|
|
subs r0, 0x1
|
|
strb r0, [r1, 0x16]
|
|
_080153C6:
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r1, r0, r4
|
|
ldrb r0, [r1, 0x19]
|
|
cmp r0, 0
|
|
beq _080153F8
|
|
subs r0, 0x1
|
|
strb r0, [r1, 0x19]
|
|
ldrb r2, [r5]
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r0, [r0, 0x19]
|
|
cmp r0, 0
|
|
bne _080153F8
|
|
movs r0, 0x58
|
|
muls r2, r0
|
|
add r2, r12
|
|
ldr r0, [r2]
|
|
ldr r1, _08015440 @ =0xffbfffff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
_080153F8:
|
|
ldrb r2, [r5]
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
add r0, r8
|
|
ldrb r0, [r0, 0xA]
|
|
cmp r0, 0
|
|
bne _08015416
|
|
movs r0, 0x58
|
|
muls r2, r0
|
|
add r2, r12
|
|
ldr r0, [r2]
|
|
ldr r1, _08015444 @ =0xfeffffff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
_08015416:
|
|
ldrb r0, [r5]
|
|
adds r0, 0x1
|
|
strb r0, [r5]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _08015448 @ =gBattlersCount
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _0801535E
|
|
_08015428:
|
|
movs r0, 0
|
|
ldr r2, _0801544C @ =gSideTimers
|
|
strb r0, [r2, 0x8]
|
|
strb r0, [r2, 0x14]
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08015440: .4byte 0xffbfffff
|
|
_08015444: .4byte 0xfeffffff
|
|
_08015448: .4byte gBattlersCount
|
|
_0801544C: .4byte gSideTimers
|
|
thumb_func_end TurnValuesCleanUp
|
|
|
|
thumb_func_start SpecialStatusesClear
|
|
SpecialStatusesClear: @ 8015450
|
|
push {r4-r6,lr}
|
|
ldr r2, _08015494 @ =gActiveBattler
|
|
movs r0, 0
|
|
strb r0, [r2]
|
|
ldr r0, _08015498 @ =gBattlersCount
|
|
ldrb r1, [r0]
|
|
adds r6, r0, 0
|
|
cmp r1, 0
|
|
beq _0801548E
|
|
adds r3, r2, 0
|
|
movs r4, 0
|
|
ldr r5, _0801549C @ =gUnknown_2023ECC
|
|
_08015468:
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, r0, r5
|
|
movs r1, 0
|
|
_08015474:
|
|
adds r0, r2, r1
|
|
strb r4, [r0]
|
|
adds r1, 0x1
|
|
cmp r1, 0x13
|
|
bls _08015474
|
|
ldrb r0, [r3]
|
|
adds r0, 0x1
|
|
strb r0, [r3]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r6]
|
|
cmp r0, r1
|
|
bcc _08015468
|
|
_0801548E:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08015494: .4byte gActiveBattler
|
|
_08015498: .4byte gBattlersCount
|
|
_0801549C: .4byte gUnknown_2023ECC
|
|
thumb_func_end SpecialStatusesClear
|
|
|
|
thumb_func_start CheckFocusPunch_ClearVarsBeforeTurnStarts
|
|
CheckFocusPunch_ClearVarsBeforeTurnStarts: @ 80154A0
|
|
push {r4-r7,lr}
|
|
ldr r0, _08015528 @ =gUnknown_2023DD0
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0801555E
|
|
ldr r2, _0801552C @ =gBattleStruct
|
|
ldr r0, [r2]
|
|
adds r0, 0x48
|
|
ldr r1, _08015530 @ =gBattlersCount
|
|
ldrb r0, [r0]
|
|
mov r12, r2
|
|
adds r6, r1, 0
|
|
ldrb r1, [r6]
|
|
cmp r0, r1
|
|
bcs _0801555E
|
|
ldr r5, _08015534 @ =gActiveBattler
|
|
ldr r4, _08015538 @ =sBattler_AI
|
|
movs r7, 0x84
|
|
lsls r7, 1
|
|
_080154CC:
|
|
ldr r1, [r2]
|
|
adds r1, 0x48
|
|
ldrb r0, [r1]
|
|
strb r0, [r4]
|
|
strb r0, [r5]
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r1, _0801553C @ =gUnknown_2023DC4
|
|
ldrb r3, [r5]
|
|
lsls r0, r3, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r0, r7
|
|
bne _08015550
|
|
ldr r1, _08015540 @ =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r3
|
|
adds r1, 0x4C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08015550
|
|
ldr r2, _08015544 @ =gDisableStructs
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x18]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
bne _08015550
|
|
ldr r0, _08015548 @ =gUnknown_2023E8C
|
|
lsls r1, r3, 4
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
lsls r0, 29
|
|
cmp r0, 0
|
|
blt _08015550
|
|
ldr r0, _0801554C @ =gUnknown_81D9015
|
|
bl BattleScriptExecute
|
|
b _08015598
|
|
.align 2, 0
|
|
_08015528: .4byte gUnknown_2023DD0
|
|
_0801552C: .4byte gBattleStruct
|
|
_08015530: .4byte gBattlersCount
|
|
_08015534: .4byte gActiveBattler
|
|
_08015538: .4byte sBattler_AI
|
|
_0801553C: .4byte gUnknown_2023DC4
|
|
_08015540: .4byte gBattleMons
|
|
_08015544: .4byte gDisableStructs
|
|
_08015548: .4byte gUnknown_2023E8C
|
|
_0801554C: .4byte gUnknown_81D9015
|
|
_08015550:
|
|
mov r2, r12
|
|
ldr r0, [r2]
|
|
adds r0, 0x48
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r6]
|
|
cmp r0, r1
|
|
bcc _080154CC
|
|
_0801555E:
|
|
bl TryClearRageStatuses
|
|
ldr r1, _080155A0 @ =gUnknown_2023BE2
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r1, _080155A4 @ =gUnknown_2023BE3
|
|
ldr r0, _080155A8 @ =gUnknown_2023BDA
|
|
movs r3, 0
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldr r0, _080155AC @ =gDynamicBasePower
|
|
movs r2, 0
|
|
strh r3, [r0]
|
|
ldr r0, _080155B0 @ =gBattleStruct
|
|
ldr r0, [r0]
|
|
strb r2, [r0, 0x13]
|
|
ldr r1, _080155B4 @ =gUnknown_3004F84
|
|
ldr r0, _080155B8 @ =RunTurnActionsFunctions
|
|
str r0, [r1]
|
|
ldr r0, _080155BC @ =gUnknown_2023E82
|
|
strb r2, [r0, 0x3]
|
|
strb r2, [r0, 0x4]
|
|
ldr r0, _080155C0 @ =gBattleScripting
|
|
strb r2, [r0, 0x16]
|
|
ldr r0, _080155C4 @ =gBattleResources
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x8]
|
|
adds r0, 0x20
|
|
strb r2, [r0]
|
|
_08015598:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080155A0: .4byte gUnknown_2023BE2
|
|
_080155A4: .4byte gUnknown_2023BE3
|
|
_080155A8: .4byte gUnknown_2023BDA
|
|
_080155AC: .4byte gDynamicBasePower
|
|
_080155B0: .4byte gBattleStruct
|
|
_080155B4: .4byte gUnknown_3004F84
|
|
_080155B8: .4byte RunTurnActionsFunctions
|
|
_080155BC: .4byte gUnknown_2023E82
|
|
_080155C0: .4byte gBattleScripting
|
|
_080155C4: .4byte gBattleResources
|
|
thumb_func_end CheckFocusPunch_ClearVarsBeforeTurnStarts
|
|
|
|
thumb_func_start RunTurnActionsFunctions
|
|
RunTurnActionsFunctions: @ 80155C8
|
|
push {r4-r6,lr}
|
|
ldr r6, _0801561C @ =gUnknown_2023E8A
|
|
ldrb r0, [r6]
|
|
ldr r2, _08015620 @ =gUnknown_2023BE3
|
|
cmp r0, 0
|
|
beq _080155D8
|
|
movs r0, 0xC
|
|
strb r0, [r2]
|
|
_080155D8:
|
|
ldr r5, _08015624 @ =gBattleStruct
|
|
ldr r0, [r5]
|
|
adds r0, 0x4B
|
|
ldr r4, _08015628 @ =gUnknown_2023BE2
|
|
ldrb r1, [r4]
|
|
strb r1, [r0]
|
|
ldr r1, _0801562C @ =gUnknown_8250038
|
|
ldrb r0, [r2]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bl _call_via_r0
|
|
ldr r0, _08015630 @ =gBattlersCount
|
|
ldrb r1, [r4]
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bcc _08015644
|
|
ldr r2, _08015634 @ =gUnknown_2023DD0
|
|
ldr r0, [r2]
|
|
ldr r1, _08015638 @ =0xffefffff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
ldr r3, _0801563C @ =gUnknown_3004F84
|
|
ldr r2, _08015640 @ =gUnknown_8250070
|
|
ldrb r1, [r6]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
str r0, [r3]
|
|
b _0801565C
|
|
.align 2, 0
|
|
_0801561C: .4byte gUnknown_2023E8A
|
|
_08015620: .4byte gUnknown_2023BE3
|
|
_08015624: .4byte gBattleStruct
|
|
_08015628: .4byte gUnknown_2023BE2
|
|
_0801562C: .4byte gUnknown_8250038
|
|
_08015630: .4byte gBattlersCount
|
|
_08015634: .4byte gUnknown_2023DD0
|
|
_08015638: .4byte 0xffefffff
|
|
_0801563C: .4byte gUnknown_3004F84
|
|
_08015640: .4byte gUnknown_8250070
|
|
_08015644:
|
|
ldr r0, [r5]
|
|
adds r0, 0x4B
|
|
ldrb r0, [r0]
|
|
cmp r0, r1
|
|
beq _0801565C
|
|
ldr r2, _08015664 @ =gUnknown_2023DD0
|
|
ldr r0, [r2]
|
|
ldr r1, _08015668 @ =0xfffffdff
|
|
ands r0, r1
|
|
ldr r1, _0801566C @ =0xfff7ffff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
_0801565C:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08015664: .4byte gUnknown_2023DD0
|
|
_08015668: .4byte 0xfffffdff
|
|
_0801566C: .4byte 0xfff7ffff
|
|
thumb_func_end RunTurnActionsFunctions
|
|
|
|
thumb_func_start sub_8015670
|
|
sub_8015670: @ 8015670
|
|
push {r4,lr}
|
|
ldr r1, _080156A8 @ =gUnknown_2023BE3
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r0, _080156AC @ =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080156C4
|
|
ldr r1, _080156B0 @ =gBattleTextBuff1
|
|
ldr r4, _080156B4 @ =gUnknown_2023E8A
|
|
ldrb r0, [r4]
|
|
strb r0, [r1]
|
|
movs r0, 0
|
|
bl GetBattlerAtPosition
|
|
ldr r1, _080156B8 @ =sBattler_AI
|
|
strb r0, [r1]
|
|
ldr r1, _080156BC @ =gUnknown_2023D74
|
|
ldr r0, _080156C0 @ =gUnknown_81D88CC
|
|
str r0, [r1]
|
|
ldrb r1, [r4]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
b _0801576E
|
|
.align 2, 0
|
|
_080156A8: .4byte gUnknown_2023BE3
|
|
_080156AC: .4byte gBattleTypeFlags
|
|
_080156B0: .4byte gBattleTextBuff1
|
|
_080156B4: .4byte gUnknown_2023E8A
|
|
_080156B8: .4byte sBattler_AI
|
|
_080156BC: .4byte gUnknown_2023D74
|
|
_080156C0: .4byte gUnknown_81D88CC
|
|
_080156C4:
|
|
ldr r0, _080156E0 @ =0x00080900
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080156EC
|
|
bl BattleStopLowHpSound
|
|
movs r0, 0x9B
|
|
lsls r0, 1
|
|
bl PlayBGM
|
|
ldr r1, _080156E4 @ =gUnknown_2023D74
|
|
ldr r0, _080156E8 @ =gUnknown_81D88D7
|
|
b _0801576C
|
|
.align 2, 0
|
|
_080156E0: .4byte 0x00080900
|
|
_080156E4: .4byte gUnknown_2023D74
|
|
_080156E8: .4byte gUnknown_81D88D7
|
|
_080156EC:
|
|
movs r0, 0xA
|
|
ands r1, r0
|
|
cmp r1, 0x8
|
|
bne _08015768
|
|
bl BattleStopLowHpSound
|
|
ldr r1, _08015720 @ =gUnknown_2023D74
|
|
ldr r0, _08015724 @ =gUnknown_81D87EF
|
|
str r0, [r1]
|
|
ldr r2, _08015728 @ =gTrainers
|
|
ldr r0, _0801572C @ =gTrainerBattleOpponent_A
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x1]
|
|
subs r0, 0x53
|
|
cmp r0, 0x7
|
|
bhi _0801575E
|
|
lsls r0, 2
|
|
ldr r1, _08015730 @ =_08015734
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08015720: .4byte gUnknown_2023D74
|
|
_08015724: .4byte gUnknown_81D87EF
|
|
_08015728: .4byte gTrainers
|
|
_0801572C: .4byte gTrainerBattleOpponent_A
|
|
_08015730: .4byte _08015734
|
|
.align 2, 0
|
|
_08015734:
|
|
.4byte _0801575E
|
|
.4byte _08015754
|
|
.4byte _0801575E
|
|
.4byte _0801575E
|
|
.4byte _0801575E
|
|
.4byte _0801575E
|
|
.4byte _0801575E
|
|
.4byte _08015754
|
|
_08015754:
|
|
movs r0, 0x9C
|
|
lsls r0, 1
|
|
bl PlayBGM
|
|
b _0801576E
|
|
_0801575E:
|
|
movs r0, 0x9B
|
|
lsls r0, 1
|
|
bl PlayBGM
|
|
b _0801576E
|
|
_08015768:
|
|
ldr r1, _0801577C @ =gUnknown_2023D74
|
|
ldr r0, _08015780 @ =gUnknown_81D8803
|
|
_0801576C:
|
|
str r0, [r1]
|
|
_0801576E:
|
|
ldr r1, _08015784 @ =gUnknown_3004F84
|
|
ldr r0, _08015788 @ =sub_8015910
|
|
str r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0801577C: .4byte gUnknown_2023D74
|
|
_08015780: .4byte gUnknown_81D8803
|
|
_08015784: .4byte gUnknown_3004F84
|
|
_08015788: .4byte sub_8015910
|
|
thumb_func_end sub_8015670
|
|
|
|
thumb_func_start sub_801578C
|
|
sub_801578C: @ 801578C
|
|
push {r4,lr}
|
|
ldr r1, _080157C4 @ =gUnknown_2023BE3
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r0, _080157C8 @ =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r4, 0x2
|
|
adds r0, r1, 0
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _080157E0
|
|
ldr r1, _080157CC @ =gBattleTextBuff1
|
|
ldr r4, _080157D0 @ =gUnknown_2023E8A
|
|
ldrb r0, [r4]
|
|
strb r0, [r1]
|
|
movs r0, 0
|
|
bl GetBattlerAtPosition
|
|
ldr r1, _080157D4 @ =sBattler_AI
|
|
strb r0, [r1]
|
|
ldr r1, _080157D8 @ =gUnknown_2023D74
|
|
ldr r0, _080157DC @ =gUnknown_81D88CC
|
|
str r0, [r1]
|
|
ldrb r1, [r4]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
b _08015830
|
|
.align 2, 0
|
|
_080157C4: .4byte gUnknown_2023BE3
|
|
_080157C8: .4byte gBattleTypeFlags
|
|
_080157CC: .4byte gBattleTextBuff1
|
|
_080157D0: .4byte gUnknown_2023E8A
|
|
_080157D4: .4byte sBattler_AI
|
|
_080157D8: .4byte gUnknown_2023D74
|
|
_080157DC: .4byte gUnknown_81D88CC
|
|
_080157E0:
|
|
movs r0, 0x8
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08015824
|
|
bl sub_80803CC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x9
|
|
bne _08015824
|
|
bl sub_80803D8
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0801580C
|
|
ldr r1, _08015808 @ =gUnknown_2023E82
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x5]
|
|
b _08015810
|
|
.align 2, 0
|
|
_08015808: .4byte gUnknown_2023E82
|
|
_0801580C:
|
|
ldr r0, _0801581C @ =gUnknown_2023E82
|
|
strb r4, [r0, 0x5]
|
|
_08015810:
|
|
movs r0, 0x1
|
|
bl GetBattlerAtPosition
|
|
ldr r1, _08015820 @ =sBattler_AI
|
|
strb r0, [r1]
|
|
b _0801582A
|
|
.align 2, 0
|
|
_0801581C: .4byte gUnknown_2023E82
|
|
_08015820: .4byte sBattler_AI
|
|
_08015824:
|
|
ldr r1, _0801583C @ =gUnknown_2023E82
|
|
movs r0, 0
|
|
strb r0, [r1, 0x5]
|
|
_0801582A:
|
|
ldr r1, _08015840 @ =gUnknown_2023D74
|
|
ldr r0, _08015844 @ =gUnknown_81D8806
|
|
str r0, [r1]
|
|
_08015830:
|
|
ldr r1, _08015848 @ =gUnknown_3004F84
|
|
ldr r0, _0801584C @ =sub_8015910
|
|
str r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0801583C: .4byte gUnknown_2023E82
|
|
_08015840: .4byte gUnknown_2023D74
|
|
_08015844: .4byte gUnknown_81D8806
|
|
_08015848: .4byte gUnknown_3004F84
|
|
_0801584C: .4byte sub_8015910
|
|
thumb_func_end sub_801578C
|
|
|
|
thumb_func_start sub_8015850
|
|
sub_8015850: @ 8015850
|
|
push {lr}
|
|
ldr r1, _08015878 @ =gUnknown_2023BE3
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r1, _0801587C @ =gUnknown_2023E8C
|
|
ldr r0, _08015880 @ =sBattler_AI
|
|
ldrb r0, [r0]
|
|
lsls r0, 4
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x1]
|
|
lsls r0, 27
|
|
lsrs r0, 30
|
|
cmp r0, 0x1
|
|
beq _0801588C
|
|
cmp r0, 0x2
|
|
beq _0801589C
|
|
ldr r1, _08015884 @ =gUnknown_2023D74
|
|
ldr r0, _08015888 @ =gUnknown_81D8916
|
|
b _080158A0
|
|
.align 2, 0
|
|
_08015878: .4byte gUnknown_2023BE3
|
|
_0801587C: .4byte gUnknown_2023E8C
|
|
_08015880: .4byte sBattler_AI
|
|
_08015884: .4byte gUnknown_2023D74
|
|
_08015888: .4byte gUnknown_81D8916
|
|
_0801588C:
|
|
ldr r1, _08015894 @ =gUnknown_2023D74
|
|
ldr r0, _08015898 @ =gUnknown_81D8901
|
|
b _080158A0
|
|
.align 2, 0
|
|
_08015894: .4byte gUnknown_2023D74
|
|
_08015898: .4byte gUnknown_81D8901
|
|
_0801589C:
|
|
ldr r1, _080158AC @ =gUnknown_2023D74
|
|
ldr r0, _080158B0 @ =gUnknown_81D890F
|
|
_080158A0:
|
|
str r0, [r1]
|
|
ldr r1, _080158B4 @ =gUnknown_3004F84
|
|
ldr r0, _080158B8 @ =sub_8015910
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080158AC: .4byte gUnknown_2023D74
|
|
_080158B0: .4byte gUnknown_81D890F
|
|
_080158B4: .4byte gUnknown_3004F84
|
|
_080158B8: .4byte sub_8015910
|
|
thumb_func_end sub_8015850
|
|
|
|
thumb_func_start sub_80158BC
|
|
sub_80158BC: @ 80158BC
|
|
ldr r1, _080158F0 @ =gUnknown_2023BE3
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r1, _080158F4 @ =gBattleTextBuff1
|
|
movs r0, 0xFD
|
|
strb r0, [r1]
|
|
movs r0, 0x7
|
|
strb r0, [r1, 0x1]
|
|
ldr r2, _080158F8 @ =sBattler_AI
|
|
ldrb r0, [r2]
|
|
strb r0, [r1, 0x2]
|
|
ldr r3, _080158FC @ =gBattlerPartyIndexes
|
|
ldrb r0, [r2]
|
|
lsls r0, 1
|
|
adds r0, r3
|
|
ldrh r0, [r0]
|
|
strb r0, [r1, 0x3]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x4]
|
|
ldr r1, _08015900 @ =gUnknown_2023D74
|
|
ldr r0, _08015904 @ =gUnknown_81D891D
|
|
str r0, [r1]
|
|
ldr r1, _08015908 @ =gUnknown_3004F84
|
|
ldr r0, _0801590C @ =sub_8015910
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080158F0: .4byte gUnknown_2023BE3
|
|
_080158F4: .4byte gBattleTextBuff1
|
|
_080158F8: .4byte sBattler_AI
|
|
_080158FC: .4byte gBattlerPartyIndexes
|
|
_08015900: .4byte gUnknown_2023D74
|
|
_08015904: .4byte gUnknown_81D891D
|
|
_08015908: .4byte gUnknown_3004F84
|
|
_0801590C: .4byte sub_8015910
|
|
thumb_func_end sub_80158BC
|
|
|
|
thumb_func_start sub_8015910
|
|
sub_8015910: @ 8015910
|
|
push {r4-r7,lr}
|
|
ldr r0, _08015974 @ =gUnknown_2023BE3
|
|
ldrb r0, [r0]
|
|
subs r0, 0xB
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _08015A04
|
|
ldr r0, _08015978 @ =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
ldr r0, _0801597C @ =0x00080b92
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _080159BC
|
|
ldr r2, _08015980 @ =gActiveBattler
|
|
strb r1, [r2]
|
|
ldr r0, _08015984 @ =gBattlersCount
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bcs _080159BC
|
|
adds r4, r2, 0
|
|
ldr r6, _08015988 @ =gBattleMons
|
|
movs r5, 0x58
|
|
adds r7, r6, 0
|
|
adds r7, 0x30
|
|
_08015942:
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080159AA
|
|
ldr r2, _0801598C @ =gBattleResults
|
|
ldrh r0, [r2, 0x6]
|
|
cmp r0, 0
|
|
bne _08015990
|
|
ldrb r0, [r4]
|
|
muls r0, r5
|
|
adds r0, r6
|
|
ldrh r0, [r0]
|
|
strh r0, [r2, 0x6]
|
|
ldrb r0, [r4]
|
|
adds r1, r0, 0
|
|
muls r1, r5
|
|
adds r1, r7
|
|
adds r0, r2, 0
|
|
adds r0, 0x8
|
|
bl StringCopy
|
|
b _080159AA
|
|
.align 2, 0
|
|
_08015974: .4byte gUnknown_2023BE3
|
|
_08015978: .4byte gBattleTypeFlags
|
|
_0801597C: .4byte 0x00080b92
|
|
_08015980: .4byte gActiveBattler
|
|
_08015984: .4byte gBattlersCount
|
|
_08015988: .4byte gBattleMons
|
|
_0801598C: .4byte gBattleResults
|
|
_08015990:
|
|
ldrb r0, [r4]
|
|
muls r0, r5
|
|
adds r0, r6
|
|
ldrh r0, [r0]
|
|
strh r0, [r2, 0x26]
|
|
ldrb r0, [r4]
|
|
adds r1, r0, 0
|
|
muls r1, r5
|
|
adds r1, r7
|
|
adds r0, r2, 0
|
|
adds r0, 0x14
|
|
bl StringCopy
|
|
_080159AA:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
ldr r1, _080159EC @ =gBattlersCount
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _08015942
|
|
_080159BC:
|
|
bl sub_812BFDC
|
|
ldr r0, _080159F0 @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080159D0
|
|
bl sub_810CB90
|
|
_080159D0:
|
|
movs r0, 0x3
|
|
bl BeginFastPaletteFade
|
|
movs r0, 0x5
|
|
bl FadeOutMapMusic
|
|
ldr r1, _080159F4 @ =gUnknown_3004F84
|
|
ldr r0, _080159F8 @ =sub_8015A30
|
|
str r0, [r1]
|
|
ldr r1, _080159FC @ =gUnknown_300537C
|
|
ldr r0, _08015A00 @ =sub_8011100
|
|
str r0, [r1]
|
|
b _08015A1E
|
|
.align 2, 0
|
|
_080159EC: .4byte gBattlersCount
|
|
_080159F0: .4byte gBattleTypeFlags
|
|
_080159F4: .4byte gUnknown_3004F84
|
|
_080159F8: .4byte sub_8015A30
|
|
_080159FC: .4byte gUnknown_300537C
|
|
_08015A00: .4byte sub_8011100
|
|
_08015A04:
|
|
ldr r0, _08015A24 @ =gUnknown_2023BC8
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _08015A1E
|
|
ldr r1, _08015A28 @ =gUnknown_825011C
|
|
ldr r0, _08015A2C @ =gUnknown_2023D74
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bl _call_via_r0
|
|
_08015A1E:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08015A24: .4byte gUnknown_2023BC8
|
|
_08015A28: .4byte gUnknown_825011C
|
|
_08015A2C: .4byte gUnknown_2023D74
|
|
thumb_func_end sub_8015910
|
|
|
|
thumb_func_start sub_8015A30
|
|
sub_8015A30: @ 8015A30
|
|
push {lr}
|
|
ldr r0, _08015A58 @ =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08015A8E
|
|
bl ResetSpriteData
|
|
ldr r0, _08015A5C @ =gUnknown_3004FD4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08015A52
|
|
ldr r0, _08015A60 @ =gUnknown_2023E8A
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _08015A6C
|
|
_08015A52:
|
|
ldr r1, _08015A64 @ =gUnknown_3004F84
|
|
ldr r0, _08015A68 @ =ReturnFromBattleToOverworld
|
|
b _08015A70
|
|
.align 2, 0
|
|
_08015A58: .4byte gPaletteFade
|
|
_08015A5C: .4byte gUnknown_3004FD4
|
|
_08015A60: .4byte gUnknown_2023E8A
|
|
_08015A64: .4byte gUnknown_3004F84
|
|
_08015A68: .4byte ReturnFromBattleToOverworld
|
|
_08015A6C:
|
|
ldr r1, _08015A94 @ =gUnknown_3004F84
|
|
ldr r0, _08015A98 @ =sub_8015AA0
|
|
_08015A70:
|
|
str r0, [r1]
|
|
bl FreeAllWindowBuffers
|
|
ldr r0, _08015A9C @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08015A8E
|
|
bl FreeMonSpritesGfx
|
|
bl FreeBattleSpritesData
|
|
bl sub_802E138
|
|
_08015A8E:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08015A94: .4byte gUnknown_3004F84
|
|
_08015A98: .4byte sub_8015AA0
|
|
_08015A9C: .4byte gBattleTypeFlags
|
|
thumb_func_end sub_8015A30
|
|
|
|
thumb_func_start sub_8015AA0
|
|
sub_8015AA0: @ 8015AA0
|
|
push {r4,r5,lr}
|
|
ldr r0, _08015AF4 @ =gUnknown_3004FD4
|
|
ldrb r1, [r0]
|
|
adds r3, r0, 0
|
|
cmp r1, 0
|
|
beq _08015B16
|
|
_08015AAC:
|
|
movs r5, 0
|
|
_08015AAE:
|
|
ldrb r2, [r3]
|
|
ldr r0, _08015AF8 @ =gBitTable
|
|
lsls r1, r5, 2
|
|
adds r1, r0
|
|
ldr r1, [r1]
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08015B08
|
|
bics r2, r1
|
|
strb r2, [r3]
|
|
movs r0, 0x64
|
|
adds r1, r5, 0
|
|
muls r1, r0
|
|
ldr r0, _08015AFC @ =gPlayerParty
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl GetEvolutionTargetSpecies
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
cmp r2, 0
|
|
beq _08015B08
|
|
ldr r0, _08015B00 @ =gUnknown_3004F84
|
|
ldr r1, _08015B04 @ =sub_8015B30
|
|
str r1, [r0]
|
|
lsls r3, r5, 24
|
|
lsrs r3, 24
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
movs r2, 0x81
|
|
bl EvolutionScene
|
|
b _08015B1C
|
|
.align 2, 0
|
|
_08015AF4: .4byte gUnknown_3004FD4
|
|
_08015AF8: .4byte gBitTable
|
|
_08015AFC: .4byte gPlayerParty
|
|
_08015B00: .4byte gUnknown_3004F84
|
|
_08015B04: .4byte sub_8015B30
|
|
_08015B08:
|
|
adds r5, 0x1
|
|
ldr r3, _08015B24 @ =gUnknown_3004FD4
|
|
cmp r5, 0x5
|
|
ble _08015AAE
|
|
ldrb r0, [r3]
|
|
cmp r0, 0
|
|
bne _08015AAC
|
|
_08015B16:
|
|
ldr r1, _08015B28 @ =gUnknown_3004F84
|
|
ldr r0, _08015B2C @ =ReturnFromBattleToOverworld
|
|
str r0, [r1]
|
|
_08015B1C:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08015B24: .4byte gUnknown_3004FD4
|
|
_08015B28: .4byte gUnknown_3004F84
|
|
_08015B2C: .4byte ReturnFromBattleToOverworld
|
|
thumb_func_end sub_8015AA0
|
|
|
|
thumb_func_start sub_8015B30
|
|
sub_8015B30: @ 8015B30
|
|
push {lr}
|
|
ldr r0, _08015B48 @ =gMain
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, _08015B4C @ =sub_8011100
|
|
cmp r1, r0
|
|
bne _08015B42
|
|
ldr r1, _08015B50 @ =gUnknown_3004F84
|
|
ldr r0, _08015B54 @ =sub_8015AA0
|
|
str r0, [r1]
|
|
_08015B42:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08015B48: .4byte gMain
|
|
_08015B4C: .4byte sub_8011100
|
|
_08015B50: .4byte gUnknown_3004F84
|
|
_08015B54: .4byte sub_8015AA0
|
|
thumb_func_end sub_8015B30
|
|
|
|
thumb_func_start ReturnFromBattleToOverworld
|
|
ReturnFromBattleToOverworld: @ 8015B58
|
|
push {r4-r6,lr}
|
|
ldr r6, _08015BDC @ =gBattleTypeFlags
|
|
ldr r0, [r6]
|
|
movs r5, 0x2
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
bne _08015B74
|
|
ldr r4, _08015BE0 @ =gPlayerParty
|
|
adds r0, r4, 0
|
|
bl sub_8043A68
|
|
adds r0, r4, 0
|
|
bl sub_8043B40
|
|
_08015B74:
|
|
ldr r4, [r6]
|
|
adds r0, r4, 0
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _08015B86
|
|
ldr r0, _08015BE4 @ =gUnknown_3003F64
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08015BD4
|
|
_08015B86:
|
|
ldr r1, _08015BE8 @ =gUnknown_20370D0
|
|
ldr r5, _08015BEC @ =gUnknown_2023E8A
|
|
ldrb r0, [r5]
|
|
strh r0, [r1]
|
|
ldr r3, _08015BF0 @ =gMain
|
|
ldr r0, _08015BF4 @ =0x00000439
|
|
adds r2, r3, r0
|
|
ldrb r1, [r2]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, _08015BF8 @ =gUnknown_3004F80
|
|
ldr r0, [r0]
|
|
str r0, [r3]
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
ands r4, r0
|
|
cmp r4, 0
|
|
beq _08015BC6
|
|
ldr r0, _08015BFC @ =gEnemyParty
|
|
bl UpdateRoamerHPStatus
|
|
ldrb r1, [r5]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08015BC2
|
|
cmp r1, 0x7
|
|
bne _08015BC6
|
|
_08015BC2:
|
|
bl SetRoamerInactive
|
|
_08015BC6:
|
|
movs r0, 0x53
|
|
bl m4aSongNumStop
|
|
ldr r0, _08015BF0 @ =gMain
|
|
ldr r0, [r0, 0x8]
|
|
bl SetMainCallback2
|
|
_08015BD4:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08015BDC: .4byte gBattleTypeFlags
|
|
_08015BE0: .4byte gPlayerParty
|
|
_08015BE4: .4byte gUnknown_3003F64
|
|
_08015BE8: .4byte gUnknown_20370D0
|
|
_08015BEC: .4byte gUnknown_2023E8A
|
|
_08015BF0: .4byte gMain
|
|
_08015BF4: .4byte 0x00000439
|
|
_08015BF8: .4byte gUnknown_3004F80
|
|
_08015BFC: .4byte gEnemyParty
|
|
thumb_func_end ReturnFromBattleToOverworld
|
|
|
|
thumb_func_start RunBattleScriptCommands_PopCallbacksStack
|
|
RunBattleScriptCommands_PopCallbacksStack: @ 8015C00
|
|
push {lr}
|
|
ldr r0, _08015C3C @ =gUnknown_2023BE3
|
|
ldrb r0, [r0]
|
|
subs r0, 0xB
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _08015C48
|
|
ldr r3, _08015C40 @ =gBattleResources
|
|
ldr r0, [r3]
|
|
ldr r0, [r0, 0xC]
|
|
adds r1, r0, 0
|
|
adds r1, 0x20
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _08015C24
|
|
subs r0, 0x1
|
|
strb r0, [r1]
|
|
_08015C24:
|
|
ldr r2, _08015C44 @ =gUnknown_3004F84
|
|
ldr r0, [r3]
|
|
ldr r1, [r0, 0xC]
|
|
adds r0, r1, 0
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
str r0, [r2]
|
|
b _08015C62
|
|
.align 2, 0
|
|
_08015C3C: .4byte gUnknown_2023BE3
|
|
_08015C40: .4byte gBattleResources
|
|
_08015C44: .4byte gUnknown_3004F84
|
|
_08015C48:
|
|
ldr r0, _08015C68 @ =gUnknown_2023BC8
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _08015C62
|
|
ldr r1, _08015C6C @ =gUnknown_825011C
|
|
ldr r0, _08015C70 @ =gUnknown_2023D74
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bl _call_via_r0
|
|
_08015C62:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08015C68: .4byte gUnknown_2023BC8
|
|
_08015C6C: .4byte gUnknown_825011C
|
|
_08015C70: .4byte gUnknown_2023D74
|
|
thumb_func_end RunBattleScriptCommands_PopCallbacksStack
|
|
|
|
thumb_func_start sub_8015C74
|
|
sub_8015C74: @ 8015C74
|
|
push {lr}
|
|
ldr r0, _08015C94 @ =gUnknown_2023BC8
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _08015C90
|
|
ldr r1, _08015C98 @ =gUnknown_825011C
|
|
ldr r0, _08015C9C @ =gUnknown_2023D74
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bl _call_via_r0
|
|
_08015C90:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08015C94: .4byte gUnknown_2023BC8
|
|
_08015C98: .4byte gUnknown_825011C
|
|
_08015C9C: .4byte gUnknown_2023D74
|
|
thumb_func_end sub_8015C74
|
|
|
|
thumb_func_start sub_8015CA0
|
|
sub_8015CA0: @ 8015CA0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
movs r0, 0x4
|
|
str r0, [sp]
|
|
ldr r6, _08015CE0 @ =sBattler_AI
|
|
ldr r1, _08015CE4 @ =gUnknown_2023BDE
|
|
ldr r0, _08015CE8 @ =gUnknown_2023BE2
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r6]
|
|
ldr r1, _08015CEC @ =gBattleStruct
|
|
ldr r3, [r1]
|
|
adds r0, r3, 0
|
|
adds r0, 0x91
|
|
ldrb r2, [r0]
|
|
ldr r1, _08015CF0 @ =gBitTable
|
|
ldrb r0, [r6]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
beq _08015CF8
|
|
ldr r1, _08015CF4 @ =gUnknown_2023BE3
|
|
movs r0, 0xC
|
|
b _0801634C
|
|
.align 2, 0
|
|
_08015CE0: .4byte sBattler_AI
|
|
_08015CE4: .4byte gUnknown_2023BDE
|
|
_08015CE8: .4byte gUnknown_2023BE2
|
|
_08015CEC: .4byte gBattleStruct
|
|
_08015CF0: .4byte gBitTable
|
|
_08015CF4: .4byte gUnknown_2023BE3
|
|
_08015CF8:
|
|
ldr r1, _08015D6C @ =gCritMultiplier
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r1, _08015D70 @ =gBattleScripting
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0xE]
|
|
adds r0, r3, 0
|
|
adds r0, 0xB7
|
|
strb r2, [r0]
|
|
ldr r0, _08015D74 @ =gMoveResultFlags
|
|
strb r2, [r0]
|
|
ldr r0, _08015D78 @ =gUnknown_2023D72
|
|
strb r2, [r0]
|
|
ldr r0, _08015D7C @ =gUnknown_2023E82
|
|
strb r2, [r0, 0x6]
|
|
ldr r2, _08015D80 @ =gUnknown_2023D48
|
|
ldr r3, _08015D84 @ =gUnknown_2023D49
|
|
mov r9, r3
|
|
ldrb r0, [r6]
|
|
ldr r4, _08015D88 @ =gBattleStruct
|
|
ldr r1, [r4]
|
|
adds r0, r1
|
|
adds r0, 0x80
|
|
ldrb r0, [r0]
|
|
strb r0, [r3]
|
|
strb r0, [r2]
|
|
ldr r1, _08015D8C @ =gUnknown_2023E8C
|
|
ldrb r4, [r6]
|
|
lsls r0, r4, 4
|
|
adds r3, r0, r1
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 29
|
|
mov r8, r2
|
|
cmp r0, 0
|
|
bge _08015D9C
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r3]
|
|
ldr r2, _08015D90 @ =gCurrentMove
|
|
ldr r1, _08015D94 @ =gUnknown_2023D4C
|
|
movs r0, 0xA5
|
|
strh r0, [r1]
|
|
strh r0, [r2]
|
|
ldr r2, _08015D98 @ =gUnknown_2023DD0
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 4
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
movs r0, 0xA5
|
|
movs r1, 0
|
|
bl GetMoveTarget
|
|
ldrb r1, [r6]
|
|
ldr r3, _08015D88 @ =gBattleStruct
|
|
ldr r2, [r3]
|
|
b _08015EF6
|
|
.align 2, 0
|
|
_08015D6C: .4byte gCritMultiplier
|
|
_08015D70: .4byte gBattleScripting
|
|
_08015D74: .4byte gMoveResultFlags
|
|
_08015D78: .4byte gUnknown_2023D72
|
|
_08015D7C: .4byte gUnknown_2023E82
|
|
_08015D80: .4byte gUnknown_2023D48
|
|
_08015D84: .4byte gUnknown_2023D49
|
|
_08015D88: .4byte gBattleStruct
|
|
_08015D8C: .4byte gUnknown_2023E8C
|
|
_08015D90: .4byte gCurrentMove
|
|
_08015D94: .4byte gUnknown_2023D4C
|
|
_08015D98: .4byte gUnknown_2023DD0
|
|
_08015D9C:
|
|
ldr r0, _08015DD4 @ =gBattleMons
|
|
movs r1, 0x58
|
|
adds r5, r4, 0
|
|
muls r5, r1
|
|
adds r1, r0, 0
|
|
adds r1, 0x50
|
|
adds r1, r5, r1
|
|
ldr r2, [r1]
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
ands r1, r2
|
|
mov r10, r0
|
|
cmp r1, 0
|
|
bne _08015DC2
|
|
movs r7, 0x80
|
|
lsls r7, 15
|
|
ands r7, r2
|
|
cmp r7, 0
|
|
beq _08015DE4
|
|
_08015DC2:
|
|
ldr r3, _08015DD8 @ =gCurrentMove
|
|
ldr r2, _08015DDC @ =gUnknown_2023D4C
|
|
ldr r1, _08015DE0 @ =gUnknown_2023DB8
|
|
lsls r0, r4, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
strh r0, [r2]
|
|
strh r0, [r3]
|
|
b _08015F18
|
|
.align 2, 0
|
|
_08015DD4: .4byte gBattleMons
|
|
_08015DD8: .4byte gCurrentMove
|
|
_08015DDC: .4byte gUnknown_2023D4C
|
|
_08015DE0: .4byte gUnknown_2023DB8
|
|
_08015DE4:
|
|
ldr r3, _08015E38 @ =gDisableStructs
|
|
mov r12, r3
|
|
lsls r0, r4, 3
|
|
subs r0, r4
|
|
lsls r0, 2
|
|
add r0, r12
|
|
ldrh r4, [r0, 0x6]
|
|
adds r2, r4, 0
|
|
cmp r2, 0
|
|
beq _08015EBC
|
|
ldrb r3, [r0, 0xC]
|
|
lsls r0, r3, 1
|
|
adds r0, r5
|
|
mov r5, r10
|
|
adds r5, 0xC
|
|
adds r0, r5
|
|
ldrh r1, [r0]
|
|
cmp r2, r1
|
|
bne _08015E48
|
|
ldr r2, _08015E3C @ =gCurrentMove
|
|
ldr r0, _08015E40 @ =gUnknown_2023D4C
|
|
strh r4, [r0]
|
|
strh r4, [r2]
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
add r0, r12
|
|
ldrb r0, [r0, 0xC]
|
|
mov r4, r9
|
|
strb r0, [r4]
|
|
mov r1, r8
|
|
strb r0, [r1]
|
|
ldrh r0, [r2]
|
|
movs r1, 0
|
|
bl GetMoveTarget
|
|
ldrb r1, [r6]
|
|
ldr r3, _08015E44 @ =gBattleStruct
|
|
ldr r2, [r3]
|
|
b _08015EF6
|
|
.align 2, 0
|
|
_08015E38: .4byte gDisableStructs
|
|
_08015E3C: .4byte gCurrentMove
|
|
_08015E40: .4byte gUnknown_2023D4C
|
|
_08015E44: .4byte gBattleStruct
|
|
_08015E48:
|
|
cmp r2, 0
|
|
beq _08015EBC
|
|
cmp r2, r1
|
|
beq _08015EBC
|
|
mov r4, r9
|
|
strb r3, [r4]
|
|
mov r0, r8
|
|
strb r3, [r0]
|
|
ldr r3, _08015EB0 @ =gCurrentMove
|
|
ldr r2, _08015EB4 @ =gUnknown_2023D4C
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
ldrb r1, [r6]
|
|
movs r4, 0x58
|
|
muls r1, r4
|
|
adds r0, r1
|
|
adds r0, r5
|
|
ldrh r0, [r0]
|
|
strh r0, [r2]
|
|
strh r0, [r3]
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
add r0, r12
|
|
movs r2, 0
|
|
strh r7, [r0, 0x6]
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
add r0, r12
|
|
strb r2, [r0, 0xC]
|
|
ldrb r0, [r6]
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
add r1, r12
|
|
ldrb r2, [r1, 0xE]
|
|
movs r0, 0x10
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0xE]
|
|
ldrh r0, [r3]
|
|
movs r1, 0
|
|
bl GetMoveTarget
|
|
ldrb r1, [r6]
|
|
ldr r3, _08015EB8 @ =gBattleStruct
|
|
ldr r2, [r3]
|
|
b _08015EF6
|
|
.align 2, 0
|
|
_08015EB0: .4byte gCurrentMove
|
|
_08015EB4: .4byte gUnknown_2023D4C
|
|
_08015EB8: .4byte gBattleStruct
|
|
_08015EBC:
|
|
mov r4, r8
|
|
ldrb r0, [r4]
|
|
lsls r0, 1
|
|
ldr r4, _08015EFC @ =sBattler_AI
|
|
ldrb r2, [r4]
|
|
movs r1, 0x58
|
|
muls r1, r2
|
|
adds r0, r1
|
|
mov r1, r10
|
|
adds r1, 0xC
|
|
adds r0, r1
|
|
ldr r1, _08015F00 @ =gUnknown_2023DC4
|
|
lsls r2, 1
|
|
adds r2, r1
|
|
ldrh r3, [r0]
|
|
ldrh r2, [r2]
|
|
cmp r3, r2
|
|
beq _08015F10
|
|
ldr r1, _08015F04 @ =gCurrentMove
|
|
ldr r0, _08015F08 @ =gUnknown_2023D4C
|
|
strh r3, [r0]
|
|
strh r3, [r1]
|
|
ldrh r0, [r1]
|
|
movs r1, 0
|
|
bl GetMoveTarget
|
|
ldrb r1, [r4]
|
|
ldr r2, _08015F0C @ =gBattleStruct
|
|
ldr r2, [r2]
|
|
_08015EF6:
|
|
adds r1, r2
|
|
strb r0, [r1, 0xC]
|
|
b _08015F18
|
|
.align 2, 0
|
|
_08015EFC: .4byte sBattler_AI
|
|
_08015F00: .4byte gUnknown_2023DC4
|
|
_08015F04: .4byte gCurrentMove
|
|
_08015F08: .4byte gUnknown_2023D4C
|
|
_08015F0C: .4byte gBattleStruct
|
|
_08015F10:
|
|
ldr r1, _08015F30 @ =gCurrentMove
|
|
ldr r0, _08015F34 @ =gUnknown_2023D4C
|
|
strh r3, [r0]
|
|
strh r3, [r1]
|
|
_08015F18:
|
|
ldr r0, _08015F38 @ =sBattler_AI
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08015F40
|
|
ldr r0, _08015F3C @ =gBattleResults
|
|
ldr r1, _08015F30 @ =gCurrentMove
|
|
ldrh r1, [r1]
|
|
strh r1, [r0, 0x22]
|
|
b _08015F48
|
|
.align 2, 0
|
|
_08015F30: .4byte gCurrentMove
|
|
_08015F34: .4byte gUnknown_2023D4C
|
|
_08015F38: .4byte sBattler_AI
|
|
_08015F3C: .4byte gBattleResults
|
|
_08015F40:
|
|
ldr r0, _08015FAC @ =gBattleResults
|
|
ldr r1, _08015FB0 @ =gCurrentMove
|
|
ldrh r1, [r1]
|
|
strh r1, [r0, 0x24]
|
|
_08015F48:
|
|
ldr r4, _08015FB4 @ =sBattler_AI
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r1, _08015FB8 @ =gSideTimers
|
|
lsls r0, r6, 1
|
|
adds r0, r6
|
|
lsls r0, 2
|
|
adds r5, r0, r1
|
|
ldrb r0, [r5, 0x8]
|
|
adds r3, r4, 0
|
|
cmp r0, 0
|
|
beq _08015FC8
|
|
ldr r2, _08015FBC @ =gBattleMoves
|
|
ldr r0, _08015FB0 @ =gCurrentMove
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x6]
|
|
cmp r0, 0
|
|
bne _08015FC8
|
|
ldrb r0, [r3]
|
|
bl GetBattlerSide
|
|
adds r4, r0, 0
|
|
ldrb r0, [r5, 0x9]
|
|
bl GetBattlerSide
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
cmp r4, r0
|
|
beq _08015FC8
|
|
ldr r1, _08015FC0 @ =gBattleMons
|
|
ldrb r2, [r5, 0x9]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
beq _08015FC8
|
|
ldr r0, _08015FC4 @ =gBattlerTarget
|
|
strb r2, [r0]
|
|
b _0801632C
|
|
.align 2, 0
|
|
_08015FAC: .4byte gBattleResults
|
|
_08015FB0: .4byte gCurrentMove
|
|
_08015FB4: .4byte sBattler_AI
|
|
_08015FB8: .4byte gSideTimers
|
|
_08015FBC: .4byte gBattleMoves
|
|
_08015FC0: .4byte gBattleMons
|
|
_08015FC4: .4byte gBattlerTarget
|
|
_08015FC8:
|
|
ldr r2, _080160E4 @ =gBattleTypeFlags
|
|
ldr r1, [r2]
|
|
movs r0, 0x1
|
|
ands r1, r0
|
|
ldr r3, _080160E8 @ =sBattler_AI
|
|
adds r7, r2, 0
|
|
cmp r1, 0
|
|
bne _08015FDA
|
|
b _080162A0
|
|
_08015FDA:
|
|
ldr r1, _080160EC @ =gSideTimers
|
|
lsls r0, r6, 1
|
|
adds r0, r6
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r5, [r0, 0x8]
|
|
cmp r5, 0
|
|
beq _08015FEC
|
|
b _080161F8
|
|
_08015FEC:
|
|
ldr r2, _080160F0 @ =gBattleMoves
|
|
ldr r0, _080160F4 @ =gCurrentMove
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r4, r0, r2
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0
|
|
bne _08016008
|
|
ldrb r0, [r4, 0x6]
|
|
cmp r0, 0x10
|
|
bne _08016008
|
|
b _080161F8
|
|
_08016008:
|
|
ldr r3, _080160F8 @ =gBattleMons
|
|
ldr r2, _080160E8 @ =sBattler_AI
|
|
ldrb r6, [r2]
|
|
ldr r0, _080160FC @ =gBattleStruct
|
|
ldr r0, [r0]
|
|
adds r0, r6, r0
|
|
ldrb r1, [r0, 0xC]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r3
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
adds r3, r2, 0
|
|
cmp r0, 0x1F
|
|
bne _08016028
|
|
b _080161F8
|
|
_08016028:
|
|
ldrb r0, [r4, 0x2]
|
|
cmp r0, 0xD
|
|
beq _08016030
|
|
b _080161F8
|
|
_08016030:
|
|
adds r0, r6, 0
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r1, _08016100 @ =gActiveBattler
|
|
strb r5, [r1]
|
|
ldr r0, _08016104 @ =gBattlersCount
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bcs _080160A8
|
|
adds r4, r1, 0
|
|
_08016048:
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r6, r0
|
|
beq _08016096
|
|
ldr r0, _080160E8 @ =sBattler_AI
|
|
ldrb r1, [r0]
|
|
ldr r0, _080160FC @ =gBattleStruct
|
|
ldr r0, [r0]
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0xC]
|
|
ldrb r1, [r4]
|
|
cmp r0, r1
|
|
beq _08016096
|
|
ldr r1, _080160F8 @ =gBattleMons
|
|
ldrb r2, [r4]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r0, r1
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1F
|
|
bne _08016096
|
|
adds r0, r2, 0
|
|
bl BankGetTurnOrder
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r3, [sp]
|
|
cmp r0, r3
|
|
bcs _08016096
|
|
ldrb r0, [r4]
|
|
bl BankGetTurnOrder
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp]
|
|
_08016096:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
ldr r1, _08016104 @ =gBattlersCount
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _08016048
|
|
_080160A8:
|
|
ldr r4, [sp]
|
|
cmp r4, 0x4
|
|
beq _080160B0
|
|
b _080161AA
|
|
_080160B0:
|
|
ldr r2, _080160F0 @ =gBattleMoves
|
|
ldr r0, _08016108 @ =gUnknown_2023D4C
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x6]
|
|
ands r4, r0
|
|
cmp r4, 0
|
|
beq _08016130
|
|
ldr r0, _080160E8 @ =sBattler_AI
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08016110
|
|
bl Random
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0801610C
|
|
movs r0, 0x1
|
|
b _08016122
|
|
.align 2, 0
|
|
_080160E4: .4byte gBattleTypeFlags
|
|
_080160E8: .4byte sBattler_AI
|
|
_080160EC: .4byte gSideTimers
|
|
_080160F0: .4byte gBattleMoves
|
|
_080160F4: .4byte gCurrentMove
|
|
_080160F8: .4byte gBattleMons
|
|
_080160FC: .4byte gBattleStruct
|
|
_08016100: .4byte gActiveBattler
|
|
_08016104: .4byte gBattlersCount
|
|
_08016108: .4byte gUnknown_2023D4C
|
|
_0801610C:
|
|
movs r0, 0x3
|
|
b _08016122
|
|
_08016110:
|
|
bl Random
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08016120
|
|
movs r0, 0
|
|
b _08016122
|
|
_08016120:
|
|
movs r0, 0x2
|
|
_08016122:
|
|
bl GetBattlerAtPosition
|
|
ldr r1, _0801612C @ =gBattlerTarget
|
|
strb r0, [r1]
|
|
b _08016140
|
|
.align 2, 0
|
|
_0801612C: .4byte gBattlerTarget
|
|
_08016130:
|
|
ldr r2, _08016178 @ =gBattlerTarget
|
|
ldr r0, _0801617C @ =sBattler_AI
|
|
ldrb r0, [r0]
|
|
ldr r1, _08016180 @ =gBattleStruct
|
|
ldr r1, [r1]
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0xC]
|
|
strb r0, [r2]
|
|
_08016140:
|
|
ldr r7, _08016184 @ =gAbsentBattlerFlags
|
|
ldrb r0, [r7]
|
|
ldr r1, _08016188 @ =gBitTable
|
|
mov r8, r1
|
|
ldr r5, _08016178 @ =gBattlerTarget
|
|
ldrb r1, [r5]
|
|
lsls r1, 2
|
|
add r1, r8
|
|
ldr r1, [r1]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0801615A
|
|
b _0801632C
|
|
_0801615A:
|
|
ldr r6, _0801617C @ =sBattler_AI
|
|
ldrb r0, [r6]
|
|
bl GetBattlerSide
|
|
adds r4, r0, 0
|
|
ldrb r0, [r5]
|
|
bl GetBattlerSide
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
cmp r4, r0
|
|
beq _0801618C
|
|
ldrb r0, [r5]
|
|
b _0801631A
|
|
.align 2, 0
|
|
_08016178: .4byte gBattlerTarget
|
|
_0801617C: .4byte sBattler_AI
|
|
_08016180: .4byte gBattleStruct
|
|
_08016184: .4byte gAbsentBattlerFlags
|
|
_08016188: .4byte gBitTable
|
|
_0801618C:
|
|
ldrb r0, [r6]
|
|
bl GetBattlerPosition
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl GetBattlerAtPosition
|
|
strb r0, [r5]
|
|
ldrb r1, [r7]
|
|
ldrb r2, [r5]
|
|
lsls r0, r2, 2
|
|
add r0, r8
|
|
b _08016310
|
|
_080161AA:
|
|
ldr r4, _080161E4 @ =gActiveBattler
|
|
ldr r0, _080161E8 @ =gUnknown_2023BDE
|
|
ldr r3, [sp]
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
strb r0, [r4]
|
|
ldrb r0, [r4]
|
|
ldr r2, _080161EC @ =gBattleMons
|
|
movs r1, 0x58
|
|
muls r1, r0
|
|
adds r1, r2
|
|
adds r1, 0x20
|
|
ldrb r1, [r1]
|
|
bl sub_80C71D0
|
|
ldr r2, _080161F0 @ =gUnknown_2023ECC
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
movs r2, 0x2
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldr r1, _080161F4 @ =gBattlerTarget
|
|
ldrb r0, [r4]
|
|
strb r0, [r1]
|
|
b _0801632C
|
|
.align 2, 0
|
|
_080161E4: .4byte gActiveBattler
|
|
_080161E8: .4byte gUnknown_2023BDE
|
|
_080161EC: .4byte gBattleMons
|
|
_080161F0: .4byte gUnknown_2023ECC
|
|
_080161F4: .4byte gBattlerTarget
|
|
_080161F8:
|
|
ldr r0, [r7]
|
|
movs r4, 0x1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _080162A0
|
|
ldr r2, _08016238 @ =gBattleMoves
|
|
ldr r0, _0801623C @ =gUnknown_2023D4C
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0, 0x6]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080162A0
|
|
ldrb r0, [r3]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08016244
|
|
bl Random
|
|
adds r1, r4, 0
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08016240
|
|
movs r0, 0x1
|
|
b _08016256
|
|
.align 2, 0
|
|
_08016238: .4byte gBattleMoves
|
|
_0801623C: .4byte gUnknown_2023D4C
|
|
_08016240:
|
|
movs r0, 0x3
|
|
b _08016256
|
|
_08016244:
|
|
bl Random
|
|
adds r1, r4, 0
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08016254
|
|
movs r0, 0
|
|
b _08016256
|
|
_08016254:
|
|
movs r0, 0x2
|
|
_08016256:
|
|
bl GetBattlerAtPosition
|
|
ldr r1, _08016290 @ =gBattlerTarget
|
|
strb r0, [r1]
|
|
ldr r0, _08016294 @ =gAbsentBattlerFlags
|
|
ldrb r1, [r0]
|
|
ldr r2, _08016298 @ =gBitTable
|
|
ldr r5, _08016290 @ =gBattlerTarget
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0801632C
|
|
ldr r0, _0801629C @ =sBattler_AI
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
adds r4, r0, 0
|
|
ldrb r0, [r5]
|
|
bl GetBattlerSide
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
cmp r4, r0
|
|
beq _0801632C
|
|
ldrb r0, [r5]
|
|
b _0801631A
|
|
.align 2, 0
|
|
_08016290: .4byte gBattlerTarget
|
|
_08016294: .4byte gAbsentBattlerFlags
|
|
_08016298: .4byte gBitTable
|
|
_0801629C: .4byte sBattler_AI
|
|
_080162A0:
|
|
ldr r5, _080162E4 @ =gBattlerTarget
|
|
adds r2, r3, 0
|
|
ldrb r0, [r2]
|
|
ldr r1, _080162E8 @ =gBattleStruct
|
|
ldr r1, [r1]
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0xC]
|
|
strb r0, [r5]
|
|
ldr r6, _080162EC @ =gAbsentBattlerFlags
|
|
ldrb r1, [r6]
|
|
ldr r7, _080162F0 @ =gBitTable
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0801632C
|
|
ldrb r0, [r2]
|
|
str r3, [sp, 0x4]
|
|
bl GetBattlerSide
|
|
adds r4, r0, 0
|
|
ldrb r0, [r5]
|
|
bl GetBattlerSide
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
ldr r3, [sp, 0x4]
|
|
cmp r4, r0
|
|
beq _080162F4
|
|
ldrb r0, [r5]
|
|
b _0801631A
|
|
.align 2, 0
|
|
_080162E4: .4byte gBattlerTarget
|
|
_080162E8: .4byte gBattleStruct
|
|
_080162EC: .4byte gAbsentBattlerFlags
|
|
_080162F0: .4byte gBitTable
|
|
_080162F4:
|
|
ldrb r0, [r3]
|
|
bl GetBattlerPosition
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl GetBattlerAtPosition
|
|
strb r0, [r5]
|
|
ldrb r1, [r6]
|
|
ldrb r2, [r5]
|
|
lsls r0, r2, 2
|
|
adds r0, r7
|
|
_08016310:
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0801632C
|
|
adds r0, r2, 0
|
|
_0801631A:
|
|
bl GetBattlerPosition
|
|
movs r1, 0x2
|
|
eors r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl GetBattlerAtPosition
|
|
strb r0, [r5]
|
|
_0801632C:
|
|
ldr r4, _08016360 @ =gUnknown_2023D74
|
|
ldr r3, _08016364 @ =gUnknown_81D65A8
|
|
ldr r2, _08016368 @ =gBattleMoves
|
|
ldr r0, _0801636C @ =gCurrentMove
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
str r0, [r4]
|
|
ldr r1, _08016370 @ =gUnknown_2023BE3
|
|
movs r0, 0xA
|
|
_0801634C:
|
|
strb r0, [r1]
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08016360: .4byte gUnknown_2023D74
|
|
_08016364: .4byte gUnknown_81D65A8
|
|
_08016368: .4byte gBattleMoves
|
|
_0801636C: .4byte gCurrentMove
|
|
_08016370: .4byte gUnknown_2023BE3
|
|
thumb_func_end sub_8015CA0
|
|
|
|
thumb_func_start sub_8016374
|
|
sub_8016374: @ 8016374
|
|
push {r4,lr}
|
|
ldr r3, _080163E0 @ =sBattler_AI
|
|
ldr r1, _080163E4 @ =gUnknown_2023BDE
|
|
ldr r0, _080163E8 @ =gUnknown_2023BE2
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r3]
|
|
ldr r0, _080163EC @ =gUnknown_2022974
|
|
movs r2, 0
|
|
strh r2, [r0]
|
|
ldr r0, _080163F0 @ =gUnknown_2022976
|
|
strh r2, [r0]
|
|
ldr r1, _080163F4 @ =gUnknown_2023FF8
|
|
ldrb r0, [r3]
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
ldr r1, _080163F8 @ =gUnknown_2023FFC
|
|
ldrb r0, [r3]
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
ldr r2, _080163FC @ =gBattleTextBuff1
|
|
movs r0, 0xFD
|
|
strb r0, [r2]
|
|
movs r0, 0x7
|
|
strb r0, [r2, 0x1]
|
|
ldrb r4, [r3]
|
|
strb r4, [r2, 0x2]
|
|
ldrb r0, [r3]
|
|
ldr r1, _08016400 @ =gBattleStruct
|
|
ldr r1, [r1]
|
|
adds r0, r1
|
|
adds r0, 0x58
|
|
ldrb r0, [r0]
|
|
strb r0, [r2, 0x3]
|
|
movs r0, 0xFF
|
|
strb r0, [r2, 0x4]
|
|
ldr r0, _08016404 @ =gBattleScripting
|
|
strb r4, [r0, 0x17]
|
|
ldr r1, _08016408 @ =gUnknown_2023D74
|
|
ldr r0, _0801640C @ =gUnknown_81D894D
|
|
str r0, [r1]
|
|
ldr r1, _08016410 @ =gUnknown_2023BE3
|
|
movs r0, 0xA
|
|
strb r0, [r1]
|
|
ldr r1, _08016414 @ =gBattleResults
|
|
ldrb r0, [r1, 0x2]
|
|
cmp r0, 0xFE
|
|
bhi _080163DA
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x2]
|
|
_080163DA:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080163E0: .4byte sBattler_AI
|
|
_080163E4: .4byte gUnknown_2023BDE
|
|
_080163E8: .4byte gUnknown_2023BE2
|
|
_080163EC: .4byte gUnknown_2022974
|
|
_080163F0: .4byte gUnknown_2022976
|
|
_080163F4: .4byte gUnknown_2023FF8
|
|
_080163F8: .4byte gUnknown_2023FFC
|
|
_080163FC: .4byte gBattleTextBuff1
|
|
_08016400: .4byte gBattleStruct
|
|
_08016404: .4byte gBattleScripting
|
|
_08016408: .4byte gUnknown_2023D74
|
|
_0801640C: .4byte gUnknown_81D894D
|
|
_08016410: .4byte gUnknown_2023BE3
|
|
_08016414: .4byte gBattleResults
|
|
thumb_func_end sub_8016374
|
|
|
|
thumb_func_start sub_8016418
|
|
sub_8016418: @ 8016418
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r4, _08016474 @ =sBattler_AI
|
|
ldr r2, _08016478 @ =gBattlerTarget
|
|
ldr r1, _0801647C @ =gUnknown_2023BDE
|
|
ldr r0, _08016480 @ =gUnknown_2023BE2
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
strb r0, [r4]
|
|
ldr r0, _08016484 @ =gUnknown_2022974
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, _08016488 @ =gUnknown_2022976
|
|
strh r1, [r0]
|
|
ldrb r0, [r4]
|
|
bl ClearFuryCutterDestinyBondGrudge
|
|
ldr r5, _0801648C @ =gUnknown_2023D68
|
|
ldr r2, _08016490 @ =gUnknown_20233C4
|
|
ldrb r1, [r4]
|
|
lsls r1, 9
|
|
adds r0, r2, 0x1
|
|
adds r0, r1, r0
|
|
ldrb r3, [r0]
|
|
adds r2, 0x2
|
|
adds r1, r2
|
|
ldrb r0, [r1]
|
|
lsls r0, 8
|
|
orrs r3, r0
|
|
strh r3, [r5]
|
|
adds r1, r3, 0
|
|
cmp r1, 0xC
|
|
bhi _0801649C
|
|
ldr r2, _08016494 @ =gUnknown_2023D74
|
|
ldr r1, _08016498 @ =gUnknown_81D99B0
|
|
ldrh r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
str r0, [r2]
|
|
b _080164FC
|
|
.align 2, 0
|
|
_08016474: .4byte sBattler_AI
|
|
_08016478: .4byte gBattlerTarget
|
|
_0801647C: .4byte gUnknown_2023BDE
|
|
_08016480: .4byte gUnknown_2023BE2
|
|
_08016484: .4byte gUnknown_2022974
|
|
_08016488: .4byte gUnknown_2022976
|
|
_0801648C: .4byte gUnknown_2023D68
|
|
_08016490: .4byte gUnknown_20233C4
|
|
_08016494: .4byte gUnknown_2023D74
|
|
_08016498: .4byte gUnknown_81D99B0
|
|
_0801649C:
|
|
adds r0, r3, 0
|
|
subs r0, 0x50
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1
|
|
bhi _080164C4
|
|
ldr r0, _080164B8 @ =gUnknown_2023D74
|
|
ldr r1, _080164BC @ =gUnknown_81D99FC
|
|
ldr r1, [r1]
|
|
str r1, [r0]
|
|
ldr r1, _080164C0 @ =gUnknown_2023BE3
|
|
mov r10, r1
|
|
b _0801671E
|
|
.align 2, 0
|
|
_080164B8: .4byte gUnknown_2023D74
|
|
_080164BC: .4byte gUnknown_81D99FC
|
|
_080164C0: .4byte gUnknown_2023BE3
|
|
_080164C4:
|
|
movs r0, 0xAF
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
bne _080164E8
|
|
ldr r0, _080164DC @ =gUnknown_2023D74
|
|
ldr r1, _080164E0 @ =gUnknown_81D99FC
|
|
ldr r1, [r1, 0x4]
|
|
str r1, [r0]
|
|
ldr r2, _080164E4 @ =gUnknown_2023BE3
|
|
mov r10, r2
|
|
b _0801671E
|
|
.align 2, 0
|
|
_080164DC: .4byte gUnknown_2023D74
|
|
_080164E0: .4byte gUnknown_81D99FC
|
|
_080164E4: .4byte gUnknown_2023BE3
|
|
_080164E8:
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08016510
|
|
ldr r0, _08016504 @ =gUnknown_2023D74
|
|
ldr r1, _08016508 @ =gUnknown_81D99E4
|
|
ldr r1, [r1]
|
|
str r1, [r0]
|
|
_080164FC:
|
|
ldr r0, _0801650C @ =gUnknown_2023BE3
|
|
mov r10, r0
|
|
b _0801671E
|
|
.align 2, 0
|
|
_08016504: .4byte gUnknown_2023D74
|
|
_08016508: .4byte gUnknown_81D99E4
|
|
_0801650C: .4byte gUnknown_2023BE3
|
|
_08016510:
|
|
ldr r3, _08016548 @ =gBattleScripting
|
|
ldrb r0, [r4]
|
|
strb r0, [r3, 0x17]
|
|
lsls r0, 24
|
|
lsrs r0, 25
|
|
ldr r2, _0801654C @ =gBattleStruct
|
|
ldr r1, [r2]
|
|
adds r0, r1
|
|
adds r0, 0xC4
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
mov r8, r4
|
|
ldr r1, _08016550 @ =gUnknown_2023D74
|
|
mov r9, r1
|
|
ldr r6, _08016554 @ =gUnknown_81D99E4
|
|
mov r12, r3
|
|
adds r7, r2, 0
|
|
ldr r2, _08016558 @ =gUnknown_2023BE3
|
|
mov r10, r2
|
|
cmp r0, 0x4
|
|
bls _0801653C
|
|
b _08016706
|
|
_0801653C:
|
|
lsls r0, 2
|
|
ldr r1, _0801655C @ =_08016560
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08016548: .4byte gBattleScripting
|
|
_0801654C: .4byte gBattleStruct
|
|
_08016550: .4byte gUnknown_2023D74
|
|
_08016554: .4byte gUnknown_81D99E4
|
|
_08016558: .4byte gUnknown_2023BE3
|
|
_0801655C: .4byte _08016560
|
|
.align 2, 0
|
|
_08016560:
|
|
.4byte _08016706
|
|
.4byte _08016706
|
|
.4byte _08016574
|
|
.4byte _08016608
|
|
.4byte _080166D8
|
|
_08016574:
|
|
ldr r5, _080165AC @ =gUnknown_2023E82
|
|
movs r0, 0
|
|
strb r0, [r5, 0x5]
|
|
ldr r2, _080165B0 @ =sBattler_AI
|
|
ldrb r0, [r2]
|
|
lsrs r0, 1
|
|
ldr r1, [r7]
|
|
adds r0, r1
|
|
adds r0, 0xC6
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
mov r8, r2
|
|
cmp r0, 0
|
|
beq _080165C0
|
|
movs r0, 0x3E
|
|
ands r0, r1
|
|
ldr r1, _080165B4 @ =gUnknown_2023D74
|
|
mov r9, r1
|
|
ldr r6, _080165B8 @ =gUnknown_81D99E4
|
|
ldr r2, _080165BC @ =gUnknown_2023BE3
|
|
mov r10, r2
|
|
cmp r0, 0
|
|
bne _080165A6
|
|
b _08016706
|
|
_080165A6:
|
|
movs r0, 0x5
|
|
strb r0, [r5, 0x5]
|
|
b _08016706
|
|
.align 2, 0
|
|
_080165AC: .4byte gUnknown_2023E82
|
|
_080165B0: .4byte sBattler_AI
|
|
_080165B4: .4byte gUnknown_2023D74
|
|
_080165B8: .4byte gUnknown_81D99E4
|
|
_080165BC: .4byte gUnknown_2023BE3
|
|
_080165C0:
|
|
ldr r0, _080165FC @ =gUnknown_2023D74
|
|
mov r9, r0
|
|
ldr r6, _08016600 @ =gUnknown_81D99E4
|
|
ldr r1, _08016604 @ =gUnknown_2023BE3
|
|
mov r10, r1
|
|
mov r4, r8
|
|
adds r3, r7, 0
|
|
adds r2, r5, 0
|
|
_080165D0:
|
|
ldrb r1, [r4]
|
|
lsrs r1, 1
|
|
ldr r0, [r3]
|
|
adds r1, r0
|
|
adds r1, 0xC6
|
|
ldrb r0, [r1]
|
|
lsrs r0, 1
|
|
strb r0, [r1]
|
|
ldrb r0, [r2, 0x5]
|
|
adds r0, 0x1
|
|
strb r0, [r2, 0x5]
|
|
ldrb r0, [r4]
|
|
lsrs r0, 1
|
|
ldr r1, [r3]
|
|
adds r0, r1
|
|
adds r0, 0xC6
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080165D0
|
|
b _08016706
|
|
.align 2, 0
|
|
_080165FC: .4byte gUnknown_2023D74
|
|
_08016600: .4byte gUnknown_81D99E4
|
|
_08016604: .4byte gUnknown_2023BE3
|
|
_08016608:
|
|
ldr r3, _0801663C @ =gUnknown_2023E82
|
|
movs r0, 0x4
|
|
strb r0, [r3, 0x5]
|
|
ldr r2, _08016640 @ =sBattler_AI
|
|
ldrb r0, [r2]
|
|
lsrs r0, 1
|
|
ldr r1, [r7]
|
|
adds r0, r1
|
|
adds r6, r0, 0
|
|
adds r6, 0xC6
|
|
ldrb r1, [r6]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
mov r8, r2
|
|
cmp r5, 0
|
|
beq _08016650
|
|
movs r0, 0x5
|
|
strb r0, [r3, 0x5]
|
|
ldr r2, _08016644 @ =gUnknown_2023D74
|
|
mov r9, r2
|
|
ldr r6, _08016648 @ =gUnknown_81D99E4
|
|
ldr r0, _0801664C @ =gUnknown_2023BE3
|
|
mov r10, r0
|
|
b _08016706
|
|
.align 2, 0
|
|
_0801663C: .4byte gUnknown_2023E82
|
|
_08016640: .4byte sBattler_AI
|
|
_08016644: .4byte gUnknown_2023D74
|
|
_08016648: .4byte gUnknown_81D99E4
|
|
_0801664C: .4byte gUnknown_2023BE3
|
|
_08016650:
|
|
ldr r3, _080166C4 @ =gBattleTextBuff1
|
|
movs r4, 0xFD
|
|
strb r4, [r3]
|
|
movs r0, 0x5
|
|
strb r0, [r3, 0x1]
|
|
movs r2, 0x1
|
|
strb r2, [r3, 0x2]
|
|
movs r0, 0xFF
|
|
strb r0, [r3, 0x3]
|
|
ldr r1, _080166C8 @ =gBattleTextBuff2
|
|
strb r4, [r1]
|
|
strb r5, [r1, 0x1]
|
|
movs r0, 0xD2
|
|
strb r0, [r1, 0x2]
|
|
strb r5, [r1, 0x3]
|
|
subs r0, 0xD3
|
|
strb r0, [r1, 0x4]
|
|
ldrb r0, [r6]
|
|
ands r2, r0
|
|
ldr r1, _080166CC @ =gUnknown_2023D74
|
|
mov r9, r1
|
|
ldr r6, _080166D0 @ =gUnknown_81D99E4
|
|
ldr r0, _080166D4 @ =gUnknown_2023BE3
|
|
mov r10, r0
|
|
cmp r2, 0
|
|
bne _080166B4
|
|
mov r5, r8
|
|
adds r4, r7, 0
|
|
adds r2, r3, 0
|
|
_0801668A:
|
|
ldrb r1, [r5]
|
|
lsrs r1, 1
|
|
ldr r0, [r4]
|
|
adds r1, r0
|
|
adds r1, 0xC6
|
|
ldrb r0, [r1]
|
|
lsrs r0, 1
|
|
strb r0, [r1]
|
|
ldrb r0, [r2, 0x2]
|
|
adds r0, 0x1
|
|
strb r0, [r2, 0x2]
|
|
ldrb r0, [r5]
|
|
lsrs r0, 1
|
|
ldr r1, [r4]
|
|
adds r0, r1
|
|
adds r0, 0xC6
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0801668A
|
|
_080166B4:
|
|
ldrb r0, [r3, 0x2]
|
|
adds r0, 0xE
|
|
movs r1, 0
|
|
mov r2, r12
|
|
strb r0, [r2, 0x10]
|
|
strb r1, [r2, 0x11]
|
|
b _08016706
|
|
.align 2, 0
|
|
_080166C4: .4byte gBattleTextBuff1
|
|
_080166C8: .4byte gBattleTextBuff2
|
|
_080166CC: .4byte gUnknown_2023D74
|
|
_080166D0: .4byte gUnknown_81D99E4
|
|
_080166D4: .4byte gUnknown_2023BE3
|
|
_080166D8:
|
|
ldr r0, _080166EC @ =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r0, 0x1
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080166F4
|
|
ldr r1, _080166F0 @ =gUnknown_2023E82
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x5]
|
|
b _080166F8
|
|
.align 2, 0
|
|
_080166EC: .4byte gBattleTypeFlags
|
|
_080166F0: .4byte gUnknown_2023E82
|
|
_080166F4:
|
|
ldr r0, _08016734 @ =gUnknown_2023E82
|
|
strb r1, [r0, 0x5]
|
|
_080166F8:
|
|
ldr r0, _08016738 @ =sBattler_AI
|
|
mov r8, r0
|
|
ldr r1, _0801673C @ =gUnknown_2023D74
|
|
mov r9, r1
|
|
ldr r6, _08016740 @ =gUnknown_81D99E4
|
|
ldr r2, _08016744 @ =gUnknown_2023BE3
|
|
mov r10, r2
|
|
_08016706:
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
lsrs r0, 1
|
|
ldr r1, [r7]
|
|
adds r0, r1
|
|
adds r0, 0xC4
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldr r0, [r0]
|
|
mov r2, r9
|
|
str r0, [r2]
|
|
_0801671E:
|
|
movs r0, 0xA
|
|
mov r1, r10
|
|
strb r0, [r1]
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08016734: .4byte gUnknown_2023E82
|
|
_08016738: .4byte sBattler_AI
|
|
_0801673C: .4byte gUnknown_2023D74
|
|
_08016740: .4byte gUnknown_81D99E4
|
|
_08016744: .4byte gUnknown_2023BE3
|
|
thumb_func_end sub_8016418
|
|
|
|
thumb_func_start sub_8016748
|
|
sub_8016748: @ 8016748
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
movs r6, 0
|
|
ldr r1, _0801676C @ =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r4
|
|
adds r1, r0, r1
|
|
ldrh r0, [r1, 0x2E]
|
|
cmp r0, 0xAF
|
|
bne _08016774
|
|
ldr r1, _08016770 @ =gEnigmaBerries
|
|
lsls r0, r4, 3
|
|
subs r0, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x7]
|
|
b _0801677E
|
|
.align 2, 0
|
|
_0801676C: .4byte gBattleMons
|
|
_08016770: .4byte gEnigmaBerries
|
|
_08016774:
|
|
ldrh r0, [r1, 0x2E]
|
|
bl ItemId_GetHoldEffect
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
_0801677E:
|
|
ldr r0, _080167AC @ =gPotentialItemEffectBattler
|
|
strb r4, [r0]
|
|
cmp r1, 0x25
|
|
bne _080167BC
|
|
ldr r2, _080167B0 @ =gUnknown_2023D68
|
|
ldr r1, _080167B4 @ =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r4
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x2E]
|
|
strh r0, [r2]
|
|
ldr r0, _080167B8 @ =gUnknown_2023E8C
|
|
lsls r2, r4, 4
|
|
adds r2, r0
|
|
ldrb r1, [r2, 0x1]
|
|
movs r0, 0x19
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x8
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x1]
|
|
b _08016816
|
|
.align 2, 0
|
|
_080167AC: .4byte gPotentialItemEffectBattler
|
|
_080167B0: .4byte gUnknown_2023D68
|
|
_080167B4: .4byte gBattleMons
|
|
_080167B8: .4byte gUnknown_2023E8C
|
|
_080167BC:
|
|
ldr r7, _080167EC @ =gBattleMons
|
|
movs r2, 0x58
|
|
adds r0, r4, 0
|
|
muls r0, r2
|
|
adds r5, r0, r7
|
|
adds r0, r5, 0
|
|
adds r0, 0x20
|
|
ldrb r1, [r0]
|
|
cmp r1, 0x32
|
|
bne _080167F8
|
|
ldr r0, _080167F0 @ =gLastUsedAbility
|
|
strb r1, [r0]
|
|
ldr r0, _080167F4 @ =gUnknown_2023E8C
|
|
lsls r2, r4, 4
|
|
adds r2, r0
|
|
ldrb r1, [r2, 0x1]
|
|
movs r0, 0x19
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x10
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x1]
|
|
b _08016816
|
|
.align 2, 0
|
|
_080167EC: .4byte gBattleMons
|
|
_080167F0: .4byte gLastUsedAbility
|
|
_080167F4: .4byte gUnknown_2023E8C
|
|
_080167F8:
|
|
ldr r0, _08016820 @ =gBattleTypeFlags
|
|
ldr r3, [r0]
|
|
movs r0, 0xA0
|
|
lsls r0, 8
|
|
ands r0, r3
|
|
movs r1, 0x80
|
|
lsls r1, 8
|
|
cmp r0, r1
|
|
bne _08016824
|
|
adds r0, r4, 0
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0801687A
|
|
_08016816:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
b _0801687A
|
|
.align 2, 0
|
|
_08016820: .4byte gBattleTypeFlags
|
|
_08016824:
|
|
movs r0, 0x1
|
|
ands r3, r0
|
|
cmp r3, 0
|
|
bne _0801686E
|
|
movs r1, 0x1
|
|
adds r0, r4, 0
|
|
eors r0, r1
|
|
muls r0, r2
|
|
adds r2, r0, r7
|
|
ldrh r0, [r5, 0x6]
|
|
ldrh r1, [r2, 0x6]
|
|
cmp r0, r1
|
|
bcs _08016868
|
|
lsls r0, 7
|
|
ldrh r1, [r2, 0x6]
|
|
bl __divsi3
|
|
adds r4, r0, 0
|
|
ldr r0, _08016894 @ =gBattleStruct
|
|
ldr r0, [r0]
|
|
adds r0, 0x6C
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 1
|
|
adds r4, r0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl Random
|
|
movs r1, 0xFF
|
|
ands r1, r0
|
|
cmp r4, r1
|
|
bls _0801686E
|
|
_08016868:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_0801686E:
|
|
ldr r0, _08016894 @ =gBattleStruct
|
|
ldr r1, [r0]
|
|
adds r1, 0x6C
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_0801687A:
|
|
cmp r6, 0
|
|
beq _0801688C
|
|
ldr r1, _08016898 @ =gUnknown_2023BE2
|
|
ldr r0, _0801689C @ =gBattlersCount
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldr r1, _080168A0 @ =gUnknown_2023E8A
|
|
movs r0, 0x4
|
|
strb r0, [r1]
|
|
_0801688C:
|
|
adds r0, r6, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08016894: .4byte gBattleStruct
|
|
_08016898: .4byte gUnknown_2023BE2
|
|
_0801689C: .4byte gBattlersCount
|
|
_080168A0: .4byte gUnknown_2023E8A
|
|
thumb_func_end sub_8016748
|
|
|
|
thumb_func_start sub_80168A4
|
|
sub_80168A4: @ 80168A4
|
|
push {r4-r6,lr}
|
|
ldr r4, _080168F4 @ =sBattler_AI
|
|
ldr r1, _080168F8 @ =gUnknown_2023BDE
|
|
ldr r5, _080168FC @ =gUnknown_2023BE2
|
|
ldrb r0, [r5]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r4]
|
|
ldr r0, _08016900 @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0801694C
|
|
ldr r0, _08016904 @ =gBattlersCount
|
|
ldrb r1, [r0]
|
|
strb r1, [r5]
|
|
ldr r2, _08016908 @ =gActiveBattler
|
|
movs r0, 0
|
|
strb r0, [r2]
|
|
lsls r1, 24
|
|
cmp r1, 0
|
|
beq _08016938
|
|
adds r4, r2, 0
|
|
ldr r6, _0801690C @ =gUnknown_2023D7C
|
|
ldr r5, _08016910 @ =gUnknown_2023E8A
|
|
_080168D8:
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08016914
|
|
ldrb r0, [r4]
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x3
|
|
bne _08016926
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
b _08016922
|
|
.align 2, 0
|
|
_080168F4: .4byte sBattler_AI
|
|
_080168F8: .4byte gUnknown_2023BDE
|
|
_080168FC: .4byte gUnknown_2023BE2
|
|
_08016900: .4byte gBattleTypeFlags
|
|
_08016904: .4byte gBattlersCount
|
|
_08016908: .4byte gActiveBattler
|
|
_0801690C: .4byte gUnknown_2023D7C
|
|
_08016910: .4byte gUnknown_2023E8A
|
|
_08016914:
|
|
ldrb r0, [r4]
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x3
|
|
bne _08016926
|
|
ldrb r0, [r5]
|
|
movs r1, 0x1
|
|
_08016922:
|
|
orrs r0, r1
|
|
strb r0, [r5]
|
|
_08016926:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
ldr r1, _08016944 @ =gBattlersCount
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _080168D8
|
|
_08016938:
|
|
ldr r0, _08016948 @ =gUnknown_2023E8A
|
|
ldrb r1, [r0]
|
|
movs r2, 0x80
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _080169D8
|
|
.align 2, 0
|
|
_08016944: .4byte gBattlersCount
|
|
_08016948: .4byte gUnknown_2023E8A
|
|
_0801694C:
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0801698C
|
|
ldrb r0, [r4]
|
|
bl sub_8016748
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080169D8
|
|
ldrb r0, [r4]
|
|
bl ClearFuryCutterDestinyBondGrudge
|
|
ldr r1, _0801697C @ =gUnknown_2023E82
|
|
movs r0, 0x3
|
|
strb r0, [r1, 0x5]
|
|
ldr r1, _08016980 @ =gUnknown_2023D74
|
|
ldr r0, _08016984 @ =gUnknown_81D893A
|
|
str r0, [r1]
|
|
ldr r1, _08016988 @ =gUnknown_2023BE3
|
|
movs r0, 0xA
|
|
b _080169D6
|
|
.align 2, 0
|
|
_0801697C: .4byte gUnknown_2023E82
|
|
_08016980: .4byte gUnknown_2023D74
|
|
_08016984: .4byte gUnknown_81D893A
|
|
_08016988: .4byte gUnknown_2023BE3
|
|
_0801698C:
|
|
ldr r1, _080169B4 @ =gBattleMons
|
|
ldrb r2, [r4]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ldr r1, _080169B8 @ =0x0400e000
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080169CC
|
|
ldr r1, _080169BC @ =gUnknown_2023E82
|
|
movs r0, 0x4
|
|
strb r0, [r1, 0x5]
|
|
ldr r1, _080169C0 @ =gUnknown_2023D74
|
|
ldr r0, _080169C4 @ =gUnknown_81D893A
|
|
str r0, [r1]
|
|
ldr r1, _080169C8 @ =gUnknown_2023BE3
|
|
movs r0, 0xA
|
|
b _080169D6
|
|
.align 2, 0
|
|
_080169B4: .4byte gBattleMons
|
|
_080169B8: .4byte 0x0400e000
|
|
_080169BC: .4byte gUnknown_2023E82
|
|
_080169C0: .4byte gUnknown_2023D74
|
|
_080169C4: .4byte gUnknown_81D893A
|
|
_080169C8: .4byte gUnknown_2023BE3
|
|
_080169CC:
|
|
ldr r0, _080169E0 @ =gBattlersCount
|
|
ldrb r0, [r0]
|
|
strb r0, [r5]
|
|
ldr r1, _080169E4 @ =gUnknown_2023E8A
|
|
movs r0, 0x6
|
|
_080169D6:
|
|
strb r0, [r1]
|
|
_080169D8:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080169E0: .4byte gBattlersCount
|
|
_080169E4: .4byte gUnknown_2023E8A
|
|
thumb_func_end sub_80168A4
|
|
|
|
thumb_func_start sub_80169E8
|
|
sub_80169E8: @ 80169E8
|
|
push {r4,r5,lr}
|
|
ldr r2, _08016A44 @ =sBattler_AI
|
|
ldr r1, _08016A48 @ =gUnknown_2023BDE
|
|
ldr r0, _08016A4C @ =gUnknown_2023BE2
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
ldr r0, _08016A50 @ =gUnknown_2022974
|
|
movs r5, 0
|
|
strh r5, [r0]
|
|
ldr r0, _08016A54 @ =gUnknown_2022976
|
|
strh r5, [r0]
|
|
ldr r4, _08016A58 @ =gBattleStruct
|
|
ldr r1, [r4]
|
|
adds r2, r1, 0
|
|
adds r2, 0x79
|
|
ldrb r0, [r2]
|
|
cmp r0, 0
|
|
beq _08016A74
|
|
subs r0, 0x1
|
|
strb r0, [r2]
|
|
ldr r0, [r4]
|
|
adds r0, 0x79
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08016A68
|
|
ldr r0, _08016A5C @ =gEnemyParty
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
ldr r4, [r4]
|
|
adds r4, 0x7C
|
|
ldr r2, _08016A60 @ =gBaseStats
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrb r1, [r1, 0x8]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _08016A64 @ =0x000004fb
|
|
bl __divsi3
|
|
strb r0, [r4]
|
|
b _08016A98
|
|
.align 2, 0
|
|
_08016A44: .4byte sBattler_AI
|
|
_08016A48: .4byte gUnknown_2023BDE
|
|
_08016A4C: .4byte gUnknown_2023BE2
|
|
_08016A50: .4byte gUnknown_2022974
|
|
_08016A54: .4byte gUnknown_2022976
|
|
_08016A58: .4byte gBattleStruct
|
|
_08016A5C: .4byte gEnemyParty
|
|
_08016A60: .4byte gBaseStats
|
|
_08016A64: .4byte 0x000004fb
|
|
_08016A68:
|
|
ldr r1, _08016A70 @ =gUnknown_2023E82
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x5]
|
|
b _08016A9C
|
|
.align 2, 0
|
|
_08016A70: .4byte gUnknown_2023E82
|
|
_08016A74:
|
|
adds r1, 0x7A
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _08016A98
|
|
subs r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r0, [r4]
|
|
adds r0, 0x7A
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08016A98
|
|
ldr r1, _08016A94 @ =gUnknown_2023E82
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x5]
|
|
b _08016A9C
|
|
.align 2, 0
|
|
_08016A94: .4byte gUnknown_2023E82
|
|
_08016A98:
|
|
ldr r0, _08016AB0 @ =gUnknown_2023E82
|
|
strb r5, [r0, 0x5]
|
|
_08016A9C:
|
|
ldr r1, _08016AB4 @ =gUnknown_2023D74
|
|
ldr r0, _08016AB8 @ =gUnknown_81D9A04
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
ldr r1, _08016ABC @ =gUnknown_2023BE3
|
|
movs r0, 0xA
|
|
strb r0, [r1]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08016AB0: .4byte gUnknown_2023E82
|
|
_08016AB4: .4byte gUnknown_2023D74
|
|
_08016AB8: .4byte gUnknown_81D9A04
|
|
_08016ABC: .4byte gUnknown_2023BE3
|
|
thumb_func_end sub_80169E8
|
|
|
|
thumb_func_start sub_8016AC0
|
|
sub_8016AC0: @ 8016AC0
|
|
ldr r2, _08016AF8 @ =sBattler_AI
|
|
ldr r1, _08016AFC @ =gUnknown_2023BDE
|
|
ldr r0, _08016B00 @ =gUnknown_2023BE2
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
ldr r0, _08016B04 @ =gUnknown_2022974
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, _08016B08 @ =gUnknown_2022976
|
|
strh r1, [r0]
|
|
ldr r1, _08016B0C @ =gUnknown_2039994
|
|
ldrb r0, [r1]
|
|
subs r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r1, _08016B10 @ =gUnknown_2023D68
|
|
movs r0, 0x5
|
|
strh r0, [r1]
|
|
ldr r1, _08016B14 @ =gUnknown_2023D74
|
|
ldr r0, _08016B18 @ =gUnknown_81D99B0
|
|
ldr r0, [r0, 0x14]
|
|
str r0, [r1]
|
|
ldr r1, _08016B1C @ =gUnknown_2023BE3
|
|
movs r0, 0xA
|
|
strb r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_08016AF8: .4byte sBattler_AI
|
|
_08016AFC: .4byte gUnknown_2023BDE
|
|
_08016B00: .4byte gUnknown_2023BE2
|
|
_08016B04: .4byte gUnknown_2022974
|
|
_08016B08: .4byte gUnknown_2022976
|
|
_08016B0C: .4byte gUnknown_2039994
|
|
_08016B10: .4byte gUnknown_2023D68
|
|
_08016B14: .4byte gUnknown_2023D74
|
|
_08016B18: .4byte gUnknown_81D99B0
|
|
_08016B1C: .4byte gUnknown_2023BE3
|
|
thumb_func_end sub_8016AC0
|
|
|
|
thumb_func_start sub_8016B20
|
|
sub_8016B20: @ 8016B20
|
|
push {r4-r7,lr}
|
|
ldr r2, _08016B9C @ =sBattler_AI
|
|
ldr r1, _08016BA0 @ =gUnknown_2023BDE
|
|
ldr r0, _08016BA4 @ =gUnknown_2023BE2
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
ldr r0, _08016BA8 @ =gUnknown_2022974
|
|
movs r7, 0
|
|
strh r7, [r0]
|
|
ldr r0, _08016BAC @ =gUnknown_2022976
|
|
strh r7, [r0]
|
|
bl Random
|
|
ldr r6, _08016BB0 @ =gBattleStruct
|
|
ldr r5, [r6]
|
|
adds r5, 0x7A
|
|
ldrb r4, [r5]
|
|
adds r4, 0x2
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x5
|
|
bl __umodsi3
|
|
adds r0, r4
|
|
strb r0, [r5]
|
|
ldr r0, [r6]
|
|
adds r1, r0, 0
|
|
adds r1, 0x7A
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x6
|
|
bls _08016B66
|
|
movs r0, 0x6
|
|
strb r0, [r1]
|
|
_08016B66:
|
|
ldr r0, [r6]
|
|
adds r0, 0x79
|
|
strb r7, [r0]
|
|
ldr r1, [r6]
|
|
adds r1, 0x7C
|
|
ldrb r0, [r1]
|
|
lsrs r0, 1
|
|
strb r0, [r1]
|
|
ldr r0, [r6]
|
|
adds r1, r0, 0
|
|
adds r1, 0x7C
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x2
|
|
bhi _08016B86
|
|
movs r0, 0x3
|
|
strb r0, [r1]
|
|
_08016B86:
|
|
ldr r1, _08016BB4 @ =gUnknown_2023D74
|
|
ldr r0, _08016BB8 @ =gUnknown_81D9A04
|
|
ldr r0, [r0, 0x8]
|
|
str r0, [r1]
|
|
ldr r1, _08016BBC @ =gUnknown_2023BE3
|
|
movs r0, 0xA
|
|
strb r0, [r1]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08016B9C: .4byte sBattler_AI
|
|
_08016BA0: .4byte gUnknown_2023BDE
|
|
_08016BA4: .4byte gUnknown_2023BE2
|
|
_08016BA8: .4byte gUnknown_2022974
|
|
_08016BAC: .4byte gUnknown_2022976
|
|
_08016BB0: .4byte gBattleStruct
|
|
_08016BB4: .4byte gUnknown_2023D74
|
|
_08016BB8: .4byte gUnknown_81D9A04
|
|
_08016BBC: .4byte gUnknown_2023BE3
|
|
thumb_func_end sub_8016B20
|
|
|
|
thumb_func_start sub_8016BC0
|
|
sub_8016BC0: @ 8016BC0
|
|
push {r4-r7,lr}
|
|
ldr r2, _08016C3C @ =sBattler_AI
|
|
ldr r1, _08016C40 @ =gUnknown_2023BDE
|
|
ldr r0, _08016C44 @ =gUnknown_2023BE2
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
ldr r0, _08016C48 @ =gUnknown_2022974
|
|
movs r7, 0
|
|
strh r7, [r0]
|
|
ldr r0, _08016C4C @ =gUnknown_2022976
|
|
strh r7, [r0]
|
|
bl Random
|
|
ldr r6, _08016C50 @ =gBattleStruct
|
|
ldr r5, [r6]
|
|
adds r5, 0x79
|
|
ldrb r4, [r5]
|
|
adds r4, 0x2
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x5
|
|
bl __umodsi3
|
|
adds r0, r4
|
|
strb r0, [r5]
|
|
ldr r0, [r6]
|
|
adds r1, r0, 0
|
|
adds r1, 0x79
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x6
|
|
bls _08016C06
|
|
movs r0, 0x6
|
|
strb r0, [r1]
|
|
_08016C06:
|
|
ldr r0, [r6]
|
|
adds r0, 0x7A
|
|
strb r7, [r0]
|
|
ldr r1, [r6]
|
|
adds r1, 0x7C
|
|
ldrb r0, [r1]
|
|
lsls r0, 1
|
|
strb r0, [r1]
|
|
ldr r0, [r6]
|
|
adds r1, r0, 0
|
|
adds r1, 0x7C
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x14
|
|
bls _08016C26
|
|
movs r0, 0x14
|
|
strb r0, [r1]
|
|
_08016C26:
|
|
ldr r1, _08016C54 @ =gUnknown_2023D74
|
|
ldr r0, _08016C58 @ =gUnknown_81D9A04
|
|
ldr r0, [r0, 0x4]
|
|
str r0, [r1]
|
|
ldr r1, _08016C5C @ =gUnknown_2023BE3
|
|
movs r0, 0xA
|
|
strb r0, [r1]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08016C3C: .4byte sBattler_AI
|
|
_08016C40: .4byte gUnknown_2023BDE
|
|
_08016C44: .4byte gUnknown_2023BE2
|
|
_08016C48: .4byte gUnknown_2022974
|
|
_08016C4C: .4byte gUnknown_2022976
|
|
_08016C50: .4byte gBattleStruct
|
|
_08016C54: .4byte gUnknown_2023D74
|
|
_08016C58: .4byte gUnknown_81D9A04
|
|
_08016C5C: .4byte gUnknown_2023BE3
|
|
thumb_func_end sub_8016BC0
|
|
|
|
thumb_func_start HandleAction_SafriZoneRun
|
|
HandleAction_SafriZoneRun: @ 8016C60
|
|
push {r4,lr}
|
|
ldr r2, _08016C88 @ =sBattler_AI
|
|
ldr r1, _08016C8C @ =gUnknown_2023BDE
|
|
ldr r4, _08016C90 @ =gUnknown_2023BE2
|
|
ldrb r0, [r4]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
movs r0, 0x11
|
|
bl PlaySE
|
|
ldr r0, _08016C94 @ =gBattlersCount
|
|
ldrb r0, [r0]
|
|
strb r0, [r4]
|
|
ldr r1, _08016C98 @ =gUnknown_2023E8A
|
|
movs r0, 0x4
|
|
strb r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08016C88: .4byte sBattler_AI
|
|
_08016C8C: .4byte gUnknown_2023BDE
|
|
_08016C90: .4byte gUnknown_2023BE2
|
|
_08016C94: .4byte gBattlersCount
|
|
_08016C98: .4byte gUnknown_2023E8A
|
|
thumb_func_end HandleAction_SafriZoneRun
|
|
|
|
thumb_func_start HandleAction_Action9
|
|
HandleAction_Action9: @ 8016C9C
|
|
ldr r3, _08016CE8 @ =sBattler_AI
|
|
ldr r1, _08016CEC @ =gUnknown_2023BDE
|
|
ldr r0, _08016CF0 @ =gUnknown_2023BE2
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r2, [r0]
|
|
strb r2, [r3]
|
|
ldr r0, _08016CF4 @ =gUnknown_2022974
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, _08016CF8 @ =gUnknown_2022976
|
|
strh r1, [r0]
|
|
ldr r1, _08016CFC @ =gBattleTextBuff1
|
|
movs r0, 0xFD
|
|
strb r0, [r1]
|
|
movs r0, 0x7
|
|
strb r0, [r1, 0x1]
|
|
strb r2, [r1, 0x2]
|
|
ldr r2, _08016D00 @ =gBattlerPartyIndexes
|
|
ldrb r0, [r3]
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
strb r0, [r1, 0x3]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x4]
|
|
ldr r1, _08016D04 @ =gUnknown_2023D74
|
|
ldr r0, _08016D08 @ =gUnknown_81D9A04
|
|
ldr r0, [r0, 0xC]
|
|
str r0, [r1]
|
|
ldr r1, _08016D0C @ =gUnknown_2023BE3
|
|
movs r0, 0xA
|
|
strb r0, [r1]
|
|
ldr r1, _08016D10 @ =gUnknown_2023BDA
|
|
movs r0, 0xC
|
|
strb r0, [r1, 0x1]
|
|
bx lr
|
|
.align 2, 0
|
|
_08016CE8: .4byte sBattler_AI
|
|
_08016CEC: .4byte gUnknown_2023BDE
|
|
_08016CF0: .4byte gUnknown_2023BE2
|
|
_08016CF4: .4byte gUnknown_2022974
|
|
_08016CF8: .4byte gUnknown_2022976
|
|
_08016CFC: .4byte gBattleTextBuff1
|
|
_08016D00: .4byte gBattlerPartyIndexes
|
|
_08016D04: .4byte gUnknown_2023D74
|
|
_08016D08: .4byte gUnknown_81D9A04
|
|
_08016D0C: .4byte gUnknown_2023BE3
|
|
_08016D10: .4byte gUnknown_2023BDA
|
|
thumb_func_end HandleAction_Action9
|
|
|
|
thumb_func_start HandleAction_Action11
|
|
HandleAction_Action11: @ 8016D14
|
|
push {lr}
|
|
bl HandleFaintedMonActions
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _08016D30
|
|
ldr r0, _08016D34 @ =gBattleStruct
|
|
ldr r0, [r0]
|
|
adds r0, 0x4D
|
|
strb r1, [r0]
|
|
ldr r1, _08016D38 @ =gUnknown_2023BE3
|
|
movs r0, 0xC
|
|
strb r0, [r1]
|
|
_08016D30:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08016D34: .4byte gBattleStruct
|
|
_08016D38: .4byte gUnknown_2023BE3
|
|
thumb_func_end HandleAction_Action11
|
|
|
|
thumb_func_start HandleAction_NothingIsFainted
|
|
HandleAction_NothingIsFainted: @ 8016D3C
|
|
ldr r1, _08016D5C @ =gUnknown_2023BE2
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r3, _08016D60 @ =gUnknown_2023BE3
|
|
ldr r2, _08016D64 @ =gUnknown_2023BDA
|
|
ldrb r0, [r1]
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
strb r0, [r3]
|
|
ldr r2, _08016D68 @ =gUnknown_2023DD0
|
|
ldr r0, [r2]
|
|
ldr r1, _08016D6C @ =0xf1e892af
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
bx lr
|
|
.align 2, 0
|
|
_08016D5C: .4byte gUnknown_2023BE2
|
|
_08016D60: .4byte gUnknown_2023BE3
|
|
_08016D64: .4byte gUnknown_2023BDA
|
|
_08016D68: .4byte gUnknown_2023DD0
|
|
_08016D6C: .4byte 0xf1e892af
|
|
thumb_func_end HandleAction_NothingIsFainted
|
|
|
|
thumb_func_start HandleAction_ActionFinished
|
|
HandleAction_ActionFinished: @ 8016D70
|
|
push {r4,r5,lr}
|
|
ldr r1, _08016DE4 @ =gUnknown_2023BE2
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r3, _08016DE8 @ =gUnknown_2023BE3
|
|
ldr r2, _08016DEC @ =gUnknown_2023BDA
|
|
ldrb r0, [r1]
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
strb r0, [r3]
|
|
bl SpecialStatusesClear
|
|
ldr r2, _08016DF0 @ =gUnknown_2023DD0
|
|
ldr r0, [r2]
|
|
ldr r1, _08016DF4 @ =0xf1e892af
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
ldr r0, _08016DF8 @ =gCurrentMove
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, _08016DFC @ =gBattleMoveDamage
|
|
movs r4, 0
|
|
str r4, [r0]
|
|
ldr r0, _08016E00 @ =gMoveResultFlags
|
|
strb r1, [r0]
|
|
ldr r5, _08016E04 @ =gBattleScripting
|
|
strb r1, [r5, 0x18]
|
|
strb r1, [r5, 0x19]
|
|
ldr r2, _08016E08 @ =gUnknown_2023DA0
|
|
ldr r3, _08016E0C @ =sBattler_AI
|
|
ldrb r0, [r3]
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
strh r4, [r0]
|
|
ldr r2, _08016E10 @ =gUnknown_2023DA8
|
|
ldrb r0, [r3]
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
strh r4, [r0]
|
|
ldr r0, _08016E14 @ =gBattleStruct
|
|
ldr r0, [r0]
|
|
strb r1, [r0, 0x13]
|
|
ldr r0, _08016E18 @ =gDynamicBasePower
|
|
strh r4, [r0]
|
|
strb r1, [r5, 0x14]
|
|
ldr r0, _08016E1C @ =gUnknown_2023E82
|
|
strb r1, [r0, 0x3]
|
|
strb r1, [r0, 0x4]
|
|
strb r1, [r5, 0x16]
|
|
ldr r0, _08016E20 @ =gBattleResources
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x8]
|
|
adds r0, 0x20
|
|
strb r1, [r0]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08016DE4: .4byte gUnknown_2023BE2
|
|
_08016DE8: .4byte gUnknown_2023BE3
|
|
_08016DEC: .4byte gUnknown_2023BDA
|
|
_08016DF0: .4byte gUnknown_2023DD0
|
|
_08016DF4: .4byte 0xf1e892af
|
|
_08016DF8: .4byte gCurrentMove
|
|
_08016DFC: .4byte gBattleMoveDamage
|
|
_08016E00: .4byte gMoveResultFlags
|
|
_08016E04: .4byte gBattleScripting
|
|
_08016E08: .4byte gUnknown_2023DA0
|
|
_08016E0C: .4byte sBattler_AI
|
|
_08016E10: .4byte gUnknown_2023DA8
|
|
_08016E14: .4byte gBattleStruct
|
|
_08016E18: .4byte gDynamicBasePower
|
|
_08016E1C: .4byte gUnknown_2023E82
|
|
_08016E20: .4byte gBattleResources
|
|
thumb_func_end HandleAction_ActionFinished
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|