Decompile aiSetPortalFlag

This commit is contained in:
Ryan Dwyer
2020-01-14 18:17:09 +10:00
parent d7cd3c7426
commit 8574db6ae5
9 changed files with 44 additions and 55 deletions
+10 -27
View File
@@ -13845,33 +13845,16 @@ glabel ai01cf
/**
* @cmd 01d0
*/
GLOBAL_ASM(
glabel ai01d0
/* f05f4bc: 3c06800a */ lui $a2,%hi(g_Vars)
/* f05f4c0: 24c69fc0 */ addiu $a2,$a2,%lo(g_Vars)
/* f05f4c4: 8cce0434 */ lw $t6,0x434($a2)
/* f05f4c8: 8ccf0438 */ lw $t7,0x438($a2)
/* f05f4cc: 3c0b800a */ lui $t3,0x800a
/* f05f4d0: 8d6b4cc8 */ lw $t3,0x4cc8($t3)
/* f05f4d4: 01cf1821 */ addu $v1,$t6,$t7
/* f05f4d8: 90780002 */ lbu $t8,0x2($v1)
/* f05f4dc: 90680003 */ lbu $t0,0x3($v1)
/* f05f4e0: 906e0004 */ lbu $t6,0x4($v1)
/* f05f4e4: 0018ca00 */ sll $t9,$t8,0x8
/* f05f4e8: 03282025 */ or $a0,$t9,$t0
/* f05f4ec: 00044c00 */ sll $t1,$a0,0x10
/* f05f4f0: 00095403 */ sra $t2,$t1,0x10
/* f05f4f4: 000a60c0 */ sll $t4,$t2,0x3
/* f05f4f8: 016c2821 */ addu $a1,$t3,$t4
/* f05f4fc: 90ad0006 */ lbu $t5,0x6($a1)
/* f05f500: 00001025 */ or $v0,$zero,$zero
/* f05f504: 01ae7825 */ or $t7,$t5,$t6
/* f05f508: a0af0006 */ sb $t7,0x6($a1)
/* f05f50c: 8cd80438 */ lw $t8,0x438($a2)
/* f05f510: 27190005 */ addiu $t9,$t8,0x5
/* f05f514: 03e00008 */ jr $ra
/* f05f518: acd90438 */ sw $t9,0x438($a2)
);
bool aiSetPortalFlag(void)
{
u8 *cmd = g_Vars.ailist + g_Vars.aioffset;
s16 portalnum = cmd[3] | (cmd[2] << 8);
g_Portals[portalnum].flags |= cmd[4];
g_Vars.aioffset += 5;
return false;
}
/**
* @cmd 01d1
+2 -2
View File
@@ -1483,8 +1483,8 @@ glabel func0f001c0c
/* f001c3c: 3c018006 */ lui $at,0x8006
/* f001c40: 0fc008ee */ jal func0f0023b8
/* f001c44: ac201440 */ sw $zero,0x1440($at)
/* f001c48: 3c17800a */ lui $s7,%hi(var800a4cc8)
/* f001c4c: 26f74cc8 */ addiu $s7,$s7,%lo(var800a4cc8)
/* f001c48: 3c17800a */ lui $s7,%hi(g_Portals)
/* f001c4c: 26f74cc8 */ addiu $s7,$s7,%lo(g_Portals)
/* f001c50: 8ee30000 */ lw $v1,0x0($s7)
/* f001c54: 3c10800a */ lui $s0,%hi(var8009cadc)
/* f001c58: 2610cadc */ addiu $s0,$s0,%lo(var8009cadc)
+20 -20
View File
@@ -4386,8 +4386,8 @@ glabel func0f15b908
/* f15bb50: 00000000 */ sll $zero,$zero,0x0
/* f15bb54: 3c0e800a */ lui $t6,0x800a
/* f15bb58: 8dce4920 */ lw $t6,0x4920($t6)
/* f15bb5c: 3c17800a */ lui $s7,%hi(var800a4cc8)
/* f15bb60: 26f74cc8 */ addiu $s7,$s7,%lo(var800a4cc8)
/* f15bb5c: 3c17800a */ lui $s7,%hi(g_Portals)
/* f15bb60: 26f74cc8 */ addiu $s7,$s7,%lo(g_Portals)
/* f15bb64: 15c00324 */ bnez $t6,.L0f15c7f8
/* f15bb68: 24050004 */ addiu $a1,$zero,0x4
/* f15bb6c: 8ef00000 */ lw $s0,0x0($s7)
@@ -11300,9 +11300,9 @@ glabel func0f161c08
/* f161c48: 846c000e */ lh $t4,0xe($v1)
/* f161c4c: 8d6b4ce0 */ lw $t3,0x4ce0($t3)
/* f161c50: 3c08800a */ lui $t0,0x800a
/* f161c54: 3c0a800a */ lui $t2,%hi(var800a4cc8)
/* f161c54: 3c0a800a */ lui $t2,%hi(g_Portals)
/* f161c58: 000c6840 */ sll $t5,$t4,0x1
/* f161c5c: 254a4cc8 */ addiu $t2,$t2,%lo(var800a4cc8)
/* f161c5c: 254a4cc8 */ addiu $t2,$t2,%lo(g_Portals)
/* f161c60: 8d084ccc */ lw $t0,0x4ccc($t0)
/* f161c64: c4e20008 */ lwc1 $f2,0x8($a3)
/* f161c68: c4ec0000 */ lwc1 $f12,0x0($a3)
@@ -12000,14 +12000,14 @@ glabel func0f1625ec
/* f162628: 100001a6 */ beqz $zero,.L0f162cc4
/* f16262c: 00801025 */ or $v0,$a0,$zero
.L0f162630:
/* f162630: 3c17800a */ lui $s7,%hi(var800a4cc8)
/* f162630: 3c17800a */ lui $s7,%hi(g_Portals)
/* f162634: 3c15800a */ lui $s5,%hi(var800a65c0)
/* f162638: 3c14800a */ lui $s4,%hi(g_RoomPtrs)
/* f16263c: 3c138008 */ lui $s3,%hi(var8007fcac)
/* f162640: 2673fcac */ addiu $s3,$s3,%lo(var8007fcac)
/* f162644: 26944928 */ addiu $s4,$s4,%lo(g_RoomPtrs)
/* f162648: 26b565c0 */ addiu $s5,$s5,%lo(var800a65c0)
/* f16264c: 26f74cc8 */ addiu $s7,$s7,%lo(var800a4cc8)
/* f16264c: 26f74cc8 */ addiu $s7,$s7,%lo(g_Portals)
/* f162650: 24160001 */ addiu $s6,$zero,0x1
.L0f162654:
/* f162654: 92040000 */ lbu $a0,0x0($s0)
@@ -13350,8 +13350,8 @@ GLOBAL_ASM(
glabel func0f16397c
/* f16397c: 27bdff88 */ addiu $sp,$sp,-120
/* f163980: afb70030 */ sw $s7,0x30($sp)
/* f163984: 3c17800a */ lui $s7,%hi(var800a4cc8)
/* f163988: 26f74cc8 */ addiu $s7,$s7,%lo(var800a4cc8)
/* f163984: 3c17800a */ lui $s7,%hi(g_Portals)
/* f163988: 26f74cc8 */ addiu $s7,$s7,%lo(g_Portals)
/* f16398c: afb00014 */ sw $s0,0x14($sp)
/* f163990: 8eea0000 */ lw $t2,0x0($s7)
/* f163994: 3c108008 */ lui $s0,%hi(var8007fc38)
@@ -14211,10 +14211,10 @@ glabel func0f1645a8
/* f1645dc: 00c08825 */ or $s1,$a2,$zero
/* f1645e0: 1920002c */ blez $t1,.L0f164694
/* f1645e4: 00001825 */ or $v1,$zero,$zero
/* f1645e8: 3c0d800a */ lui $t5,%hi(var800a4cc8)
/* f1645e8: 3c0d800a */ lui $t5,%hi(g_Portals)
/* f1645ec: 3c0c800a */ lui $t4,%hi(var800a4ce0)
/* f1645f0: 258c4ce0 */ addiu $t4,$t4,%lo(var800a4ce0)
/* f1645f4: 25ad4cc8 */ addiu $t5,$t5,%lo(var800a4cc8)
/* f1645f4: 25ad4cc8 */ addiu $t5,$t5,%lo(g_Portals)
/* f1645f8: 00002825 */ or $a1,$zero,$zero
/* f1645fc: 8518000e */ lh $t8,0xe($t0)
.L0f164600:
@@ -14444,10 +14444,10 @@ glabel func0f1648cc
/* f164904: 00002825 */ or $a1,$zero,$zero
/* f164908: 19000047 */ blez $t0,.L0f164a28
/* f16490c: 00005025 */ or $t2,$zero,$zero
/* f164910: 3c11800a */ lui $s1,%hi(var800a4cc8)
/* f164910: 3c11800a */ lui $s1,%hi(g_Portals)
/* f164914: 3c10800a */ lui $s0,%hi(var800a4ce0)
/* f164918: 26104ce0 */ addiu $s0,$s0,%lo(var800a4ce0)
/* f16491c: 26314cc8 */ addiu $s1,$s1,%lo(var800a4cc8)
/* f16491c: 26314cc8 */ addiu $s1,$s1,%lo(g_Portals)
/* f164920: 2412000c */ addiu $s2,$zero,0xc
.L0f164924:
/* f164924: 84ef000e */ lh $t7,0xe($a3)
@@ -14552,8 +14552,8 @@ glabel func0f1648cc
GLOBAL_ASM(
glabel func0f164a88
/* f164a88: 3c06800a */ lui $a2,%hi(var800a4cc8)
/* f164a8c: 24c64cc8 */ addiu $a2,$a2,%lo(var800a4cc8)
/* f164a88: 3c06800a */ lui $a2,%hi(g_Portals)
/* f164a8c: 24c64cc8 */ addiu $a2,$a2,%lo(g_Portals)
/* f164a90: 8cce0000 */ lw $t6,0x0($a2)
/* f164a94: 000418c0 */ sll $v1,$a0,0x3
/* f164a98: 01c32821 */ addu $a1,$t6,$v1
@@ -14838,8 +14838,8 @@ GLOBAL_ASM(
glabel func0f164e8c
/* f164e8c: 27bdffb8 */ addiu $sp,$sp,-72
/* f164e90: afb6003c */ sw $s6,0x3c($sp)
/* f164e94: 3c16800a */ lui $s6,%hi(var800a4cc8)
/* f164e98: 26d64cc8 */ addiu $s6,$s6,%lo(var800a4cc8)
/* f164e94: 3c16800a */ lui $s6,%hi(g_Portals)
/* f164e98: 26d64cc8 */ addiu $s6,$s6,%lo(g_Portals)
/* f164e9c: 8ece0000 */ lw $t6,0x0($s6)
/* f164ea0: afbf0044 */ sw $ra,0x44($sp)
/* f164ea4: afb70040 */ sw $s7,0x40($sp)
@@ -15019,7 +15019,7 @@ glabel func0f1650d0
/* f1650fc: afa600b8 */ sw $a2,0xb8($sp)
/* f165100: c4840000 */ lwc1 $f4,0x0($a0)
/* f165104: 2401ffff */ addiu $at,$zero,-1
/* f165108: 3c14800a */ lui $s4,%hi(var800a4cc8)
/* f165108: 3c14800a */ lui $s4,%hi(g_Portals)
/* f16510c: e7a4009c */ swc1 $f4,0x9c($sp)
/* f165110: c4860004 */ lwc1 $f6,0x4($a0)
/* f165114: 00e0b825 */ or $s7,$a3,$zero
@@ -15030,7 +15030,7 @@ glabel func0f1650d0
/* f165128: 00c09825 */ or $s3,$a2,$zero
/* f16512c: e7a800a4 */ swc1 $f8,0xa4($sp)
/* f165130: c4aa0000 */ lwc1 $f10,0x0($a1)
/* f165134: 26944cc8 */ addiu $s4,$s4,%lo(var800a4cc8)
/* f165134: 26944cc8 */ addiu $s4,$s4,%lo(g_Portals)
/* f165138: 8fb900b8 */ lw $t9,0xb8($sp)
/* f16513c: e7aa0090 */ swc1 $f10,0x90($sp)
/* f165140: c4b00004 */ lwc1 $f16,0x4($a1)
@@ -15201,8 +15201,8 @@ glabel func0f165360
/* f16537c: 3c017f1b */ lui $at,%hi(var7f1b76d0)
/* f165380: c42d76d0 */ lwc1 $f13,%lo(var7f1b76d0)($at)
/* f165384: c50c000c */ lwc1 $f12,0xc($t0)
/* f165388: 3c08800a */ lui $t0,%hi(var800a4cc8)
/* f16538c: 25084cc8 */ addiu $t0,$t0,%lo(var800a4cc8)
/* f165388: 3c08800a */ lui $t0,%hi(g_Portals)
/* f16538c: 25084cc8 */ addiu $t0,$t0,%lo(g_Portals)
/* f165390: 8d080000 */ lw $t0,0x0($t0)
/* f165394: 000448c0 */ sll $t1,$a0,0x3
/* f165398: 01284820 */ add $t1,$t1,$t0
+1 -1
View File
@@ -22928,7 +22928,7 @@ u32 var800a4cb8 = 0;
u32 var800a4cbc = 0;
u32 var800a4cc0 = 0;
u32 var800a4cc4 = 0;
u32 var800a4cc8 = 0;
struct portal *g_Portals = NULL;
u32 var800a4ccc = 0;
u32 var800a4cd0 = 0;
u32 var800a4cd4 = 0;
+1 -1
View File
@@ -427,7 +427,7 @@
/*0x01cd*/ bool ai01cd(void);
/*0x01ce*/ bool ai01ce(void);
/*0x01cf*/ bool ai01cf(void);
/*0x01d0*/ bool ai01d0(void);
/*0x01d0*/ bool aiSetPortalFlag(void);
/*0x01d1*/ bool aiSetObjPartVisible(void);
/*0x01d2*/ bool aiChrEmitSparks(void);
/*0x01d3*/ bool aiSetDrCarollImages(void);
+1 -1
View File
@@ -749,7 +749,7 @@ extern u32 var800a4bf0;
extern u32 var800a4bf8;
extern u32 var800a4cc0;
extern u32 var800a4cc4;
extern u32 var800a4cc8;
extern struct portal *g_Portals;
extern u32 var800a4ccc;
extern u32 var800a4cd0;
extern u32 var800a4cd4;
+6
View File
@@ -4578,4 +4578,10 @@ struct scenariodata {
};
};
struct portal {
u32 unk00;
u16 unk04;
u8 flags;
};
#endif
+2 -2
View File
@@ -2336,7 +2336,7 @@ glabel func00018148
/* 181e8: 240100ff */ addiu $at,$zero,0xff
/* 181ec: 312a00ff */ andi $t2,$t1,0xff
/* 181f0: 15410010 */ bne $t2,$at,.L00018234
/* 181f4: 3c14800a */ lui $s4,%hi(var800a4cc8)
/* 181f4: 3c14800a */ lui $s4,%hi(g_Portals)
/* 181f8: 3c038008 */ lui $v1,0x8008
/* 181fc: 8c63fc40 */ lw $v1,-0x3c0($v1)
/* 18200: 3c0b800a */ lui $t3,0x800a
@@ -2355,7 +2355,7 @@ glabel func00018148
/* 1822c: 3c018006 */ lui $at,0x8006
/* 18230: a020ef20 */ sb $zero,-0x10e0($at)
.L00018234:
/* 18234: 26944cc8 */ addiu $s4,$s4,%lo(var800a4cc8)
/* 18234: 26944cc8 */ addiu $s4,$s4,%lo(g_Portals)
/* 18238: 87b5009c */ lh $s5,0x9c($sp)
.L0001823c:
/* 1823c: a7a4007c */ sh $a0,0x7c($sp)
+1 -1
View File
@@ -14599,7 +14599,7 @@ bool (*g_CommandPointers[])(void) = {
/*0x01cd*/ ai01cd,
/*0x01ce*/ ai01ce,
/*0x01cf*/ ai01cf,
/*0x01d0*/ ai01d0,
/*0x01d0*/ aiSetPortalFlag,
/*0x01d1*/ aiSetObjPartVisible,
/*0x01d2*/ aiChrEmitSparks,
/*0x01d3*/ aiSetDrCarollImages,