Decompile func000153c4

This commit is contained in:
Ryan Dwyer
2020-10-31 22:28:50 +10:00
parent fc4e36276c
commit 8b4f6bfd38
2 changed files with 33 additions and 142 deletions
+1 -1
View File
@@ -5443,7 +5443,7 @@ struct var800a2380 {
/*0x2a8*/ u32 unk2a8;
/*0x2ac*/ u32 unk2ac;
/*0x2b0*/ u32 unk2b0;
/*0x2b4*/ u32 unk2b4;
/*0x2b4*/ f32 unk2b4;
/*0x2b8*/ u32 unk2b8;
/*0x2bc*/ u32 unk2bc;
/*0x2c0*/ u32 unk2c0;
+32 -141
View File
@@ -995,147 +995,38 @@ void func000152d0(s8 playernum, s32 *arg1, s32 *arg2)
*arg2 = -1;
}
GLOBAL_ASM(
glabel func000153c4
/* 153c4: 27bdffd8 */ addiu $sp,$sp,-40
/* 153c8: 00043600 */ sll $a2,$a0,0x18
/* 153cc: 00067603 */ sra $t6,$a2,0x18
/* 153d0: 24010004 */ addiu $at,$zero,0x4
/* 153d4: 01c03025 */ or $a2,$t6,$zero
/* 153d8: afbf0014 */ sw $ra,0x14($sp)
/* 153dc: afa40028 */ sw $a0,0x28($sp)
/* 153e0: 11c10070 */ beq $t6,$at,.L000155a4
/* 153e4: afa5002c */ sw $a1,0x2c($sp)
/* 153e8: 000e7880 */ sll $t7,$t6,0x2
/* 153ec: 01ee7823 */ subu $t7,$t7,$t6
/* 153f0: 000f7880 */ sll $t7,$t7,0x2
/* 153f4: 01ee7823 */ subu $t7,$t7,$t6
/* 153f8: 000f7880 */ sll $t7,$t7,0x2
/* 153fc: 01ee7821 */ addu $t7,$t7,$t6
/* 15400: 000f7880 */ sll $t7,$t7,0x2
/* 15404: 01ee7823 */ subu $t7,$t7,$t6
/* 15408: 3c18800a */ lui $t8,%hi(var800a2380)
/* 1540c: 27182380 */ addiu $t8,$t8,%lo(var800a2380)
/* 15410: 000f7880 */ sll $t7,$t7,0x2
/* 15414: 01f8c821 */ addu $t9,$t7,$t8
/* 15418: afb9001c */ sw $t9,0x1c($sp)
/* 1541c: 8f220000 */ lw $v0,0x0($t9)
/* 15420: 24010002 */ addiu $at,$zero,0x2
/* 15424: 1041005f */ beq $v0,$at,.L000155a4
/* 15428: 24010003 */ addiu $at,$zero,0x3
/* 1542c: 5041005e */ beql $v0,$at,.L000155a8
/* 15430: 8fbf0014 */ lw $ra,0x14($sp)
/* 15434: 50a00005 */ beqzl $a1,.L0001544c
/* 15438: 24010004 */ addiu $at,$zero,0x4
/* 1543c: 0c00543a */ jal func000150e8
/* 15440: a3ae002b */ sb $t6,0x2b($sp)
/* 15444: 83a6002b */ lb $a2,0x2b($sp)
/* 15448: 24010004 */ addiu $at,$zero,0x4
.L0001544c:
/* 1544c: 14c10003 */ bne $a2,$at,.L0001545c
/* 15450: 3c04800a */ lui $a0,%hi(var80099e78)
/* 15454: 10000009 */ b .L0001547c
/* 15458: 00003825 */ or $a3,$zero,$zero
.L0001545c:
/* 1545c: 00064880 */ sll $t1,$a2,0x2
/* 15460: 01264823 */ subu $t1,$t1,$a2
/* 15464: 00094880 */ sll $t1,$t1,0x2
/* 15468: 01264821 */ addu $t1,$t1,$a2
/* 1546c: 3c0a800a */ lui $t2,%hi(var800a3180)
/* 15470: 254a3180 */ addiu $t2,$t2,%lo(var800a3180)
/* 15474: 000948c0 */ sll $t1,$t1,0x3
/* 15478: 012a3821 */ addu $a3,$t1,$t2
.L0001547c:
/* 1547c: 24849e78 */ addiu $a0,$a0,%lo(var80099e78)
/* 15480: 00e02825 */ or $a1,$a3,$zero
/* 15484: 0c013e15 */ jal func0004f854
/* 15488: a3a6002b */ sb $a2,0x2b($sp)
/* 1548c: 14400034 */ bnez $v0,.L00015560
/* 15490: 83a6002b */ lb $a2,0x2b($sp)
/* 15494: 24010004 */ addiu $at,$zero,0x4
/* 15498: 14c10003 */ bne $a2,$at,.L000154a8
/* 1549c: 00002825 */ or $a1,$zero,$zero
/* 154a0: 10000009 */ b .L000154c8
/* 154a4: 00003825 */ or $a3,$zero,$zero
.L000154a8:
/* 154a8: 00065880 */ sll $t3,$a2,0x2
/* 154ac: 01665823 */ subu $t3,$t3,$a2
/* 154b0: 000b5880 */ sll $t3,$t3,0x2
/* 154b4: 01665821 */ addu $t3,$t3,$a2
/* 154b8: 3c0c800a */ lui $t4,%hi(var800a3180)
/* 154bc: 258c3180 */ addiu $t4,$t4,%lo(var800a3180)
/* 154c0: 000b58c0 */ sll $t3,$t3,0x3
/* 154c4: 016c3821 */ addu $a3,$t3,$t4
.L000154c8:
/* 154c8: 00e02025 */ or $a0,$a3,$zero
/* 154cc: 0c013d78 */ jal func0004f5e0
/* 154d0: a3a6002b */ sb $a2,0x2b($sp)
/* 154d4: 83a6002b */ lb $a2,0x2b($sp)
/* 154d8: 24010004 */ addiu $at,$zero,0x4
/* 154dc: 00002825 */ or $a1,$zero,$zero
/* 154e0: 14c10003 */ bne $a2,$at,.L000154f0
/* 154e4: 00066880 */ sll $t5,$a2,0x2
/* 154e8: 10000008 */ b .L0001550c
/* 154ec: 00003825 */ or $a3,$zero,$zero
.L000154f0:
/* 154f0: 01a66823 */ subu $t5,$t5,$a2
/* 154f4: 000d6880 */ sll $t5,$t5,0x2
/* 154f8: 01a66821 */ addu $t5,$t5,$a2
/* 154fc: 3c0e800a */ lui $t6,%hi(var800a3180)
/* 15500: 25ce3180 */ addiu $t6,$t6,%lo(var800a3180)
/* 15504: 000d68c0 */ sll $t5,$t5,0x3
/* 15508: 01ae3821 */ addu $a3,$t5,$t6
.L0001550c:
/* 1550c: 00e02025 */ or $a0,$a3,$zero
/* 15510: 0c013d78 */ jal func0004f5e0
/* 15514: a3a6002b */ sb $a2,0x2b($sp)
/* 15518: 83a6002b */ lb $a2,0x2b($sp)
/* 1551c: 24010004 */ addiu $at,$zero,0x4
/* 15520: 00002825 */ or $a1,$zero,$zero
/* 15524: 14c10003 */ bne $a2,$at,.L00015534
/* 15528: 00067880 */ sll $t7,$a2,0x2
/* 1552c: 10000008 */ b .L00015550
/* 15530: 00003825 */ or $a3,$zero,$zero
.L00015534:
/* 15534: 01e67823 */ subu $t7,$t7,$a2
/* 15538: 000f7880 */ sll $t7,$t7,0x2
/* 1553c: 01e67821 */ addu $t7,$t7,$a2
/* 15540: 3c18800a */ lui $t8,%hi(var800a3180)
/* 15544: 27183180 */ addiu $t8,$t8,%lo(var800a3180)
/* 15548: 000f78c0 */ sll $t7,$t7,0x3
/* 1554c: 01f83821 */ addu $a3,$t7,$t8
.L00015550:
/* 15550: 00e02025 */ or $a0,$a3,$zero
/* 15554: 0c013d78 */ jal func0004f5e0
/* 15558: a3a6002b */ sb $a2,0x2b($sp)
/* 1555c: 83a6002b */ lb $a2,0x2b($sp)
.L00015560:
/* 15560: 8fb9002c */ lw $t9,0x2c($sp)
/* 15564: 53200004 */ beqzl $t9,.L00015578
/* 15568: 8fa3001c */ lw $v1,0x1c($sp)
/* 1556c: 0c005451 */ jal func00015144
/* 15570: a3a6002b */ sb $a2,0x2b($sp)
/* 15574: 8fa3001c */ lw $v1,0x1c($sp)
.L00015578:
/* 15578: 24010006 */ addiu $at,$zero,0x6
/* 1557c: 8c620004 */ lw $v0,0x4($v1)
/* 15580: 10410004 */ beq $v0,$at,.L00015594
/* 15584: 24010007 */ addiu $at,$zero,0x7
/* 15588: 10410002 */ beq $v0,$at,.L00015594
/* 1558c: 24080005 */ addiu $t0,$zero,0x5
/* 15590: ac680004 */ sw $t0,0x4($v1)
.L00015594:
/* 15594: 3c01bf80 */ lui $at,0xbf80
/* 15598: 44812000 */ mtc1 $at,$f4
/* 1559c: 00000000 */ nop
/* 155a0: e46402b4 */ swc1 $f4,0x2b4($v1)
.L000155a4:
/* 155a4: 8fbf0014 */ lw $ra,0x14($sp)
.L000155a8:
/* 155a8: 27bd0028 */ addiu $sp,$sp,0x28
/* 155ac: 03e00008 */ jr $ra
/* 155b0: 00000000 */ nop
);
void func000153c4(s8 arg0, s32 arg1)
{
u32 stack;
if (arg0 != 4) {
if (var800a2380[arg0].unk000 != 2 && var800a2380[arg0].unk000 != 3) {
if (arg1) {
func000150e8();
}
if (func0004f854(&var80099e78, arg0 == 4 ? NULL : &var800a3180[arg0], arg0) == 0) {
func0004f5e0(arg0 == 4 ? NULL : &var800a3180[arg0], 0);
func0004f5e0(arg0 == 4 ? NULL : &var800a3180[arg0], 0);
func0004f5e0(arg0 == 4 ? NULL : &var800a3180[arg0], 0);
}
if (arg1) {
func00015144();
}
if (var800a2380[arg0].unk004 != 6 && var800a2380[arg0].unk004 != 7) {
var800a2380[arg0].unk004 = 5;
}
var800a2380[arg0].unk2b4 = -1;
}
}
if (arg0) {
// empty
}
}
s32 func000155b4(s8 index)
{