.include "asm/macros.inc"
	.include "constants/constants.inc"

	.syntax unified

	.text

	thumb_func_start npc_before_player_of_type
npc_before_player_of_type: @ 8135424
	push {r4,r5,lr}
	adds r5, r0, 0
	lsls r5, 24
	lsrs r5, 24
	ldr r4, =gUnknown_0203AB40
	adds r1, r4, 0x2
	adds r0, r4, 0
	bl GetXYCoordsOneStepInFrontOfPlayer
	bl PlayerGetZCoord
	strb r0, [r4, 0x4]
	ldrh r0, [r4]
	ldrh r1, [r4, 0x2]
	ldrb r2, [r4, 0x4]
	bl GetFieldObjectIdByXYZ
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gMapObjects
	lsls r1, r0, 3
	adds r1, r0
	lsls r1, 2
	adds r2, r1, r2
	ldrb r0, [r2, 0x5]
	cmp r0, r5
	bne _08135470
	ldr r1, =gSpecialVar_LastTalked
	ldrb r0, [r2, 0x8]
	strh r0, [r1]
	movs r0, 0x1
	b _08135472
	.pool
_08135470:
	movs r0, 0
_08135472:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end npc_before_player_of_type

	thumb_func_start oei_task_add
oei_task_add: @ 8135478
	push {lr}
	ldr r0, =gUnknown_0203AB40
	adds r1, r0, 0x2
	bl GetXYCoordsOneStepInFrontOfPlayer
	ldr r0, =task08_080C9820
	movs r1, 0x8
	bl CreateTask
	lsls r0, 24
	lsrs r0, 24
	pop {r1}
	bx r1
	.pool
	thumb_func_end oei_task_add

	thumb_func_start task08_080C9820
task08_080C9820: @ 813549C
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	adds r6, r5, 0
	bl ScriptContext2_Enable
	ldr r1, =gPlayerAvatar
	movs r0, 0x1
	strb r0, [r1, 0x6]
	ldrb r1, [r1, 0x5]
	lsls r0, r1, 3
	adds r0, r1
	lsls r0, 2
	ldr r1, =gMapObjects
	adds r4, r0, r1
	adds r0, r4, 0
	bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
	lsls r0, 24
	cmp r0, 0
	beq _081354D2
	adds r0, r4, 0
	bl FieldObjectClearAnimIfSpecialAnimFinished
	lsls r0, 24
	cmp r0, 0
	beq _0813551E
_081354D2:
	ldr r0, =gMapHeader
	ldrb r0, [r0, 0x17]
	cmp r0, 0x5
	bne _08135504
	movs r0, 0x3B
	bl FieldEffectStart
	ldr r0, =gTasks
	lsls r1, r5, 2
	adds r1, r5
	lsls r1, 3
	adds r1, r0
	ldr r0, =sub_8135578
	b _0813551C
	.pool
_08135504:
	bl sub_808C114
	adds r0, r4, 0
	movs r1, 0x39
	bl FieldObjectSetSpecialAnim
	ldr r0, =gTasks
	lsls r1, r6, 2
	adds r1, r6
	lsls r1, 3
	adds r1, r0
	ldr r0, =sub_813552C
_0813551C:
	str r0, [r1]
_0813551E:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end task08_080C9820

	thumb_func_start sub_813552C
sub_813552C: @ 813552C
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r0, =gPlayerAvatar
	ldrb r1, [r0, 0x5]
	lsls r0, r1, 3
	adds r0, r1
	lsls r0, 2
	ldr r1, =gMapObjects
	adds r0, r1
	bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _08135560
	movs r0, 0x3B
	bl FieldEffectStart
	ldr r0, =gTasks
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r0
	ldr r0, =sub_8135578
	str r0, [r1]
_08135560:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813552C

	thumb_func_start sub_8135578
sub_8135578: @ 8135578
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r7, r0, 24
	movs r0, 0x6
	bl FieldEffectActiveListContains
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0
	bne _081355FC
	bl player_get_direction_lower_nybble
	ldr r6, =gFieldEffectArguments
	lsls r0, 24
	lsrs r0, 24
	str r0, [r6, 0x4]
	cmp r0, 0x1
	bne _0813559E
	str r4, [r6, 0x8]
_0813559E:
	ldr r1, [r6, 0x4]
	cmp r1, 0x2
	bne _081355A8
	movs r0, 0x1
	str r0, [r6, 0x8]
_081355A8:
	cmp r1, 0x3
	bne _081355B0
	movs r0, 0x2
	str r0, [r6, 0x8]
_081355B0:
	cmp r1, 0x4
	bne _081355B8
	movs r0, 0x3
	str r0, [r6, 0x8]
