mirror of https://github.com/zeldaret/oot.git
150 lines
7.1 KiB
ArmAsm
150 lines
7.1 KiB
ArmAsm
.rdata
|
|
glabel D_8013AEC8
|
|
.asciz "\ngame_info.mode=[%d] restart_flag"
|
|
.balign 4
|
|
|
|
.text
|
|
glabel Cutscene_HandleConditionalTriggers
|
|
/* AE0360 800691C0 27BDFFE0 */ addiu $sp, $sp, -0x20
|
|
/* AE0364 800691C4 AFB00018 */ sw $s0, 0x18($sp)
|
|
/* AE0368 800691C8 3C108016 */ lui $s0, %hi(gSaveContext) # $s0, 0x8016
|
|
/* AE036C 800691CC AFA40020 */ sw $a0, 0x20($sp)
|
|
/* AE0370 800691D0 2610E660 */ addiu $s0, %lo(gSaveContext) # addiu $s0, $s0, -0x19a0
|
|
/* AE0374 800691D4 AFBF001C */ sw $ra, 0x1c($sp)
|
|
/* AE0378 800691D8 3C048014 */ lui $a0, %hi(D_8013AEC8) # $a0, 0x8014
|
|
/* AE037C 800691DC 2484AEC8 */ addiu $a0, %lo(D_8013AEC8) # addiu $a0, $a0, -0x5138
|
|
/* AE0380 800691E0 0C00084C */ jal osSyncPrintf
|
|
/* AE0384 800691E4 8E051364 */ lw $a1, 0x1364($s0)
|
|
/* AE0388 800691E8 8E0E135C */ lw $t6, 0x135c($s0)
|
|
/* AE038C 800691EC 55C00076 */ bnezl $t6, .L800693C8
|
|
/* AE0390 800691F0 8FBF001C */ lw $ra, 0x1c($sp)
|
|
/* AE0394 800691F4 8E0F1364 */ lw $t7, 0x1364($s0)
|
|
/* AE0398 800691F8 5DE00073 */ bgtzl $t7, .L800693C8
|
|
/* AE039C 800691FC 8FBF001C */ lw $ra, 0x1c($sp)
|
|
/* AE03A0 80069200 8E180008 */ lw $t8, 8($s0)
|
|
/* AE03A4 80069204 3401FFF0 */ li $at, 65520
|
|
/* AE03A8 80069208 0301082A */ slt $at, $t8, $at
|
|
/* AE03AC 8006920C 5020006E */ beql $at, $zero, .L800693C8
|
|
/* AE03B0 80069210 8FBF001C */ lw $ra, 0x1c($sp)
|
|
/* AE03B4 80069214 8E190000 */ lw $t9, ($s0)
|
|
/* AE03B8 80069218 240101E1 */ li $at, 481
|
|
/* AE03BC 8006921C 5721000D */ bnel $t9, $at, .L80069254
|
|
/* AE03C0 80069220 8E0A0000 */ lw $t2, ($s0)
|
|
/* AE03C4 80069224 0C00D6D3 */ jal Flags_GetEventChkInf
|
|
/* AE03C8 80069228 240400AC */ li $a0, 172
|
|
/* AE03CC 8006922C 54400009 */ bnezl $v0, .L80069254
|
|
/* AE03D0 80069230 8E0A0000 */ lw $t2, ($s0)
|
|
/* AE03D4 80069234 0C00D6DD */ jal Flags_SetEventChkInf
|
|
/* AE03D8 80069238 240400AC */ li $a0, 172
|
|
/* AE03DC 8006923C 24080123 */ li $t0, 291
|
|
/* AE03E0 80069240 3409FFF0 */ li $t1, 65520
|
|
/* AE03E4 80069244 AE080000 */ sw $t0, ($s0)
|
|
/* AE03E8 80069248 1000005E */ b .L800693C4
|
|
/* AE03EC 8006924C AE090008 */ sw $t1, 8($s0)
|
|
/* AE03F0 80069250 8E0A0000 */ lw $t2, ($s0)
|
|
.L80069254:
|
|
/* AE03F4 80069254 240100DB */ li $at, 219
|
|
/* AE03F8 80069258 55410016 */ bnel $t2, $at, .L800692B4
|
|
/* AE03FC 8006925C 8E180000 */ lw $t8, ($s0)
|
|
/* AE0400 80069260 8E0B0004 */ lw $t3, 4($s0)
|
|
/* AE0404 80069264 55600013 */ bnezl $t3, .L800692B4
|
|
/* AE0408 80069268 8E180000 */ lw $t8, ($s0)
|
|
/* AE040C 8006926C 96020EDC */ lhu $v0, 0xedc($s0)
|
|
/* AE0410 80069270 304C0100 */ andi $t4, $v0, 0x100
|
|
/* AE0414 80069274 1180000E */ beqz $t4, .L800692B0
|
|
/* AE0418 80069278 304D0200 */ andi $t5, $v0, 0x200
|
|
/* AE041C 8006927C 11A0000C */ beqz $t5, .L800692B0
|
|
/* AE0420 80069280 304E0400 */ andi $t6, $v0, 0x400
|
|
/* AE0424 80069284 51C0000B */ beql $t6, $zero, .L800692B4
|
|
/* AE0428 80069288 8E180000 */ lw $t8, ($s0)
|
|
/* AE042C 8006928C 0C00D6D3 */ jal Flags_GetEventChkInf
|
|
/* AE0430 80069290 240400AA */ li $a0, 170
|
|
/* AE0434 80069294 54400007 */ bnezl $v0, .L800692B4
|
|
/* AE0438 80069298 8E180000 */ lw $t8, ($s0)
|
|
/* AE043C 8006929C 0C00D6DD */ jal Flags_SetEventChkInf
|
|
/* AE0440 800692A0 240400AA */ li $a0, 170
|
|
/* AE0444 800692A4 340FFFF0 */ li $t7, 65520
|
|
/* AE0448 800692A8 10000046 */ b .L800693C4
|
|
/* AE044C 800692AC AE0F0008 */ sw $t7, 8($s0)
|
|
.L800692B0:
|
|
/* AE0450 800692B0 8E180000 */ lw $t8, ($s0)
|
|
.L800692B4:
|
|
/* AE0454 800692B4 240105E0 */ li $at, 1504
|
|
/* AE0458 800692B8 1701000F */ bne $t8, $at, .L800692F8
|
|
/* AE045C 800692BC 00000000 */ nop
|
|
/* AE0460 800692C0 0C00D6D3 */ jal Flags_GetEventChkInf
|
|
/* AE0464 800692C4 240400C1 */ li $a0, 193
|
|
/* AE0468 800692C8 1440000B */ bnez $v0, .L800692F8
|
|
/* AE046C 800692CC 00000000 */ nop
|
|
/* AE0470 800692D0 0C00D6DD */ jal Flags_SetEventChkInf
|
|
/* AE0474 800692D4 240400C1 */ li $a0, 193
|
|
/* AE0478 800692D8 8FA40020 */ lw $a0, 0x20($sp)
|
|
/* AE047C 800692DC 0C021344 */ jal Item_Give
|
|
/* AE0480 800692E0 24050007 */ li $a1, 7
|
|
/* AE0484 800692E4 2419011E */ li $t9, 286
|
|
/* AE0488 800692E8 3408FFF0 */ li $t0, 65520
|
|
/* AE048C 800692EC AE190000 */ sw $t9, ($s0)
|
|
/* AE0490 800692F0 10000034 */ b .L800693C4
|
|
/* AE0494 800692F4 AE080008 */ sw $t0, 8($s0)
|
|
.L800692F8:
|
|
/* AE0498 800692F8 3C038012 */ lui $v1, %hi(gBitFlags) # $v1, 0x8012
|
|
/* AE049C 800692FC 24637120 */ addiu $v1, %lo(gBitFlags) # addiu $v1, $v1, 0x7120
|
|
/* AE04A0 80069300 8C69000C */ lw $t1, 0xc($v1)
|
|
/* AE04A4 80069304 8E0200A4 */ lw $v0, 0xa4($s0)
|
|
/* AE04A8 80069308 01225024 */ and $t2, $t1, $v0
|
|
/* AE04AC 8006930C 1140001B */ beqz $t2, .L8006937C
|
|
/* AE04B0 80069310 00000000 */ nop
|
|
/* AE04B4 80069314 8C6B0010 */ lw $t3, 0x10($v1)
|
|
/* AE04B8 80069318 01626024 */ and $t4, $t3, $v0
|
|
/* AE04BC 8006931C 11800017 */ beqz $t4, .L8006937C
|
|
/* AE04C0 80069320 00000000 */ nop
|
|
/* AE04C4 80069324 8E0D0004 */ lw $t5, 4($s0)
|
|
/* AE04C8 80069328 15A00014 */ bnez $t5, .L8006937C
|
|
/* AE04CC 8006932C 00000000 */ nop
|
|
/* AE04D0 80069330 0C00D6D3 */ jal Flags_GetEventChkInf
|
|
/* AE04D4 80069334 240400C4 */ li $a0, 196
|
|
/* AE04D8 80069338 14400010 */ bnez $v0, .L8006937C
|
|
/* AE04DC 8006933C 00000000 */ nop
|
|
/* AE04E0 80069340 8E050000 */ lw $a1, ($s0)
|
|
/* AE04E4 80069344 3C0F8013 */ lui $t7, %hi(gEntranceTable)
|
|
/* AE04E8 80069348 24010043 */ li $at, 67
|
|
/* AE04EC 8006934C 00057080 */ sll $t6, $a1, 2
|
|
/* AE04F0 80069350 01EE7821 */ addu $t7, $t7, $t6
|
|
/* AE04F4 80069354 81EF81C0 */ lb $t7, %lo(gEntranceTable)($t7)
|
|
/* AE04F8 80069358 15E10008 */ bne $t7, $at, .L8006937C
|
|
/* AE04FC 8006935C 00000000 */ nop
|
|
/* AE0500 80069360 0C00D6DD */ jal Flags_SetEventChkInf
|
|
/* AE0504 80069364 240400C4 */ li $a0, 196
|
|
/* AE0508 80069368 24180053 */ li $t8, 83
|
|
/* AE050C 8006936C 3419FFF8 */ li $t9, 65528
|
|
/* AE0510 80069370 AE180000 */ sw $t8, ($s0)
|
|
/* AE0514 80069374 10000013 */ b .L800693C4
|
|
/* AE0518 80069378 AE190008 */ sw $t9, 8($s0)
|
|
.L8006937C:
|
|
/* AE051C 8006937C 0C00D6D3 */ jal Flags_GetEventChkInf
|
|
/* AE0520 80069380 240400C7 */ li $a0, 199
|
|
/* AE0524 80069384 54400010 */ bnezl $v0, .L800693C8
|
|
/* AE0528 80069388 8FBF001C */ lw $ra, 0x1c($sp)
|
|
/* AE052C 8006938C 8E050000 */ lw $a1, ($s0)
|
|
/* AE0530 80069390 3C098013 */ lui $t1, %hi(gEntranceTable)
|
|
/* AE0534 80069394 2401004F */ li $at, 79
|
|
/* AE0538 80069398 00054080 */ sll $t0, $a1, 2
|
|
/* AE053C 8006939C 01284821 */ addu $t1, $t1, $t0
|
|
/* AE0540 800693A0 812981C0 */ lb $t1, %lo(gEntranceTable)($t1)
|
|
/* AE0544 800693A4 55210008 */ bnel $t1, $at, .L800693C8
|
|
/* AE0548 800693A8 8FBF001C */ lw $ra, 0x1c($sp)
|
|
/* AE054C 800693AC 0C00D6DD */ jal Flags_SetEventChkInf
|
|
/* AE0550 800693B0 240400C7 */ li $a0, 199
|
|
/* AE0554 800693B4 240A0517 */ li $t2, 1303
|
|
/* AE0558 800693B8 340BFFF0 */ li $t3, 65520
|
|
/* AE055C 800693BC AE0A0000 */ sw $t2, ($s0)
|
|
/* AE0560 800693C0 AE0B0008 */ sw $t3, 8($s0)
|
|
.L800693C4:
|
|
/* AE0564 800693C4 8FBF001C */ lw $ra, 0x1c($sp)
|
|
.L800693C8:
|
|
/* AE0568 800693C8 8FB00018 */ lw $s0, 0x18($sp)
|
|
/* AE056C 800693CC 27BD0020 */ addiu $sp, $sp, 0x20
|
|
/* AE0570 800693D0 03E00008 */ jr $ra
|
|
/* AE0574 800693D4 00000000 */ nop
|
|
|