summaryrefslogtreecommitdiff
path: root/asm/field_control_avatar.s
diff options
context:
space:
mode:
authorYamaArashi <shadow962@live.com>2017-01-02 00:41:28 -0800
committerYamaArashi <shadow962@live.com>2017-01-02 01:01:13 -0800
commit145e90483b2a30698f917f62e585aa7fa4794588 (patch)
treeb1410a1bcec3eacaf5623cef33b10bc5a6f2a5d8 /asm/field_control_avatar.s
parentc4af9225bc4e2f30a240e9cabca98fca4d708501 (diff)
event_data.c
Diffstat (limited to 'asm/field_control_avatar.s')
-rw-r--r--asm/field_control_avatar.s2273
1 files changed, 2273 insertions, 0 deletions
diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s
new file mode 100644
index 000000000..45cb6b521
--- /dev/null
+++ b/asm/field_control_avatar.s
@@ -0,0 +1,2273 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8067EEC
+sub_8067EEC: @ 8067EEC
+ push {r4,r5,lr}
+ movs r1, 0x2
+ negs r1, r1
+ movs r3, 0x3
+ negs r3, r3
+ movs r4, 0x5
+ negs r4, r4
+ movs r5, 0x9
+ negs r5, r5
+ movs r2, 0
+ strb r2, [r0]
+ ldrb r2, [r0, 0x1]
+ ands r1, r2
+ ands r1, r3
+ ands r1, r4
+ ands r1, r5
+ strb r1, [r0, 0x1]
+ movs r1, 0
+ strb r1, [r0, 0x2]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8067EEC
+
+ thumb_func_start process_overworld_input
+process_overworld_input: @ 8067F18
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r4, r0, 0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ mov r8, r2
+ ldr r0, _08067FE8 @ =gPlayerAvatar
+ ldrb r6, [r0, 0x3]
+ ldrb r0, [r0, 0x2]
+ mov r9, r0
+ bl cur_mapdata_block_role_at_player_pos
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8056FFC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r6, 0x2
+ bne _08067F4C
+ cmp r7, 0
+ beq _08067F50
+_08067F4C:
+ cmp r6, 0
+ bne _08067FB2
+_08067F50:
+ bl sub_80E6034
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ beq _08067F9C
+ movs r0, 0x8
+ ands r0, r5
+ cmp r0, 0
+ beq _08067F6C
+ ldrb r0, [r4]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r4]
+_08067F6C:
+ movs r0, 0x4
+ ands r0, r5
+ cmp r0, 0
+ beq _08067F7C
+ ldrb r0, [r4]
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r4]
+_08067F7C:
+ movs r0, 0x1
+ ands r0, r5
+ cmp r0, 0
+ beq _08067F8C
+ ldrb r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4]
+_08067F8C:
+ movs r0, 0x2
+ ands r0, r5
+ cmp r0, 0
+ beq _08067F9C
+ ldrb r0, [r4]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r4]
+_08067F9C:
+ movs r0, 0xF0
+ mov r1, r8
+ ands r0, r1
+ cmp r0, 0
+ beq _08067FB2
+ ldrb r0, [r4]
+ movs r1, 0x10
+ orrs r0, r1
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r4]
+_08067FB2:
+ cmp r7, 0
+ bne _08067FD8
+ cmp r6, 0x2
+ bne _08067FC8
+ mov r0, r9
+ cmp r0, 0x2
+ bne _08067FC8
+ ldrb r0, [r4]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r4]
+_08067FC8:
+ cmp r7, 0
+ bne _08067FD8
+ cmp r6, 0x2
+ bne _08067FD8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r4]
+_08067FD8:
+ movs r0, 0x40
+ mov r1, r8
+ ands r0, r1
+ cmp r0, 0
+ beq _08067FEC
+ movs r0, 0x2
+ b _08068014
+ .align 2, 0
+_08067FE8: .4byte gPlayerAvatar
+_08067FEC:
+ movs r0, 0x80
+ mov r1, r8
+ ands r0, r1
+ cmp r0, 0
+ beq _08067FFA
+ movs r0, 0x1
+ b _08068014
+_08067FFA:
+ movs r0, 0x20
+ mov r1, r8
+ ands r0, r1
+ cmp r0, 0
+ beq _08068008
+ movs r0, 0x3
+ b _08068014
+_08068008:
+ movs r0, 0x10
+ mov r1, r8
+ ands r0, r1
+ cmp r0, 0
+ beq _08068016
+ movs r0, 0x4
+_08068014:
+ strb r0, [r4, 0x2]
+_08068016:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end process_overworld_input
+
+ thumb_func_start sub_8068024
+sub_8068024: @ 8068024
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r4, sp
+ mov r0, sp
+ bl player_get_pos_to_and_height
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl CheckTrainers
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068150
+ bl mapheader_run_first_tag2_script_list_match
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068150
+ ldrb r1, [r5]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08068076
+ bl sub_80687A4
+ cmp r0, 0x1
+ beq _08068150
+_08068076:
+ ldrb r1, [r5]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08068098
+ movs r0, 0x5
+ bl sav12_xor_increment
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r6, 0
+ bl sub_80687E4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068150
+_08068098:
+ ldrb r1, [r5]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080680B0
+ adds r0, r4, 0
+ bl is_it_battle_time_3
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068150
+_080680B0:
+ ldrb r1, [r5]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080680D2
+ ldrb r0, [r5, 0x2]
+ cmp r0, r6
+ bne _080680D2
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r6, 0
+ bl mapheader_run_first_tag2_script_list_match_conditionally
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068150
+_080680D2:
+ mov r4, sp
+ mov r0, sp
+ bl player_get_next_pos_and_height
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldrb r1, [r5]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08068108
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r6, 0
+ bl sub_80681F0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068150
+_08068108:
+ ldrb r1, [r5]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0806812A
+ ldrb r0, [r5, 0x2]
+ cmp r0, r6
+ bne _0806812A
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r6, 0
+ bl map_warp_consider_2_to_inside
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068150
+_0806812A:
+ ldrb r1, [r5]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0806813C
+ bl sub_8068770
+ cmp r0, 0x1
+ beq _08068150
+_0806813C:
+ ldrb r1, [r5]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08068154
+ movs r0, 0x6
+ bl PlaySE
+ bl sub_8071310
+_08068150:
+ movs r0, 0x1
+ b _08068166
+_08068154:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08068164
+ bl sub_80A6D1C
+ cmp r0, 0x1
+ beq _08068150
+_08068164:
+ movs r0, 0
+_08068166:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8068024
+
+ thumb_func_start player_get_pos_to_and_height
+player_get_pos_to_and_height: @ 8068170
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r1, r4, 0x2
+ bl PlayerGetDestCoords
+ bl PlayerGetZCoord
+ strb r0, [r4, 0x4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end player_get_pos_to_and_height
+
+ thumb_func_start player_get_next_pos_and_height
+player_get_next_pos_and_height: @ 8068188
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r1, r5, 0x2
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetZCoordAt
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080681BA
+ bl PlayerGetZCoord
+_080681BA:
+ strb r0, [r5, 0x4]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end player_get_next_pos_and_height
+
+ thumb_func_start cur_mapdata_block_role_at_player_pos
+cur_mapdata_block_role_at_player_pos: @ 80681C4
+ push {r4,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 16
+ lsrs r0, 16
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end cur_mapdata_block_role_at_player_pos
+
+ thumb_func_start sub_80681F0
+sub_80681F0: @ 80681F0
+ push {r4,lr}
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r1, 24
+ lsrs r1, 24
+ bl TryGetScriptOnPressingA
+ adds r4, r0, 0
+ cmp r4, 0
+ bne _08068208
+ movs r0, 0
+ b _08068234
+_08068208:
+ ldr r0, _0806823C @ =gUnknown_0815281E
+ cmp r4, r0
+ beq _0806822C
+ ldr r0, _08068240 @ =gUnknown_08152C39
+ cmp r4, r0
+ beq _0806822C
+ ldr r0, _08068244 @ =gUnknown_0815F36C
+ cmp r4, r0
+ beq _0806822C
+ ldr r0, _08068248 @ =gUnknown_0815F43A
+ cmp r4, r0
+ beq _0806822C
+ ldr r0, _0806824C @ =gUnknown_081A0009
+ cmp r4, r0
+ beq _0806822C
+ movs r0, 0x5
+ bl PlaySE
+_0806822C:
+ adds r0, r4, 0
+ bl ScriptContext1_SetupScript
+ movs r0, 0x1
+_08068234:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806823C: .4byte gUnknown_0815281E
+_08068240: .4byte gUnknown_08152C39
+_08068244: .4byte gUnknown_0815F36C
+_08068248: .4byte gUnknown_0815F43A
+_0806824C: .4byte gUnknown_081A0009
+ thumb_func_end sub_80681F0
+
+ thumb_func_start TryGetScriptOnPressingA
+TryGetScriptOnPressingA: @ 8068250
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ mov r8, r5
+ lsls r2, 24
+ lsrs r4, r2, 24
+ adds r7, r4, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_8068364
+ cmp r0, 0
+ bne _0806829C
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl TryGetInvisibleMapObjectScript
+ cmp r0, 0
+ bne _0806829C
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_8068500
+ cmp r0, 0
+ bne _0806829C
+ adds r0, r6, 0
+ mov r1, r8
+ adds r2, r7, 0
+ bl TryGetFieldMoveScript
+ cmp r0, 0
+ bne _0806829C
+ movs r0, 0
+_0806829C:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end TryGetScriptOnPressingA
+
+ thumb_func_start sub_80682A8
+sub_80682A8: @ 80682A8
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r2, 24
+ lsrs r6, r2, 24
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ bl MetatileBehavior_IsCounter
+ lsls r0, 24
+ cmp r0, 0
+ bne _080682D0
+ ldrh r0, [r4]
+ ldrh r1, [r4, 0x2]
+ b _080682EE
+_080682D0:
+ ldr r1, _08068314 @ =gUnknown_0821664C
+ lsls r2, r6, 3
+ adds r0, r2, r1
+ ldr r3, [r0]
+ ldrh r0, [r4]
+ adds r0, r3
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, 0x4
+ adds r2, r1
+ ldr r2, [r2]
+ ldrh r1, [r4, 0x2]
+ adds r1, r2
+ lsls r1, 16
+ lsrs r1, 16
+_080682EE:
+ ldrb r2, [r4, 0x4]
+ bl GetFieldObjectIdByXYZ
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x10
+ beq _0806830E
+ ldr r1, _08068318 @ =gMapObjects
+ lsls r2, r3, 3
+ adds r0, r2, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+ adds r5, r1, 0
+ cmp r0, 0xFF
+ bne _0806831C
+_0806830E:
+ movs r0, 0
+ b _0806834E
+ .align 2, 0
+_08068314: .4byte gUnknown_0821664C
+_08068318: .4byte gMapObjects
+_0806831C:
+ movs r4, 0
+ ldr r1, _08068354 @ =gLinkPlayerMapObjects
+_08068320:
+ ldrb r0, [r1]
+ cmp r0, 0x1
+ bne _0806832C
+ ldrb r0, [r1, 0x2]
+ cmp r0, r3
+ beq _0806830E
+_0806832C:
+ adds r1, 0x4
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _08068320
+ ldr r0, _08068358 @ =gSelectedMapObject
+ strb r3, [r0]
+ ldr r1, _0806835C @ =gScriptLastTalked
+ adds r0, r2, r3
+ lsls r0, 2
+ adds r0, r5
+ ldrb r0, [r0, 0x8]
+ strh r0, [r1]
+ ldr r0, _08068360 @ =gScriptFacing
+ strh r6, [r0]
+ adds r0, r3, 0
+ bl GetFieldObjectScriptPointerByFieldObjectId
+_0806834E:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08068354: .4byte gLinkPlayerMapObjects
+_08068358: .4byte gSelectedMapObject
+_0806835C: .4byte gScriptLastTalked
+_08068360: .4byte gScriptFacing
+ thumb_func_end sub_80682A8
+
+ thumb_func_start sub_8068364
+sub_8068364: @ 8068364
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ ldrh r0, [r4]
+ ldrh r1, [r4, 0x2]
+ ldrb r2, [r4, 0x4]
+ bl GetFieldObjectIdByXYZ
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x10
+ beq _08068392
+ ldr r1, _080683E0 @ =gMapObjects
+ lsls r2, r3, 3
+ adds r0, r2, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0xFF
+ bne _080683E8
+_08068392:
+ adds r0, r5, 0
+ bl MetatileBehavior_IsCounter
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080683DC
+ ldr r1, _080683E4 @ =gUnknown_0821664C
+ lsls r2, r6, 3
+ adds r0, r2, r1
+ ldr r3, [r0]
+ ldrh r0, [r4]
+ adds r0, r3
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, 0x4
+ adds r2, r1
+ ldr r2, [r2]
+ ldrh r1, [r4, 0x2]
+ adds r1, r2
+ lsls r1, 16
+ lsrs r1, 16
+ ldrb r2, [r4, 0x4]
+ bl GetFieldObjectIdByXYZ
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x10
+ beq _080683DC
+ ldr r1, _080683E0 @ =gMapObjects
+ lsls r2, r3, 3
+ adds r0, r2, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0xFF
+ bne _080683E8
+_080683DC:
+ movs r0, 0
+ b _0806840C
+ .align 2, 0
+_080683E0: .4byte gMapObjects
+_080683E4: .4byte gUnknown_0821664C
+_080683E8:
+ ldr r0, _08068414 @ =gSelectedMapObject
+ strb r3, [r0]
+ ldr r4, _08068418 @ =gScriptLastTalked
+ adds r0, r2, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+ strh r0, [r4]
+ ldr r0, _0806841C @ =gScriptFacing
+ strh r6, [r0]
+ adds r0, r3, 0
+ bl GetFieldObjectScriptPointerByFieldObjectId
+ adds r1, r0, 0
+ ldrb r0, [r4]
+ bl GetRamScript
+ adds r1, r0, 0
+_0806840C:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08068414: .4byte gSelectedMapObject
+_08068418: .4byte gScriptLastTalked
+_0806841C: .4byte gScriptFacing
+ thumb_func_end sub_8068364
+
+ thumb_func_start TryGetInvisibleMapObjectScript
+TryGetInvisibleMapObjectScript: @ 8068420
+ push {r4,r5,lr}
+ lsls r2, 24
+ lsrs r5, r2, 24
+ ldr r4, _08068450 @ =gMapHeader
+ ldrh r1, [r0]
+ subs r1, 0x7
+ lsls r1, 16
+ lsrs r1, 16
+ ldrh r2, [r0, 0x2]
+ subs r2, 0x7
+ lsls r2, 16
+ lsrs r2, 16
+ ldrb r3, [r0, 0x4]
+ adds r0, r4, 0
+ bl FindInvisibleMapObjectByPosition
+ cmp r0, 0
+ beq _08068494
+ ldr r2, [r0, 0x8]
+ cmp r2, 0
+ bne _08068458
+ ldr r0, _08068454 @ =gUnknown_081C6C02
+ b _080684FA
+ .align 2, 0
+_08068450: .4byte gMapHeader
+_08068454: .4byte gUnknown_081C6C02
+_08068458:
+ ldrb r0, [r0, 0x5]
+ cmp r0, 0x8
+ bhi _080684F8
+ lsls r0, 2
+ ldr r1, _08068468 @ =_0806846C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08068468: .4byte _0806846C
+ .align 2, 0
+_0806846C:
+ .4byte _080684F8
+ .4byte _08068490
+ .4byte _08068498
+ .4byte _0806849E
+ .4byte _080684A4
+ .4byte _080684AA
+ .4byte _080684AA
+ .4byte _080684AA
+ .4byte _080684D8
+_08068490:
+ cmp r5, 0x2
+ beq _080684F8
+_08068494:
+ movs r0, 0
+ b _080684FA
+_08068498:
+ cmp r5, 0x1
+ beq _080684F8
+ b _08068494
+_0806849E:
+ cmp r5, 0x4
+ beq _080684F8
+ b _08068494
+_080684A4:
+ cmp r5, 0x3
+ beq _080684F8
+ b _08068494
+_080684AA:
+ ldr r1, _080684CC @ =gSpecialVar_0x8004
+ lsrs r0, r2, 16
+ movs r3, 0x96
+ lsls r3, 2
+ adds r0, r3
+ strh r0, [r1]
+ ldr r0, _080684D0 @ =gSpecialVar_0x8005
+ strh r2, [r0]
+ ldrh r0, [r1]
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068494
+ ldr r0, _080684D4 @ =HiddenItemScript
+ b _080684FA
+ .align 2, 0
+_080684CC: .4byte gSpecialVar_0x8004
+_080684D0: .4byte gSpecialVar_0x8005
+_080684D4: .4byte HiddenItemScript
+_080684D8:
+ cmp r5, 0x2
+ bne _08068494
+ ldr r0, _080684F0 @ =gSpecialVar_0x8004
+ strh r2, [r0]
+ bl sub_80BC050
+ lsls r0, 24
+ cmp r0, 0
+ beq _08068494
+ ldr r0, _080684F4 @ =gUnknown_081A2C51
+ b _080684FA
+ .align 2, 0
+_080684F0: .4byte gSpecialVar_0x8004
+_080684F4: .4byte gUnknown_081A2C51
+_080684F8:
+ adds r0, r2, 0
+_080684FA:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end TryGetInvisibleMapObjectScript
+
+ thumb_func_start sub_8068500
+sub_8068500: @ 8068500
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl MetatileBehavior_IsPlayerFacingTVScreen
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068524
+ ldr r0, _08068520 @ =Event_TV
+ b _080686EE
+ .align 2, 0
+_08068520: .4byte Event_TV
+_08068524:
+ adds r0, r5, 0
+ bl MetatileBehavior_IsPC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806853C
+ ldr r0, _08068538 @ =gUnknown_081A0009
+ b _080686EE
+ .align 2, 0
+_08068538: .4byte gUnknown_081A0009
+_0806853C:
+ adds r0, r5, 0
+ bl is_tile_x8B
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068554
+ ldr r0, _08068550 @ =ClosedSootopolisGymDoorScript
+ b _080686EE
+ .align 2, 0
+_08068550: .4byte ClosedSootopolisGymDoorScript
+_08068554:
+ adds r0, r5, 0
+ bl is_tile_x84
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806856C
+ ldr r0, _08068568 @ =gUnknown_081A4363
+ b _080686EE
+ .align 2, 0
+_08068568: .4byte gUnknown_081A4363
+_0806856C:
+ adds r0, r5, 0
+ bl is_tile_x87
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068584
+ ldr r0, _08068580 @ =gUnknown_081C346A
+ b _080686EE
+ .align 2, 0
+_08068580: .4byte gUnknown_081C346A
+_08068584:
+ adds r0, r5, 0
+ bl is_tile_x8C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806859C
+ ldr r0, _08068598 @ =gUnknown_081616E1
+ b _080686EE
+ .align 2, 0
+_08068598: .4byte gUnknown_081616E1
+_0806859C:
+ adds r0, r5, 0
+ bl is_tile_x85
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080685B4
+ ldr r0, _080685B0 @ =Event_WorldMap
+ b _080686EE
+ .align 2, 0
+_080685B0: .4byte Event_WorldMap
+_080685B4:
+ adds r0, r5, 0
+ bl sub_805791C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080685CC
+ ldr r0, _080685C8 @ =Event_RunningShoesManual
+ b _080686EE
+ .align 2, 0
+_080685C8: .4byte Event_RunningShoesManual
+_080685CC:
+ adds r0, r5, 0
+ bl sub_8057930
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080685E4
+ ldr r0, _080685E0 @ =PictureBookShelfScript
+ b _080686EE
+ .align 2, 0
+_080685E0: .4byte PictureBookShelfScript
+_080685E4:
+ adds r0, r5, 0
+ bl sub_8057944
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080685FC
+ ldr r0, _080685F8 @ =BookshelfScript
+ b _080686EE
+ .align 2, 0
+_080685F8: .4byte BookshelfScript
+_080685FC:
+ adds r0, r5, 0
+ bl sub_8057958
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068614
+ ldr r0, _08068610 @ =PokemonCenterBookshelfScript
+ b _080686EE
+ .align 2, 0
+_08068610: .4byte PokemonCenterBookshelfScript
+_08068614:
+ adds r0, r5, 0
+ bl sub_805796C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806862C
+ ldr r0, _08068628 @ =VaseScript
+ b _080686EE
+ .align 2, 0
+_08068628: .4byte VaseScript
+_0806862C:
+ adds r0, r5, 0
+ bl sub_8057980
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068644
+ ldr r0, _08068640 @ =TrashCanScript
+ b _080686EE
+ .align 2, 0
+_08068640: .4byte TrashCanScript
+_08068644:
+ adds r0, r5, 0
+ bl sub_8057994
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806865C
+ ldr r0, _08068658 @ =ShopShelfScript
+ b _080686EE
+ .align 2, 0
+_08068658: .4byte ShopShelfScript
+_0806865C:
+ adds r0, r5, 0
+ bl sub_80579A8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068674
+ ldr r0, _08068670 @ =BlueprintScript
+ b _080686EE
+ .align 2, 0
+_08068670: .4byte BlueprintScript
+_08068674:
+ movs r4, 0x4
+ ldrsb r4, [r6, r4]
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ movs r2, 0x2
+ ldrsh r1, [r6, r2]
+ bl MapGridGetZCoordAt
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bne _080686EC
+ adds r0, r5, 0
+ bl sub_8057238
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080686A4
+ ldr r0, _080686A0 @ =gUnknown_0815F36C
+ b _080686EE
+ .align 2, 0
+_080686A0: .4byte gUnknown_0815F36C
+_080686A4:
+ adds r0, r5, 0
+ bl sub_805724C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080686BC
+ ldr r0, _080686B8 @ =gUnknown_0815F43A
+ b _080686EE
+ .align 2, 0
+_080686B8: .4byte gUnknown_0815F43A
+_080686BC:
+ adds r0, r5, 0
+ bl sub_8057364
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080686D4
+ ldr r0, _080686D0 @ =gUnknown_0815F523
+ b _080686EE
+ .align 2, 0
+_080686D0: .4byte gUnknown_0815F523
+_080686D4:
+ adds r0, r5, 0
+ bl sub_8057378
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080686EC
+ ldr r0, _080686E8 @ =gUnknown_0815F528
+ b _080686EE
+ .align 2, 0
+_080686E8: .4byte gUnknown_0815F528
+_080686EC:
+ movs r0, 0
+_080686EE:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8068500
+
+ thumb_func_start TryGetFieldMoveScript
+TryGetFieldMoveScript: @ 80686F4
+ push {r4,lr}
+ lsls r1, 24
+ lsrs r4, r1, 24
+ ldr r0, _08068724 @ =0x0000080b
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806872C
+ bl PartyHasMonWithSurf
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806872C
+ bl IsPlayerFacingSurfableFishableWater
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806872C
+ ldr r0, _08068728 @ =UseSurfScript
+ b _0806876A
+ .align 2, 0
+_08068724: .4byte 0x0000080b
+_08068728: .4byte UseSurfScript
+_0806872C:
+ adds r0, r4, 0
+ bl MetatileBehavior_IsWaterfall
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068768
+ ldr r0, _08068758 @ =0x0000080e
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068760
+ bl IsPlayerSurfingNorth
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068760
+ ldr r0, _0806875C @ =UseWaterfallScript
+ b _0806876A
+ .align 2, 0
+_08068758: .4byte 0x0000080e
+_0806875C: .4byte UseWaterfallScript
+_08068760:
+ ldr r0, _08068764 @ =CannotUseWaterfallScript
+ b _0806876A
+ .align 2, 0
+_08068764: .4byte CannotUseWaterfallScript
+_08068768:
+ movs r0, 0
+_0806876A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end TryGetFieldMoveScript
+
+ thumb_func_start sub_8068770
+sub_8068770: @ 8068770
+ push {lr}
+ ldr r0, _08068794 @ =0x0000080d
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806879C
+ bl sub_8068F18
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _0806879C
+ ldr r0, _08068798 @ =UseDiveScript
+ bl ScriptContext1_SetupScript
+ movs r0, 0x1
+ b _0806879E
+ .align 2, 0
+_08068794: .4byte 0x0000080d
+_08068798: .4byte UseDiveScript
+_0806879C:
+ movs r0, 0
+_0806879E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8068770
+
+ thumb_func_start sub_80687A4
+sub_80687A4: @ 80687A4
+ push {lr}
+ ldr r0, _080687D0 @ =0x0000080d
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _080687DC
+ ldr r0, _080687D4 @ =gMapHeader
+ ldrb r0, [r0, 0x17]
+ cmp r0, 0x5
+ bne _080687DC
+ bl sub_8068F18
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080687DC
+ ldr r0, _080687D8 @ =UnderwaterUseDiveScript
+ bl ScriptContext1_SetupScript
+ movs r0, 0x1
+ b _080687DE
+ .align 2, 0
+_080687D0: .4byte 0x0000080d
+_080687D4: .4byte gMapHeader
+_080687D8: .4byte UnderwaterUseDiveScript
+_080687DC:
+ movs r0, 0
+_080687DE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80687A4
+
+ thumb_func_start sub_80687E4
+sub_80687E4: @ 80687E4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ adds r6, r4, 0
+ bl mapheader_trigger_activate_at__run_now
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068834
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8068A64
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068834
+ adds r0, r6, 0
+ bl sub_8068870
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068834
+ bl sub_8068894
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068834
+ bl UpdateRepelCounter
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068834
+ movs r0, 0
+ b _08068836
+_08068834:
+ movs r0, 0x1
+_08068836:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80687E4
+
+ thumb_func_start mapheader_trigger_activate_at__run_now
+mapheader_trigger_activate_at__run_now: @ 806883C
+ push {r4,lr}
+ ldr r4, _08068864 @ =gMapHeader
+ ldrh r1, [r0]
+ subs r1, 0x7
+ lsls r1, 16
+ lsrs r1, 16
+ ldrh r2, [r0, 0x2]
+ subs r2, 0x7
+ lsls r2, 16
+ lsrs r2, 16
+ ldrb r3, [r0, 0x4]
+ adds r0, r4, 0
+ bl mapheader_trigger_activate_at
+ cmp r0, 0
+ beq _08068868
+ bl ScriptContext1_SetupScript
+ movs r0, 0x1
+ b _0806886A
+ .align 2, 0
+_08068864: .4byte gMapHeader
+_08068868:
+ movs r0, 0
+_0806886A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end mapheader_trigger_activate_at__run_now
+
+ thumb_func_start sub_8068870
+sub_8068870: @ 8068870
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8057818
+ lsls r0, 24
+ cmp r0, 0
+ bne _08068884
+ movs r0, 0
+ b _0806888C
+_08068884:
+ ldr r0, _08068890 @ =GraniteCave_B1F_EventScript_1C6BC5
+ bl ScriptContext1_SetupScript
+ movs r0, 0x1
+_0806888C:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08068890: .4byte GraniteCave_B1F_EventScript_1C6BC5
+ thumb_func_end sub_8068870
+
+ thumb_func_start sub_8068894
+sub_8068894: @ 8068894
+ push {lr}
+ bl sub_8082B78
+ bl happiness_algorithm_step
+ bl overworld_poison_step
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080688B4
+ ldr r0, _080688B0 @ =gUnknown_081A14B8
+ b _080688E8
+ .align 2, 0
+_080688B0: .4byte gUnknown_081A14B8
+_080688B4:
+ bl sub_80422A0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080688CC
+ movs r0, 0xD
+ bl sav12_xor_increment
+ ldr r0, _080688C8 @ =Event_EggHatch
+ b _080688E8
+ .align 2, 0
+_080688C8: .4byte Event_EggHatch
+_080688CC:
+ bl SafariZoneTakeStep
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080688EC
+ movs r0, 0x1
+ bl sub_810D9B0
+ cmp r0, 0x1
+ beq _080688E6
+ movs r0, 0
+ b _080688EE
+_080688E6:
+ ldr r0, _080688F4 @ =gUnknown_0815FD0D
+_080688E8:
+ bl ScriptContext1_SetupScript
+_080688EC:
+ movs r0, 0x1
+_080688EE:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080688F4: .4byte gUnknown_0815FD0D
+ thumb_func_end sub_8068894
+
+ thumb_func_start unref_sub_80688F8
+unref_sub_80688F8: @ 80688F8
+ push {lr}
+ ldr r0, _08068908 @ =0x0000402a
+ movs r1, 0
+ bl VarSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08068908: .4byte 0x0000402a
+ thumb_func_end unref_sub_80688F8
+
+ thumb_func_start happiness_algorithm_step
+happiness_algorithm_step: @ 806890C
+ push {r4,r5,lr}
+ ldr r0, _08068940 @ =0x0000402a
+ bl GetVarPointer
+ ldrh r1, [r0]
+ adds r1, 0x1
+ strh r1, [r0]
+ ldrh r1, [r0]
+ movs r2, 0x7F
+ ands r1, r2
+ strh r1, [r0]
+ cmp r1, 0
+ bne _0806893A
+ ldr r5, _08068944 @ =gPlayerParty
+ movs r4, 0x5
+_0806892A:
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl AdjustFriendship
+ adds r5, 0x64
+ subs r4, 0x1
+ cmp r4, 0
+ bge _0806892A
+_0806893A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08068940: .4byte 0x0000402a
+_08068944: .4byte gPlayerParty
+ thumb_func_end happiness_algorithm_step
+
+ thumb_func_start overworld_poison_timer_set
+overworld_poison_timer_set: @ 8068948
+ push {lr}
+ ldr r0, _08068958 @ =0x0000402b
+ movs r1, 0
+ bl VarSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08068958: .4byte 0x0000402b
+ thumb_func_end overworld_poison_timer_set
+
+ thumb_func_start overworld_poison_step
+overworld_poison_step: @ 806895C
+ push {lr}
+ ldr r0, _08068994 @ =gMapHeader
+ ldrb r0, [r0, 0x17]
+ cmp r0, 0x9
+ beq _0806899C
+ ldr r0, _08068998 @ =0x0000402b
+ bl GetVarPointer
+ ldrh r1, [r0]
+ adds r1, 0x1
+ strh r1, [r0]
+ ldrh r1, [r0]
+ movs r2, 0x3
+ ands r1, r2
+ strh r1, [r0]
+ cmp r1, 0
+ bne _0806899C
+ bl overworld_poison
+ cmp r0, 0x1
+ beq _0806899C
+ cmp r0, 0x1
+ ble _0806899C
+ cmp r0, 0x2
+ bne _0806899C
+ movs r0, 0x1
+ b _0806899E
+ .align 2, 0
+_08068994: .4byte gMapHeader
+_08068998: .4byte 0x0000402b
+_0806899C:
+ movs r0, 0
+_0806899E:
+ pop {r1}
+ bx r1
+ thumb_func_end overworld_poison_step
+
+ thumb_func_start prev_quest_postbuffer_cursor_backup_reset
+prev_quest_postbuffer_cursor_backup_reset: @ 80689A4
+ ldr r1, _080689AC @ =gUnknown_0202E8C0
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080689AC: .4byte gUnknown_0202E8C0
+ thumb_func_end prev_quest_postbuffer_cursor_backup_reset
+
+ thumb_func_start is_it_battle_time_3
+is_it_battle_time_3: @ 80689B0
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r7, r4, 0
+ ldr r6, _080689CC @ =gUnknown_0202E8C0
+ ldrb r0, [r6]
+ cmp r0, 0x3
+ bhi _080689D4
+ adds r0, 0x1
+ strb r0, [r6]
+ ldr r0, _080689D0 @ =gUnknown_0202E8C2
+ strh r4, [r0]
+ movs r0, 0
+ b _080689F8
+ .align 2, 0
+_080689CC: .4byte gUnknown_0202E8C0
+_080689D0: .4byte gUnknown_0202E8C2
+_080689D4:
+ ldr r5, _080689EC @ =gUnknown_0202E8C2
+ ldrh r1, [r5]
+ adds r0, r4, 0
+ bl StandardWildEncounter
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080689F0
+ strh r4, [r5]
+ movs r0, 0
+ b _080689F8
+ .align 2, 0
+_080689EC: .4byte gUnknown_0202E8C2
+_080689F0:
+ movs r0, 0
+ strb r0, [r6]
+ strh r7, [r5]
+ movs r0, 0x1
+_080689F8:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end is_it_battle_time_3
+
+ thumb_func_start mapheader_run_first_tag2_script_list_match_conditionally
+mapheader_run_first_tag2_script_list_match_conditionally: @ 8068A00
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _08068A54 @ =gMapHeader
+ mov r8, r0
+ adds r1, r7, 0
+ bl map_warp_check_packed
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl is_non_stair_warp_tile
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068A58
+ lsls r0, r6, 24
+ asrs r4, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, r0
+ beq _08068A58
+ bl walkrun_find_lowest_active_bit_in_bitfield
+ mov r0, r8
+ adds r1, r4, 0
+ adds r2, r7, 0
+ bl sub_8068C30
+ bl sub_8080E88
+ movs r0, 0x1
+ b _08068A5A
+ .align 2, 0
+_08068A54: .4byte gMapHeader
+_08068A58:
+ movs r0, 0
+_08068A5A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end mapheader_run_first_tag2_script_list_match_conditionally
+
+ thumb_func_start sub_8068A64
+sub_8068A64: @ 8068A64
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ ldr r7, _08068ABC @ =gMapHeader
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl map_warp_check_packed
+ lsls r0, 24
+ asrs r4, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, r0
+ beq _08068B28
+ adds r0, r5, 0
+ bl sub_8068B30
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068B28
+ bl walkrun_find_lowest_active_bit_in_bitfield
+ adds r0, r7, 0
+ adds r1, r4, 0
+ adds r2, r6, 0
+ bl sub_8068C30
+ lsls r0, r5, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl MetatileBehavior_IsEscalator
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068AC0
+ adds r0, r4, 0
+ bl sub_8080F2C
+ movs r0, 0x1
+ b _08068B2A
+ .align 2, 0
+_08068ABC: .4byte gMapHeader
+_08068AC0:
+ adds r0, r4, 0
+ bl sub_8057798
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068AD6
+ bl sub_8080F48
+ movs r0, 0x1
+ b _08068B2A
+_08068AD6:
+ adds r0, r4, 0
+ bl is_role_x68
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068AEC
+ bl sub_8080F58
+ movs r0, 0x1
+ b _08068B2A
+_08068AEC:
+ adds r0, r4, 0
+ bl MetatileBehavior_IsAquaHideoutWarp
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068B02
+ bl sub_8080F68
+ movs r0, 0x1
+ b _08068B2A
+_08068B02:
+ adds r0, r4, 0
+ bl sub_8057804
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068B20
+ ldr r0, _08068B1C @ =gUnknown_081C6BDE
+ bl ScriptContext1_SetupScript
+ movs r0, 0x1
+ b _08068B2A
+ .align 2, 0
+_08068B1C: .4byte gUnknown_081C6BDE
+_08068B20:
+ bl sub_8080E88
+ movs r0, 0x1
+ b _08068B2A
+_08068B28:
+ movs r0, 0
+_08068B2A:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8068A64
+
+ thumb_func_start sub_8068B30
+sub_8068B30: @ 8068B30
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl is_tile_x69_2_warp_door
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068BAA
+ adds r0, r4, 0
+ bl MetatileBehavior_IsLadder
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068BAA
+ adds r0, r4, 0
+ bl MetatileBehavior_IsEscalator
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068BAA
+ adds r0, r4, 0
+ bl sub_8056F08
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068BAA
+ adds r0, r4, 0
+ bl sub_8057798
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068BAA
+ adds r0, r4, 0
+ bl is_role_x68
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068BAA
+ adds r0, r4, 0
+ bl MetatileBehavior_IsAquaHideoutWarp
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068BAA
+ adds r0, r4, 0
+ bl sub_8057804
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068BAA
+ movs r0, 0
+ b _08068BAC
+_08068BAA:
+ movs r0, 0x1
+_08068BAC:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8068B30
+
+ thumb_func_start is_non_stair_warp_tile
+is_non_stair_warp_tile: @ 8068BB4
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r1, 0
+ cmp r1, 0x2
+ beq _08068BD8
+ cmp r1, 0x2
+ bgt _08068BCE
+ cmp r1, 0x1
+ beq _08068BE2
+ b _08068C04
+_08068BCE:
+ cmp r2, 0x3
+ beq _08068BEC
+ cmp r2, 0x4
+ beq _08068BF6
+ b _08068C04
+_08068BD8:
+ lsls r0, 24
+ lsrs r0, 24
+ bl MetatileBehavior_IsNorthArrowWarp
+ b _08068BFE
+_08068BE2:
+ lsls r0, 24
+ lsrs r0, 24
+ bl MetatileBehavior_IsSouthArrowWarp
+ b _08068BFE
+_08068BEC:
+ lsls r0, 24
+ lsrs r0, 24
+ bl MetatileBehavior_IsWestArrowWarp
+ b _08068BFE
+_08068BF6:
+ lsls r0, 24
+ lsrs r0, 24
+ bl MetatileBehavior_IsEastArrowWarp
+_08068BFE:
+ lsls r0, 24
+ lsrs r0, 24
+ b _08068C06
+_08068C04:
+ movs r0, 0
+_08068C06:
+ pop {r1}
+ bx r1
+ thumb_func_end is_non_stair_warp_tile
+
+ thumb_func_start map_warp_check_packed
+map_warp_check_packed: @ 8068C0C
+ push {lr}
+ adds r3, r1, 0
+ ldrh r1, [r3]
+ subs r1, 0x7
+ lsls r1, 16
+ lsrs r1, 16
+ ldrh r2, [r3, 0x2]
+ subs r2, 0x7
+ lsls r2, 16
+ lsrs r2, 16
+ ldrb r3, [r3, 0x4]
+ bl map_warp_check
+ lsls r0, 24
+ asrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end map_warp_check_packed
+
+ thumb_func_start sub_8068C30
+sub_8068C30: @ 8068C30
+ push {r4-r7,lr}
+ adds r5, r2, 0
+ ldr r0, _08068C50 @ =gMapHeader
+ ldr r0, [r0, 0x4]
+ lsls r1, 24
+ asrs r7, r1, 24
+ lsls r6, r7, 3
+ ldr r0, [r0, 0x8]
+ adds r4, r0, r6
+ ldrb r0, [r4, 0x6]
+ cmp r0, 0x7F
+ bne _08068C54
+ ldrb r0, [r4, 0x5]
+ bl copy_saved_warp2_bank_and_enter_x_to_warp1
+ b _08068C9E
+ .align 2, 0
+_08068C50: .4byte gMapHeader
+_08068C54:
+ movs r0, 0x7
+ ldrsb r0, [r4, r0]
+ movs r1, 0x6
+ ldrsb r1, [r4, r1]
+ movs r2, 0x5
+ ldrsb r2, [r4, r2]
+ bl warp1_set_2
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ movs r2, 0x2
+ ldrsh r1, [r5, r2]
+ bl sub_80535C4
+ ldrb r0, [r4, 0x7]
+ ldrb r1, [r4, 0x6]
+ bl get_mapheader_by_bank_and_number
+ ldr r1, [r0, 0x4]
+ ldrb r0, [r4, 0x5]
+ ldr r1, [r1, 0x8]
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0x7F
+ bne _08068C9E
+ adds r0, r6, r1
+ ldrb r0, [r0, 0x5]
+ ldr r2, _08068CA4 @ =gSaveBlock1
+ movs r1, 0x4
+ ldrsb r1, [r2, r1]
+ ldrb r2, [r2, 0x5]
+ lsls r2, 24
+ asrs r2, 24
+ adds r3, r7, 0
+ bl saved_warp2_set
+_08068C9E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08068CA4: .4byte gSaveBlock1
+ thumb_func_end sub_8068C30
+
+ thumb_func_start map_warp_consider_2_to_inside
+map_warp_consider_2_to_inside: @ 8068CA8
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ lsls r1, 16
+ lsrs r0, r1, 16
+ adds r7, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ cmp r2, 0x2
+ bne _08068D2C
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_80571C0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068CE0
+ ldr r0, _08068CDC @ =gMapHeader
+ ldr r1, [r0, 0x4]
+ adds r0, r5, 0
+ bl sub_80BC038
+ movs r0, 0x1
+ b _08068D2E
+ .align 2, 0
+_08068CDC: .4byte gMapHeader
+_08068CE0:
+ adds r0, r4, 0
+ bl is_tile_x69_2_warp_door
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068D2C
+ ldr r6, _08068D28 @ =gMapHeader
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl map_warp_check_packed
+ lsls r0, 24
+ asrs r4, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, r0
+ beq _08068D2C
+ adds r0, r7, 0
+ bl sub_8068B30
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068D2C
+ bl walkrun_find_lowest_active_bit_in_bitfield
+ adds r0, r6, 0
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_8068C30
+ bl sub_8080EF0
+ movs r0, 0x1
+ b _08068D2E
+ .align 2, 0
+_08068D28: .4byte gMapHeader
+_08068D2C:
+ movs r0, 0
+_08068D2E:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end map_warp_consider_2_to_inside
+
+ thumb_func_start map_warp_check
+map_warp_check: @ 8068D34
+ push {r4-r6,lr}
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 16
+ lsrs r5, r2, 16
+ lsls r3, 24
+ lsrs r4, r3, 24
+ ldr r0, [r0, 0x4]
+ ldr r1, [r0, 0x8]
+ ldrb r3, [r0, 0x1]
+ movs r2, 0
+ cmp r2, r3
+ bge _08068D72
+_08068D4E:
+ ldrh r0, [r1]
+ cmp r0, r6
+ bne _08068D6A
+ ldrh r0, [r1, 0x2]
+ cmp r0, r5
+ bne _08068D6A
+ ldrb r0, [r1, 0x4]
+ cmp r0, r4
+ beq _08068D64
+ cmp r0, 0
+ bne _08068D6A
+_08068D64:
+ lsls r0, r2, 24
+ asrs r0, 24
+ b _08068D76
+_08068D6A:
+ adds r2, 0x1
+ adds r1, 0x8
+ cmp r2, r3
+ blt _08068D4E
+_08068D72:
+ movs r0, 0x1
+ negs r0, r0
+_08068D76:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end map_warp_check
+
+ thumb_func_start trigger_activate
+trigger_activate: @ 8068D7C
+ push {r4,lr}
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _08068DB2
+ ldr r1, [r4, 0xC]
+ cmp r1, 0
+ bne _08068D92
+ ldrb r0, [r4, 0x6]
+ bl DoCoordEventWeather
+ b _08068DB2
+_08068D92:
+ ldrh r0, [r4, 0x6]
+ cmp r0, 0
+ beq _08068DAC
+ ldrh r0, [r4, 0x6]
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r1, [r4, 0x8]
+ cmp r0, r1
+ bne _08068DB2
+ ldr r0, [r4, 0xC]
+ b _08068DB4
+_08068DAC:
+ adds r0, r1, 0
+ bl ScriptContext2_RunNewScript
+_08068DB2:
+ movs r0, 0
+_08068DB4:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end trigger_activate
+
+ thumb_func_start mapheader_trigger_activate_at
+mapheader_trigger_activate_at: @ 8068DBC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r1, 16
+ lsrs r1, 16
+ mov r10, r1
+ lsls r2, 16
+ lsrs r2, 16
+ mov r9, r2
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ ldr r0, [r0, 0x4]
+ ldr r1, [r0, 0xC]
+ ldrb r7, [r0, 0x2]
+ movs r6, 0
+ cmp r6, r7
+ bge _08068E12
+ adds r5, r1, 0
+ adds r4, r5, 0
+_08068DE8:
+ ldrh r0, [r4]
+ cmp r0, r10
+ bne _08068E08
+ ldrh r0, [r4, 0x2]
+ cmp r0, r9
+ bne _08068E08
+ ldrb r0, [r4, 0x4]
+ cmp r0, r8
+ beq _08068DFE
+ cmp r0, 0
+ bne _08068E08
+_08068DFE:
+ adds r0, r5, 0
+ bl trigger_activate
+ cmp r0, 0
+ bne _08068E14
+_08068E08:
+ adds r4, 0x10
+ adds r5, 0x10
+ adds r6, 0x1
+ cmp r6, r7
+ blt _08068DE8
+_08068E12:
+ movs r0, 0
+_08068E14:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end mapheader_trigger_activate_at
+
+ thumb_func_start sub_8068E24
+sub_8068E24: @ 8068E24
+ push {r4,lr}
+ ldr r4, _08068E48 @ =gMapHeader
+ ldrh r1, [r0]
+ subs r1, 0x7
+ lsls r1, 16
+ lsrs r1, 16
+ ldrh r2, [r0, 0x2]
+ subs r2, 0x7
+ lsls r2, 16
+ lsrs r2, 16
+ ldrb r3, [r0, 0x4]
+ adds r0, r4, 0
+ bl mapheader_trigger_activate_at
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08068E48: .4byte gMapHeader
+ thumb_func_end sub_8068E24
+
+ thumb_func_start FindInvisibleMapObjectByPosition
+FindInvisibleMapObjectByPosition: @ 8068E4C
+ push {r4-r7,lr}
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r2, 16
+ lsrs r6, r2, 16
+ lsls r3, 24
+ lsrs r5, r3, 24
+ ldr r0, [r0, 0x4]
+ ldr r4, [r0, 0x10]
+ ldrb r3, [r0, 0x3]
+ movs r2, 0
+ cmp r2, r3
+ bcs _08068E92
+_08068E66:
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0, r4
+ ldrh r0, [r1]
+ cmp r0, r7
+ bne _08068E88
+ ldrh r0, [r1, 0x2]
+ cmp r0, r6
+ bne _08068E88
+ ldrb r0, [r1, 0x4]
+ cmp r0, r5
+ beq _08068E84
+ cmp r0, 0
+ bne _08068E88
+_08068E84:
+ adds r0, r1, 0
+ b _08068E94
+_08068E88:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, r3
+ bcc _08068E66
+_08068E92:
+ movs r0, 0
+_08068E94:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end FindInvisibleMapObjectByPosition
+
+ thumb_func_start dive_warp
+dive_warp: @ 8068E9C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ ldr r0, _08068ED0 @ =gMapHeader
+ ldrb r0, [r0, 0x17]
+ cmp r0, 0x5
+ bne _08068ED4
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_805750C
+ lsls r0, 24
+ cmp r0, 0
+ bne _08068ED4
+ ldrh r0, [r4]
+ subs r0, 0x7
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r4, 0x2]
+ subs r1, 0x7
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_80538B0
+ b _08068EF8
+ .align 2, 0
+_08068ED0: .4byte gMapHeader
+_08068ED4:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_80574EC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068F10
+ ldrh r0, [r4]
+ subs r0, 0x7
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r4, 0x2]
+ subs r1, 0x7
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_80538D0
+_08068EF8:
+ lsls r0, 24
+ cmp r0, 0
+ beq _08068F10
+ bl walkrun_find_lowest_active_bit_in_bitfield
+ bl sp13E_warp_to_last_warp
+ movs r0, 0xE9
+ bl PlaySE
+ movs r0, 0x1
+ b _08068F12
+_08068F10:
+ movs r0, 0
+_08068F12:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end dive_warp
+
+ thumb_func_start sub_8068F18
+sub_8068F18: @ 8068F18
+ push {r4,r5,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _08068F70 @ =gMapHeader
+ ldrb r0, [r0, 0x17]
+ cmp r0, 0x5
+ bne _08068F74
+ adds r0, r5, 0
+ bl sub_805750C
+ lsls r0, 24
+ cmp r0, 0
+ bne _08068F74
+ mov r0, sp
+ ldrh r0, [r0]
+ subs r0, 0x7
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r4]
+ subs r1, 0x7
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_80538B0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068FA4
+ movs r0, 0x1
+ b _08068FA6
+ .align 2, 0
+_08068F70: .4byte gMapHeader
+_08068F74:
+ adds r0, r5, 0
+ bl sub_80574EC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068FA4
+ mov r0, sp
+ ldrh r0, [r0]
+ subs r0, 0x7
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r4]
+ subs r1, 0x7
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_80538D0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068FA4
+ movs r0, 0x2
+ b _08068FA6
+_08068FA4:
+ movs r0, 0
+_08068FA6:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8068F18
+
+ thumb_func_start GetFieldObjectScriptPointerForComparison
+GetFieldObjectScriptPointerForComparison: @ 8068FB0
+ push {r4,r5,lr}
+ sub sp, 0x8
+ bl player_get_direction_upper_nybble
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r5, sp
+ mov r0, sp
+ bl player_get_next_pos_and_height
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0x2
+ ldrsh r1, [r5, r2]
+ bl MapGridGetMetatileBehaviorAt
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, sp
+ adds r2, r4, 0
+ bl sub_8068364
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end GetFieldObjectScriptPointerForComparison
+
+ thumb_func_start sub_8068FEC
+sub_8068FEC: @ 8068FEC
+ push {r4,lr}
+ sub sp, 0x8
+ bl player_get_direction_upper_nybble
+ mov r4, sp
+ mov r0, sp
+ bl player_get_pos_to_and_height
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ ldr r4, _0806902C @ =gMapHeader
+ adds r0, r4, 0
+ mov r1, sp
+ bl map_warp_check_packed
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ adds r0, r4, 0
+ mov r2, sp
+ bl sub_8068C30
+ movs r0, 0
+ add sp, 0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806902C: .4byte gMapHeader
+ thumb_func_end sub_8068FEC
+
+ .align 2, 0 @ Don't pad with nop.