mirror of
https://gitlab.com/ryandwyer/perfect-dark
synced 2026-08-09 02:26:10 -04:00
Decompile func0001561c
This commit is contained in:
+1
-1
@@ -5431,7 +5431,7 @@ struct var800a2380 {
|
||||
/*0x278*/ u32 unk278;
|
||||
/*0x27c*/ u32 unk27c;
|
||||
/*0x280*/ u32 unk280;
|
||||
/*0x284*/ u32 unk284;
|
||||
/*0x284*/ s32 unk284;
|
||||
/*0x288*/ u32 unk288;
|
||||
/*0x28c*/ u32 unk28c;
|
||||
/*0x290*/ u32 unk290;
|
||||
|
||||
+50
-174
@@ -1038,181 +1038,57 @@ s32 func000155f4(s8 index)
|
||||
return func000155b4(index);
|
||||
}
|
||||
|
||||
void func0001561c(void)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < 4; i++) {
|
||||
if (var800a2380[i].unk010 == 11 && var800a2380[i].unk000 == 1) {
|
||||
switch (var800a2380[i].unk004) {
|
||||
case 3:
|
||||
var800a2380[i].unk004 = 4;
|
||||
func0004f5e0(i == 4 ? NULL : &var800a3180[i], 1);
|
||||
break;
|
||||
case 4:
|
||||
if (var800a2380[i].unk284 != -1) {
|
||||
if (var800a2380[i].unk28c == 0) {
|
||||
func0004f5e0(i == 4 ? NULL : &var800a3180[i], 1);
|
||||
} else if (var800a2380[i].unk284 == var800a2380[i].unk28c) {
|
||||
func0004f5e0(i == 4 ? NULL : &var800a3180[i], 0);
|
||||
}
|
||||
|
||||
var800a2380[i].unk28c++;
|
||||
|
||||
if (var800a2380[i].unk288 == var800a2380[i].unk28c) {
|
||||
var800a2380[i].unk28c = 0;
|
||||
}
|
||||
}
|
||||
|
||||
var800a2380[i].unk2b4--;
|
||||
|
||||
if (var800a2380[i].unk2b4 < 0) {
|
||||
var800a2380[i].unk004 = 5;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
var800a2380[i].unk004 = 2;
|
||||
func0004f5e0(i == 4 ? NULL : &var800a3180[i], 0);
|
||||
break;
|
||||
case 6:
|
||||
func0004f5e0(i == 4 ? NULL : &var800a3180[i], 0);
|
||||
var800a2380[i].unk004 = 7;
|
||||
break;
|
||||
case 8:
|
||||
var800a2380[i].unk004 = 2;
|
||||
var800a2380[i].unk2b4 = -1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0001561c
|
||||
.late_rodata
|
||||
glabel var700541e4
|
||||
.word 0x700156a4
|
||||
glabel var700541e8
|
||||
.word 0x700156d8
|
||||
glabel var700541ec
|
||||
.word 0x700157a8
|
||||
glabel var700541f0
|
||||
.word 0x700157d8
|
||||
glabel var700541f4
|
||||
.word 0x7001581c
|
||||
glabel var700541f8
|
||||
.word 0x7001580c
|
||||
glabel var700541fc
|
||||
.word 0x00000000
|
||||
.text
|
||||
/* 1561c: 27bdffd0 */ addiu $sp,$sp,-48
|
||||
/* 15620: afb30020 */ sw $s3,0x20($sp)
|
||||
/* 15624: afb00014 */ sw $s0,0x14($sp)
|
||||
/* 15628: afb50028 */ sw $s5,0x28($sp)
|
||||
/* 1562c: afb40024 */ sw $s4,0x24($sp)
|
||||
/* 15630: afb2001c */ sw $s2,0x1c($sp)
|
||||
/* 15634: afb10018 */ sw $s1,0x18($sp)
|
||||
/* 15638: 3c10800a */ lui $s0,%hi(var800a2380)
|
||||
/* 1563c: 3c13800a */ lui $s3,%hi(var800a3180)
|
||||
/* 15640: afbf002c */ sw $ra,0x2c($sp)
|
||||
/* 15644: 26733180 */ addiu $s3,$s3,%lo(var800a3180)
|
||||
/* 15648: 26102380 */ addiu $s0,$s0,%lo(var800a2380)
|
||||
/* 1564c: 00008825 */ or $s1,$zero,$zero
|
||||
/* 15650: 24120004 */ addiu $s2,$zero,0x4
|
||||
/* 15654: 24140068 */ addiu $s4,$zero,0x68
|
||||
/* 15658: 24150002 */ addiu $s5,$zero,0x2
|
||||
.L0001565c:
|
||||
/* 1565c: 8e0e0010 */ lw $t6,0x10($s0)
|
||||
/* 15660: 2401000b */ addiu $at,$zero,0xb
|
||||
/* 15664: 55c1006e */ bnel $t6,$at,.L00015820
|
||||
/* 15668: 26310001 */ addiu $s1,$s1,0x1
|
||||
/* 1566c: 8e0f0000 */ lw $t7,0x0($s0)
|
||||
/* 15670: 24010001 */ addiu $at,$zero,0x1
|
||||
/* 15674: 55e1006a */ bnel $t7,$at,.L00015820
|
||||
/* 15678: 26310001 */ addiu $s1,$s1,0x1
|
||||
/* 1567c: 8e180004 */ lw $t8,0x4($s0)
|
||||
/* 15680: 2719fffd */ addiu $t9,$t8,-3
|
||||
/* 15684: 2f210006 */ sltiu $at,$t9,0x6
|
||||
/* 15688: 10200064 */ beqz $at,.L0001581c
|
||||
/* 1568c: 0019c880 */ sll $t9,$t9,0x2
|
||||
/* 15690: 3c017005 */ lui $at,%hi(var700541e4)
|
||||
/* 15694: 00390821 */ addu $at,$at,$t9
|
||||
/* 15698: 8c3941e4 */ lw $t9,%lo(var700541e4)($at)
|
||||
/* 1569c: 03200008 */ jr $t9
|
||||
/* 156a0: 00000000 */ nop
|
||||
/* 156a4: 24080004 */ addiu $t0,$zero,0x4
|
||||
/* 156a8: 16320003 */ bne $s1,$s2,.L000156b8
|
||||
/* 156ac: ae080004 */ sw $t0,0x4($s0)
|
||||
/* 156b0: 10000005 */ b .L000156c8
|
||||
/* 156b4: 00002025 */ or $a0,$zero,$zero
|
||||
.L000156b8:
|
||||
/* 156b8: 02340019 */ multu $s1,$s4
|
||||
/* 156bc: 00004812 */ mflo $t1
|
||||
/* 156c0: 02692021 */ addu $a0,$s3,$t1
|
||||
/* 156c4: 00000000 */ nop
|
||||
.L000156c8:
|
||||
/* 156c8: 0c013d78 */ jal func0004f5e0
|
||||
/* 156cc: 24050001 */ addiu $a1,$zero,0x1
|
||||
/* 156d0: 10000053 */ b .L00015820
|
||||
/* 156d4: 26310001 */ addiu $s1,$s1,0x1
|
||||
/* 156d8: 8e030284 */ lw $v1,0x284($s0)
|
||||
/* 156dc: 2401ffff */ addiu $at,$zero,-1
|
||||
/* 156e0: 50610024 */ beql $v1,$at,.L00015774
|
||||
/* 156e4: 3c013f80 */ lui $at,0x3f80
|
||||
/* 156e8: 8e02028c */ lw $v0,0x28c($s0)
|
||||
/* 156ec: 1440000d */ bnez $v0,.L00015724
|
||||
/* 156f0: 00000000 */ nop
|
||||
/* 156f4: 16320003 */ bne $s1,$s2,.L00015704
|
||||
/* 156f8: 00000000 */ nop
|
||||
/* 156fc: 10000005 */ b .L00015714
|
||||
/* 15700: 00002025 */ or $a0,$zero,$zero
|
||||
.L00015704:
|
||||
/* 15704: 02340019 */ multu $s1,$s4
|
||||
/* 15708: 00005012 */ mflo $t2
|
||||
/* 1570c: 026a2021 */ addu $a0,$s3,$t2
|
||||
/* 15710: 00000000 */ nop
|
||||
.L00015714:
|
||||
/* 15714: 0c013d78 */ jal func0004f5e0
|
||||
/* 15718: 24050001 */ addiu $a1,$zero,0x1
|
||||
/* 1571c: 1000000e */ b .L00015758
|
||||
/* 15720: 8e02028c */ lw $v0,0x28c($s0)
|
||||
.L00015724:
|
||||
/* 15724: 5462000d */ bnel $v1,$v0,.L0001575c
|
||||
/* 15728: 8e0d0288 */ lw $t5,0x288($s0)
|
||||
/* 1572c: 16320003 */ bne $s1,$s2,.L0001573c
|
||||
/* 15730: 00000000 */ nop
|
||||
/* 15734: 10000005 */ b .L0001574c
|
||||
/* 15738: 00002025 */ or $a0,$zero,$zero
|
||||
.L0001573c:
|
||||
/* 1573c: 02340019 */ multu $s1,$s4
|
||||
/* 15740: 00005812 */ mflo $t3
|
||||
/* 15744: 026b2021 */ addu $a0,$s3,$t3
|
||||
/* 15748: 00000000 */ nop
|
||||
.L0001574c:
|
||||
/* 1574c: 0c013d78 */ jal func0004f5e0
|
||||
/* 15750: 00002825 */ or $a1,$zero,$zero
|
||||
/* 15754: 8e02028c */ lw $v0,0x28c($s0)
|
||||
.L00015758:
|
||||
/* 15758: 8e0d0288 */ lw $t5,0x288($s0)
|
||||
.L0001575c:
|
||||
/* 1575c: 244c0001 */ addiu $t4,$v0,0x1
|
||||
/* 15760: ae0c028c */ sw $t4,0x28c($s0)
|
||||
/* 15764: 55ac0003 */ bnel $t5,$t4,.L00015774
|
||||
/* 15768: 3c013f80 */ lui $at,0x3f80
|
||||
/* 1576c: ae00028c */ sw $zero,0x28c($s0)
|
||||
/* 15770: 3c013f80 */ lui $at,0x3f80
|
||||
.L00015774:
|
||||
/* 15774: 44813000 */ mtc1 $at,$f6
|
||||
/* 15778: c60402b4 */ lwc1 $f4,0x2b4($s0)
|
||||
/* 1577c: 44808000 */ mtc1 $zero,$f16
|
||||
/* 15780: 240f0005 */ addiu $t7,$zero,0x5
|
||||
/* 15784: 46062201 */ sub.s $f8,$f4,$f6
|
||||
/* 15788: e60802b4 */ swc1 $f8,0x2b4($s0)
|
||||
/* 1578c: c60a02b4 */ lwc1 $f10,0x2b4($s0)
|
||||
/* 15790: 4610503c */ c.lt.s $f10,$f16
|
||||
/* 15794: 00000000 */ nop
|
||||
/* 15798: 45020021 */ bc1fl .L00015820
|
||||
/* 1579c: 26310001 */ addiu $s1,$s1,0x1
|
||||
/* 157a0: 1000001e */ b .L0001581c
|
||||
/* 157a4: ae0f0004 */ sw $t7,0x4($s0)
|
||||
/* 157a8: 16320003 */ bne $s1,$s2,.L000157b8
|
||||
/* 157ac: ae150004 */ sw $s5,0x4($s0)
|
||||
/* 157b0: 10000005 */ b .L000157c8
|
||||
/* 157b4: 00002025 */ or $a0,$zero,$zero
|
||||
.L000157b8:
|
||||
/* 157b8: 02340019 */ multu $s1,$s4
|
||||
/* 157bc: 0000c012 */ mflo $t8
|
||||
/* 157c0: 02782021 */ addu $a0,$s3,$t8
|
||||
/* 157c4: 00000000 */ nop
|
||||
.L000157c8:
|
||||
/* 157c8: 0c013d78 */ jal func0004f5e0
|
||||
/* 157cc: 00002825 */ or $a1,$zero,$zero
|
||||
/* 157d0: 10000013 */ b .L00015820
|
||||
/* 157d4: 26310001 */ addiu $s1,$s1,0x1
|
||||
/* 157d8: 16320003 */ bne $s1,$s2,.L000157e8
|
||||
/* 157dc: 00000000 */ nop
|
||||
/* 157e0: 10000005 */ b .L000157f8
|
||||
/* 157e4: 00002025 */ or $a0,$zero,$zero
|
||||
.L000157e8:
|
||||
/* 157e8: 02340019 */ multu $s1,$s4
|
||||
/* 157ec: 0000c812 */ mflo $t9
|
||||
/* 157f0: 02792021 */ addu $a0,$s3,$t9
|
||||
/* 157f4: 00000000 */ nop
|
||||
.L000157f8:
|
||||
/* 157f8: 0c013d78 */ jal func0004f5e0
|
||||
/* 157fc: 00002825 */ or $a1,$zero,$zero
|
||||
/* 15800: 24080007 */ addiu $t0,$zero,0x7
|
||||
/* 15804: 10000005 */ b .L0001581c
|
||||
/* 15808: ae080004 */ sw $t0,0x4($s0)
|
||||
/* 1580c: 3c01bf80 */ lui $at,0xbf80
|
||||
/* 15810: 44819000 */ mtc1 $at,$f18
|
||||
/* 15814: ae150004 */ sw $s5,0x4($s0)
|
||||
/* 15818: e61202b4 */ swc1 $f18,0x2b4($s0)
|
||||
.L0001581c:
|
||||
/* 1581c: 26310001 */ addiu $s1,$s1,0x1
|
||||
.L00015820:
|
||||
/* 15820: 1632ff8e */ bne $s1,$s2,.L0001565c
|
||||
/* 15824: 261002cc */ addiu $s0,$s0,0x2cc
|
||||
/* 15828: 8fbf002c */ lw $ra,0x2c($sp)
|
||||
/* 1582c: 8fb00014 */ lw $s0,0x14($sp)
|
||||
/* 15830: 8fb10018 */ lw $s1,0x18($sp)
|
||||
/* 15834: 8fb2001c */ lw $s2,0x1c($sp)
|
||||
/* 15838: 8fb30020 */ lw $s3,0x20($sp)
|
||||
/* 1583c: 8fb40024 */ lw $s4,0x24($sp)
|
||||
/* 15840: 8fb50028 */ lw $s5,0x28($sp)
|
||||
/* 15844: 03e00008 */ jr $ra
|
||||
/* 15848: 27bd0030 */ addiu $sp,$sp,0x30
|
||||
glabel func0001584c
|
||||
/* 1584c: 00000000 */ nop
|
||||
/* 15850: 03e00008 */ jr $ra
|
||||
/* 15854: 00000000 */ nop
|
||||
|
||||
Reference in New Issue
Block a user