summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/code_803D110.s4
-rw-r--r--asm/code_8040094.s16
-rw-r--r--asm/code_80428A0.s12
-rw-r--r--asm/code_80450F8.s66
-rw-r--r--asm/code_8048480.s252
-rw-r--r--asm/code_80521D0.s24
-rw-r--r--asm/code_8057824.s186
-rw-r--r--asm/code_807001C.s24
-rw-r--r--asm/code_8070D04.s40
-rw-r--r--asm/code_80718D8.s4416
-rw-r--r--asm/code_80739DC.s3956
-rw-r--r--asm/code_8075BA4.s192
-rw-r--r--asm/code_80848F0.s2
-rw-r--r--asm/code_80983D8.s6
-rw-r--r--asm/jirachi_wish.s2
-rw-r--r--include/constants/direction.h5
-rw-r--r--include/dungeon_ai_items.h9
-rw-r--r--include/dungeon_entity.h14
-rw-r--r--include/item.h9
-rwxr-xr-xld_script.txt2
-rw-r--r--src/code_80983D8.c4
-rw-r--r--src/dungeon_ai_items.c244
-rw-r--r--src/items.c2
-rw-r--r--sym_ewram.txt4
-rw-r--r--sym_ewram2.txt2
25 files changed, 4653 insertions, 4840 deletions
diff --git a/asm/code_803D110.s b/asm/code_803D110.s
index 656ca78..7dfdfba 100644
--- a/asm/code_803D110.s
+++ b/asm/code_803D110.s
@@ -4953,7 +4953,7 @@ sub_803F7BC:
ldrsh r0, [r5, r1]
movs r2, 0x2
ldrsh r1, [r5, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrb r1, [r0, 0x9]
ldr r2, _0803F808
adds r0, r4, r2
@@ -5236,7 +5236,7 @@ sub_803F9CC:
cmp r4, 0
beq _0803FA08
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _0803FA08
movs r5, 0x1
diff --git a/asm/code_8040094.s b/asm/code_8040094.s
index 65494a2..4df6052 100644
--- a/asm/code_8040094.s
+++ b/asm/code_8040094.s
@@ -232,7 +232,7 @@ _080402FC:
_08040302:
mov r0, r8
adds r1, r3, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
mov r9, r0
ldrh r0, [r0]
movs r5, 0x3
@@ -326,7 +326,7 @@ _080403B8:
cmp r4, 0
beq _0804045E
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
adds r1, r0, 0
ldr r0, _08040404
ldrb r0, [r0]
@@ -410,7 +410,7 @@ _0804045E:
cmp r4, 0
beq _08040500
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
adds r5, r0, 0
cmp r7, 0
bne _0804049E
@@ -553,7 +553,7 @@ _0804056C:
adds r1, r3, 0
adds r1, 0x1
mov r0, r8
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
@@ -567,7 +567,7 @@ _0804058A:
adds r1, r5, 0
subs r1, 0x1
mov r0, r8
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
@@ -583,7 +583,7 @@ _080405AA:
mov r0, r8
adds r0, 0x1
ldr r1, [sp]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
@@ -598,7 +598,7 @@ _080405CA:
ble _080405E8
subs r0, 0x1
ldr r1, [sp]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
@@ -2457,7 +2457,7 @@ sub_804143C:
cmp r0, 0
beq _080414A4
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _080414A4
ldr r1, [r4, 0x70]
diff --git a/asm/code_80428A0.s b/asm/code_80428A0.s
index 11aae2e..54c5963 100644
--- a/asm/code_80428A0.s
+++ b/asm/code_80428A0.s
@@ -2418,7 +2418,7 @@ _08043E6E:
cmp r0, 0
beq _08043EA0
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x2
bne _08043EA0
adds r0, r4, 0
@@ -4197,14 +4197,14 @@ ResetAction:
bx lr
thumb_func_end ResetAction
- thumb_func_start sub_8044C94
-sub_8044C94:
+ thumb_func_start SetAction
+SetAction:
movs r2, 0
strh r1, [r0]
strb r2, [r0, 0x4]
strb r2, [r0, 0xC]
bx lr
- thumb_func_end sub_8044C94
+ thumb_func_end SetAction
thumb_func_start SetWalkAction
SetWalkAction:
@@ -4258,9 +4258,9 @@ _08044CEC:
ldrsh r0, [r2, r1]
movs r3, 0x6
ldrsh r1, [r2, r3]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldr r0, [r0, 0x14]
- bl sub_8045108
+ bl GetItemData
b _08044D34
_08044D06:
cmp r0, 0x81
diff --git a/asm/code_80450F8.s b/asm/code_80450F8.s
index 3040a44..cf230c1 100644
--- a/asm/code_80450F8.s
+++ b/asm/code_80450F8.s
@@ -5,11 +5,11 @@
.text
- thumb_func_start sub_80450F8
-sub_80450F8:
+ thumb_func_start GetEntityType
+GetEntityType:
ldr r0, [r0]
bx lr
- thumb_func_end sub_80450F8
+ thumb_func_end GetEntityType
thumb_func_start sub_80450FC
sub_80450FC:
@@ -24,11 +24,11 @@ sub_8045104:
bx lr
thumb_func_end sub_8045104
- thumb_func_start sub_8045108
-sub_8045108:
+ thumb_func_start GetItemData
+GetItemData:
ldr r0, [r0, 0x70]
bx lr
- thumb_func_end sub_8045108
+ thumb_func_end GetItemData
thumb_func_start sub_804510C
sub_804510C:
@@ -50,7 +50,7 @@ sub_8045114:
movs r3, 0x6
ldrsh r1, [r0, r3]
adds r0, r2, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
pop {r1}
bx r1
thumb_func_end sub_8045114
@@ -965,7 +965,7 @@ sub_80457DC:
sub_8045804:
push {r4-r6,lr}
adds r4, r0, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
beq _0804581C
cmp r0, 0x1
@@ -1078,7 +1078,7 @@ _080458B4:
ldr r0, _080458FC
adds r5, r2, r0
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x5
bhi _08045984
lsls r0, 2
@@ -1458,7 +1458,7 @@ SetMessageArgument:
adds r4, r1, 0
adds r6, r2, 0
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x2
beq _08045BD2
cmp r0, 0x2
@@ -1646,7 +1646,7 @@ _08045CEE:
_08045CF6:
adds r0, r5, 0
adds r1, r6, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r2, r0, 0
ldrh r0, [r2]
movs r3, 0x80
@@ -1762,20 +1762,20 @@ sub_8045DB4:
ldrsh r0, [r1, r2]
movs r3, 0x2
ldrsh r1, [r1, r3]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldr r4, [r0, 0x14]
cmp r4, 0
bne _08045DE8
b _080460E0
_08045DE8:
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x3
beq _08045DF4
b _080460E0
_08045DF4:
adds r0, r4, 0
- bl sub_8045108
+ bl GetItemData
adds r5, r0, 0
ldr r0, [sp, 0xAC]
adds r0, 0x48
@@ -2270,7 +2270,7 @@ sub_80461C8:
cmp r5, 0
beq _080461EE
adds r0, r5, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x3
beq _080461F2
_080461EE:
@@ -2278,7 +2278,7 @@ _080461EE:
b _08046284
_080461F2:
adds r0, r5, 0
- bl sub_8045108
+ bl GetItemData
adds r4, r0, 0
ldrh r1, [r6]
movs r0, 0x20
@@ -2407,7 +2407,7 @@ _080462E4:
ldrsh r0, [r4, r1]
movs r2, 0x6
ldrsh r1, [r4, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r0, [r0]
movs r1, 0x3
ands r1, r0
@@ -2712,14 +2712,14 @@ sub_804652C:
ldrsh r0, [r5, r1]
movs r2, 0x6
ldrsh r1, [r5, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r4, r0, 0
ldr r0, [r4, 0x14]
movs r3, 0
str r3, [sp, 0xC]
cmp r0, 0
beq _0804658C
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x2
bne _0804658C
adds r4, r5, 0x4
@@ -2779,7 +2779,7 @@ _080465A8:
movs r2, 0
ldrsh r0, [r0, r2]
asrs r1, 16
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r4, r0, 0
ldrh r1, [r4]
movs r6, 0x3
@@ -2850,7 +2850,7 @@ _08046644:
ldrsh r0, [r0, r3]
movs r2, 0x2
ldrsh r1, [r4, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r0, [r0]
movs r1, 0x3
ands r1, r0
@@ -3219,7 +3219,7 @@ _08046904:
lsls r0, r4, 16
asrs r0, 16
asrs r1, r4, 16
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r2, r0, 0
ldrh r1, [r2]
movs r0, 0x3
@@ -4341,7 +4341,7 @@ sub_8047190:
strh r4, [r7, 0x26]
str r4, [sp, 0x224]
mov r0, r9
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _08047214
mov r0, r9
@@ -4388,7 +4388,7 @@ _08047228:
movs r3, 0x2
ldrsh r2, [r2, r3]
adds r1, r2
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r5, r0, 0
ldrh r1, [r5]
movs r0, 0x3
@@ -4420,7 +4420,7 @@ _0804727A:
ldrsh r1, [r1, r3]
adds r1, r2
str r2, [sp, 0x234]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
@@ -4541,7 +4541,7 @@ _0804737A:
ldrsh r0, [r7, r4]
movs r2, 0x6
ldrsh r1, [r7, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r5, r0, 0
ldrh r1, [r5]
movs r0, 0x3
@@ -4563,7 +4563,7 @@ _080473A2:
cmp r0, 0
bne _080473CE
adds r0, r1, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _080473CE
ldr r0, [r5, 0x10]
@@ -4587,7 +4587,7 @@ _080473CE:
_080473E0:
movs r6, 0x1
ldr r0, [r5, 0x10]
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _08047406
add r4, sp, 0x208
@@ -4882,7 +4882,7 @@ sub_80475C4:
movs r1, 0
str r1, [sp, 0x28]
ldr r0, [sp, 0x10]
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _0804765E
ldr r0, [sp, 0x10]
@@ -5097,7 +5097,7 @@ _080477D0:
ldrsh r0, [r3, r1]
movs r2, 0x2
ldrsh r1, [r3, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r4, r0, 0
ldr r0, [r4, 0x10]
cmp r0, 0
@@ -5107,7 +5107,7 @@ _080477FA:
movs r3, 0x1
mov r8, r3
movs r7, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _08047834
ldr r0, [r4, 0x10]
@@ -5279,7 +5279,7 @@ _08047950:
movs r6, 0x1
_08047964:
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _08047994
adds r0, r4, 0
@@ -5302,7 +5302,7 @@ _08047984:
movs r6, 0x1
_08047994:
adds r0, r5, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _080479AE
adds r0, r5, 0
diff --git a/asm/code_8048480.s b/asm/code_8048480.s
index 79a323d..849283d 100644
--- a/asm/code_8048480.s
+++ b/asm/code_8048480.s
@@ -1050,7 +1050,7 @@ _08048CE2:
bl sub_8044DF0
adds r0, r6, 0
movs r1, 0x2C
- bl sub_8044C94
+ bl SetAction
b _08048D3E
.align 2, 0
_08048D34: .4byte gUnknown_80FECA0
@@ -1310,8 +1310,8 @@ sub_8048F00:
_08048F24: .4byte gPtrMusicBoxPlayedCrumbledMessage
thumb_func_end sub_8048F00
- thumb_func_start sub_8048F28
-sub_8048F28:
+ thumb_func_start EvaluateItem
+EvaluateItem:
push {r4-r7,lr}
sub sp, 0x4
adds r4, r0, 0
@@ -1891,7 +1891,7 @@ _080494E4:
pop {r4-r7}
pop {r1}
bx r1
- thumb_func_end sub_8048F28
+ thumb_func_end EvaluateItem
thumb_func_start sub_80494EC
sub_80494EC:
@@ -1912,12 +1912,12 @@ _080494F2:
movs r3, 0x2
ldrsh r2, [r2, r3]
adds r1, r2
- bl sub_804954C
+ bl GetMapTileAtPosition
ldr r4, [r0, 0x10]
cmp r4, 0
beq _0804953C
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0
beq _0804953C
adds r0, r5, 0
@@ -1944,8 +1944,8 @@ _08049544:
bx r1
thumb_func_end sub_80494EC
- thumb_func_start sub_804954C
-sub_804954C:
+ thumb_func_start GetMapTileAtPosition
+GetMapTileAtPosition:
push {lr}
adds r2, r0, 0
adds r3, r1, 0
@@ -1980,7 +1980,7 @@ _08049588:
bx r1
.align 2, 0
_0804958C: .4byte gUnknown_203B430
- thumb_func_end sub_804954C
+ thumb_func_end GetMapTileAtPosition
thumb_func_start sub_8049590
sub_8049590:
@@ -2381,7 +2381,7 @@ _080498CA:
b _08049B72
_080498D0:
movs r7, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r0, [r0]
movs r1, 0x3
mov r8, r1
@@ -2427,7 +2427,7 @@ _08049928:
str r0, [sp, 0x24]
mov r0, r10
ldr r1, [sp, 0x24]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r8
ands r0, r1
@@ -2436,14 +2436,14 @@ _08049928:
adds r4, 0x1
adds r0, r4, 0
ldr r1, [sp, 0x24]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r8
ands r0, r1
str r0, [sp, 0x4]
adds r0, r4, 0
mov r1, r9
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r8
ands r0, r1
@@ -2452,14 +2452,14 @@ _08049928:
subs r5, 0x1
adds r0, r4, 0
adds r1, r5, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r8
ands r0, r1
str r0, [sp, 0xC]
mov r0, r10
adds r1, r5, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r8
ands r0, r1
@@ -2467,21 +2467,21 @@ _08049928:
subs r4, 0x2
adds r0, r4, 0
adds r1, r5, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r8
ands r0, r1
str r0, [sp, 0x14]
adds r0, r4, 0
mov r1, r9
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r8
ands r0, r1
str r0, [sp, 0x18]
adds r0, r4, 0
ldr r1, [sp, 0x24]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r0, [r0]
mov r1, r8
ands r1, r0
@@ -2800,7 +2800,7 @@ sub_8049BB0:
mov r9, r0
mov r0, r10
mov r1, r9
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r4, 0x3
adds r0, r4, 0
@@ -2811,14 +2811,14 @@ sub_8049BB0:
adds r5, 0x1
adds r0, r5, 0
mov r1, r9
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
adds r0, r4, 0
ands r0, r1
str r0, [r6, 0x4]
adds r0, r5, 0
ldr r1, [sp, 0x40]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
adds r0, r4, 0
ands r0, r1
@@ -2828,14 +2828,14 @@ sub_8049BB0:
mov r8, r0
adds r0, r5, 0
mov r1, r8
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
adds r0, r4, 0
ands r0, r1
str r0, [r6, 0xC]
mov r0, r10
mov r1, r8
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
adds r0, r4, 0
ands r0, r1
@@ -2843,21 +2843,21 @@ sub_8049BB0:
subs r5, 0x2
adds r0, r5, 0
mov r1, r8
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
adds r0, r4, 0
ands r0, r1
str r0, [r6, 0x14]
adds r0, r5, 0
ldr r1, [sp, 0x40]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
adds r0, r4, 0
ands r0, r1
str r0, [r6, 0x18]
adds r0, r5, 0
mov r1, r9
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r0, [r0]
ands r4, r0
str r4, [r6, 0x1C]
@@ -3273,7 +3273,7 @@ _08049F1C:
ldr r0, [sp, 0x10]
ldr r1, [sp, 0x14]
str r3, [sp, 0x34]
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r5, r0, 0
ldrh r2, [r5]
movs r1, 0x80
@@ -3340,7 +3340,7 @@ _08049FDC:
beq _0804A028
adds r0, r4, 0
str r3, [sp, 0x34]
- bl sub_80450F8
+ bl GetEntityType
ldr r3, [sp, 0x34]
cmp r0, 0x2
bne _0804A014
@@ -3460,7 +3460,7 @@ _0804A098:
ldr r0, [sp, 0x10]
adds r1, r2, 0
str r3, [sp, 0x34]
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r5, r0, 0
ldrh r2, [r5]
movs r0, 0x20
@@ -3505,7 +3505,7 @@ _0804A124:
beq _0804A174
adds r0, r4, 0
str r3, [sp, 0x34]
- bl sub_80450F8
+ bl GetEntityType
ldr r3, [sp, 0x34]
cmp r0, 0x2
bne _0804A15C
@@ -3673,7 +3673,7 @@ sub_804A1F0:
adds r6, r3, r0
ldr r0, [sp, 0xC]
mov r1, r10
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r5, r0, 0
ldrh r1, [r5]
movs r0, 0x20
@@ -3724,7 +3724,7 @@ _0804A2D0:
cmp r4, 0
beq _0804A318
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x2
bne _0804A304
adds r0, r4, 0
@@ -3823,7 +3823,7 @@ _0804A386:
ldr r6, [sp, 0x10]
ldr r0, [sp, 0xC]
mov r1, r10
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r5, r0, 0
ldrh r1, [r5]
movs r0, 0x20
@@ -3871,7 +3871,7 @@ _0804A3EC:
cmp r4, 0
beq _0804A434
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x2
bne _0804A420
adds r0, r4, 0
@@ -4021,7 +4021,7 @@ sub_804A49C:
mov r3, r9
adds r6, r3, r0
mov r0, r10
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r5, r0, 0
ldrh r1, [r5]
movs r0, 0x20
@@ -4071,7 +4071,7 @@ _0804A574:
cmp r4, 0
beq _0804A59A
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x2
bne _0804A5C8
adds r0, r4, 0
@@ -4156,7 +4156,7 @@ _0804A60C:
adds r6, r0, r3
mov r0, r10
ldr r1, [sp, 0xC]
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r5, r0, 0
ldrh r1, [r5]
movs r0, 0x20
@@ -4204,7 +4204,7 @@ _0804A678:
cmp r4, 0
beq _0804A6C0
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x2
bne _0804A6AC
adds r0, r4, 0
@@ -4831,7 +4831,7 @@ _0804AB2E:
_0804AB32:
adds r0, r4, 0
adds r1, r6, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrb r2, [r0, 0x9]
adds r3, r4, 0x1
cmp r2, 0xFF
@@ -4960,7 +4960,7 @@ sub_804AC20:
ldrsh r0, [r4, r1]
movs r2, 0x2
ldrsh r1, [r4, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrb r1, [r0, 0x9]
ldr r0, _0804AC6C
ldr r3, [r0]
@@ -5062,11 +5062,11 @@ sub_804ACE4:
movs r3, 0x2
ldrsh r1, [r0, r3]
adds r0, r2, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldr r0, [r0, 0x14]
cmp r0, 0
beq _0804AD06
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x3
bne _0804AD06
movs r0, 0x1
@@ -5086,7 +5086,7 @@ sub_804AD0C:
movs r3, 0x2
ldrsh r1, [r0, r3]
adds r0, r2, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldr r1, [r0, 0x10]
cmp r1, 0
beq _0804AD2C
@@ -5828,7 +5828,7 @@ _0804B318:
_0804B31C:
adds r0, r5, 0
adds r1, r4, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r1, r0, 0
ldrh r0, [r1]
movs r2, 0x3
@@ -6124,7 +6124,7 @@ _0804B55A:
subs r0, r5, 0x1
adds r1, r4, 0
str r2, [sp, 0x8]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
adds r0, r7, 0
ands r0, r1
@@ -6140,7 +6140,7 @@ _0804B5A4:
adds r0, r5, 0
str r2, [sp, 0x8]
str r3, [sp, 0xC]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r8
ands r0, r1
@@ -6156,7 +6156,7 @@ _0804B5C4:
adds r1, r4, 0
str r2, [sp, 0x8]
str r3, [sp, 0xC]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r8
ands r0, r1
@@ -6173,7 +6173,7 @@ _0804B5E4:
adds r1, r6, 0
str r2, [sp, 0x8]
str r3, [sp, 0xC]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r8
ands r0, r1
@@ -7965,7 +7965,7 @@ _0804C498:
movs r2, 0
ldrsh r0, [r3, r2]
mov r1, r10
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrb r0, [r0, 0x9]
mov r9, r0
ldr r5, [sp, 0x8]
@@ -9011,7 +9011,7 @@ _0804CCC0:
bge _0804CC84
adds r0, r7, 0
adds r1, r6, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrb r5, [r0, 0x9]
ldr r1, _0804CCE0
mov r3, r8
@@ -9030,7 +9030,7 @@ _0804CCE4:
_0804CCF0:
adds r0, r7, 0
adds r1, r6, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrb r0, [r0, 0x9]
cmp r5, r0
beq _0804CCE4
@@ -9051,7 +9051,7 @@ _0804CD0C:
_0804CD18:
adds r0, r7, 0
adds r1, r6, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r5, 0x3
adds r0, r5, 0
@@ -9060,7 +9060,7 @@ _0804CD18:
beq _0804CD0C
adds r0, r7, 0
adds r1, r6, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
adds r0, r5, 0
ands r0, r1
@@ -9115,7 +9115,7 @@ _0804CD72:
adds r0, r7, r0
adds r1, r6, r1
str r2, [sp, 0x1C]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r5, 0x3
adds r0, r5, 0
@@ -9136,7 +9136,7 @@ _0804CDA2:
ldrsh r1, [r1, r3]
adds r0, r7, r0
adds r1, r6, r1
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
adds r0, r5, 0
ands r0, r1
@@ -9154,7 +9154,7 @@ _0804CDD4: .4byte gUnknown_80F4448
_0804CDD8:
adds r0, r7, 0
adds r1, r6, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x10
ands r0, r1
@@ -9167,7 +9167,7 @@ _0804CDEC:
adds r4, r7, 0x1
adds r0, r4, 0
adds r1, r6, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r10
ands r0, r1
@@ -9177,7 +9177,7 @@ _0804CDEC:
adds r5, r6, 0x1
adds r0, r4, 0
adds r1, r5, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r0, [r0]
mov r4, r10
ands r4, r0
@@ -9185,7 +9185,7 @@ _0804CDEC:
bne _0804CE32
adds r0, r7, 0
adds r1, r5, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r0, [r0]
mov r1, r10
ands r0, r1
@@ -9197,7 +9197,7 @@ _0804CDEC:
_0804CE32:
mov r0, r9
adds r1, r6, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r5, 0x3
adds r0, r5, 0
@@ -9207,7 +9207,7 @@ _0804CE32:
subs r4, r6, 0x1
mov r0, r9
adds r1, r4, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
adds r0, r5, 0
ands r0, r1
@@ -9215,7 +9215,7 @@ _0804CE32:
bne _0804CE70
adds r0, r7, 0
adds r1, r4, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
adds r0, r5, 0
ands r0, r1
@@ -9227,7 +9227,7 @@ _0804CE70:
subs r4, r7, 0x1
adds r0, r4, 0
adds r1, r6, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r2, 0x3
adds r0, r2, 0
@@ -9238,7 +9238,7 @@ _0804CE70:
adds r0, r4, 0
adds r1, r5, 0
str r2, [sp, 0x1C]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
ldr r2, [sp, 0x1C]
adds r0, r2, 0
@@ -9247,7 +9247,7 @@ _0804CE70:
bne _0804CEB6
adds r0, r7, 0
adds r1, r5, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
ldr r2, [sp, 0x1C]
adds r0, r2, 0
@@ -9259,7 +9259,7 @@ _0804CE70:
_0804CEB6:
adds r0, r4, 0
adds r1, r6, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r2, 0x3
adds r0, r2, 0
@@ -9270,7 +9270,7 @@ _0804CEB6:
adds r0, r4, 0
adds r1, r5, 0
str r2, [sp, 0x1C]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
ldr r2, [sp, 0x1C]
adds r0, r2, 0
@@ -9279,7 +9279,7 @@ _0804CEB6:
bne _0804CEFA
adds r0, r7, 0
adds r1, r5, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
ldr r2, [sp, 0x1C]
adds r0, r2, 0
@@ -9321,7 +9321,7 @@ _0804CF16:
adds r0, r7, r0
adds r1, r6, r1
str r2, [sp, 0x1C]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r5, 0x3
adds r0, r5, 0
@@ -9342,7 +9342,7 @@ _0804CF16:
ldrsh r1, [r1, r3]
adds r0, r7, r0
adds r1, r6, r1
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
adds r0, r5, 0
ands r0, r1
@@ -9408,7 +9408,7 @@ _0804CFD4:
bgt _0804CFFC
adds r0, r7, 0
adds r1, r6, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r3, 0x3
mov r10, r3
@@ -11221,7 +11221,7 @@ _0804DCCA:
ldrsh r0, [r4, r1]
movs r2, 0x2
ldrsh r1, [r4, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrb r0, [r0, 0x9]
mov r8, r0
ldr r5, [sp, 0x28]
@@ -11351,7 +11351,7 @@ _0804DDB4:
ldrsh r0, [r4, r1]
movs r2, 0x2
ldrsh r1, [r4, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrb r0, [r0, 0x9]
mov r9, r0
ldr r5, [sp, 0x2C]
@@ -11482,7 +11482,7 @@ _0804DEAC:
movs r0, 0x2
ldrsh r1, [r4, r0]
ldr r0, [sp, 0x30]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrb r0, [r0, 0x9]
mov r8, r0
ldr r5, [sp, 0x30]
@@ -11600,7 +11600,7 @@ _0804DF88:
ldrsh r0, [r4, r1]
adds r1, r6, 0
str r3, [sp, 0x54]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrb r0, [r0, 0x9]
mov r10, r0
ldr r5, [sp, 0x34]
@@ -11937,7 +11937,7 @@ _0804E1EA:
mov r1, r8
str r2, [sp, 0x38]
str r3, [sp, 0x3C]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
@@ -11977,7 +11977,7 @@ _0804E22E:
mov r2, r9
adds r1, r2, r5
str r3, [sp, 0x3C]
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r2, r0, 0
ldrh r1, [r2]
movs r0, 0x3
@@ -12019,7 +12019,7 @@ _0804E278:
ldrsh r1, [r1, r3]
adds r0, r7, r0
add r1, r8
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
@@ -12138,7 +12138,7 @@ _0804E352:
_0804E360:
adds r0, r5, 0
adds r1, r4, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
@@ -12188,7 +12188,7 @@ _0804E3B2:
_0804E3BC:
adds r0, r5, 0
adds r1, r4, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
@@ -12244,7 +12244,7 @@ _0804E416:
_0804E420:
adds r0, r5, 0
adds r1, r4, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
@@ -12298,7 +12298,7 @@ _0804E478:
_0804E482:
adds r0, r5, 0
adds r1, r4, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
@@ -12345,7 +12345,7 @@ _0804E4D0:
bgt _0804E57E
adds r0, r5, 0
adds r1, r4, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
@@ -12394,7 +12394,7 @@ _0804E52C:
bgt _0804E57E
adds r0, r5, 0
adds r1, r4, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
@@ -13032,7 +13032,7 @@ _0804E9F2:
_0804E9F8:
adds r0, r5, 0
adds r1, r4, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r8
ands r0, r1
@@ -13043,7 +13043,7 @@ _0804E9F8:
_0804EA0E:
adds r0, r5, 0
adds r1, r4, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrb r0, [r0, 0x9]
cmp r0, 0xFF
bne _0804EAF4
@@ -13157,7 +13157,7 @@ _0804EAF0: .4byte 0x0000fffc
_0804EAF4:
adds r0, r5, 0
adds r1, r4, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrb r0, [r0, 0x9]
cmp r0, 0xFE
bne _0804EB0E
@@ -13209,7 +13209,7 @@ _0804EB4A:
_0804EB4E:
adds r0, r5, 0
adds r1, r4, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -13217,7 +13217,7 @@ _0804EB4E:
beq _0804EBA2
adds r0, r5, 0
adds r1, r4, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrb r3, [r0, 0x9]
cmp r3, 0x1F
bhi _0804EBA2
@@ -13896,7 +13896,7 @@ _0804F05A:
strh r1, [r0]
adds r0, r5, 0
adds r1, r4, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrb r1, [r0, 0x9]
ldr r2, [sp, 0x104]
ldr r3, _0804F0A0
@@ -14195,7 +14195,7 @@ sub_804F278:
ldrsh r0, [r4, r1]
movs r2, 0x2
ldrsh r1, [r4, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrb r0, [r0, 0x9]
mov r9, r0
movs r5, 0
@@ -14209,7 +14209,7 @@ _0804F2B4:
ldrsh r1, [r4, r2]
subs r1, 0x1
adds r0, r6, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
@@ -14250,7 +14250,7 @@ _0804F306:
movs r1, 0x4
ldrsh r0, [r4, r1]
adds r1, r5, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
@@ -14290,7 +14290,7 @@ _0804F354:
movs r0, 0x6
ldrsh r1, [r4, r0]
adds r0, r6, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
@@ -14332,7 +14332,7 @@ _0804F3A4:
ldrsh r0, [r4, r1]
subs r0, 0x1
adds r1, r5, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
@@ -14383,7 +14383,7 @@ _0804F3F2:
_0804F40A:
adds r0, r6, 0
adds r1, r5, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
@@ -14532,7 +14532,7 @@ _0804F50A:
ldr r3, [sp, 0x2C]
cmp r3, r1
ble _0804F534
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r10
ands r0, r1
@@ -14688,7 +14688,7 @@ _0804F634:
_0804F63C:
adds r0, r6, 0
adds r1, r4, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
@@ -14696,7 +14696,7 @@ _0804F63C:
bne _0804F660
adds r0, r6, 0
adds r1, r4, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrb r0, [r0, 0x9]
cmp r0, 0xFF
bne _0804F660
@@ -15482,7 +15482,7 @@ _0804FC86:
_0804FC8A:
adds r0, r5, 0
adds r1, r4, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
@@ -15525,7 +15525,7 @@ _0804FCD4:
_0804FCD8:
adds r0, r5, 0
adds r1, r4, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x10
ands r0, r1
@@ -15881,7 +15881,7 @@ _0804FF4C:
_0804FF56:
adds r0, r6, 0
adds r1, r5, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r1, r0, 0
ldrh r2, [r1]
movs r0, 0x3
@@ -16005,7 +16005,7 @@ _0805003E:
_0805004A:
adds r0, r6, 0
adds r1, r5, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r1, r0, 0
ldrh r2, [r1]
movs r0, 0x3
@@ -16104,7 +16104,7 @@ _08050100:
_0805010C:
adds r0, r6, 0
adds r1, r5, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
@@ -16185,7 +16185,7 @@ _080501A0:
_080501AC:
adds r0, r6, 0
adds r1, r5, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x20
ands r0, r1
@@ -16309,7 +16309,7 @@ _0805029A:
_080502A6:
adds r0, r6, 0
adds r1, r5, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r1, r0, 0
ldrh r2, [r1]
movs r0, 0x3
@@ -16423,7 +16423,7 @@ _08050378:
_08050384:
adds r0, r6, 0
adds r1, r5, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r2, r0, 0
ldrh r1, [r2]
movs r0, 0x3
@@ -16556,7 +16556,7 @@ _08050480:
_0805048E:
adds r0, r6, 0
adds r1, r5, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r1, r0, 0
ldrh r3, [r1]
movs r2, 0x3
@@ -16707,7 +16707,7 @@ _080505A2:
_080505B0:
adds r0, r6, 0
adds r1, r5, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r1, r0, 0
ldrh r2, [r1]
movs r0, 0x3
@@ -16937,7 +16937,7 @@ _08050772:
cmp r0, 0x37
bhi _080507B8
mov r1, r10
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
@@ -17015,7 +17015,7 @@ _080507DE:
mov r8, r0
adds r0, r4, 0
mov r1, r8
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r2, 0x3
adds r0, r2, 0
@@ -17025,7 +17025,7 @@ _080507DE:
adds r0, r4, 0
adds r1, r5, 0
str r2, [sp, 0x9C]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
ldr r2, [sp, 0x9C]
adds r0, r2, 0
@@ -17035,7 +17035,7 @@ _080507DE:
subs r7, r5, 0x1
adds r0, r4, 0
adds r1, r7, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
ldr r2, [sp, 0x9C]
adds r0, r2, 0
@@ -17044,7 +17044,7 @@ _080507DE:
beq _080508B2
adds r0, r6, 0
mov r1, r8
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
ldr r2, [sp, 0x9C]
adds r0, r2, 0
@@ -17053,7 +17053,7 @@ _080507DE:
beq _080508B2
adds r0, r6, 0
adds r1, r7, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
ldr r2, [sp, 0x9C]
adds r0, r2, 0
@@ -17063,7 +17063,7 @@ _080507DE:
subs r4, r6, 0x1
adds r0, r4, 0
mov r1, r8
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
ldr r2, [sp, 0x9C]
adds r0, r2, 0
@@ -17072,7 +17072,7 @@ _080507DE:
beq _080508B2
adds r0, r4, 0
adds r1, r5, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
ldr r2, [sp, 0x9C]
adds r0, r2, 0
@@ -17081,7 +17081,7 @@ _080507DE:
beq _080508B2
adds r0, r4, 0
adds r1, r7, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
ldr r2, [sp, 0x9C]
adds r0, r2, 0
@@ -17154,7 +17154,7 @@ _0805091A:
adds r0, r4, 0
adds r1, r3, 0
str r3, [sp, 0xA0]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r2, 0x3
mov r8, r2
@@ -17168,7 +17168,7 @@ _0805093A:
adds r0, r4, 0
adds r1, r5, 0
str r3, [sp, 0xA0]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r8
ands r0, r1
@@ -17182,7 +17182,7 @@ _08050952:
adds r1, r2, 0
str r2, [sp, 0x9C]
str r3, [sp, 0xA0]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r8
ands r0, r1
@@ -17196,7 +17196,7 @@ _08050970:
adds r1, r3, 0
str r2, [sp, 0x9C]
str r3, [sp, 0xA0]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r8
ands r0, r1
@@ -17210,7 +17210,7 @@ _0805098C:
adds r1, r2, 0
str r2, [sp, 0x9C]
str r3, [sp, 0xA0]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r8
ands r0, r1
@@ -17224,7 +17224,7 @@ _080509A8:
adds r0, r4, 0
adds r1, r3, 0
str r2, [sp, 0x9C]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r8
ands r0, r1
@@ -17236,7 +17236,7 @@ _080509C2:
adds r0, r4, 0
adds r1, r5, 0
str r2, [sp, 0x9C]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r8
ands r0, r1
@@ -17247,7 +17247,7 @@ _080509C2:
_080509DA:
adds r0, r4, 0
adds r1, r2, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r8
ands r0, r1
diff --git a/asm/code_80521D0.s b/asm/code_80521D0.s
index 0bbdd13..d8af8aa 100644
--- a/asm/code_80521D0.s
+++ b/asm/code_80521D0.s
@@ -2463,7 +2463,7 @@ _08053734:
cmp r4, 0
beq _080537B4
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
beq _0805376C
b _08053A1C
@@ -2519,7 +2519,7 @@ _080537B4:
beq _08053854
adds r4, r0, 0
str r2, [sp, 0x44]
- bl sub_80450F8
+ bl GetEntityType
ldr r2, [sp, 0x44]
cmp r0, 0x1
beq _080537E2
@@ -2668,7 +2668,7 @@ _080538DA:
movs r3, 0x2
ldrsh r2, [r2, r3]
adds r1, r2
- bl sub_804954C
+ bl GetMapTileAtPosition
ldr r0, [r0, 0x10]
str r0, [sp, 0x38]
bl EntityExists
@@ -2676,7 +2676,7 @@ _080538DA:
cmp r0, 0
beq _080539DC
ldr r0, [sp, 0x38]
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _080539DC
adds r0, r5, 0
@@ -3244,7 +3244,7 @@ _08053DA8:
beq _08053DCE
adds r0, r5, 0x4
adds r1, r7, 0x4
- bl sub_80983D8
+ bl CalculateFacingDir
strb r0, [r4]
_08053DCE:
ldr r1, [sp, 0x24]
@@ -3261,7 +3261,7 @@ _08053DCE:
beq _08053DF2
adds r0, r5, 0x4
adds r1, r7, 0x4
- bl sub_80983D8
+ bl CalculateFacingDir
strb r0, [r4]
_08053DF2:
adds r0, r5, 0
@@ -6290,7 +6290,7 @@ _080559B6:
bgt _080559D4
adds r0, r4, 0x4
adds r1, r2, 0x4
- bl sub_80983D8
+ bl CalculateFacingDir
adds r1, r0, 0
adds r0, r4, 0
bl sub_8071138
@@ -6314,7 +6314,7 @@ sub_80559DC:
ldr r4, [r5, 0x70]
adds r0, r5, 0x4
adds r1, 0x4
- bl sub_80983D8
+ bl CalculateFacingDir
adds r1, r0, 0
movs r2, 0x7
ands r0, r2
@@ -7995,7 +7995,7 @@ _08056780:
movs r2, 0
ldrsh r0, [r6, r2]
asrs r1, 16
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r2, r0, 0
ldrh r1, [r2]
movs r0, 0x3
@@ -8005,7 +8005,7 @@ _08056780:
ldr r0, [r2, 0x10]
cmp r0, 0
beq _080567C6
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
beq _080567EC
_080567C6:
@@ -8307,7 +8307,7 @@ _08056A0E:
ldrsh r0, [r7, r2]
movs r6, 0x2
ldrsh r1, [r7, r6]
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r6, r0, 0
ldrh r1, [r6]
movs r0, 0x3
@@ -8317,7 +8317,7 @@ _08056A0E:
ldr r0, [r6, 0x10]
cmp r0, 0
beq _08056A8E
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _08056A8E
ldr r0, [r6, 0x10]
diff --git a/asm/code_8057824.s b/asm/code_8057824.s
index 554a536..c225611 100644
--- a/asm/code_8057824.s
+++ b/asm/code_8057824.s
@@ -6333,7 +6333,7 @@ _0805A94C:
cmp r5, 0
beq _0805AA4C
adds r0, r5, 0
- bl sub_80450F8
+ bl GetEntityType
adds r7, r0, 0
cmp r7, 0x1
bne _0805A9FE
@@ -9349,7 +9349,7 @@ _0805BFF0:
cmp r4, 0
beq _0805C028
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x2
bne _0805C028
adds r0, r4, 0
@@ -10709,7 +10709,7 @@ _0805CD06:
bne _0805CD14
b _0805CB6E
_0805CD14:
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x2
bne _0805CD1E
b _0805CEA8
@@ -12098,7 +12098,7 @@ _0805DA1C: .4byte gUnknown_80F8A28
_0805DA20:
ldr r0, [sp, 0x1C]
movs r1, 0x17
- bl sub_8044C94
+ bl SetAction
b _0805E1AE
_0805DA2A:
ldr r0, _0805DA38
@@ -12443,7 +12443,7 @@ _0805DCC8: .4byte gUnknown_80F8A4C
_0805DCCC:
ldr r0, [sp, 0x1C]
movs r1, 0x14
- bl sub_8044C94
+ bl SetAction
mov r0, r10
bl sub_8045B60
mov r1, r8
@@ -12464,7 +12464,7 @@ _0805DCE8:
_0805DCF8:
ldr r0, [sp, 0x1C]
movs r1, 0x32
- bl sub_8044C94
+ bl SetAction
b _0805E1AE
_0805DD02:
ldr r3, _0805DDC8
@@ -13781,12 +13781,12 @@ _0805E76A:
movs r3, 0x2
ldrsh r2, [r2, r3]
adds r1, r2
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r4, r0, 0
ldr r0, [r4, 0x10]
cmp r0, 0
beq _0805E7B8
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _0805E7B8
ldr r1, [r4, 0x10]
@@ -13926,7 +13926,7 @@ sub_805E874:
ldrsh r2, [r2, r3]
str r2, [sp, 0x1C]
adds r1, r2, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r5, r0, 0
ldr r1, _0805E910
ldr r2, [sp, 0x18]
@@ -13967,7 +13967,7 @@ sub_805E874:
bne _0805E918
adds r0, r7, 0
adds r1, r6, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrb r0, [r0, 0x9]
cmp r0, 0xFF
beq _0805E922
@@ -14005,7 +14005,7 @@ _0805E92E:
ldrsh r1, [r1, r3]
ldr r2, [sp, 0x1C]
adds r1, r2, r1
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r1, r0, 0
ldr r0, [r1, 0x10]
cmp r0, 0
@@ -14072,7 +14072,7 @@ _0805E9BC:
_0805E9C8:
adds r0, r7, 0
adds r1, r6, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r5, r0, 0
ldr r0, [r5, 0x14]
cmp r0, 0
@@ -14104,7 +14104,7 @@ _0805EA04:
cmp r2, 0x3
bne _0805EA14
ldr r0, [r5, 0x14]
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x3
bne _0805EA14
b _0805E906
@@ -14117,11 +14117,11 @@ _0805EA14:
ldr r0, [r5, 0x14]
cmp r0, 0
beq _0805EA94
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x2
bne _0805EA94
ldr r0, [r5, 0x14]
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x2
bne _0805EA94
ldr r0, [r5, 0x14]
@@ -14153,7 +14153,7 @@ _0805EA6A:
ldr r0, [r5, 0x14]
cmp r0, 0
beq _0805EA94
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x2
bne _0805EA94
ldr r0, [r5, 0x14]
@@ -14429,7 +14429,7 @@ sub_805EC4C:
lsls r0, r2, 16
asrs r0, 16
asrs r1, r2, 16
- bl sub_804954C
+ bl GetMapTileAtPosition
ldr r0, [r0, 0x10]
mov r8, r0
cmp r0, 0
@@ -14437,7 +14437,7 @@ sub_805EC4C:
b _0805ED96
_0805EC94:
mov r0, r8
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _0805ED96
mov r0, r8
@@ -14574,7 +14574,7 @@ _0805EDA0:
adds r0, r7, 0
adds r0, 0x44
movs r1, 0x2
- bl sub_8044C94
+ bl SetAction
ldr r0, _0805EDC0
ldrh r1, [r0]
movs r0, 0x2
@@ -14603,7 +14603,7 @@ _0805EDCA:
adds r0, r6, 0
adds r0, 0x44
movs r1, 0x2
- bl sub_8044C94
+ bl SetAction
adds r0, r6, 0
adds r0, 0x48
strb r4, [r0]
@@ -14700,7 +14700,7 @@ _0805EE96:
cmp r4, 0
beq _0805EF52
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x5
bhi _0805EF52
lsls r0, 2
@@ -14766,7 +14766,7 @@ _0805EF18:
b _0805EF52
_0805EF2A:
adds r0, r4, 0
- bl sub_8045108
+ bl GetItemData
ldrb r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -14804,7 +14804,7 @@ sub_805EF60:
cmp r4, 0
beq _0805EF9E
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _0805EF9E
adds r0, r5, 0
@@ -14831,7 +14831,7 @@ _0805EFA2:
adds r0, r6, 0
adds r0, 0x44
movs r1, 0x13
- bl sub_8044C94
+ bl SetAction
movs r0, 0x1
_0805EFAE:
pop {r4-r6}
@@ -15762,14 +15762,14 @@ _0805F742:
movs r3, 0x6
ldrsh r1, [r0, r3]
adds r0, r2, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldr r4, [r0, 0x14]
cmp r4, 0
bne _0805F75C
b _0805F88C
_0805F75C:
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x3
beq _0805F768
b _0805F872
@@ -15885,7 +15885,7 @@ _0805F848:
b _0805F8A8
_0805F872:
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x2
bne _0805F8CE
movs r0, 0x1
@@ -16580,7 +16580,7 @@ _0805FE5E:
ldr r0, [sp, 0xE0]
adds r0, 0x44
movs r1, 0xC
- bl sub_8044C94
+ bl SetAction
ldr r0, _0805FE78
ldr r1, [r0, 0x4]
ldr r0, [r0]
@@ -17553,9 +17553,9 @@ _0806063C:
ldrsh r0, [r1, r2]
movs r3, 0x6
ldrsh r1, [r1, r3]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldr r0, [r0, 0x14]
- bl sub_8045108
+ bl GetItemData
adds r7, r0, 0
ldr r0, _080606A8
ldr r2, [r0]
@@ -18175,7 +18175,7 @@ _08060B3C:
ldrsh r0, [r1, r2]
movs r3, 0x6
ldrsh r1, [r1, r3]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldr r0, [r0, 0x14]
cmp r0, 0
bne _08060B68
@@ -18186,7 +18186,7 @@ _08060B3C:
.align 2, 0
_08060B64: .4byte gUnknown_202F238
_08060B68:
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x3
bne _08060B78
ldrb r1, [r7, 0x2]
@@ -18219,7 +18219,7 @@ _08060BA6:
bl sub_8044F5C
_08060BAE:
mov r0, r10
- bl sub_8071A70
+ bl ToolboxEnabled
lsls r0, 24
cmp r0, 0
beq _08060BBC
@@ -18373,7 +18373,7 @@ sub_8060CE8:
adds r0, r1
ldrh r1, [r0]
adds r0, r4, 0
- bl sub_8044C94
+ bl SetAction
ldr r0, _08060D20
ldr r1, [r0, 0x4]
ldr r0, [r0]
@@ -18758,7 +18758,7 @@ _08060FE2:
adds r0, r4, 0
adds r0, 0x44
movs r1, 0x1B
- bl sub_8044C94
+ bl SetAction
ldr r0, [sp]
lsls r0, 2
add r0, r8
@@ -19459,7 +19459,7 @@ sub_80615B4:
adds r0, r1
ldrh r1, [r0]
adds r0, r5, 0
- bl sub_8044C94
+ bl SetAction
ldm r4!, {r0}
lsls r0, 2
adds r4, r0
@@ -22906,7 +22906,7 @@ _08063150:
_08063168:
adds r0, r7, 0
movs r1, 0x6
- bl sub_8044C94
+ bl SetAction
b _080631F4
.align 2, 0
_08063174: .4byte gRealInputs
@@ -22924,7 +22924,7 @@ _0806317C:
_0806318E:
adds r0, r7, 0
movs r1, 0x7
- bl sub_8044C94
+ bl SetAction
b _080631F4
_08063198:
bl sub_8062D88
@@ -23016,7 +23016,7 @@ _08063234:
bne _08063274
adds r0, r7, 0
movs r1, 0x1D
- bl sub_8044C94
+ bl SetAction
mov r0, r8
adds r0, 0x24
ldrb r1, [r0]
@@ -23705,7 +23705,7 @@ sub_80637BC:
adds r1, r0
ldrh r1, [r1]
adds r0, r4, 0
- bl sub_8044C94
+ bl SetAction
strb r5, [r4, 0x4]
ldr r0, _080637E4
ldr r0, [r0]
@@ -25384,7 +25384,7 @@ _080644D0:
adds r0, r1
ldrh r1, [r0]
adds r0, r4, 0
- bl sub_8044C94
+ bl SetAction
bl sub_8083D08
strb r6, [r4, 0x4]
strh r6, [r4, 0x8]
@@ -25458,7 +25458,7 @@ sub_806455C:
ldrsh r0, [r4, r1]
movs r2, 0x2
ldrsh r1, [r4, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r4, r0, 0
ldr r0, _080645D0
ldr r2, [r0]
@@ -25602,14 +25602,14 @@ _08064640:
ldrsh r0, [r3, r1]
movs r2, 0x2
ldrsh r1, [r3, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldr r4, [r0, 0x14]
cmp r4, 0
bne _080646B8
b _080647D8
_080646B8:
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x2
beq _080646C4
b _080647D8
@@ -25911,7 +25911,7 @@ _08064914:
adds r0, r1
ldrh r1, [r0]
adds r0, r4, 0
- bl sub_8044C94
+ bl SetAction
bl sub_8083D08
strb r6, [r4, 0x4]
strh r6, [r4, 0x8]
@@ -27007,7 +27007,7 @@ sub_80651D0:
bne _080651F4
bl sub_805F1A0
movs r1, 0x2B
- bl sub_8044C94
+ bl SetAction
movs r0, 0
b _080651F6
.align 2, 0
@@ -27032,7 +27032,7 @@ sub_80651FC:
bne _08065248
bl sub_805F1A0
movs r1, 0x2E
- bl sub_8044C94
+ bl SetAction
ldr r4, _0806523C
bl sub_8083600
adds r2, r0, 0
@@ -30377,7 +30377,7 @@ _08066D68:
ldrsh r0, [r4, r1]
movs r2, 0x6
ldrsh r1, [r4, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r2, r0, 0
ldrh r1, [r2]
movs r0, 0x80
@@ -30526,11 +30526,11 @@ _08066EA8:
ldrsh r0, [r2, r3]
movs r3, 0x6
ldrsh r1, [r2, r3]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldr r0, [r0, 0x14]
cmp r0, 0
beq _08066ECC
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x3
beq _08066ECC
ldr r0, _08066EC8
@@ -30652,7 +30652,7 @@ sub_8066FA4:
ldrsh r0, [r7, r1]
movs r2, 0x6
ldrsh r1, [r7, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
mov r10, r0
adds r0, r7, 0
movs r1, 0
@@ -30705,7 +30705,7 @@ _08067028:
ldr r0, [r1, 0x14]
cmp r0, 0
beq _08067040
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x3
beq _08067040
ldr r0, _0806703C
@@ -30715,7 +30715,7 @@ _0806703C: .4byte gUnknown_80F8E54
_08067040:
mov r2, r10
ldr r0, [r2, 0x14]
- bl sub_8045108
+ bl GetItemData
adds r4, r0, 0
ldr r0, _080670A8
adds r1, r4, 0
@@ -31426,7 +31426,7 @@ _0806760C: .4byte gUnknown_80FE008
_08067610:
adds r0, r6, 0x4
adds r1, r5, 0x4
- bl sub_80983D8
+ bl CalculateFacingDir
adds r1, r0, 0
adds r0, r6, 0
bl sub_806CEFC
@@ -31583,7 +31583,7 @@ sub_806773C:
cmp r4, 0
beq _08067760
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _08067760
ldr r0, [r5, 0x70]
@@ -35490,7 +35490,7 @@ _08069622:
_08069648:
adds r0, r6, 0
adds r1, r7, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrb r1, [r0, 0x9]
adds r0, r4, 0
adds r0, 0x25
@@ -35531,7 +35531,7 @@ _0806967C:
movs r3, 0x2
ldrsh r2, [r2, r3]
adds r1, r2
- bl sub_804954C
+ bl GetMapTileAtPosition
ldr r0, [r0, 0x10]
_0806969E:
pop {r4,r5}
@@ -35568,7 +35568,7 @@ sub_80696A8:
movs r3, 0x2
ldrsh r2, [r2, r3]
adds r1, r2
- bl sub_804954C
+ bl GetMapTileAtPosition
ldr r1, [r0, 0x10]
cmp r1, 0
beq _080696F4
@@ -35623,7 +35623,7 @@ sub_80696FC:
movs r2, 0
ldrsh r0, [r0, r2]
asrs r1, 16
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r5, r0, 0
adds r0, r4, 0
mov r1, sp
@@ -35689,7 +35689,7 @@ sub_806977C:
movs r2, 0
ldrsh r0, [r0, r2]
asrs r1, 16
- bl sub_804954C
+ bl GetMapTileAtPosition
mov r6, sp
adds r0, r4, 0
mov r1, sp
@@ -35721,7 +35721,7 @@ sub_806977C:
ldrsh r0, [r0, r1]
movs r2, 0x2
ldrsh r1, [r6, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r5, r0, 0
adds r0, r4, 0
mov r1, sp
@@ -37033,7 +37033,7 @@ sub_806A1E8:
cmp r0, 0
beq _0806A234
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _0806A210
ldr r0, [r4, 0x70]
@@ -37081,7 +37081,7 @@ sub_806A240:
cmp r0, 0
beq _0806A2B4
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _0806A26A
ldr r0, [r4, 0x70]
@@ -37106,7 +37106,7 @@ _0806A26A:
b _0806A2B4
_0806A284:
adds r0, r5, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _0806A29C
ldr r0, [r5, 0x70]
@@ -37145,7 +37145,7 @@ sub_806A2BC:
cmp r0, 0
beq _0806A328
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _0806A328
ldr r5, _0806A2F4
@@ -37385,7 +37385,7 @@ _0806A488:
ldr r0, [r4, 0x10]
cmp r0, 0
beq _0806A4B6
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _0806A4B6
ldr r0, [r4, 0x10]
@@ -37963,7 +37963,7 @@ _0806A8C8:
_0806A8EE:
adds r0, r4, 0x4
adds r1, r6, 0
- bl sub_80983D8
+ bl CalculateFacingDir
adds r2, r0, 0
movs r1, 0x7
ands r0, r1
@@ -39095,7 +39095,7 @@ sub_806B168:
adds r1, r4
movs r2, 0
ldrsh r1, [r1, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrb r0, [r0, 0x9]
str r0, [sp, 0x2C]
movs r3, 0
@@ -39294,7 +39294,7 @@ _0806B2D2:
ldrsh r1, [r1, r4]
adds r1, r6, r1
str r3, [sp, 0x38]
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r1, r0, 0
ldrb r0, [r1, 0x9]
ldr r3, [sp, 0x38]
@@ -39361,7 +39361,7 @@ _0806B366:
movs r3, 0
ldrsh r1, [r1, r3]
adds r1, r6, r1
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r1, r0, 0
mov r4, r8
movs r2, 0xE
@@ -39517,7 +39517,7 @@ _0806B4AE:
asrs r0, r5, 16
asrs r4, 16
adds r1, r4, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrb r0, [r0, 0x9]
str r0, [sp, 0x20]
movs r2, 0
@@ -39580,7 +39580,7 @@ _0806B51C:
mov r5, r10
adds r1, r5
str r2, [sp, 0x2C]
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r1, r0, 0
ldrb r0, [r1, 0x9]
ldr r2, [sp, 0x2C]
@@ -39646,7 +39646,7 @@ _0806B5A8:
mov r5, r10
adds r1, r5
str r2, [sp, 0x2C]
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r1, r0, 0
movs r3, 0xE
ldrsh r0, [r6, r3]
@@ -39696,7 +39696,7 @@ _0806B606:
ldrsh r0, [r2, r1]
movs r3, 0x2
ldrsh r1, [r5, r3]
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r1, r0, 0
movs r3, 0xE
ldrsh r0, [r6, r3]
@@ -39854,7 +39854,7 @@ _0806B740:
_0806B748:
adds r0, r5, 0
adds r1, r7, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0, 0x4]
movs r0, 0x8
ands r0, r1
@@ -39956,7 +39956,7 @@ sub_806B7F8:
ldrsh r0, [r6, r1]
movs r2, 0xE
ldrsh r1, [r6, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r1, r0, 0
movs r3, 0
ldrsh r0, [r6, r3]
@@ -40102,7 +40102,7 @@ _0806B930:
_0806B932:
mov r0, r9
mov r1, r10
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r1, r0, 0
adds r0, r4, 0
bl sub_807034C
@@ -42779,7 +42779,7 @@ sub_806CDD4:
adds r6, r2, 0
lsls r1, 24
lsrs r5, r1, 24
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _0806CDF4
adds r0, r4, 0
@@ -42803,7 +42803,7 @@ sub_806CDFC:
lsls r1, 24
lsrs r5, r1, 24
adds r7, r5, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _0806CE2E
adds r0, r4, 0
@@ -42832,7 +42832,7 @@ sub_806CE34:
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _0806CE62
adds r0, r4, 0
@@ -42861,7 +42861,7 @@ sub_806CE68:
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _0806CE8C
adds r0, r4, 0
@@ -42885,7 +42885,7 @@ sub_806CE94:
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _0806CEB4
adds r1, r4, 0
@@ -43150,13 +43150,13 @@ _0806D062:
b _0806D514
_0806D070:
adds r0, r6, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
beq _0806D07C
b _0806D514
_0806D07C:
adds r0, r5, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
beq _0806D088
b _0806D514
@@ -43762,7 +43762,7 @@ sub_806D528:
mov r1, r10
strb r1, [r5, 0xF]
adds r0, r7, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
beq _0806D55C
b _0806D754
@@ -43775,7 +43775,7 @@ _0806D55C:
adds r1, r7, 0
bl sub_806F450
mov r0, r9
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _0806D592
mov r2, r9
@@ -44142,7 +44142,7 @@ _0806D858:
cmp r1, r0
beq _0806D8E6
mov r0, r9
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _0806D8E6
movs r4, 0
@@ -44189,7 +44189,7 @@ _0806D8C8:
adds r0, r7, 0x4
mov r1, r9
adds r1, 0x4
- bl sub_80983D8
+ bl CalculateFacingDir
movs r1, 0x7
ands r0, r1
adds r4, 0x46
@@ -44369,7 +44369,7 @@ _0806DA2E:
cmp r0, 0
beq _0806DA50
mov r0, r9
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _0806DA50
cmp r9, r7
@@ -45026,7 +45026,7 @@ _0806DF7E:
movs r3, 0
mov r10, r3
mov r0, r9
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _0806E066
mov r0, r9
@@ -45143,7 +45143,7 @@ _0806E066:
cmp r0, 0
beq _0806E08A
mov r0, r9
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _0806E08A
mov r2, r9
@@ -47630,7 +47630,7 @@ sub_806F450:
cmp r0, 0
beq _0806F47A
adds r0, r5, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _0806F47A
ldr r0, [r5, 0x70]
@@ -48439,7 +48439,7 @@ sub_806FA5C:
adds r0, r5, 0x4
mov r1, r8
adds r1, 0x4
- bl sub_80983D8
+ bl CalculateFacingDir
adds r4, r0, 0
movs r0, 0
mov r10, r0
diff --git a/asm/code_807001C.s b/asm/code_807001C.s
index 5d900ee..9ce2c3f 100644
--- a/asm/code_807001C.s
+++ b/asm/code_807001C.s
@@ -17,7 +17,7 @@ HasStatusAffectingActions:
adds r0, r4, 0
adds r0, 0x44
movs r1, 0x1
- bl sub_8044C94
+ bl SetAction
adds r0, r4, 0
adds r0, 0xA8
ldrb r0, [r0]
@@ -219,7 +219,7 @@ sub_80701A4:
adds r0, r6, 0
adds r0, 0x44
movs r1, 0x1
- bl sub_8044C94
+ bl SetAction
adds r0, r6, 0
adds r0, 0xA8
ldrb r0, [r0]
@@ -366,7 +366,7 @@ _080702B0:
adds r0, r6, 0
adds r0, 0x44
movs r1, 0x14
- bl sub_8044C94
+ bl SetAction
adds r3, r5, 0
adds r7, r6, 0
adds r7, 0x50
@@ -497,7 +497,7 @@ sub_80703A0:
ldrsh r0, [r4, r1]
movs r2, 0x2
ldrsh r1, [r4, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r5, r0, 0
movs r1, 0
ldrsh r0, [r4, r1]
@@ -633,7 +633,7 @@ sub_807049C:
ldrsh r0, [r4, r1]
movs r2, 0x2
ldrsh r1, [r4, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r5, r0, 0
movs r1, 0
ldrsh r0, [r4, r1]
@@ -655,7 +655,7 @@ sub_807049C:
ldr r0, [r5, 0x10]
cmp r0, 0
beq _080704E2
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _0807055A
_080704E2:
@@ -739,7 +739,7 @@ sub_8070564:
ldrsh r0, [r4, r1]
movs r2, 0x2
ldrsh r1, [r4, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r5, r0, 0
movs r1, 0
ldrsh r0, [r4, r1]
@@ -761,7 +761,7 @@ sub_8070564:
ldr r0, [r5, 0x10]
cmp r0, 0
beq _080705A8
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _080705E6
_080705A8:
@@ -817,7 +817,7 @@ sub_80705F0:
ldrsh r0, [r4, r1]
movs r2, 0x2
ldrsh r1, [r4, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r5, r0, 0
movs r1, 0
ldrsh r0, [r4, r1]
@@ -839,7 +839,7 @@ sub_80705F0:
ldr r0, [r5, 0x10]
cmp r0, 0
beq _08070636
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _0807069A
_08070636:
@@ -910,7 +910,7 @@ sub_80706A4:
ldrsh r0, [r4, r1]
movs r2, 0x2
ldrsh r1, [r4, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r5, r0, 0
movs r1, 0
ldrsh r0, [r4, r1]
@@ -932,7 +932,7 @@ sub_80706A4:
ldr r0, [r5, 0x10]
cmp r0, 0
beq _080706F2
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _0807076A
ldr r0, [r5, 0x10]
diff --git a/asm/code_8070D04.s b/asm/code_8070D04.s
index 06b2f0c..8263469 100644
--- a/asm/code_8070D04.s
+++ b/asm/code_8070D04.s
@@ -86,7 +86,7 @@ sub_8070D6C:
movs r3, 0x2
ldrsh r2, [r2, r3]
adds r1, r2
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r2, r0, 0
ldrh r1, [r2]
movs r0, 0x10
@@ -141,7 +141,7 @@ _08070E04:
ldrsh r0, [r4, r1]
movs r2, 0x6
ldrsh r1, [r4, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r2, r0, 0
adds r1, r2, 0
adds r1, 0xA
@@ -192,7 +192,7 @@ sub_8070E3C:
movs r3, 0x2
ldrsh r2, [r2, r3]
adds r1, r2
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r2, r0, 0
ldrh r1, [r2]
movs r0, 0x10
@@ -202,7 +202,7 @@ sub_8070E3C:
ldr r0, [r2, 0x10]
cmp r0, 0
beq _08070E8A
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _08070F0C
_08070E8A:
@@ -251,7 +251,7 @@ _08070EDC:
ldrsh r0, [r6, r1]
movs r2, 0x2
ldrsh r1, [r6, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r2, r0, 0
adds r1, r2, 0
adds r1, 0xA
@@ -295,7 +295,7 @@ sub_8070F14:
movs r3, 0x2
ldrsh r2, [r2, r3]
adds r1, r2
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r2, r0, 0
ldrh r1, [r2]
movs r0, 0x10
@@ -309,7 +309,7 @@ sub_8070F14:
ldrsh r0, [r4, r1]
movs r2, 0x6
ldrsh r1, [r4, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r2, r0, 0
ldr r1, _08070F74
movs r0, 0x7
@@ -357,7 +357,7 @@ sub_8070F80:
movs r3, 0x2
ldrsh r2, [r2, r3]
adds r1, r2
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r2, r0, 0
ldrh r1, [r2]
movs r0, 0x10
@@ -367,7 +367,7 @@ sub_8070F80:
ldr r0, [r2, 0x10]
cmp r0, 0
beq _08070FCC
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _08071050
_08070FCC:
@@ -416,7 +416,7 @@ _08071020:
ldrsh r0, [r4, r1]
movs r2, 0x6
ldrsh r1, [r4, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r2, r0, 0
adds r1, r2, 0
adds r1, 0xA
@@ -466,7 +466,7 @@ sub_8071058:
movs r3, 0x2
ldrsh r2, [r2, r3]
adds r1, r2
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r4, r0, 0
ldrh r1, [r4]
movs r0, 0x10
@@ -476,7 +476,7 @@ sub_8071058:
ldr r0, [r4, 0x10]
cmp r0, 0
beq _080710AE
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
beq _080710AE
ldr r0, [r4, 0x10]
@@ -530,7 +530,7 @@ _08071100:
ldrsh r0, [r5, r1]
movs r2, 0x6
ldrsh r1, [r5, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r4, r0, 0
adds r1, r4, 0
adds r1, 0xA
@@ -584,7 +584,7 @@ _08071152:
movs r3, 0x2
ldrsh r2, [r2, r3]
adds r1, r2
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r2, r0, 0
ldrh r1, [r2]
movs r0, 0x10
@@ -594,7 +594,7 @@ _08071152:
ldr r0, [r2, 0x10]
cmp r0, 0
beq _0807118A
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _0807120C
_0807118A:
@@ -643,7 +643,7 @@ _080711DC:
ldrsh r0, [r4, r1]
movs r2, 0x6
ldrsh r1, [r4, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r2, r0, 0
adds r1, r2, 0
adds r1, 0xA
@@ -699,7 +699,7 @@ sub_8071214:
movs r3, 0x2
ldrsh r2, [r2, r3]
adds r1, r2
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r5, r0, 0
ldrh r1, [r5]
movs r0, 0x10
@@ -737,7 +737,7 @@ _08071286:
cmp r0, 0
beq _080712B8
ldr r0, [r5, 0x14]
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x2
bne _080712B8
ldr r0, [r5, 0x14]
@@ -823,7 +823,7 @@ _08071348:
ldrsh r0, [r4, r1]
movs r2, 0x6
ldrsh r1, [r4, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r0, 0xA
adds r0, r6
ldr r2, _08071374
@@ -943,7 +943,7 @@ _08071432:
ldrsh r0, [r4, r1]
movs r2, 0x6
ldrsh r1, [r4, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r0, 0xA
adds r0, r5
ldrb r0, [r0]
diff --git a/asm/code_80718D8.s b/asm/code_80718D8.s
index 7eeb1e9..e387988 100644
--- a/asm/code_80718D8.s
+++ b/asm/code_80718D8.s
@@ -230,8 +230,8 @@ _08071A6A:
bx r1
thumb_func_end sub_8071A44
- thumb_func_start sub_8071A70
-sub_8071A70:
+ thumb_func_start ToolboxEnabled
+ToolboxEnabled:
push {lr}
movs r1, 0x2
ldrsh r0, [r0, r1]
@@ -246,7 +246,7 @@ _08071A84:
_08071A86:
pop {r1}
bx r1
- thumb_func_end sub_8071A70
+ thumb_func_end ToolboxEnabled
thumb_func_start sub_8071A8C
sub_8071A8C:
@@ -471,7 +471,7 @@ _08071C08:
ldrsh r0, [r4, r1]
movs r2, 0x6
ldrsh r1, [r4, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r0, [r0]
movs r2, 0x80
lsls r2, 1
@@ -2529,7 +2529,7 @@ _08072C0C:
movs r3, 0x6
ldrsh r2, [r7, r3]
adds r1, r2
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r1, r0, 0
ldr r0, _08072C80
bl sub_807034C
@@ -3104,7 +3104,7 @@ _08073114:
b _080731B8
_0807311C:
adds r0, r6, 0
- bl sub_8071A70
+ bl ToolboxEnabled
lsls r0, 24
cmp r0, 0
beq _08073136
@@ -3774,4408 +3774,4 @@ _08073650: .4byte gDungeonGlobalData
_08073654: .4byte 0x000135cc
thumb_func_end sub_807360C
- thumb_func_start DecideUseItem
-DecideUseItem:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x58
- mov r8, r0
- ldr r6, [r0, 0x70]
- bl CannotUseItems
- lsls r0, 24
- cmp r0, 0
- beq _080736B8
- adds r1, r6, 0
- adds r1, 0xFC
- movs r0, 0
- strb r0, [r1]
- b _080739C4
-_0807367C:
- adds r0, r6, 0
- adds r0, 0x44
- movs r1, 0x24
- bl sub_8044C94
- adds r0, r6, 0
- adds r0, 0x48
- add r1, sp, 0x54
- ldrb r1, [r1]
- strb r1, [r0]
- mov r2, r8
- ldrh r1, [r2, 0x4]
- adds r0, 0x4
- strh r1, [r0]
- ldrh r0, [r2, 0x6]
- adds r1, r6, 0
- adds r1, 0x4E
- strh r0, [r1]
- ldr r0, _080736B4
- adds r0, r7, r0
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- adds r1, r6, 0
- adds r1, 0x46
- strb r0, [r1]
- b _08073718
- .align 2, 0
-_080736B4: .4byte gUnknown_202F330
-_080736B8:
- adds r0, r6, 0
- adds r0, 0xFC
- ldrb r0, [r0]
- cmp r0, 0
- bne _080736C4
- b _080737DC
-_080736C4:
- adds r7, r6, 0
- adds r7, 0x60
- ldrb r1, [r7]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080736D4
- b _080739C4
-_080736D4:
- movs r3, 0x81
- str r3, [sp, 0x54]
- ldrb r0, [r7, 0x2]
- bl GetItemType
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0807372C
- mov r0, r8
- movs r1, 0x2
- adds r2, r7, 0
- movs r3, 0x1
- bl sub_80739DC
- movs r5, 0
- ldr r0, _08073724
- ldr r0, [r0]
- cmp r5, r0
- bge _08073718
- ldr r4, _08073728
-_080736FE:
- lsls r7, r5, 2
- ldr r0, [r4]
- bl sub_8084144
- lsls r0, 24
- cmp r0, 0
- bne _0807367C
- adds r4, 0x4
- adds r5, 0x1
- ldr r0, _08073724
- ldr r0, [r0]
- cmp r5, r0
- blt _080736FE
-_08073718:
- ldr r0, _08073724
- ldr r0, [r0]
- cmp r5, r0
- beq _08073722
- b _080739C4
-_08073722:
- b _08073792
- .align 2, 0
-_08073724: .4byte gUnknown_203B440
-_08073728: .4byte gUnknown_202F358
-_0807372C:
- cmp r0, 0x1
- bne _0807377C
- mov r0, r8
- adds r1, r7, 0
- mov r2, sp
- movs r3, 0x1
- bl sub_8073AA0
- ldr r0, _08073778
- ldr r0, [r0]
- cmp r0, 0
- beq _08073792
- bl DungeonRandomCapped
- adds r4, r0, 0
- adds r0, r6, 0
- adds r0, 0x44
- movs r1, 0x24
- bl sub_8044C94
- adds r0, r6, 0
- adds r0, 0x48
- add r1, sp, 0x54
- ldrb r1, [r1]
- strb r1, [r0]
- mov r2, r8
- ldrh r1, [r2, 0x4]
- adds r0, 0x4
- strh r1, [r0]
- ldrh r0, [r2, 0x6]
- adds r1, r6, 0
- adds r1, 0x4E
- strh r0, [r1]
- mov r0, r8
- adds r0, 0x4
- lsls r4, 2
- add r4, sp
- b _0807395E
- .align 2, 0
-_08073778: .4byte gUnknown_203B440
-_0807377C:
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08073792
- adds r0, r6, 0
- adds r0, 0x44
- movs r1, 0x23
- bl sub_8044C94
- b _080738CE
-_08073792:
- adds r0, r6, 0
- adds r0, 0x44
- movs r1, 0x39
- bl sub_8044C94
- b _080739C4
-_0807379E:
- adds r0, r6, 0
- adds r0, 0x44
- movs r1, 0x24
- bl sub_8044C94
- adds r0, r6, 0
- adds r0, 0x48
- add r3, sp, 0x54
- ldrb r3, [r3]
- strb r3, [r0]
- mov r0, r8
- ldrh r1, [r0, 0x4]
- adds r0, r6, 0
- adds r0, 0x4C
- strh r1, [r0]
- mov r1, r8
- ldrh r0, [r1, 0x6]
- adds r1, r6, 0
- adds r1, 0x4E
- strh r0, [r1]
- ldr r0, _080737D8
- add r0, r10
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- adds r1, r6, 0
- adds r1, 0x46
- strb r0, [r1]
- b _080739C4
- .align 2, 0
-_080737D8: .4byte gUnknown_202F330
-_080737DC:
- mov r0, r8
- movs r1, 0x16
- bl HasIQSkill
- lsls r0, 24
- cmp r0, 0
- bne _080737EC
- b _080739C4
-_080737EC:
- movs r2, 0x1
- str r2, [sp, 0x50]
-_080737F0:
- ldr r3, [sp, 0x50]
- cmp r3, 0x1
- bne _080737FE
- adds r7, r6, 0
- adds r7, 0x60
- movs r0, 0x81
- b _0807384E
-_080737FE:
- ldr r1, [sp, 0x50]
- cmp r1, 0
- bne _08073832
- mov r2, r8
- movs r3, 0x4
- ldrsh r0, [r2, r3]
- movs r3, 0x6
- ldrsh r1, [r2, r3]
- bl sub_804954C
- adds r4, r0, 0
- ldr r0, [r4, 0x14]
- cmp r0, 0
- bne _0807381C
- b _080739B8
-_0807381C:
- bl sub_80450F8
- cmp r0, 0x3
- beq _08073826
- b _080739B8
-_08073826:
- ldr r0, [r4, 0x14]
- bl sub_8045108
- adds r7, r0, 0
- movs r0, 0x80
- b _0807384E
-_08073832:
- ldrb r0, [r6, 0x7]
- cmp r0, 0
- bne _0807383A
- b _080739C4
-_0807383A:
- ldr r1, _080738C0
- ldr r2, [sp, 0x50]
- lsls r0, r2, 2
- subs r0, 0x8
- ldr r1, [r1]
- adds r7, r1, r0
- adds r0, r2, 0
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
-_0807384E:
- str r0, [sp, 0x54]
- ldrb r1, [r7]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0807385C
- b _080739B8
-_0807385C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08073866
- b _080739B8
-_08073866:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08073870
- b _080739B8
-_08073870:
- ldrb r0, [r7, 0x2]
- movs r1, 0
- bl GetItemAIFlags
- lsls r0, 24
- cmp r0, 0
- beq _080738EC
- mov r0, r8
- adds r1, r7, 0
- movs r2, 0x2
- bl sub_8048F28
- adds r5, r0, 0
- cmp r5, 0
- beq _080738EC
- ldrb r0, [r7, 0x2]
- bl GetItemType
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- cmp r4, 0x9
- bne _080738A4
- ldrb r0, [r6, 0x6]
- cmp r0, 0
- beq _080738EC
-_080738A4:
- adds r0, r5, 0
- bl sub_8084144
- lsls r0, 24
- cmp r0, 0
- beq _080738EC
- cmp r4, 0x9
- bne _080738C4
- adds r0, r6, 0
- adds r0, 0x44
- movs r1, 0x31
- bl sub_8044C94
- b _080738CE
- .align 2, 0
-_080738C0: .4byte gTeamInventory_203B460
-_080738C4:
- adds r0, r6, 0
- adds r0, 0x44
- movs r1, 0x23
- bl sub_8044C94
-_080738CE:
- adds r0, r6, 0
- adds r0, 0x48
- add r3, sp, 0x54
- ldrb r3, [r3]
- strb r3, [r0]
- mov r0, r8
- ldrh r1, [r0, 0x4]
- adds r0, r6, 0
- adds r0, 0x4C
- strh r1, [r0]
- mov r2, r8
- ldrh r1, [r2, 0x6]
- adds r0, 0x2
- strh r1, [r0]
- b _080739C4
-_080738EC:
- adds r0, r6, 0
- bl sub_8071A70
- lsls r0, 24
- cmp r0, 0
- beq _080739B8
- movs r3, 0x1
- mov r9, r3
-_080738FC:
- ldrb r0, [r7, 0x2]
- mov r1, r9
- bl GetItemAIFlags
- lsls r0, 24
- cmp r0, 0
- beq _080739AE
- ldrb r0, [r7, 0x2]
- bl GetItemType
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08073978
- mov r0, r8
- adds r1, r7, 0
- mov r2, sp
- movs r3, 0
- bl sub_8073AA0
- ldr r1, _08073974
- ldr r0, [r1]
- cmp r0, 0
- beq _080739AE
- bl DungeonRandomCapped
- adds r4, r0, 0
- adds r0, r6, 0
- adds r0, 0x44
- movs r1, 0x24
- bl sub_8044C94
- adds r0, r6, 0
- adds r0, 0x48
- add r2, sp, 0x54
- ldrb r2, [r2]
- strb r2, [r0]
- mov r3, r8
- ldrh r1, [r3, 0x4]
- adds r0, 0x4
- strh r1, [r0]
- ldrh r0, [r3, 0x6]
- adds r1, r6, 0
- adds r1, 0x4E
- strh r0, [r1]
- lsls r4, 2
- add r4, sp
- mov r0, r8
- adds r0, 0x4
-_0807395E:
- adds r1, r4, 0
- bl sub_80983D8
- movs r1, 0x7
- ands r0, r1
- adds r1, r6, 0
- adds r1, 0x46
- strb r0, [r1]
- ldr r0, [r4]
- str r0, [r6, 0x58]
- b _080739C4
- .align 2, 0
-_08073974: .4byte gUnknown_203B440
-_08073978:
- mov r0, r8
- mov r1, r9
- adds r2, r7, 0
- movs r3, 0
- bl sub_80739DC
- movs r5, 0
- ldr r1, _080739D4
- ldr r0, [r1]
- cmp r5, r0
- bge _080739AE
- ldr r4, _080739D8
-_08073990:
- lsls r2, r5, 2
- mov r10, r2
- ldr r0, [r4]
- bl sub_8084144
- lsls r0, 24
- cmp r0, 0
- beq _080739A2
- b _0807379E
-_080739A2:
- adds r4, 0x4
- adds r5, 0x1
- ldr r3, _080739D4
- ldr r0, [r3]
- cmp r5, r0
- blt _08073990
-_080739AE:
- movs r0, 0x1
- add r9, r0
- mov r1, r9
- cmp r1, 0x2
- ble _080738FC
-_080739B8:
- ldr r2, [sp, 0x50]
- adds r2, 0x1
- str r2, [sp, 0x50]
- cmp r2, 0x15
- bgt _080739C4
- b _080737F0
-_080739C4:
- add sp, 0x58
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080739D4: .4byte gUnknown_203B440
-_080739D8: .4byte gUnknown_202F358
- thumb_func_end DecideUseItem
-
- thumb_func_start sub_80739DC
-sub_80739DC:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r5, r0, 0
- mov r10, r1
- mov r9, r2
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- ldr r1, _08073A44
- movs r0, 0
- str r0, [r1]
- ldr r1, _08073A48
- movs r2, 0
- adds r0, r1, 0x7
-_08073A00:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _08073A00
- movs r7, 0
-_08073A0A:
- ldr r0, _08073A4C
- ldr r0, [r0]
- lsls r1, r7, 2
- ldr r2, _08073A50
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _08073A88
- cmp r5, r4
- beq _08073A88
- mov r0, r10
- cmp r0, 0x1
- bne _08073A54
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0
- bl sub_8071598
- lsls r0, 24
- cmp r0, 0
- bne _08073A88
- movs r6, 0x3
- b _08073A6A
- .align 2, 0
-_08073A44: .4byte gUnknown_203B440
-_08073A48: .4byte gUnknown_202F350
-_08073A4C: .4byte gDungeonGlobalData
-_08073A50: .4byte 0x000135cc
-_08073A54:
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x1
- bl sub_8071598
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08073A88
- movs r6, 0x1
-_08073A6A:
- adds r0, r5, 0
- adds r1, r4, 0
- bl CanSee
- lsls r0, 24
- cmp r0, 0
- beq _08073A88
- mov r2, r8
- str r2, [sp]
- adds r0, r5, 0
- adds r1, r4, 0
- mov r2, r9
- adds r3, r6, 0
- bl sub_8073B78
-_08073A88:
- adds r7, 0x1
- cmp r7, 0x13
- ble _08073A0A
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80739DC
-
- thumb_func_start sub_8073AA0
-sub_8073AA0:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r5, r0, 0
- mov r10, r1
- mov r9, r2
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- ldr r1, _08073B6C
- movs r0, 0
- str r0, [r1]
- movs r6, 0
- adds r7, r1, 0
-_08073AC0:
- ldr r0, _08073B70
- ldr r0, [r0]
- lsls r1, r6, 2
- ldr r2, _08073B74
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _08073B56
- cmp r5, r4
- beq _08073B56
- adds r0, r5, 0
- adds r1, r4, 0
- bl CanSee
- lsls r0, 24
- cmp r0, 0
- beq _08073B56
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x1
- bl sub_8071598
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08073B56
- movs r3, 0x4
- ldrsh r1, [r4, r3]
- movs r2, 0x4
- ldrsh r0, [r5, r2]
- subs r2, r1, r0
- cmp r2, 0
- bge _08073B10
- negs r2, r2
-_08073B10:
- movs r3, 0x6
- ldrsh r1, [r4, r3]
- movs r3, 0x6
- ldrsh r0, [r5, r3]
- subs r1, r0
- cmp r1, 0
- bge _08073B20
- negs r1, r1
-_08073B20:
- cmp r1, r2
- bge _08073B26
- adds r1, r2, 0
-_08073B26:
- cmp r1, 0xA
- bgt _08073B56
- mov r0, r8
- cmp r0, 0
- bne _08073B44
- adds r0, r4, 0
- mov r1, r10
- movs r2, 0x1
- bl sub_8048F28
- bl sub_8084144
- lsls r0, 24
- cmp r0, 0
- beq _08073B56
-_08073B44:
- ldr r2, [r7]
- lsls r1, r2, 2
- add r1, r9
- ldrh r0, [r4, 0x4]
- strh r0, [r1]
- ldrh r0, [r4, 0x6]
- strh r0, [r1, 0x2]
- adds r2, 0x1
- str r2, [r7]
-_08073B56:
- adds r6, 0x1
- cmp r6, 0x13
- ble _08073AC0
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08073B6C: .4byte gUnknown_203B440
-_08073B70: .4byte gDungeonGlobalData
-_08073B74: .4byte 0x000135cc
- thumb_func_end sub_8073AA0
-
- thumb_func_start sub_8073B78
-sub_8073B78:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r4, r0, 0
- adds r5, r1, 0
- mov r9, r2
- mov r10, r3
- ldr r0, [sp, 0x20]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r0, 0x4
- ldrsh r1, [r4, r0]
- movs r2, 0x4
- ldrsh r0, [r5, r2]
- subs r2, r1, r0
- cmp r2, 0
- bge _08073BA2
- negs r2, r2
-_08073BA2:
- movs r3, 0x6
- ldrsh r1, [r4, r3]
- movs r6, 0x6
- ldrsh r0, [r5, r6]
- subs r1, r0
- cmp r1, 0
- bge _08073BB2
- negs r1, r1
-_08073BB2:
- ldr r0, [r4, 0x70]
- adds r0, 0xE0
- ldrb r0, [r0]
- cmp r0, 0
- bne _08073BCA
- adds r0, r1, 0
- cmp r1, r2
- bge _08073BC4
- adds r0, r2, 0
-_08073BC4:
- cmp r0, 0xA
- ble _08073BCA
- b _08073CDC
-_08073BCA:
- movs r6, 0x1
- negs r6, r6
- cmp r2, r1
- bne _08073C14
- movs r7, 0x4
- ldrsh r1, [r4, r7]
- movs r2, 0x4
- ldrsh r0, [r5, r2]
- ldrh r2, [r4, 0x4]
- ldrh r3, [r5, 0x4]
- cmp r1, r0
- bge _08073BFA
- movs r6, 0x6
- ldrsh r1, [r4, r6]
- movs r7, 0x6
- ldrsh r0, [r5, r7]
- cmp r1, r0
- bge _08073BF2
- movs r6, 0x1
- b _08073C7E
-_08073BF2:
- cmp r1, r0
- ble _08073BFA
- movs r6, 0x3
- b _08073C7E
-_08073BFA:
- lsls r1, r2, 16
- lsls r0, r3, 16
- movs r6, 0x7
- cmp r1, r0
- ble _08073C7A
- movs r0, 0x6
- ldrsh r1, [r4, r0]
- movs r2, 0x6
- ldrsh r0, [r5, r2]
- cmp r1, r0
- ble _08073C7A
- movs r6, 0x5
- b _08073C7E
-_08073C14:
- movs r3, 0x4
- ldrsh r1, [r4, r3]
- movs r7, 0x4
- ldrsh r0, [r5, r7]
- ldrh r2, [r4, 0x4]
- ldrh r3, [r5, 0x4]
- cmp r1, r0
- bne _08073C34
- movs r0, 0x6
- ldrsh r1, [r4, r0]
- movs r7, 0x6
- ldrsh r0, [r5, r7]
- cmp r1, r0
- bge _08073C34
- movs r6, 0
- b _08073C7E
-_08073C34:
- lsls r1, r2, 16
- lsls r0, r3, 16
- cmp r1, r0
- bge _08073C4C
- movs r0, 0x6
- ldrsh r1, [r4, r0]
- movs r7, 0x6
- ldrsh r0, [r5, r7]
- cmp r1, r0
- bne _08073C4C
- movs r6, 0x2
- b _08073C7E
-_08073C4C:
- lsls r1, r2, 16
- lsls r0, r3, 16
- cmp r1, r0
- bne _08073C64
- movs r0, 0x6
- ldrsh r1, [r4, r0]
- movs r7, 0x6
- ldrsh r0, [r5, r7]
- cmp r1, r0
- ble _08073C64
- movs r6, 0x4
- b _08073C7E
-_08073C64:
- lsls r1, r2, 16
- lsls r0, r3, 16
- cmp r1, r0
- ble _08073C7A
- movs r0, 0x6
- ldrsh r1, [r4, r0]
- movs r2, 0x6
- ldrsh r0, [r5, r2]
- cmp r1, r0
- bne _08073C7A
- movs r6, 0x6
-_08073C7A:
- cmp r6, 0
- blt _08073CDC
-_08073C7E:
- ldr r0, _08073CC0
- adds r7, r6, r0
- ldrb r0, [r7]
- cmp r0, 0
- bne _08073CDC
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- movs r3, 0xA
- bl sub_807C9F8
- lsls r0, 24
- cmp r0, 0
- beq _08073CDC
- movs r0, 0x1
- strb r0, [r7]
- ldr r1, _08073CC4
- ldr r0, _08073CC8
- ldr r0, [r0]
- lsls r0, 2
- adds r1, r0, r1
- str r6, [r1]
- ldr r1, _08073CCC
- adds r4, r0, r1
- mov r3, r8
- cmp r3, 0
- bne _08073CD0
- adds r0, r5, 0
- mov r1, r9
- mov r2, r10
- bl sub_8048F28
- b _08073CD2
- .align 2, 0
-_08073CC0: .4byte gUnknown_202F350
-_08073CC4: .4byte gUnknown_202F330
-_08073CC8: .4byte gUnknown_203B440
-_08073CCC: .4byte gUnknown_202F358
-_08073CD0:
- movs r0, 0x64
-_08073CD2:
- str r0, [r4]
- ldr r1, _08073CEC
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_08073CDC:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08073CEC: .4byte gUnknown_203B440
- thumb_func_end sub_8073B78
-
- thumb_func_start sub_8073CF0
-sub_8073CF0:
- push {lr}
- bl sub_8067110
- pop {r0}
- bx r0
- thumb_func_end sub_8073CF0
-
- thumb_func_start sub_8073CFC
-sub_8073CFC:
- push {lr}
- bl sub_80671A0
- pop {r0}
- bx r0
- thumb_func_end sub_8073CFC
-
- thumb_func_start sub_8073D08
-sub_8073D08:
- push {lr}
- bl sub_8073D14
- pop {r0}
- bx r0
- thumb_func_end sub_8073D08
-
- thumb_func_start sub_8073D14
-sub_8073D14:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xB0
- adds r6, r0, 0
- ldr r4, [r6, 0x70]
- bl sub_8045128
- ldr r5, [r0, 0x14]
- cmp r5, 0
- bne _08073D30
- b _0807407A
-_08073D30:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _08073D3C
- b _0807407A
-_08073D3C:
- ldr r0, _08073D68
- adds r1, r6, 0
- movs r2, 0
- bl SetMessageArgument
- ldrb r0, [r4, 0x7]
- cmp r0, 0
- beq _08073D4E
- b _0807407A
-_08073D4E:
- ldrb r0, [r4, 0x8]
- cmp r0, 0x1
- bne _08073D56
- b _0807407A
-_08073D56:
- adds r0, r4, 0
- adds r0, 0x40
- ldrb r0, [r0]
- cmp r0, 0x4A
- beq _08073D64
- cmp r0, 0x47
- bne _08073D6C
-_08073D64:
- movs r0, 0x1
- b _08073D6E
- .align 2, 0
-_08073D68: .4byte gAvailablePokemonNames
-_08073D6C:
- movs r0, 0
-_08073D6E:
- cmp r0, 0
- beq _08073D74
- b _0807407A
-_08073D74:
- adds r0, r4, 0
- adds r0, 0xA4
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08073D80
- b _0807407A
-_08073D80:
- ldr r0, [r6, 0x70]
- mov r10, r0
- adds r0, r5, 0
- bl sub_8045108
- adds r5, r0, 0
- ldrb r1, [r5]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08073D98
- b _0807407A
-_08073D98:
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_8071518
- lsls r0, 24
- cmp r0, 0
- beq _08073DC8
- ldr r0, _08073DBC
- adds r1, r5, 0
- bl sub_8045BF8
- ldr r0, _08073DC0
- adds r1, r6, 0
- movs r2, 0
- bl SetMessageArgument
- ldr r0, _08073DC4
- b _0807404C
- .align 2, 0
-_08073DBC: .4byte gUnknown_202DE58
-_08073DC0: .4byte gAvailablePokemonNames
-_08073DC4: .4byte gUnknown_80F8F88
-_08073DC8:
- mov r1, r10
- ldrb r0, [r1, 0x6]
- cmp r0, 0
- bne _08073E24
- ldrb r0, [r5, 0x2]
- bl GetItemType
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bne _08073E24
- mov r7, r10
- ldrb r0, [r7, 0x6]
- cmp r0, 0
- beq _08073DF4
- ldr r0, _08073DF0
- bl PlaySoundEffect
- b _08073DFC
- .align 2, 0
-_08073DF0: .4byte 0x0000014b
-_08073DF4:
- movs r0, 0xA6
- lsls r0, 1
- bl PlaySoundEffect
-_08073DFC:
- adds r0, r5, 0
- bl GetMoneyValue
- bl AddToTeamMoney
- ldr r0, _08073E1C
- adds r1, r5, 0
- bl sub_8045BF8
- adds r0, r6, 0x4
- movs r1, 0x1
- bl sub_80461C8
- ldr r0, _08073E20
- b _0807404C
- .align 2, 0
-_08073E1C: .4byte gUnknown_202DE58
-_08073E20: .4byte gUnknown_80F9054
-_08073E24:
- ldr r0, _08073E64
- ldr r0, [r0]
- ldr r1, _08073E68
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08073E70
- mov r7, r10
- ldrb r0, [r7, 0x6]
- cmp r0, 0
- bne _08073E70
- movs r4, 0
- add r2, sp, 0x54
- adds r7, 0x60
- ldr r0, _08073E6C
- mov r1, sp
- ldr r0, [r0]
- adds r3, r2, 0
-_08073E48:
- stm r3!, {r0}
- stm r1!, {r4}
- adds r0, 0x4
- adds r4, 0x1
- cmp r4, 0x13
- ble _08073E48
- str r7, [r2, 0x50]
- movs r0, 0x1
- negs r0, r0
- str r0, [sp, 0x50]
- movs r0, 0x15
- mov r8, r0
- b _08073E80
- .align 2, 0
-_08073E64: .4byte gDungeonGlobalData
-_08073E68: .4byte 0x0000065b
-_08073E6C: .4byte gTeamInventory_203B460
-_08073E70:
- mov r0, r10
- adds r0, 0x60
- str r0, [sp, 0x54]
- movs r0, 0x1
- negs r0, r0
- str r0, [sp]
- movs r1, 0x1
- mov r8, r1
-_08073E80:
- ldrb r0, [r5, 0x2]
- add r7, sp, 0xA8
- strb r0, [r7]
- adds r0, r7, 0
- ldrb r0, [r0]
- cmp r0, 0x8
- bls _08073E90
- b _08073FA8
-_08073E90:
- ldrb r1, [r5]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08073E9C
- b _08073FA8
-_08073E9C:
- movs r1, 0x1
- negs r1, r1
- mov r12, r1
- mov r7, r12
- str r7, [sp, 0xAC]
- movs r4, 0
- cmp r4, r8
- bge _08073EEC
- ldr r0, _08073F94
- mov r9, r0
- add r3, sp, 0x54
-_08073EB2:
- ldr r2, [r3]
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08073EE4
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08073EE4
- ldr r1, [r5]
- mov r7, r9
- ands r1, r7
- ldr r0, [r2]
- ands r0, r7
- cmp r1, r0
- bne _08073EE4
- ldrb r0, [r2, 0x1]
- cmp r0, 0x63
- beq _08073EE4
- ldr r1, [sp, 0xAC]
- cmp r1, r0
- bge _08073EE4
- str r0, [sp, 0xAC]
- mov r12, r4
-_08073EE4:
- adds r3, 0x4
- adds r4, 0x1
- cmp r4, r8
- blt _08073EB2
-_08073EEC:
- movs r0, 0x1
- negs r0, r0
- cmp r12, r0
- bne _08073F40
- mov r7, r12
- str r7, [sp, 0xAC]
- movs r4, 0
- cmp r4, r8
- bge _08073F38
- add r0, sp, 0xA8
- ldrb r0, [r0]
- mov r9, r0
- add r3, sp, 0x54
-_08073F06:
- ldr r2, [r3]
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08073F30
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08073F30
- ldrb r1, [r2, 0x2]
- cmp r9, r1
- bne _08073F30
- ldrb r0, [r2, 0x1]
- cmp r0, 0x63
- beq _08073F30
- ldr r7, [sp, 0xAC]
- cmp r7, r0
- bge _08073F30
- str r0, [sp, 0xAC]
- mov r12, r4
-_08073F30:
- adds r3, 0x4
- adds r4, 0x1
- cmp r4, r8
- blt _08073F06
-_08073F38:
- movs r0, 0x1
- negs r0, r0
- cmp r12, r0
- beq _08073FA8
-_08073F40:
- add r0, sp, 0x54
- mov r1, r12
- lsls r4, r1, 2
- adds r3, r0, r4
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r5, 0x1]
- adds r1, r0
- cmp r1, 0x62
- ble _08073F56
- movs r1, 0x63
-_08073F56:
- strb r1, [r2, 0x1]
- ldrb r1, [r5]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08073F6C
- ldr r0, [r3]
- ldrb r1, [r0]
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0]
-_08073F6C:
- ldr r0, _08073F98
- adds r1, r5, 0
- bl sub_8045BF8
- adds r0, r6, 0x4
- movs r1, 0x1
- bl sub_80461C8
- movs r0, 0xA5
- lsls r0, 1
- bl PlaySoundEffect
- mov r7, sp
- adds r0, r7, r4
- ldr r0, [r0]
- cmp r0, 0
- bge _08073FA0
- ldr r0, _08073F9C
- b _0807404C
- .align 2, 0
-_08073F94: .4byte 0x00ff0008
-_08073F98: .4byte gUnknown_202DE58
-_08073F9C: .4byte gUnknown_80F9018
-_08073FA0:
- ldr r0, _08073FA4
- b _0807404C
- .align 2, 0
-_08073FA4: .4byte gUnknown_80F9050
-_08073FA8:
- movs r4, 0
- cmp r4, r8
- bge _08073FD2
- ldr r0, [sp, 0x54]
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08073FD2
- movs r3, 0x1
- add r2, sp, 0x54
-_08073FBE:
- adds r2, 0x4
- adds r4, 0x1
- cmp r4, r8
- bge _08073FD2
- ldr r0, [r2]
- ldrb r1, [r0]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _08073FBE
-_08073FD2:
- cmp r4, r8
- bne _08073FEC
- ldr r0, _08073FE4
- adds r1, r5, 0
- bl sub_8045BF8
- ldr r0, _08073FE8
- b _0807404C
- .align 2, 0
-_08073FE4: .4byte gUnknown_202DE58
-_08073FE8: .4byte gUnknown_80F8F54
-_08073FEC:
- mov r1, r10
- ldrb r0, [r1, 0x6]
- cmp r0, 0
- beq _08074000
- ldr r0, _08073FFC
- bl PlaySoundEffect
- b _08074008
- .align 2, 0
-_08073FFC: .4byte 0x0000014b
-_08074000:
- movs r0, 0xA5
- lsls r0, 1
- bl PlaySoundEffect
-_08074008:
- lsls r0, r4, 2
- add r0, sp
- ldr r0, [r0]
- cmp r0, 0
- bge _08074034
- ldr r0, [r5]
- mov r7, r10
- str r0, [r7, 0x60]
- ldr r0, _0807402C
- adds r1, r5, 0
- bl sub_8045BF8
- adds r0, r6, 0x4
- movs r1, 0x1
- bl sub_80461C8
- ldr r0, _08074030
- b _0807404C
- .align 2, 0
-_0807402C: .4byte gUnknown_202DE58
-_08074030: .4byte gUnknown_80F9018
-_08074034:
- adds r0, r5, 0
- bl AddItemToInventory
- lsls r0, 24
- cmp r0, 0
- beq _08074060
- ldr r0, _08074058
- adds r1, r6, 0
- movs r2, 0
- bl SetMessageArgument
- ldr r0, _0807405C
-_0807404C:
- ldr r1, [r0]
- adds r0, r6, 0
- bl sub_805239C
- b _0807407A
- .align 2, 0
-_08074058: .4byte gAvailablePokemonNames
-_0807405C: .4byte gUnknown_80F8FAC
-_08074060:
- ldr r0, _0807408C
- adds r1, r5, 0
- bl sub_8045BF8
- adds r0, r6, 0x4
- movs r1, 0x1
- bl sub_80461C8
- ldr r0, _08074090
- ldr r1, [r0]
- adds r0, r6, 0
- bl sub_805239C
-_0807407A:
- add sp, 0xB0
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807408C: .4byte gUnknown_202DE58
-_08074090: .4byte gUnknown_80F9050
- thumb_func_end sub_8073D14
-
- thumb_func_start sub_8074094
-sub_8074094:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x30
- adds r5, r0, 0
- cmp r5, 0
- bne _080740AA
- bl _08074B2E
-_080740AA:
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _080740B8
- bl _08074B2E
-_080740B8:
- bl sub_8044B28
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- beq _080740C8
- bl _08074B2E
-_080740C8:
- ldr r0, [r5, 0x70]
- mov r8, r0
- movs r0, 0xA3
- lsls r0, 1
- add r0, r8
- strb r6, [r0]
- bl sub_805229C
- adds r0, r5, 0
- bl sub_807E8F0
- adds r0, r5, 0
- movs r1, 0x16
- bl sub_8046CB0
- lsls r0, 24
- cmp r0, 0
- beq _08074170
- ldr r4, _0807434C
- add r4, r8
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bls _08074102
- movs r0, 0x13
- strb r0, [r4]
-_08074102:
- movs r0, 0x64
- bl DungeonRandomCapped
- ldr r2, _08074350
- ldrb r1, [r4]
- lsls r1, 1
- adds r1, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- cmp r0, r1
- bge _08074170
- strb r6, [r4]
- adds r0, r5, 0
- bl sub_80444F4
- movs r0, 0
- bl sub_807520C
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _08074136
- bl _08074B2E
-_08074136:
- bl sub_8044B28
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _08074146
- bl _08074B2E
-_08074146:
- adds r0, r5, 0
- adds r1, r5, 0
- movs r2, 0
- movs r3, 0
- bl sub_807D148
- mov r3, r8
- ldrb r0, [r3, 0x7]
- cmp r0, 0
- bne _0807415C
- b _080743B0
-_0807415C:
- ldr r1, _08074354
- ldr r0, [r1]
- strb r4, [r0, 0x1]
- ldr r0, [r1]
- movs r4, 0xB8
- lsls r4, 3
- adds r0, r4
- movs r1, 0x1
- negs r1, r1
- str r1, [r0]
-_08074170:
- mov r1, r8
- ldrb r0, [r1, 0x7]
- cmp r0, 0
- bne _0807417A
- b _080743B0
-_0807417A:
- movs r2, 0
- mov r9, r2
- movs r4, 0xA
- adds r0, r5, 0
- movs r1, 0x17
- bl sub_8046CB0
- lsls r0, 24
- cmp r0, 0
- beq _08074190
- movs r4, 0
-_08074190:
- adds r0, r5, 0
- movs r1, 0x1F
- bl sub_8046CB0
- lsls r0, 24
- cmp r0, 0
- beq _080741A0
- subs r4, 0x1
-_080741A0:
- adds r0, r5, 0
- movs r1, 0x10
- bl HasIQSkill
- lsls r0, 24
- cmp r0, 0
- beq _080741B0
- subs r4, 0x1
-_080741B0:
- adds r0, r5, 0
- movs r1, 0x1B
- bl sub_8046CB0
- lsls r0, 24
- cmp r0, 0
- beq _080741C0
- adds r4, 0x1
-_080741C0:
- adds r0, r5, 0
- movs r1, 0xA
- bl sub_8046CB0
- lsls r0, 24
- cmp r0, 0
- beq _080741D0
- adds r4, 0x1
-_080741D0:
- adds r0, r5, 0
- movs r1, 0x2B
- bl sub_8046CB0
- lsls r0, 24
- cmp r0, 0
- beq _080741E0
- adds r4, 0x1
-_080741E0:
- cmp r4, 0
- bge _080741E6
- movs r4, 0
-_080741E6:
- cmp r4, 0x13
- ble _080741EC
- movs r4, 0x13
-_080741EC:
- mov r3, r9
- str r3, [sp, 0x8]
- ldr r0, _08074358
- str r0, [sp, 0xC]
- add r6, sp, 0x10
- lsls r2, r4, 3
- ldr r0, _0807435C
- adds r2, r0
- adds r0, r6, 0
- add r1, sp, 0x8
- bl sub_800A34C
- ldr r2, _08074360
- add r2, r8
- ldrb r0, [r2]
- cmp r0, 0x1
- bls _0807421E
- ldr r1, _08074364
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 16
- ldr r0, [r6, 0x4]
- adds r0, r1
- str r0, [r6, 0x4]
-_0807421E:
- mov r4, r9
- strb r4, [r2]
- movs r4, 0x9E
- lsls r4, 1
- add r4, r8
- ldr r7, [r4]
- add r0, sp, 0x18
- adds r1, r6, 0
- bl sub_80943A8
- ldr r2, [sp, 0x18]
- add r0, sp, 0x1C
- adds r1, r7, 0
- bl sub_80942C0
- ldr r0, [sp, 0x1C]
- str r0, [r4]
- movs r6, 0x1
- adds r0, r7, 0
- bl sub_8094450
- cmp r0, 0x13
- ble _0807425C
- ldr r0, [r4]
- bl sub_8094450
- cmp r0, 0x13
- bgt _0807425C
- ldr r0, _08074368
- ldr r0, [r0]
- mov r9, r0
-_0807425C:
- adds r0, r7, 0
- bl sub_8094450
- cmp r0, 0x9
- ble _0807427C
- movs r0, 0x9E
- lsls r0, 1
- add r0, r8
- ldr r0, [r0]
- bl sub_8094450
- cmp r0, 0x9
- bgt _0807427C
- ldr r0, _0807436C
- ldr r0, [r0]
- mov r9, r0
-_0807427C:
- movs r4, 0x9E
- lsls r4, 1
- add r4, r8
- ldr r0, [r4]
- bl sub_8094450
- cmp r0, 0
- bne _08074298
- add r0, sp, 0x20
- movs r1, 0
- bl sub_80943A0
- ldr r0, [sp, 0x20]
- str r0, [r4]
-_08074298:
- ldr r0, [r4]
- bl sub_8094450
- cmp r0, 0
- bge _080742AE
- add r0, sp, 0x24
- movs r1, 0
- bl sub_80943A0
- ldr r0, [sp, 0x24]
- str r0, [r4]
-_080742AE:
- ldr r0, [r4]
- bl sub_8094450
- cmp r0, 0
- bne _08074384
- bl sub_805E804
- adds r0, r5, 0
- bl sub_80444F4
- movs r0, 0
- bl sub_807520C
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _080742D8
- bl _08074B2E
-_080742D8:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _080742E6
- bl _08074B2E
-_080742E6:
- ldr r3, _08074354
- ldr r0, [r3]
- ldr r2, _08074370
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0x9
- bhi _080742F8
- adds r0, 0x1
- strb r0, [r1]
-_080742F8:
- ldr r0, [r3]
- adds r0, r2
- ldrb r2, [r0]
- cmp r2, 0x1
- bne _08074308
- ldr r0, _08074374
- ldr r0, [r0]
- mov r9, r0
-_08074308:
- cmp r2, 0x2
- bne _08074314
- ldr r0, _08074378
- ldr r0, [r0]
- mov r9, r0
- movs r6, 0
-_08074314:
- cmp r2, 0x3
- bne _08074320
- ldr r0, _0807437C
- ldr r0, [r0]
- mov r9, r0
- movs r6, 0
-_08074320:
- adds r0, r5, 0
- adds r1, r5, 0
- bl sub_807A96C
- ldr r3, _08074380
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0xE
- bl sub_806F324
- movs r1, 0xA3
- lsls r1, 1
- add r1, r8
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, [r4]
- bl sub_8094450
- cmp r0, 0
- beq _08074390
- b _080743B0
- .align 2, 0
-_0807434C: .4byte 0x00000169
-_08074350: .4byte gUnknown_80F5594
-_08074354: .4byte gDungeonGlobalData
-_08074358: .4byte 0x0000199a
-_0807435C: .4byte gUnknown_80F54F4
-_08074360: .4byte 0x00000153
-_08074364: .4byte gUnknown_80F60DC
-_08074368: .4byte gUnknown_80FD594
-_0807436C: .4byte gUnknown_80FD5B8
-_08074370: .4byte 0x00000679
-_08074374: .4byte gUnknown_80FD5DC
-_08074378: .4byte gUnknown_80FD608
-_0807437C: .4byte gUnknown_80FD628
-_08074380: .4byte 0x00000211
-_08074384:
- ldr r0, _08074408
- ldr r0, [r0]
- ldr r1, _0807440C
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_08074390:
- mov r2, r9
- cmp r2, 0
- beq _080743B0
- cmp r6, 0
- beq _080743A0
- ldr r0, _08074410
- bl PlaySoundEffect
-_080743A0:
- adds r0, r5, 0
- mov r1, r9
- bl SendMessage
- movs r0, 0x1E
- movs r1, 0x32
- bl sub_803E708
-_080743B0:
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _080743BE
- b _08074B2E
-_080743BE:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _080743CA
- b _08074B2E
-_080743CA:
- ldr r0, _08074408
- ldr r0, [r0]
- ldr r3, _08074414
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _08074480
- adds r0, r5, 0
- bl sub_807E580
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bne _0807441C
- adds r0, r5, 0
- movs r1, 0x6
- bl sub_8071858
- lsls r0, 24
- cmp r0, 0
- bne _08074466
- ldr r0, _08074418
- movs r4, 0
- ldrsh r1, [r0, r4]
- movs r3, 0x88
- lsls r3, 2
- adds r0, r5, 0
- movs r2, 0x12
- bl sub_806F324
- b _08074466
- .align 2, 0
-_08074408: .4byte gDungeonGlobalData
-_0807440C: .4byte 0x00000679
-_08074410: .4byte 0x00000153
-_08074414: .4byte 0x0000e266
-_08074418: .4byte gUnknown_80F4F8E
-_0807441C:
- adds r0, r5, 0
- bl sub_807E580
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08074466
- adds r0, r5, 0
- movs r1, 0x9
- bl sub_8071858
- lsls r0, 24
- cmp r0, 0
- bne _08074466
- adds r0, r5, 0
- movs r1, 0xD
- bl sub_8071858
- lsls r0, 24
- cmp r0, 0
- bne _08074466
- adds r0, r5, 0
- movs r1, 0x11
- bl sub_8071858
- lsls r0, 24
- cmp r0, 0
- bne _08074466
- ldr r0, _08074608
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r3, 0x88
- lsls r3, 2
- adds r0, r5, 0
- movs r2, 0x12
- bl sub_806F324
-_08074466:
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _08074474
- b _08074B2E
-_08074474:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _08074480
- b _08074B2E
-_08074480:
- movs r0, 0x64
- bl DungeonRandomCapped
- adds r4, r0, 0
- adds r0, r5, 0
- movs r1, 0x21
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- beq _080744D8
- ldr r0, _0807460C
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r4, r0
- bge _080744D8
- adds r0, r5, 0
- bl sub_8070A58
- lsls r0, 24
- cmp r0, 0
- beq _080744D8
- movs r0, 0
- bl sub_807520C
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _080744C0
- b _08074B2E
-_080744C0:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _080744CC
- b _08074B2E
-_080744CC:
- adds r0, r5, 0
- adds r1, r5, 0
- movs r2, 0x1
- movs r3, 0
- bl sub_8079F20
-_080744D8:
- adds r0, r5, 0
- movs r1, 0xB
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- beq _0807450C
- ldr r2, _08074610
- add r2, r8
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- ldrb r1, [r2]
- ldr r0, _08074614
- movs r4, 0
- ldrsh r0, [r0, r4]
- cmp r1, r0
- blt _0807450C
- movs r0, 0
- strb r0, [r2]
- adds r0, r5, 0
- adds r1, r5, 0
- movs r2, 0x7F
- movs r3, 0
- bl sub_8077910
-_0807450C:
- mov r0, r8
- adds r0, 0xA8
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _0807453C
- movs r0, 0
- bl sub_807520C
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _0807452A
- b _08074B2E
-_0807452A:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _08074536
- b _08074B2E
-_08074536:
- adds r0, r5, 0
- bl sub_80420B8
-_0807453C:
- mov r0, r8
- adds r0, 0xAC
- ldrb r1, [r0]
- adds r6, r0, 0
- cmp r1, 0x1
- bne _080745B6
- mov r4, r8
- adds r4, 0xAE
- ldrb r0, [r4]
- cmp r0, 0
- beq _0807455C
- subs r0, 0x1
- strb r0, [r4]
- lsls r0, 24
- cmp r0, 0
- bne _0807459C
-_0807455C:
- movs r0, 0
- bl sub_807520C
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _08074570
- b _08074B2E
-_08074570:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _0807457C
- b _08074B2E
-_0807457C:
- ldr r0, _08074618
- ldrh r0, [r0]
- strb r0, [r4]
- adds r0, r5, 0
- adds r1, r5, 0
- bl sub_807A96C
- ldr r0, _0807461C
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r3, 0x82
- lsls r3, 2
- adds r0, r5, 0
- movs r2, 0x1
- bl sub_806F324
-_0807459C:
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _080745AA
- b _08074B2E
-_080745AA:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _080745B6
- b _08074B2E
-_080745B6:
- ldrb r0, [r6]
- cmp r0, 0x2
- bne _08074628
- mov r4, r8
- adds r4, 0xAE
- ldrb r0, [r4]
- cmp r0, 0
- beq _080745D0
- subs r0, 0x1
- strb r0, [r4]
- lsls r0, 24
- cmp r0, 0
- bne _08074696
-_080745D0:
- movs r0, 0
- bl sub_807520C
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _080745E4
- b _08074B2E
-_080745E4:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _080745F0
- b _08074B2E
-_080745F0:
- ldr r0, _08074620
- ldrh r0, [r0]
- strb r0, [r4]
- adds r0, r5, 0
- adds r1, r5, 0
- bl sub_807A96C
- ldr r0, _08074624
- movs r3, 0
- ldrsh r1, [r0, r3]
- b _0807468C
- .align 2, 0
-_08074608: .4byte gUnknown_80F4F8E
-_0807460C: .4byte gUnknown_80F4E0C
-_08074610: .4byte 0x00000113
-_08074614: .4byte gUnknown_80F4F30
-_08074618: .4byte gUnknown_80F4F32
-_0807461C: .4byte gUnknown_80F4F70
-_08074620: .4byte gUnknown_80F4F34
-_08074624: .4byte gUnknown_80F4F72
-_08074628:
- cmp r0, 0x3
- bne _080746B0
- mov r2, r8
- adds r2, 0xAE
- ldrb r0, [r2]
- cmp r0, 0
- beq _08074640
- subs r0, 0x1
- strb r0, [r2]
- lsls r0, 24
- cmp r0, 0
- bne _08074696
-_08074640:
- mov r1, r8
- adds r1, 0xAF
- ldrb r4, [r1]
- cmp r4, 0x1C
- bhi _0807464E
- adds r0, r4, 0x1
- strb r0, [r1]
-_0807464E:
- ldr r0, _08074718
- ldrh r0, [r0]
- strb r0, [r2]
- cmp r4, 0x1C
- ble _0807465A
- movs r4, 0x1D
-_0807465A:
- movs r0, 0
- bl sub_807520C
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _0807466E
- b _08074B2E
-_0807466E:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _0807467A
- b _08074B2E
-_0807467A:
- adds r0, r5, 0
- adds r1, r5, 0
- bl sub_807A96C
- ldr r1, _0807471C
- lsls r0, r4, 1
- adds r0, r1
- movs r4, 0
- ldrsh r1, [r0, r4]
-_0807468C:
- ldr r3, _08074720
- adds r0, r5, 0
- movs r2, 0x3
- bl sub_806F324
-_08074696:
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _080746A4
- b _08074B2E
-_080746A4:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _080746B0
- b _08074B2E
-_080746B0:
- mov r0, r8
- adds r0, 0xB0
- ldrb r1, [r0]
- mov r10, r0
- cmp r1, 0x7
- bne _08074730
- mov r4, r8
- adds r4, 0xB9
- ldrb r0, [r4]
- cmp r0, 0
- beq _080746D0
- subs r0, 0x1
- strb r0, [r4]
- lsls r0, 24
- cmp r0, 0
- bne _08074786
-_080746D0:
- movs r0, 0
- bl sub_807520C
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _080746E4
- b _08074B2E
-_080746E4:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _080746F0
- b _08074B2E
-_080746F0:
- ldr r0, _08074724
- ldrh r0, [r0]
- strb r0, [r4]
- adds r0, r5, 0
- adds r1, r5, 0
- bl sub_807A96C
- mov r0, r8
- adds r0, 0xB4
- ldr r1, [r0]
- adds r0, r5, 0
- bl sub_8041C4C
- ldr r0, _08074728
- movs r2, 0
- ldrsh r1, [r0, r2]
- ldr r3, _0807472C
- adds r0, r5, 0
- movs r2, 0x2
- b _08074782
- .align 2, 0
-_08074718: .4byte gUnknown_80F4F36
-_0807471C: .4byte gUnknown_80F4FC8
-_08074720: .4byte 0x0000020a
-_08074724: .4byte gUnknown_80F4F38
-_08074728: .4byte gUnknown_80F4F74
-_0807472C: .4byte 0x00000209
-_08074730:
- cmp r1, 0x4
- bne _080747B0
- mov r4, r8
- adds r4, 0xB9
- ldrb r0, [r4]
- cmp r0, 0
- beq _08074748
- subs r0, 0x1
- strb r0, [r4]
- lsls r0, 24
- cmp r0, 0
- bne _08074786
-_08074748:
- movs r0, 0
- bl sub_807520C
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _0807475C
- b _08074B2E
-_0807475C:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _08074768
- b _08074B2E
-_08074768:
- ldr r0, _080747A4
- ldrh r0, [r0]
- strb r0, [r4]
- adds r0, r5, 0
- adds r1, r5, 0
- bl sub_807A96C
- ldr r0, _080747A8
- movs r3, 0
- ldrsh r1, [r0, r3]
- ldr r3, _080747AC
- adds r0, r5, 0
- movs r2, 0x5
-_08074782:
- bl sub_806F324
-_08074786:
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _08074794
- b _08074B2E
-_08074794:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _080747A0
- b _08074B2E
-_080747A0:
- b _08074802
- .align 2, 0
-_080747A4: .4byte gUnknown_80F4F3A
-_080747A8: .4byte gUnknown_80F4F76
-_080747AC: .4byte 0x0000020b
-_080747B0:
- cmp r1, 0x5
- bne _08074802
- mov r4, r8
- adds r4, 0xB9
- ldrb r0, [r4]
- cmp r0, 0
- beq _080747C8
- subs r0, 0x1
- strb r0, [r4]
- lsls r0, 24
- cmp r0, 0
- bne _08074802
-_080747C8:
- movs r0, 0
- bl sub_807520C
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _080747DC
- b _08074B2E
-_080747DC:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _080747E8
- b _08074B2E
-_080747E8:
- ldr r0, _080748D4
- ldrh r0, [r0]
- strb r0, [r4]
- ldr r0, _080748D8
- movs r4, 0
- ldrsh r2, [r0, r4]
- movs r0, 0x1
- str r0, [sp]
- adds r0, r5, 0
- adds r1, r5, 0
- movs r3, 0
- bl HealTargetHP
-_08074802:
- mov r0, r8
- adds r0, 0xC8
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0807488A
- mov r2, r8
- adds r2, 0xCC
- ldrb r0, [r2]
- cmp r0, 0
- beq _08074820
- subs r0, 0x1
- strb r0, [r2]
- lsls r0, 24
- cmp r0, 0
- bne _08074870
-_08074820:
- mov r0, r8
- movs r3, 0x10
- ldrsh r1, [r0, r3]
- cmp r1, 0
- bge _0807482C
- adds r1, 0x3
-_0807482C:
- asrs r4, r1, 2
- cmp r4, 0
- bne _08074834
- movs r4, 0x1
-_08074834:
- ldr r0, _080748DC
- ldrh r0, [r0]
- strb r0, [r2]
- movs r0, 0
- bl sub_807520C
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _0807484E
- b _08074B2E
-_0807484E:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _0807485A
- b _08074B2E
-_0807485A:
- adds r0, r5, 0
- adds r1, r5, 0
- bl sub_807A96C
- movs r3, 0x83
- lsls r3, 2
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x7
- bl sub_806F324
-_08074870:
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _0807487E
- b _08074B2E
-_0807487E:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _0807488A
- b _08074B2E
-_0807488A:
- mov r3, r8
- adds r3, 0xD0
- ldrb r4, [r3]
- mov r9, r4
- cmp r4, 0x1
- beq _08074898
- b _080749AE
-_08074898:
- mov r2, r8
- adds r2, 0xDA
- ldrb r0, [r2]
- cmp r0, 0
- beq _080748AC
- subs r0, 0x1
- strb r0, [r2]
- lsls r0, 24
- cmp r0, 0
- bne _08074994
-_080748AC:
- ldr r0, _080748E0
- movs r1, 0
- ldrsh r6, [r0, r1]
- ldr r0, _080748E4
- ldr r1, [r0]
- mov r0, r8
- adds r0, 0xD8
- ldrb r0, [r0]
- lsls r0, 2
- ldr r4, _080748E8
- adds r1, r4
- adds r1, r0
- ldr r4, [r1]
- ldr r0, _080748EC
- ldrh r0, [r0]
- strb r0, [r2]
- cmp r4, 0
- bne _080748F0
- strb r4, [r3]
- b _08074994
- .align 2, 0
-_080748D4: .4byte gUnknown_80F4F3C
-_080748D8: .4byte gUnknown_80F4FB2
-_080748DC: .4byte gUnknown_80F4F3E
-_080748E0: .4byte gUnknown_80F4FB4
-_080748E4: .4byte gDungeonGlobalData
-_080748E8: .4byte 0x000135cc
-_080748EC: .4byte gUnknown_80F4F40
-_080748F0:
- ldr r0, [r4, 0x70]
- adds r0, 0x98
- mov r1, r8
- adds r1, 0xD4
- ldr r2, [r0]
- ldr r0, [r1]
- cmp r2, r0
- beq _08074906
- movs r0, 0
- strb r0, [r3]
- b _08074994
-_08074906:
- adds r0, r5, 0
- movs r1, 0x3A
- bl HasAbility
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r5, 0
- bl sub_80444F4
- movs r0, 0
- bl sub_807520C
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _0807492C
- b _08074B2E
-_0807492C:
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _0807493A
- b _08074B2E
-_0807493A:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _08074946
- b _08074B2E
-_08074946:
- mov r1, r10
- ldrb r0, [r1]
- cmp r0, 0x1
- beq _08074994
- adds r0, r5, 0
- adds r1, r5, 0
- bl sub_807A96C
- ldr r3, _08074980
- adds r0, r5, 0
- adds r1, r6, 0
- movs r2, 0x9
- bl sub_806F324
- cmp r7, 0
- beq _08074984
- adds r0, r4, 0
- adds r1, r4, 0
- bl sub_807A96C
- movs r3, 0xFD
- lsls r3, 1
- adds r0, r4, 0
- adds r1, r6, 0
- movs r2, 0xD
- bl sub_806F324
- b _08074994
- .align 2, 0
-_08074980: .4byte 0x0000020d
-_08074984:
- mov r2, r9
- str r2, [sp]
- adds r0, r4, 0
- adds r1, r4, 0
- adds r2, r6, 0
- movs r3, 0
- bl HealTargetHP
-_08074994:
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _080749A2
- b _08074B2E
-_080749A2:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _080749AE
- b _08074B2E
-_080749AE:
- mov r4, r8
- adds r4, 0xFD
- ldrb r0, [r4]
- cmp r0, 0
- beq _08074A46
- adds r0, r4, 0
- bl sub_80838EC
- ldrb r0, [r4]
- cmp r0, 0
- bne _08074A46
- movs r0, 0
- bl sub_807520C
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _080749D8
- b _08074B2E
-_080749D8:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _080749E4
- b _08074B2E
-_080749E4:
- ldr r0, _08074A18
- adds r1, r5, 0
- movs r2, 0
- bl SetMessageArgument
- ldr r0, _08074A1C
- ldr r1, [r0]
- adds r0, r5, 0
- bl SendMessage
- adds r0, r5, 0
- adds r1, r5, 0
- bl sub_807A96C
- mov r0, r8
- adds r0, 0xC4
- ldrb r0, [r0]
- cmp r0, 0x7
- bne _08074A24
- ldr r0, _08074A20
- ldr r1, [r0]
- adds r0, r5, 0
- bl SendMessage
- b _08074A30
- .align 2, 0
-_08074A18: .4byte gUnknown_202DFE8
-_08074A1C: .4byte gUnknown_80FEB30
-_08074A20: .4byte gPtrProtectSavedItMessage
-_08074A24:
- ldr r1, _08074B40
- ldr r3, _08074B44
- adds r0, r5, 0
- movs r2, 0xB
- bl sub_806F324
-_08074A30:
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _08074B2E
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _08074B2E
-_08074A46:
- mov r0, r8
- adds r0, 0xC0
- ldrb r1, [r0]
- adds r7, r0, 0
- cmp r1, 0x1
- bne _08074AD4
- mov r4, r8
- adds r4, 0xC1
- adds r0, r4, 0
- bl sub_80838EC
- ldrb r0, [r4]
- cmp r0, 0
- bne _08074AD4
- strb r0, [r7]
- adds r0, r5, 0
- movs r1, 0
- bl CannotMove
- lsls r0, 24
- cmp r0, 0
- bne _08074AD4
- adds r0, r5, 0
- movs r1, 0
- bl sub_8070D04
- lsls r0, 24
- cmp r0, 0
- bne _08074AD4
- adds r0, r5, 0
- bl CannotAct
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- bne _08074AD4
- movs r0, 0
- bl sub_807520C
- add r4, sp, 0x28
- ldr r1, _08074B48
- adds r0, r4, 0
- bl InitPokemonMove
- ldrb r0, [r4]
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r4]
- str r6, [sp]
- str r4, [sp, 0x4]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_8055FA0
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _08074B2E
- bl sub_8044B28
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08074B2E
- mov r0, r8
- adds r0, 0xA0
- str r1, [r0]
-_08074AD4:
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _08074B2E
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _08074B2E
- ldrb r0, [r7]
- cmp r0, 0xC
- bne _08074B1E
- mov r4, r8
- adds r4, 0xC1
- adds r0, r4, 0
- bl sub_80838EC
- ldrb r0, [r4]
- cmp r0, 0
- bne _08074B1E
- strb r0, [r7]
- movs r1, 0xA5
- lsls r1, 1
- add r1, r8
- strb r0, [r1]
- ldr r0, _08074B4C
- adds r1, r5, 0
- movs r2, 0
- bl SetMessageArgument
- ldr r0, _08074B50
- ldr r1, [r0]
- adds r0, r5, 0
- bl SendMessage
-_08074B1E:
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _08074B2E
- bl sub_8044B28
-_08074B2E:
- add sp, 0x30
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08074B40: .4byte 0x0000270f
-_08074B44: .4byte 0x0000020e
-_08074B48: .4byte 0x00000165
-_08074B4C: .4byte gAvailablePokemonNames
-_08074B50: .4byte gUnknown_80FABD8
- thumb_func_end sub_8074094
-
- thumb_func_start sub_8074B54
-sub_8074B54:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- cmp r7, 0
- bne _08074B62
- b _08074F96
-_08074B62:
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _08074B6E
- b _08074F96
-_08074B6E:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _08074B7A
- b _08074F96
-_08074B7A:
- bl sub_805229C
- ldr r6, [r7, 0x70]
- movs r1, 0xA3
- lsls r1, 1
- adds r0, r6, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08074C48
- adds r0, r6, 0
- adds r0, 0xAC
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _08074C48
- cmp r0, 0x3
- beq _08074C48
- movs r4, 0
- ldrb r0, [r6, 0x6]
- cmp r0, 0
- bne _08074BAE
- movs r2, 0x2
- ldrsh r0, [r6, r2]
- bl GetUnk1B
- lsls r0, 24
- lsrs r4, r0, 24
-_08074BAE:
- cmp r4, 0
- beq _08074C48
- adds r0, r7, 0
- movs r1, 0xA
- bl sub_8046CB0
- lsls r0, 24
- cmp r0, 0
- beq _08074BC8
- ldr r0, _08074EF8
- movs r3, 0
- ldrsh r0, [r0, r3]
- adds r4, r0
-_08074BC8:
- adds r0, r6, 0
- adds r0, 0xC4
- ldrb r0, [r0]
- cmp r0, 0x6
- bne _08074BDA
- ldr r0, _08074EFC
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r4, r0
-_08074BDA:
- adds r0, r7, 0
- movs r1, 0x3
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- beq _08074BFE
- adds r0, r7, 0
- bl sub_807E580
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _08074BFE
- ldr r0, _08074F00
- movs r2, 0
- ldrsh r0, [r0, r2]
- adds r4, r0
-_08074BFE:
- movs r0, 0xFA
- lsls r0, 1
- cmp r4, r0
- ble _08074C08
- adds r4, r0, 0
-_08074C08:
- cmp r4, 0x1D
- bgt _08074C0E
- movs r4, 0x1E
-_08074C0E:
- movs r3, 0xFC
- lsls r3, 1
- adds r1, r6, r3
- ldrh r0, [r6, 0x10]
- ldrh r2, [r1]
- adds r0, r2
- strh r0, [r1]
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, r4
- blt _08074C38
-_08074C24:
- ldrh r0, [r6, 0xE]
- adds r0, 0x1
- strh r0, [r6, 0xE]
- ldrh r0, [r1]
- subs r0, r4
- strh r0, [r1]
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, r4
- bge _08074C24
-_08074C38:
- movs r3, 0xE
- ldrsh r1, [r6, r3]
- ldrh r2, [r6, 0x10]
- movs r3, 0x10
- ldrsh r0, [r6, r3]
- cmp r1, r0
- blt _08074C48
- strh r2, [r6, 0xE]
-_08074C48:
- adds r0, r6, 0
- adds r0, 0xA8
- ldrb r0, [r0]
- cmp r0, 0
- beq _08074C6E
- adds r4, r6, 0
- adds r4, 0xA9
- adds r0, r4, 0
- bl sub_80838EC
- ldrb r0, [r4]
- cmp r0, 0
- bne _08074C6E
- adds r0, r7, 0
- adds r1, r7, 0
- movs r2, 0x1
- movs r3, 0x1
- bl sub_807A124
-_08074C6E:
- adds r0, r7, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _08074C7C
- b _08074F96
-_08074C7C:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _08074C88
- b _08074F96
-_08074C88:
- adds r0, r6, 0
- adds r0, 0xAC
- ldrb r0, [r0]
- cmp r0, 0
- beq _08074CAA
- adds r4, r6, 0
- adds r4, 0xAD
- adds r0, r4, 0
- bl sub_80838EC
- ldrb r0, [r4]
- cmp r0, 0
- bne _08074CAA
- adds r0, r7, 0
- adds r1, r7, 0
- bl sub_807A290
-_08074CAA:
- adds r0, r7, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _08074CB8
- b _08074F96
-_08074CB8:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _08074CC4
- b _08074F96
-_08074CC4:
- adds r0, r6, 0
- adds r0, 0xB0
- ldrb r0, [r0]
- cmp r0, 0
- beq _08074CE6
- adds r4, r6, 0
- adds r4, 0xB8
- adds r0, r4, 0
- bl sub_80838EC
- ldrb r0, [r4]
- cmp r0, 0
- bne _08074CE6
- adds r0, r7, 0
- adds r1, r7, 0
- bl SendImmobilizeEndMessage
-_08074CE6:
- adds r0, r7, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _08074CF4
- b _08074F96
-_08074CF4:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _08074D00
- b _08074F96
-_08074D00:
- adds r0, r6, 0
- adds r0, 0xBC
- ldrb r0, [r0]
- cmp r0, 0
- beq _08074D22
- adds r4, r6, 0
- adds r4, 0xBD
- adds r0, r4, 0
- bl sub_80838EC
- ldrb r0, [r4]
- cmp r0, 0
- bne _08074D22
- adds r0, r7, 0
- adds r1, r7, 0
- bl sub_807A400
-_08074D22:
- adds r0, r7, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _08074D30
- b _08074F96
-_08074D30:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _08074D3C
- b _08074F96
-_08074D3C:
- adds r0, r6, 0
- adds r0, 0xC4
- ldrb r0, [r0]
- cmp r0, 0
- beq _08074D5E
- adds r4, r6, 0
- adds r4, 0xC5
- adds r0, r4, 0
- bl sub_80838EC
- ldrb r0, [r4]
- cmp r0, 0
- bne _08074D5E
- adds r0, r7, 0
- adds r1, r7, 0
- bl sub_807A4C8
-_08074D5E:
- adds r0, r7, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _08074D6C
- b _08074F96
-_08074D6C:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _08074D78
- b _08074F96
-_08074D78:
- adds r0, r6, 0
- adds r0, 0xC8
- ldrb r0, [r0]
- cmp r0, 0
- beq _08074D9C
- adds r4, r6, 0
- adds r4, 0xCB
- adds r0, r4, 0
- bl sub_80838EC
- ldrb r0, [r4]
- cmp r0, 0
- bne _08074D9C
- adds r0, r7, 0
- adds r1, r7, 0
- movs r2, 0
- bl sub_807A5D0
-_08074D9C:
- adds r0, r7, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _08074DAA
- b _08074F96
-_08074DAA:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _08074DB6
- b _08074F96
-_08074DB6:
- adds r0, r6, 0
- adds r0, 0xD0
- ldrb r0, [r0]
- cmp r0, 0
- beq _08074DD8
- adds r4, r6, 0
- adds r4, 0xD9
- adds r0, r4, 0
- bl sub_80838EC
- ldrb r0, [r4]
- cmp r0, 0
- bne _08074DD8
- adds r0, r7, 0
- adds r1, r7, 0
- bl sub_807A6C8
-_08074DD8:
- adds r0, r7, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _08074DE6
- b _08074F96
-_08074DE6:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _08074DF2
- b _08074F96
-_08074DF2:
- adds r0, r6, 0
- adds r0, 0xDC
- ldrb r0, [r0]
- cmp r0, 0
- beq _08074E14
- adds r4, r6, 0
- adds r4, 0xDD
- adds r0, r4, 0
- bl sub_80838EC
- ldrb r0, [r4]
- cmp r0, 0
- bne _08074E14
- adds r0, r7, 0
- adds r1, r7, 0
- bl sub_807A734
-_08074E14:
- adds r0, r7, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _08074E22
- b _08074F96
-_08074E22:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _08074E2E
- b _08074F96
-_08074E2E:
- adds r0, r6, 0
- adds r0, 0xE4
- ldrb r0, [r0]
- cmp r0, 0
- beq _08074E50
- adds r4, r6, 0
- adds r4, 0xE5
- adds r0, r4, 0
- bl sub_80838EC
- ldrb r0, [r4]
- cmp r0, 0
- bne _08074E50
- adds r0, r7, 0
- adds r1, r7, 0
- bl sub_807A7C8
-_08074E50:
- adds r0, r7, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _08074E5E
- b _08074F96
-_08074E5E:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _08074E6A
- b _08074F96
-_08074E6A:
- adds r0, r6, 0
- adds r0, 0xE8
- ldrb r0, [r0]
- cmp r0, 0
- beq _08074E8C
- adds r4, r6, 0
- adds r4, 0xE9
- adds r0, r4, 0
- bl sub_80838EC
- ldrb r0, [r4]
- cmp r0, 0
- bne _08074E8C
- adds r0, r7, 0
- adds r1, r7, 0
- bl sub_807A888
-_08074E8C:
- adds r0, r7, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- bne _08074E9A
- b _08074F96
-_08074E9A:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _08074F96
- adds r0, r6, 0
- adds r0, 0xEC
- ldrb r0, [r0]
- cmp r0, 0
- beq _08074EC6
- adds r4, r6, 0
- adds r4, 0xED
- adds r0, r4, 0
- bl sub_80838EC
- ldrb r0, [r4]
- cmp r0, 0
- bne _08074EC6
- adds r0, r7, 0
- adds r1, r7, 0
- bl sub_807A924
-_08074EC6:
- adds r0, r7, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _08074F96
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _08074F96
- adds r4, r6, 0
- adds r4, 0xFA
- ldrb r0, [r4]
- cmp r0, 0
- beq _08074F18
- adds r0, r4, 0
- bl sub_80838EC
- ldrb r0, [r4]
- cmp r0, 0
- bne _08074F18
- ldr r0, _08074F04
- adds r1, r7, 0
- b _08074F08
- .align 2, 0
-_08074EF8: .4byte gUnknown_80F4FC4
-_08074EFC: .4byte gUnknown_80F4FC0
-_08074F00: .4byte gUnknown_80F4FC2
-_08074F04: .4byte gAvailablePokemonNames
-_08074F08:
- movs r2, 0
- bl SetMessageArgument
- ldr r0, _08074FA0
- ldr r1, [r0]
- adds r0, r7, 0
- bl SendMessage
-_08074F18:
- movs r0, 0
- mov r8, r0
- movs r5, 0
-_08074F1E:
- ldr r1, _08074FA4
- adds r0, r6, r1
- adds r4, r0, r5
- ldrb r0, [r4]
- cmp r0, 0
- beq _08074F3C
- adds r0, r5, r1
- adds r0, r6, r0
- bl sub_80838EC
- ldrb r0, [r4]
- cmp r0, 0
- bne _08074F3C
- movs r2, 0x1
- mov r8, r2
-_08074F3C:
- movs r3, 0x84
- lsls r3, 1
- adds r0, r6, r3
- adds r4, r0, r5
- ldrb r0, [r4]
- cmp r0, 0
- beq _08074F5C
- adds r0, r5, r3
- adds r0, r6, r0
- bl sub_80838EC
- ldrb r0, [r4]
- cmp r0, 0
- bne _08074F5C
- movs r0, 0x1
- mov r8, r0
-_08074F5C:
- adds r5, 0x1
- cmp r5, 0x4
- ble _08074F1E
- mov r1, r8
- cmp r1, 0
- beq _08074F96
- ldr r0, [r7, 0x70]
- movs r2, 0x82
- lsls r2, 1
- adds r0, r2
- ldr r4, [r0]
- adds r0, r7, 0
- bl sub_8070774
- adds r5, r0, 0
- cmp r4, r5
- beq _08074F96
- ldr r0, _08074FA8
- adds r1, r7, 0
- movs r2, 0
- bl SetMessageArgument
- ldr r1, _08074FAC
- lsls r0, r5, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r7, 0
- bl SendMessage
-_08074F96:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08074FA0: .4byte gPtrStenchWavedOffMessage
-_08074FA4: .4byte 0x0000010d
-_08074FA8: .4byte gAvailablePokemonNames
-_08074FAC: .4byte gUnknown_80FA124
- thumb_func_end sub_8074B54
-
- thumb_func_start sub_8074FB0
-sub_8074FB0:
- push {r4-r6,lr}
- adds r3, r0, 0
- adds r5, r1, 0
- ldr r4, [r3, 0x70]
- movs r1, 0xFA
- lsls r1, 1
- adds r0, r4, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x3
- ble _08074FD0
- adds r1, r4, 0
- adds r1, 0x44
- movs r0, 0
- strh r0, [r1]
- b _08075040
-_08074FD0:
- ldr r0, _08074FE0
- ldr r0, [r0]
- ldrb r0, [r0]
- cmp r0, 0
- beq _08074FE8
- ldr r1, _08074FE4
- movs r0, 0x2
- b _08074FEC
- .align 2, 0
-_08074FE0: .4byte gUnknown_203B46C
-_08074FE4: .4byte gUnknown_202F378
-_08074FE8:
- ldr r1, _08075048
- movs r0, 0x1
-_08074FEC:
- str r0, [r1]
- adds r6, r1, 0
- movs r1, 0xFA
- lsls r1, 1
- adds r0, r4, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- movs r0, 0xC2
- lsls r0, 1
- adds r1, r0
- adds r1, r4, r1
- movs r0, 0
- strb r0, [r1, 0x1A]
- str r5, [r1, 0xC]
- ldrh r0, [r3, 0x4]
- strh r0, [r1]
- ldrh r0, [r3, 0x6]
- strh r0, [r1, 0x2]
- movs r3, 0
- ldrsh r0, [r2, r3]
- str r0, [r1, 0x4]
- movs r3, 0x2
- ldrsh r0, [r2, r3]
- str r0, [r1, 0x8]
- ldr r0, _0807504C
- lsls r2, r5, 2
- adds r2, r0
- movs r5, 0
- ldrsh r0, [r2, r5]
- ldr r3, [r6]
- muls r0, r3
- str r0, [r1, 0x10]
- movs r5, 0x2
- ldrsh r0, [r2, r5]
- muls r0, r3
- str r0, [r1, 0x14]
- adds r0, r4, 0
- bl sub_8075050
-_08075040:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08075048: .4byte gUnknown_202F378
-_0807504C: .4byte gUnknown_80F4D44
- thumb_func_end sub_8074FB0
-
- thumb_func_start sub_8075050
-sub_8075050:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- mov r9, r0
- adds r6, r1, 0
- ldr r0, _08075070
- ldr r0, [r0]
- ldrb r0, [r0]
- cmp r0, 0
- beq _08075078
- ldr r1, _08075074
- movs r0, 0x2
- b _0807507C
- .align 2, 0
-_08075070: .4byte gUnknown_203B46C
-_08075074: .4byte gUnknown_202F378
-_08075078:
- ldr r1, _080750D0
- movs r0, 0x1
-_0807507C:
- str r0, [r1]
- movs r1, 0xFA
- lsls r1, 1
- add r1, r9
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _080750D4
- ldr r0, _080750D0
- ldr r1, [r0]
- lsls r1, 1
- movs r0, 0x18
- bl __divsi3
- movs r1, 0xCE
- lsls r1, 1
- add r1, r9
- strh r0, [r1]
- movs r2, 0xCA
- lsls r2, 1
- add r2, r9
- ldr r1, [r2]
- lsls r1, 1
- str r1, [r2]
- movs r2, 0xCC
- lsls r2, 1
- add r2, r9
- ldr r1, [r2]
- lsls r1, 1
- str r1, [r2]
- strh r0, [r6, 0x18]
- ldr r0, [r6, 0x10]
- lsls r0, 1
- str r0, [r6, 0x10]
- ldr r0, [r6, 0x14]
- lsls r0, 1
- str r0, [r6, 0x14]
- b _080751F8
- .align 2, 0
-_080750D0: .4byte gUnknown_202F378
-_080750D4:
- cmp r0, 0x3
- bne _08075160
- ldr r1, [r6, 0x10]
- str r1, [sp]
- ldr r0, [r6, 0x14]
- str r0, [sp, 0x4]
- movs r4, 0xCE
- lsls r4, 1
- add r4, r9
- movs r5, 0
- movs r7, 0x1
-_080750EA:
- ldr r1, _0807515C
- ldr r0, [r1]
- lsls r1, r0, 1
- adds r1, r0
- movs r0, 0x18
- bl __divsi3
- strh r0, [r4]
- movs r3, 0xCA
- lsls r3, 1
- add r3, r9
- adds r3, r5
- ldr r1, [r3]
- lsls r0, r1, 1
- adds r0, r1
- str r0, [r3]
- movs r2, 0xCC
- lsls r2, 1
- add r2, r9
- adds r2, r5
- ldr r1, [r2]
- lsls r0, r1, 1
- adds r0, r1
- str r0, [r2]
- ldr r0, [r3]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- str r0, [r3]
- ldr r0, [r2]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- str r0, [r2]
- adds r4, 0x1C
- adds r5, 0x1C
- subs r7, 0x1
- cmp r7, 0
- bge _080750EA
- ldr r1, _0807515C
- ldr r0, [r1]
- lsls r1, r0, 1
- adds r1, r0
- movs r0, 0x18
- bl __divsi3
- strh r0, [r6, 0x18]
- ldr r1, [sp]
- lsls r0, r1, 1
- adds r0, r1
- str r0, [r6, 0x10]
- ldr r1, [sp, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- str r0, [r6, 0x14]
- b _080751F8
- .align 2, 0
-_0807515C: .4byte gUnknown_202F378
-_08075160:
- cmp r0, 0x4
- bne _080751EC
- ldr r0, [r6, 0x10]
- str r0, [sp]
- ldr r1, [r6, 0x14]
- str r1, [sp, 0x4]
- movs r7, 0xCE
- lsls r7, 1
- add r7, r9
- movs r0, 0
- mov r8, r0
- movs r1, 0x2
- mov r10, r1
-_0807517A:
- ldr r0, _080751E8
- ldr r1, [r0]
- lsls r1, 2
- movs r0, 0x18
- bl __divsi3
- strh r0, [r7]
- movs r4, 0xCA
- lsls r4, 1
- add r4, r9
- add r4, r8
- ldr r0, [r4]
- lsls r0, 2
- str r0, [r4]
- movs r5, 0xCC
- lsls r5, 1
- add r5, r9
- add r5, r8
- ldr r0, [r5]
- lsls r0, 2
- str r0, [r5]
- ldr r0, [r4]
- movs r1, 0x3
- bl __divsi3
- str r0, [r4]
- ldr r0, [r5]
- movs r1, 0x3
- bl __divsi3
- str r0, [r5]
- adds r7, 0x1C
- movs r1, 0x1C
- add r8, r1
- movs r0, 0x1
- negs r0, r0
- add r10, r0
- mov r1, r10
- cmp r1, 0
- bge _0807517A
- ldr r0, _080751E8
- ldr r1, [r0]
- lsls r1, 2
- movs r0, 0x18
- bl __divsi3
- strh r0, [r6, 0x18]
- ldr r1, [sp]
- lsls r0, r1, 2
- str r0, [r6, 0x10]
- ldr r1, [sp, 0x4]
- lsls r0, r1, 2
- str r0, [r6, 0x14]
- b _080751F8
- .align 2, 0
-_080751E8: .4byte gUnknown_202F378
-_080751EC:
- ldr r0, _08075208
- ldr r1, [r0]
- movs r0, 0x18
- bl __divsi3
- strh r0, [r6, 0x18]
-_080751F8:
- 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
-_08075208: .4byte gUnknown_202F378
- thumb_func_end sub_8075050
-
- thumb_func_start sub_807520C
-sub_807520C:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- mov r10, r0
- movs r7, 0
- movs r0, 0
- mov r9, r0
- ldr r0, _08075238
- mov r1, r9
- strb r1, [r0]
- ldr r0, _0807523C
- ldr r0, [r0]
- ldrb r0, [r0]
- cmp r0, 0
- beq _08075244
- ldr r1, _08075240
- movs r0, 0x2
- b _08075248
- .align 2, 0
-_08075238: .4byte gUnknown_202F32D
-_0807523C: .4byte gUnknown_203B46C
-_08075240: .4byte gUnknown_202F378
-_08075244:
- ldr r1, _080752D0
- movs r0, 0x1
-_08075248:
- str r0, [r1]
- movs r2, 0
- mov r8, r2
-_0807524E:
- ldr r0, _080752D4
- ldr r0, [r0]
- mov r3, r8
- lsls r1, r3, 2
- ldr r4, _080752D8
- adds r0, r4
- adds r0, r1
- ldr r5, [r0]
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0807534C
- ldr r4, [r5, 0x70]
- movs r1, 0xFA
- lsls r1, 1
- adds r0, r4, r1
- movs r3, 0
- ldrsh r2, [r0, r3]
- cmp r2, 0
- bne _080752E0
- ldr r0, _080752DC
- adds r1, r4, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _0807534C
- strb r2, [r1]
- movs r1, 0xB6
- lsls r1, 1
- adds r6, r4, r1
- ldr r1, [r6]
- cmp r1, 0
- beq _0807534C
- ldr r0, [r5, 0x4]
- cmp r1, r0
- beq _0807534C
- adds r0, r5, 0
- movs r1, 0x1
- bl CannotMove
- lsls r0, 24
- cmp r0, 0
- beq _080752B2
- adds r0, r5, 0
- bl CannotAct
- lsls r0, 24
- cmp r0, 0
- bne _0807534C
-_080752B2:
- adds r0, r5, 0x4
- adds r1, r6, 0
- bl sub_80983D8
- adds r1, r0, 0
- adds r0, r4, 0
- adds r0, 0x46
- ldrb r0, [r0]
- cmp r1, r0
- beq _0807534C
- adds r0, r5, 0
- bl sub_806CE68
- b _0807534C
- .align 2, 0
-_080752D0: .4byte gUnknown_202F378
-_080752D4: .4byte gDungeonGlobalData
-_080752D8: .4byte 0x000135cc
-_080752DC: .4byte 0x00000147
-_080752E0:
- ldrh r1, [r4]
- movs r2, 0x80
- lsls r2, 6
- adds r0, r2, 0
- orrs r0, r1
- strh r0, [r4]
- movs r3, 0xC4
- lsls r3, 1
- adds r0, r4, r3
- ldr r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 11
- movs r1, 0xC0
- lsls r1, 4
- adds r0, r1
- str r0, [sp]
- movs r2, 0xC6
- lsls r2, 1
- adds r0, r4, r2
- ldr r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 11
- movs r3, 0x80
- lsls r3, 5
- adds r0, r3
- str r0, [sp, 0x4]
- adds r0, r5, 0
- mov r1, sp
- bl sub_804535C
- movs r1, 0xC8
- lsls r1, 1
- adds r0, r4, r1
- ldr r2, [r0]
- adds r0, r5, 0
- movs r1, 0
- bl sub_806CDFC
- movs r2, 0xFB
- lsls r2, 1
- adds r0, r4, r2
- movs r3, 0
- strh r3, [r0]
- movs r7, 0x1
- adds r0, r5, 0
- bl sub_8045888
- lsls r0, 24
- cmp r0, 0
- beq _0807534C
- movs r4, 0x1
- mov r9, r4
-_0807534C:
- movs r0, 0x1
- add r8, r0
- mov r1, r8
- cmp r1, 0x13
- bgt _08075358
- b _0807524E
-_08075358:
- cmp r7, 0
- bne _08075360
- movs r0, 0
- b _0807566C
-_08075360:
- ldr r0, _08075390
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0xB8
- ldr r2, [r1]
- str r2, [sp, 0x10]
- mov r3, r10
- str r3, [r1]
- ldr r4, _08075394
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _0807537C
- b _080754AE
-_0807537C:
- mov r0, r9
- cmp r0, 0
- bne _08075384
- b _080754AE
-_08075384:
- movs r0, 0x35
- bl sub_80526D0
- movs r5, 0
- b _0807549E
- .align 2, 0
-_08075390: .4byte gDungeonGlobalData
-_08075394: .4byte 0x0000066c
-_08075398:
- movs r0, 0x7
- bl sub_803E46C
- movs r1, 0
- mov r8, r1
- adds r5, 0x1
- mov r9, r5
-_080753A6:
- ldr r0, _08075420
- ldr r0, [r0]
- mov r2, r8
- lsls r1, r2, 2
- ldr r3, _08075424
- adds r0, r3
- adds r0, r1
- ldr r3, [r0]
- adds r0, r3, 0
- str r3, [sp, 0x14]
- bl EntityExists
- lsls r0, 24
- ldr r3, [sp, 0x14]
- cmp r0, 0
- beq _08075492
- ldr r0, [r3, 0x70]
- adds r7, r0, 0
- movs r4, 0xFB
- lsls r4, 1
- adds r5, r7, r4
- movs r1, 0
- ldrsh r0, [r5, r1]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- movs r2, 0xC2
- lsls r2, 1
- adds r1, r2
- adds r4, r7, r1
- movs r0, 0xFA
- lsls r0, 1
- adds r6, r7, r0
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- beq _08075492
- ldr r1, [r4, 0x10]
- ldr r2, [r4, 0x14]
- adds r0, r3, 0
- bl sub_804539C
- ldrh r0, [r4, 0x18]
- subs r0, 0x1
- strh r0, [r4, 0x18]
- lsls r0, 16
- asrs r2, r0, 16
- ldr r3, [sp, 0x14]
- cmp r2, 0
- bne _08075492
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
- lsls r0, 16
- asrs r0, 16
- movs r4, 0
- ldrsh r1, [r6, r4]
- cmp r0, r1
- bne _08075428
- strh r2, [r6]
- b _08075492
- .align 2, 0
-_08075420: .4byte gDungeonGlobalData
-_08075424: .4byte 0x000135cc
-_08075428:
- movs r0, 0
- ldrsh r1, [r5, r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- movs r2, 0xC4
- lsls r2, 1
- adds r1, r7, r2
- adds r1, r0
- ldr r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 11
- movs r4, 0xC0
- lsls r4, 4
- adds r0, r4
- str r0, [sp, 0x8]
- movs r0, 0
- ldrsh r1, [r5, r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r2, 0x4
- adds r1, r7, r2
- adds r1, r0
- ldr r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 11
- movs r4, 0x80
- lsls r4, 5
- adds r0, r4
- add r1, sp, 0x8
- str r0, [r1, 0x4]
- adds r0, r3, 0
- str r3, [sp, 0x14]
- bl sub_804535C
- movs r0, 0
- ldrsh r1, [r5, r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- movs r2, 0xC8
- lsls r2, 1
- adds r1, r7, r2
- adds r1, r0
- ldr r2, [r1]
- ldr r3, [sp, 0x14]
- adds r0, r3, 0
- movs r1, 0
- bl sub_806CDFC
-_08075492:
- movs r3, 0x1
- add r8, r3
- mov r4, r8
- cmp r4, 0x13
- ble _080753A6
- mov r5, r9
-_0807549E:
- ldr r0, _08075510
- ldr r1, [r0]
- movs r0, 0x18
- bl __divsi3
- cmp r5, r0
- bge _080754AE
- b _08075398
-_080754AE:
- movs r0, 0
- mov r8, r0
-_080754B2:
- ldr r0, _08075514
- ldr r0, [r0]
- mov r2, r8
- lsls r1, r2, 2
- ldr r3, _08075518
- adds r0, r3
- adds r0, r1
- ldr r5, [r0]
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _080754F6
- ldr r4, [r5, 0x70]
- movs r0, 0xFA
- lsls r0, 1
- adds r1, r4, r0
- movs r0, 0
- strh r0, [r1]
- adds r0, r5, 0
- bl nullsub_97
- ldrh r0, [r4]
- movs r2, 0x80
- lsls r2, 6
- adds r1, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _080754F6
- adds r0, r5, 0
- movs r1, 0
- bl sub_804535C
-_080754F6:
- movs r3, 0x1
- add r8, r3
- mov r4, r8
- cmp r4, 0x13
- ble _080754B2
- bl sub_807AA30
- movs r7, 0
-_08075506:
- movs r5, 0
- adds r0, r7, 0x1
- mov r8, r0
- b _08075600
- .align 2, 0
-_08075510: .4byte gUnknown_202F378
-_08075514: .4byte gDungeonGlobalData
-_08075518: .4byte 0x000135cc
-_0807551C:
- ldr r2, [r4, 0x70]
- cmp r7, 0
- bne _0807552A
- ldrb r0, [r2, 0x7]
- cmp r0, 0
- beq _080755FE
- b _08075530
-_0807552A:
- ldrb r0, [r2, 0x7]
- cmp r0, 0
- bne _080755FE
-_08075530:
- ldr r6, [r4, 0x4]
- ldrh r1, [r2]
- movs r3, 0x80
- lsls r3, 6
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _080755BC
- ldr r3, _08075560
- adds r0, r3, 0
- ands r0, r1
- strh r0, [r2]
- ldrb r0, [r2, 0x7]
- cmp r0, 0
- beq _08075564
- adds r0, r4, 0x4
- bl sub_804AC20
- movs r0, 0
- bl sub_807EC28
- bl sub_805EE30
- b _0807556A
- .align 2, 0
-_08075560: .4byte 0x0000dfff
-_08075564:
- adds r0, r4, 0
- bl sub_8075708
-_0807556A:
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _080755FE
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _0807562A
- movs r0, 0
- bl sub_8043ED0
- adds r0, r4, 0
- bl sub_8074094
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _080755FE
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _0807562A
- adds r0, r4, 0
- bl sub_8071DA4
- bl sub_8046D20
- ldr r0, _08075650
- ldr r0, [r0]
- ldr r1, _08075654
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r4, 0
- bl sub_8075900
-_080755BC:
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _080755FE
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _0807562A
- ldr r0, [r4, 0x4]
- cmp r6, r0
- beq _080755DE
- ldr r1, _08075658
- movs r0, 0x1
- strb r0, [r1]
-_080755DE:
- adds r0, r4, 0
- bl sub_806A5B8
- adds r1, r4, 0x4
- adds r0, r4, 0
- bl sub_80706A4
- lsls r0, 24
- cmp r0, 0
- beq _080755FE
- adds r0, r4, 0
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0
- bl sub_807D148
-_080755FE:
- adds r5, 0x1
-_08075600:
- cmp r5, 0x13
- bgt _0807562A
- ldr r0, _08075650
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r2, _0807565C
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _080755FE
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _0807562A
- b _0807551C
-_0807562A:
- mov r7, r8
- cmp r7, 0x1
- bgt _08075632
- b _08075506
-_08075632:
- bl sub_8086AC0
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _08075660
- bl sub_8085140
- ldr r0, _08075650
- ldr r0, [r0]
- adds r0, 0xB8
- ldr r3, [sp, 0x10]
- str r3, [r0]
- b _0807566A
- .align 2, 0
-_08075650: .4byte gDungeonGlobalData
-_08075654: .4byte 0x00003a08
-_08075658: .4byte gUnknown_202F32D
-_0807565C: .4byte 0x000135cc
-_08075660:
- ldr r0, _0807567C
- ldr r0, [r0]
- adds r0, 0xB8
- ldr r4, [sp, 0x10]
- str r4, [r0]
-_0807566A:
- movs r0, 0x1
-_0807566C:
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0807567C: .4byte gDungeonGlobalData
- thumb_func_end sub_807520C
-
- thumb_func_start sub_8075680
-sub_8075680:
- push {r4-r7,lr}
- movs r7, 0
-_08075684:
- ldr r0, _080756FC
- ldr r0, [r0]
- lsls r1, r7, 2
- ldr r2, _08075700
- adds r0, r2
- adds r0, r1
- ldr r5, [r0]
- adds r0, r5, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _080756EE
- ldr r6, [r5, 0x70]
- ldrb r0, [r6, 0x7]
- cmp r0, 0
- bne _080756EE
- movs r0, 0xB6
- lsls r0, 1
- adds r4, r6, r0
- ldr r1, [r4]
- cmp r1, 0
- beq _080756EE
- ldr r0, [r5, 0x4]
- cmp r1, r0
- beq _080756EE
- adds r0, r5, 0
- movs r1, 0x1
- bl CannotMove
- lsls r0, 24
- cmp r0, 0
- bne _080756EE
- adds r0, r5, 0x4
- adds r1, r4, 0
- bl sub_80983D8
- adds r4, r0, 0
- movs r1, 0x7
- ands r0, r1
- adds r1, r6, 0
- adds r1, 0x46
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_806CEBC
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- adds r2, r4, 0
- bl sub_806CDD4
-_080756EE:
- adds r7, 0x1
- cmp r7, 0x13
- ble _08075684
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080756FC: .4byte gDungeonGlobalData
-_08075700: .4byte 0x000135cc
- thumb_func_end sub_8075680
-
- thumb_func_start nullsub_97
-nullsub_97:
- bx lr
- thumb_func_end nullsub_97
-
- thumb_func_start sub_8075708
-sub_8075708:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r4, r0, 0
- ldr r6, [r4, 0x70]
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0807580C
- adds r0, r4, 0
- bl sub_8045128
- adds r5, r0, 0
- adds r0, r4, 0
- movs r1, 0xD
- bl HasIQSkill
- lsls r0, 24
- cmp r0, 0
- beq _08075752
- adds r0, r6, 0
- adds r0, 0xE4
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _08075752
- adds r0, r4, 0
- movs r1, 0x9
- bl sub_8046CB0
- lsls r0, 24
- cmp r0, 0
- bne _08075752
- adds r0, r4, 0x4
- bl sub_804AE84
-_08075752:
- ldr r5, [r5, 0x14]
- cmp r5, 0
- beq _0807580C
- adds r0, r5, 0
- bl sub_80450F8
- cmp r0, 0x5
- bhi _0807580C
- lsls r0, 2
- ldr r1, _0807576C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0807576C: .4byte _08075770
- .align 2, 0
-_08075770:
- .4byte _0807580C
- .4byte _0807580C
- .4byte _08075788
- .4byte _08075806
- .4byte _0807580C
- .4byte _0807580C
-_08075788:
- adds r0, r5, 0
- bl sub_8045104
- adds r7, r0, 0
- movs r0, 0
- mov r8, r0
- mov r9, r0
- adds r0, r4, 0
- movs r1, 0x13
- bl HasIQSkill
- lsls r0, 24
- cmp r0, 0
- beq _080757BA
- adds r1, r5, 0
- adds r1, 0x20
- ldrb r0, [r1]
- cmp r0, 0
- bne _080757BA
- movs r0, 0x1
- strb r0, [r1]
- bl sub_8049ED4
- movs r0, 0x1
- mov r9, r0
-_080757BA:
- ldrb r0, [r7, 0x1]
- cmp r0, 0
- bne _080757D2
- adds r0, r5, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _080757EC
- ldrb r0, [r6, 0x6]
- cmp r0, 0
- bne _080757EC
- b _080757F2
-_080757D2:
- cmp r0, 0x1
- bne _080757DE
- ldrb r0, [r6, 0x6]
- cmp r0, 0
- beq _080757EC
- b _080757F2
-_080757DE:
- cmp r0, 0x2
- bne _080757EC
- ldrb r0, [r6, 0x6]
- cmp r0, 0
- bne _080757EC
- movs r0, 0x1
- mov r8, r0
-_080757EC:
- mov r0, r8
- cmp r0, 0
- beq _0807580C
-_080757F2:
- mov r0, r9
- cmp r0, 0
- bne _0807580C
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0x1
- bl sub_807FE9C
- b _0807580C
-_08075806:
- adds r0, r4, 0
- bl sub_8073D14
-_0807580C:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8075708
-
- thumb_func_start sub_8075818
-sub_8075818:
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, [r4, 0x70]
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _080758F6
- adds r0, r4, 0
- bl sub_8045128
- adds r5, r0, 0
- adds r0, r4, 0
- movs r1, 0xD
- bl HasIQSkill
- lsls r0, 24
- cmp r0, 0
- beq _08075848
- ldrh r1, [r5]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _080758F2
-_08075848:
- ldr r4, [r5, 0x14]
- cmp r4, 0
- beq _080758F6
- adds r0, r4, 0
- bl sub_80450F8
- cmp r0, 0x5
- bhi _080758F6
- lsls r0, 2
- ldr r1, _08075864
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08075864: .4byte _08075868
- .align 2, 0
-_08075868:
- .4byte _080758F6
- .4byte _080758F6
- .4byte _08075880
- .4byte _080758BE
- .4byte _080758F6
- .4byte _080758F6
-_08075880:
- adds r0, r4, 0
- bl sub_8045104
- movs r1, 0
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _080758A0
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _080758B8
- ldrb r0, [r6, 0x6]
- cmp r0, 0
- bne _080758B8
- b _080758F2
-_080758A0:
- cmp r0, 0x1
- bne _080758AC
- ldrb r0, [r6, 0x6]
- cmp r0, 0
- beq _080758B8
- b _080758F2
-_080758AC:
- cmp r0, 0x2
- bne _080758B8
- ldrb r0, [r6, 0x6]
- cmp r0, 0
- bne _080758B8
- movs r1, 0x1
-_080758B8:
- cmp r1, 0
- beq _080758F6
- b _080758F2
-_080758BE:
- ldrb r0, [r6, 0x7]
- cmp r0, 0
- bne _080758F6
- adds r0, r6, 0
- adds r0, 0x60
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080758F6
- ldrh r1, [r5]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _080758E2
- ldrb r0, [r6, 0x6]
- cmp r0, 0
- bne _080758F6
-_080758E2:
- adds r0, r4, 0
- bl sub_8045108
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080758F6
-_080758F2:
- movs r0, 0x1
- b _080758F8
-_080758F6:
- movs r0, 0
-_080758F8:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8075818
-
- thumb_func_start sub_8075900
-sub_8075900:
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0807597A
- ldr r0, [r4, 0x70]
- ldrb r0, [r0, 0x6]
- cmp r0, 0
- bne _0807597A
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _0807597A
- ldr r5, _08075980
- ldr r0, [r5]
- ldr r1, _08075984
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807597A
- adds r0, r4, 0
- bl sub_8045128
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0807597A
- bl sub_8083600
- ldr r1, _08075988
- ldr r1, [r1]
- bl SendMessage
- ldr r0, [r5]
- ldr r1, _0807598C
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_807AB38
- movs r0, 0
- bl sub_8041888
- adds r0, r4, 0x4
- bl sub_803F428
- lsls r0, 24
- cmp r0, 0
- beq _0807597A
- movs r0, 0x78
- movs r1, 0x39
- bl sub_803E708
-_0807597A:
- pop {r4-r6}
- pop {r0}
- bx r0
.align 2, 0
-_08075980: .4byte gDungeonGlobalData
-_08075984: .4byte 0x00000671
-_08075988: .4byte gUnknown_80FE308
-_0807598C: .4byte 0x00000672
- thumb_func_end sub_8075900
diff --git a/asm/code_80739DC.s b/asm/code_80739DC.s
new file mode 100644
index 0000000..cedbff8
--- /dev/null
+++ b/asm/code_80739DC.s
@@ -0,0 +1,3956 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start FindStraightThrowableTargets
+FindStraightThrowableTargets:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ mov r10, r1
+ mov r9, r2
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ ldr r1, _08073A44
+ movs r0, 0
+ str r0, [r1]
+ ldr r1, _08073A48
+ movs r2, 0
+ adds r0, r1, 0x7
+_08073A00:
+ strb r2, [r0]
+ subs r0, 0x1
+ cmp r0, r1
+ bge _08073A00
+ movs r7, 0
+_08073A0A:
+ ldr r0, _08073A4C
+ ldr r0, [r0]
+ lsls r1, r7, 2
+ ldr r2, _08073A50
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _08073A88
+ cmp r5, r4
+ beq _08073A88
+ mov r0, r10
+ cmp r0, 0x1
+ bne _08073A54
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8071598
+ lsls r0, 24
+ cmp r0, 0
+ bne _08073A88
+ movs r6, 0x3
+ b _08073A6A
+ .align 2, 0
+_08073A44: .4byte gNumPotentialTargets
+_08073A48: .4byte gUnknown_202F350
+_08073A4C: .4byte gDungeonGlobalData
+_08073A50: .4byte 0x000135cc
+_08073A54:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_8071598
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08073A88
+ movs r6, 0x1
+_08073A6A:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl CanSee
+ lsls r0, 24
+ cmp r0, 0
+ beq _08073A88
+ mov r2, r8
+ str r2, [sp]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ mov r2, r9
+ adds r3, r6, 0
+ bl sub_8073B78
+_08073A88:
+ adds r7, 0x1
+ cmp r7, 0x13
+ ble _08073A0A
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end FindStraightThrowableTargets
+
+ thumb_func_start FindRockItemTargets
+FindRockItemTargets:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r5, r0, 0
+ mov r10, r1
+ mov r9, r2
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ ldr r1, _08073B6C
+ movs r0, 0
+ str r0, [r1]
+ movs r6, 0
+ adds r7, r1, 0
+_08073AC0:
+ ldr r0, _08073B70
+ ldr r0, [r0]
+ lsls r1, r6, 2
+ ldr r2, _08073B74
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _08073B56
+ cmp r5, r4
+ beq _08073B56
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl CanSee
+ lsls r0, 24
+ cmp r0, 0
+ beq _08073B56
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_8071598
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08073B56
+ movs r3, 0x4
+ ldrsh r1, [r4, r3]
+ movs r2, 0x4
+ ldrsh r0, [r5, r2]
+ subs r2, r1, r0
+ cmp r2, 0
+ bge _08073B10
+ negs r2, r2
+_08073B10:
+ movs r3, 0x6
+ ldrsh r1, [r4, r3]
+ movs r3, 0x6
+ ldrsh r0, [r5, r3]
+ subs r1, r0
+ cmp r1, 0
+ bge _08073B20
+ negs r1, r1
+_08073B20:
+ cmp r1, r2
+ bge _08073B26
+ adds r1, r2, 0
+_08073B26:
+ cmp r1, 0xA
+ bgt _08073B56
+ mov r0, r8
+ cmp r0, 0
+ bne _08073B44
+ adds r0, r4, 0
+ mov r1, r10
+ movs r2, 0x1
+ bl EvaluateItem
+ bl RollPercentChance
+ lsls r0, 24
+ cmp r0, 0
+ beq _08073B56
+_08073B44:
+ ldr r2, [r7]
+ lsls r1, r2, 2
+ add r1, r9
+ ldrh r0, [r4, 0x4]
+ strh r0, [r1]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r1, 0x2]
+ adds r2, 0x1
+ str r2, [r7]
+_08073B56:
+ adds r6, 0x1
+ cmp r6, 0x13
+ ble _08073AC0
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08073B6C: .4byte gNumPotentialTargets
+_08073B70: .4byte gDungeonGlobalData
+_08073B74: .4byte 0x000135cc
+ thumb_func_end FindRockItemTargets
+
+ thumb_func_start sub_8073B78
+sub_8073B78:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ mov r9, r2
+ mov r10, r3
+ ldr r0, [sp, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r0, 0x4
+ ldrsh r1, [r4, r0]
+ movs r2, 0x4
+ ldrsh r0, [r5, r2]
+ subs r2, r1, r0
+ cmp r2, 0
+ bge _08073BA2
+ negs r2, r2
+_08073BA2:
+ movs r3, 0x6
+ ldrsh r1, [r4, r3]
+ movs r6, 0x6
+ ldrsh r0, [r5, r6]
+ subs r1, r0
+ cmp r1, 0
+ bge _08073BB2
+ negs r1, r1
+_08073BB2:
+ ldr r0, [r4, 0x70]
+ adds r0, 0xE0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08073BCA
+ adds r0, r1, 0
+ cmp r1, r2
+ bge _08073BC4
+ adds r0, r2, 0
+_08073BC4:
+ cmp r0, 0xA
+ ble _08073BCA
+ b _08073CDC
+_08073BCA:
+ movs r6, 0x1
+ negs r6, r6
+ cmp r2, r1
+ bne _08073C14
+ movs r7, 0x4
+ ldrsh r1, [r4, r7]
+ movs r2, 0x4
+ ldrsh r0, [r5, r2]
+ ldrh r2, [r4, 0x4]
+ ldrh r3, [r5, 0x4]
+ cmp r1, r0
+ bge _08073BFA
+ movs r6, 0x6
+ ldrsh r1, [r4, r6]
+ movs r7, 0x6
+ ldrsh r0, [r5, r7]
+ cmp r1, r0
+ bge _08073BF2
+ movs r6, 0x1
+ b _08073C7E
+_08073BF2:
+ cmp r1, r0
+ ble _08073BFA
+ movs r6, 0x3
+ b _08073C7E
+_08073BFA:
+ lsls r1, r2, 16
+ lsls r0, r3, 16
+ movs r6, 0x7
+ cmp r1, r0
+ ble _08073C7A
+ movs r0, 0x6
+ ldrsh r1, [r4, r0]
+ movs r2, 0x6
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ ble _08073C7A
+ movs r6, 0x5
+ b _08073C7E
+_08073C14:
+ movs r3, 0x4
+ ldrsh r1, [r4, r3]
+ movs r7, 0x4
+ ldrsh r0, [r5, r7]
+ ldrh r2, [r4, 0x4]
+ ldrh r3, [r5, 0x4]
+ cmp r1, r0
+ bne _08073C34
+ movs r0, 0x6
+ ldrsh r1, [r4, r0]
+ movs r7, 0x6
+ ldrsh r0, [r5, r7]
+ cmp r1, r0
+ bge _08073C34
+ movs r6, 0
+ b _08073C7E
+_08073C34:
+ lsls r1, r2, 16
+ lsls r0, r3, 16
+ cmp r1, r0
+ bge _08073C4C
+ movs r0, 0x6
+ ldrsh r1, [r4, r0]
+ movs r7, 0x6
+ ldrsh r0, [r5, r7]
+ cmp r1, r0
+ bne _08073C4C
+ movs r6, 0x2
+ b _08073C7E
+_08073C4C:
+ lsls r1, r2, 16
+ lsls r0, r3, 16
+ cmp r1, r0
+ bne _08073C64
+ movs r0, 0x6
+ ldrsh r1, [r4, r0]
+ movs r7, 0x6
+ ldrsh r0, [r5, r7]
+ cmp r1, r0
+ ble _08073C64
+ movs r6, 0x4
+ b _08073C7E
+_08073C64:
+ lsls r1, r2, 16
+ lsls r0, r3, 16
+ cmp r1, r0
+ ble _08073C7A
+ movs r0, 0x6
+ ldrsh r1, [r4, r0]
+ movs r2, 0x6
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ bne _08073C7A
+ movs r6, 0x6
+_08073C7A:
+ cmp r6, 0
+ blt _08073CDC
+_08073C7E:
+ ldr r0, _08073CC0
+ adds r7, r6, r0
+ ldrb r0, [r7]
+ cmp r0, 0
+ bne _08073CDC
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ movs r3, 0xA
+ bl sub_807C9F8
+ lsls r0, 24
+ cmp r0, 0
+ beq _08073CDC
+ movs r0, 0x1
+ strb r0, [r7]
+ ldr r1, _08073CC4
+ ldr r0, _08073CC8
+ ldr r0, [r0]
+ lsls r0, 2
+ adds r1, r0, r1
+ str r6, [r1]
+ ldr r1, _08073CCC
+ adds r4, r0, r1
+ mov r3, r8
+ cmp r3, 0
+ bne _08073CD0
+ adds r0, r5, 0
+ mov r1, r9
+ mov r2, r10
+ bl EvaluateItem
+ b _08073CD2
+ .align 2, 0
+_08073CC0: .4byte gUnknown_202F350
+_08073CC4: .4byte gPotentialTargetDirections
+_08073CC8: .4byte gNumPotentialTargets
+_08073CCC: .4byte gPotentialTargetWeights
+_08073CD0:
+ movs r0, 0x64
+_08073CD2:
+ str r0, [r4]
+ ldr r1, _08073CEC
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_08073CDC:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08073CEC: .4byte gNumPotentialTargets
+ thumb_func_end sub_8073B78
+
+ thumb_func_start sub_8073CF0
+sub_8073CF0:
+ push {lr}
+ bl sub_8067110
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8073CF0
+
+ thumb_func_start sub_8073CFC
+sub_8073CFC:
+ push {lr}
+ bl sub_80671A0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8073CFC
+
+ thumb_func_start sub_8073D08
+sub_8073D08:
+ push {lr}
+ bl sub_8073D14
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8073D08
+
+ thumb_func_start sub_8073D14
+sub_8073D14:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xB0
+ adds r6, r0, 0
+ ldr r4, [r6, 0x70]
+ bl sub_8045128
+ ldr r5, [r0, 0x14]
+ cmp r5, 0
+ bne _08073D30
+ b _0807407A
+_08073D30:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08073D3C
+ b _0807407A
+_08073D3C:
+ ldr r0, _08073D68
+ adds r1, r6, 0
+ movs r2, 0
+ bl SetMessageArgument
+ ldrb r0, [r4, 0x7]
+ cmp r0, 0
+ beq _08073D4E
+ b _0807407A
+_08073D4E:
+ ldrb r0, [r4, 0x8]
+ cmp r0, 0x1
+ bne _08073D56
+ b _0807407A
+_08073D56:
+ adds r0, r4, 0
+ adds r0, 0x40
+ ldrb r0, [r0]
+ cmp r0, 0x4A
+ beq _08073D64
+ cmp r0, 0x47
+ bne _08073D6C
+_08073D64:
+ movs r0, 0x1
+ b _08073D6E
+ .align 2, 0
+_08073D68: .4byte gAvailablePokemonNames
+_08073D6C:
+ movs r0, 0
+_08073D6E:
+ cmp r0, 0
+ beq _08073D74
+ b _0807407A
+_08073D74:
+ adds r0, r4, 0
+ adds r0, 0xA4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08073D80
+ b _0807407A
+_08073D80:
+ ldr r0, [r6, 0x70]
+ mov r10, r0
+ adds r0, r5, 0
+ bl GetItemData
+ adds r5, r0, 0
+ ldrb r1, [r5]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08073D98
+ b _0807407A
+_08073D98:
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl sub_8071518
+ lsls r0, 24
+ cmp r0, 0
+ beq _08073DC8
+ ldr r0, _08073DBC
+ adds r1, r5, 0
+ bl sub_8045BF8
+ ldr r0, _08073DC0
+ adds r1, r6, 0
+ movs r2, 0
+ bl SetMessageArgument
+ ldr r0, _08073DC4
+ b _0807404C
+ .align 2, 0
+_08073DBC: .4byte gUnknown_202DE58
+_08073DC0: .4byte gAvailablePokemonNames
+_08073DC4: .4byte gUnknown_80F8F88
+_08073DC8:
+ mov r1, r10
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0
+ bne _08073E24
+ ldrb r0, [r5, 0x2]
+ bl GetItemType
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bne _08073E24
+ mov r7, r10
+ ldrb r0, [r7, 0x6]
+ cmp r0, 0
+ beq _08073DF4
+ ldr r0, _08073DF0
+ bl PlaySoundEffect
+ b _08073DFC
+ .align 2, 0
+_08073DF0: .4byte 0x0000014b
+_08073DF4:
+ movs r0, 0xA6
+ lsls r0, 1
+ bl PlaySoundEffect
+_08073DFC:
+ adds r0, r5, 0
+ bl GetMoneyValue
+ bl AddToTeamMoney
+ ldr r0, _08073E1C
+ adds r1, r5, 0
+ bl sub_8045BF8
+ adds r0, r6, 0x4
+ movs r1, 0x1
+ bl sub_80461C8
+ ldr r0, _08073E20
+ b _0807404C
+ .align 2, 0
+_08073E1C: .4byte gUnknown_202DE58
+_08073E20: .4byte gUnknown_80F9054
+_08073E24:
+ ldr r0, _08073E64
+ ldr r0, [r0]
+ ldr r1, _08073E68
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08073E70
+ mov r7, r10
+ ldrb r0, [r7, 0x6]
+ cmp r0, 0
+ bne _08073E70
+ movs r4, 0
+ add r2, sp, 0x54
+ adds r7, 0x60
+ ldr r0, _08073E6C
+ mov r1, sp
+ ldr r0, [r0]
+ adds r3, r2, 0
+_08073E48:
+ stm r3!, {r0}
+ stm r1!, {r4}
+ adds r0, 0x4
+ adds r4, 0x1
+ cmp r4, 0x13
+ ble _08073E48
+ str r7, [r2, 0x50]
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [sp, 0x50]
+ movs r0, 0x15
+ mov r8, r0
+ b _08073E80
+ .align 2, 0
+_08073E64: .4byte gDungeonGlobalData
+_08073E68: .4byte 0x0000065b
+_08073E6C: .4byte gTeamInventory_203B460
+_08073E70:
+ mov r0, r10
+ adds r0, 0x60
+ str r0, [sp, 0x54]
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [sp]
+ movs r1, 0x1
+ mov r8, r1
+_08073E80:
+ ldrb r0, [r5, 0x2]
+ add r7, sp, 0xA8
+ strb r0, [r7]
+ adds r0, r7, 0
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bls _08073E90
+ b _08073FA8
+_08073E90:
+ ldrb r1, [r5]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08073E9C
+ b _08073FA8
+_08073E9C:
+ movs r1, 0x1
+ negs r1, r1
+ mov r12, r1
+ mov r7, r12
+ str r7, [sp, 0xAC]
+ movs r4, 0
+ cmp r4, r8
+ bge _08073EEC
+ ldr r0, _08073F94
+ mov r9, r0
+ add r3, sp, 0x54
+_08073EB2:
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08073EE4
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08073EE4
+ ldr r1, [r5]
+ mov r7, r9
+ ands r1, r7
+ ldr r0, [r2]
+ ands r0, r7
+ cmp r1, r0
+ bne _08073EE4
+ ldrb r0, [r2, 0x1]
+ cmp r0, 0x63
+ beq _08073EE4
+ ldr r1, [sp, 0xAC]
+ cmp r1, r0
+ bge _08073EE4
+ str r0, [sp, 0xAC]
+ mov r12, r4
+_08073EE4:
+ adds r3, 0x4
+ adds r4, 0x1
+ cmp r4, r8
+ blt _08073EB2
+_08073EEC:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r12, r0
+ bne _08073F40
+ mov r7, r12
+ str r7, [sp, 0xAC]
+ movs r4, 0
+ cmp r4, r8
+ bge _08073F38
+ add r0, sp, 0xA8
+ ldrb r0, [r0]
+ mov r9, r0
+ add r3, sp, 0x54
+_08073F06:
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08073F30
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08073F30
+ ldrb r1, [r2, 0x2]
+ cmp r9, r1
+ bne _08073F30
+ ldrb r0, [r2, 0x1]
+ cmp r0, 0x63
+ beq _08073F30
+ ldr r7, [sp, 0xAC]
+ cmp r7, r0
+ bge _08073F30
+ str r0, [sp, 0xAC]
+ mov r12, r4
+_08073F30:
+ adds r3, 0x4
+ adds r4, 0x1
+ cmp r4, r8
+ blt _08073F06
+_08073F38:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r12, r0
+ beq _08073FA8
+_08073F40:
+ add r0, sp, 0x54
+ mov r1, r12
+ lsls r4, r1, 2
+ adds r3, r0, r4
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r5, 0x1]
+ adds r1, r0
+ cmp r1, 0x62
+ ble _08073F56
+ movs r1, 0x63
+_08073F56:
+ strb r1, [r2, 0x1]
+ ldrb r1, [r5]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08073F6C
+ ldr r0, [r3]
+ ldrb r1, [r0]
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0]
+_08073F6C:
+ ldr r0, _08073F98
+ adds r1, r5, 0
+ bl sub_8045BF8
+ adds r0, r6, 0x4
+ movs r1, 0x1
+ bl sub_80461C8
+ movs r0, 0xA5
+ lsls r0, 1
+ bl PlaySoundEffect
+ mov r7, sp
+ adds r0, r7, r4
+ ldr r0, [r0]
+ cmp r0, 0
+ bge _08073FA0
+ ldr r0, _08073F9C
+ b _0807404C
+ .align 2, 0
+_08073F94: .4byte 0x00ff0008
+_08073F98: .4byte gUnknown_202DE58
+_08073F9C: .4byte gUnknown_80F9018
+_08073FA0:
+ ldr r0, _08073FA4
+ b _0807404C
+ .align 2, 0
+_08073FA4: .4byte gUnknown_80F9050
+_08073FA8:
+ movs r4, 0
+ cmp r4, r8
+ bge _08073FD2
+ ldr r0, [sp, 0x54]
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08073FD2
+ movs r3, 0x1
+ add r2, sp, 0x54
+_08073FBE:
+ adds r2, 0x4
+ adds r4, 0x1
+ cmp r4, r8
+ bge _08073FD2
+ ldr r0, [r2]
+ ldrb r1, [r0]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08073FBE
+_08073FD2:
+ cmp r4, r8
+ bne _08073FEC
+ ldr r0, _08073FE4
+ adds r1, r5, 0
+ bl sub_8045BF8
+ ldr r0, _08073FE8
+ b _0807404C
+ .align 2, 0
+_08073FE4: .4byte gUnknown_202DE58
+_08073FE8: .4byte gUnknown_80F8F54
+_08073FEC:
+ mov r1, r10
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0
+ beq _08074000
+ ldr r0, _08073FFC
+ bl PlaySoundEffect
+ b _08074008
+ .align 2, 0
+_08073FFC: .4byte 0x0000014b
+_08074000:
+ movs r0, 0xA5
+ lsls r0, 1
+ bl PlaySoundEffect
+_08074008:
+ lsls r0, r4, 2
+ add r0, sp
+ ldr r0, [r0]
+ cmp r0, 0
+ bge _08074034
+ ldr r0, [r5]
+ mov r7, r10
+ str r0, [r7, 0x60]
+ ldr r0, _0807402C
+ adds r1, r5, 0
+ bl sub_8045BF8
+ adds r0, r6, 0x4
+ movs r1, 0x1
+ bl sub_80461C8
+ ldr r0, _08074030
+ b _0807404C
+ .align 2, 0
+_0807402C: .4byte gUnknown_202DE58
+_08074030: .4byte gUnknown_80F9018
+_08074034:
+ adds r0, r5, 0
+ bl AddItemToInventory
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074060
+ ldr r0, _08074058
+ adds r1, r6, 0
+ movs r2, 0
+ bl SetMessageArgument
+ ldr r0, _0807405C
+_0807404C:
+ ldr r1, [r0]
+ adds r0, r6, 0
+ bl sub_805239C
+ b _0807407A
+ .align 2, 0
+_08074058: .4byte gAvailablePokemonNames
+_0807405C: .4byte gUnknown_80F8FAC
+_08074060:
+ ldr r0, _0807408C
+ adds r1, r5, 0
+ bl sub_8045BF8
+ adds r0, r6, 0x4
+ movs r1, 0x1
+ bl sub_80461C8
+ ldr r0, _08074090
+ ldr r1, [r0]
+ adds r0, r6, 0
+ bl sub_805239C
+_0807407A:
+ add sp, 0xB0
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807408C: .4byte gUnknown_202DE58
+_08074090: .4byte gUnknown_80F9050
+ thumb_func_end sub_8073D14
+
+ thumb_func_start sub_8074094
+sub_8074094:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x30
+ adds r5, r0, 0
+ cmp r5, 0
+ bne _080740AA
+ bl _08074B2E
+_080740AA:
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _080740B8
+ bl _08074B2E
+_080740B8:
+ bl sub_8044B28
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ beq _080740C8
+ bl _08074B2E
+_080740C8:
+ ldr r0, [r5, 0x70]
+ mov r8, r0
+ movs r0, 0xA3
+ lsls r0, 1
+ add r0, r8
+ strb r6, [r0]
+ bl sub_805229C
+ adds r0, r5, 0
+ bl sub_807E8F0
+ adds r0, r5, 0
+ movs r1, 0x16
+ bl sub_8046CB0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074170
+ ldr r4, _0807434C
+ add r4, r8
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x13
+ bls _08074102
+ movs r0, 0x13
+ strb r0, [r4]
+_08074102:
+ movs r0, 0x64
+ bl DungeonRandomCapped
+ ldr r2, _08074350
+ ldrb r1, [r4]
+ lsls r1, 1
+ adds r1, r2
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ cmp r0, r1
+ bge _08074170
+ strb r6, [r4]
+ adds r0, r5, 0
+ bl sub_80444F4
+ movs r0, 0
+ bl sub_807520C
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074136
+ bl _08074B2E
+_08074136:
+ bl sub_8044B28
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _08074146
+ bl _08074B2E
+_08074146:
+ adds r0, r5, 0
+ adds r1, r5, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_807D148
+ mov r3, r8
+ ldrb r0, [r3, 0x7]
+ cmp r0, 0
+ bne _0807415C
+ b _080743B0
+_0807415C:
+ ldr r1, _08074354
+ ldr r0, [r1]
+ strb r4, [r0, 0x1]
+ ldr r0, [r1]
+ movs r4, 0xB8
+ lsls r4, 3
+ adds r0, r4
+ movs r1, 0x1
+ negs r1, r1
+ str r1, [r0]
+_08074170:
+ mov r1, r8
+ ldrb r0, [r1, 0x7]
+ cmp r0, 0
+ bne _0807417A
+ b _080743B0
+_0807417A:
+ movs r2, 0
+ mov r9, r2
+ movs r4, 0xA
+ adds r0, r5, 0
+ movs r1, 0x17
+ bl sub_8046CB0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074190
+ movs r4, 0
+_08074190:
+ adds r0, r5, 0
+ movs r1, 0x1F
+ bl sub_8046CB0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080741A0
+ subs r4, 0x1
+_080741A0:
+ adds r0, r5, 0
+ movs r1, 0x10
+ bl HasIQSkill
+ lsls r0, 24
+ cmp r0, 0
+ beq _080741B0
+ subs r4, 0x1
+_080741B0:
+ adds r0, r5, 0
+ movs r1, 0x1B
+ bl sub_8046CB0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080741C0
+ adds r4, 0x1
+_080741C0:
+ adds r0, r5, 0
+ movs r1, 0xA
+ bl sub_8046CB0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080741D0
+ adds r4, 0x1
+_080741D0:
+ adds r0, r5, 0
+ movs r1, 0x2B
+ bl sub_8046CB0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080741E0
+ adds r4, 0x1
+_080741E0:
+ cmp r4, 0
+ bge _080741E6
+ movs r4, 0
+_080741E6:
+ cmp r4, 0x13
+ ble _080741EC
+ movs r4, 0x13
+_080741EC:
+ mov r3, r9
+ str r3, [sp, 0x8]
+ ldr r0, _08074358
+ str r0, [sp, 0xC]
+ add r6, sp, 0x10
+ lsls r2, r4, 3
+ ldr r0, _0807435C
+ adds r2, r0
+ adds r0, r6, 0
+ add r1, sp, 0x8
+ bl sub_800A34C
+ ldr r2, _08074360
+ add r2, r8
+ ldrb r0, [r2]
+ cmp r0, 0x1
+ bls _0807421E
+ ldr r1, _08074364
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r1, 16
+ ldr r0, [r6, 0x4]
+ adds r0, r1
+ str r0, [r6, 0x4]
+_0807421E:
+ mov r4, r9
+ strb r4, [r2]
+ movs r4, 0x9E
+ lsls r4, 1
+ add r4, r8
+ ldr r7, [r4]
+ add r0, sp, 0x18
+ adds r1, r6, 0
+ bl sub_80943A8
+ ldr r2, [sp, 0x18]
+ add r0, sp, 0x1C
+ adds r1, r7, 0
+ bl sub_80942C0
+ ldr r0, [sp, 0x1C]
+ str r0, [r4]
+ movs r6, 0x1
+ adds r0, r7, 0
+ bl sub_8094450
+ cmp r0, 0x13
+ ble _0807425C
+ ldr r0, [r4]
+ bl sub_8094450
+ cmp r0, 0x13
+ bgt _0807425C
+ ldr r0, _08074368
+ ldr r0, [r0]
+ mov r9, r0
+_0807425C:
+ adds r0, r7, 0
+ bl sub_8094450
+ cmp r0, 0x9
+ ble _0807427C
+ movs r0, 0x9E
+ lsls r0, 1
+ add r0, r8
+ ldr r0, [r0]
+ bl sub_8094450
+ cmp r0, 0x9
+ bgt _0807427C
+ ldr r0, _0807436C
+ ldr r0, [r0]
+ mov r9, r0
+_0807427C:
+ movs r4, 0x9E
+ lsls r4, 1
+ add r4, r8
+ ldr r0, [r4]
+ bl sub_8094450
+ cmp r0, 0
+ bne _08074298
+ add r0, sp, 0x20
+ movs r1, 0
+ bl sub_80943A0
+ ldr r0, [sp, 0x20]
+ str r0, [r4]
+_08074298:
+ ldr r0, [r4]
+ bl sub_8094450
+ cmp r0, 0
+ bge _080742AE
+ add r0, sp, 0x24
+ movs r1, 0
+ bl sub_80943A0
+ ldr r0, [sp, 0x24]
+ str r0, [r4]
+_080742AE:
+ ldr r0, [r4]
+ bl sub_8094450
+ cmp r0, 0
+ bne _08074384
+ bl sub_805E804
+ adds r0, r5, 0
+ bl sub_80444F4
+ movs r0, 0
+ bl sub_807520C
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _080742D8
+ bl _08074B2E
+_080742D8:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _080742E6
+ bl _08074B2E
+_080742E6:
+ ldr r3, _08074354
+ ldr r0, [r3]
+ ldr r2, _08074370
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0x9
+ bhi _080742F8
+ adds r0, 0x1
+ strb r0, [r1]
+_080742F8:
+ ldr r0, [r3]
+ adds r0, r2
+ ldrb r2, [r0]
+ cmp r2, 0x1
+ bne _08074308
+ ldr r0, _08074374
+ ldr r0, [r0]
+ mov r9, r0
+_08074308:
+ cmp r2, 0x2
+ bne _08074314
+ ldr r0, _08074378
+ ldr r0, [r0]
+ mov r9, r0
+ movs r6, 0
+_08074314:
+ cmp r2, 0x3
+ bne _08074320
+ ldr r0, _0807437C
+ ldr r0, [r0]
+ mov r9, r0
+ movs r6, 0
+_08074320:
+ adds r0, r5, 0
+ adds r1, r5, 0
+ bl sub_807A96C
+ ldr r3, _08074380
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r2, 0xE
+ bl sub_806F324
+ movs r1, 0xA3
+ lsls r1, 1
+ add r1, r8
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, [r4]
+ bl sub_8094450
+ cmp r0, 0
+ beq _08074390
+ b _080743B0
+ .align 2, 0
+_0807434C: .4byte 0x00000169
+_08074350: .4byte gUnknown_80F5594
+_08074354: .4byte gDungeonGlobalData
+_08074358: .4byte 0x0000199a
+_0807435C: .4byte gUnknown_80F54F4
+_08074360: .4byte 0x00000153
+_08074364: .4byte gUnknown_80F60DC
+_08074368: .4byte gUnknown_80FD594
+_0807436C: .4byte gUnknown_80FD5B8
+_08074370: .4byte 0x00000679
+_08074374: .4byte gUnknown_80FD5DC
+_08074378: .4byte gUnknown_80FD608
+_0807437C: .4byte gUnknown_80FD628
+_08074380: .4byte 0x00000211
+_08074384:
+ ldr r0, _08074408
+ ldr r0, [r0]
+ ldr r1, _0807440C
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+_08074390:
+ mov r2, r9
+ cmp r2, 0
+ beq _080743B0
+ cmp r6, 0
+ beq _080743A0
+ ldr r0, _08074410
+ bl PlaySoundEffect
+_080743A0:
+ adds r0, r5, 0
+ mov r1, r9
+ bl SendMessage
+ movs r0, 0x1E
+ movs r1, 0x32
+ bl sub_803E708
+_080743B0:
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _080743BE
+ b _08074B2E
+_080743BE:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _080743CA
+ b _08074B2E
+_080743CA:
+ ldr r0, _08074408
+ ldr r0, [r0]
+ ldr r3, _08074414
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08074480
+ adds r0, r5, 0
+ bl sub_807E580
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bne _0807441C
+ adds r0, r5, 0
+ movs r1, 0x6
+ bl sub_8071858
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074466
+ ldr r0, _08074418
+ movs r4, 0
+ ldrsh r1, [r0, r4]
+ movs r3, 0x88
+ lsls r3, 2
+ adds r0, r5, 0
+ movs r2, 0x12
+ bl sub_806F324
+ b _08074466
+ .align 2, 0
+_08074408: .4byte gDungeonGlobalData
+_0807440C: .4byte 0x00000679
+_08074410: .4byte 0x00000153
+_08074414: .4byte 0x0000e266
+_08074418: .4byte gUnknown_80F4F8E
+_0807441C:
+ adds r0, r5, 0
+ bl sub_807E580
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _08074466
+ adds r0, r5, 0
+ movs r1, 0x9
+ bl sub_8071858
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074466
+ adds r0, r5, 0
+ movs r1, 0xD
+ bl sub_8071858
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074466
+ adds r0, r5, 0
+ movs r1, 0x11
+ bl sub_8071858
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074466
+ ldr r0, _08074608
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r3, 0x88
+ lsls r3, 2
+ adds r0, r5, 0
+ movs r2, 0x12
+ bl sub_806F324
+_08074466:
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074474
+ b _08074B2E
+_08074474:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074480
+ b _08074B2E
+_08074480:
+ movs r0, 0x64
+ bl DungeonRandomCapped
+ adds r4, r0, 0
+ adds r0, r5, 0
+ movs r1, 0x21
+ bl HasAbility
+ lsls r0, 24
+ cmp r0, 0
+ beq _080744D8
+ ldr r0, _0807460C
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r4, r0
+ bge _080744D8
+ adds r0, r5, 0
+ bl sub_8070A58
+ lsls r0, 24
+ cmp r0, 0
+ beq _080744D8
+ movs r0, 0
+ bl sub_807520C
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _080744C0
+ b _08074B2E
+_080744C0:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _080744CC
+ b _08074B2E
+_080744CC:
+ adds r0, r5, 0
+ adds r1, r5, 0
+ movs r2, 0x1
+ movs r3, 0
+ bl sub_8079F20
+_080744D8:
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl HasAbility
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807450C
+ ldr r2, _08074610
+ add r2, r8
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ ldrb r1, [r2]
+ ldr r0, _08074614
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ cmp r1, r0
+ blt _0807450C
+ movs r0, 0
+ strb r0, [r2]
+ adds r0, r5, 0
+ adds r1, r5, 0
+ movs r2, 0x7F
+ movs r3, 0
+ bl sub_8077910
+_0807450C:
+ mov r0, r8
+ adds r0, 0xA8
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _0807453C
+ movs r0, 0
+ bl sub_807520C
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807452A
+ b _08074B2E
+_0807452A:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074536
+ b _08074B2E
+_08074536:
+ adds r0, r5, 0
+ bl sub_80420B8
+_0807453C:
+ mov r0, r8
+ adds r0, 0xAC
+ ldrb r1, [r0]
+ adds r6, r0, 0
+ cmp r1, 0x1
+ bne _080745B6
+ mov r4, r8
+ adds r4, 0xAE
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0807455C
+ subs r0, 0x1
+ strb r0, [r4]
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807459C
+_0807455C:
+ movs r0, 0
+ bl sub_807520C
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074570
+ b _08074B2E
+_08074570:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807457C
+ b _08074B2E
+_0807457C:
+ ldr r0, _08074618
+ ldrh r0, [r0]
+ strb r0, [r4]
+ adds r0, r5, 0
+ adds r1, r5, 0
+ bl sub_807A96C
+ ldr r0, _0807461C
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r3, 0x82
+ lsls r3, 2
+ adds r0, r5, 0
+ movs r2, 0x1
+ bl sub_806F324
+_0807459C:
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _080745AA
+ b _08074B2E
+_080745AA:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _080745B6
+ b _08074B2E
+_080745B6:
+ ldrb r0, [r6]
+ cmp r0, 0x2
+ bne _08074628
+ mov r4, r8
+ adds r4, 0xAE
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080745D0
+ subs r0, 0x1
+ strb r0, [r4]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074696
+_080745D0:
+ movs r0, 0
+ bl sub_807520C
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _080745E4
+ b _08074B2E
+_080745E4:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _080745F0
+ b _08074B2E
+_080745F0:
+ ldr r0, _08074620
+ ldrh r0, [r0]
+ strb r0, [r4]
+ adds r0, r5, 0
+ adds r1, r5, 0
+ bl sub_807A96C
+ ldr r0, _08074624
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ b _0807468C
+ .align 2, 0
+_08074608: .4byte gUnknown_80F4F8E
+_0807460C: .4byte gUnknown_80F4E0C
+_08074610: .4byte 0x00000113
+_08074614: .4byte gUnknown_80F4F30
+_08074618: .4byte gUnknown_80F4F32
+_0807461C: .4byte gUnknown_80F4F70
+_08074620: .4byte gUnknown_80F4F34
+_08074624: .4byte gUnknown_80F4F72
+_08074628:
+ cmp r0, 0x3
+ bne _080746B0
+ mov r2, r8
+ adds r2, 0xAE
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _08074640
+ subs r0, 0x1
+ strb r0, [r2]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074696
+_08074640:
+ mov r1, r8
+ adds r1, 0xAF
+ ldrb r4, [r1]
+ cmp r4, 0x1C
+ bhi _0807464E
+ adds r0, r4, 0x1
+ strb r0, [r1]
+_0807464E:
+ ldr r0, _08074718
+ ldrh r0, [r0]
+ strb r0, [r2]
+ cmp r4, 0x1C
+ ble _0807465A
+ movs r4, 0x1D
+_0807465A:
+ movs r0, 0
+ bl sub_807520C
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807466E
+ b _08074B2E
+_0807466E:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807467A
+ b _08074B2E
+_0807467A:
+ adds r0, r5, 0
+ adds r1, r5, 0
+ bl sub_807A96C
+ ldr r1, _0807471C
+ lsls r0, r4, 1
+ adds r0, r1
+ movs r4, 0
+ ldrsh r1, [r0, r4]
+_0807468C:
+ ldr r3, _08074720
+ adds r0, r5, 0
+ movs r2, 0x3
+ bl sub_806F324
+_08074696:
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _080746A4
+ b _08074B2E
+_080746A4:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _080746B0
+ b _08074B2E
+_080746B0:
+ mov r0, r8
+ adds r0, 0xB0
+ ldrb r1, [r0]
+ mov r10, r0
+ cmp r1, 0x7
+ bne _08074730
+ mov r4, r8
+ adds r4, 0xB9
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080746D0
+ subs r0, 0x1
+ strb r0, [r4]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074786
+_080746D0:
+ movs r0, 0
+ bl sub_807520C
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _080746E4
+ b _08074B2E
+_080746E4:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _080746F0
+ b _08074B2E
+_080746F0:
+ ldr r0, _08074724
+ ldrh r0, [r0]
+ strb r0, [r4]
+ adds r0, r5, 0
+ adds r1, r5, 0
+ bl sub_807A96C
+ mov r0, r8
+ adds r0, 0xB4
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl sub_8041C4C
+ ldr r0, _08074728
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ ldr r3, _0807472C
+ adds r0, r5, 0
+ movs r2, 0x2
+ b _08074782
+ .align 2, 0
+_08074718: .4byte gUnknown_80F4F36
+_0807471C: .4byte gUnknown_80F4FC8
+_08074720: .4byte 0x0000020a
+_08074724: .4byte gUnknown_80F4F38
+_08074728: .4byte gUnknown_80F4F74
+_0807472C: .4byte 0x00000209
+_08074730:
+ cmp r1, 0x4
+ bne _080747B0
+ mov r4, r8
+ adds r4, 0xB9
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _08074748
+ subs r0, 0x1
+ strb r0, [r4]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074786
+_08074748:
+ movs r0, 0
+ bl sub_807520C
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807475C
+ b _08074B2E
+_0807475C:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074768
+ b _08074B2E
+_08074768:
+ ldr r0, _080747A4
+ ldrh r0, [r0]
+ strb r0, [r4]
+ adds r0, r5, 0
+ adds r1, r5, 0
+ bl sub_807A96C
+ ldr r0, _080747A8
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ ldr r3, _080747AC
+ adds r0, r5, 0
+ movs r2, 0x5
+_08074782:
+ bl sub_806F324
+_08074786:
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074794
+ b _08074B2E
+_08074794:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _080747A0
+ b _08074B2E
+_080747A0:
+ b _08074802
+ .align 2, 0
+_080747A4: .4byte gUnknown_80F4F3A
+_080747A8: .4byte gUnknown_80F4F76
+_080747AC: .4byte 0x0000020b
+_080747B0:
+ cmp r1, 0x5
+ bne _08074802
+ mov r4, r8
+ adds r4, 0xB9
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080747C8
+ subs r0, 0x1
+ strb r0, [r4]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074802
+_080747C8:
+ movs r0, 0
+ bl sub_807520C
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _080747DC
+ b _08074B2E
+_080747DC:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _080747E8
+ b _08074B2E
+_080747E8:
+ ldr r0, _080748D4
+ ldrh r0, [r0]
+ strb r0, [r4]
+ ldr r0, _080748D8
+ movs r4, 0
+ ldrsh r2, [r0, r4]
+ movs r0, 0x1
+ str r0, [sp]
+ adds r0, r5, 0
+ adds r1, r5, 0
+ movs r3, 0
+ bl HealTargetHP
+_08074802:
+ mov r0, r8
+ adds r0, 0xC8
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0807488A
+ mov r2, r8
+ adds r2, 0xCC
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _08074820
+ subs r0, 0x1
+ strb r0, [r2]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074870
+_08074820:
+ mov r0, r8
+ movs r3, 0x10
+ ldrsh r1, [r0, r3]
+ cmp r1, 0
+ bge _0807482C
+ adds r1, 0x3
+_0807482C:
+ asrs r4, r1, 2
+ cmp r4, 0
+ bne _08074834
+ movs r4, 0x1
+_08074834:
+ ldr r0, _080748DC
+ ldrh r0, [r0]
+ strb r0, [r2]
+ movs r0, 0
+ bl sub_807520C
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807484E
+ b _08074B2E
+_0807484E:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807485A
+ b _08074B2E
+_0807485A:
+ adds r0, r5, 0
+ adds r1, r5, 0
+ bl sub_807A96C
+ movs r3, 0x83
+ lsls r3, 2
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x7
+ bl sub_806F324
+_08074870:
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807487E
+ b _08074B2E
+_0807487E:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807488A
+ b _08074B2E
+_0807488A:
+ mov r3, r8
+ adds r3, 0xD0
+ ldrb r4, [r3]
+ mov r9, r4
+ cmp r4, 0x1
+ beq _08074898
+ b _080749AE
+_08074898:
+ mov r2, r8
+ adds r2, 0xDA
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _080748AC
+ subs r0, 0x1
+ strb r0, [r2]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074994
+_080748AC:
+ ldr r0, _080748E0
+ movs r1, 0
+ ldrsh r6, [r0, r1]
+ ldr r0, _080748E4
+ ldr r1, [r0]
+ mov r0, r8
+ adds r0, 0xD8
+ ldrb r0, [r0]
+ lsls r0, 2
+ ldr r4, _080748E8
+ adds r1, r4
+ adds r1, r0
+ ldr r4, [r1]
+ ldr r0, _080748EC
+ ldrh r0, [r0]
+ strb r0, [r2]
+ cmp r4, 0
+ bne _080748F0
+ strb r4, [r3]
+ b _08074994
+ .align 2, 0
+_080748D4: .4byte gUnknown_80F4F3C
+_080748D8: .4byte gUnknown_80F4FB2
+_080748DC: .4byte gUnknown_80F4F3E
+_080748E0: .4byte gUnknown_80F4FB4
+_080748E4: .4byte gDungeonGlobalData
+_080748E8: .4byte 0x000135cc
+_080748EC: .4byte gUnknown_80F4F40
+_080748F0:
+ ldr r0, [r4, 0x70]
+ adds r0, 0x98
+ mov r1, r8
+ adds r1, 0xD4
+ ldr r2, [r0]
+ ldr r0, [r1]
+ cmp r2, r0
+ beq _08074906
+ movs r0, 0
+ strb r0, [r3]
+ b _08074994
+_08074906:
+ adds r0, r5, 0
+ movs r1, 0x3A
+ bl HasAbility
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r5, 0
+ bl sub_80444F4
+ movs r0, 0
+ bl sub_807520C
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807492C
+ b _08074B2E
+_0807492C:
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807493A
+ b _08074B2E
+_0807493A:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074946
+ b _08074B2E
+_08074946:
+ mov r1, r10
+ ldrb r0, [r1]
+ cmp r0, 0x1
+ beq _08074994
+ adds r0, r5, 0
+ adds r1, r5, 0
+ bl sub_807A96C
+ ldr r3, _08074980
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0x9
+ bl sub_806F324
+ cmp r7, 0
+ beq _08074984
+ adds r0, r4, 0
+ adds r1, r4, 0
+ bl sub_807A96C
+ movs r3, 0xFD
+ lsls r3, 1
+ adds r0, r4, 0
+ adds r1, r6, 0
+ movs r2, 0xD
+ bl sub_806F324
+ b _08074994
+ .align 2, 0
+_08074980: .4byte 0x0000020d
+_08074984:
+ mov r2, r9
+ str r2, [sp]
+ adds r0, r4, 0
+ adds r1, r4, 0
+ adds r2, r6, 0
+ movs r3, 0
+ bl HealTargetHP
+_08074994:
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _080749A2
+ b _08074B2E
+_080749A2:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _080749AE
+ b _08074B2E
+_080749AE:
+ mov r4, r8
+ adds r4, 0xFD
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _08074A46
+ adds r0, r4, 0
+ bl sub_80838EC
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08074A46
+ movs r0, 0
+ bl sub_807520C
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _080749D8
+ b _08074B2E
+_080749D8:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _080749E4
+ b _08074B2E
+_080749E4:
+ ldr r0, _08074A18
+ adds r1, r5, 0
+ movs r2, 0
+ bl SetMessageArgument
+ ldr r0, _08074A1C
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl SendMessage
+ adds r0, r5, 0
+ adds r1, r5, 0
+ bl sub_807A96C
+ mov r0, r8
+ adds r0, 0xC4
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bne _08074A24
+ ldr r0, _08074A20
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl SendMessage
+ b _08074A30
+ .align 2, 0
+_08074A18: .4byte gUnknown_202DFE8
+_08074A1C: .4byte gUnknown_80FEB30
+_08074A20: .4byte gPtrProtectSavedItMessage
+_08074A24:
+ ldr r1, _08074B40
+ ldr r3, _08074B44
+ adds r0, r5, 0
+ movs r2, 0xB
+ bl sub_806F324
+_08074A30:
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074B2E
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074B2E
+_08074A46:
+ mov r0, r8
+ adds r0, 0xC0
+ ldrb r1, [r0]
+ adds r7, r0, 0
+ cmp r1, 0x1
+ bne _08074AD4
+ mov r4, r8
+ adds r4, 0xC1
+ adds r0, r4, 0
+ bl sub_80838EC
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08074AD4
+ strb r0, [r7]
+ adds r0, r5, 0
+ movs r1, 0
+ bl CannotMove
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074AD4
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8070D04
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074AD4
+ adds r0, r5, 0
+ bl CannotAct
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ bne _08074AD4
+ movs r0, 0
+ bl sub_807520C
+ add r4, sp, 0x28
+ ldr r1, _08074B48
+ adds r0, r4, 0
+ bl InitPokemonMove
+ ldrb r0, [r4]
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r4]
+ str r6, [sp]
+ str r4, [sp, 0x4]
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8055FA0
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074B2E
+ bl sub_8044B28
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _08074B2E
+ mov r0, r8
+ adds r0, 0xA0
+ str r1, [r0]
+_08074AD4:
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074B2E
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074B2E
+ ldrb r0, [r7]
+ cmp r0, 0xC
+ bne _08074B1E
+ mov r4, r8
+ adds r4, 0xC1
+ adds r0, r4, 0
+ bl sub_80838EC
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08074B1E
+ strb r0, [r7]
+ movs r1, 0xA5
+ lsls r1, 1
+ add r1, r8
+ strb r0, [r1]
+ ldr r0, _08074B4C
+ adds r1, r5, 0
+ movs r2, 0
+ bl SetMessageArgument
+ ldr r0, _08074B50
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl SendMessage
+_08074B1E:
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074B2E
+ bl sub_8044B28
+_08074B2E:
+ add sp, 0x30
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08074B40: .4byte 0x0000270f
+_08074B44: .4byte 0x0000020e
+_08074B48: .4byte 0x00000165
+_08074B4C: .4byte gAvailablePokemonNames
+_08074B50: .4byte gUnknown_80FABD8
+ thumb_func_end sub_8074094
+
+ thumb_func_start sub_8074B54
+sub_8074B54:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ cmp r7, 0
+ bne _08074B62
+ b _08074F96
+_08074B62:
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074B6E
+ b _08074F96
+_08074B6E:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074B7A
+ b _08074F96
+_08074B7A:
+ bl sub_805229C
+ ldr r6, [r7, 0x70]
+ movs r1, 0xA3
+ lsls r1, 1
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08074C48
+ adds r0, r6, 0
+ adds r0, 0xAC
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _08074C48
+ cmp r0, 0x3
+ beq _08074C48
+ movs r4, 0
+ ldrb r0, [r6, 0x6]
+ cmp r0, 0
+ bne _08074BAE
+ movs r2, 0x2
+ ldrsh r0, [r6, r2]
+ bl GetUnk1B
+ lsls r0, 24
+ lsrs r4, r0, 24
+_08074BAE:
+ cmp r4, 0
+ beq _08074C48
+ adds r0, r7, 0
+ movs r1, 0xA
+ bl sub_8046CB0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074BC8
+ ldr r0, _08074EF8
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ adds r4, r0
+_08074BC8:
+ adds r0, r6, 0
+ adds r0, 0xC4
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bne _08074BDA
+ ldr r0, _08074EFC
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ adds r4, r0
+_08074BDA:
+ adds r0, r7, 0
+ movs r1, 0x3
+ bl HasAbility
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074BFE
+ adds r0, r7, 0
+ bl sub_807E580
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bne _08074BFE
+ ldr r0, _08074F00
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ adds r4, r0
+_08074BFE:
+ movs r0, 0xFA
+ lsls r0, 1
+ cmp r4, r0
+ ble _08074C08
+ adds r4, r0, 0
+_08074C08:
+ cmp r4, 0x1D
+ bgt _08074C0E
+ movs r4, 0x1E
+_08074C0E:
+ movs r3, 0xFC
+ lsls r3, 1
+ adds r1, r6, r3
+ ldrh r0, [r6, 0x10]
+ ldrh r2, [r1]
+ adds r0, r2
+ strh r0, [r1]
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, r4
+ blt _08074C38
+_08074C24:
+ ldrh r0, [r6, 0xE]
+ adds r0, 0x1
+ strh r0, [r6, 0xE]
+ ldrh r0, [r1]
+ subs r0, r4
+ strh r0, [r1]
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, r4
+ bge _08074C24
+_08074C38:
+ movs r3, 0xE
+ ldrsh r1, [r6, r3]
+ ldrh r2, [r6, 0x10]
+ movs r3, 0x10
+ ldrsh r0, [r6, r3]
+ cmp r1, r0
+ blt _08074C48
+ strh r2, [r6, 0xE]
+_08074C48:
+ adds r0, r6, 0
+ adds r0, 0xA8
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08074C6E
+ adds r4, r6, 0
+ adds r4, 0xA9
+ adds r0, r4, 0
+ bl sub_80838EC
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08074C6E
+ adds r0, r7, 0
+ adds r1, r7, 0
+ movs r2, 0x1
+ movs r3, 0x1
+ bl sub_807A124
+_08074C6E:
+ adds r0, r7, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074C7C
+ b _08074F96
+_08074C7C:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074C88
+ b _08074F96
+_08074C88:
+ adds r0, r6, 0
+ adds r0, 0xAC
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08074CAA
+ adds r4, r6, 0
+ adds r4, 0xAD
+ adds r0, r4, 0
+ bl sub_80838EC
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08074CAA
+ adds r0, r7, 0
+ adds r1, r7, 0
+ bl sub_807A290
+_08074CAA:
+ adds r0, r7, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074CB8
+ b _08074F96
+_08074CB8:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074CC4
+ b _08074F96
+_08074CC4:
+ adds r0, r6, 0
+ adds r0, 0xB0
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08074CE6
+ adds r4, r6, 0
+ adds r4, 0xB8
+ adds r0, r4, 0
+ bl sub_80838EC
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08074CE6
+ adds r0, r7, 0
+ adds r1, r7, 0
+ bl SendImmobilizeEndMessage
+_08074CE6:
+ adds r0, r7, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074CF4
+ b _08074F96
+_08074CF4:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074D00
+ b _08074F96
+_08074D00:
+ adds r0, r6, 0
+ adds r0, 0xBC
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08074D22
+ adds r4, r6, 0
+ adds r4, 0xBD
+ adds r0, r4, 0
+ bl sub_80838EC
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08074D22
+ adds r0, r7, 0
+ adds r1, r7, 0
+ bl sub_807A400
+_08074D22:
+ adds r0, r7, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074D30
+ b _08074F96
+_08074D30:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074D3C
+ b _08074F96
+_08074D3C:
+ adds r0, r6, 0
+ adds r0, 0xC4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08074D5E
+ adds r4, r6, 0
+ adds r4, 0xC5
+ adds r0, r4, 0
+ bl sub_80838EC
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08074D5E
+ adds r0, r7, 0
+ adds r1, r7, 0
+ bl sub_807A4C8
+_08074D5E:
+ adds r0, r7, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074D6C
+ b _08074F96
+_08074D6C:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074D78
+ b _08074F96
+_08074D78:
+ adds r0, r6, 0
+ adds r0, 0xC8
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08074D9C
+ adds r4, r6, 0
+ adds r4, 0xCB
+ adds r0, r4, 0
+ bl sub_80838EC
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08074D9C
+ adds r0, r7, 0
+ adds r1, r7, 0
+ movs r2, 0
+ bl sub_807A5D0
+_08074D9C:
+ adds r0, r7, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074DAA
+ b _08074F96
+_08074DAA:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074DB6
+ b _08074F96
+_08074DB6:
+ adds r0, r6, 0
+ adds r0, 0xD0
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08074DD8
+ adds r4, r6, 0
+ adds r4, 0xD9
+ adds r0, r4, 0
+ bl sub_80838EC
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08074DD8
+ adds r0, r7, 0
+ adds r1, r7, 0
+ bl sub_807A6C8
+_08074DD8:
+ adds r0, r7, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074DE6
+ b _08074F96
+_08074DE6:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074DF2
+ b _08074F96
+_08074DF2:
+ adds r0, r6, 0
+ adds r0, 0xDC
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08074E14
+ adds r4, r6, 0
+ adds r4, 0xDD
+ adds r0, r4, 0
+ bl sub_80838EC
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08074E14
+ adds r0, r7, 0
+ adds r1, r7, 0
+ bl sub_807A734
+_08074E14:
+ adds r0, r7, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074E22
+ b _08074F96
+_08074E22:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074E2E
+ b _08074F96
+_08074E2E:
+ adds r0, r6, 0
+ adds r0, 0xE4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08074E50
+ adds r4, r6, 0
+ adds r4, 0xE5
+ adds r0, r4, 0
+ bl sub_80838EC
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08074E50
+ adds r0, r7, 0
+ adds r1, r7, 0
+ bl sub_807A7C8
+_08074E50:
+ adds r0, r7, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074E5E
+ b _08074F96
+_08074E5E:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074E6A
+ b _08074F96
+_08074E6A:
+ adds r0, r6, 0
+ adds r0, 0xE8
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08074E8C
+ adds r4, r6, 0
+ adds r4, 0xE9
+ adds r0, r4, 0
+ bl sub_80838EC
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08074E8C
+ adds r0, r7, 0
+ adds r1, r7, 0
+ bl sub_807A888
+_08074E8C:
+ adds r0, r7, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074E9A
+ b _08074F96
+_08074E9A:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074F96
+ adds r0, r6, 0
+ adds r0, 0xEC
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08074EC6
+ adds r4, r6, 0
+ adds r4, 0xED
+ adds r0, r4, 0
+ bl sub_80838EC
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08074EC6
+ adds r0, r7, 0
+ adds r1, r7, 0
+ bl sub_807A924
+_08074EC6:
+ adds r0, r7, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074F96
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074F96
+ adds r4, r6, 0
+ adds r4, 0xFA
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _08074F18
+ adds r0, r4, 0
+ bl sub_80838EC
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08074F18
+ ldr r0, _08074F04
+ adds r1, r7, 0
+ b _08074F08
+ .align 2, 0
+_08074EF8: .4byte gUnknown_80F4FC4
+_08074EFC: .4byte gUnknown_80F4FC0
+_08074F00: .4byte gUnknown_80F4FC2
+_08074F04: .4byte gAvailablePokemonNames
+_08074F08:
+ movs r2, 0
+ bl SetMessageArgument
+ ldr r0, _08074FA0
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl SendMessage
+_08074F18:
+ movs r0, 0
+ mov r8, r0
+ movs r5, 0
+_08074F1E:
+ ldr r1, _08074FA4
+ adds r0, r6, r1
+ adds r4, r0, r5
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _08074F3C
+ adds r0, r5, r1
+ adds r0, r6, r0
+ bl sub_80838EC
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08074F3C
+ movs r2, 0x1
+ mov r8, r2
+_08074F3C:
+ movs r3, 0x84
+ lsls r3, 1
+ adds r0, r6, r3
+ adds r4, r0, r5
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _08074F5C
+ adds r0, r5, r3
+ adds r0, r6, r0
+ bl sub_80838EC
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08074F5C
+ movs r0, 0x1
+ mov r8, r0
+_08074F5C:
+ adds r5, 0x1
+ cmp r5, 0x4
+ ble _08074F1E
+ mov r1, r8
+ cmp r1, 0
+ beq _08074F96
+ ldr r0, [r7, 0x70]
+ movs r2, 0x82
+ lsls r2, 1
+ adds r0, r2
+ ldr r4, [r0]
+ adds r0, r7, 0
+ bl sub_8070774
+ adds r5, r0, 0
+ cmp r4, r5
+ beq _08074F96
+ ldr r0, _08074FA8
+ adds r1, r7, 0
+ movs r2, 0
+ bl SetMessageArgument
+ ldr r1, _08074FAC
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl SendMessage
+_08074F96:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08074FA0: .4byte gPtrStenchWavedOffMessage
+_08074FA4: .4byte 0x0000010d
+_08074FA8: .4byte gAvailablePokemonNames
+_08074FAC: .4byte gUnknown_80FA124
+ thumb_func_end sub_8074B54
+
+ thumb_func_start sub_8074FB0
+sub_8074FB0:
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ adds r5, r1, 0
+ ldr r4, [r3, 0x70]
+ movs r1, 0xFA
+ lsls r1, 1
+ adds r0, r4, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x3
+ ble _08074FD0
+ adds r1, r4, 0
+ adds r1, 0x44
+ movs r0, 0
+ strh r0, [r1]
+ b _08075040
+_08074FD0:
+ ldr r0, _08074FE0
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08074FE8
+ ldr r1, _08074FE4
+ movs r0, 0x2
+ b _08074FEC
+ .align 2, 0
+_08074FE0: .4byte gUnknown_203B46C
+_08074FE4: .4byte gUnknown_202F378
+_08074FE8:
+ ldr r1, _08075048
+ movs r0, 0x1
+_08074FEC:
+ str r0, [r1]
+ adds r6, r1, 0
+ movs r1, 0xFA
+ lsls r1, 1
+ adds r0, r4, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ movs r0, 0xC2
+ lsls r0, 1
+ adds r1, r0
+ adds r1, r4, r1
+ movs r0, 0
+ strb r0, [r1, 0x1A]
+ str r5, [r1, 0xC]
+ ldrh r0, [r3, 0x4]
+ strh r0, [r1]
+ ldrh r0, [r3, 0x6]
+ strh r0, [r1, 0x2]
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ str r0, [r1, 0x4]
+ movs r3, 0x2
+ ldrsh r0, [r2, r3]
+ str r0, [r1, 0x8]
+ ldr r0, _0807504C
+ lsls r2, r5, 2
+ adds r2, r0
+ movs r5, 0
+ ldrsh r0, [r2, r5]
+ ldr r3, [r6]
+ muls r0, r3
+ str r0, [r1, 0x10]
+ movs r5, 0x2
+ ldrsh r0, [r2, r5]
+ muls r0, r3
+ str r0, [r1, 0x14]
+ adds r0, r4, 0
+ bl sub_8075050
+_08075040:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075048: .4byte gUnknown_202F378
+_0807504C: .4byte gUnknown_80F4D44
+ thumb_func_end sub_8074FB0
+
+ thumb_func_start sub_8075050
+sub_8075050:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ mov r9, r0
+ adds r6, r1, 0
+ ldr r0, _08075070
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08075078
+ ldr r1, _08075074
+ movs r0, 0x2
+ b _0807507C
+ .align 2, 0
+_08075070: .4byte gUnknown_203B46C
+_08075074: .4byte gUnknown_202F378
+_08075078:
+ ldr r1, _080750D0
+ movs r0, 0x1
+_0807507C:
+ str r0, [r1]
+ movs r1, 0xFA
+ lsls r1, 1
+ add r1, r9
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _080750D4
+ ldr r0, _080750D0
+ ldr r1, [r0]
+ lsls r1, 1
+ movs r0, 0x18
+ bl __divsi3
+ movs r1, 0xCE
+ lsls r1, 1
+ add r1, r9
+ strh r0, [r1]
+ movs r2, 0xCA
+ lsls r2, 1
+ add r2, r9
+ ldr r1, [r2]
+ lsls r1, 1
+ str r1, [r2]
+ movs r2, 0xCC
+ lsls r2, 1
+ add r2, r9
+ ldr r1, [r2]
+ lsls r1, 1
+ str r1, [r2]
+ strh r0, [r6, 0x18]
+ ldr r0, [r6, 0x10]
+ lsls r0, 1
+ str r0, [r6, 0x10]
+ ldr r0, [r6, 0x14]
+ lsls r0, 1
+ str r0, [r6, 0x14]
+ b _080751F8
+ .align 2, 0
+_080750D0: .4byte gUnknown_202F378
+_080750D4:
+ cmp r0, 0x3
+ bne _08075160
+ ldr r1, [r6, 0x10]
+ str r1, [sp]
+ ldr r0, [r6, 0x14]
+ str r0, [sp, 0x4]
+ movs r4, 0xCE
+ lsls r4, 1
+ add r4, r9
+ movs r5, 0
+ movs r7, 0x1
+_080750EA:
+ ldr r1, _0807515C
+ ldr r0, [r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ movs r0, 0x18
+ bl __divsi3
+ strh r0, [r4]
+ movs r3, 0xCA
+ lsls r3, 1
+ add r3, r9
+ adds r3, r5
+ ldr r1, [r3]
+ lsls r0, r1, 1
+ adds r0, r1
+ str r0, [r3]
+ movs r2, 0xCC
+ lsls r2, 1
+ add r2, r9
+ adds r2, r5
+ ldr r1, [r2]
+ lsls r0, r1, 1
+ adds r0, r1
+ str r0, [r2]
+ ldr r0, [r3]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ str r0, [r3]
+ ldr r0, [r2]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ str r0, [r2]
+ adds r4, 0x1C
+ adds r5, 0x1C
+ subs r7, 0x1
+ cmp r7, 0
+ bge _080750EA
+ ldr r1, _0807515C
+ ldr r0, [r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ movs r0, 0x18
+ bl __divsi3
+ strh r0, [r6, 0x18]
+ ldr r1, [sp]
+ lsls r0, r1, 1
+ adds r0, r1
+ str r0, [r6, 0x10]
+ ldr r1, [sp, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ str r0, [r6, 0x14]
+ b _080751F8
+ .align 2, 0
+_0807515C: .4byte gUnknown_202F378
+_08075160:
+ cmp r0, 0x4
+ bne _080751EC
+ ldr r0, [r6, 0x10]
+ str r0, [sp]
+ ldr r1, [r6, 0x14]
+ str r1, [sp, 0x4]
+ movs r7, 0xCE
+ lsls r7, 1
+ add r7, r9
+ movs r0, 0
+ mov r8, r0
+ movs r1, 0x2
+ mov r10, r1
+_0807517A:
+ ldr r0, _080751E8
+ ldr r1, [r0]
+ lsls r1, 2
+ movs r0, 0x18
+ bl __divsi3
+ strh r0, [r7]
+ movs r4, 0xCA
+ lsls r4, 1
+ add r4, r9
+ add r4, r8
+ ldr r0, [r4]
+ lsls r0, 2
+ str r0, [r4]
+ movs r5, 0xCC
+ lsls r5, 1
+ add r5, r9
+ add r5, r8
+ ldr r0, [r5]
+ lsls r0, 2
+ str r0, [r5]
+ ldr r0, [r4]
+ movs r1, 0x3
+ bl __divsi3
+ str r0, [r4]
+ ldr r0, [r5]
+ movs r1, 0x3
+ bl __divsi3
+ str r0, [r5]
+ adds r7, 0x1C
+ movs r1, 0x1C
+ add r8, r1
+ movs r0, 0x1
+ negs r0, r0
+ add r10, r0
+ mov r1, r10
+ cmp r1, 0
+ bge _0807517A
+ ldr r0, _080751E8
+ ldr r1, [r0]
+ lsls r1, 2
+ movs r0, 0x18
+ bl __divsi3
+ strh r0, [r6, 0x18]
+ ldr r1, [sp]
+ lsls r0, r1, 2
+ str r0, [r6, 0x10]
+ ldr r1, [sp, 0x4]
+ lsls r0, r1, 2
+ str r0, [r6, 0x14]
+ b _080751F8
+ .align 2, 0
+_080751E8: .4byte gUnknown_202F378
+_080751EC:
+ ldr r0, _08075208
+ ldr r1, [r0]
+ movs r0, 0x18
+ bl __divsi3
+ strh r0, [r6, 0x18]
+_080751F8:
+ 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
+_08075208: .4byte gUnknown_202F378
+ thumb_func_end sub_8075050
+
+ thumb_func_start sub_807520C
+sub_807520C:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ mov r10, r0
+ movs r7, 0
+ movs r0, 0
+ mov r9, r0
+ ldr r0, _08075238
+ mov r1, r9
+ strb r1, [r0]
+ ldr r0, _0807523C
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08075244
+ ldr r1, _08075240
+ movs r0, 0x2
+ b _08075248
+ .align 2, 0
+_08075238: .4byte gUnknown_202F32D
+_0807523C: .4byte gUnknown_203B46C
+_08075240: .4byte gUnknown_202F378
+_08075244:
+ ldr r1, _080752D0
+ movs r0, 0x1
+_08075248:
+ str r0, [r1]
+ movs r2, 0
+ mov r8, r2
+_0807524E:
+ ldr r0, _080752D4
+ ldr r0, [r0]
+ mov r3, r8
+ lsls r1, r3, 2
+ ldr r4, _080752D8
+ adds r0, r4
+ adds r0, r1
+ ldr r5, [r0]
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807534C
+ ldr r4, [r5, 0x70]
+ movs r1, 0xFA
+ lsls r1, 1
+ adds r0, r4, r1
+ movs r3, 0
+ ldrsh r2, [r0, r3]
+ cmp r2, 0
+ bne _080752E0
+ ldr r0, _080752DC
+ adds r1, r4, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0807534C
+ strb r2, [r1]
+ movs r1, 0xB6
+ lsls r1, 1
+ adds r6, r4, r1
+ ldr r1, [r6]
+ cmp r1, 0
+ beq _0807534C
+ ldr r0, [r5, 0x4]
+ cmp r1, r0
+ beq _0807534C
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl CannotMove
+ lsls r0, 24
+ cmp r0, 0
+ beq _080752B2
+ adds r0, r5, 0
+ bl CannotAct
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807534C
+_080752B2:
+ adds r0, r5, 0x4
+ adds r1, r6, 0
+ bl CalculateFacingDir
+ adds r1, r0, 0
+ adds r0, r4, 0
+ adds r0, 0x46
+ ldrb r0, [r0]
+ cmp r1, r0
+ beq _0807534C
+ adds r0, r5, 0
+ bl sub_806CE68
+ b _0807534C
+ .align 2, 0
+_080752D0: .4byte gUnknown_202F378
+_080752D4: .4byte gDungeonGlobalData
+_080752D8: .4byte 0x000135cc
+_080752DC: .4byte 0x00000147
+_080752E0:
+ ldrh r1, [r4]
+ movs r2, 0x80
+ lsls r2, 6
+ adds r0, r2, 0
+ orrs r0, r1
+ strh r0, [r4]
+ movs r3, 0xC4
+ lsls r3, 1
+ adds r0, r4, r3
+ ldr r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 11
+ movs r1, 0xC0
+ lsls r1, 4
+ adds r0, r1
+ str r0, [sp]
+ movs r2, 0xC6
+ lsls r2, 1
+ adds r0, r4, r2
+ ldr r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 11
+ movs r3, 0x80
+ lsls r3, 5
+ adds r0, r3
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ mov r1, sp
+ bl sub_804535C
+ movs r1, 0xC8
+ lsls r1, 1
+ adds r0, r4, r1
+ ldr r2, [r0]
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_806CDFC
+ movs r2, 0xFB
+ lsls r2, 1
+ adds r0, r4, r2
+ movs r3, 0
+ strh r3, [r0]
+ movs r7, 0x1
+ adds r0, r5, 0
+ bl sub_8045888
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807534C
+ movs r4, 0x1
+ mov r9, r4
+_0807534C:
+ movs r0, 0x1
+ add r8, r0
+ mov r1, r8
+ cmp r1, 0x13
+ bgt _08075358
+ b _0807524E
+_08075358:
+ cmp r7, 0
+ bne _08075360
+ movs r0, 0
+ b _0807566C
+_08075360:
+ ldr r0, _08075390
+ ldr r0, [r0]
+ adds r1, r0, 0
+ adds r1, 0xB8
+ ldr r2, [r1]
+ str r2, [sp, 0x10]
+ mov r3, r10
+ str r3, [r1]
+ ldr r4, _08075394
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0807537C
+ b _080754AE
+_0807537C:
+ mov r0, r9
+ cmp r0, 0
+ bne _08075384
+ b _080754AE
+_08075384:
+ movs r0, 0x35
+ bl sub_80526D0
+ movs r5, 0
+ b _0807549E
+ .align 2, 0
+_08075390: .4byte gDungeonGlobalData
+_08075394: .4byte 0x0000066c
+_08075398:
+ movs r0, 0x7
+ bl sub_803E46C
+ movs r1, 0
+ mov r8, r1
+ adds r5, 0x1
+ mov r9, r5
+_080753A6:
+ ldr r0, _08075420
+ ldr r0, [r0]
+ mov r2, r8
+ lsls r1, r2, 2
+ ldr r3, _08075424
+ adds r0, r3
+ adds r0, r1
+ ldr r3, [r0]
+ adds r0, r3, 0
+ str r3, [sp, 0x14]
+ bl EntityExists
+ lsls r0, 24
+ ldr r3, [sp, 0x14]
+ cmp r0, 0
+ beq _08075492
+ ldr r0, [r3, 0x70]
+ adds r7, r0, 0
+ movs r4, 0xFB
+ lsls r4, 1
+ adds r5, r7, r4
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ movs r2, 0xC2
+ lsls r2, 1
+ adds r1, r2
+ adds r4, r7, r1
+ movs r0, 0xFA
+ lsls r0, 1
+ adds r6, r7, r0
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ beq _08075492
+ ldr r1, [r4, 0x10]
+ ldr r2, [r4, 0x14]
+ adds r0, r3, 0
+ bl sub_804539C
+ ldrh r0, [r4, 0x18]
+ subs r0, 0x1
+ strh r0, [r4, 0x18]
+ lsls r0, 16
+ asrs r2, r0, 16
+ ldr r3, [sp, 0x14]
+ cmp r2, 0
+ bne _08075492
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+ lsls r0, 16
+ asrs r0, 16
+ movs r4, 0
+ ldrsh r1, [r6, r4]
+ cmp r0, r1
+ bne _08075428
+ strh r2, [r6]
+ b _08075492
+ .align 2, 0
+_08075420: .4byte gDungeonGlobalData
+_08075424: .4byte 0x000135cc
+_08075428:
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ movs r2, 0xC4
+ lsls r2, 1
+ adds r1, r7, r2
+ adds r1, r0
+ ldr r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 11
+ movs r4, 0xC0
+ lsls r4, 4
+ adds r0, r4
+ str r0, [sp, 0x8]
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r2, 0x4
+ adds r1, r7, r2
+ adds r1, r0
+ ldr r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 11
+ movs r4, 0x80
+ lsls r4, 5
+ adds r0, r4
+ add r1, sp, 0x8
+ str r0, [r1, 0x4]
+ adds r0, r3, 0
+ str r3, [sp, 0x14]
+ bl sub_804535C
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ movs r2, 0xC8
+ lsls r2, 1
+ adds r1, r7, r2
+ adds r1, r0
+ ldr r2, [r1]
+ ldr r3, [sp, 0x14]
+ adds r0, r3, 0
+ movs r1, 0
+ bl sub_806CDFC
+_08075492:
+ movs r3, 0x1
+ add r8, r3
+ mov r4, r8
+ cmp r4, 0x13
+ ble _080753A6
+ mov r5, r9
+_0807549E:
+ ldr r0, _08075510
+ ldr r1, [r0]
+ movs r0, 0x18
+ bl __divsi3
+ cmp r5, r0
+ bge _080754AE
+ b _08075398
+_080754AE:
+ movs r0, 0
+ mov r8, r0
+_080754B2:
+ ldr r0, _08075514
+ ldr r0, [r0]
+ mov r2, r8
+ lsls r1, r2, 2
+ ldr r3, _08075518
+ adds r0, r3
+ adds r0, r1
+ ldr r5, [r0]
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _080754F6
+ ldr r4, [r5, 0x70]
+ movs r0, 0xFA
+ lsls r0, 1
+ adds r1, r4, r0
+ movs r0, 0
+ strh r0, [r1]
+ adds r0, r5, 0
+ bl nullsub_97
+ ldrh r0, [r4]
+ movs r2, 0x80
+ lsls r2, 6
+ adds r1, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080754F6
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_804535C
+_080754F6:
+ movs r3, 0x1
+ add r8, r3
+ mov r4, r8
+ cmp r4, 0x13
+ ble _080754B2
+ bl sub_807AA30
+ movs r7, 0
+_08075506:
+ movs r5, 0
+ adds r0, r7, 0x1
+ mov r8, r0
+ b _08075600
+ .align 2, 0
+_08075510: .4byte gUnknown_202F378
+_08075514: .4byte gDungeonGlobalData
+_08075518: .4byte 0x000135cc
+_0807551C:
+ ldr r2, [r4, 0x70]
+ cmp r7, 0
+ bne _0807552A
+ ldrb r0, [r2, 0x7]
+ cmp r0, 0
+ beq _080755FE
+ b _08075530
+_0807552A:
+ ldrb r0, [r2, 0x7]
+ cmp r0, 0
+ bne _080755FE
+_08075530:
+ ldr r6, [r4, 0x4]
+ ldrh r1, [r2]
+ movs r3, 0x80
+ lsls r3, 6
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080755BC
+ ldr r3, _08075560
+ adds r0, r3, 0
+ ands r0, r1
+ strh r0, [r2]
+ ldrb r0, [r2, 0x7]
+ cmp r0, 0
+ beq _08075564
+ adds r0, r4, 0x4
+ bl sub_804AC20
+ movs r0, 0
+ bl sub_807EC28
+ bl sub_805EE30
+ b _0807556A
+ .align 2, 0
+_08075560: .4byte 0x0000dfff
+_08075564:
+ adds r0, r4, 0
+ bl sub_8075708
+_0807556A:
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _080755FE
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807562A
+ movs r0, 0
+ bl sub_8043ED0
+ adds r0, r4, 0
+ bl sub_8074094
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _080755FE
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807562A
+ adds r0, r4, 0
+ bl sub_8071DA4
+ bl sub_8046D20
+ ldr r0, _08075650
+ ldr r0, [r0]
+ ldr r1, _08075654
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl sub_8075900
+_080755BC:
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _080755FE
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807562A
+ ldr r0, [r4, 0x4]
+ cmp r6, r0
+ beq _080755DE
+ ldr r1, _08075658
+ movs r0, 0x1
+ strb r0, [r1]
+_080755DE:
+ adds r0, r4, 0
+ bl sub_806A5B8
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ bl sub_80706A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080755FE
+ adds r0, r4, 0
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_807D148
+_080755FE:
+ adds r5, 0x1
+_08075600:
+ cmp r5, 0x13
+ bgt _0807562A
+ ldr r0, _08075650
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ ldr r2, _0807565C
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _080755FE
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807562A
+ b _0807551C
+_0807562A:
+ mov r7, r8
+ cmp r7, 0x1
+ bgt _08075632
+ b _08075506
+_08075632:
+ bl sub_8086AC0
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _08075660
+ bl sub_8085140
+ ldr r0, _08075650
+ ldr r0, [r0]
+ adds r0, 0xB8
+ ldr r3, [sp, 0x10]
+ str r3, [r0]
+ b _0807566A
+ .align 2, 0
+_08075650: .4byte gDungeonGlobalData
+_08075654: .4byte 0x00003a08
+_08075658: .4byte gUnknown_202F32D
+_0807565C: .4byte 0x000135cc
+_08075660:
+ ldr r0, _0807567C
+ ldr r0, [r0]
+ adds r0, 0xB8
+ ldr r4, [sp, 0x10]
+ str r4, [r0]
+_0807566A:
+ movs r0, 0x1
+_0807566C:
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0807567C: .4byte gDungeonGlobalData
+ thumb_func_end sub_807520C
+
+ thumb_func_start sub_8075680
+sub_8075680:
+ push {r4-r7,lr}
+ movs r7, 0
+_08075684:
+ ldr r0, _080756FC
+ ldr r0, [r0]
+ lsls r1, r7, 2
+ ldr r2, _08075700
+ adds r0, r2
+ adds r0, r1
+ ldr r5, [r0]
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _080756EE
+ ldr r6, [r5, 0x70]
+ ldrb r0, [r6, 0x7]
+ cmp r0, 0
+ bne _080756EE
+ movs r0, 0xB6
+ lsls r0, 1
+ adds r4, r6, r0
+ ldr r1, [r4]
+ cmp r1, 0
+ beq _080756EE
+ ldr r0, [r5, 0x4]
+ cmp r1, r0
+ beq _080756EE
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl CannotMove
+ lsls r0, 24
+ cmp r0, 0
+ bne _080756EE
+ adds r0, r5, 0x4
+ adds r1, r4, 0
+ bl CalculateFacingDir
+ adds r4, r0, 0
+ movs r1, 0x7
+ ands r0, r1
+ adds r1, r6, 0
+ adds r1, 0x46
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_806CEBC
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ adds r2, r4, 0
+ bl sub_806CDD4
+_080756EE:
+ adds r7, 0x1
+ cmp r7, 0x13
+ ble _08075684
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080756FC: .4byte gDungeonGlobalData
+_08075700: .4byte 0x000135cc
+ thumb_func_end sub_8075680
+
+ thumb_func_start nullsub_97
+nullsub_97:
+ bx lr
+ thumb_func_end nullsub_97
+
+ thumb_func_start sub_8075708
+sub_8075708:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r4, r0, 0
+ ldr r6, [r4, 0x70]
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807580C
+ adds r0, r4, 0
+ bl sub_8045128
+ adds r5, r0, 0
+ adds r0, r4, 0
+ movs r1, 0xD
+ bl HasIQSkill
+ lsls r0, 24
+ cmp r0, 0
+ beq _08075752
+ adds r0, r6, 0
+ adds r0, 0xE4
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ beq _08075752
+ adds r0, r4, 0
+ movs r1, 0x9
+ bl sub_8046CB0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08075752
+ adds r0, r4, 0x4
+ bl sub_804AE84
+_08075752:
+ ldr r5, [r5, 0x14]
+ cmp r5, 0
+ beq _0807580C
+ adds r0, r5, 0
+ bl GetEntityType
+ cmp r0, 0x5
+ bhi _0807580C
+ lsls r0, 2
+ ldr r1, _0807576C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0807576C: .4byte _08075770
+ .align 2, 0
+_08075770:
+ .4byte _0807580C
+ .4byte _0807580C
+ .4byte _08075788
+ .4byte _08075806
+ .4byte _0807580C
+ .4byte _0807580C
+_08075788:
+ adds r0, r5, 0
+ bl sub_8045104
+ adds r7, r0, 0
+ movs r0, 0
+ mov r8, r0
+ mov r9, r0
+ adds r0, r4, 0
+ movs r1, 0x13
+ bl HasIQSkill
+ lsls r0, 24
+ cmp r0, 0
+ beq _080757BA
+ adds r1, r5, 0
+ adds r1, 0x20
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080757BA
+ movs r0, 0x1
+ strb r0, [r1]
+ bl sub_8049ED4
+ movs r0, 0x1
+ mov r9, r0
+_080757BA:
+ ldrb r0, [r7, 0x1]
+ cmp r0, 0
+ bne _080757D2
+ adds r0, r5, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080757EC
+ ldrb r0, [r6, 0x6]
+ cmp r0, 0
+ bne _080757EC
+ b _080757F2
+_080757D2:
+ cmp r0, 0x1
+ bne _080757DE
+ ldrb r0, [r6, 0x6]
+ cmp r0, 0
+ beq _080757EC
+ b _080757F2
+_080757DE:
+ cmp r0, 0x2
+ bne _080757EC
+ ldrb r0, [r6, 0x6]
+ cmp r0, 0
+ bne _080757EC
+ movs r0, 0x1
+ mov r8, r0
+_080757EC:
+ mov r0, r8
+ cmp r0, 0
+ beq _0807580C
+_080757F2:
+ mov r0, r9
+ cmp r0, 0
+ bne _0807580C
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_807FE9C
+ b _0807580C
+_08075806:
+ adds r0, r4, 0
+ bl sub_8073D14
+_0807580C:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8075708
+
+ thumb_func_start sub_8075818
+sub_8075818:
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r6, [r4, 0x70]
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _080758F6
+ adds r0, r4, 0
+ bl sub_8045128
+ adds r5, r0, 0
+ adds r0, r4, 0
+ movs r1, 0xD
+ bl HasIQSkill
+ lsls r0, 24
+ cmp r0, 0
+ beq _08075848
+ ldrh r1, [r5]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _080758F2
+_08075848:
+ ldr r4, [r5, 0x14]
+ cmp r4, 0
+ beq _080758F6
+ adds r0, r4, 0
+ bl GetEntityType
+ cmp r0, 0x5
+ bhi _080758F6
+ lsls r0, 2
+ ldr r1, _08075864
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08075864: .4byte _08075868
+ .align 2, 0
+_08075868:
+ .4byte _080758F6
+ .4byte _080758F6
+ .4byte _08075880
+ .4byte _080758BE
+ .4byte _080758F6
+ .4byte _080758F6
+_08075880:
+ adds r0, r4, 0
+ bl sub_8045104
+ movs r1, 0
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _080758A0
+ adds r0, r4, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080758B8
+ ldrb r0, [r6, 0x6]
+ cmp r0, 0
+ bne _080758B8
+ b _080758F2
+_080758A0:
+ cmp r0, 0x1
+ bne _080758AC
+ ldrb r0, [r6, 0x6]
+ cmp r0, 0
+ beq _080758B8
+ b _080758F2
+_080758AC:
+ cmp r0, 0x2
+ bne _080758B8
+ ldrb r0, [r6, 0x6]
+ cmp r0, 0
+ bne _080758B8
+ movs r1, 0x1
+_080758B8:
+ cmp r1, 0
+ beq _080758F6
+ b _080758F2
+_080758BE:
+ ldrb r0, [r6, 0x7]
+ cmp r0, 0
+ bne _080758F6
+ adds r0, r6, 0
+ adds r0, 0x60
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080758F6
+ ldrh r1, [r5]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _080758E2
+ ldrb r0, [r6, 0x6]
+ cmp r0, 0
+ bne _080758F6
+_080758E2:
+ adds r0, r4, 0
+ bl GetItemData
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _080758F6
+_080758F2:
+ movs r0, 0x1
+ b _080758F8
+_080758F6:
+ movs r0, 0
+_080758F8:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8075818
+
+ thumb_func_start sub_8075900
+sub_8075900:
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807597A
+ ldr r0, [r4, 0x70]
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0
+ bne _0807597A
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807597A
+ ldr r5, _08075980
+ ldr r0, [r5]
+ ldr r1, _08075984
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807597A
+ adds r0, r4, 0
+ bl sub_8045128
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0807597A
+ bl sub_8083600
+ ldr r1, _08075988
+ ldr r1, [r1]
+ bl SendMessage
+ ldr r0, [r5]
+ ldr r1, _0807598C
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_807AB38
+ movs r0, 0
+ bl sub_8041888
+ adds r0, r4, 0x4
+ bl sub_803F428
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807597A
+ movs r0, 0x78
+ movs r1, 0x39
+ bl sub_803E708
+_0807597A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075980: .4byte gDungeonGlobalData
+_08075984: .4byte 0x00000671
+_08075988: .4byte gUnknown_80FE308
+_0807598C: .4byte 0x00000672
+ thumb_func_end sub_8075900
diff --git a/asm/code_8075BA4.s b/asm/code_8075BA4.s
index d872a55..3d58752 100644
--- a/asm/code_8075BA4.s
+++ b/asm/code_8075BA4.s
@@ -1008,7 +1008,7 @@ _08076362:
movs r3, 0x2
ldrsh r2, [r2, r3]
adds r1, r2
- bl sub_804954C
+ bl GetMapTileAtPosition
ldr r4, [r0, 0x10]
adds r0, r4, 0
bl EntityExists
@@ -1016,7 +1016,7 @@ _08076362:
cmp r0, 0
beq _080763D4
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _080763D4
mov r0, r9
@@ -1240,7 +1240,7 @@ _08076544:
movs r3, 0x2
ldrsh r2, [r2, r3]
adds r1, r2
- bl sub_804954C
+ bl GetMapTileAtPosition
ldr r4, [r0, 0x10]
adds r0, r4, 0
bl EntityExists
@@ -1248,7 +1248,7 @@ _08076544:
cmp r0, 0
beq _080765B4
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _080765B4
mov r0, r9
@@ -1463,7 +1463,7 @@ _08076714:
movs r3, 0x2
ldrsh r2, [r2, r3]
adds r1, r2
- bl sub_804954C
+ bl GetMapTileAtPosition
ldr r4, [r0, 0x10]
adds r0, r4, 0
bl EntityExists
@@ -1471,7 +1471,7 @@ _08076714:
cmp r0, 0
beq _08076784
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _08076784
mov r0, r9
@@ -3587,7 +3587,7 @@ _08077874:
movs r3, 0x2
ldrsh r2, [r2, r3]
adds r1, r2
- bl sub_804954C
+ bl GetMapTileAtPosition
ldr r4, [r0, 0x10]
adds r0, r4, 0
bl EntityExists
@@ -3595,7 +3595,7 @@ _08077874:
cmp r0, 0
beq _080778E4
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _080778E4
mov r0, r9
@@ -4442,7 +4442,7 @@ sub_8077F40:
b _08078068
_08077F62:
adds r0, r5, 0
- bl sub_80450F8
+ bl GetEntityType
mov r10, r0
cmp r0, 0x1
beq _08077F70
@@ -4644,11 +4644,11 @@ sub_80780E4:
cmp r0, 0
beq _080781C4
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _080781C4
adds r0, r5, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _080781C4
ldr r6, [r4, 0x70]
@@ -10348,7 +10348,7 @@ sub_807AEBC:
cmp r4, 0
beq _0807AF50
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x5
bhi _0807AF50
lsls r0, 2
@@ -10387,7 +10387,7 @@ _0807AF18:
bne _0807AF50
_0807AF3C:
adds r0, r4, 0
- bl sub_8045108
+ bl GetItemData
ldrb r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -10700,7 +10700,7 @@ _0807B17C:
ldrsh r0, [r2, r3]
movs r3, 0x6
ldrsh r1, [r2, r3]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrb r1, [r0, 0x9]
cmp r1, 0xFF
bne _0807B1C4
@@ -10758,7 +10758,7 @@ _0807B200:
ldr r0, [r0, 0x14]
cmp r0, 0
beq _0807B216
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x3
beq _0807B270
_0807B216:
@@ -10894,7 +10894,7 @@ sub_807B2D8:
adds r6, 0x4
adds r0, r6, 0
adds r1, r4, 0
- bl sub_80983D8
+ bl CalculateFacingDir
mov r8, r0
adds r0, r5, 0
adds r0, 0x7A
@@ -10924,7 +10924,7 @@ _0807B348:
adds r0, r5, 0
adds r0, 0x44
movs r1, 0x1
- bl sub_8044C94
+ bl SetAction
b _0807B5CE
_0807B354:
cmp r0, 0x1
@@ -10992,7 +10992,7 @@ _0807B3A8:
adds r0, r5, 0
adds r0, 0x44
movs r1, 0x1
- bl sub_8044C94
+ bl SetAction
ldr r3, _0807B3E4
adds r0, r5, r3
strb r4, [r0]
@@ -11032,7 +11032,7 @@ _0807B3E8:
adds r0, r5, 0
adds r0, 0x44
movs r1, 0x1
- bl sub_8044C94
+ bl SetAction
ldr r3, _0807B438
adds r1, r5, r3
movs r0, 0x1
@@ -11211,7 +11211,7 @@ _0807B562:
_0807B56E:
ldr r0, [sp, 0x34]
movs r1, 0x1
- bl sub_8044C94
+ bl SetAction
ldr r1, _0807B59C
adds r0, r5, r1
movs r1, 0
@@ -11414,7 +11414,7 @@ _0807B6FE:
ldrsh r0, [r7, r4]
movs r2, 0x6
ldrsh r1, [r7, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -11442,7 +11442,7 @@ _0807B71E:
lsls r0, r5, 16
asrs r0, 16
asrs r1, r5, 16
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrb r0, [r0, 0x9]
cmp r0, r10
beq _0807B758
@@ -11890,7 +11890,7 @@ _0807BAA2:
ldrsh r0, [r6, r1]
movs r2, 0x6
ldrsh r1, [r6, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -11920,7 +11920,7 @@ _0807BAC4:
adds r5, r2, r0
mov r0, r8
adds r1, r5, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrb r0, [r0, 0x9]
cmp r0, 0xFF
bne _0807BB04
@@ -12057,7 +12057,7 @@ _0807BBD6:
ldr r0, _0807BC70
movs r1, 0
ldrsh r0, [r0, r1]
- bl sub_8084144
+ bl RollPercentChance
lsls r0, 24
cmp r0, 0
beq _0807BBF2
@@ -12093,7 +12093,7 @@ _0807BC06:
mov r0, r8
adds r0, 0x44
movs r1, 0x15
- bl sub_8044C94
+ bl SetAction
adds r3, r5, 0
mov r6, r8
adds r6, 0x48
@@ -12190,7 +12190,7 @@ _0807BCDE:
mov r0, r8
adds r0, 0x44
movs r1, 0x17
- bl sub_8044C94
+ bl SetAction
mov r0, sp
ldrb r1, [r0, 0x1]
movs r0, 0x7
@@ -12552,7 +12552,7 @@ _0807BF64:
mov r0, r8
adds r0, 0x44
movs r1, 0x32
- bl sub_8044C94
+ bl SetAction
ldr r0, [sp, 0x34]
movs r1, 0x7
ands r0, r1
@@ -12575,7 +12575,7 @@ _0807BF9C:
mov r0, r8
adds r0, 0x44
movs r1, 0x15
- bl sub_8044C94
+ bl SetAction
adds r3, r5, 0
mov r6, r8
adds r6, 0x48
@@ -12632,7 +12632,7 @@ _0807C01A:
mov r0, r8
adds r0, 0x44
movs r1, 0x32
- bl sub_8044C94
+ bl SetAction
ldr r0, [sp, 0x34]
movs r1, 0x7
ands r0, r1
@@ -12783,12 +12783,12 @@ _0807C132:
movs r3, 0x2
ldrsh r2, [r2, r3]
adds r1, r2
- bl sub_804954C
+ bl GetMapTileAtPosition
ldr r4, [r0, 0x10]
cmp r4, 0
beq _0807C18E
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _0807C18E
asrs r0, r5, 16
@@ -12879,7 +12879,7 @@ _0807C1FA:
movs r4, 0x2
ldrsh r2, [r3, r4]
adds r1, r2
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r4, r0, 0
adds r0, r6, 0
adds r1, r7, 0
@@ -12891,7 +12891,7 @@ _0807C1FA:
cmp r5, 0
beq _0807C250
adds r0, r5, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _0807C250
mov r4, r8
@@ -12921,13 +12921,13 @@ _0807C250:
ldrsh r2, [r3, r4]
lsls r2, 1
adds r1, r2
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r4, r0, 0
ldr r5, [r4, 0x10]
cmp r5, 0
beq _0807C296
adds r0, r5, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _0807C296
mov r0, r10
@@ -12982,7 +12982,7 @@ _0807C2C0:
beq _0807C370
adds r1, r4, 0x4
adds r0, r6, 0x4
- bl sub_80983D8
+ bl CalculateFacingDir
adds r5, r0, 0
ldr r0, _0807C384
adds r7, r5, r0
@@ -13375,7 +13375,7 @@ _0807C5BC:
_0807C5C4:
adds r0, r5, 0x4
adds r1, r7, 0x4
- bl sub_80983D8
+ bl CalculateFacingDir
adds r4, r0, 0
_0807C5CE:
ldr r0, _0807C638
@@ -13786,12 +13786,12 @@ _0807C8BE:
movs r3, 0x2
ldrsh r2, [r2, r3]
adds r1, r2
- bl sub_804954C
+ bl GetMapTileAtPosition
ldr r5, [r0, 0x10]
cmp r5, 0
beq _0807C948
adds r0, r5, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _0807C948
adds r0, r7, 0
@@ -14012,7 +14012,7 @@ _0807CA70: .4byte gUnknown_80F4448
_0807CA74:
adds r0, r5, 0
adds r1, r4, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r2, r0, 0
ldrh r1, [r2]
movs r0, 0x3
@@ -14565,7 +14565,7 @@ _0807CED8:
ldrsh r0, [r7, r1]
ldr r1, [sp, 0x18]
asrs r1, 16
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r5, r0, 0
ldr r0, [r5, 0x10]
cmp r0, 0
@@ -15300,12 +15300,12 @@ _0807D4DC: .4byte gUnknown_80FD320
thumb_func_start sub_807D4E0
sub_807D4E0:
push {r4,lr}
- bl sub_804954C
+ bl GetMapTileAtPosition
ldr r4, [r0, 0x14]
cmp r4, 0
beq _0807D506
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x2
bne _0807D506
adds r1, r4, 0
@@ -15388,7 +15388,7 @@ _0807D580:
ldrsh r0, [r5, r1]
movs r2, 0x6
ldrsh r1, [r5, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r2, 0x3
adds r0, r2, 0
@@ -15588,7 +15588,7 @@ _0807D6DA:
lsls r0, r6, 16
asrs r0, 16
asrs r1, r6, 16
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r2, r0, 0
ldrh r1, [r2]
movs r3, 0x3
@@ -15870,7 +15870,7 @@ _0807D94E:
muls r0, r7
add r0, sp
adds r0, 0x4
- bl sub_8045108
+ bl GetItemData
adds r1, r0, 0
adds r0, r4, 0
movs r2, 0x1
@@ -16029,7 +16029,7 @@ _0807DA8C:
bgt _0807DB00
adds r0, r5, 0
adds r1, r4, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r1, r0, 0
ldr r0, [r1, 0x10]
cmp r0, 0
@@ -16493,7 +16493,7 @@ _0807DE46:
ldrsh r0, [r4, r1]
movs r2, 0x6
ldrsh r1, [r4, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrb r1, [r0, 0x9]
adds r0, r4, 0
adds r0, 0x25
@@ -16782,7 +16782,7 @@ _0807E0BE:
cmp r4, r10
beq _0807E0DC
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x3
bne _0807E0DC
add r0, sp, 0x4
@@ -16796,7 +16796,7 @@ _0807E0DC:
cmp r4, r10
beq _0807E112
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _0807E112
ldr r0, _0807E19C
@@ -16829,7 +16829,7 @@ _0807E124:
cmp r0, 0
bne _0807E174
mov r0, r10
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _0807E14E
ldr r0, _0807E19C
@@ -18460,7 +18460,7 @@ _0807EE22:
ldrsh r0, [r6, r2]
asrs r1, 16
str r3, [sp, 0x18]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrb r0, [r0, 0x9]
ldr r3, [sp, 0x18]
cmp r0, 0xFF
@@ -18487,7 +18487,7 @@ _0807EE72:
beq _0807EEAE
mov r0, r9
mov r1, r8
- bl sub_80983D8
+ bl CalculateFacingDir
adds r1, r0, 0
adds r0, r7, 0
bl sub_806CE34
@@ -18510,7 +18510,7 @@ _0807EEAE:
_0807EEB2:
mov r0, r8
mov r1, r9
- bl sub_80983D8
+ bl CalculateFacingDir
adds r1, r0, 0
adds r0, r5, 0
bl sub_806CE68
@@ -18761,7 +18761,7 @@ _0807F09A:
str r0, [sp, 0x4]
adds r0, r6, 0
adds r1, r5, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r4, r0, 0
ldrh r1, [r4]
movs r0, 0x20
@@ -18771,11 +18771,11 @@ _0807F09A:
ldr r0, [r4, 0x14]
cmp r0, 0
beq _0807F114
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x3
bne _0807F114
ldr r0, [r4, 0x14]
- bl sub_8045108
+ bl GetItemData
adds r2, r0, 0
ldrb r1, [r2]
movs r7, 0x2
@@ -18953,7 +18953,7 @@ _0807F23C:
_0807F240:
adds r0, r6, 0
adds r1, r5, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r4, r0, 0
ldrh r1, [r4]
movs r0, 0x20
@@ -18963,11 +18963,11 @@ _0807F240:
ldr r0, [r4, 0x14]
cmp r0, 0
beq _0807F27E
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x3
bne _0807F27E
ldr r0, [r4, 0x14]
- bl sub_8045108
+ bl GetItemData
adds r4, r0, 0
ldrb r0, [r4, 0x2]
bl CanSellItem
@@ -19097,16 +19097,16 @@ _0807F360:
_0807F364:
adds r0, r6, 0
adds r1, r5, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r4, r0, 0
ldr r0, [r4, 0x14]
cmp r0, 0
beq _0807F38A
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x3
bne _0807F38A
ldr r0, [r4, 0x14]
- bl sub_8045108
+ bl GetItemData
ldrb r2, [r0]
movs r1, 0xFD
ands r1, r2
@@ -19564,7 +19564,7 @@ _0807F70C:
mov r1, r8
adds r1, 0x4
add r0, sp, 0xD4
- bl sub_80983D8
+ bl CalculateFacingDir
adds r5, r0, 0
add r2, sp, 0xD4
movs r1, 0
@@ -19698,7 +19698,7 @@ _0807F7FC:
adds r4, r2, 0
movs r3, 0x2
ldrsh r1, [r4, r3]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldr r6, [r0, 0x10]
adds r0, r6, 0
bl EntityExists
@@ -19791,7 +19791,7 @@ _0807F8DC:
bl sub_80694C0
_0807F8FA:
adds r0, r6, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _0807F954
add r4, sp, 0xE4
@@ -20049,12 +20049,12 @@ _0807FAF8:
movs r6, 0
adds r0, r5, 0
mov r1, r8
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r4, r0, 0
ldr r0, [r4, 0x14]
cmp r0, 0
beq _0807FB24
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x2
bne _0807FB24
ldr r0, [r4, 0x14]
@@ -20274,7 +20274,7 @@ sub_807FC80:
ldr r0, [r2, 0x14]
cmp r0, 0
beq _0807FCCE
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x2
beq _0807FCCE
_0807FCCA:
@@ -20346,7 +20346,7 @@ _0807FD12:
ldr r0, [r6, 0x14]
cmp r0, 0
beq _0807FD60
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x2
bne _0807FD6E
ldr r0, [r6, 0x14]
@@ -20461,7 +20461,7 @@ sub_807FE04:
ldr r0, [r4, 0x14]
cmp r0, 0
beq _0807FE3C
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x2
bne _0807FE3C
ldr r1, [r4, 0x14]
@@ -20492,12 +20492,12 @@ sub_807FE44:
ldrsh r0, [r2, r1]
movs r3, 0x2
ldrsh r1, [r2, r3]
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r4, r0, 0
ldr r0, [r4, 0x14]
cmp r0, 0
beq _0807FE7C
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x2
bne _0807FE7C
ldr r0, [r4, 0x14]
@@ -20560,7 +20560,7 @@ sub_807FE9C:
bne _0807FECE
b _080801B4
_0807FECE:
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x2
beq _0807FED8
b _080801B4
@@ -20577,7 +20577,7 @@ _0807FED8:
cmp r4, 0
beq _0807FEFE
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
beq _0807FEFE
movs r4, 0
@@ -21847,7 +21847,7 @@ _080808E2:
ldrsh r0, [r5, r2]
movs r3, 0x2
ldrsh r1, [r5, r3]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrb r1, [r0, 0x9]
cmp r1, 0xFF
bne _0808090A
@@ -21900,18 +21900,18 @@ _0808093E:
_0808094A:
adds r0, r6, 0
adds r1, r7, 0
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r4, r0, 0
ldr r0, [r4, 0x14]
adds r2, r6, 0x1
mov r9, r2
cmp r0, 0
beq _08080A18
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x3
bne _08080A18
ldr r0, [r4, 0x14]
- bl sub_8045108
+ bl GetItemData
ldrb r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -22125,7 +22125,7 @@ sub_8080B00:
cmp r0, 0
beq _08080B2A
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x2
bne _08080B26
adds r0, r4, 0
@@ -22230,11 +22230,11 @@ _08080BD8:
cmp r4, 0
beq _08080C1A
adds r0, r4, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x3
bne _08080C1A
adds r0, r4, 0
- bl sub_8045108
+ bl GetItemData
adds r1, r0, 0
adds r0, r6, 0
bl sub_8081788
@@ -22301,7 +22301,7 @@ _08080C6A:
cmp r5, 0
beq _08080CC8
adds r0, r5, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x2
bne _08080CC8
adds r0, r5, 0
@@ -26906,7 +26906,7 @@ _080832AA:
ldrsh r0, [r4, r2]
movs r3, 0x2
ldrsh r1, [r4, r3]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrb r1, [r0, 0x9]
cmp r1, 0xFF
bne _080832F0
@@ -26989,7 +26989,7 @@ sub_808333C:
ldrsh r0, [r4, r1]
movs r2, 0x2
ldrsh r1, [r4, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrb r2, [r0, 0x9]
cmp r2, 0xFF
beq _08083394
@@ -27082,7 +27082,7 @@ sub_80833E8:
ldrsh r0, [r5, r1]
movs r2, 0x2
ldrsh r1, [r5, r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r1, r0, 0
ldr r0, _08083438
ldr r3, [r0]
@@ -27228,7 +27228,7 @@ _080834F8:
adds r0, r5, 0
adds r1, r4, 0
str r3, [sp]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
@@ -27267,7 +27267,7 @@ _0808353E:
adds r0, r5, 0
adds r1, r4, 0
str r3, [sp]
- bl sub_804954C
+ bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
@@ -27593,7 +27593,7 @@ _0808379C:
ldr r2, _0808380C
add r2, sp
str r3, [r2]
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r2, r0, 0
ldr r0, _08083810
ldr r1, _0808380C
@@ -27705,7 +27705,7 @@ _0808386A:
adds r0, r5, 0
adds r1, r4, 0
str r3, [sp]
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r1, r0, 0
ldrh r2, [r1]
movs r7, 0x80
@@ -28019,7 +28019,7 @@ sub_8083AB0:
cmp r0, 0
beq _08083AE4
adds r0, r5, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _08083AE4
ldr r6, [r5, 0x70]
@@ -28906,8 +28906,8 @@ _0808413C:
bx r1
thumb_func_end sub_808411C
- thumb_func_start sub_8084144
-sub_8084144:
+ thumb_func_start RollPercentChance
+RollPercentChance:
push {r4,lr}
adds r4, r0, 0
movs r0, 0x64
@@ -28922,7 +28922,7 @@ _08084158:
pop {r4}
pop {r1}
bx r1
- thumb_func_end sub_8084144
+ thumb_func_end RollPercentChance
thumb_func_start sub_8084160
sub_8084160:
@@ -28960,7 +28960,7 @@ sub_808417C:
cmp r0, 0
beq _080841DC
adds r0, r5, 0
- bl sub_80450F8
+ bl GetEntityType
cmp r0, 0x1
bne _080841DC
cmp r6, 0
diff --git a/asm/code_80848F0.s b/asm/code_80848F0.s
index 38777e9..6fa181d 100644
--- a/asm/code_80848F0.s
+++ b/asm/code_80848F0.s
@@ -218,7 +218,7 @@ _080853EE:
lsls r0, r4, 16
asrs r0, 16
asrs r1, r4, 16
- bl sub_804954C
+ bl GetMapTileAtPosition
adds r1, r0, 0
mov r0, r8
bl sub_807034C
diff --git a/asm/code_80983D8.s b/asm/code_80983D8.s
index bb55c2d..aed2fc9 100644
--- a/asm/code_80983D8.s
+++ b/asm/code_80983D8.s
@@ -5,8 +5,8 @@
.text
- thumb_func_start sub_80983D8
-sub_80983D8:
+ thumb_func_start CalculateFacingDir
+CalculateFacingDir:
push {r4,lr}
movs r2, 0
ldrsh r3, [r1, r2]
@@ -58,6 +58,6 @@ _08098428:
bx r1
.align 2, 0
_08098430: .4byte gUnknown_8115E94
- thumb_func_end sub_80983D8
+ thumb_func_end CalculateFacingDir
.align 2,0
diff --git a/asm/jirachi_wish.s b/asm/jirachi_wish.s
index 6e3a8e8..85a8d1c 100644
--- a/asm/jirachi_wish.s
+++ b/asm/jirachi_wish.s
@@ -446,7 +446,7 @@ _0808B98E:
adds r1, r0, 0
adds r1, 0x4
adds r0, r6, 0x4
- bl sub_80983D8
+ bl CalculateFacingDir
adds r1, r0, 0
adds r0, r6, 0
bl sub_8085918
diff --git a/include/constants/direction.h b/include/constants/direction.h
index 5f2bfb3..7c5cec5 100644
--- a/include/constants/direction.h
+++ b/include/constants/direction.h
@@ -1,6 +1,8 @@
#ifndef GUARD_CONSTANTS_DIRECTION_H
#define GUARD_CONSTANTS_DIRECTION_H
+#define DIRECTION_MASK 7
+
enum Direction
{
DIRECTION_SOUTH,
@@ -10,7 +12,8 @@ enum Direction
DIRECTION_NORTH,
DIRECTION_NORTHWEST,
DIRECTION_WEST,
- DIRECTION_SOUTHWEST
+ DIRECTION_SOUTHWEST,
+ NUM_DIRECTIONS
};
#endif
diff --git a/include/dungeon_ai_items.h b/include/dungeon_ai_items.h
new file mode 100644
index 0000000..e7d9f4f
--- /dev/null
+++ b/include/dungeon_ai_items.h
@@ -0,0 +1,9 @@
+#ifndef GUARD_DUNGEON_AI_ITEMS_H
+#define GUARD_DUNGEON_AI_ITEMS_H
+
+#include "dungeon_entity.h"
+
+// 0x73658
+void DecideUseItem(struct DungeonEntity *pokemon);
+
+#endif
diff --git a/include/dungeon_entity.h b/include/dungeon_entity.h
index d89b997..341f3d6 100644
--- a/include/dungeon_entity.h
+++ b/include/dungeon_entity.h
@@ -62,17 +62,13 @@ struct DungeonEntityData
/* 0x4E */ s16 lastItemThrowPositionY;
u8 fill50[0x58 - 0x50];
// Position of the target that the Pokémon wants throw an item at.
- /* 0x58 */ s16 itemTargetPositionX;
- /* 0x5A */ s16 itemTargetPositionY;
+ /* 0x58 */ s16 *itemTargetPosition;
/* 0x5C */ u8 type1;
/* 0x5D */ u8 type2;
/* 0x5E */ u8 ability1;
/* 0x5F */ u8 ability2;
- // Same format as ItemSlot struct.
- /* 0x60 */ u8 heldItemFlags;
- /* 0x61 */ u8 heldItemNumItems;
- /* 0x62 */ u8 heldItemIndex;
- u8 fill63[0x68 - 0x63];
+ /* 0x60 */ struct ItemSlot heldItem;
+ u8 fill64[0x68 - 0x64];
/* 0x68 */ s16 previousPosition1X;
/* 0x6A */ s16 previousPosition1Y;
/* 0x6C */ s16 previousPosition2X;
@@ -282,8 +278,8 @@ enum EntityType
{
ENTITY_NONE = 0,
ENTITY_POKEMON = 1,
- ENTITY_ITEM = 2,
- ENTITY_TRAP = 3
+ ENTITY_TRAP = 2,
+ ENTITY_ITEM = 3
};
enum MovementFlag
diff --git a/include/item.h b/include/item.h
index 3b4f199..60a9014 100644
--- a/include/item.h
+++ b/include/item.h
@@ -59,6 +59,13 @@ enum ItemFlag
ITEM_FLAG_SET = 1 << 4 // This item can be thrown by pressing L+R instead of having to go to the bag menu.
};
+enum ItemAIFlag
+{
+ ITEM_AI_FLAG_TARGET_SELF,
+ ITEM_AI_FLAG_TARGET_ALLY,
+ ITEM_AI_FLAG_TARGET_ENEMY
+};
+
#define NUMBER_OF_GUMMIS 18
#define INVENTORY_SIZE 20
#define STORAGE_SIZE NUMBER_OF_ITEM_IDS
@@ -84,7 +91,7 @@ u8 GetItemPalette(u8 itemIndex);
u8 GetItemCategory(u8 itemIndex);
u32 GetItemUnkThrow(u8 itemIndex, u32 r1);
u8 *GetItemDescription(u8 itemIndex);
-u32 GetItemAIFlags(u8 itemIndex, u32 r1);
+bool8 GetItemAIFlag(u8 itemIndex, u32 r1);
void sub_8090DC4(void* param_1,u8 itemIndex, struct unkStruct_8090F58* param_3);
void sub_8090E14(u8* ext_buffer, struct ItemSlot* slot, struct unkStruct_8090F58* a3);
bool8 AddItemToInventory(const struct ItemSlot* slot);
diff --git a/ld_script.txt b/ld_script.txt
index b7f0a75..ba72330 100755
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -207,6 +207,8 @@ SECTIONS {
asm/code_8071858.o(.text);
src/dungeon_pokemon_attributes_1.o(.text);
asm/code_80718D8.o(.text);
+ src/dungeon_ai_items.o(.text);
+ asm/code_80739DC.o(.text);
src/dungeon_movement.o(.text);
asm/code_8075BA4.o(.text);
src/code_80848F0.o(.text);
diff --git a/src/code_80983D8.c b/src/code_80983D8.c
index c6acf93..4c0e870 100644
--- a/src/code_80983D8.c
+++ b/src/code_80983D8.c
@@ -2,12 +2,12 @@
extern u32 gUnknown_8115E94[5][3]; // NOTE: Factor of two difference in array sizes
-s32 sub_80983D8(short *param_1,short *param_2)
+s32 CalculateFacingDir(short *param_1,short *param_2)
{
s32 uVar1;
s32 uVar2;
s32 uVar3;
-
+
uVar3 = param_2[0] - param_1[0];
uVar2 = param_2[1] - param_1[1];
if ((uVar3 == 0) && (uVar2 == 0)) {
diff --git a/src/dungeon_ai_items.c b/src/dungeon_ai_items.c
new file mode 100644
index 0000000..4877712
--- /dev/null
+++ b/src/dungeon_ai_items.c
@@ -0,0 +1,244 @@
+#include "global.h"
+#include "dungeon_ai_items.h"
+
+#include "constants/direction.h"
+#include "constants/dungeon_action.h"
+#include "constants/iq_skill.h"
+#include "dungeon_capabilities.h"
+#include "dungeon_capabilities_1.h"
+#include "dungeon_global_data.h"
+#include "item.h"
+#include "team_inventory.h"
+
+#define NUM_POTENTIAL_ROCK_TARGETS 20
+#define GROUND_ITEM_TOOLBOX_INDEX 0x80
+#define HELD_ITEM_TOOLBOX_INDEX 0x81
+#define ITEM_TARGET_ALLY 1 << 1
+
+extern void SetAction(u16*, u16);
+extern void FindStraightThrowableTargets(struct DungeonEntity*, s32 thrownAIFlag, struct ItemSlot*, bool8 ignoreRollChance);
+extern bool8 RollPercentChance(u32);
+extern void FindRockItemTargets(struct DungeonEntity*, struct ItemSlot*, s16*[], bool8 ignoreRollChance);
+extern s32 DungeonRandomCapped(s32);
+extern s32 CalculateFacingDir(s16*, s16*);
+extern bool8 HasIQSkill(struct DungeonEntity*, u8);
+extern struct MapTile* GetMapTileAtPosition(s16, s16);
+extern u32 GetEntityType(struct DungeonEntity*);
+extern struct ItemSlot* GetItemData(struct DungeonEntity*);
+extern u32 EvaluateItem(struct DungeonEntity*, struct ItemSlot*, u8);
+extern bool8 ToolboxEnabled(struct DungeonEntityData*);
+
+extern s32 gNumPotentialTargets;
+extern u32 gPotentialTargetWeights[NUM_DIRECTIONS];
+extern u32 gPotentialTargetDirections[NUM_DIRECTIONS];
+extern struct TeamInventory *gTeamInventory_203B460;
+
+void DecideUseItem(struct DungeonEntity *pokemon)
+{
+ struct DungeonEntityData *pokemonData = pokemon->entityData;
+ void *null;
+ struct ItemSlot *item;
+ s32 toolboxIndex;
+ u8 selectedToolboxIndex;
+ u32 *potentialTargetWeights;
+ if (CannotUseItems(pokemon))
+ {
+ pokemonData->useHeldItem = FALSE;
+ return;
+ }
+ null = NULL;
+ if (pokemonData->useHeldItem)
+ {
+ item = &pokemonData->heldItem;
+ if ((item->itemFlags & ITEM_FLAG_EXISTS) == 0)
+ {
+ return;
+ }
+ else
+ {
+ u8 itemType;
+ selectedToolboxIndex = HELD_ITEM_TOOLBOX_INDEX;
+ itemType = GetItemType(item->itemIndex);
+ if (itemType == ITEM_TYPE_THROWABLE)
+ {
+ s32 targetIndex;
+ FindStraightThrowableTargets(pokemon, 2, item, 1);
+ for (targetIndex = 0; targetIndex < gNumPotentialTargets; targetIndex++)
+ {
+ if (RollPercentChance(gPotentialTargetWeights[targetIndex]))
+ {
+ SetAction(&pokemonData->action, DUNGEON_ACTION_THROW_ITEM_AI);
+ pokemonData->actionUseIndex = selectedToolboxIndex;
+ pokemonData->lastItemThrowPositionX = pokemon->posWorldX;
+ pokemonData->lastItemThrowPositionY = pokemon->posWorldY;
+ pokemonData->facingDir = gPotentialTargetDirections[targetIndex] & DIRECTION_MASK;
+ break;
+ }
+ }
+ if (targetIndex == gNumPotentialTargets)
+ {
+ SetAction(&pokemonData->action, DUNGEON_ACTION_HAVE_SECOND_THOUGHTS);
+ }
+ }
+ else if (itemType == ITEM_TYPE_ROCK)
+ {
+ s16 *potentialTargetPositions[NUM_POTENTIAL_ROCK_TARGETS];
+ FindRockItemTargets(pokemon, item, potentialTargetPositions, TRUE);
+ if (gNumPotentialTargets == 0)
+ {
+ SetAction(&pokemonData->action, DUNGEON_ACTION_HAVE_SECOND_THOUGHTS);
+ }
+ else
+ {
+ u32 chosenTargetIndex = DungeonRandomCapped(gNumPotentialTargets);
+ SetAction(&pokemonData->action, DUNGEON_ACTION_THROW_ITEM_AI);
+ pokemonData->actionUseIndex = selectedToolboxIndex;
+ pokemonData->lastItemThrowPositionX = pokemon->posWorldX;
+ pokemonData->lastItemThrowPositionY = pokemon->posWorldY;
+ pokemonData->facingDir = CalculateFacingDir(&pokemon->posWorldX, (s16 *) (&potentialTargetPositions[chosenTargetIndex])) & DIRECTION_MASK;
+ pokemonData->itemTargetPosition = potentialTargetPositions[chosenTargetIndex];
+ }
+ }
+ else
+ {
+ u8 itemTypeCompare = itemType - 2;
+ if (itemTypeCompare < ITEM_TYPE_HOLD_ITEM - 2)
+ {
+ SetAction(&pokemonData->action, DUNGEON_ACTION_CONSUME_ITEM_AI);
+ pokemonData->actionUseIndex = selectedToolboxIndex;
+ pokemonData->lastItemThrowPositionX = pokemon->posWorldX;
+ pokemonData->lastItemThrowPositionY = pokemon->posWorldY;
+ }
+ else
+ {
+ SetAction(&pokemonData->action, DUNGEON_ACTION_HAVE_SECOND_THOUGHTS);
+ }
+ }
+ }
+ }
+ else if (HasIQSkill(pokemon, IQ_SKILL_ITEM_MASTER))
+ {
+ for (toolboxIndex = 1; toolboxIndex < INVENTORY_SIZE + 2; toolboxIndex++)
+ {
+ if (toolboxIndex == 1)
+ {
+ item = &pokemonData->heldItem;
+ selectedToolboxIndex = HELD_ITEM_TOOLBOX_INDEX;
+ }
+ else if (toolboxIndex == 0)
+ {
+ // This seems unused. toolboxIndex can never be 0.
+ struct MapTile *mapTile = GetMapTileAtPosition(pokemon->posWorldX, pokemon->posWorldY);
+ struct DungeonEntity *mapObject = mapTile->mapObject;
+ if (mapObject != null)
+ {
+ u32 mapObjectType = GetEntityType(mapObject);
+ if (mapObjectType == ENTITY_ITEM)
+ {
+ item = GetItemData(mapTile->mapObject);
+ selectedToolboxIndex = GROUND_ITEM_TOOLBOX_INDEX;
+ }
+ else
+ {
+ continue;
+ }
+ }
+ else
+ {
+ continue;
+ }
+ }
+ else if (pokemonData->isLeader)
+ {
+ item = &gTeamInventory_203B460->teamItems[toolboxIndex - 2];
+ selectedToolboxIndex = toolboxIndex - 1;
+ }
+ else
+ {
+ return;
+ }
+ if (((item->itemFlags & ITEM_FLAG_EXISTS) != 0) && ((item->itemFlags & ITEM_FLAG_FOR_SALE) == 0))
+ {
+ if ((item->itemFlags & ITEM_FLAG_STICKY) == 0)
+ {
+ if (GetItemAIFlag(item->itemIndex, ITEM_AI_FLAG_TARGET_SELF))
+ {
+ u32 itemWeight = EvaluateItem(pokemon, item, ITEM_TARGET_ALLY);
+ if (itemWeight != 0)
+ {
+ u8 itemType = GetItemType(item->itemIndex);
+ if ((!((itemType == ITEM_TYPE_ORB) && (!pokemonData->isEnemy))) && RollPercentChance(itemWeight))
+ {
+ if (itemType == ITEM_TYPE_ORB)
+ {
+ SetAction(&pokemonData->action, DUNGEON_ACTION_USE_ORB);
+ }
+ else
+ {
+ SetAction(&pokemonData->action, DUNGEON_ACTION_CONSUME_ITEM_AI);
+ }
+ pokemonData->actionUseIndex = selectedToolboxIndex;
+ pokemonData->lastItemThrowPositionX = pokemon->posWorldX;
+ pokemonData->lastItemThrowPositionY = pokemon->posWorldY;
+ return;
+ }
+ }
+ }
+ }
+ else
+ {
+ continue;
+ }
+ }
+ else
+ {
+ continue;
+ }
+ if (ToolboxEnabled(pokemonData))
+ {
+ s32 thrownAIFlag;
+ for (thrownAIFlag = ITEM_AI_FLAG_TARGET_ALLY; thrownAIFlag <= ITEM_AI_FLAG_TARGET_ENEMY; thrownAIFlag++)
+ {
+ potentialTargetWeights = gPotentialTargetWeights;
+ if (GetItemAIFlag(item->itemIndex, thrownAIFlag))
+ {
+ u8 itemType = GetItemType(item->itemIndex);
+ if (itemType == ITEM_TYPE_ROCK)
+ {
+ s16 *potentialTargetPositions[NUM_POTENTIAL_ROCK_TARGETS];
+ FindRockItemTargets(pokemon, item, potentialTargetPositions, FALSE);
+ if (gNumPotentialTargets != 0)
+ {
+ u32 chosenTargetIndex = DungeonRandomCapped(gNumPotentialTargets);
+ SetAction(&pokemonData->action, DUNGEON_ACTION_THROW_ITEM_AI);
+ pokemonData->actionUseIndex = selectedToolboxIndex;
+ pokemonData->lastItemThrowPositionX = pokemon->posWorldX;
+ pokemonData->lastItemThrowPositionY = pokemon->posWorldY;
+ pokemonData->facingDir = CalculateFacingDir(&pokemon->posWorldX, (s16 *) (&potentialTargetPositions[chosenTargetIndex])) & DIRECTION_MASK;
+ pokemonData->itemTargetPosition = potentialTargetPositions[chosenTargetIndex];
+ return;
+ }
+ }
+ else
+ {
+ s32 targetIndex;
+ FindStraightThrowableTargets(pokemon, thrownAIFlag, item, FALSE);
+ for (targetIndex = 0; targetIndex < gNumPotentialTargets; targetIndex++)
+ {
+ if (RollPercentChance(potentialTargetWeights[targetIndex]))
+ {
+ SetAction(&pokemonData->action, DUNGEON_ACTION_THROW_ITEM_AI);
+ pokemonData->actionUseIndex = selectedToolboxIndex;
+ pokemonData->lastItemThrowPositionX = pokemon->posWorldX;
+ pokemonData->lastItemThrowPositionY = pokemon->posWorldY;
+ pokemonData->facingDir = gPotentialTargetDirections[targetIndex] & DIRECTION_MASK;
+ return;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/items.c b/src/items.c
index 05033e4..0b6075f 100644
--- a/src/items.c
+++ b/src/items.c
@@ -292,7 +292,7 @@ u8 *GetItemDescription(u8 itemIndex)
return gItemParametersData[itemIndex].descriptionPointer;
}
-u32 GetItemAIFlags(u8 itemIndex, u32 r1)
+bool8 GetItemAIFlag(u8 itemIndex, u32 r1)
{
return gItemParametersData[itemIndex].aiFlags[r1];
}
diff --git a/sym_ewram.txt b/sym_ewram.txt
index 503fc68..56a505b 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -846,13 +846,13 @@ gUnknown_202F32C = .; /* 202F32C */
gUnknown_202F32D = .; /* 202F32D */
. += 0x3;
-gUnknown_202F330 = .; /* 202F330 */
+gPotentialTargetDirections = .; /* 202F330 */
. += 0x20;
gUnknown_202F350 = .; /* 202F350 */
. += 0x8;
-gUnknown_202F358 = .; /* 202F358 */
+gPotentialTargetWeights = .; /* 202F358 */
. += 0x20;
gUnknown_202F378 = .; /* 202F378 */
diff --git a/sym_ewram2.txt b/sym_ewram2.txt
index 60e3cfb..52a5165 100644
--- a/sym_ewram2.txt
+++ b/sym_ewram2.txt
@@ -569,7 +569,7 @@ gUnknown_203B438 = .; /* 203B438 */
gUnknown_203B43C = .; /* 203B43C */
. += 0x4;
-gUnknown_203B440 = .; /* 203B440 */
+gNumPotentialTargets = .; /* 203B440 */
. += 0x4;
gUnknown_203B444 = .; /* 203B444 */