_081355B8:
	ldr r5, =gPlayerAvatar
	ldrb r0, [r5, 0x5]
	lsls r4, r0, 3
	adds r4, r0
	lsls r4, 2
	ldr r0, =gMapObjects
	adds r4, r0
	bl GetPlayerAvatarGraphicsIdByCurrentState
	adds r1, r0, 0
	lsls r1, 24
	lsrs r1, 24
	adds r0, r4, 0
	bl FieldObjectSetGraphicsId
	ldrb r1, [r5, 0x4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	ldrb r1, [r6, 0x8]
	bl StartSpriteAnim
	movs r0, 0x6
	bl FieldEffectActiveListRemove
	ldr r1, =gTasks
	lsls r0, r7, 2
	adds r0, r7
	lsls r0, 3
	adds r0, r1
	ldr r1, =sub_813561C
	str r1, [r0]
_081355FC:
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8135578

	thumb_func_start sub_813561C
sub_813561C: @ 813561C
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldrh r1, [r0, 0x18]
	lsls r1, 16
	ldrh r0, [r0, 0x1A]
	orrs r1, r0
	bl _call_via_r1
	ldr r1, =gPlayerAvatar
	movs r0, 0
	strb r0, [r1, 0x6]
	adds r0, r4, 0
	bl DestroyTask
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813561C

	thumb_func_start sub_8135654
sub_8135654: @ 8135654
	push {r4,lr}
	bl ShouldDoBrailleStrengthEffect
	lsls r0, 24
	cmp r0, 0
	beq _0813568C
	ldr r4, =gSpecialVar_Result
	bl GetCursorSelectionMonId
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r4]
	ldr r1, =gUnknown_03005DB0
	ldr r0, =FieldCallback_Teleport
	str r0, [r1]
	ldr r1, =gUnknown_0203CEEC
	ldr r0, =sub_8179834
	b _081356A8
	.pool
_0813568C:
	movs r0, 0x56
	bl npc_before_player_of_type
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _0813569E
	movs r0, 0
	b _081356AC
_0813569E:
	ldr r1, =gUnknown_03005DB0
	ldr r0, =FieldCallback_Teleport
	str r0, [r1]
	ldr r1, =gUnknown_0203CEEC
	ldr r0, =sub_81356C4
_081356A8:
	str r0, [r1]
	movs r0, 0x1
_081356AC:
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8135654

	thumb_func_start sub_81356C4
sub_81356C4: @ 81356C4
	push {lr}
	bl GetCursorSelectionMonId
	ldr r1, =gFieldEffectArguments
	lsls r0, 24
	lsrs r0, 24
	str r0, [r1]
	ldr r0, =Route111_EventScript_2907F0
	bl ScriptContext1_SetupScript
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81356C4

	thumb_func_start oei_rocksmash
oei_rocksmash: @ 81356E4
	push {lr}
	bl oei_task_add
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r1, r2
	ldr r2, =sub_8135714
	lsrs r0, r2, 16
	strh r0, [r1, 0x18]
	strh r2, [r1, 0x1A]
	movs r0, 0x13
	bl IncrementGameStat
	movs r0, 0
	pop {r1}
	bx r1
	.pool
	thumb_func_end oei_rocksmash

	thumb_func_start sub_8135714
sub_8135714: @ 8135714
	push {lr}
	movs r0, 0x83
	bl PlaySE
	movs r0, 0x25
	bl FieldEffectActiveListRemove
	bl EnableBothScriptContexts
	pop {r0}
	bx r0
	thumb_func_end sub_8135714

	thumb_func_start sub_813572C
sub_813572C: @ 813572C
	push {lr}
	bl sub_80FE314
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _0813573E
	movs r0, 0
	b _0813574C
_0813573E:
	ldr r1, =gUnknown_03005DB0
	ldr r0, =FieldCallback_Teleport
	str r0, [r1]
	ldr r1, =gUnknown_0203CEEC
	ldr r0, =hm2_dig
	str r0, [r1]
	movs r0, 0x1
_0813574C:
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_813572C

	thumb_func_start hm2_dig
hm2_dig: @ 8135760
	push {lr}
	bl flagmods_08054D70
	movs r0, 0x26
	bl FieldEffectStart
	bl GetCursorSelectionMonId
	ldr r1, =gFieldEffectArguments
	lsls r0, 24
	lsrs r0, 24
	str r0, [r1]
	pop {r0}
	bx r0
	.pool
	thumb_func_end hm2_dig

	thumb_func_start sub_8135780
sub_8135780: @ 8135780
	push {lr}
	bl oei_task_add
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r1, r2
	ldr r2, =sub_81357BC
	lsrs r0, r2, 16
	strh r0, [r1, 0x18]
	strh r2, [r1, 0x1A]
	bl ShouldDoBrailleDigEffect
	lsls r0, 24
	cmp r0, 0
	bne _081357AC
	movs r0, 0x1
	bl SetPlayerAvatarTransitionFlags
_081357AC:
	movs r0, 0
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8135780

	thumb_func_start sub_81357BC
sub_81357BC: @ 81357BC
	push {r4,lr}
	movs r0, 0x26
	bl FieldEffectActiveListRemove
	bl ShouldDoBrailleDigEffect
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0
	beq _081357D6
	bl DoBrailleDigEffect
	b _081357EE
_081357D6:
	ldr r0, =task08_080A1C44
	movs r1, 0x8
	bl CreateTask
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r1, r2
	strh r4, [r1, 0x8]
_081357EE:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81357BC

	.align 2, 0 @ Don't pad with nop.