mirror of
https://github.com/pret/pmd-red.git
synced 2024-11-27 06:50:30 +00:00
2598 lines
39 KiB
ArmAsm
2598 lines
39 KiB
ArmAsm
#include "asm/constants/gba_constants.inc"
|
|
#include "asm/macros.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_806890C
|
|
sub_806890C:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x64
|
|
movs r0, 0
|
|
mov r8, r0
|
|
mov r10, r0
|
|
ldr r6, _08068A60
|
|
add r5, sp, 0x8
|
|
_08068922:
|
|
movs r0, 0x58
|
|
mov r1, r10
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
ldr r2, [r6]
|
|
adds r7, r2, r0
|
|
ldrh r1, [r7]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08068A1C
|
|
lsrs r0, r1, 1
|
|
movs r3, 0x1
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _08068A1C
|
|
movs r0, 0x64
|
|
mov r4, r8
|
|
muls r4, r0
|
|
ldr r0, _08068A64
|
|
adds r0, r4
|
|
mov r9, r0
|
|
adds r0, r2, r0
|
|
mov r1, r10
|
|
bl xxx_pokemonstruct_index_to_pokemon2_808DE30
|
|
ldr r0, _08068A68
|
|
ldr r0, [r0]
|
|
ldr r1, _08068A6C
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl IsLevelResetTo1
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08068A06
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
str r0, [sp, 0x60]
|
|
movs r2, 0x8
|
|
ldrsh r1, [r7, r2]
|
|
add r0, sp, 0x60
|
|
str r0, [sp]
|
|
movs r3, 0
|
|
str r3, [sp, 0x4]
|
|
add r0, sp, 0x8
|
|
movs r2, 0
|
|
bl sub_808CFD0
|
|
ldr r0, [r6]
|
|
adds r0, r4
|
|
ldrb r1, [r5, 0x3]
|
|
ldr r2, _08068A70
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
ldr r1, [r6]
|
|
adds r1, r4
|
|
ldrh r2, [r5, 0x14]
|
|
movs r3, 0x8E
|
|
lsls r3, 8
|
|
adds r0, r1, r3
|
|
strh r2, [r0]
|
|
ldrh r2, [r5, 0x16]
|
|
adds r3, 0x8
|
|
adds r0, r1, r3
|
|
strh r2, [r0]
|
|
ldrh r2, [r5, 0x16]
|
|
adds r3, 0x2
|
|
adds r0, r1, r3
|
|
strh r2, [r0]
|
|
ldrb r0, [r5, 0x18]
|
|
ldr r2, _08068A74
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
ldr r0, [r6]
|
|
adds r0, r4
|
|
ldrb r1, [r5, 0x19]
|
|
adds r3, 0x3
|
|
adds r0, r3
|
|
strb r1, [r0]
|
|
ldr r0, [r6]
|
|
adds r0, r4
|
|
ldrb r1, [r5, 0x1A]
|
|
adds r2, 0x2
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
ldr r0, [r6]
|
|
adds r0, r4
|
|
ldrb r1, [r5, 0x1B]
|
|
adds r3, 0x2
|
|
adds r0, r3
|
|
strb r1, [r0]
|
|
ldr r2, [r6]
|
|
ldr r1, _08068A78
|
|
adds r0, r2, r1
|
|
adds r0, r4
|
|
ldr r1, [sp, 0x24]
|
|
str r1, [r0]
|
|
adds r2, r4
|
|
adds r3, 0x35
|
|
adds r1, r2, r3
|
|
ldr r0, [sp, 0x28]
|
|
str r0, [r1]
|
|
add r0, sp, 0x2C
|
|
ldrb r0, [r0]
|
|
ldr r1, _08068A7C
|
|
adds r2, r1
|
|
strb r0, [r2]
|
|
ldr r0, [r6]
|
|
add r0, r9
|
|
adds r0, 0x1C
|
|
add r1, sp, 0x34
|
|
bl CopyAndResetMoves
|
|
_08068A06:
|
|
ldr r0, [r6]
|
|
adds r0, r4
|
|
ldr r2, _08068A80
|
|
adds r0, r2
|
|
mov r3, r8
|
|
strh r3, [r0]
|
|
movs r0, 0x1
|
|
add r8, r0
|
|
mov r1, r8
|
|
cmp r1, 0x4
|
|
beq _08068A2A
|
|
_08068A1C:
|
|
movs r2, 0x1
|
|
add r10, r2
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
cmp r10, r0
|
|
bgt _08068A2A
|
|
b _08068922
|
|
_08068A2A:
|
|
mov r3, r8
|
|
cmp r3, 0x3
|
|
bgt _08068A50
|
|
ldr r4, _08068A60
|
|
ldr r3, _08068A64
|
|
movs r2, 0
|
|
movs r0, 0x64
|
|
mov r1, r8
|
|
muls r1, r0
|
|
_08068A3C:
|
|
ldr r0, [r4]
|
|
adds r0, r1
|
|
adds r0, r3
|
|
strh r2, [r0]
|
|
adds r1, 0x64
|
|
movs r0, 0x1
|
|
add r8, r0
|
|
mov r0, r8
|
|
cmp r0, 0x3
|
|
ble _08068A3C
|
|
_08068A50:
|
|
add sp, 0x64
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08068A60: .4byte gRecruitedPokemonRef
|
|
_08068A64: .4byte 0x00008df8
|
|
_08068A68: .4byte gDungeon
|
|
_08068A6C: .4byte 0x00000644
|
|
_08068A70: .4byte 0x00008dfb
|
|
_08068A74: .4byte 0x00008e0c
|
|
_08068A78: .4byte 0x00008e10
|
|
_08068A7C: .4byte 0x00008e48
|
|
_08068A80: .4byte 0x00008e04
|
|
thumb_func_end sub_806890C
|
|
|
|
thumb_func_start sub_8068A84
|
|
sub_8068A84:
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
movs r4, 0
|
|
movs r5, 0
|
|
ldr r7, _08068AE0
|
|
_08068A8E:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, _08068AE4
|
|
adds r0, r1
|
|
ldr r1, [r7]
|
|
adds r2, r1, r0
|
|
ldrb r1, [r2]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08068AB2
|
|
movs r1, 0xE
|
|
ldrsh r0, [r2, r1]
|
|
bl GetBodySize
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r4, r0
|
|
_08068AB2:
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _08068A8E
|
|
movs r1, 0x8
|
|
ldrsh r0, [r6, r1]
|
|
bl GetBodySize
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r4, r0
|
|
cmp r4, 0x6
|
|
ble _08068B04
|
|
ldr r0, _08068AE8
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl PrintColoredPokeNameToBuffer
|
|
ldrb r0, [r6, 0x4]
|
|
cmp r0, 0x4A
|
|
bne _08068AF0
|
|
ldr r0, _08068AEC
|
|
b _08068BB2
|
|
.align 2, 0
|
|
_08068AE0: .4byte gRecruitedPokemonRef
|
|
_08068AE4: .4byte 0x00008df8
|
|
_08068AE8: .4byte gAvailablePokemonNames
|
|
_08068AEC: .4byte gUnknown_80FE0F4
|
|
_08068AF0:
|
|
cmp r0, 0x47
|
|
bne _08068AFC
|
|
ldr r0, _08068AF8
|
|
b _08068BB2
|
|
.align 2, 0
|
|
_08068AF8: .4byte gUnknown_80FE0F8
|
|
_08068AFC:
|
|
ldr r0, _08068B00
|
|
b _08068BB2
|
|
.align 2, 0
|
|
_08068B00: .4byte gUnknown_80FE0AC
|
|
_08068B04:
|
|
movs r5, 0
|
|
ldr r2, _08068B6C
|
|
_08068B08:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, _08068B70
|
|
adds r0, r1
|
|
ldr r1, [r2]
|
|
adds r4, r1, r0
|
|
ldrb r1, [r4]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08068B80
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
ldr r2, _08068B74
|
|
bl xxx_pokemonstruct_to_pokemon2_808DE50
|
|
ldrh r0, [r4]
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
orrs r1, r0
|
|
strh r1, [r4]
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x19
|
|
bgt _08068B3E
|
|
movs r0, 0x1A
|
|
strh r0, [r4, 0x8]
|
|
_08068B3E:
|
|
ldrh r0, [r4]
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
strh r0, [r4]
|
|
strh r5, [r4, 0xC]
|
|
adds r0, r4, 0
|
|
adds r0, 0x40
|
|
strb r2, [r0, 0x2]
|
|
strb r2, [r0, 0x1]
|
|
strb r2, [r0]
|
|
ldr r0, _08068B78
|
|
adds r1, r6, 0
|
|
movs r2, 0x6
|
|
bl PrintColoredPokeNameToBuffer
|
|
ldrb r0, [r6, 0x4]
|
|
cmp r0, 0x4A
|
|
beq _08068BB0
|
|
cmp r0, 0x47
|
|
beq _08068BD0
|
|
ldr r0, _08068B7C
|
|
b _08068BB2
|
|
.align 2, 0
|
|
_08068B6C: .4byte gRecruitedPokemonRef
|
|
_08068B70: .4byte 0x00008df8
|
|
_08068B74: .4byte 0x000055aa
|
|
_08068B78: .4byte gAvailablePokemonNames
|
|
_08068B7C: .4byte gUnknown_80FE134
|
|
_08068B80:
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _08068B08
|
|
ldr r0, _08068B9C
|
|
adds r1, r6, 0
|
|
movs r2, 0x6
|
|
bl PrintColoredPokeNameToBuffer
|
|
ldrb r0, [r6, 0x4]
|
|
cmp r0, 0x4A
|
|
bne _08068BA4
|
|
ldr r0, _08068BA0
|
|
b _08068BB2
|
|
.align 2, 0
|
|
_08068B9C: .4byte gAvailablePokemonNames
|
|
_08068BA0: .4byte gUnknown_80FE0F4
|
|
_08068BA4:
|
|
cmp r0, 0x47
|
|
bne _08068BC4
|
|
ldr r0, _08068BAC
|
|
b _08068BB2
|
|
.align 2, 0
|
|
_08068BAC: .4byte gUnknown_80FE0F8
|
|
_08068BB0:
|
|
ldr r0, _08068BC0
|
|
_08068BB2:
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
movs r2, 0x1
|
|
bl DisplayDungeonMessage
|
|
b _08068BD0
|
|
.align 2, 0
|
|
_08068BC0: .4byte gUnknown_80FE168
|
|
_08068BC4:
|
|
ldr r0, _08068BD8
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
movs r2, 0x1
|
|
bl DisplayDungeonMessage
|
|
_08068BD0:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08068BD8: .4byte gUnknown_80FE0AC
|
|
thumb_func_end sub_8068A84
|
|
|
|
thumb_func_start sub_8068BDC
|
|
sub_8068BDC:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r4, _08068CC4
|
|
add sp, r4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x220]
|
|
movs r1, 0
|
|
mov r0, sp
|
|
adds r0, 0x39
|
|
_08068BF6:
|
|
strb r1, [r0]
|
|
subs r0, 0x1
|
|
cmp r0, sp
|
|
bge _08068BF6
|
|
movs r6, 0
|
|
ldr r0, _08068CC8
|
|
mov r8, r0
|
|
movs r7, 0x1
|
|
_08068C06:
|
|
movs r0, 0x64
|
|
muls r0, r6
|
|
ldr r1, _08068CCC
|
|
adds r0, r1
|
|
mov r2, r8
|
|
ldr r1, [r2]
|
|
adds r4, r1, r0
|
|
ldrb r1, [r4]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08068C50
|
|
movs r3, 0xA
|
|
ldrsh r0, [r4, r3]
|
|
bl sub_806A564
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0
|
|
bne _08068C50
|
|
adds r4, 0x40
|
|
ldrb r1, [r4]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08068C50
|
|
ldrb r0, [r4, 0x2]
|
|
cmp r0, 0x69
|
|
bne _08068C50
|
|
adds r0, r4, 0
|
|
bl GetMoneyValue
|
|
bl AddToTeamMoney
|
|
strb r5, [r4, 0x2]
|
|
strb r5, [r4, 0x1]
|
|
strb r5, [r4]
|
|
_08068C50:
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _08068C06
|
|
movs r6, 0
|
|
movs r5, 0x1
|
|
_08068C5A:
|
|
ldr r1, _08068CC8
|
|
movs r0, 0x64
|
|
muls r0, r6
|
|
ldr r2, _08068CCC
|
|
adds r0, r2
|
|
ldr r1, [r1]
|
|
adds r4, r1, r0
|
|
ldrb r1, [r4]
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08068CFE
|
|
movs r3, 0xA
|
|
ldrsh r0, [r4, r3]
|
|
bl sub_806A564
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08068CFE
|
|
ldr r1, _08068CD0
|
|
adds r0, r1, 0
|
|
ldrh r2, [r4, 0xE]
|
|
adds r0, r2
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x2
|
|
bhi _08068C96
|
|
movs r0, 0xBC
|
|
lsls r0, 1
|
|
strh r0, [r4, 0xE]
|
|
_08068C96:
|
|
movs r3, 0xA
|
|
ldrsh r0, [r4, r3]
|
|
bl sub_806A58C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08068CE8
|
|
ldr r0, _08068CD4
|
|
ldr r0, [r0]
|
|
ldr r1, _08068CD8
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl IsLevelResetTo1
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08068CDC
|
|
movs r2, 0xA
|
|
ldrsh r0, [r4, r2]
|
|
adds r1, r4, 0
|
|
bl sub_808DFDC
|
|
b _08068CFE
|
|
.align 2, 0
|
|
_08068CC4: .4byte 0xfffffdd8
|
|
_08068CC8: .4byte gRecruitedPokemonRef
|
|
_08068CCC: .4byte 0x00008df8
|
|
_08068CD0: .4byte 0xfffffe87
|
|
_08068CD4: .4byte gDungeon
|
|
_08068CD8: .4byte 0x00000644
|
|
_08068CDC:
|
|
movs r3, 0xA
|
|
ldrsh r0, [r4, r3]
|
|
adds r1, r4, 0
|
|
bl xxx_pokemon2_to_pokemonstruct_index_808DF2C
|
|
b _08068CFE
|
|
_08068CE8:
|
|
ldr r0, [sp, 0x220]
|
|
cmp r0, 0
|
|
beq _08068CFE
|
|
movs r1, 0xE
|
|
ldrsh r0, [r4, r1]
|
|
bl GetFriendArea
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add r0, sp
|
|
strb r5, [r0]
|
|
_08068CFE:
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _08068C5A
|
|
movs r1, 0
|
|
_08068D06:
|
|
lsls r0, r1, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
mov r0, sp
|
|
add r0, r8
|
|
ldrb r0, [r0]
|
|
adds r1, 0x1
|
|
str r1, [sp, 0x224]
|
|
cmp r0, 0
|
|
bne _08068D1C
|
|
b _08068F08
|
|
_08068D1C:
|
|
mov r0, r8
|
|
add r1, sp, 0x1F0
|
|
movs r2, 0x1
|
|
movs r3, 0x1
|
|
bl sub_8092404
|
|
mov r0, r8
|
|
add r1, sp, 0x214
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_8092638
|
|
movs r7, 0
|
|
add r1, sp, 0x1F0
|
|
ldrh r0, [r1]
|
|
ldr r2, _08068E10
|
|
cmp r0, r2
|
|
beq _08068D60
|
|
ldr r0, _08068E14
|
|
ldr r3, [r0]
|
|
adds r5, r2, 0
|
|
add r2, sp, 0x3C
|
|
movs r4, 0x58
|
|
_08068D4A:
|
|
ldrh r0, [r1]
|
|
muls r0, r4
|
|
adds r0, r3, r0
|
|
stm r2!, {r0}
|
|
adds r1, 0x2
|
|
adds r7, 0x1
|
|
cmp r7, 0x14
|
|
bgt _08068D60
|
|
ldrh r0, [r1]
|
|
cmp r0, r5
|
|
bne _08068D4A
|
|
_08068D60:
|
|
movs r6, 0
|
|
ldr r2, _08068E14
|
|
mov r10, r2
|
|
movs r3, 0
|
|
mov r9, r3
|
|
_08068D6A:
|
|
movs r0, 0x64
|
|
muls r0, r6
|
|
ldr r1, _08068E18
|
|
adds r0, r1
|
|
mov r2, r10
|
|
ldr r1, [r2]
|
|
adds r5, r1, r0
|
|
ldrb r1, [r5]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08068DD6
|
|
movs r3, 0xA
|
|
ldrsh r0, [r5, r3]
|
|
bl sub_806A5A4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08068DD6
|
|
movs r1, 0xE
|
|
ldrsh r0, [r5, r1]
|
|
bl GetFriendArea
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, r8
|
|
bne _08068DD6
|
|
ldr r2, [sp, 0x220]
|
|
cmp r2, 0
|
|
beq _08068DD6
|
|
add r4, sp, 0x3C
|
|
lsls r0, r7, 2
|
|
adds r4, r0
|
|
add r0, sp, 0x90
|
|
movs r1, 0x58
|
|
muls r1, r6
|
|
adds r0, r1
|
|
str r0, [r4]
|
|
adds r1, r5, 0
|
|
bl xxx_pokemon2_to_pokemonstruct_808DF44
|
|
ldr r2, [r4]
|
|
ldrh r0, [r2]
|
|
movs r3, 0x80
|
|
lsls r3, 7
|
|
adds r1, r3, 0
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
ldr r0, [r4]
|
|
mov r1, r9
|
|
strb r1, [r0, 0xC]
|
|
ldr r0, [r4]
|
|
strb r1, [r0, 0x10]
|
|
adds r7, 0x1
|
|
_08068DD6:
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _08068D6A
|
|
add r0, sp, 0x214
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
cmp r7, r0
|
|
bgt _08068E1C
|
|
cmp r7, 0
|
|
bgt _08068DEC
|
|
b _08068F08
|
|
_08068DEC:
|
|
add r5, sp, 0x3C
|
|
movs r3, 0x80
|
|
lsls r3, 7
|
|
adds r6, r3, 0
|
|
adds r4, r7, 0
|
|
_08068DF6:
|
|
ldr r1, [r5]
|
|
ldrh r0, [r1]
|
|
ands r0, r6
|
|
cmp r0, 0
|
|
beq _08068E06
|
|
adds r0, r1, 0
|
|
bl sub_808D1DC
|
|
_08068E06:
|
|
adds r5, 0x4
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bne _08068DF6
|
|
b _08068F08
|
|
.align 2, 0
|
|
_08068E10: .4byte 0x0000ffff
|
|
_08068E14: .4byte gRecruitedPokemonRef
|
|
_08068E18: .4byte 0x00008df8
|
|
_08068E1C:
|
|
ldr r0, _08068E78
|
|
mov r1, r8
|
|
movs r2, 0
|
|
bl WriteFriendAreaName
|
|
ldr r0, _08068E7C
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
movs r2, 0x1
|
|
bl DisplayDungeonMessage
|
|
add r4, sp, 0x3C
|
|
_08068E34:
|
|
add r0, sp, 0x214
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
subs r1, r7, r1
|
|
mov r0, r8
|
|
adds r2, r7, 0
|
|
adds r3, r4, 0
|
|
bl sub_8067A80
|
|
movs r6, 0
|
|
cmp r6, r7
|
|
bge _08068E8E
|
|
movs r5, 0x80
|
|
lsls r5, 8
|
|
adds r3, r4, 0
|
|
_08068E52:
|
|
ldr r2, [r3]
|
|
ldrh r1, [r2]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08068E86
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08068E86
|
|
ldrb r0, [r2, 0x4]
|
|
subs r0, 0x44
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _08068E80
|
|
movs r0, 0x1
|
|
b _08068E82
|
|
.align 2, 0
|
|
_08068E78: .4byte gFormatItems
|
|
_08068E7C: .4byte gUnknown_80FE1A4
|
|
_08068E80:
|
|
movs r0, 0
|
|
_08068E82:
|
|
cmp r0, 0
|
|
bne _08068E8E
|
|
_08068E86:
|
|
adds r3, 0x4
|
|
adds r6, 0x1
|
|
cmp r6, r7
|
|
blt _08068E52
|
|
_08068E8E:
|
|
cmp r6, r7
|
|
beq _08068EA2
|
|
ldr r0, _08068F24
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
movs r2, 0x1
|
|
bl DisplayDungeonYesNoMessage
|
|
cmp r0, 0x1
|
|
bne _08068E34
|
|
_08068EA2:
|
|
cmp r7, 0
|
|
ble _08068ED4
|
|
movs r3, 0x80
|
|
lsls r3, 8
|
|
mov r9, r3
|
|
adds r3, r4, 0
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
movs r5, 0
|
|
adds r6, r7, 0
|
|
_08068EB6:
|
|
ldr r2, [r3]
|
|
ldrh r1, [r2]
|
|
mov r0, r8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08068ECC
|
|
mov r0, r9
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08068ECC
|
|
strh r5, [r2]
|
|
_08068ECC:
|
|
adds r3, 0x4
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bne _08068EB6
|
|
_08068ED4:
|
|
cmp r7, 0
|
|
ble _08068F08
|
|
movs r1, 0x80
|
|
lsls r1, 7
|
|
adds r5, r1, 0
|
|
adds r6, r7, 0
|
|
_08068EE0:
|
|
ldr r2, [r4]
|
|
ldrh r1, [r2]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08068F00
|
|
adds r0, r1, 0
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _08068F00
|
|
adds r0, r2, 0
|
|
bl sub_808D1DC
|
|
ldr r1, [r4]
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
_08068F00:
|
|
adds r4, 0x4
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bne _08068EE0
|
|
_08068F08:
|
|
ldr r1, [sp, 0x224]
|
|
cmp r1, 0x39
|
|
bgt _08068F10
|
|
b _08068D06
|
|
_08068F10:
|
|
movs r3, 0x8A
|
|
lsls r3, 2
|
|
add sp, r3
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08068F24: .4byte gUnknown_80FE20C
|
|
thumb_func_end sub_8068BDC
|
|
|
|
thumb_func_start sub_8068F28
|
|
sub_8068F28:
|
|
push {r4-r7,lr}
|
|
movs r6, 0
|
|
ldr r7, _08068F5C
|
|
_08068F2E:
|
|
movs r0, 0x64
|
|
muls r0, r6
|
|
ldr r1, _08068F60
|
|
adds r0, r1
|
|
ldr r1, [r7]
|
|
adds r4, r1, r0
|
|
ldrb r1, [r4]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08068F74
|
|
movs r1, 0xA
|
|
ldrsh r0, [r4, r1]
|
|
bl sub_806A564
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0
|
|
beq _08068F64
|
|
movs r0, 0
|
|
strh r0, [r4]
|
|
b _08068F74
|
|
.align 2, 0
|
|
_08068F5C: .4byte gRecruitedPokemonRef
|
|
_08068F60: .4byte 0x00008df8
|
|
_08068F64:
|
|
movs r1, 0xA
|
|
ldrsh r0, [r4, r1]
|
|
bl sub_806A538
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08068F74
|
|
strh r5, [r4]
|
|
_08068F74:
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _08068F2E
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8068F28
|
|
|
|
thumb_func_start sub_8068F80
|
|
sub_8068F80:
|
|
push {r4,r5,lr}
|
|
bl GetLeader
|
|
adds r5, r0, 0
|
|
ldr r0, _08068FD4
|
|
ldr r4, [r0]
|
|
ldr r1, _08068FD8
|
|
adds r0, r4, r1
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r2, _08068FDC
|
|
adds r0, r4, r2
|
|
strb r1, [r0]
|
|
adds r2, 0x6
|
|
adds r0, r4, r2
|
|
strb r1, [r0]
|
|
adds r0, r4, 0
|
|
adds r0, 0xC0
|
|
str r1, [r0]
|
|
cmp r5, 0
|
|
beq _08068FCC
|
|
adds r0, r5, 0
|
|
bl GetTileAtEntitySafe
|
|
ldrh r0, [r0]
|
|
lsrs r0, 5
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
movs r2, 0xD3
|
|
lsls r2, 3
|
|
adds r1, r4, r2
|
|
strb r0, [r1]
|
|
adds r2, 0x1
|
|
adds r1, r4, r2
|
|
strb r0, [r1]
|
|
adds r0, r5, 0x4
|
|
bl sub_804AC20
|
|
_08068FCC:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08068FD4: .4byte gDungeon
|
|
_08068FD8: .4byte 0x0000066c
|
|
_08068FDC: .4byte 0x0000066d
|
|
thumb_func_end sub_8068F80
|
|
|
|
thumb_func_start sub_8068FE0
|
|
sub_8068FE0:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x84
|
|
mov r8, r0
|
|
str r2, [sp, 0x74]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
mov r9, r1
|
|
ldr r7, [r0, 0x70]
|
|
bl GetTileAtEntitySafe
|
|
adds r4, r0, 0
|
|
ldr r0, [sp, 0x74]
|
|
cmp r0, 0
|
|
bne _0806900E
|
|
mov r0, sp
|
|
bl sub_80457DC
|
|
mov r1, sp
|
|
str r1, [sp, 0x74]
|
|
_0806900E:
|
|
ldr r0, [r4, 0x10]
|
|
cmp r0, r8
|
|
bne _08069018
|
|
movs r0, 0
|
|
str r0, [r4, 0x10]
|
|
_08069018:
|
|
mov r2, r8
|
|
movs r3, 0x4
|
|
ldrsh r0, [r2, r3]
|
|
movs r3, 0x6
|
|
ldrsh r1, [r2, r3]
|
|
bl sub_80402AC
|
|
movs r5, 0
|
|
adds r6, r7, 0
|
|
adds r6, 0xC8
|
|
movs r0, 0xB0
|
|
adds r0, r7
|
|
mov r10, r0
|
|
mov r1, r8
|
|
adds r1, 0x22
|
|
str r1, [sp, 0x80]
|
|
mov r2, r8
|
|
adds r2, 0x20
|
|
str r2, [sp, 0x7C]
|
|
adds r3, r7, 0
|
|
adds r3, 0x40
|
|
str r3, [sp, 0x78]
|
|
_08069044:
|
|
ldr r0, _080690E4
|
|
ldr r0, [r0]
|
|
lsls r1, r5, 2
|
|
ldr r2, _080690E8
|
|
adds r0, r2
|
|
adds r0, r1
|
|
ldr r4, [r0]
|
|
cmp r4, 0
|
|
beq _08069072
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08069072
|
|
ldr r0, [r4, 0x70]
|
|
adds r1, r0, 0
|
|
adds r1, 0x80
|
|
ldr r0, [r1]
|
|
cmp r0, r8
|
|
bne _08069072
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
_08069072:
|
|
adds r5, 0x1
|
|
cmp r5, 0x13
|
|
ble _08069044
|
|
ldrb r0, [r6]
|
|
cmp r0, 0x2
|
|
bne _0806908A
|
|
ldr r0, _080690E4
|
|
ldr r0, [r0]
|
|
ldr r3, _080690EC
|
|
adds r0, r3
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
_0806908A:
|
|
mov r1, r10
|
|
ldrb r0, [r1]
|
|
subs r0, 0x3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _080690A2
|
|
adds r0, r7, 0
|
|
adds r0, 0x9C
|
|
ldr r0, [r0]
|
|
bl sub_8076CB4
|
|
_080690A2:
|
|
mov r0, r8
|
|
bl sub_8078084
|
|
movs r0, 0
|
|
ldr r2, [sp, 0x80]
|
|
strb r0, [r2]
|
|
ldr r3, [sp, 0x7C]
|
|
strb r0, [r3]
|
|
ldr r1, _080690F0
|
|
str r0, [r1]
|
|
ldr r1, [sp, 0x78]
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x41
|
|
bne _080690FC
|
|
ldr r3, _080690E4
|
|
ldr r2, [r3]
|
|
ldr r1, _080690F4
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
cmp r1, 0
|
|
bne _080690FC
|
|
movs r0, 0x1
|
|
strb r0, [r2, 0x10]
|
|
strh r1, [r7, 0xE]
|
|
ldr r0, [r3]
|
|
ldr r2, _080690F8
|
|
adds r0, r2
|
|
mov r1, r8
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
b _08069484
|
|
.align 2, 0
|
|
_080690E4: .4byte gDungeon
|
|
_080690E8: .4byte 0x000135cc
|
|
_080690EC: .4byte 0x000037fc
|
|
_080690F0: .4byte gLeaderPointer
|
|
_080690F4: .4byte 0x0000065c
|
|
_080690F8: .4byte 0x000005f4
|
|
_080690FC:
|
|
ldrb r0, [r7, 0x7]
|
|
cmp r0, 0
|
|
bne _08069104
|
|
b _0806928E
|
|
_08069104:
|
|
movs r0, 0x3C
|
|
movs r1, 0x49
|
|
bl sub_803E708
|
|
bl DisplayMessageLog
|
|
ldr r5, _08069198
|
|
ldr r2, [r5]
|
|
ldrb r0, [r2, 0x6]
|
|
cmp r0, 0
|
|
bne _080691C8
|
|
ldr r3, _0806919C
|
|
adds r0, r2, r3
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080691E0
|
|
movs r0, 0x87
|
|
lsls r0, 2
|
|
cmp r9, r0
|
|
beq _080691E0
|
|
adds r0, 0x6
|
|
cmp r9, r0
|
|
beq _080691E0
|
|
subs r0, 0x4
|
|
cmp r9, r0
|
|
beq _080691E0
|
|
ldr r1, _080691A0
|
|
adds r0, r2, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080691E0
|
|
ldr r6, _080691A4
|
|
adds r0, r2, r6
|
|
movs r1, 0
|
|
ldrsb r1, [r0, r1]
|
|
cmp r1, 0
|
|
blt _080691E0
|
|
adds r3, 0xA
|
|
adds r0, r2, r3
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _080691E0
|
|
cmp r1, 0
|
|
ble _080691B4
|
|
ldr r0, _080691A8
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
movs r2, 0x1
|
|
bl DisplayDungeonYesNoMessage
|
|
adds r4, r0, 0
|
|
cmp r4, 0x1
|
|
bne _080691E0
|
|
ldr r0, _080691AC
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
movs r2, 0x1
|
|
bl DisplayDungeonMessage
|
|
ldr r0, [r5]
|
|
strb r4, [r0, 0x4]
|
|
ldr r0, [r5]
|
|
strb r4, [r0, 0x6]
|
|
ldr r0, [r5]
|
|
ldr r1, _080691B0
|
|
adds r0, r1
|
|
strb r4, [r0]
|
|
ldr r1, [r5]
|
|
adds r1, r6
|
|
ldrb r0, [r1]
|
|
subs r0, 0x1
|
|
strb r0, [r1]
|
|
b _08069484
|
|
.align 2, 0
|
|
_08069198: .4byte gDungeon
|
|
_0806919C: .4byte 0x0000066e
|
|
_080691A0: .4byte 0x00003a0d
|
|
_080691A4: .4byte 0x0000067b
|
|
_080691A8: .4byte gUnknown_80FE268
|
|
_080691AC: .4byte gUnknown_80FE28C
|
|
_080691B0: .4byte 0x00000654
|
|
_080691B4:
|
|
ldr r0, _080691C4
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
movs r2, 0x1
|
|
bl DisplayDungeonMessage
|
|
b _080691E0
|
|
.align 2, 0
|
|
_080691C4: .4byte gUnknown_80FE2D0
|
|
_080691C8:
|
|
movs r1, 0x1
|
|
strb r1, [r2, 0x4]
|
|
ldr r0, [r5]
|
|
strb r1, [r0, 0x6]
|
|
ldr r0, [r5]
|
|
ldr r2, _080691DC
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
b _08069484
|
|
.align 2, 0
|
|
_080691DC: .4byte 0x00000654
|
|
_080691E0:
|
|
mov r0, r9
|
|
ldr r1, [sp, 0x74]
|
|
mov r2, r8
|
|
bl sub_8083AB0
|
|
ldr r0, _080691F8
|
|
cmp r9, r0
|
|
bne _0806928E
|
|
movs r6, 0
|
|
movs r5, 0
|
|
b _080691FE
|
|
.align 2, 0
|
|
_080691F8: .4byte 0x0000021f
|
|
_080691FC:
|
|
adds r5, 0x1
|
|
_080691FE:
|
|
cmp r5, 0x3
|
|
bgt _08069228
|
|
ldr r0, _080692C4
|
|
ldr r0, [r0]
|
|
lsls r1, r5, 2
|
|
ldr r3, _080692C8
|
|
adds r0, r3
|
|
adds r0, r1
|
|
ldr r4, [r0]
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080691FC
|
|
ldr r6, [r4, 0x70]
|
|
adds r0, r6, 0
|
|
adds r0, 0x40
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x41
|
|
bne _080691FC
|
|
_08069228:
|
|
cmp r6, 0
|
|
beq _0806928E
|
|
ldr r5, _080692CC
|
|
ldrb r0, [r6, 0xA]
|
|
movs r1, 0x64
|
|
muls r1, r0
|
|
ldr r2, _080692D0
|
|
adds r1, r2
|
|
ldr r2, [r5]
|
|
adds r4, r2, r1
|
|
adds r1, r6, 0
|
|
bl sub_806C264
|
|
movs r3, 0xA
|
|
ldrsh r0, [r4, r3]
|
|
bl sub_806A58C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0806928A
|
|
ldr r0, _080692C4
|
|
ldr r0, [r0]
|
|
ldr r1, _080692D4
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl IsLevelResetTo1
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806926E
|
|
movs r2, 0xA
|
|
ldrsh r0, [r4, r2]
|
|
adds r1, r4, 0
|
|
bl xxx_pokemon2_to_pokemonstruct_index_808DF2C
|
|
_0806926E:
|
|
bl IsMakuhitaTrainingMaze
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0
|
|
bne _0806928A
|
|
movs r3, 0xA
|
|
ldrsh r1, [r4, r3]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
ldr r1, [r5]
|
|
adds r0, r1
|
|
adds r0, 0x28
|
|
strb r2, [r0]
|
|
_0806928A:
|
|
movs r0, 0
|
|
strh r0, [r4]
|
|
_0806928E:
|
|
ldrb r0, [r7, 0x6]
|
|
cmp r0, 0
|
|
beq _080692DC
|
|
movs r5, 0
|
|
movs r1, 0xB4
|
|
lsls r1, 1
|
|
adds r0, r7, r1
|
|
movs r2, 0x98
|
|
adds r2, r7
|
|
mov r10, r2
|
|
ldrb r3, [r0]
|
|
cmp r5, r3
|
|
bge _0806930A
|
|
ldr r4, _080692D8
|
|
subs r1, 0x1
|
|
adds r2, r7, r1
|
|
movs r3, 0
|
|
adds r1, r0, 0
|
|
_080692B2:
|
|
ldrb r0, [r2]
|
|
adds r0, r5
|
|
adds r0, r4
|
|
strb r3, [r0]
|
|
adds r5, 0x1
|
|
ldrb r0, [r1]
|
|
cmp r5, r0
|
|
blt _080692B2
|
|
b _0806930A
|
|
.align 2, 0
|
|
_080692C4: .4byte gDungeon
|
|
_080692C8: .4byte 0x0001357c
|
|
_080692CC: .4byte gRecruitedPokemonRef
|
|
_080692D0: .4byte 0x00008df8
|
|
_080692D4: .4byte 0x00000644
|
|
_080692D8: .4byte gUnknown_202EE76
|
|
_080692DC:
|
|
movs r5, 0
|
|
movs r1, 0xB4
|
|
lsls r1, 1
|
|
adds r0, r7, r1
|
|
movs r2, 0x98
|
|
adds r2, r7
|
|
mov r10, r2
|
|
ldrb r3, [r0]
|
|
cmp r5, r3
|
|
bge _0806930A
|
|
ldr r4, _0806932C
|
|
subs r1, 0x1
|
|
adds r2, r7, r1
|
|
movs r3, 0
|
|
adds r1, r0, 0
|
|
_080692FA:
|
|
ldrb r0, [r2]
|
|
adds r0, r5
|
|
adds r0, r4
|
|
strb r3, [r0]
|
|
adds r5, 0x1
|
|
ldrb r0, [r1]
|
|
cmp r5, r0
|
|
blt _080692FA
|
|
_0806930A:
|
|
ldr r1, [sp, 0x78]
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x4A
|
|
bne _08069338
|
|
ldr r2, _08069330
|
|
ldr r1, [r2]
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x10]
|
|
ldr r0, [r2]
|
|
ldr r2, _08069334
|
|
adds r0, r2
|
|
mov r1, r8
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
b _08069352
|
|
.align 2, 0
|
|
_0806932C: .4byte gUnknown_202EE70
|
|
_08069330: .4byte gDungeon
|
|
_08069334: .4byte 0x000005f4
|
|
_08069338:
|
|
cmp r0, 0x47
|
|
bne _08069352
|
|
ldr r2, _08069494
|
|
ldr r1, [r2]
|
|
movs r0, 0x3
|
|
strb r0, [r1, 0x10]
|
|
ldr r0, [r2]
|
|
ldr r3, _08069498
|
|
adds r0, r3
|
|
mov r1, r8
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
_08069352:
|
|
bl GetLeader
|
|
cmp r0, 0
|
|
beq _080693C6
|
|
movs r0, 0x87
|
|
lsls r0, 2
|
|
cmp r9, r0
|
|
beq _080693C6
|
|
ldrb r0, [r7, 0x7]
|
|
cmp r0, 0
|
|
bne _080693C6
|
|
ldr r4, _08069494
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x10]
|
|
cmp r0, 0
|
|
bne _080693C6
|
|
adds r0, r7, 0
|
|
adds r0, 0xA4
|
|
ldrb r1, [r0]
|
|
movs r2, 0
|
|
movs r0, 0xFA
|
|
lsls r0, 1
|
|
cmp r9, r0
|
|
bne _08069384
|
|
movs r2, 0x1
|
|
_08069384:
|
|
mov r0, r8
|
|
bl sub_8084E00
|
|
ldr r1, _0806949C
|
|
adds r0, r1, 0
|
|
ldrh r2, [r7, 0x4]
|
|
adds r0, r2
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x2
|
|
bhi _080693C6
|
|
bl IsBossFight
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080693C6
|
|
ldrb r0, [r7, 0x6]
|
|
cmp r0, 0
|
|
beq _080693CC
|
|
ldr r0, [r4]
|
|
ldr r3, _080694A0
|
|
adds r0, r3
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
ldr r0, _080694A4
|
|
ldr r1, [r0]
|
|
mov r0, r8
|
|
bl DisplayDungeonLoggableMessageTrue
|
|
bl sub_803E178
|
|
bl sub_8049ED4
|
|
_080693C6:
|
|
ldrb r0, [r7, 0x6]
|
|
cmp r0, 0
|
|
bne _08069466
|
|
_080693CC:
|
|
ldr r6, _080694A8
|
|
ldrb r0, [r7, 0xA]
|
|
movs r1, 0x64
|
|
muls r1, r0
|
|
ldr r2, _080694AC
|
|
adds r1, r2
|
|
ldr r2, [r6]
|
|
adds r4, r2, r1
|
|
adds r1, r7, 0
|
|
bl sub_806C264
|
|
movs r3, 0xA
|
|
ldrsh r0, [r4, r3]
|
|
bl sub_806A58C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08069462
|
|
ldr r5, _08069494
|
|
ldr r0, [r5]
|
|
ldr r1, _080694B0
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl IsLevelResetTo1
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806940E
|
|
movs r2, 0xA
|
|
ldrsh r0, [r4, r2]
|
|
adds r1, r4, 0
|
|
bl xxx_pokemon2_to_pokemonstruct_index_808DF2C
|
|
_0806940E:
|
|
bl IsMakuhitaTrainingMaze
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0
|
|
bne _0806942A
|
|
movs r3, 0xA
|
|
ldrsh r1, [r4, r3]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
ldr r1, [r6]
|
|
adds r0, r1
|
|
adds r0, 0x28
|
|
strb r2, [r0]
|
|
_0806942A:
|
|
ldrb r1, [r7, 0x7]
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r1, r0, 31
|
|
ldr r0, [r5]
|
|
ldr r2, _080694B4
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08069448
|
|
ldr r3, [sp, 0x78]
|
|
ldrb r0, [r3]
|
|
cmp r0, 0x41
|
|
bne _08069448
|
|
movs r1, 0x1
|
|
_08069448:
|
|
cmp r1, 0
|
|
bne _08069462
|
|
movs r0, 0xA
|
|
ldrsh r1, [r4, r0]
|
|
movs r0, 0x58
|
|
muls r1, r0
|
|
ldr r0, _080694A8
|
|
ldr r0, [r0]
|
|
adds r1, r0
|
|
ldrh r2, [r1]
|
|
ldr r0, _080694B8
|
|
ands r0, r2
|
|
strh r0, [r1]
|
|
_08069462:
|
|
movs r0, 0
|
|
strh r0, [r4]
|
|
_08069466:
|
|
mov r1, r10
|
|
ldr r0, [r1]
|
|
bl DeletePokemonDungeonSprite
|
|
ldr r0, _080694BC
|
|
movs r2, 0
|
|
str r2, [r0]
|
|
ldr r0, _08069494
|
|
ldr r1, [r0]
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0xC]
|
|
mov r3, r8
|
|
str r2, [r3]
|
|
bl sub_8045ACC
|
|
_08069484:
|
|
add sp, 0x84
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08069494: .4byte gDungeon
|
|
_08069498: .4byte 0x000005f4
|
|
_0806949C: .4byte 0xfffffe5f
|
|
_080694A0: .4byte 0x000037fe
|
|
_080694A4: .4byte gUnknown_80FA580
|
|
_080694A8: .4byte gRecruitedPokemonRef
|
|
_080694AC: .4byte 0x00008df8
|
|
_080694B0: .4byte 0x00000644
|
|
_080694B4: .4byte 0x0000065c
|
|
_080694B8: .4byte 0x0000fffd
|
|
_080694BC: .4byte gLeaderPointer
|
|
thumb_func_end sub_8068FE0
|
|
|
|
thumb_func_start sub_80694C0
|
|
sub_80694C0:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
adds r4, r0, 0
|
|
adds r7, r1, 0
|
|
mov r8, r2
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
mov r9, r3
|
|
adds r0, r7, 0
|
|
mov r1, r8
|
|
bl GetTileSafe
|
|
mov r10, r0
|
|
ldr r5, [r4, 0x70]
|
|
adds r6, r5, 0
|
|
adds r6, 0xB0
|
|
ldrb r0, [r6]
|
|
subs r0, 0x3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _080694FC
|
|
adds r0, r5, 0
|
|
adds r0, 0x9C
|
|
ldr r0, [r0]
|
|
bl sub_8076CB4
|
|
_080694FC:
|
|
ldrb r0, [r6]
|
|
cmp r0, 0x7
|
|
beq _0806950A
|
|
cmp r0, 0x5
|
|
beq _0806950A
|
|
cmp r0, 0x2
|
|
bne _08069512
|
|
_0806950A:
|
|
adds r0, r4, 0
|
|
adds r1, r4, 0
|
|
bl SendImmobilizeEndMessage
|
|
_08069512:
|
|
movs r0, 0x4
|
|
ldrsh r2, [r4, r0]
|
|
cmp r7, r2
|
|
bne _08069522
|
|
movs r1, 0x6
|
|
ldrsh r0, [r4, r1]
|
|
cmp r8, r0
|
|
beq _080695DE
|
|
_08069522:
|
|
movs r1, 0x4
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
blt _08069552
|
|
movs r1, 0x6
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
blt _08069552
|
|
adds r1, r0, 0
|
|
adds r0, r2, 0
|
|
bl GetTileSafe
|
|
adds r1, r0, 0
|
|
ldr r0, [r1, 0x10]
|
|
cmp r0, r4
|
|
bne _08069546
|
|
movs r0, 0
|
|
str r0, [r1, 0x10]
|
|
_08069546:
|
|
movs r1, 0x4
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x6
|
|
ldrsh r1, [r4, r2]
|
|
bl sub_80402AC
|
|
_08069552:
|
|
ldrh r0, [r4, 0x4]
|
|
strh r0, [r4, 0x8]
|
|
ldrh r0, [r4, 0x6]
|
|
strh r0, [r4, 0xA]
|
|
strh r7, [r4, 0x4]
|
|
mov r0, r8
|
|
strh r0, [r4, 0x6]
|
|
ldrb r0, [r5, 0x7]
|
|
cmp r0, 0
|
|
beq _0806956E
|
|
ldr r0, _0806959C
|
|
strh r7, [r0]
|
|
mov r1, r8
|
|
strh r1, [r0, 0x2]
|
|
_0806956E:
|
|
mov r2, r10
|
|
str r4, [r2, 0x10]
|
|
ldrb r0, [r5, 0x7]
|
|
cmp r0, 0
|
|
beq _08069588
|
|
ldr r0, _080695A0
|
|
strh r7, [r0]
|
|
mov r1, r8
|
|
strh r1, [r0, 0x2]
|
|
ldr r0, _080695A4
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
strb r0, [r1, 0x1]
|
|
_08069588:
|
|
adds r0, r7, 0
|
|
mov r1, r8
|
|
bl sub_80402AC
|
|
mov r2, r9
|
|
cmp r2, 0
|
|
beq _080695A8
|
|
cmp r2, 0x1
|
|
beq _080695C4
|
|
b _080695CE
|
|
.align 2, 0
|
|
_0806959C: .4byte gUnknown_203B410
|
|
_080695A0: .4byte gUnknown_202EE0C
|
|
_080695A4: .4byte gDungeon
|
|
_080695A8:
|
|
ldr r0, [r5, 0x70]
|
|
str r0, [r5, 0x74]
|
|
ldr r0, [r5, 0x6C]
|
|
str r0, [r5, 0x70]
|
|
ldr r0, [r5, 0x68]
|
|
str r0, [r5, 0x6C]
|
|
adds r0, r5, 0
|
|
adds r0, 0xE4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _080695CE
|
|
ldr r0, [r4, 0x8]
|
|
str r0, [r5, 0x68]
|
|
b _080695CE
|
|
_080695C4:
|
|
ldr r0, [r4, 0x4]
|
|
str r0, [r5, 0x68]
|
|
str r0, [r5, 0x6C]
|
|
str r0, [r5, 0x70]
|
|
str r0, [r5, 0x74]
|
|
_080695CE:
|
|
mov r1, r10
|
|
ldrb r0, [r1, 0x9]
|
|
adds r1, r4, 0
|
|
adds r1, 0x25
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl sub_806CF98
|
|
_080695DE:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80694C0
|
|
|
|
thumb_func_start sub_80695EC
|
|
sub_80695EC:
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
adds r6, r1, 0
|
|
adds r7, r2, 0
|
|
ldr r1, [r4, 0x70]
|
|
adds r5, r1, 0
|
|
adds r0, r1, 0
|
|
adds r0, 0xB0
|
|
ldrb r0, [r0]
|
|
subs r0, 0x3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _08069612
|
|
adds r0, r1, 0
|
|
adds r0, 0x9C
|
|
ldr r0, [r0]
|
|
bl sub_8076CB4
|
|
_08069612:
|
|
movs r1, 0x4
|
|
ldrsh r0, [r4, r1]
|
|
cmp r6, r0
|
|
bne _08069622
|
|
movs r1, 0x6
|
|
ldrsh r0, [r4, r1]
|
|
cmp r7, r0
|
|
beq _08069658
|
|
_08069622:
|
|
ldrh r0, [r4, 0x4]
|
|
strh r0, [r4, 0x8]
|
|
ldrh r0, [r4, 0x6]
|
|
strh r0, [r4, 0xA]
|
|
strh r6, [r4, 0x4]
|
|
strh r7, [r4, 0x6]
|
|
ldr r0, [r5, 0x70]
|
|
str r0, [r5, 0x74]
|
|
ldr r0, [r5, 0x6C]
|
|
str r0, [r5, 0x70]
|
|
ldr r0, [r5, 0x68]
|
|
str r0, [r5, 0x6C]
|
|
adds r0, r5, 0
|
|
adds r0, 0xE4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _08069648
|
|
ldr r0, [r4, 0x8]
|
|
str r0, [r5, 0x68]
|
|
_08069648:
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
bl GetTile
|
|
ldrb r1, [r0, 0x9]
|
|
adds r0, r4, 0
|
|
adds r0, 0x25
|
|
strb r1, [r0]
|
|
_08069658:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80695EC
|
|
|
|
thumb_func_start sub_8069660
|
|
sub_8069660:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, [r4, 0x70]
|
|
adds r5, r0, 0
|
|
adds r5, 0x46
|
|
ldrb r1, [r5]
|
|
adds r0, r4, 0
|
|
bl sub_8070F80
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806967C
|
|
movs r0, 0
|
|
b _0806969E
|
|
_0806967C:
|
|
movs r1, 0x4
|
|
ldrsh r0, [r4, r1]
|
|
ldr r1, _080696A4
|
|
ldrb r2, [r5]
|
|
lsls r2, 2
|
|
adds r2, r1
|
|
movs r3, 0
|
|
ldrsh r1, [r2, r3]
|
|
adds r0, r1
|
|
movs r3, 0x6
|
|
ldrsh r1, [r4, r3]
|
|
movs r3, 0x2
|
|
ldrsh r2, [r2, r3]
|
|
adds r1, r2
|
|
bl GetTile
|
|
ldr r0, [r0, 0x10]
|
|
_0806969E:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080696A4: .4byte gAdjacentTileOffsets
|
|
thumb_func_end sub_8069660
|
|
|
|
thumb_func_start sub_80696A8
|
|
sub_80696A8:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, [r4, 0x70]
|
|
adds r5, r0, 0
|
|
adds r5, 0x46
|
|
ldrb r1, [r5]
|
|
adds r0, r4, 0
|
|
bl CanAttackInDirection
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080696F4
|
|
movs r1, 0x4
|
|
ldrsh r0, [r4, r1]
|
|
ldr r1, _080696F0
|
|
ldrb r2, [r5]
|
|
lsls r2, 2
|
|
adds r2, r1
|
|
movs r3, 0
|
|
ldrsh r1, [r2, r3]
|
|
adds r0, r1
|
|
movs r3, 0x6
|
|
ldrsh r1, [r4, r3]
|
|
movs r3, 0x2
|
|
ldrsh r2, [r2, r3]
|
|
adds r1, r2
|
|
bl GetTile
|
|
ldr r1, [r0, 0x10]
|
|
cmp r1, 0
|
|
beq _080696F4
|
|
ldr r0, [r1]
|
|
cmp r0, 0x1
|
|
bne _080696F4
|
|
adds r0, r1, 0
|
|
b _080696F6
|
|
.align 2, 0
|
|
_080696F0: .4byte gAdjacentTileOffsets
|
|
_080696F4:
|
|
movs r0, 0
|
|
_080696F6:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80696A8
|
|
|
|
thumb_func_start sub_80696FC
|
|
sub_80696FC:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
ldr r3, [r4, 0x70]
|
|
ldr r5, _08069764
|
|
adds r3, 0x46
|
|
ldrb r0, [r3]
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldrh r0, [r0]
|
|
ldrh r1, [r4, 0x4]
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r1, _08069768
|
|
ldr r2, [sp]
|
|
ands r2, r1
|
|
orrs r2, r0
|
|
str r2, [sp]
|
|
ldrb r0, [r3]
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldrh r0, [r0, 0x2]
|
|
ldrh r1, [r4, 0x6]
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
ldr r1, _0806976C
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
str r1, [sp]
|
|
mov r0, sp
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
asrs r1, 16
|
|
bl GetTile
|
|
adds r5, r0, 0
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
bl sub_80705F0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08069770
|
|
ldr r1, [r5, 0x10]
|
|
cmp r1, 0
|
|
beq _08069770
|
|
ldr r0, [r1]
|
|
cmp r0, 0x1
|
|
bne _08069770
|
|
adds r0, r1, 0
|
|
b _08069772
|
|
.align 2, 0
|
|
_08069764: .4byte gAdjacentTileOffsets
|
|
_08069768: .4byte 0xffff0000
|
|
_0806976C: .4byte 0x0000ffff
|
|
_08069770:
|
|
movs r0, 0
|
|
_08069772:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80696FC
|
|
|
|
thumb_func_start sub_806977C
|
|
sub_806977C:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
ldr r0, [r4, 0x70]
|
|
ldr r7, _0806982C
|
|
adds r5, r0, 0
|
|
adds r5, 0x46
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
ldrh r0, [r0]
|
|
ldrh r1, [r4, 0x4]
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r1, _08069830
|
|
ldr r2, [sp]
|
|
ands r2, r1
|
|
orrs r2, r0
|
|
str r2, [sp]
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
ldrh r0, [r0, 0x2]
|
|
ldrh r1, [r4, 0x6]
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
ldr r1, _08069834
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
str r1, [sp]
|
|
mov r0, sp
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
asrs r1, 16
|
|
bl GetTile
|
|
mov r6, sp
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
bl sub_80705F0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08069838
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
lsls r0, 1
|
|
ldrh r2, [r4, 0x4]
|
|
adds r0, r2
|
|
mov r1, sp
|
|
strh r0, [r1]
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
movs r1, 0x2
|
|
ldrsh r0, [r0, r1]
|
|
lsls r0, 1
|
|
ldrh r2, [r4, 0x6]
|
|
adds r0, r2
|
|
strh r0, [r6, 0x2]
|
|
mov r0, sp
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
movs r2, 0x2
|
|
ldrsh r1, [r6, r2]
|
|
bl GetTile
|
|
adds r5, r0, 0
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
bl sub_80705F0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08069838
|
|
ldr r1, [r5, 0x10]
|
|
cmp r1, 0
|
|
beq _08069838
|
|
ldr r0, [r1]
|
|
cmp r0, 0x1
|
|
bne _08069838
|
|
adds r0, r1, 0
|
|
b _0806983A
|
|
.align 2, 0
|
|
_0806982C: .4byte gAdjacentTileOffsets
|
|
_08069830: .4byte 0xffff0000
|
|
_08069834: .4byte 0x0000ffff
|
|
_08069838:
|
|
movs r0, 0
|
|
_0806983A:
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806977C
|
|
|
|
thumb_func_start sub_8069844
|
|
sub_8069844:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r6, r0, 0
|
|
mov r8, r1
|
|
ldr r5, [r1, 0x70]
|
|
adds r0, r6, 0x2
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument_2
|
|
ldrh r0, [r5, 0x2]
|
|
strh r0, [r6]
|
|
movs r1, 0xE
|
|
ldrsh r0, [r5, r1]
|
|
str r0, [r6, 0x24]
|
|
movs r2, 0x10
|
|
ldrsh r0, [r5, r2]
|
|
str r0, [r6, 0x28]
|
|
ldrb r0, [r5, 0x9]
|
|
str r0, [r6, 0x2C]
|
|
ldr r0, [r5, 0x18]
|
|
str r0, [r6, 0x30]
|
|
movs r2, 0
|
|
_08069874:
|
|
adds r1, r6, 0
|
|
adds r1, 0x34
|
|
adds r1, r2
|
|
adds r0, r5, 0
|
|
adds r0, 0x14
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r1, r6, 0
|
|
adds r1, 0x36
|
|
adds r1, r2
|
|
adds r0, r5, 0
|
|
adds r0, 0x16
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r1, r6, 0
|
|
adds r1, 0x16
|
|
adds r1, r2
|
|
adds r0, r5, 0
|
|
adds r0, 0x5C
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r1, r6, 0
|
|
adds r1, 0x18
|
|
adds r1, r2
|
|
adds r0, r5, 0
|
|
adds r0, 0x5E
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r2, 0x1
|
|
cmp r2, 0x1
|
|
ble _08069874
|
|
ldrb r2, [r5, 0x7]
|
|
adds r1, r6, 0
|
|
adds r1, 0x38
|
|
movs r0, 0
|
|
strb r2, [r1]
|
|
adds r2, r6, 0
|
|
adds r2, 0x39
|
|
strb r0, [r2]
|
|
adds r3, r6, 0
|
|
adds r3, 0x3A
|
|
strb r0, [r3]
|
|
adds r4, r6, 0
|
|
adds r4, 0x3B
|
|
strb r0, [r4]
|
|
movs r7, 0x3C
|
|
adds r7, r6
|
|
mov r12, r7
|
|
strb r0, [r7]
|
|
adds r0, r5, 0
|
|
adds r0, 0x60
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0806995C
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0806995C
|
|
adds r1, r5, 0
|
|
adds r1, 0x62
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x13
|
|
bne _08069908
|
|
ldr r0, _080699A4
|
|
ldrb r0, [r0]
|
|
ldrb r7, [r2]
|
|
adds r0, r7
|
|
strb r0, [r2]
|
|
_08069908:
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x2B
|
|
bne _08069918
|
|
ldr r0, _080699A8
|
|
ldrb r0, [r0]
|
|
ldrb r7, [r2]
|
|
adds r0, r7
|
|
strb r0, [r2]
|
|
_08069918:
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x21
|
|
bne _08069928
|
|
ldr r0, _080699AC
|
|
ldrb r0, [r0]
|
|
ldrb r2, [r3]
|
|
adds r0, r2
|
|
strb r0, [r3]
|
|
_08069928:
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x2B
|
|
bne _08069938
|
|
ldr r0, _080699A8
|
|
ldrb r0, [r0]
|
|
ldrb r7, [r3]
|
|
adds r0, r7
|
|
strb r0, [r3]
|
|
_08069938:
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x1E
|
|
bne _08069948
|
|
ldr r0, _080699B0
|
|
ldrb r0, [r0]
|
|
ldrb r2, [r4]
|
|
adds r0, r2
|
|
strb r0, [r4]
|
|
_08069948:
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x22
|
|
bne _0806995C
|
|
ldr r0, _080699B4
|
|
ldrb r0, [r0]
|
|
mov r7, r12
|
|
ldrb r7, [r7]
|
|
adds r0, r7
|
|
mov r1, r12
|
|
strb r0, [r1]
|
|
_0806995C:
|
|
adds r0, r5, 0
|
|
adds r0, 0x94
|
|
ldrb r1, [r0]
|
|
adds r0, r6, 0
|
|
adds r0, 0x54
|
|
strb r1, [r0]
|
|
ldr r0, [r5, 0x60]
|
|
str r0, [r6, 0x20]
|
|
ldrh r0, [r5, 0xC]
|
|
movs r1, 0
|
|
strh r0, [r6, 0x3E]
|
|
ldr r0, [r5, 0x40]
|
|
str r0, [r6, 0x1C]
|
|
adds r0, r6, 0
|
|
adds r0, 0x44
|
|
strb r1, [r0]
|
|
adds r0, 0x4
|
|
strb r1, [r0]
|
|
adds r0, r5, 0
|
|
adds r0, 0x8C
|
|
ldr r0, [r0]
|
|
str r0, [r6, 0x50]
|
|
ldr r0, _080699B8
|
|
ldr r0, [r0]
|
|
ldr r2, _080699BC
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080699C0
|
|
adds r0, r5, 0
|
|
bl sub_806A4DC
|
|
adds r1, r6, 0
|
|
adds r1, 0x4C
|
|
b _080699C6
|
|
.align 2, 0
|
|
_080699A4: .4byte gUnknown_810AC60
|
|
_080699A8: .4byte gUnknown_810AC68
|
|
_080699AC: .4byte gUnknown_810AC62
|
|
_080699B0: .4byte gUnknown_810AC64
|
|
_080699B4: .4byte gUnknown_810AC66
|
|
_080699B8: .4byte gDungeon
|
|
_080699BC: .4byte 0x0000065a
|
|
_080699C0:
|
|
adds r1, r6, 0
|
|
adds r1, 0x4C
|
|
movs r0, 0x3
|
|
_080699C6:
|
|
strb r0, [r1]
|
|
movs r4, 0
|
|
movs r7, 0x10
|
|
ldrsh r0, [r5, r7]
|
|
cmp r0, 0
|
|
bge _080699D4
|
|
adds r0, 0x3
|
|
_080699D4:
|
|
movs r2, 0xE
|
|
ldrsh r1, [r5, r2]
|
|
asrs r0, 2
|
|
cmp r1, r0
|
|
bgt _080699E8
|
|
adds r1, r6, 0
|
|
adds r1, 0x58
|
|
movs r0, 0x6
|
|
strb r0, [r1]
|
|
movs r4, 0x1
|
|
_080699E8:
|
|
ldr r0, _08069A24
|
|
ldr r0, [r0]
|
|
ldr r7, _08069A28
|
|
adds r0, r7
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08069A02
|
|
adds r0, r6, 0
|
|
adds r0, 0x58
|
|
adds r0, r4
|
|
movs r1, 0xB
|
|
strb r1, [r0]
|
|
adds r4, 0x1
|
|
_08069A02:
|
|
movs r1, 0x9E
|
|
lsls r1, 1
|
|
adds r0, r5, r1
|
|
ldr r0, [r0]
|
|
bl FixedPointToInt
|
|
cmp r0, 0
|
|
bne _08069A38
|
|
ldrb r0, [r5, 0x7]
|
|
cmp r0, 0
|
|
beq _08069A2C
|
|
adds r0, r6, 0
|
|
adds r0, 0x58
|
|
adds r0, r4
|
|
movs r1, 0x13
|
|
b _08069A34
|
|
.align 2, 0
|
|
_08069A24: .4byte gDungeon
|
|
_08069A28: .4byte 0x00000676
|
|
_08069A2C:
|
|
adds r0, r6, 0
|
|
adds r0, 0x58
|
|
adds r0, r4
|
|
movs r1, 0x3B
|
|
_08069A34:
|
|
strb r1, [r0]
|
|
adds r4, 0x1
|
|
_08069A38:
|
|
mov r2, r8
|
|
ldr r0, [r2, 0x70]
|
|
movs r7, 0x82
|
|
lsls r7, 1
|
|
adds r2, r0, r7
|
|
ldr r0, [r2]
|
|
cmp r0, 0x1
|
|
ble _08069A54
|
|
adds r0, r6, 0
|
|
adds r0, 0x58
|
|
adds r0, r4
|
|
movs r1, 0x1B
|
|
strb r1, [r0]
|
|
adds r4, 0x1
|
|
_08069A54:
|
|
ldr r0, [r2]
|
|
cmp r0, 0
|
|
bgt _08069A66
|
|
adds r0, r6, 0
|
|
adds r0, 0x58
|
|
adds r0, r4
|
|
movs r1, 0x28
|
|
strb r1, [r0]
|
|
adds r4, 0x1
|
|
_08069A66:
|
|
ldr r0, [r5, 0x2C]
|
|
cmp r0, 0xFF
|
|
ble _08069AAE
|
|
ldr r0, [r5, 0x30]
|
|
cmp r0, 0xFF
|
|
ble _08069AAE
|
|
ldr r0, [r5, 0x34]
|
|
cmp r0, 0xFF
|
|
ble _08069AAE
|
|
ldr r0, [r5, 0x38]
|
|
cmp r0, 0xFF
|
|
ble _08069AAE
|
|
movs r1, 0x1C
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x9
|
|
ble _08069AAE
|
|
movs r2, 0x1E
|
|
ldrsh r0, [r5, r2]
|
|
cmp r0, 0x9
|
|
ble _08069AAE
|
|
movs r7, 0x20
|
|
ldrsh r0, [r5, r7]
|
|
cmp r0, 0x9
|
|
ble _08069AAE
|
|
movs r1, 0x22
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x9
|
|
ble _08069AAE
|
|
movs r2, 0x24
|
|
ldrsh r0, [r5, r2]
|
|
cmp r0, 0x9
|
|
ble _08069AAE
|
|
movs r7, 0x26
|
|
ldrsh r0, [r5, r7]
|
|
cmp r0, 0x9
|
|
bgt _08069ABA
|
|
_08069AAE:
|
|
adds r0, r6, 0
|
|
adds r0, 0x58
|
|
adds r0, r4
|
|
movs r1, 0x37
|
|
strb r1, [r0]
|
|
adds r4, 0x1
|
|
_08069ABA:
|
|
adds r0, r5, 0
|
|
adds r0, 0xA8
|
|
ldrb r1, [r0]
|
|
cmp r1, 0
|
|
beq _08069AD2
|
|
cmp r4, 0xB
|
|
bgt _08069AD2
|
|
adds r0, r6, 0
|
|
adds r0, 0x58
|
|
adds r0, r4
|
|
strb r1, [r0]
|
|
adds r4, 0x1
|
|
_08069AD2:
|
|
adds r0, r5, 0
|
|
adds r0, 0xAC
|
|
ldrb r1, [r0]
|
|
cmp r1, 0
|
|
beq _08069AEC
|
|
cmp r4, 0xB
|
|
bgt _08069AEC
|
|
adds r0, r6, 0
|
|
adds r0, 0x58
|
|
adds r0, r4
|
|
adds r1, 0x6
|
|
strb r1, [r0]
|
|
adds r4, 0x1
|
|
_08069AEC:
|
|
adds r0, r5, 0
|
|
adds r0, 0xB0
|
|
ldrb r1, [r0]
|
|
cmp r1, 0
|
|
beq _08069B06
|
|
cmp r4, 0xB
|
|
bgt _08069B06
|
|
adds r0, r6, 0
|
|
adds r0, 0x58
|
|
adds r0, r4
|
|
adds r1, 0xB
|
|
strb r1, [r0]
|
|
adds r4, 0x1
|
|
_08069B06:
|
|
adds r0, r5, 0
|
|
adds r0, 0xBC
|
|
ldrb r1, [r0]
|
|
cmp r1, 0
|
|
beq _08069B20
|
|
cmp r4, 0xB
|
|
bgt _08069B20
|
|
adds r0, r6, 0
|
|
adds r0, 0x58
|
|
adds r0, r4
|
|
adds r1, 0x13
|
|
strb r1, [r0]
|
|
adds r4, 0x1
|
|
_08069B20:
|
|
adds r0, r5, 0
|
|
adds r0, 0xC0
|
|
ldrb r1, [r0]
|
|
cmp r1, 0
|
|
beq _08069B3A
|
|
cmp r4, 0xB
|
|
bgt _08069B3A
|
|
adds r0, r6, 0
|
|
adds r0, 0x58
|
|
adds r0, r4
|
|
adds r1, 0x1B
|
|
strb r1, [r0]
|
|
adds r4, 0x1
|
|
_08069B3A:
|
|
adds r0, r5, 0
|
|
adds r0, 0xC4
|
|
ldrb r1, [r0]
|
|
cmp r1, 0
|
|
beq _08069B54
|
|
cmp r4, 0xB
|
|
bgt _08069B54
|
|
adds r0, r6, 0
|
|
adds r0, 0x58
|
|
adds r0, r4
|
|
adds r1, 0x28
|
|
strb r1, [r0]
|
|
adds r4, 0x1
|
|
_08069B54:
|
|
adds r0, r5, 0
|
|
adds r0, 0xC8
|
|
ldrb r1, [r0]
|
|
cmp r1, 0
|
|
beq _08069B6E
|
|
cmp r4, 0xB
|
|
bgt _08069B6E
|
|
adds r0, r6, 0
|
|
adds r0, 0x58
|
|
adds r0, r4
|
|
adds r1, 0x37
|
|
strb r1, [r0]
|
|
adds r4, 0x1
|
|
_08069B6E:
|
|
adds r0, r5, 0
|
|
adds r0, 0xD0
|
|
ldrb r1, [r0]
|
|
cmp r1, 0
|
|
beq _08069B88
|
|
cmp r4, 0xB
|
|
bgt _08069B88
|
|
adds r0, r6, 0
|
|
adds r0, 0x58
|
|
adds r0, r4
|
|
adds r1, 0x3B
|
|
strb r1, [r0]
|
|
adds r4, 0x1
|
|
_08069B88:
|
|
adds r0, r5, 0
|
|
adds r0, 0xDC
|
|
ldrb r1, [r0]
|
|
cmp r1, 0
|
|
beq _08069BA2
|
|
cmp r4, 0xB
|
|
bgt _08069BA2
|
|
adds r0, r6, 0
|
|
adds r0, 0x58
|
|
adds r0, r4
|
|
adds r1, 0x3E
|
|
strb r1, [r0]
|
|
adds r4, 0x1
|
|
_08069BA2:
|
|
adds r0, r5, 0
|
|
adds r0, 0xE0
|
|
ldrb r1, [r0]
|
|
cmp r1, 0
|
|
beq _08069BBC
|
|
cmp r4, 0xB
|
|
bgt _08069BBC
|
|
adds r0, r6, 0
|
|
adds r0, 0x58
|
|
adds r0, r4
|
|
adds r1, 0x43
|
|
strb r1, [r0]
|
|
adds r4, 0x1
|
|
_08069BBC:
|
|
adds r0, r5, 0
|
|
adds r0, 0xE4
|
|
ldrb r1, [r0]
|
|
cmp r1, 0
|
|
beq _08069BD6
|
|
cmp r4, 0xB
|
|
bgt _08069BD6
|
|
adds r0, r6, 0
|
|
adds r0, 0x58
|
|
adds r0, r4
|
|
adds r1, 0x46
|
|
strb r1, [r0]
|
|
adds r4, 0x1
|
|
_08069BD6:
|
|
adds r0, r5, 0
|
|
adds r0, 0xE8
|
|
ldrb r1, [r0]
|
|
cmp r1, 0
|
|
beq _08069BF0
|
|
cmp r4, 0xB
|
|
bgt _08069BF0
|
|
adds r0, r6, 0
|
|
adds r0, 0x58
|
|
adds r0, r4
|
|
adds r1, 0x4A
|
|
strb r1, [r0]
|
|
adds r4, 0x1
|
|
_08069BF0:
|
|
adds r0, r5, 0
|
|
adds r0, 0xEC
|
|
ldrb r1, [r0]
|
|
cmp r1, 0
|
|
beq _08069C0A
|
|
cmp r4, 0xB
|
|
bgt _08069C0A
|
|
adds r0, r6, 0
|
|
adds r0, 0x58
|
|
adds r0, r4
|
|
adds r1, 0x4E
|
|
strb r1, [r0]
|
|
adds r4, 0x1
|
|
_08069C0A:
|
|
movs r1, 0x89
|
|
lsls r1, 1
|
|
adds r0, r5, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08069C26
|
|
cmp r4, 0xB
|
|
bgt _08069C26
|
|
adds r0, r6, 0
|
|
adds r0, 0x58
|
|
adds r0, r4
|
|
movs r1, 0x50
|
|
strb r1, [r0]
|
|
adds r4, 0x1
|
|
_08069C26:
|
|
adds r0, r5, 0
|
|
adds r0, 0xF0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08069C40
|
|
cmp r4, 0xB
|
|
bgt _08069C40
|
|
adds r0, r6, 0
|
|
adds r0, 0x58
|
|
adds r0, r4
|
|
movs r1, 0x51
|
|
strb r1, [r0]
|
|
adds r4, 0x1
|
|
_08069C40:
|
|
adds r0, r5, 0
|
|
adds r0, 0xF1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08069C5A
|
|
cmp r4, 0xB
|
|
bgt _08069C5A
|
|
adds r0, r6, 0
|
|
adds r0, 0x58
|
|
adds r0, r4
|
|
movs r1, 0x52
|
|
strb r1, [r0]
|
|
adds r4, 0x1
|
|
_08069C5A:
|
|
adds r0, r5, 0
|
|
adds r0, 0xF4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08069C74
|
|
cmp r4, 0xB
|
|
bgt _08069C74
|
|
adds r0, r6, 0
|
|
adds r0, 0x58
|
|
adds r0, r4
|
|
movs r1, 0x53
|
|
strb r1, [r0]
|
|
adds r4, 0x1
|
|
_08069C74:
|
|
adds r0, r5, 0
|
|
adds r0, 0xF5
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08069C8E
|
|
cmp r4, 0xB
|
|
bgt _08069C8E
|
|
adds r0, r6, 0
|
|
adds r0, 0x58
|
|
adds r0, r4
|
|
movs r1, 0x54
|
|
strb r1, [r0]
|
|
adds r4, 0x1
|
|
_08069C8E:
|
|
mov r0, r8
|
|
bl ShouldMonsterRunAway
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08069CAA
|
|
cmp r4, 0xB
|
|
bgt _08069CAA
|
|
adds r0, r6, 0
|
|
adds r0, 0x58
|
|
adds r0, r4
|
|
movs r1, 0x55
|
|
strb r1, [r0]
|
|
adds r4, 0x1
|
|
_08069CAA:
|
|
adds r0, r5, 0
|
|
adds r0, 0xFD
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08069CC4
|
|
cmp r4, 0xB
|
|
bgt _08069CC4
|
|
adds r0, r6, 0
|
|
adds r0, 0x58
|
|
adds r0, r4
|
|
movs r1, 0x56
|
|
strb r1, [r0]
|
|
adds r4, 0x1
|
|
_08069CC4:
|
|
mov r0, r8
|
|
movs r1, 0
|
|
bl sub_8070828
|
|
cmp r0, 0x1
|
|
ble _08069CE0
|
|
cmp r4, 0xB
|
|
bgt _08069CE0
|
|
adds r0, r6, 0
|
|
adds r0, 0x58
|
|
adds r0, r4
|
|
movs r1, 0x57
|
|
strb r1, [r0]
|
|
adds r4, 0x1
|
|
_08069CE0:
|
|
adds r0, r5, 0
|
|
adds r0, 0xF2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08069CFA
|
|
cmp r4, 0xB
|
|
bgt _08069D0E
|
|
adds r0, r6, 0
|
|
adds r0, 0x58
|
|
adds r0, r4
|
|
movs r1, 0x58
|
|
strb r1, [r0]
|
|
adds r4, 0x1
|
|
_08069CFA:
|
|
cmp r4, 0xB
|
|
bgt _08069D0E
|
|
adds r1, r6, 0
|
|
adds r1, 0x58
|
|
movs r2, 0
|
|
_08069D04:
|
|
adds r0, r1, r4
|
|
strb r2, [r0]
|
|
adds r4, 0x1
|
|
cmp r4, 0xB
|
|
ble _08069D04
|
|
_08069D0E:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8069844
|
|
|
|
.align 2,0
|