diff options
-rw-r--r-- | asm/field_doortransition.s | 1221 | ||||
-rw-r--r-- | asm/rom_8080874.s | 1212 | ||||
-rw-r--r-- | ld_script.txt | 3 | ||||
-rw-r--r-- | src/field_doortransition.c (renamed from src/rom_8080874.c) | 0 |
4 files changed, 1223 insertions, 1213 deletions
diff --git a/asm/field_doortransition.s b/asm/field_doortransition.s new file mode 100644 index 000000000..798285a45 --- /dev/null +++ b/asm/field_doortransition.s @@ -0,0 +1,1221 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start task_mpl_807DD60 +task_mpl_807DD60: @ 80809CC + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r2, _080809F0 @ =gTasks + adds r4, r0, r2 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _08080A06 + cmp r0, 0x1 + bgt _080809F4 + cmp r0, 0 + beq _080809FA + b _08080A36 + .align 2, 0 +_080809F0: .4byte gTasks +_080809F4: + cmp r0, 0x2 + beq _08080A24 + b _08080A36 +_080809FA: + bl sub_8083664 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0xA] + b _08080A1C +_08080A06: + movs r1, 0xA + ldrsh r0, [r4, r1] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldrb r0, [r1, 0x4] + cmp r0, 0x1 + beq _08080A36 + bl pal_fill_for_map_transition +_08080A1C: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _08080A36 +_08080A24: + bl sub_8080E70 + cmp r0, 0x1 + bne _08080A36 + bl ScriptContext2_Disable + adds r0, r5, 0 + bl DestroyTask +_08080A36: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end task_mpl_807DD60 + + thumb_func_start sub_8080A3C +sub_8080A3C: @ 8080A3C + push {lr} + bl ScriptContext2_Enable + bl sub_8053E90 + bl palette_bg_fill_black + ldr r0, _08080A58 @ =task_mpl_807DD60 + movs r1, 0xA + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_08080A58: .4byte task_mpl_807DD60 + thumb_func_end sub_8080A3C + + thumb_func_start sub_8080A5C +sub_8080A5C: @ 8080A5C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _08080A80 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _08080A90 + cmp r0, 0x1 + bgt _08080A84 + cmp r0, 0 + beq _08080A8A + b _08080ABC + .align 2, 0 +_08080A80: .4byte gTasks +_08080A84: + cmp r0, 0x2 + beq _08080AA6 + b _08080ABC +_08080A8A: + bl sub_80084A4 + b _08080A9E +_08080A90: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _08080ABC + bl pal_fill_for_map_transition +_08080A9E: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _08080ABC +_08080AA6: + bl sub_8080E70 + cmp r0, 0x1 + bne _08080ABC + bl sub_8007B14 + bl ScriptContext2_Disable + adds r0, r5, 0 + bl DestroyTask +_08080ABC: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8080A5C + + thumb_func_start sub_8080AC4 +sub_8080AC4: @ 8080AC4 + push {lr} + bl ScriptContext2_Enable + bl sub_8053E90 + bl palette_bg_fill_black + ldr r0, _08080AE0 @ =sub_8080A5C + movs r1, 0xA + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_08080AE0: .4byte sub_8080A5C + thumb_func_end sub_8080AC4 + + thumb_func_start sub_8080AE4 +sub_8080AE4: @ 8080AE4 + 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, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl MetatileBehavior_IsDoor + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08080B1C + ldr r1, _08080B18 @ =sub_8080B9C + b _08080B2E + .align 2, 0 +_08080B18: .4byte sub_8080B9C +_08080B1C: + adds r0, r4, 0 + bl MetatileBehavior_IsNonAnimDoor + lsls r0, 24 + lsrs r0, 24 + ldr r1, _08080B40 @ =task_map_chg_seq_0807E2CC + cmp r0, 0x1 + bne _08080B2E + ldr r1, _08080B44 @ =task_map_chg_seq_0807E20C +_08080B2E: + adds r0, r1, 0 + movs r1, 0xA + bl CreateTask + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08080B40: .4byte task_map_chg_seq_0807E2CC +_08080B44: .4byte task_map_chg_seq_0807E20C + thumb_func_end sub_8080AE4 + + thumb_func_start mapldr_default +mapldr_default: @ 8080B48 + push {lr} + bl sub_8053E90 + bl pal_fill_for_map_transition + bl sub_8080AE4 + bl ScriptContext2_Enable + pop {r0} + bx r0 + thumb_func_end mapldr_default + + thumb_func_start sub_8080B60 +sub_8080B60: @ 8080B60 + push {lr} + bl sub_8053E90 + bl pal_fill_black + bl sub_8080AE4 + bl ScriptContext2_Enable + pop {r0} + bx r0 + thumb_func_end sub_8080B60 + + thumb_func_start sub_8080B78 +sub_8080B78: @ 8080B78 + push {lr} + bl sub_8053E90 + bl pal_fill_for_map_transition + movs r0, 0x2E + bl PlaySE + ldr r0, _08080B98 @ =task_map_chg_seq_0807E2CC + movs r1, 0xA + bl CreateTask + bl ScriptContext2_Enable + pop {r0} + bx r0 + .align 2, 0 +_08080B98: .4byte task_map_chg_seq_0807E2CC + thumb_func_end sub_8080B78 + + thumb_func_start sub_8080B9C +sub_8080B9C: @ 8080B9C + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _08080BC8 @ =gTasks + adds r5, r0, r1 + adds r6, r5, 0 + adds r6, 0xC + adds r7, r5, 0 + adds r7, 0xE + movs r2, 0x8 + ldrsh r0, [r5, r2] + adds r2, r1, 0 + cmp r0, 0x4 + bhi _08080CAE + lsls r0, 2 + ldr r1, _08080BCC @ =_08080BD0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08080BC8: .4byte gTasks +_08080BCC: .4byte _08080BD0 + .align 2, 0 +_08080BD0: + .4byte _08080BE4 + .4byte _08080C08 + .4byte _08080C40 + .4byte _08080C84 + .4byte _08080CA4 +_08080BE4: + movs r0, 0 + bl sub_8080958 + bl FreezeMapObjects + adds r0, r6, 0 + adds r1, r7, 0 + bl PlayerGetDestCoords + movs r1, 0 + ldrsh r0, [r6, r1] + movs r2, 0 + ldrsh r1, [r7, r2] + bl FieldSetDoorOpened + movs r0, 0x1 + strh r0, [r5, 0x8] + b _08080CAE +_08080C08: + bl sub_8080E70 + cmp r0, 0 + beq _08080CAE + movs r0, 0x1 + bl sub_8080958 + movs r0, 0xFF + movs r1, 0 + movs r2, 0 + bl GetFieldObjectIdByLocalIdAndMap + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _08080C3C @ =gMapObjects + adds r0, r1 + movs r1, 0x8 + bl FieldObjectSetSpecialAnim + movs r0, 0x2 + strh r0, [r5, 0x8] + b _08080CAE + .align 2, 0 +_08080C3C: .4byte gMapObjects +_08080C40: + bl walkrun_is_standing_still + lsls r0, 24 + cmp r0, 0 + beq _08080CAE + movs r1, 0 + ldrsh r0, [r6, r1] + movs r2, 0 + ldrsh r1, [r7, r2] + bl FieldAnimateDoorClose + lsls r0, 24 + asrs r0, 24 + strh r0, [r5, 0xA] + movs r0, 0xFF + movs r1, 0 + movs r2, 0 + bl GetFieldObjectIdByLocalIdAndMap + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _08080C80 @ =gMapObjects + adds r0, r1 + bl FieldObjectClearAnimIfSpecialAnimFinished + movs r0, 0x3 + strh r0, [r5, 0x8] + b _08080CAE + .align 2, 0 +_08080C80: .4byte gMapObjects +_08080C84: + movs r1, 0xA + ldrsh r0, [r5, r1] + cmp r0, 0 + blt _08080C9A + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldrb r0, [r1, 0x4] + cmp r0, 0x1 + beq _08080CAE +_08080C9A: + bl UnfreezeMapObjects + movs r0, 0x4 + strh r0, [r5, 0x8] + b _08080CAE +_08080CA4: + bl ScriptContext2_Disable + adds r0, r4, 0 + bl DestroyTask +_08080CAE: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8080B9C + + thumb_func_start task_map_chg_seq_0807E20C +task_map_chg_seq_0807E20C: @ 8080CB4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _08080CE0 @ =gTasks + adds r5, r0, r1 + adds r6, r5, 0 + adds r6, 0xC + adds r7, r5, 0 + adds r7, 0xE + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _08080D06 + cmp r0, 0x1 + bgt _08080CE4 + cmp r0, 0 + beq _08080CEE + b _08080D6E + .align 2, 0 +_08080CE0: .4byte gTasks +_08080CE4: + cmp r0, 0x2 + beq _08080D50 + cmp r0, 0x3 + beq _08080D64 + b _08080D6E +_08080CEE: + movs r0, 0 + bl sub_8080958 + bl FreezeMapObjects + adds r0, r6, 0 + adds r1, r7, 0 + bl PlayerGetDestCoords + movs r0, 0x1 + strh r0, [r5, 0x8] + b _08080D6E +_08080D06: + bl sub_8080E70 + cmp r0, 0 + beq _08080D6E + movs r0, 0x1 + bl sub_8080958 + movs r0, 0xFF + movs r1, 0 + movs r2, 0 + bl GetFieldObjectIdByLocalIdAndMap + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 3 + adds r4, r0 + lsls r4, 2 + ldr r0, _08080D4C @ =gMapObjects + adds r4, r0 + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r0, 24 + bl GetGoSpeed0AnimId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl FieldObjectSetSpecialAnim + movs r0, 0x2 + strh r0, [r5, 0x8] + b _08080D6E + .align 2, 0 +_08080D4C: .4byte gMapObjects +_08080D50: + bl walkrun_is_standing_still + lsls r0, 24 + cmp r0, 0 + beq _08080D6E + bl UnfreezeMapObjects + movs r0, 0x3 + strh r0, [r5, 0x8] + b _08080D6E +_08080D64: + bl ScriptContext2_Disable + adds r0, r4, 0 + bl DestroyTask +_08080D6E: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end task_map_chg_seq_0807E20C + + thumb_func_start task_map_chg_seq_0807E2CC +task_map_chg_seq_0807E2CC: @ 8080D74 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _08080D94 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _08080D98 + cmp r0, 0x1 + beq _08080DA8 + b _08080DBE + .align 2, 0 +_08080D94: .4byte gTasks +_08080D98: + bl FreezeMapObjects + bl ScriptContext2_Enable + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _08080DBE +_08080DA8: + bl sub_8080E70 + cmp r0, 0 + beq _08080DBE + bl UnfreezeMapObjects + bl ScriptContext2_Disable + adds r0, r5, 0 + bl DestroyTask +_08080DBE: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end task_map_chg_seq_0807E2CC + + thumb_func_start sub_8080DC4 +sub_8080DC4: @ 8080DC4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8080E70 + cmp r0, 0x1 + bne _08080DE0 + adds r0, r4, 0 + bl DestroyTask + ldr r0, _08080DE8 @ =sub_80712B4 + movs r1, 0x50 + bl CreateTask +_08080DE0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08080DE8: .4byte sub_80712B4 + thumb_func_end sub_8080DC4 + + thumb_func_start atk17_seteffectuser +atk17_seteffectuser: @ 8080DEC + push {lr} + bl pal_fill_black + ldr r0, _08080E00 @ =sub_8080DC4 + bl CreateStartMenuTask + bl ScriptContext2_Enable + pop {r0} + bx r0 + .align 2, 0 +_08080E00: .4byte sub_8080DC4 + thumb_func_end atk17_seteffectuser + + thumb_func_start task_mpl_807E3C8 +task_mpl_807E3C8: @ 8080E04 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8080E70 + cmp r0, 0x1 + bne _08080E20 + bl ScriptContext2_Disable + adds r0, r4, 0 + bl DestroyTask + bl sub_8064E2C +_08080E20: + pop {r4} + pop {r0} + bx r0 + thumb_func_end task_mpl_807E3C8 + + thumb_func_start sub_8080E28 +sub_8080E28: @ 8080E28 + push {lr} + bl ScriptContext2_Enable + bl pal_fill_black + ldr r0, _08080E40 @ =task_mpl_807E3C8 + movs r1, 0xA + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_08080E40: .4byte task_mpl_807E3C8 + thumb_func_end sub_8080E28 + + thumb_func_start sub_8080E44 +sub_8080E44: @ 8080E44 + push {lr} + bl ScriptContext2_Enable + bl sub_8053E90 + bl pal_fill_black + ldr r0, _08080E60 @ =task_mpl_807E3C8 + movs r1, 0xA + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_08080E60: .4byte task_mpl_807E3C8 + thumb_func_end sub_8080E44 + + thumb_func_start sub_8080E64 +sub_8080E64: @ 8080E64 + ldr r0, _08080E6C @ =gPaletteFade + ldrb r0, [r0, 0x7] + lsrs r0, 7 + bx lr + .align 2, 0 +_08080E6C: .4byte gPaletteFade + thumb_func_end sub_8080E64 + + thumb_func_start sub_8080E70 +sub_8080E70: @ 8080E70 + push {lr} + bl sub_807D770 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _08080E82 + movs r0, 0 + b _08080E84 +_08080E82: + movs r0, 0x1 +_08080E84: + pop {r1} + bx r1 + thumb_func_end sub_8080E70 + + thumb_func_start sub_8080E88 +sub_8080E88: @ 8080E88 + push {lr} + bl ScriptContext2_Enable + bl sub_8053FF8 + bl fade_8080918 + bl PlayRainSoundEffect + movs r0, 0x9 + bl PlaySE + ldr r0, _08080EB4 @ =gUnknown_0300485C + ldr r1, _08080EB8 @ =mapldr_default + str r1, [r0] + ldr r0, _08080EBC @ =task0A_fade_n_map_maybe + movs r1, 0xA + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_08080EB4: .4byte gUnknown_0300485C +_08080EB8: .4byte mapldr_default +_08080EBC: .4byte task0A_fade_n_map_maybe + thumb_func_end sub_8080E88 + + thumb_func_start sp13E_warp_to_last_warp +sp13E_warp_to_last_warp: @ 8080EC0 + push {lr} + bl ScriptContext2_Enable + bl sub_8053FF8 + bl fade_8080918 + bl PlayRainSoundEffect + ldr r0, _08080EE4 @ =gUnknown_0300485C + ldr r1, _08080EE8 @ =mapldr_default + str r1, [r0] + ldr r0, _08080EEC @ =task0A_fade_n_map_maybe + movs r1, 0xA + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_08080EE4: .4byte gUnknown_0300485C +_08080EE8: .4byte mapldr_default +_08080EEC: .4byte task0A_fade_n_map_maybe + thumb_func_end sp13E_warp_to_last_warp + + thumb_func_start sub_8080EF0 +sub_8080EF0: @ 8080EF0 + push {lr} + bl ScriptContext2_Enable + ldr r0, _08080F08 @ =gUnknown_0300485C + ldr r1, _08080F0C @ =mapldr_default + str r1, [r0] + ldr r0, _08080F10 @ =sub_808115C + movs r1, 0xA + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_08080F08: .4byte gUnknown_0300485C +_08080F0C: .4byte mapldr_default +_08080F10: .4byte sub_808115C + thumb_func_end sub_8080EF0 + + thumb_func_start sp13F_fall_to_last_warp +sp13F_fall_to_last_warp: @ 8080F14 + push {lr} + bl sp13E_warp_to_last_warp + ldr r1, _08080F24 @ =gUnknown_0300485C + ldr r0, _08080F28 @ =sub_8086748 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08080F24: .4byte gUnknown_0300485C +_08080F28: .4byte sub_8086748 + thumb_func_end sp13F_fall_to_last_warp + + thumb_func_start sub_8080F2C +sub_8080F2C: @ 8080F2C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl ScriptContext2_Enable + adds r0, r4, 0 + movs r1, 0xA + bl sub_8086A2C + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8080F2C + + thumb_func_start sub_8080F48 +sub_8080F48: @ 8080F48 + push {lr} + bl ScriptContext2_Enable + movs r0, 0xA + bl sub_80871B8 + pop {r0} + bx r0 + thumb_func_end sub_8080F48 + + thumb_func_start sub_8080F58 +sub_8080F58: @ 8080F58 + push {lr} + bl ScriptContext2_Enable + movs r0, 0xA + bl sub_8087654 + pop {r0} + bx r0 + thumb_func_end sub_8080F58 + + thumb_func_start sub_8080F68 +sub_8080F68: @ 8080F68 + push {lr} + bl ScriptContext2_Enable + bl sub_8053FF8 + bl fade_8080918 + movs r0, 0x2D + bl PlaySE + ldr r0, _08080F90 @ =task0A_fade_n_map_maybe + movs r1, 0xA + bl CreateTask + ldr r1, _08080F94 @ =gUnknown_0300485C + ldr r0, _08080F98 @ =sub_8080B78 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08080F90: .4byte task0A_fade_n_map_maybe +_08080F94: .4byte gUnknown_0300485C +_08080F98: .4byte sub_8080B78 + thumb_func_end sub_8080F68 + + thumb_func_start sub_8080F9C +sub_8080F9C: @ 8080F9C + push {lr} + bl ScriptContext2_Enable + bl fade_8080918 + ldr r0, _08080FB8 @ =task0A_fade_n_map_maybe + movs r1, 0xA + bl CreateTask + ldr r1, _08080FBC @ =gUnknown_0300485C + ldr r0, _08080FC0 @ =sub_80C791C + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08080FB8: .4byte task0A_fade_n_map_maybe +_08080FBC: .4byte gUnknown_0300485C +_08080FC0: .4byte sub_80C791C + thumb_func_end sub_8080F9C + + thumb_func_start sub_8080FC4 +sub_8080FC4: @ 8080FC4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _08080FE8 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _08080FF8 + cmp r0, 0x1 + bgt _08080FEC + cmp r0, 0 + beq _08080FF2 + b _08081022 + .align 2, 0 +_08080FE8: .4byte gTasks +_08080FEC: + cmp r0, 0x2 + beq _08081012 + b _08081022 +_08080FF2: + bl ScriptContext2_Enable + b _0808100A +_08080FF8: + bl sub_8080E64 + cmp r0, 0 + bne _08081022 + bl sub_8054034 + lsls r0, 24 + cmp r0, 0 + beq _08081022 +_0808100A: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _08081022 +_08081012: + bl warp_in + ldr r0, _08081028 @ =sub_8054588 + bl SetMainCallback2 + adds r0, r5, 0 + bl DestroyTask +_08081022: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08081028: .4byte sub_8054588 + thumb_func_end sub_8080FC4 + + thumb_func_start sub_808102C +sub_808102C: @ 808102C + push {lr} + bl ScriptContext2_Enable + bl sub_8053FF8 + bl fade_8080918 + movs r0, 0x9 + bl PlaySE + ldr r0, _0808104C @ =sub_8080FC4 + movs r1, 0xA + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_0808104C: .4byte sub_8080FC4 + thumb_func_end sub_808102C + + thumb_func_start sub_8081050 +sub_8081050: @ 8081050 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _08081074 @ =gTasks + 0x8 + adds r4, r0, r1 + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _08081096 + cmp r0, 0x1 + bgt _08081078 + cmp r0, 0 + beq _0808107E + b _080810CC + .align 2, 0 +_08081074: .4byte gTasks + 0x8 +_08081078: + cmp r0, 0x2 + beq _080810B4 + b _080810CC +_0808107E: + bl ClearLinkCallback_2 + movs r0, 0x1 + movs r1, 0 + bl fade_screen + bl sub_8053FF8 + movs r0, 0x9 + bl PlaySE + b _080810AC +_08081096: + bl sub_8080E64 + cmp r0, 0 + bne _080810CC + bl sub_8054034 + lsls r0, 24 + cmp r0, 0 + beq _080810CC + bl sub_800832C +_080810AC: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080810CC +_080810B4: + ldr r0, _080810D4 @ =gReceivedRemoteLinkPlayers + ldrb r0, [r0] + cmp r0, 0 + bne _080810CC + bl warp_in + ldr r0, _080810D8 @ =CB2_LoadMap + bl SetMainCallback2 + adds r0, r5, 0 + bl DestroyTask +_080810CC: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080810D4: .4byte gReceivedRemoteLinkPlayers +_080810D8: .4byte CB2_LoadMap + thumb_func_end sub_8081050 + + thumb_func_start sub_80810DC +sub_80810DC: @ 80810DC + push {lr} + ldr r0, _080810EC @ =sub_8081050 + movs r1, 0xA + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080810EC: .4byte sub_8081050 + thumb_func_end sub_80810DC + + thumb_func_start task0A_fade_n_map_maybe +task0A_fade_n_map_maybe: @ 80810F0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _08081114 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _08081128 + cmp r0, 0x1 + bgt _08081118 + cmp r0, 0 + beq _0808111E + b _08081152 + .align 2, 0 +_08081114: .4byte gTasks +_08081118: + cmp r0, 0x2 + beq _08081142 + b _08081152 +_0808111E: + bl FreezeMapObjects + bl ScriptContext2_Enable + b _0808113A +_08081128: + bl sub_8080E64 + cmp r0, 0 + bne _08081152 + bl sub_8054034 + lsls r0, 24 + cmp r0, 0 + beq _08081152 +_0808113A: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _08081152 +_08081142: + bl warp_in + ldr r0, _08081158 @ =CB2_LoadMap + bl SetMainCallback2 + adds r0, r5, 0 + bl DestroyTask +_08081152: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08081158: .4byte CB2_LoadMap + thumb_func_end task0A_fade_n_map_maybe + + thumb_func_start sub_808115C +sub_808115C: @ 808115C + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _0808118C @ =gTasks + adds r5, r1, r0 + adds r4, r5, 0 + adds r4, 0xC + adds r6, r5, 0 + adds r6, 0xE + movs r2, 0x8 + ldrsh r1, [r5, r2] + adds r2, r0, 0 + cmp r1, 0x4 + bls _08081180 + b _080812BC +_08081180: + lsls r0, r1, 2 + ldr r1, _08081190 @ =_08081194 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0808118C: .4byte gTasks +_08081190: .4byte _08081194 + .align 2, 0 +_08081194: + .4byte _080811A8 + .4byte _080811E4 + .4byte _08081240 + .4byte _0808128C + .4byte _080812A8 +_080811A8: + bl FreezeMapObjects + adds r0, r4, 0 + adds r1, r6, 0 + bl PlayerGetDestCoords + movs r1, 0 + ldrsh r0, [r4, r1] + movs r2, 0 + ldrsh r1, [r6, r2] + subs r1, 0x1 + bl sub_8058790 + lsls r0, 16 + lsrs r0, 16 + bl PlaySE + movs r1, 0 + ldrsh r0, [r4, r1] + movs r2, 0 + ldrsh r1, [r6, r2] + subs r1, 0x1 + bl FieldAnimateDoorOpen + lsls r0, 24 + asrs r0, 24 + strh r0, [r5, 0xA] + movs r0, 0x1 + strh r0, [r5, 0x8] + b _080812BC +_080811E4: + movs r1, 0xA + ldrsh r0, [r5, r1] + cmp r0, 0 + blt _080811FA + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldrb r0, [r1, 0x4] + cmp r0, 0x1 + beq _080812BC +_080811FA: + movs r0, 0xFF + movs r1, 0 + movs r2, 0 + bl GetFieldObjectIdByLocalIdAndMap + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r4, _0808123C @ =gMapObjects + adds r0, r4 + bl FieldObjectClearAnimIfSpecialAnimActive + movs r0, 0xFF + movs r1, 0 + movs r2, 0 + bl GetFieldObjectIdByLocalIdAndMap + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x9 + bl FieldObjectSetSpecialAnim + movs r0, 0x2 + strh r0, [r5, 0x8] + b _080812BC + .align 2, 0 +_0808123C: .4byte gMapObjects +_08081240: + bl walkrun_is_standing_still + lsls r0, 24 + cmp r0, 0 + beq _080812BC + movs r2, 0 + ldrsh r0, [r4, r2] + movs r2, 0 + ldrsh r1, [r6, r2] + subs r1, 0x1 + bl FieldAnimateDoorClose + lsls r0, 24 + asrs r0, 24 + strh r0, [r5, 0xA] + movs r0, 0xFF + movs r1, 0 + movs r2, 0 + bl GetFieldObjectIdByLocalIdAndMap + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _08081288 @ =gMapObjects + adds r0, r1 + bl FieldObjectClearAnimIfSpecialAnimFinished + movs r0, 0 + bl sub_8080958 + movs r0, 0x3 + strh r0, [r5, 0x8] + b _080812BC + .align 2, 0 +_08081288: .4byte gMapObjects +_0808128C: + movs r1, 0xA + ldrsh r0, [r5, r1] + cmp r0, 0 + blt _080812A2 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldrb r0, [r1, 0x4] + cmp r0, 0x1 + beq _080812BC +_080812A2: + movs r0, 0x4 + strh r0, [r5, 0x8] + b _080812BC +_080812A8: + bl sub_8053FF8 + bl fade_8080918 + bl PlayRainSoundEffect + movs r0, 0 + strh r0, [r5, 0x8] + ldr r0, _080812C4 @ =task0A_fade_n_map_maybe + str r0, [r5] +_080812BC: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080812C4: .4byte task0A_fade_n_map_maybe + thumb_func_end sub_808115C + + thumb_func_start sub_80812C8 +sub_80812C8: @ 80812C8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080812EC @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _08081300 + cmp r0, 0x1 + bgt _080812F0 + cmp r0, 0 + beq _080812F6 + b _0808132A + .align 2, 0 +_080812EC: .4byte gTasks +_080812F0: + cmp r0, 0x2 + beq _0808131A + b _0808132A +_080812F6: + bl FreezeMapObjects + bl ScriptContext2_Enable + b _08081312 +_08081300: + bl sub_8080E64 + cmp r0, 0 + bne _0808132A + bl sub_8054034 + lsls r0, 24 + cmp r0, 0 + beq _0808132A +_08081312: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _0808132A +_0808131A: + bl warp_in + ldr r0, _08081330 @ =sub_8054534 + bl SetMainCallback2 + adds r0, r5, 0 + bl DestroyTask +_0808132A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08081330: .4byte sub_8054534 + thumb_func_end sub_80812C8 + + thumb_func_start sub_8081334 +sub_8081334: @ 8081334 + push {lr} + bl ScriptContext2_Enable + bl sub_8053FF8 + bl fade_8080918 + bl PlayRainSoundEffect + movs r0, 0x9 + bl PlaySE + ldr r0, _08081360 @ =gUnknown_0300485C + ldr r1, _08081364 @ =sub_8080B60 + str r1, [r0] + ldr r0, _08081368 @ =sub_80812C8 + movs r1, 0xA + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_08081360: .4byte gUnknown_0300485C +_08081364: .4byte sub_8080B60 +_08081368: .4byte sub_80812C8 + thumb_func_end sub_8081334 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom_8080874.s b/asm/rom_8080874.s index 28ea3a69f..4fbfae1a2 100644 --- a/asm/rom_8080874.s +++ b/asm/rom_8080874.s @@ -6,1218 +6,6 @@ .text - thumb_func_start task_mpl_807DD60 -task_mpl_807DD60: @ 80809CC - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r2, _080809F0 @ =gTasks - adds r4, r0, r2 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _08080A06 - cmp r0, 0x1 - bgt _080809F4 - cmp r0, 0 - beq _080809FA - b _08080A36 - .align 2, 0 -_080809F0: .4byte gTasks -_080809F4: - cmp r0, 0x2 - beq _08080A24 - b _08080A36 -_080809FA: - bl sub_8083664 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xA] - b _08080A1C -_08080A06: - movs r1, 0xA - ldrsh r0, [r4, r1] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldrb r0, [r1, 0x4] - cmp r0, 0x1 - beq _08080A36 - bl pal_fill_for_map_transition -_08080A1C: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _08080A36 -_08080A24: - bl sub_8080E70 - cmp r0, 0x1 - bne _08080A36 - bl ScriptContext2_Disable - adds r0, r5, 0 - bl DestroyTask -_08080A36: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end task_mpl_807DD60 - - thumb_func_start sub_8080A3C -sub_8080A3C: @ 8080A3C - push {lr} - bl ScriptContext2_Enable - bl sub_8053E90 - bl palette_bg_fill_black - ldr r0, _08080A58 @ =task_mpl_807DD60 - movs r1, 0xA - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_08080A58: .4byte task_mpl_807DD60 - thumb_func_end sub_8080A3C - - thumb_func_start sub_8080A5C -sub_8080A5C: @ 8080A5C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _08080A80 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _08080A90 - cmp r0, 0x1 - bgt _08080A84 - cmp r0, 0 - beq _08080A8A - b _08080ABC - .align 2, 0 -_08080A80: .4byte gTasks -_08080A84: - cmp r0, 0x2 - beq _08080AA6 - b _08080ABC -_08080A8A: - bl sub_80084A4 - b _08080A9E -_08080A90: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _08080ABC - bl pal_fill_for_map_transition -_08080A9E: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _08080ABC -_08080AA6: - bl sub_8080E70 - cmp r0, 0x1 - bne _08080ABC - bl sub_8007B14 - bl ScriptContext2_Disable - adds r0, r5, 0 - bl DestroyTask -_08080ABC: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8080A5C - - thumb_func_start sub_8080AC4 -sub_8080AC4: @ 8080AC4 - push {lr} - bl ScriptContext2_Enable - bl sub_8053E90 - bl palette_bg_fill_black - ldr r0, _08080AE0 @ =sub_8080A5C - movs r1, 0xA - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_08080AE0: .4byte sub_8080A5C - thumb_func_end sub_8080AC4 - - thumb_func_start sub_8080AE4 -sub_8080AE4: @ 8080AE4 - 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, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl MetatileBehavior_IsDoor - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08080B1C - ldr r1, _08080B18 @ =sub_8080B9C - b _08080B2E - .align 2, 0 -_08080B18: .4byte sub_8080B9C -_08080B1C: - adds r0, r4, 0 - bl MetatileBehavior_IsNonAnimDoor - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08080B40 @ =task_map_chg_seq_0807E2CC - cmp r0, 0x1 - bne _08080B2E - ldr r1, _08080B44 @ =task_map_chg_seq_0807E20C -_08080B2E: - adds r0, r1, 0 - movs r1, 0xA - bl CreateTask - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08080B40: .4byte task_map_chg_seq_0807E2CC -_08080B44: .4byte task_map_chg_seq_0807E20C - thumb_func_end sub_8080AE4 - - thumb_func_start mapldr_default -mapldr_default: @ 8080B48 - push {lr} - bl sub_8053E90 - bl pal_fill_for_map_transition - bl sub_8080AE4 - bl ScriptContext2_Enable - pop {r0} - bx r0 - thumb_func_end mapldr_default - - thumb_func_start sub_8080B60 -sub_8080B60: @ 8080B60 - push {lr} - bl sub_8053E90 - bl pal_fill_black - bl sub_8080AE4 - bl ScriptContext2_Enable - pop {r0} - bx r0 - thumb_func_end sub_8080B60 - - thumb_func_start sub_8080B78 -sub_8080B78: @ 8080B78 - push {lr} - bl sub_8053E90 - bl pal_fill_for_map_transition - movs r0, 0x2E - bl PlaySE - ldr r0, _08080B98 @ =task_map_chg_seq_0807E2CC - movs r1, 0xA - bl CreateTask - bl ScriptContext2_Enable - pop {r0} - bx r0 - .align 2, 0 -_08080B98: .4byte task_map_chg_seq_0807E2CC - thumb_func_end sub_8080B78 - - thumb_func_start sub_8080B9C -sub_8080B9C: @ 8080B9C - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _08080BC8 @ =gTasks - adds r5, r0, r1 - adds r6, r5, 0 - adds r6, 0xC - adds r7, r5, 0 - adds r7, 0xE - movs r2, 0x8 - ldrsh r0, [r5, r2] - adds r2, r1, 0 - cmp r0, 0x4 - bhi _08080CAE - lsls r0, 2 - ldr r1, _08080BCC @ =_08080BD0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08080BC8: .4byte gTasks -_08080BCC: .4byte _08080BD0 - .align 2, 0 -_08080BD0: - .4byte _08080BE4 - .4byte _08080C08 - .4byte _08080C40 - .4byte _08080C84 - .4byte _08080CA4 -_08080BE4: - movs r0, 0 - bl sub_8080958 - bl FreezeMapObjects - adds r0, r6, 0 - adds r1, r7, 0 - bl PlayerGetDestCoords - movs r1, 0 - ldrsh r0, [r6, r1] - movs r2, 0 - ldrsh r1, [r7, r2] - bl FieldSetDoorOpened - movs r0, 0x1 - strh r0, [r5, 0x8] - b _08080CAE -_08080C08: - bl sub_8080E70 - cmp r0, 0 - beq _08080CAE - movs r0, 0x1 - bl sub_8080958 - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - bl GetFieldObjectIdByLocalIdAndMap - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08080C3C @ =gMapObjects - adds r0, r1 - movs r1, 0x8 - bl FieldObjectSetSpecialAnim - movs r0, 0x2 - strh r0, [r5, 0x8] - b _08080CAE - .align 2, 0 -_08080C3C: .4byte gMapObjects -_08080C40: - bl walkrun_is_standing_still - lsls r0, 24 - cmp r0, 0 - beq _08080CAE - movs r1, 0 - ldrsh r0, [r6, r1] - movs r2, 0 - ldrsh r1, [r7, r2] - bl FieldAnimateDoorClose - lsls r0, 24 - asrs r0, 24 - strh r0, [r5, 0xA] - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - bl GetFieldObjectIdByLocalIdAndMap - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08080C80 @ =gMapObjects - adds r0, r1 - bl FieldObjectClearAnimIfSpecialAnimFinished - movs r0, 0x3 - strh r0, [r5, 0x8] - b _08080CAE - .align 2, 0 -_08080C80: .4byte gMapObjects -_08080C84: - movs r1, 0xA - ldrsh r0, [r5, r1] - cmp r0, 0 - blt _08080C9A - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldrb r0, [r1, 0x4] - cmp r0, 0x1 - beq _08080CAE -_08080C9A: - bl UnfreezeMapObjects - movs r0, 0x4 - strh r0, [r5, 0x8] - b _08080CAE -_08080CA4: - bl ScriptContext2_Disable - adds r0, r4, 0 - bl DestroyTask -_08080CAE: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8080B9C - - thumb_func_start task_map_chg_seq_0807E20C -task_map_chg_seq_0807E20C: @ 8080CB4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _08080CE0 @ =gTasks - adds r5, r0, r1 - adds r6, r5, 0 - adds r6, 0xC - adds r7, r5, 0 - adds r7, 0xE - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _08080D06 - cmp r0, 0x1 - bgt _08080CE4 - cmp r0, 0 - beq _08080CEE - b _08080D6E - .align 2, 0 -_08080CE0: .4byte gTasks -_08080CE4: - cmp r0, 0x2 - beq _08080D50 - cmp r0, 0x3 - beq _08080D64 - b _08080D6E -_08080CEE: - movs r0, 0 - bl sub_8080958 - bl FreezeMapObjects - adds r0, r6, 0 - adds r1, r7, 0 - bl PlayerGetDestCoords - movs r0, 0x1 - strh r0, [r5, 0x8] - b _08080D6E -_08080D06: - bl sub_8080E70 - cmp r0, 0 - beq _08080D6E - movs r0, 0x1 - bl sub_8080958 - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - bl GetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _08080D4C @ =gMapObjects - adds r4, r0 - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - bl GetGoSpeed0AnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectSetSpecialAnim - movs r0, 0x2 - strh r0, [r5, 0x8] - b _08080D6E - .align 2, 0 -_08080D4C: .4byte gMapObjects -_08080D50: - bl walkrun_is_standing_still - lsls r0, 24 - cmp r0, 0 - beq _08080D6E - bl UnfreezeMapObjects - movs r0, 0x3 - strh r0, [r5, 0x8] - b _08080D6E -_08080D64: - bl ScriptContext2_Disable - adds r0, r4, 0 - bl DestroyTask -_08080D6E: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end task_map_chg_seq_0807E20C - - thumb_func_start task_map_chg_seq_0807E2CC -task_map_chg_seq_0807E2CC: @ 8080D74 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _08080D94 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _08080D98 - cmp r0, 0x1 - beq _08080DA8 - b _08080DBE - .align 2, 0 -_08080D94: .4byte gTasks -_08080D98: - bl FreezeMapObjects - bl ScriptContext2_Enable - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _08080DBE -_08080DA8: - bl sub_8080E70 - cmp r0, 0 - beq _08080DBE - bl UnfreezeMapObjects - bl ScriptContext2_Disable - adds r0, r5, 0 - bl DestroyTask -_08080DBE: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end task_map_chg_seq_0807E2CC - - thumb_func_start sub_8080DC4 -sub_8080DC4: @ 8080DC4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8080E70 - cmp r0, 0x1 - bne _08080DE0 - adds r0, r4, 0 - bl DestroyTask - ldr r0, _08080DE8 @ =sub_80712B4 - movs r1, 0x50 - bl CreateTask -_08080DE0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08080DE8: .4byte sub_80712B4 - thumb_func_end sub_8080DC4 - - thumb_func_start atk17_seteffectuser -atk17_seteffectuser: @ 8080DEC - push {lr} - bl pal_fill_black - ldr r0, _08080E00 @ =sub_8080DC4 - bl CreateStartMenuTask - bl ScriptContext2_Enable - pop {r0} - bx r0 - .align 2, 0 -_08080E00: .4byte sub_8080DC4 - thumb_func_end atk17_seteffectuser - - thumb_func_start task_mpl_807E3C8 -task_mpl_807E3C8: @ 8080E04 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8080E70 - cmp r0, 0x1 - bne _08080E20 - bl ScriptContext2_Disable - adds r0, r4, 0 - bl DestroyTask - bl sub_8064E2C -_08080E20: - pop {r4} - pop {r0} - bx r0 - thumb_func_end task_mpl_807E3C8 - - thumb_func_start sub_8080E28 -sub_8080E28: @ 8080E28 - push {lr} - bl ScriptContext2_Enable - bl pal_fill_black - ldr r0, _08080E40 @ =task_mpl_807E3C8 - movs r1, 0xA - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_08080E40: .4byte task_mpl_807E3C8 - thumb_func_end sub_8080E28 - - thumb_func_start sub_8080E44 -sub_8080E44: @ 8080E44 - push {lr} - bl ScriptContext2_Enable - bl sub_8053E90 - bl pal_fill_black - ldr r0, _08080E60 @ =task_mpl_807E3C8 - movs r1, 0xA - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_08080E60: .4byte task_mpl_807E3C8 - thumb_func_end sub_8080E44 - - thumb_func_start sub_8080E64 -sub_8080E64: @ 8080E64 - ldr r0, _08080E6C @ =gPaletteFade - ldrb r0, [r0, 0x7] - lsrs r0, 7 - bx lr - .align 2, 0 -_08080E6C: .4byte gPaletteFade - thumb_func_end sub_8080E64 - - thumb_func_start sub_8080E70 -sub_8080E70: @ 8080E70 - push {lr} - bl sub_807D770 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08080E82 - movs r0, 0 - b _08080E84 -_08080E82: - movs r0, 0x1 -_08080E84: - pop {r1} - bx r1 - thumb_func_end sub_8080E70 - - thumb_func_start sub_8080E88 -sub_8080E88: @ 8080E88 - push {lr} - bl ScriptContext2_Enable - bl sub_8053FF8 - bl fade_8080918 - bl PlayRainSoundEffect - movs r0, 0x9 - bl PlaySE - ldr r0, _08080EB4 @ =gUnknown_0300485C - ldr r1, _08080EB8 @ =mapldr_default - str r1, [r0] - ldr r0, _08080EBC @ =task0A_fade_n_map_maybe - movs r1, 0xA - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_08080EB4: .4byte gUnknown_0300485C -_08080EB8: .4byte mapldr_default -_08080EBC: .4byte task0A_fade_n_map_maybe - thumb_func_end sub_8080E88 - - thumb_func_start sp13E_warp_to_last_warp -sp13E_warp_to_last_warp: @ 8080EC0 - push {lr} - bl ScriptContext2_Enable - bl sub_8053FF8 - bl fade_8080918 - bl PlayRainSoundEffect - ldr r0, _08080EE4 @ =gUnknown_0300485C - ldr r1, _08080EE8 @ =mapldr_default - str r1, [r0] - ldr r0, _08080EEC @ =task0A_fade_n_map_maybe - movs r1, 0xA - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_08080EE4: .4byte gUnknown_0300485C -_08080EE8: .4byte mapldr_default -_08080EEC: .4byte task0A_fade_n_map_maybe - thumb_func_end sp13E_warp_to_last_warp - - thumb_func_start sub_8080EF0 -sub_8080EF0: @ 8080EF0 - push {lr} - bl ScriptContext2_Enable - ldr r0, _08080F08 @ =gUnknown_0300485C - ldr r1, _08080F0C @ =mapldr_default - str r1, [r0] - ldr r0, _08080F10 @ =sub_808115C - movs r1, 0xA - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_08080F08: .4byte gUnknown_0300485C -_08080F0C: .4byte mapldr_default -_08080F10: .4byte sub_808115C - thumb_func_end sub_8080EF0 - - thumb_func_start sp13F_fall_to_last_warp -sp13F_fall_to_last_warp: @ 8080F14 - push {lr} - bl sp13E_warp_to_last_warp - ldr r1, _08080F24 @ =gUnknown_0300485C - ldr r0, _08080F28 @ =sub_8086748 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08080F24: .4byte gUnknown_0300485C -_08080F28: .4byte sub_8086748 - thumb_func_end sp13F_fall_to_last_warp - - thumb_func_start sub_8080F2C -sub_8080F2C: @ 8080F2C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl ScriptContext2_Enable - adds r0, r4, 0 - movs r1, 0xA - bl sub_8086A2C - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8080F2C - - thumb_func_start sub_8080F48 -sub_8080F48: @ 8080F48 - push {lr} - bl ScriptContext2_Enable - movs r0, 0xA - bl sub_80871B8 - pop {r0} - bx r0 - thumb_func_end sub_8080F48 - - thumb_func_start sub_8080F58 -sub_8080F58: @ 8080F58 - push {lr} - bl ScriptContext2_Enable - movs r0, 0xA - bl sub_8087654 - pop {r0} - bx r0 - thumb_func_end sub_8080F58 - - thumb_func_start sub_8080F68 -sub_8080F68: @ 8080F68 - push {lr} - bl ScriptContext2_Enable - bl sub_8053FF8 - bl fade_8080918 - movs r0, 0x2D - bl PlaySE - ldr r0, _08080F90 @ =task0A_fade_n_map_maybe - movs r1, 0xA - bl CreateTask - ldr r1, _08080F94 @ =gUnknown_0300485C - ldr r0, _08080F98 @ =sub_8080B78 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08080F90: .4byte task0A_fade_n_map_maybe -_08080F94: .4byte gUnknown_0300485C -_08080F98: .4byte sub_8080B78 - thumb_func_end sub_8080F68 - - thumb_func_start sub_8080F9C -sub_8080F9C: @ 8080F9C - push {lr} - bl ScriptContext2_Enable - bl fade_8080918 - ldr r0, _08080FB8 @ =task0A_fade_n_map_maybe - movs r1, 0xA - bl CreateTask - ldr r1, _08080FBC @ =gUnknown_0300485C - ldr r0, _08080FC0 @ =sub_80C791C - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08080FB8: .4byte task0A_fade_n_map_maybe -_08080FBC: .4byte gUnknown_0300485C -_08080FC0: .4byte sub_80C791C - thumb_func_end sub_8080F9C - - thumb_func_start sub_8080FC4 -sub_8080FC4: @ 8080FC4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _08080FE8 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _08080FF8 - cmp r0, 0x1 - bgt _08080FEC - cmp r0, 0 - beq _08080FF2 - b _08081022 - .align 2, 0 -_08080FE8: .4byte gTasks -_08080FEC: - cmp r0, 0x2 - beq _08081012 - b _08081022 -_08080FF2: - bl ScriptContext2_Enable - b _0808100A -_08080FF8: - bl sub_8080E64 - cmp r0, 0 - bne _08081022 - bl sub_8054034 - lsls r0, 24 - cmp r0, 0 - beq _08081022 -_0808100A: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _08081022 -_08081012: - bl warp_in - ldr r0, _08081028 @ =sub_8054588 - bl SetMainCallback2 - adds r0, r5, 0 - bl DestroyTask -_08081022: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08081028: .4byte sub_8054588 - thumb_func_end sub_8080FC4 - - thumb_func_start sub_808102C -sub_808102C: @ 808102C - push {lr} - bl ScriptContext2_Enable - bl sub_8053FF8 - bl fade_8080918 - movs r0, 0x9 - bl PlaySE - ldr r0, _0808104C @ =sub_8080FC4 - movs r1, 0xA - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_0808104C: .4byte sub_8080FC4 - thumb_func_end sub_808102C - - thumb_func_start sub_8081050 -sub_8081050: @ 8081050 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _08081074 @ =gTasks + 0x8 - adds r4, r0, r1 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _08081096 - cmp r0, 0x1 - bgt _08081078 - cmp r0, 0 - beq _0808107E - b _080810CC - .align 2, 0 -_08081074: .4byte gTasks + 0x8 -_08081078: - cmp r0, 0x2 - beq _080810B4 - b _080810CC -_0808107E: - bl ClearLinkCallback_2 - movs r0, 0x1 - movs r1, 0 - bl fade_screen - bl sub_8053FF8 - movs r0, 0x9 - bl PlaySE - b _080810AC -_08081096: - bl sub_8080E64 - cmp r0, 0 - bne _080810CC - bl sub_8054034 - lsls r0, 24 - cmp r0, 0 - beq _080810CC - bl sub_800832C -_080810AC: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080810CC -_080810B4: - ldr r0, _080810D4 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _080810CC - bl warp_in - ldr r0, _080810D8 @ =CB2_LoadMap - bl SetMainCallback2 - adds r0, r5, 0 - bl DestroyTask -_080810CC: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080810D4: .4byte gReceivedRemoteLinkPlayers -_080810D8: .4byte CB2_LoadMap - thumb_func_end sub_8081050 - - thumb_func_start sub_80810DC -sub_80810DC: @ 80810DC - push {lr} - ldr r0, _080810EC @ =sub_8081050 - movs r1, 0xA - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080810EC: .4byte sub_8081050 - thumb_func_end sub_80810DC - - thumb_func_start task0A_fade_n_map_maybe -task0A_fade_n_map_maybe: @ 80810F0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _08081114 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _08081128 - cmp r0, 0x1 - bgt _08081118 - cmp r0, 0 - beq _0808111E - b _08081152 - .align 2, 0 -_08081114: .4byte gTasks -_08081118: - cmp r0, 0x2 - beq _08081142 - b _08081152 -_0808111E: - bl FreezeMapObjects - bl ScriptContext2_Enable - b _0808113A -_08081128: - bl sub_8080E64 - cmp r0, 0 - bne _08081152 - bl sub_8054034 - lsls r0, 24 - cmp r0, 0 - beq _08081152 -_0808113A: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _08081152 -_08081142: - bl warp_in - ldr r0, _08081158 @ =CB2_LoadMap - bl SetMainCallback2 - adds r0, r5, 0 - bl DestroyTask -_08081152: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08081158: .4byte CB2_LoadMap - thumb_func_end task0A_fade_n_map_maybe - - thumb_func_start sub_808115C -sub_808115C: @ 808115C - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _0808118C @ =gTasks - adds r5, r1, r0 - adds r4, r5, 0 - adds r4, 0xC - adds r6, r5, 0 - adds r6, 0xE - movs r2, 0x8 - ldrsh r1, [r5, r2] - adds r2, r0, 0 - cmp r1, 0x4 - bls _08081180 - b _080812BC -_08081180: - lsls r0, r1, 2 - ldr r1, _08081190 @ =_08081194 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808118C: .4byte gTasks -_08081190: .4byte _08081194 - .align 2, 0 -_08081194: - .4byte _080811A8 - .4byte _080811E4 - .4byte _08081240 - .4byte _0808128C - .4byte _080812A8 -_080811A8: - bl FreezeMapObjects - adds r0, r4, 0 - adds r1, r6, 0 - bl PlayerGetDestCoords - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0 - ldrsh r1, [r6, r2] - subs r1, 0x1 - bl sub_8058790 - lsls r0, 16 - lsrs r0, 16 - bl PlaySE - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0 - ldrsh r1, [r6, r2] - subs r1, 0x1 - bl FieldAnimateDoorOpen - lsls r0, 24 - asrs r0, 24 - strh r0, [r5, 0xA] - movs r0, 0x1 - strh r0, [r5, 0x8] - b _080812BC -_080811E4: - movs r1, 0xA - ldrsh r0, [r5, r1] - cmp r0, 0 - blt _080811FA - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldrb r0, [r1, 0x4] - cmp r0, 0x1 - beq _080812BC -_080811FA: - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - bl GetFieldObjectIdByLocalIdAndMap - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r4, _0808123C @ =gMapObjects - adds r0, r4 - bl FieldObjectClearAnimIfSpecialAnimActive - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - bl GetFieldObjectIdByLocalIdAndMap - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x9 - bl FieldObjectSetSpecialAnim - movs r0, 0x2 - strh r0, [r5, 0x8] - b _080812BC - .align 2, 0 -_0808123C: .4byte gMapObjects -_08081240: - bl walkrun_is_standing_still - lsls r0, 24 - cmp r0, 0 - beq _080812BC - movs r2, 0 - ldrsh r0, [r4, r2] - movs r2, 0 - ldrsh r1, [r6, r2] - subs r1, 0x1 - bl FieldAnimateDoorClose - lsls r0, 24 - asrs r0, 24 - strh r0, [r5, 0xA] - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - bl GetFieldObjectIdByLocalIdAndMap - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08081288 @ =gMapObjects - adds r0, r1 - bl FieldObjectClearAnimIfSpecialAnimFinished - movs r0, 0 - bl sub_8080958 - movs r0, 0x3 - strh r0, [r5, 0x8] - b _080812BC - .align 2, 0 -_08081288: .4byte gMapObjects -_0808128C: - movs r1, 0xA - ldrsh r0, [r5, r1] - cmp r0, 0 - blt _080812A2 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldrb r0, [r1, 0x4] - cmp r0, 0x1 - beq _080812BC -_080812A2: - movs r0, 0x4 - strh r0, [r5, 0x8] - b _080812BC -_080812A8: - bl sub_8053FF8 - bl fade_8080918 - bl PlayRainSoundEffect - movs r0, 0 - strh r0, [r5, 0x8] - ldr r0, _080812C4 @ =task0A_fade_n_map_maybe - str r0, [r5] -_080812BC: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080812C4: .4byte task0A_fade_n_map_maybe - thumb_func_end sub_808115C - - thumb_func_start sub_80812C8 -sub_80812C8: @ 80812C8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080812EC @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _08081300 - cmp r0, 0x1 - bgt _080812F0 - cmp r0, 0 - beq _080812F6 - b _0808132A - .align 2, 0 -_080812EC: .4byte gTasks -_080812F0: - cmp r0, 0x2 - beq _0808131A - b _0808132A -_080812F6: - bl FreezeMapObjects - bl ScriptContext2_Enable - b _08081312 -_08081300: - bl sub_8080E64 - cmp r0, 0 - bne _0808132A - bl sub_8054034 - lsls r0, 24 - cmp r0, 0 - beq _0808132A -_08081312: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _0808132A -_0808131A: - bl warp_in - ldr r0, _08081330 @ =sub_8054534 - bl SetMainCallback2 - adds r0, r5, 0 - bl DestroyTask -_0808132A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08081330: .4byte sub_8054534 - thumb_func_end sub_80812C8 - - thumb_func_start sub_8081334 -sub_8081334: @ 8081334 - push {lr} - bl ScriptContext2_Enable - bl sub_8053FF8 - bl fade_8080918 - bl PlayRainSoundEffect - movs r0, 0x9 - bl PlaySE - ldr r0, _08081360 @ =gUnknown_0300485C - ldr r1, _08081364 @ =sub_8080B60 - str r1, [r0] - ldr r0, _08081368 @ =sub_80812C8 - movs r1, 0xA - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_08081360: .4byte gUnknown_0300485C -_08081364: .4byte sub_8080B60 -_08081368: .4byte sub_80812C8 - thumb_func_end sub_8081334 - thumb_func_start sub_808136C sub_808136C: @ 808136C push {lr} diff --git a/ld_script.txt b/ld_script.txt index 65c9d9d78..13a562737 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -123,7 +123,8 @@ SECTIONS { src/title_screen.o(.text); src/weather.o(.text); asm/weather.o(.text); - src/rom_8080874.o(.text); + src/field_doortransition.o(.text); + asm/field_doortransition.o(.text); asm/rom_8080874.o(.text); src/battle_setup.o(.text); asm/cable_club.o(.text); diff --git a/src/rom_8080874.c b/src/field_doortransition.c index 261ed46c9..261ed46c9 100644 --- a/src/rom_8080874.c +++ b/src/field_doortransition.c |