.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_80F9BCC sub_80F9BCC: @ 80F9BCC push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 adds r3, r2, 0 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 lsls r3, 24 lsrs r3, 24 ldr r0, =sub_80F9C90 adds r1, r4, 0 adds r2, r5, 0 bl sub_80F9C44 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80F9BCC thumb_func_start sub_80F9BF4 sub_80F9BF4: @ 80F9BF4 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 adds r3, r2, 0 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 lsls r3, 24 lsrs r3, 24 ldr r0, =sub_80F9DFC adds r1, r4, 0 adds r2, r5, 0 bl sub_80F9C44 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80F9BF4 thumb_func_start sub_80F9C1C sub_80F9C1C: @ 80F9C1C push {lr} ldr r0, =sub_80F9C90 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .pool thumb_func_end sub_80F9C1C thumb_func_start sub_80F9C30 sub_80F9C30: @ 80F9C30 push {lr} ldr r0, =sub_80F9DFC bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .pool thumb_func_end sub_80F9C30 thumb_func_start sub_80F9C44 sub_80F9C44: @ 80F9C44 push {r4,r5,lr} lsls r1, 16 lsrs r4, r1, 16 adds r5, r4, 0 lsls r3, 24 lsrs r3, 24 adds r1, r3, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 adds r2, r0, 0 ldr r1, =gTasks lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0, r1 movs r0, 0 strh r0, [r1, 0x8] movs r0, 0x10 cmp r4, 0 beq _080F9C72 adds r0, r4, 0 _080F9C72: strh r0, [r1, 0xA] movs r0, 0x14 cmp r5, 0 beq _080F9C7C adds r0, r5, 0 _080F9C7C: strh r0, [r1, 0xC] ldr r1, [r1] adds r0, r2, 0 bl _call_via_r1 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80F9C44 thumb_func_start sub_80F9C90 sub_80F9C90: @ 80F9C90 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, =gTasks adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080F9D10 cmp r0, 0x1 bgt _080F9CB8 cmp r0, 0 beq _080F9CC2 b _080F9DDE .pool _080F9CB8: cmp r0, 0x2 beq _080F9D32 cmp r0, 0x3 beq _080F9D94 b _080F9DDE _080F9CC2: movs r0, 0x78 strh r0, [r4, 0xE] strh r0, [r4, 0x10] movs r0, 0x50 strh r0, [r4, 0x12] movs r0, 0x51 strh r0, [r4, 0x14] movs r1, 0x80 lsls r1, 6 movs r0, 0 bl SetGpuRegBits ldrh r1, [r4, 0xE] lsls r1, 8 ldrh r0, [r4, 0x10] orrs r1, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0x40 bl SetGpuReg ldrh r1, [r4, 0x12] lsls r1, 8 ldrh r0, [r4, 0x14] orrs r1, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0x44 bl SetGpuReg movs r0, 0x48 movs r1, 0x3F bl SetGpuReg movs r0, 0x4A movs r1, 0 bl SetGpuReg b _080F9DEE _080F9D10: movs r0, 0x50 bl GetGpuReg strh r0, [r4, 0x16] movs r0, 0x54 bl GetGpuReg strh r0, [r4, 0x18] movs r0, 0x50 movs r1, 0xBF bl SetGpuReg movs r0, 0x54 movs r1, 0x10 bl SetGpuReg b _080F9DEE _080F9D32: ldrh r0, [r4, 0xE] ldrh r1, [r4, 0xA] subs r0, r1 movs r5, 0 strh r0, [r4, 0xE] ldrh r2, [r4, 0x10] adds r1, r2 strh r1, [r4, 0x10] lsls r0, 16 cmp r0, 0 ble _080F9D50 lsls r0, r1, 16 asrs r0, 16 cmp r0, 0xEF ble _080F9D76 _080F9D50: strh r5, [r4, 0xE] movs r0, 0xF0 strh r0, [r4, 0x10] movs r0, 0x54 movs r1, 0 bl SetGpuReg ldrh r1, [r4, 0x16] movs r0, 0x50 bl SetGpuReg movs r0, 0x1 negs r0, r0 movs r1, 0 movs r2, 0 bl BlendPalettes ldr r0, =gPlttBufferFaded strh r5, [r0] _080F9D76: ldrh r1, [r4, 0xE] lsls r1, 8 ldrh r0, [r4, 0x10] orrs r1, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0x40 bl SetGpuReg movs r1, 0xE ldrsh r0, [r4, r1] b _080F9DD8 .pool _080F9D94: ldrh r0, [r4, 0x12] ldrh r1, [r4, 0xC] subs r0, r1 strh r0, [r4, 0x12] ldrh r2, [r4, 0x14] adds r1, r2 strh r1, [r4, 0x14] lsls r0, 16 cmp r0, 0 ble _080F9DB0 lsls r0, r1, 16 asrs r0, 16 cmp r0, 0x9F ble _080F9DC2 _080F9DB0: movs r0, 0 strh r0, [r4, 0x12] movs r0, 0xA0 strh r0, [r4, 0x14] movs r1, 0x80 lsls r1, 6 movs r0, 0 bl ClearGpuRegBits _080F9DC2: ldrh r1, [r4, 0x12] lsls r1, 8 ldrh r0, [r4, 0x14] orrs r1, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0x44 bl SetGpuReg movs r1, 0x12 ldrsh r0, [r4, r1] _080F9DD8: cmp r0, 0 bne _080F9DF4 b _080F9DEE _080F9DDE: ldrh r1, [r4, 0x16] movs r0, 0x50 bl SetGpuReg adds r0, r5, 0 bl DestroyTask b _080F9DF4 _080F9DEE: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080F9DF4: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80F9C90 thumb_func_start sub_80F9DFC sub_80F9DFC: @ 80F9DFC push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, =gTasks adds r4, r0, r1 movs r0, 0x8 ldrsh r1, [r4, r0] cmp r1, 0x1 beq _080F9E38 cmp r1, 0x1 bgt _080F9E24 cmp r1, 0 beq _080F9E2E b _080F9F2C .pool _080F9E24: cmp r1, 0x2 beq _080F9E86 cmp r1, 0x3 beq _080F9ED8 b _080F9F2C _080F9E2E: ldr r0, =gPlttBufferFaded strh r1, [r0] b _080F9F4E .pool _080F9E38: movs r1, 0 strh r1, [r4, 0xE] movs r0, 0xF0 strh r0, [r4, 0x10] strh r1, [r4, 0x12] movs r0, 0xA0 strh r0, [r4, 0x14] movs r1, 0x80 lsls r1, 6 movs r0, 0 bl SetGpuRegBits ldrh r1, [r4, 0xE] lsls r1, 8 ldrh r0, [r4, 0x10] orrs r1, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0x40 bl SetGpuReg ldrh r1, [r4, 0x12] lsls r1, 8 ldrh r0, [r4, 0x14] orrs r1, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0x44 bl SetGpuReg movs r0, 0x48 movs r1, 0x3F bl SetGpuReg movs r0, 0x4A movs r1, 0 bl SetGpuReg b _080F9F4E _080F9E86: ldrh r0, [r4, 0xC] ldrh r2, [r4, 0x12] adds r1, r0, r2 strh r1, [r4, 0x12] ldrh r2, [r4, 0x14] subs r0, r2, r0 strh r0, [r4, 0x14] lsls r1, 16 asrs r1, 16 cmp r1, 0x4F bgt _080F9EA4 lsls r0, 16 asrs r0, 16 cmp r0, 0x51 bgt _080F9EBC _080F9EA4: movs r0, 0x50 strh r0, [r4, 0x12] movs r0, 0x51 strh r0, [r4, 0x14] movs r0, 0x50 movs r1, 0xBF bl SetGpuReg movs r0, 0x54 movs r1, 0x10 bl SetGpuReg _080F9EBC: ldrh r1, [r4, 0x12] lsls r1, 8 ldrh r0, [r4, 0x14] orrs r1, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0x44 bl SetGpuReg movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0x50 bne _080F9F54 b _080F9F4E _080F9ED8: ldrh r0, [r4, 0xA] ldrh r2, [r4, 0xE] adds r1, r0, r2 strh r1, [r4, 0xE] ldrh r2, [r4, 0x10] subs r0, r2, r0 strh r0, [r4, 0x10] lsls r1, 16 asrs r1, 16 cmp r1, 0x77 bgt _080F9EF6 lsls r0, 16 asrs r0, 16 cmp r0, 0x78 bgt _080F9F0C _080F9EF6: movs r0, 0x78 strh r0, [r4, 0xE] strh r0, [r4, 0x10] subs r0, 0x79 movs r1, 0x10 movs r2, 0 bl BlendPalettes ldr r1, =gPlttBufferFaded movs r0, 0 strh r0, [r1] _080F9F0C: ldrh r1, [r4, 0xE] lsls r1, 8 ldrh r0, [r4, 0x10] orrs r1, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0x40 bl SetGpuReg movs r1, 0xE ldrsh r0, [r4, r1] cmp r0, 0x78 bne _080F9F54 b _080F9F4E .pool _080F9F2C: movs r1, 0x80 lsls r1, 6 movs r0, 0 bl ClearGpuRegBits movs r0, 0x54 movs r1, 0 bl SetGpuReg movs r0, 0x50 movs r1, 0 bl SetGpuReg adds r0, r5, 0 bl DestroyTask b _080F9F54 _080F9F4E: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080F9F54: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80F9DFC thumb_func_start sub_80F9F5C sub_80F9F5C: @ 80F9F5C push {lr} ldr r0, =gUnknown_0203AB40 ldr r1, =gUnknown_02037318 ldr r1, [r1, 0x4] bl sub_80E9608 bl sub_80E8B6C pop {r0} bx r0 .pool thumb_func_end sub_80F9F5C thumb_func_start sub_80F9F78 sub_80F9F78: @ 80F9F78 push {lr} ldr r0, =gUnknown_02037590 ldrb r1, [r0] movs r0, 0x6 ands r0, r1 cmp r0, 0 beq _080F9FC0 ldr r1, =gUnknown_02038C08 ldr r0, [r1, 0x4] cmp r0, 0x2 beq _080F9FAE cmp r0, 0x2 bgt _080F9FA0 cmp r0, 0x1 beq _080F9FA6 b _080F9FFE .pool _080F9FA0: cmp r0, 0x3 beq _080F9FB6 b _080F9FDC _080F9FA6: movs r0, 0x10 str r0, [r1, 0x14] movs r0, 0x28 b _080F9FFC _080F9FAE: movs r0, 0x10 str r0, [r1, 0x14] movs r0, 0x8 b _080F9FFC _080F9FB6: movs r0, 0x8 negs r0, r0 str r0, [r1, 0x14] movs r0, 0x18 b _080F9FFC _080F9FC0: ldr r1, =gUnknown_02038C08 ldr r0, [r1, 0x4] cmp r0, 0x2 beq _080F9FEA cmp r0, 0x2 bgt _080F9FD8 cmp r0, 0x1 beq _080F9FE2 b _080F9FFE .pool _080F9FD8: cmp r0, 0x3 beq _080F9FEE _080F9FDC: cmp r0, 0x4 beq _080F9FF8 b _080F9FFE _080F9FE2: movs r0, 0x8 str r0, [r1, 0x14] movs r0, 0x28 b _080F9FFC _080F9FEA: movs r0, 0x8 b _080F9FFA _080F9FEE: movs r0, 0x8 negs r0, r0 str r0, [r1, 0x14] movs r0, 0x18 b _080F9FFC _080F9FF8: movs r0, 0x18 _080F9FFA: str r0, [r1, 0x14] _080F9FFC: str r0, [r1, 0x18] _080F9FFE: pop {r0} bx r0 thumb_func_end sub_80F9F78 thumb_func_start sub_80FA004 sub_80FA004: @ 80FA004 push {r4,lr} bl sub_80E8BC8 ldr r0, =gUnknown_020375F0 ldrh r0, [r0] cmp r0, 0x1 beq _080FA0AE bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _080FA0AE ldr r4, =gUnknown_0203AB40 adds r1, r4, 0x2 adds r0, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_808923C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080FA070 bl sub_80F9F5C ldr r1, =gUnknown_03005DB0 ldr r0, =hm_add_c3_launch_phase_2 str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =sub_80FA0DC b _080FA0C0 .pool _080FA070: adds r0, r4, 0 bl sub_808925C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080FA0A0 bl sub_80F9F5C ldr r1, =gUnknown_03005DB0 ldr r0, =hm_add_c3_launch_phase_2 str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =sub_80FA1E8 b _080FA0C0 .pool _080FA0A0: adds r0, r4, 0 bl is_tile_x98 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080FA0B2 _080FA0AE: movs r0, 0 b _080FA0C4 _080FA0B2: bl sub_80F9F5C ldr r1, =gUnknown_03005DB0 ldr r0, =hm_add_c3_launch_phase_2 str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =sub_80FA34C _080FA0C0: str r0, [r1] movs r0, 0x1 _080FA0C4: pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_80FA004 thumb_func_start sub_80FA0DC sub_80FA0DC: @ 80FA0DC push {lr} bl brm_get_pokemon_selection ldr r1, =gUnknown_02038C08 lsls r0, 24 lsrs r0, 24 str r0, [r1] ldr r0, =gUnknown_08275A86 bl script_env_1_execute_new_script pop {r0} bx r0 .pool thumb_func_end sub_80FA0DC thumb_func_start oei_sweet_scent oei_sweet_scent: @ 80FA0FC 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_80FA128 lsrs r0, r2, 16 strh r0, [r1, 0x18] strh r2, [r1, 0x1A] movs r0, 0 pop {r1} bx r1 .pool thumb_func_end oei_sweet_scent thumb_func_start sub_80FA128 sub_80FA128: @ 80FA128 push {lr} movs r0, 0xB bl FieldEffectActiveListRemove movs r0, 0x37 bl FieldEffectStart pop {r0} bx r0 thumb_func_end sub_80FA128 thumb_func_start sub_80FA13C sub_80FA13C: @ 80FA13C push {r4,lr} bl sub_80F9F78 ldr r0, =gUnknown_0858E600 ldr r3, =gUnknown_02020630 ldr r1, =gUnknown_02037590 ldrb r1, [r1, 0x4] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r3 ldrh r1, [r2, 0x2] lsls r1, 23 lsrs r1, 23 ldr r4, =gUnknown_02038C08 ldr r3, [r4, 0x14] adds r1, r3 lsls r1, 16 asrs r1, 16 ldrb r2, [r2] ldr r3, [r4, 0x18] adds r2, r3 lsls r2, 16 asrs r2, 16 movs r3, 0x94 bl AddObjectToFront movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_80FA13C thumb_func_start sub_80FA18C sub_80FA18C: @ 80FA18C push {r4,lr} adds r4, r0, 0 movs r0, 0x83 bl audio_play movs r0, 0 strh r0, [r4, 0x2E] ldr r0, =sub_80FA1A8 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80FA18C thumb_func_start sub_80FA1A8 sub_80FA1A8: @ 80FA1A8 push {lr} adds r1, r0, 0 ldrh r2, [r1, 0x2E] movs r3, 0x2E ldrsh r0, [r1, r3] cmp r0, 0x27 bgt _080FA1C8 adds r0, r2, 0x1 strh r0, [r1, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 bne _080FA1D0 bl sub_80E8D4C b _080FA1D0 _080FA1C8: movs r0, 0 strh r0, [r1, 0x2E] ldr r0, =sub_80FA1D8 str r0, [r1, 0x1C] _080FA1D0: pop {r0} bx r0 .pool thumb_func_end sub_80FA1A8 thumb_func_start sub_80FA1D8 sub_80FA1D8: @ 80FA1D8 push {lr} movs r1, 0x37 bl FieldEffectStop bl script_env_2_enable_and_set_ctx_running pop {r0} bx r0 thumb_func_end sub_80FA1D8 thumb_func_start sub_80FA1E8 sub_80FA1E8: @ 80FA1E8 push {lr} bl brm_get_pokemon_selection ldr r1, =gUnknown_02038C08 lsls r0, 24 lsrs r0, 24 str r0, [r1] ldr r0, =gUnknown_08275ADF bl script_env_1_execute_new_script pop {r0} bx r0 .pool thumb_func_end sub_80FA1E8 thumb_func_start sub_80FA208 sub_80FA208: @ 80FA208 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_80FA234 lsrs r0, r2, 16 strh r0, [r1, 0x18] strh r2, [r1, 0x1A] movs r0, 0 pop {r1} bx r1 .pool thumb_func_end sub_80FA208 thumb_func_start sub_80FA234 sub_80FA234: @ 80FA234 push {lr} movs r0, 0x1A bl FieldEffectActiveListRemove movs r0, 0x38 bl FieldEffectStart pop {r0} bx r0 thumb_func_end sub_80FA234 thumb_func_start sub_80FA248 sub_80FA248: @ 80FA248 push {r4,lr} ldr r1, =gUnknown_0203AB40 movs r2, 0 ldrsh r0, [r1, r2] movs r2, 0x2 ldrsh r1, [r1, r2] bl MapGridGetMetatileBehaviorAt adds r2, r0, 0 ldr r1, =0x00000fff adds r0, r1, 0 ands r2, r0 cmp r2, 0x96 bne _080FA26A ldr r1, =gUnknown_02038C08 movs r0, 0 str r0, [r1, 0x1C] _080FA26A: cmp r2, 0x9C bne _080FA274 ldr r1, =gUnknown_02038C08 movs r0, 0x2 str r0, [r1, 0x1C] _080FA274: bl sub_80F9F78 ldr r0, =gUnknown_0858E618 ldr r3, =gUnknown_02020630 ldr r1, =gUnknown_02037590 ldrb r1, [r1, 0x4] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r3 ldrh r1, [r2, 0x2] lsls r1, 23 lsrs r1, 23 ldr r4, =gUnknown_02038C08 ldr r3, [r4, 0x14] adds r1, r3 lsls r1, 16 asrs r1, 16 ldrb r2, [r2] ldr r3, [r4, 0x18] adds r2, r3 lsls r2, 16 asrs r2, 16 movs r3, 0x94 bl AddObjectToFront ldr r0, [r4, 0x1C] cmp r0, 0x1 beq _080FA2B2 cmp r0, 0x3 bne _080FA2B6 _080FA2B2: bl sub_80E8D4C _080FA2B6: movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_80FA248 thumb_func_start sub_80FA2D8 sub_80FA2D8: @ 80FA2D8 push {r4,lr} adds r4, r0, 0 movs r0, 0x9B bl audio_play ldr r0, =gUnknown_02038C08 ldr r1, [r0, 0x1C] adds r2, r4, 0 adds r2, 0x2A movs r0, 0 strb r1, [r2] strh r0, [r4, 0x2E] ldr r0, =sub_80FA304 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80FA2D8 thumb_func_start sub_80FA304 sub_80FA304: @ 80FA304 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x27 ble _080FA32E ldr r0, =gUnknown_02038C08 ldr r0, [r0, 0x1C] cmp r0, 0 beq _080FA322 cmp r0, 0x2 bne _080FA326 _080FA322: bl sub_80E8D4C _080FA326: movs r0, 0 strh r0, [r4, 0x2E] ldr r0, =sub_80FA33C str r0, [r4, 0x1C] _080FA32E: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80FA304 thumb_func_start sub_80FA33C sub_80FA33C: @ 80FA33C push {lr} movs r1, 0x38 bl FieldEffectStop bl script_env_2_enable_and_set_ctx_running pop {r0} bx r0 thumb_func_end sub_80FA33C thumb_func_start sub_80FA34C sub_80FA34C: @ 80FA34C push {lr} bl brm_get_pokemon_selection ldr r1, =gUnknown_02038C08 lsls r0, 24 lsrs r0, 24 str r0, [r1] ldr r0, =gUnknown_08275B38 bl script_env_1_execute_new_script pop {r0} bx r0 .pool thumb_func_end sub_80FA34C thumb_func_start sub_80FA36C sub_80FA36C: @ 80FA36C 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_80FA398 lsrs r0, r2, 16 strh r0, [r1, 0x18] strh r2, [r1, 0x1A] movs r0, 0 pop {r1} bx r1 .pool thumb_func_end sub_80FA36C thumb_func_start sub_80FA398 sub_80FA398: @ 80FA398 push {lr} movs r0, 0x1B bl FieldEffectActiveListRemove movs r0, 0x39 bl FieldEffectStart pop {r0} bx r0 thumb_func_end sub_80FA398 thumb_func_start sub_80FA3AC sub_80FA3AC: @ 80FA3AC push {r4,lr} bl sub_80F9F78 ldr r0, =gUnknown_0858E630 ldr r3, =gUnknown_02020630 ldr r1, =gUnknown_02037590 ldrb r1, [r1, 0x4] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r3 ldrh r1, [r2, 0x2] lsls r1, 23 lsrs r1, 23 ldr r4, =gUnknown_02038C08 ldr r3, [r4, 0x14] adds r1, r3 lsls r1, 16 asrs r1, 16 ldrb r2, [r2] ldr r3, [r4, 0x18] adds r2, r3 lsls r2, 16 asrs r2, 16 movs r3, 0x94 bl AddObjectToFront movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_80FA3AC thumb_func_start sub_80FA3FC sub_80FA3FC: @ 80FA3FC push {r4,lr} adds r4, r0, 0 movs r0, 0xA9 bl audio_play movs r0, 0 strh r0, [r4, 0x2E] ldr r0, =sub_80FA418 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80FA3FC thumb_func_start sub_80FA418 sub_80FA418: @ 80FA418 push {lr} adds r1, r0, 0 ldrh r2, [r1, 0x2E] movs r3, 0x2E ldrsh r0, [r1, r3] cmp r0, 0x27 bgt _080FA438 adds r0, r2, 0x1 strh r0, [r1, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 bne _080FA440 bl sub_80E8D4C b _080FA440 _080FA438: movs r0, 0 strh r0, [r1, 0x2E] ldr r0, =sub_80FA448 str r0, [r1, 0x1C] _080FA440: pop {r0} bx r0 .pool thumb_func_end sub_80FA418 thumb_func_start sub_80FA448 sub_80FA448: @ 80FA448 push {lr} movs r1, 0x39 bl FieldEffectStop bl script_env_2_enable_and_set_ctx_running pop {r0} bx r0 thumb_func_end sub_80FA448 thumb_func_start sub_80FA458 sub_80FA458: @ 80FA458 push {r4,lr} sub sp, 0x4 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer ldr r0, =sub_80FA4A0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 mov r0, sp ldrh r0, [r0] movs r2, 0 strh r0, [r1, 0x8] ldrh r0, [r4] strh r0, [r1, 0xA] strh r2, [r1, 0xC] movs r0, 0 add sp, 0x4 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_80FA458 thumb_func_start sub_80FA4A0 sub_80FA4A0: @ 80FA4A0 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r4, r0, r1 ldrh r0, [r4, 0x4] subs r0, 0x4 lsls r0, 16 asrs r0, 16 cmp r0, 0x10 bhi _080FA56E lsls r0, 2 ldr r1, =_080FA4D0 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080FA4D0: .4byte _080FA514 .4byte _080FA56E .4byte _080FA56E .4byte _080FA56E .4byte _080FA522 .4byte _080FA56E .4byte _080FA56E .4byte _080FA56E .4byte _080FA514 .4byte _080FA56E .4byte _080FA56E .4byte _080FA56E .4byte _080FA522 .4byte _080FA56E .4byte _080FA56E .4byte _080FA56E .4byte _080FA540 _080FA514: movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] movs r2, 0x89 lsls r2, 2 b _080FA52E _080FA522: movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] movs r2, 0x88 lsls r2, 2 _080FA52E: bl MapGridSetMetatileIdAt movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl CurrentMapDrawMetatileAt b _080FA56E _080FA540: movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] movs r2, 0x89 lsls r2, 2 bl MapGridSetMetatileIdAt movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl CurrentMapDrawMetatileAt movs r0, 0x3D bl FieldEffectActiveListRemove bl script_env_2_enable_and_set_ctx_running adds r0, r5, 0 bl DestroyTask b _080FA574 _080FA56E: ldrh r0, [r4, 0x4] adds r0, 0x1 strh r0, [r4, 0x4] _080FA574: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80FA4A0 thumb_func_start sub_80FA57C sub_80FA57C: @ 80FA57C push {r4,lr} sub sp, 0x4 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer movs r0, 0x3 bl audio_play ldr r0, =0x00004054 bl VarGet lsls r0, 16 cmp r0, 0 bne _080FA5B8 mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] movs r2, 0xE2 lsls r2, 4 bl MapGridSetMetatileIdAt b _080FA5C8 .pool _080FA5B8: mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] ldr r2, =0x00000e21 bl MapGridSetMetatileIdAt _080FA5C8: mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl CurrentMapDrawMetatileAt add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80FA57C thumb_func_start sub_80FA5E4 sub_80FA5E4: @ 80FA5E4 push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 lsls r6, 16 lsrs r6, 16 ldr r0, =sub_80FA62C movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0 strh r4, [r1, 0x8] strh r5, [r1, 0xA] strh r6, [r1, 0xC] strh r0, [r1, 0xE] movs r0, 0x1 strh r0, [r1, 0x10] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80FA5E4 thumb_func_start sub_80FA62C sub_80FA62C: @ 80FA62C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r4, r0, r1 ldrh r1, [r4, 0x6] movs r2, 0x6 ldrsh r0, [r4, r2] cmp r0, 0x6 bne _080FA650 movs r0, 0 b _080FA652 .pool _080FA650: adds r0, r1, 0x1 _080FA652: strh r0, [r4, 0x6] movs r3, 0x6 ldrsh r0, [r4, r3] cmp r0, 0 bne _080FA6A4 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x2 bne _080FA66C movs r2, 0 ldrsh r0, [r4, r2] bl sub_80FA6AC _080FA66C: movs r3, 0x2 ldrsh r0, [r4, r3] movs r2, 0x4 ldrsh r1, [r4, r2] ldrh r2, [r4, 0x8] ldrh r3, [r4] adds r2, r3 lsls r2, 16 lsrs r2, 16 bl MapGridSetMetatileIdAt movs r1, 0x2 ldrsh r0, [r4, r1] movs r2, 0x4 ldrsh r1, [r4, r2] bl CurrentMapDrawMetatileAt ldrh r1, [r4, 0x8] movs r3, 0x8 ldrsh r0, [r4, r3] cmp r0, 0x3 bne _080FA6A0 adds r0, r5, 0 bl DestroyTask b _080FA6A4 _080FA6A0: adds r0, r1, 0x1 strh r0, [r4, 0x8] _080FA6A4: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80FA62C thumb_func_start sub_80FA6AC sub_80FA6AC: @ 80FA6AC push {lr} lsls r0, 16 asrs r1, r0, 16 movs r0, 0xCE lsls r0, 2 cmp r1, r0 beq _080FA6D8 cmp r1, r0 bgt _080FA6C8 movs r0, 0x8A lsls r0, 2 cmp r1, r0 beq _080FA6F0 b _080FA6F6 _080FA6C8: movs r0, 0xCF lsls r0, 2 cmp r1, r0 beq _080FA6E0 adds r0, 0x4 cmp r1, r0 beq _080FA6E8 b _080FA6F6 _080FA6D8: movs r0, 0x4A bl audio_play b _080FA6F6 _080FA6E0: movs r0, 0x4B bl audio_play b _080FA6F6 _080FA6E8: movs r0, 0x4C bl audio_play b _080FA6F6 _080FA6F0: movs r0, 0x4E bl audio_play _080FA6F6: pop {r0} bx r0 thumb_func_end sub_80FA6AC thumb_func_start sub_80FA6FC sub_80FA6FC: @ 80FA6FC movs r0, 0 bx lr thumb_func_end sub_80FA6FC thumb_func_start sub_80FA700 sub_80FA700: @ 80FA700 movs r0, 0 bx lr thumb_func_end sub_80FA700 thumb_func_start sub_80FA704 sub_80FA704: @ 80FA704 push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 lsls r5, 16 lsrs r5, 16 lsls r4, 16 lsrs r4, 16 movs r0, 0x4D bl audio_play lsls r5, 16 asrs r5, 16 lsls r4, 16 asrs r4, 16 ldr r2, =0x00000276 adds r0, r5, 0 adds r1, r4, 0 bl MapGridSetMetatileIdAt subs r6, r4, 0x1 ldr r2, =0x0000026e adds r0, r5, 0 adds r1, r6, 0 bl MapGridSetMetatileIdAt adds r0, r5, 0 adds r1, r4, 0 bl CurrentMapDrawMetatileAt adds r0, r5, 0 adds r1, r6, 0 bl CurrentMapDrawMetatileAt pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80FA704 thumb_func_start sub_80FA754 sub_80FA754: @ 80FA754 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r1, r0, r1 ldrh r2, [r1, 0x8] movs r3, 0x8 ldrsh r0, [r1, r3] cmp r0, 0x7 bne _080FA788 movs r2, 0xA ldrsh r0, [r1, r2] movs r3, 0xC ldrsh r1, [r1, r3] bl sub_80FA704 adds r0, r4, 0 bl DestroyTask b _080FA78C .pool _080FA788: adds r0, r2, 0x1 strh r0, [r1, 0x8] _080FA78C: pop {r4} pop {r0} bx r0 thumb_func_end sub_80FA754 thumb_func_start sub_80FA794 sub_80FA794: @ 80FA794 push {r4-r7,lr} lsls r0, 16 lsrs r5, r0, 16 adds r7, r5, 0 lsls r1, 16 lsrs r4, r1, 16 adds r6, r4, 0 bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080FA7BC lsls r0, r5, 16 asrs r0, 16 lsls r1, r4, 16 asrs r1, 16 bl sub_80FA704 b _080FA7DE _080FA7BC: cmp r0, 0x2 bne _080FA7DE ldr r0, =sub_80FA754 movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0 strh r0, [r1, 0x8] strh r7, [r1, 0xA] strh r6, [r1, 0xC] _080FA7DE: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80FA794 thumb_func_start sub_80FA7EC sub_80FA7EC: @ 80FA7EC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r1, r0, r1 ldrh r2, [r1, 0xA] movs r3, 0xA ldrsh r0, [r1, r3] cmp r0, 0x7 beq _080FA808 b _080FA966 _080FA808: ldr r2, =0xfffffd88 adds r0, r2, 0 ldrh r1, [r1, 0x8] adds r0, r1 lsls r0, 16 asrs r0, 16 cmp r0, 0x3B bls _080FA81A b _080FA95E _080FA81A: lsls r0, 2 ldr r1, =_080FA830 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080FA830: .4byte _080FA920 .4byte _080FA928 .4byte _080FA930 .4byte _080FA938 .4byte _080FA940 .4byte _080FA948 .4byte _080FA950 .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA95E .4byte _080FA958 _080FA920: movs r0, 0x3E bl audio_play b _080FA95E _080FA928: movs r0, 0x3F bl audio_play b _080FA95E _080FA930: movs r0, 0x40 bl audio_play b _080FA95E _080FA938: movs r0, 0x41 bl audio_play b _080FA95E _080FA940: movs r0, 0x42 bl audio_play b _080FA95E _080FA948: movs r0, 0x43 bl audio_play b _080FA95E _080FA950: movs r0, 0x44 bl audio_play b _080FA95E _080FA958: movs r0, 0x45 bl audio_play _080FA95E: adds r0, r4, 0 bl DestroyTask b _080FA96A _080FA966: adds r0, r2, 0x1 strh r0, [r1, 0xA] _080FA96A: pop {r4} pop {r0} bx r0 thumb_func_end sub_80FA7EC thumb_func_start sub_80FA970 sub_80FA970: @ 80FA970 push {r4,lr} adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r0, =sub_80FA7EC movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0 strh r4, [r1, 0x8] strh r0, [r1, 0xA] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80FA970 thumb_func_start sub_80FA9A4 sub_80FA9A4: @ 80FA9A4 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 bne _080FA9BC movs r0, 0xC3 bl audio_play _080FA9BC: movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x1F ble _080FA9CA adds r0, r4, 0 bl RemoveObjectAndFreeTiles _080FA9CA: pop {r4} pop {r0} bx r0 thumb_func_end sub_80FA9A4 thumb_func_start sub_80FA9D0 sub_80FA9D0: @ 80FA9D0 push {r4,lr} sub sp, 0x4 ldr r3, =gUnknown_02037350 ldr r2, =gUnknown_02037590 ldrb r1, [r2, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r0, 0x10] mov r0, sp strh r1, [r0] ldrb r1, [r2, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0, 0x12] mov r4, sp adds r4, 0x2 strh r0, [r4] mov r0, sp adds r1, r4, 0 movs r2, 0x8 movs r3, 0x4 bl sub_80930E0 ldr r0, =gFieldEffectObjectTemplatePointers ldr r0, [r0, 0x58] mov r1, sp movs r2, 0 ldrsh r1, [r1, r2] movs r3, 0 ldrsh r2, [r4, r3] movs r3, 0 bl AddObjectToBack lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _080FAA5E ldr r3, =gUnknown_02020630 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r4, r2, r3 movs r0, 0x3E adds r0, r4 mov r12, r0 ldrb r0, [r0] movs r1, 0x2 orrs r0, r1 mov r1, r12 strb r0, [r1] ldrb r1, [r4, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x4 orrs r0, r1 movs r1, 0xF ands r0, r1 movs r1, 0x50 orrs r0, r1 strb r0, [r4, 0x5] adds r3, 0x1C adds r2, r3 ldr r0, =sub_80FA9A4 str r0, [r2] movs r0, 0 strh r0, [r4, 0x2E] _080FAA5E: add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80FA9D0 thumb_func_start sub_80FAA7C sub_80FAA7C: @ 80FAA7C push {r4,lr} sub sp, 0x4 bl script_env_2_enable mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer ldr r1, =gUnknown_02038C08 mov r0, sp movs r2, 0 ldrsh r0, [r0, r2] str r0, [r1, 0x14] movs r3, 0 ldrsh r0, [r4, r3] str r0, [r1, 0x18] bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 beq _080FAAFC cmp r0, 0x2 bgt _080FAABC cmp r0, 0x1 beq _080FAAC6 b _080FAB8C .pool _080FAABC: cmp r0, 0x3 beq _080FAB2C cmp r0, 0x4 beq _080FAB64 b _080FAB8C _080FAAC6: ldr r0, =gUnknown_0858E68C ldr r3, =gUnknown_02020630 ldr r1, =gUnknown_02037590 ldrb r1, [r1, 0x4] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r3 ldrh r1, [r2, 0x2] lsls r1, 23 lsrs r1, 7 movs r3, 0x80 lsls r3, 12 adds r1, r3 asrs r1, 16 ldrb r2, [r2] adds r2, 0x20 movs r3, 0 bl AddObjectToFront b _080FAB8C .pool _080FAAFC: ldr r0, =gUnknown_0858E68C ldr r3, =gUnknown_02020630 ldr r1, =gUnknown_02037590 ldrb r1, [r1, 0x4] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r3 ldrh r1, [r2, 0x2] lsls r1, 23 lsrs r1, 7 movs r3, 0x80 lsls r3, 12 adds r1, r3 asrs r1, 16 ldrb r2, [r2] b _080FAB4C .pool _080FAB2C: ldr r0, =gUnknown_0858E68C ldr r3, =gUnknown_02020630 ldr r1, =gUnknown_02037590 ldrb r1, [r1, 0x4] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r3 ldrh r1, [r2, 0x2] lsls r1, 23 lsrs r1, 7 ldr r3, =0xfff80000 adds r1, r3 asrs r1, 16 ldrb r2, [r2] adds r2, 0x10 _080FAB4C: movs r3, 0x94 bl AddObjectToFront b _080FAB8C .pool _080FAB64: ldr r0, =gUnknown_0858E68C ldr r3, =gUnknown_02020630 ldr r1, =gUnknown_02037590 ldrb r1, [r1, 0x4] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r3 ldrh r1, [r2, 0x2] lsls r1, 23 lsrs r1, 7 movs r3, 0xC0 lsls r3, 13 adds r1, r3 asrs r1, 16 ldrb r2, [r2] adds r2, 0x10 movs r3, 0x94 bl AddObjectToFront _080FAB8C: movs r0, 0 add sp, 0x4 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_80FAA7C thumb_func_start door_restore_tilemap door_restore_tilemap: @ 80FABA4 push {r4,r5,lr} adds r5, r0, 0 movs r0, 0x83 bl audio_play ldr r4, =gUnknown_02038C08 ldr r0, [r4, 0x14] ldr r1, [r4, 0x18] subs r1, 0x1 bl MapGridGetMetatileIdAt ldr r1, =0x00000286 cmp r0, r1 bne _080FABDC ldr r0, [r4, 0x14] ldr r1, [r4, 0x18] subs r1, 0x1 ldr r2, =0x00000e02 bl MapGridSetMetatileIdAt b _080FABEA .pool _080FABDC: ldr r0, [r4, 0x14] ldr r1, [r4, 0x18] subs r1, 0x1 movs r2, 0xA1 lsls r2, 2 bl MapGridSetMetatileIdAt _080FABEA: ldr r4, =gUnknown_02038C08 ldr r0, [r4, 0x14] ldr r1, [r4, 0x18] ldr r2, =0x0000020a bl MapGridSetMetatileIdAt ldr r0, [r4, 0x14] ldr r1, [r4, 0x18] subs r1, 0x1 bl CurrentMapDrawMetatileAt ldr r0, [r4, 0x14] ldr r1, [r4, 0x18] bl CurrentMapDrawMetatileAt movs r0, 0 strh r0, [r5, 0x2E] ldr r0, =sub_80FAC24 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end door_restore_tilemap thumb_func_start sub_80FAC24 sub_80FAC24: @ 80FAC24 push {r4,r5,lr} adds r5, r0, 0 ldrh r1, [r5, 0x2E] movs r2, 0x2E ldrsh r0, [r5, r2] cmp r0, 0x11 bgt _080FAC38 adds r0, r1, 0x1 strh r0, [r5, 0x2E] b _080FAC54 _080FAC38: ldr r4, =gUnknown_02038C08 ldr r0, [r4, 0x14] ldr r1, [r4, 0x18] ldr r2, =0x00000e8c bl MapGridSetMetatileIdAt ldr r0, [r4, 0x14] ldr r1, [r4, 0x18] bl CurrentMapDrawMetatileAt movs r0, 0 strh r0, [r5, 0x2E] ldr r0, =sub_80FAC68 str r0, [r5, 0x1C] _080FAC54: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80FAC24 thumb_func_start sub_80FAC68 sub_80FAC68: @ 80FAC68 push {lr} movs r1, 0x34 bl FieldEffectStop bl script_env_2_enable_and_set_ctx_running pop {r0} bx r0 thumb_func_end sub_80FAC68 thumb_func_start sub_80FAC78 sub_80FAC78: @ 80FAC78 push {r4,lr} sub sp, 0x4 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl MapGridGetMetatileIdAt adds r1, r0, 0 ldr r0, =0x000002f5 cmp r1, r0 beq _080FAD6C cmp r1, r0 bgt _080FACB4 subs r0, 0x17 cmp r1, r0 beq _080FAD14 adds r0, 0x16 cmp r1, r0 beq _080FAD60 b _080FADCE .pool _080FACB4: ldr r0, =0x000002f6 cmp r1, r0 beq _080FADA4 adds r0, 0x40 cmp r1, r0 beq _080FACC2 b _080FADCE _080FACC2: ldr r0, =gStringVar1 movs r1, 0x64 movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r0, =gStringVar2 ldr r1, =gUnknown_085EA88B bl StringCopy ldr r1, =gUnknown_020375F0 movs r0, 0 strh r0, [r1] ldr r0, =0x00004054 bl VarGet lsls r0, 16 cmp r0, 0 beq _080FADCE ldr r4, =0x000040ee adds r0, r4, 0 bl VarGet adds r1, r0, 0 movs r0, 0x10 b _080FAD8A .pool _080FAD14: ldr r0, =gStringVar1 movs r1, 0x32 movs r2, 0 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r0, =gStringVar2 ldr r1, =gUnknown_085EA890 bl StringCopy ldr r1, =gUnknown_020375F0 movs r0, 0 strh r0, [r1] ldr r0, =0x00004054 bl VarGet lsls r0, 16 cmp r0, 0 beq _080FADCE ldr r4, =0x000040ee adds r0, r4, 0 bl VarGet adds r1, r0, 0 movs r0, 0x20 b _080FAD8A .pool _080FAD60: ldr r1, =gUnknown_020375F0 movs r0, 0x1 b _080FAD70 .pool _080FAD6C: ldr r1, =gUnknown_020375F0 movs r0, 0x2 _080FAD70: strh r0, [r1] ldr r0, =0x00004054 bl VarGet lsls r0, 16 cmp r0, 0 beq _080FADCE ldr r4, =0x000040ee adds r0, r4, 0 bl VarGet adds r1, r0, 0 movs r0, 0x80 _080FAD8A: orrs r1, r0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl VarSet b _080FADCE .pool _080FADA4: ldr r1, =gUnknown_020375F0 movs r0, 0x3 strh r0, [r1] ldr r0, =0x00004054 bl VarGet lsls r0, 16 cmp r0, 0 beq _080FADCE ldr r4, =0x000040ee adds r0, r4, 0 bl VarGet adds r1, r0, 0 movs r0, 0x80 orrs r1, r0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl VarSet _080FADCE: add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80FAC78 thumb_func_start sub_80FADE4 sub_80FADE4: @ 80FADE4 push {r4-r6,lr} lsls r0, 16 lsrs r4, r0, 16 adds r6, r4, 0 lsls r1, 24 lsrs r5, r1, 24 bl CurrentMapIsSecretBase lsls r0, 24 cmp r0, 0 beq _080FAE28 cmp r5, 0 bne _080FAE1C ldr r1, =0xfffffd7b adds r0, r4, r1 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _080FAE10 ldr r0, =0x00000237 cmp r4, r0 bne _080FAE28 _080FAE10: movs r0, 0x1 b _080FAE2A .pool _080FAE1C: ldr r0, =0x0000028d cmp r4, r0 beq _080FAE10 ldr r0, =0x0000023f cmp r6, r0 beq _080FAE10 _080FAE28: movs r0, 0 _080FAE2A: pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_80FADE4 thumb_func_start task50_overworld_posion_effect task50_overworld_posion_effect: @ 80FAE38 push {lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r1, r0, r1 movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0x1 beq _080FAE76 cmp r0, 0x1 bgt _080FAE60 cmp r0, 0 beq _080FAE66 b _080FAE92 .pool _080FAE60: cmp r0, 0x2 beq _080FAE8A b _080FAE92 _080FAE66: ldrh r0, [r1, 0x2] adds r0, 0x2 strh r0, [r1, 0x2] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 ble _080FAE92 b _080FAE82 _080FAE76: ldrh r0, [r1, 0x2] subs r0, 0x2 strh r0, [r1, 0x2] lsls r0, 16 cmp r0, 0 bne _080FAE92 _080FAE82: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080FAE92 _080FAE8A: adds r0, r2, 0 bl DestroyTask b _080FAEA2 _080FAE92: ldrh r0, [r1, 0x2] lsls r1, r0, 4 orrs r1, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0x4C bl SetGpuReg _080FAEA2: pop {r0} bx r0 thumb_func_end task50_overworld_posion_effect thumb_func_start overworld_posion_effect overworld_posion_effect: @ 80FAEA8 push {lr} movs r0, 0x4F bl audio_play ldr r0, =task50_overworld_posion_effect movs r1, 0x50 bl CreateTask pop {r0} bx r0 .pool thumb_func_end overworld_posion_effect thumb_func_start c3_80A0DD8_is_running c3_80A0DD8_is_running: @ 80FAEC0 push {lr} ldr r0, =task50_overworld_posion_effect bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .pool thumb_func_end c3_80A0DD8_is_running thumb_func_start sub_80FAED4 sub_80FAED4: @ 80FAED4 lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, =sub_80FAEF0 str r0, [r1] bx lr .pool thumb_func_end sub_80FAED4 thumb_func_start sub_80FAEF0 sub_80FAEF0: @ 80FAEF0 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, =gUnknown_02037590 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, =gUnknown_02037350 adds r4, r0, r1 adds r0, r4, 0 bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive lsls r0, 24 cmp r0, 0 beq _080FAF1C adds r0, r4, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 beq _080FAF4E _080FAF1C: bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 bl sub_808C228 bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 bl GetStepInPlaceDelay16AnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl FieldObjectSetSpecialAnim ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, =sub_80FAF64 str r1, [r0] _080FAF4E: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80FAEF0 thumb_func_start sub_80FAF64 sub_80FAF64: @ 80FAF64 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gUnknown_02037590 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, =gUnknown_02037350 adds r5, r0, r1 adds r0, r5, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 beq _080FAFC8 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r2, r0, r1 ldrh r0, [r2, 0xA] adds r1, r0, 0x1 strh r1, [r2, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x9 bgt _080FAFC4 bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 bl GetStepInPlaceDelay16AnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl FieldObjectSetSpecialAnim b _080FAFC8 .pool _080FAFC4: ldr r0, =sub_80FAFD4 str r0, [r2] _080FAFC8: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80FAF64 thumb_func_start sub_80FAFD4 sub_80FAFD4: @ 80FAFD4 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_808BCD0 lsls r0, 24 lsrs r0, 24 bl SetPlayerAvatarTransitionFlags adds r0, r4, 0 bl DestroyTask bl script_env_2_enable_and_set_ctx_running pop {r4} pop {r0} bx r0 thumb_func_end sub_80FAFD4 thumb_func_start sub_80FAFF8 sub_80FAFF8: @ 80FAFF8 push {lr} ldr r0, =sub_80FAED4 movs r1, 0x50 bl CreateTask pop {r0} bx r0 .pool thumb_func_end sub_80FAFF8 thumb_func_start sub_80FB00C sub_80FB00C: @ 80FB00C push {r4,r5,lr} ldr r0, =gUnknown_0858E864 bl LoadTaggedObjectPalette ldr r0, =gUnknown_0858E880 movs r1, 0 movs r2, 0 movs r3, 0x52 bl AddObjectToFront lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x40 beq _080FB06C lsls r0, r5, 4 adds r0, r5 lsls r0, 2 ldr r1, =gUnknown_02020630 adds r4, r0, r1 adds r2, r4, 0 adds r2, 0x20 adds r3, r4, 0 adds r3, 0x22 movs r0, 0x10 movs r1, 0xD bl sub_8092FF0 adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x2 orrs r0, r1 strb r0, [r2] ldrh r0, [r4, 0x20] adds r0, 0x10 strh r0, [r4, 0x20] ldrh r0, [r4, 0x22] adds r0, 0x2 strh r0, [r4, 0x22] adds r0, r5, 0 b _080FB06E .pool _080FB06C: movs r0, 0x40 _080FB06E: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80FB00C thumb_func_start sub_80FB074 sub_80FB074: @ 80FB074 push {r4-r7,lr} ldr r4, =gUnknown_02020630 adds r7, r4, 0 movs r6, 0 movs r5, 0x3F _080FB07E: adds r0, r7, 0 adds r0, 0x14 adds r0, r6, r0 ldr r1, [r0] ldr r0, =gUnknown_0858E880 cmp r1, r0 bne _080FB098 adds r0, r4, 0 bl FreeObjectPalette adds r0, r4, 0 bl RemoveObjectAndFreeTiles _080FB098: adds r4, 0x44 adds r6, 0x44 subs r5, 0x1 cmp r5, 0 bge _080FB07E pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80FB074 .align 2, 0 @ Don't pad with nop.