From 98605e40e56169a8eb0f4be9b445f9c3c2c1ce13 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Fri, 13 Mar 2020 19:22:15 +1000 Subject: [PATCH] Decompile func0f15cd28 --- src/game/chr/chraicommands.c | 2 +- src/game/data/data_020df0.c | 2 +- src/game/dlights.c | 16 +-- src/game/game_129900.c | 8 +- src/game/game_157db0.c | 153 ++++++++++++---------------- src/game/game_165360.c | 4 +- src/game/propobj.c | 20 ++-- src/gvars/gvars.c | 4 +- src/include/game/data/data_020df0.h | 2 +- src/include/game/game_157db0.h | 2 +- src/include/gvars/gvars.h | 4 +- src/include/types.h | 11 +- src/lib/lib_16110.c | 16 +-- 13 files changed, 116 insertions(+), 128 deletions(-) diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index baf36de19..6ba84c8dd 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -10928,7 +10928,7 @@ 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_PortalSomethings[portalnum].flags |= cmd[4]; g_Vars.aioffset += 5; return false; diff --git a/src/game/data/data_020df0.c b/src/game/data/data_020df0.c index 6ebc51855..ed1be2d19 100644 --- a/src/game/data/data_020df0.c +++ b/src/game/data/data_020df0.c @@ -7049,7 +7049,7 @@ u32 var8007fc30 = 0x00000000; u32 var8007fc34 = 0x00000000; u32 var8007fc38 = 0x00000000; u16 var8007fc3c = 0xfffe; -u32 var8007fc40 = 0x00000000; +s32 g_NumPortals = 0; u32 var8007fc44 = 0xffffffff; u32 var8007fc48 = 0xffff0000; u32 var8007fc4c = 0x00000000; diff --git a/src/game/dlights.c b/src/game/dlights.c index a41136438..9b69b36b3 100644 --- a/src/game/dlights.c +++ b/src/game/dlights.c @@ -1480,8 +1480,8 @@ glabel func0f001c0c /* f001c3c: 3c018006 */ lui $at,0x8006 /* f001c40: 0fc008ee */ jal func0f0023b8 /* f001c44: ac201440 */ sw $zero,0x1440($at) -/* f001c48: 3c17800a */ lui $s7,%hi(g_Portals) -/* f001c4c: 26f74cc8 */ addiu $s7,$s7,%lo(g_Portals) +/* f001c48: 3c17800a */ lui $s7,%hi(g_PortalSomethings) +/* f001c4c: 26f74cc8 */ addiu $s7,$s7,%lo(g_PortalSomethings) /* f001c50: 8ee30000 */ lw $v1,0x0($s7) /* f001c54: 3c10800a */ lui $s0,%hi(var8009cadc) /* f001c58: 2610cadc */ addiu $s0,$s0,%lo(var8009cadc) @@ -2356,8 +2356,8 @@ glabel func0f002844 /* f0028a0: afae0060 */ sw $t6,0x60($sp) /* f0028a4: 10e1000c */ beq $a3,$at,.L0f0028d8 /* f0028a8: ac580000 */ sw $t8,0x0($v0) -/* f0028ac: 3c08800a */ lui $t0,%hi(g_Portals) -/* f0028b0: 8d084cc8 */ lw $t0,%lo(g_Portals)($t0) +/* f0028ac: 3c08800a */ lui $t0,%hi(g_PortalSomethings) +/* f0028b0: 8d084cc8 */ lw $t0,%lo(g_PortalSomethings)($t0) /* f0028b4: 000748c0 */ sll $t1,$a3,0x3 /* f0028b8: 01091021 */ addu $v0,$t0,$t1 /* f0028bc: 84430002 */ lh $v1,0x2($v0) @@ -2396,14 +2396,14 @@ glabel func0f002844 /* f002938: 01f94021 */ addu $t0,$t7,$t9 /* f00293c: 01144821 */ addu $t1,$t0,$s4 /* f002940: 85310000 */ lh $s1,0x0($t1) -/* f002944: 3c0e800a */ lui $t6,%hi(g_Portals) +/* f002944: 3c0e800a */ lui $t6,%hi(g_PortalSomethings) /* f002948: 8faf0060 */ lw $t7,0x60($sp) /* f00294c: 00115880 */ sll $t3,$s1,0x2 /* f002950: 014b6021 */ addu $t4,$t2,$t3 /* f002954: 8d8d0000 */ lw $t5,0x0($t4) /* f002958: 11a00037 */ beqz $t5,.L0f002a38 /* f00295c: 00000000 */ sll $zero,$zero,0x0 -/* f002960: 8dce4cc8 */ lw $t6,%lo(g_Portals)($t6) +/* f002960: 8dce4cc8 */ lw $t6,%lo(g_PortalSomethings)($t6) /* f002964: 0011c0c0 */ sll $t8,$s1,0x3 /* f002968: 02a02025 */ or $a0,$s5,$zero /* f00296c: 01d81021 */ addu $v0,$t6,$t8 @@ -5239,8 +5239,8 @@ glabel func0f00505c /* f0050dc: afad0044 */ sw $t5,0x44($sp) .L0f0050e0: /* f0050e0: 8fb90070 */ lw $t9,0x70($sp) -/* f0050e4: 3c0e800a */ lui $t6,%hi(g_Portals) -/* f0050e8: 8dce4cc8 */ lw $t6,%lo(g_Portals)($t6) +/* f0050e4: 3c0e800a */ lui $t6,%hi(g_PortalSomethings) +/* f0050e8: 8dce4cc8 */ lw $t6,%lo(g_PortalSomethings)($t6) /* f0050ec: 8faf0044 */ lw $t7,0x44($sp) /* f0050f0: 0000f025 */ or $s8,$zero,$zero /* f0050f4: 13200003 */ beqz $t9,.L0f005104 diff --git a/src/game/game_129900.c b/src/game/game_129900.c index 0b40e5644..3943d78b0 100644 --- a/src/game/game_129900.c +++ b/src/game/game_129900.c @@ -802,8 +802,8 @@ glabel var7f1b5584 /* f12a530: 10400168 */ beqz $v0,.L0f12aad4 /* f12a534: 8faa0158 */ lw $t2,0x158($sp) /* f12a538: 8fa50118 */ lw $a1,0x118($sp) -/* f12a53c: 3c0c800a */ lui $t4,%hi(g_Portals) -/* f12a540: 8d8c4cc8 */ lw $t4,%lo(g_Portals)($t4) +/* f12a53c: 3c0c800a */ lui $t4,%hi(g_PortalSomethings) +/* f12a540: 8d8c4cc8 */ lw $t4,%lo(g_PortalSomethings)($t4) /* f12a544: 240fffff */ addiu $t7,$zero,-1 /* f12a548: 0005c8c0 */ sll $t9,$a1,0x3 /* f12a54c: a7af00c4 */ sh $t7,0xc4($sp) @@ -1058,8 +1058,8 @@ glabel var7f1b5584 /* f12a8ec: 4610303e */ c.le.s $f6,$f16 /* f12a8f0: 00000000 */ sll $zero,$zero,0x0 /* f12a8f4: 45000027 */ bc1f .L0f12a994 -/* f12a8f8: 3c0f800a */ lui $t7,%hi(g_Portals) -/* f12a8fc: 8def4cc8 */ lw $t7,%lo(g_Portals)($t7) +/* f12a8f8: 3c0f800a */ lui $t7,%hi(g_PortalSomethings) +/* f12a8fc: 8def4cc8 */ lw $t7,%lo(g_PortalSomethings)($t7) /* f12a900: 001060c0 */ sll $t4,$s0,0x3 /* f12a904: 87ad00c6 */ lh $t5,0xc6($sp) /* f12a908: 01ec1021 */ addu $v0,$t7,$t4 diff --git a/src/game/game_157db0.c b/src/game/game_157db0.c index 7917f9a57..363c761e7 100644 --- a/src/game/game_157db0.c +++ b/src/game/game_157db0.c @@ -3739,8 +3739,8 @@ glabel func0f15b23c GLOBAL_ASM( glabel func0f15b274 /* f15b274: 27bdff50 */ addiu $sp,$sp,-176 -/* f15b278: 3c02800a */ lui $v0,%hi(g_Portals) -/* f15b27c: 8c424cc8 */ lw $v0,%lo(g_Portals)($v0) +/* f15b278: 3c02800a */ lui $v0,%hi(g_PortalSomethings) +/* f15b27c: 8c424cc8 */ lw $v0,%lo(g_PortalSomethings)($v0) /* f15b280: 000470c0 */ sll $t6,$a0,0x3 /* f15b284: afbf005c */ sw $ra,0x5c($sp) /* f15b288: afb40058 */ sw $s4,0x58($sp) @@ -3833,8 +3833,8 @@ glabel func0f15b274 /* f15b3d8: 8fb40058 */ lw $s4,0x58($sp) /* f15b3dc: 03e00008 */ jr $ra /* f15b3e0: 27bd00b0 */ addiu $sp,$sp,0xb0 -/* f15b3e4: 3c03800a */ lui $v1,%hi(g_Portals) -/* f15b3e8: 8c634cc8 */ lw $v1,%lo(g_Portals)($v1) +/* f15b3e4: 3c03800a */ lui $v1,%hi(g_PortalSomethings) +/* f15b3e8: 8c634cc8 */ lw $v1,%lo(g_PortalSomethings)($v1) /* f15b3ec: 000470c0 */ sll $t6,$a0,0x3 /* f15b3f0: 006e7821 */ addu $t7,$v1,$t6 /* f15b3f4: 95f80000 */ lhu $t8,0x0($t7) @@ -4154,10 +4154,10 @@ glabel func0f15b534 /* f15b870: 8c7802bc */ lw $t8,0x2bc($v1) /* f15b874: 8caa0008 */ lw $t2,0x8($a1) .L0f15b878: -/* f15b878: 3c01800a */ lui $at,%hi(g_Portals) +/* f15b878: 3c01800a */ lui $at,%hi(g_PortalSomethings) /* f15b87c: 01445821 */ addu $t3,$t2,$a0 /* f15b880: 01676021 */ addu $t4,$t3,$a3 -/* f15b884: ac2c4cc8 */ sw $t4,%lo(g_Portals)($at) +/* f15b884: ac2c4cc8 */ sw $t4,%lo(g_PortalSomethings)($at) /* f15b888: 8ca2000c */ lw $v0,0xc($a1) /* f15b88c: 3c01800a */ lui $at,0x800a /* f15b890: 14400004 */ bnez $v0,.L0f15b8a4 @@ -4362,8 +4362,8 @@ glabel var7f1b75d0 /* f15bb50: 00000000 */ sll $zero,$zero,0x0 /* f15bb54: 3c0e800a */ lui $t6,%hi(var800a4920) /* f15bb58: 8dce4920 */ lw $t6,%lo(var800a4920)($t6) -/* f15bb5c: 3c17800a */ lui $s7,%hi(g_Portals) -/* f15bb60: 26f74cc8 */ addiu $s7,$s7,%lo(g_Portals) +/* f15bb5c: 3c17800a */ lui $s7,%hi(g_PortalSomethings) +/* f15bb60: 26f74cc8 */ addiu $s7,$s7,%lo(g_PortalSomethings) /* f15bb64: 15c00324 */ bnez $t6,.L0f15c7f8 /* f15bb68: 24050004 */ addiu $a1,$zero,0x4 /* f15bb6c: 8ef00000 */ lw $s0,0x0($s7) @@ -4379,15 +4379,15 @@ glabel var7f1b75d0 /* f15bb90: 94580008 */ lhu $t8,0x8($v0) .L0f15bb94: /* f15bb94: 001ec900 */ sll $t9,$s8,0x4 -/* f15bb98: 3c028008 */ lui $v0,%hi(var8007fc40) +/* f15bb98: 3c028008 */ lui $v0,%hi(g_NumPortals) /* f15bb9c: 2724000f */ addiu $a0,$t9,0xf -/* f15bba0: 2442fc40 */ addiu $v0,$v0,%lo(var8007fc40) +/* f15bba0: 2442fc40 */ addiu $v0,$v0,%lo(g_NumPortals) /* f15bba4: 348e000f */ ori $t6,$a0,0xf /* f15bba8: ac5e0000 */ sw $s8,0x0($v0) /* f15bbac: 0c0048f2 */ jal malloc /* f15bbb0: 39c4000f */ xori $a0,$t6,0xf -/* f15bbb4: 3c01800a */ lui $at,%hi(var800a4cec) -/* f15bbb8: ac224cec */ sw $v0,%lo(var800a4cec)($at) +/* f15bbb4: 3c01800a */ lui $at,%hi(g_Portals) +/* f15bbb8: ac224cec */ sw $v0,%lo(g_Portals)($at) /* f15bbbc: 001e20c0 */ sll $a0,$s8,0x3 /* f15bbc0: 24840008 */ addiu $a0,$a0,0x8 /* f15bbc4: 8ef00000 */ lw $s0,0x0($s7) @@ -5667,37 +5667,16 @@ glabel func0f15cc18 /* f15cd24: 8fa20000 */ lw $v0,0x0($sp) ); -GLOBAL_ASM( -glabel func0f15cd28 -/* f15cd28: 3c048008 */ lui $a0,%hi(var8007fc40) -/* f15cd2c: 2484fc40 */ addiu $a0,$a0,%lo(var8007fc40) -/* f15cd30: 8c8e0000 */ lw $t6,0x0($a0) -/* f15cd34: 00001025 */ or $v0,$zero,$zero -/* f15cd38: 00001825 */ or $v1,$zero,$zero -/* f15cd3c: 19c00012 */ blez $t6,.L0f15cd88 -/* f15cd40: 2406ffff */ addiu $a2,$zero,-1 -/* f15cd44: 3c05800a */ lui $a1,%hi(var800a4cec) -/* f15cd48: 24a54cec */ addiu $a1,$a1,%lo(var800a4cec) -/* f15cd4c: 8caf0000 */ lw $t7,0x0($a1) -.L0f15cd50: -/* f15cd50: 24420001 */ addiu $v0,$v0,0x1 -/* f15cd54: 01e3c021 */ addu $t8,$t7,$v1 -/* f15cd58: a7060006 */ sh $a2,0x6($t8) -/* f15cd5c: 8cb90000 */ lw $t9,0x0($a1) -/* f15cd60: 03234021 */ addu $t0,$t9,$v1 -/* f15cd64: a5000004 */ sh $zero,0x4($t0) -/* f15cd68: 8ca90000 */ lw $t1,0x0($a1) -/* f15cd6c: 01235021 */ addu $t2,$t1,$v1 -/* f15cd70: a5400000 */ sh $zero,0x0($t2) -/* f15cd74: 8c8b0000 */ lw $t3,0x0($a0) -/* f15cd78: 24630010 */ addiu $v1,$v1,0x10 -/* f15cd7c: 004b082a */ slt $at,$v0,$t3 -/* f15cd80: 5420fff3 */ bnezl $at,.L0f15cd50 -/* f15cd84: 8caf0000 */ lw $t7,0x0($a1) -.L0f15cd88: -/* f15cd88: 03e00008 */ jr $ra -/* f15cd8c: 00000000 */ sll $zero,$zero,0x0 -); +void func0f15cd28(void) +{ + s32 i; + + for (i = 0; i < g_NumPortals; i++) { + g_Portals[i].unk06 = -1; + g_Portals[i].unk04 = 0; + g_Portals[i].unk00 = 0; + } +} GLOBAL_ASM( glabel func0f15cd90 @@ -5955,8 +5934,8 @@ glabel func0f15d08c GLOBAL_ASM( glabel func0f15d10c -/* f15d10c: 3c07800a */ lui $a3,%hi(var800a4cec) -/* f15d110: 24e74cec */ addiu $a3,$a3,%lo(var800a4cec) +/* f15d10c: 3c07800a */ lui $a3,%hi(g_Portals) +/* f15d110: 24e74cec */ addiu $a3,$a3,%lo(g_Portals) /* f15d114: 27bdfd00 */ addiu $sp,$sp,-768 /* f15d118: 8cee0000 */ lw $t6,0x0($a3) /* f15d11c: afb20020 */ sw $s2,0x20($sp) @@ -6173,8 +6152,8 @@ glabel func0f15d10c /* f15d41c: 150cffde */ bne $t0,$t4,.L0f15d398 /* f15d420: 254a0004 */ addiu $t2,$t2,0x4 .L0f15d424: -/* f15d424: 3c03800a */ lui $v1,%hi(var800a4cec) -/* f15d428: 24634cec */ addiu $v1,$v1,%lo(var800a4cec) +/* f15d424: 3c03800a */ lui $v1,%hi(g_Portals) +/* f15d428: 24634cec */ addiu $v1,$v1,%lo(g_Portals) /* f15d42c: 8c6f0000 */ lw $t7,0x0($v1) /* f15d430: 862e0000 */ lh $t6,0x0($s1) /* f15d434: 01601025 */ or $v0,$t3,$zero @@ -6480,8 +6459,8 @@ glabel func0f15d808 GLOBAL_ASM( glabel func0f15d870 -/* f15d870: 3c02800a */ lui $v0,%hi(g_Portals) -/* f15d874: 8c424cc8 */ lw $v0,%lo(g_Portals)($v0) +/* f15d870: 3c02800a */ lui $v0,%hi(g_PortalSomethings) +/* f15d874: 8c424cc8 */ lw $v0,%lo(g_PortalSomethings)($v0) /* f15d878: 00803825 */ or $a3,$a0,$zero /* f15d87c: 00001825 */ or $v1,$zero,$zero /* f15d880: 944e0000 */ lhu $t6,0x0($v0) @@ -11306,9 +11285,9 @@ glabel func0f161c08 /* f161c48: 846c000e */ lh $t4,0xe($v1) /* f161c4c: 8d6b4ce0 */ lw $t3,%lo(var800a4ce0)($t3) /* f161c50: 3c08800a */ lui $t0,%hi(var800a4ccc) -/* f161c54: 3c0a800a */ lui $t2,%hi(g_Portals) +/* f161c54: 3c0a800a */ lui $t2,%hi(g_PortalSomethings) /* f161c58: 000c6840 */ sll $t5,$t4,0x1 -/* f161c5c: 254a4cc8 */ addiu $t2,$t2,%lo(g_Portals) +/* f161c5c: 254a4cc8 */ addiu $t2,$t2,%lo(g_PortalSomethings) /* f161c60: 8d084ccc */ lw $t0,%lo(var800a4ccc)($t0) /* f161c64: c4e20008 */ lwc1 $f2,0x8($a3) /* f161c68: c4ec0000 */ lwc1 $f12,0x0($a3) @@ -11397,7 +11376,7 @@ glabel func0f161d30 /* f161d94: e7a60074 */ swc1 $f6,0x74($sp) /* f161d98: c4c80034 */ lwc1 $f8,0x34($a2) /* f161d9c: 3c09800a */ lui $t1,%hi(var800a4ce0) -/* f161da0: 3c08800a */ lui $t0,%hi(g_Portals) +/* f161da0: 3c08800a */ lui $t0,%hi(g_PortalSomethings) /* f161da4: e7a80078 */ swc1 $f8,0x78($sp) /* f161da8: c4ca0038 */ lwc1 $f10,0x38($a2) /* f161dac: 3c0a800a */ lui $t2,%hi(var800a4ccc) @@ -11410,7 +11389,7 @@ glabel func0f161d30 /* f161dc8: 24020001 */ addiu $v0,$zero,0x1 /* f161dcc: 4480b000 */ mtc1 $zero,$f22 /* f161dd0: 8d294ce0 */ lw $t1,%lo(var800a4ce0)($t1) -/* f161dd4: 8d084cc8 */ lw $t0,%lo(g_Portals)($t0) +/* f161dd4: 8d084cc8 */ lw $t0,%lo(g_PortalSomethings)($t0) /* f161dd8: 8d4a4ccc */ lw $t2,%lo(var800a4ccc)($t2) /* f161ddc: 84ce000e */ lh $t6,0xe($a2) .L0f161de0: @@ -12120,14 +12099,14 @@ glabel var7f1b76bc /* f162628: 100001a6 */ beqz $zero,.L0f162cc4 /* f16262c: 00801025 */ or $v0,$a0,$zero .L0f162630: -/* f162630: 3c17800a */ lui $s7,%hi(g_Portals) +/* f162630: 3c17800a */ lui $s7,%hi(g_PortalSomethings) /* 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(g_Portals) +/* f16264c: 26f74cc8 */ addiu $s7,$s7,%lo(g_PortalSomethings) /* f162650: 24160001 */ addiu $s6,$zero,0x1 .L0f162654: /* f162654: 92040000 */ lbu $a0,0x0($s0) @@ -13201,11 +13180,11 @@ glabel func0f163528 /* f1635c4: 3c0c800a */ lui $t4,%hi(var800a4ce0) /* f1635c8: 8d8c4ce0 */ lw $t4,%lo(var800a4ce0)($t4) /* f1635cc: 000d7840 */ sll $t7,$t5,0x1 -/* f1635d0: 3c06800a */ lui $a2,%hi(var800a4cec) +/* f1635d0: 3c06800a */ lui $a2,%hi(g_Portals) /* f1635d4: 018f7021 */ addu $t6,$t4,$t7 /* f1635d8: 01d5c021 */ addu $t8,$t6,$s5 /* f1635dc: 87130000 */ lh $s3,0x0($t8) -/* f1635e0: 24c64cec */ addiu $a2,$a2,%lo(var800a4cec) +/* f1635e0: 24c64cec */ addiu $a2,$a2,%lo(g_Portals) /* f1635e4: 8cd90000 */ lw $t9,0x0($a2) /* f1635e8: 3c058008 */ lui $a1,%hi(var8007fc3c) /* f1635ec: 00132100 */ sll $a0,$s3,0x4 @@ -13257,8 +13236,8 @@ glabel func0f163528 /* f16369c: 8cd90000 */ lw $t9,0x0($a2) /* f1636a0: 03241821 */ addu $v1,$t9,$a0 .L0f1636a4: -/* f1636a4: 3c08800a */ lui $t0,%hi(g_Portals) -/* f1636a8: 8d084cc8 */ lw $t0,%lo(g_Portals)($t0) +/* f1636a4: 3c08800a */ lui $t0,%hi(g_PortalSomethings) +/* f1636a8: 8d084cc8 */ lw $t0,%lo(g_PortalSomethings)($t0) /* f1636ac: 001390c0 */ sll $s2,$s3,0x3 /* f1636b0: 86290000 */ lh $t1,0x0($s1) /* f1636b4: 01122821 */ addu $a1,$t0,$s2 @@ -13303,8 +13282,8 @@ glabel func0f163528 /* f163740: 86240000 */ lh $a0,0x0($s1) /* f163744: 0fc58cb5 */ jal func0f1632d4 /* f163748: 27a7005c */ addiu $a3,$sp,0x5c -/* f16374c: 3c0e800a */ lui $t6,%hi(g_Portals) -/* f163750: 8dce4cc8 */ lw $t6,%lo(g_Portals)($t6) +/* f16374c: 3c0e800a */ lui $t6,%hi(g_PortalSomethings) +/* f163750: 8dce4cc8 */ lw $t6,%lo(g_PortalSomethings)($t6) /* f163754: 01d22821 */ addu $a1,$t6,$s2 .L0f163758: /* f163758: 0010b400 */ sll $s6,$s0,0x10 @@ -13470,8 +13449,8 @@ GLOBAL_ASM( glabel func0f16397c /* f16397c: 27bdff88 */ addiu $sp,$sp,-120 /* f163980: afb70030 */ sw $s7,0x30($sp) -/* f163984: 3c17800a */ lui $s7,%hi(g_Portals) -/* f163988: 26f74cc8 */ addiu $s7,$s7,%lo(g_Portals) +/* f163984: 3c17800a */ lui $s7,%hi(g_PortalSomethings) +/* f163988: 26f74cc8 */ addiu $s7,$s7,%lo(g_PortalSomethings) /* f16398c: afb00014 */ sw $s0,0x14($sp) /* f163990: 8eea0000 */ lw $t2,0x0($s7) /* f163994: 3c108008 */ lui $s0,%hi(var8007fc38) @@ -13913,10 +13892,10 @@ glabel func0f163e34 /* f163ff0: 0fc58b3c */ jal func0f162cf0 /* f163ff4: 8c844cd4 */ lw $a0,%lo(var800a4cd4)($a0) /* f163ff8: 8e180000 */ lw $t8,0x0($s0) -/* f163ffc: 3c19800a */ lui $t9,%hi(g_Portals) +/* f163ffc: 3c19800a */ lui $t9,%hi(g_PortalSomethings) /* f164000: 1700004b */ bnez $t8,.L0f164130 /* f164004: 00000000 */ sll $zero,$zero,0x0 -/* f164008: 8f394cc8 */ lw $t9,%lo(g_Portals)($t9) +/* f164008: 8f394cc8 */ lw $t9,%lo(g_PortalSomethings)($t9) /* f16400c: 3c108008 */ lui $s0,%hi(var8007fc20) /* f164010: 27b10038 */ addiu $s1,$sp,0x38 /* f164014: 97290000 */ lhu $t1,0x0($t9) @@ -14335,10 +14314,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(g_Portals) +/* f1645e8: 3c0d800a */ lui $t5,%hi(g_PortalSomethings) /* f1645ec: 3c0c800a */ lui $t4,%hi(var800a4ce0) /* f1645f0: 258c4ce0 */ addiu $t4,$t4,%lo(var800a4ce0) -/* f1645f4: 25ad4cc8 */ addiu $t5,$t5,%lo(g_Portals) +/* f1645f4: 25ad4cc8 */ addiu $t5,$t5,%lo(g_PortalSomethings) /* f1645f8: 00002825 */ or $a1,$zero,$zero /* f1645fc: 8518000e */ lh $t8,0xe($t0) .L0f164600: @@ -14410,10 +14389,10 @@ glabel func0f1646b8 /* f1646dc: 00001025 */ or $v0,$zero,$zero /* f1646e0: 3c18800a */ lui $t8,%hi(var800a4ce0) /* f1646e4: 18c00015 */ blez $a2,.L0f16473c -/* f1646e8: 3c07800a */ lui $a3,%hi(g_Portals) +/* f1646e8: 3c07800a */ lui $a3,%hi(g_PortalSomethings) /* f1646ec: 8479000e */ lh $t9,0xe($v1) /* f1646f0: 8f184ce0 */ lw $t8,%lo(var800a4ce0)($t8) -/* f1646f4: 8ce74cc8 */ lw $a3,%lo(g_Portals)($a3) +/* f1646f4: 8ce74cc8 */ lw $a3,%lo(g_PortalSomethings)($a3) /* f1646f8: 00194840 */ sll $t1,$t9,0x1 /* f1646fc: 03092021 */ addu $a0,$t8,$t1 .L0f164700: @@ -14568,10 +14547,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(g_Portals) +/* f164910: 3c11800a */ lui $s1,%hi(g_PortalSomethings) /* f164914: 3c10800a */ lui $s0,%hi(var800a4ce0) /* f164918: 26104ce0 */ addiu $s0,$s0,%lo(var800a4ce0) -/* f16491c: 26314cc8 */ addiu $s1,$s1,%lo(g_Portals) +/* f16491c: 26314cc8 */ addiu $s1,$s1,%lo(g_PortalSomethings) /* f164920: 2412000c */ addiu $s2,$zero,0xc .L0f164924: /* f164924: 84ef000e */ lh $t7,0xe($a3) @@ -14650,8 +14629,8 @@ glabel func0f1648cc /* f164a30: 8fb2000c */ lw $s2,0xc($sp) /* f164a34: 03e00008 */ jr $ra /* f164a38: 27bd0010 */ addiu $sp,$sp,0x10 -/* f164a3c: 3c03800a */ lui $v1,%hi(g_Portals) -/* f164a40: 8c634cc8 */ lw $v1,%lo(g_Portals)($v1) +/* f164a3c: 3c03800a */ lui $v1,%hi(g_PortalSomethings) +/* f164a40: 8c634cc8 */ lw $v1,%lo(g_PortalSomethings)($v1) /* f164a44: 00001025 */ or $v0,$zero,$zero /* f164a48: 946e0000 */ lhu $t6,0x0($v1) /* f164a4c: 51c0000c */ beqzl $t6,.L0f164a80 @@ -14676,8 +14655,8 @@ glabel func0f1648cc GLOBAL_ASM( glabel func0f164a88 -/* f164a88: 3c06800a */ lui $a2,%hi(g_Portals) -/* f164a8c: 24c64cc8 */ addiu $a2,$a2,%lo(g_Portals) +/* f164a88: 3c06800a */ lui $a2,%hi(g_PortalSomethings) +/* f164a8c: 24c64cc8 */ addiu $a2,$a2,%lo(g_PortalSomethings) /* f164a90: 8cce0000 */ lw $t6,0x0($a2) /* f164a94: 000418c0 */ sll $v1,$a0,0x3 /* f164a98: 01c32821 */ addu $a1,$t6,$v1 @@ -14692,8 +14671,8 @@ glabel func0f164a88 GLOBAL_ASM( glabel func0f164ab8 -/* f164ab8: 3c0e800a */ lui $t6,%hi(g_Portals) -/* f164abc: 8dce4cc8 */ lw $t6,%lo(g_Portals)($t6) +/* f164ab8: 3c0e800a */ lui $t6,%hi(g_PortalSomethings) +/* f164abc: 8dce4cc8 */ lw $t6,%lo(g_PortalSomethings)($t6) /* f164ac0: 27bdffa8 */ addiu $sp,$sp,-88 /* f164ac4: 000478c0 */ sll $t7,$a0,0x3 /* f164ac8: afbf0014 */ sw $ra,0x14($sp) @@ -14824,8 +14803,8 @@ glabel func0f164c64 /* f164ca4: 1b000062 */ blez $t8,.L0f164e30 /* f164ca8: 00004025 */ or $t0,$zero,$zero /* f164cac: 3c09800a */ lui $t1,%hi(var800a4ccc) -/* f164cb0: 3c0a800a */ lui $t2,%hi(g_Portals) -/* f164cb4: 8d4a4cc8 */ lw $t2,%lo(g_Portals)($t2) +/* f164cb0: 3c0a800a */ lui $t2,%hi(g_PortalSomethings) +/* f164cb4: 8d4a4cc8 */ lw $t2,%lo(g_PortalSomethings)($t2) /* f164cb8: 8d294ccc */ lw $t1,%lo(var800a4ccc)($t1) /* f164cbc: 8ce74ce0 */ lw $a3,%lo(var800a4ce0)($a3) /* f164cc0: 24130014 */ addiu $s3,$zero,0x14 @@ -14939,8 +14918,8 @@ glabel func0f164c64 GLOBAL_ASM( glabel portalSetEnabled -/* f164e48: 3c0e800a */ lui $t6,%hi(g_Portals) -/* f164e4c: 8dce4cc8 */ lw $t6,%lo(g_Portals)($t6) +/* f164e48: 3c0e800a */ lui $t6,%hi(g_PortalSomethings) +/* f164e4c: 8dce4cc8 */ lw $t6,%lo(g_PortalSomethings)($t6) /* f164e50: 000478c0 */ sll $t7,$a0,0x3 /* f164e54: 0005402b */ sltu $t0,$zero,$a1 /* f164e58: 01cf1021 */ addu $v0,$t6,$t7 @@ -14966,8 +14945,8 @@ glabel var7f1b76c4 .text /* f164e8c: 27bdffb8 */ addiu $sp,$sp,-72 /* f164e90: afb6003c */ sw $s6,0x3c($sp) -/* f164e94: 3c16800a */ lui $s6,%hi(g_Portals) -/* f164e98: 26d64cc8 */ addiu $s6,$s6,%lo(g_Portals) +/* f164e94: 3c16800a */ lui $s6,%hi(g_PortalSomethings) +/* f164e98: 26d64cc8 */ addiu $s6,$s6,%lo(g_PortalSomethings) /* f164e9c: 8ece0000 */ lw $t6,0x0($s6) /* f164ea0: afbf0044 */ sw $ra,0x44($sp) /* f164ea4: afb70040 */ sw $s7,0x40($sp) @@ -15086,11 +15065,11 @@ glabel var7f1b76cc /* f165014: e4a00000 */ swc1 $f0,0x0($a1) /* f165018: e4a00004 */ swc1 $f0,0x4($a1) /* f16501c: e4a00008 */ swc1 $f0,0x8($a1) -/* f165020: 3c03800a */ lui $v1,%hi(g_Portals) +/* f165020: 3c03800a */ lui $v1,%hi(g_PortalSomethings) /* f165024: e4c20000 */ swc1 $f2,0x0($a2) /* f165028: e4c20004 */ swc1 $f2,0x4($a2) /* f16502c: e4c20008 */ swc1 $f2,0x8($a2) -/* f165030: 8c634cc8 */ lw $v1,%lo(g_Portals)($v1) +/* f165030: 8c634cc8 */ lw $v1,%lo(g_PortalSomethings)($v1) /* f165034: 000470c0 */ sll $t6,$a0,0x3 /* f165038: 00003825 */ or $a3,$zero,$zero /* f16503c: 006e7821 */ addu $t7,$v1,$t6 @@ -15153,7 +15132,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(g_Portals) +/* f165108: 3c14800a */ lui $s4,%hi(g_PortalSomethings) /* f16510c: e7a4009c */ swc1 $f4,0x9c($sp) /* f165110: c4860004 */ lwc1 $f6,0x4($a0) /* f165114: 00e0b825 */ or $s7,$a3,$zero @@ -15164,7 +15143,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(g_Portals) +/* f165134: 26944cc8 */ addiu $s4,$s4,%lo(g_PortalSomethings) /* f165138: 8fb900b8 */ lw $t9,0xb8($sp) /* f16513c: e7aa0090 */ swc1 $f10,0x90($sp) /* f165140: c4b00004 */ lwc1 $f16,0x4($a1) diff --git a/src/game/game_165360.c b/src/game/game_165360.c index abbb66933..24ab20012 100644 --- a/src/game/game_165360.c +++ b/src/game/game_165360.c @@ -26,8 +26,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(g_Portals) -/* f16538c: 25084cc8 */ addiu $t0,$t0,%lo(g_Portals) +/* f165388: 3c08800a */ lui $t0,%hi(g_PortalSomethings) +/* f16538c: 25084cc8 */ addiu $t0,$t0,%lo(g_PortalSomethings) /* f165390: 8d080000 */ lw $t0,0x0($t0) /* f165394: 000448c0 */ sll $t1,$a0,0x3 /* f165398: 01284820 */ add $t1,$t1,$t0 diff --git a/src/game/propobj.c b/src/game/propobj.c index 4c09c5cdc..bcc094ca5 100644 --- a/src/game/propobj.c +++ b/src/game/propobj.c @@ -5775,8 +5775,8 @@ glabel setupParseObject /* f06aee8: 0fc59392 */ jal portalSetEnabled /* f06aeec: 24050001 */ addiu $a1,$zero,0x1 /* f06aef0: 862e0062 */ lh $t6,0x62($s1) -/* f06aef4: 3c0d800a */ lui $t5,%hi(g_Portals) -/* f06aef8: 8dad4cc8 */ lw $t5,%lo(g_Portals)($t5) +/* f06aef4: 3c0d800a */ lui $t5,%hi(g_PortalSomethings) +/* f06aef8: 8dad4cc8 */ lw $t5,%lo(g_PortalSomethings)($t5) /* f06aefc: 000e78c0 */ sll $t7,$t6,0x3 /* f06af00: 01af1021 */ addu $v0,$t5,$t7 /* f06af04: 90580006 */ lbu $t8,0x6($v0) @@ -5800,10 +5800,10 @@ glabel setupParseObject /* f06af44: 0fc2353a */ jal doorActivatePortal /* f06af48: 02202025 */ or $a0,$s1,$zero /* f06af4c: 862300c4 */ lh $v1,0xc4($s1) -/* f06af50: 3c08800a */ lui $t0,%hi(g_Portals) +/* f06af50: 3c08800a */ lui $t0,%hi(g_PortalSomethings) /* f06af54: 04620008 */ bltzl $v1,.L0f06af78 /* f06af58: 8e2c0014 */ lw $t4,0x14($s1) -/* f06af5c: 8d084cc8 */ lw $t0,%lo(g_Portals)($t0) +/* f06af5c: 8d084cc8 */ lw $t0,%lo(g_PortalSomethings)($t0) /* f06af60: 000348c0 */ sll $t1,$v1,0x3 /* f06af64: 01091021 */ addu $v0,$t0,$t1 /* f06af68: 904a0006 */ lbu $t2,0x6($v0) @@ -28084,10 +28084,10 @@ glabel var7f1aa6ec /* f07e880: 54410015 */ bnel $v0,$at,.L0f07e8d8 /* f07e884: 24010001 */ addiu $at,$zero,0x1 /* f07e888: 86040062 */ lh $a0,0x62($s0) -/* f07e88c: 3c18800a */ lui $t8,%hi(g_Portals) +/* f07e88c: 3c18800a */ lui $t8,%hi(g_PortalSomethings) /* f07e890: 04800025 */ bltz $a0,.L0f07e928 /* f07e894: 00000000 */ sll $zero,$zero,0x0 -/* f07e898: 8f184cc8 */ lw $t8,%lo(g_Portals)($t8) +/* f07e898: 8f184cc8 */ lw $t8,%lo(g_PortalSomethings)($t8) /* f07e89c: 0004c8c0 */ sll $t9,$a0,0x3 /* f07e8a0: 03192821 */ addu $a1,$t8,$t9 /* f07e8a4: 90a30006 */ lbu $v1,0x6($a1) @@ -28108,10 +28108,10 @@ glabel var7f1aa6ec /* f07e8d8: 14410013 */ bne $v0,$at,.L0f07e928 /* f07e8dc: 00000000 */ sll $zero,$zero,0x0 /* f07e8e0: 860400c4 */ lh $a0,0xc4($s0) -/* f07e8e4: 3c0c800a */ lui $t4,%hi(g_Portals) +/* f07e8e4: 3c0c800a */ lui $t4,%hi(g_PortalSomethings) /* f07e8e8: 0480000f */ bltz $a0,.L0f07e928 /* f07e8ec: 00000000 */ sll $zero,$zero,0x0 -/* f07e8f0: 8d8c4cc8 */ lw $t4,%lo(g_Portals)($t4) +/* f07e8f0: 8d8c4cc8 */ lw $t4,%lo(g_PortalSomethings)($t4) /* f07e8f4: 000468c0 */ sll $t5,$a0,0x3 /* f07e8f8: 018d2821 */ addu $a1,$t4,$t5 /* f07e8fc: 90a30006 */ lbu $v1,0x6($a1) @@ -35583,11 +35583,11 @@ glabel func0f084e58 /* f084e80: afa20088 */ sw $v0,0x88($sp) /* f084e84: 8fa60098 */ lw $a2,0x98($sp) /* f084e88: 00404025 */ or $t0,$v0,$zero -/* f084e8c: 3c0f800a */ lui $t7,%hi(g_Portals) +/* f084e8c: 3c0f800a */ lui $t7,%hi(g_PortalSomethings) /* f084e90: 84c400c4 */ lh $a0,0xc4($a2) /* f084e94: 04820010 */ bltzl $a0,.L0f084ed8 /* f084e98: 00c02025 */ or $a0,$a2,$zero -/* f084e9c: 8def4cc8 */ lw $t7,%lo(g_Portals)($t7) +/* f084e9c: 8def4cc8 */ lw $t7,%lo(g_PortalSomethings)($t7) /* f084ea0: 0004c0c0 */ sll $t8,$a0,0x3 /* f084ea4: 01f82821 */ addu $a1,$t7,$t8 /* f084ea8: 90a30006 */ lbu $v1,0x6($a1) diff --git a/src/gvars/gvars.c b/src/gvars/gvars.c index 4a48f5d79..edc7cda28 100644 --- a/src/gvars/gvars.c +++ b/src/gvars/gvars.c @@ -18490,7 +18490,7 @@ u32 var800a4cb8 = 0; u32 var800a4cbc = 0; u32 var800a4cc0 = 0; u32 var800a4cc4 = 0; -struct portal *g_Portals = NULL; +struct portalsomething *g_PortalSomethings = NULL; u32 var800a4ccc = 0; u32 var800a4cd0 = 0; u32 var800a4cd4 = 0; @@ -18499,7 +18499,7 @@ u32 var800a4cdc = 0; u32 var800a4ce0 = 0; u32 var800a4ce4 = 0; u32 var800a4ce8 = 0; -u32 var800a4cec = 0; +struct portal *g_Portals = NULL; u32 var800a4cf0 = 0; u32 var800a4cf4 = 0; u32 var800a4cf8 = 0; diff --git a/src/include/game/data/data_020df0.h b/src/include/game/data/data_020df0.h index 1f1ca3482..3591b5f92 100644 --- a/src/include/game/data/data_020df0.h +++ b/src/include/game/data/data_020df0.h @@ -196,7 +196,7 @@ extern u32 var8007fc30; extern u32 var8007fc34; extern u32 var8007fc38; extern u16 var8007fc3c; -extern u32 var8007fc40; +extern s32 g_NumPortals; extern u32 var8007fc44; extern u32 var8007fc4c; extern u32 var8007fc54; diff --git a/src/include/game/game_157db0.h b/src/include/game/game_157db0.h index 25b372feb..73083da68 100644 --- a/src/include/game/game_157db0.h +++ b/src/include/game/game_157db0.h @@ -36,7 +36,7 @@ u32 func0f15cae0(void); u32 func0f15cb74(void); u32 func0f15cbb4(void); u32 func0f15cc18(void); -u32 func0f15cd28(void); +void func0f15cd28(void); u32 func0f15cd90(void); u32 func0f15d08c(void); u32 func0f15d10c(void); diff --git a/src/include/gvars/gvars.h b/src/include/gvars/gvars.h index e5877e8f6..dec03e5d3 100644 --- a/src/include/gvars/gvars.h +++ b/src/include/gvars/gvars.h @@ -725,7 +725,7 @@ extern u32 var800a4bf0; extern u32 var800a4bf8; extern u32 var800a4cc0; extern u32 var800a4cc4; -extern struct portal *g_Portals; +extern struct portalsomething *g_PortalSomethings; extern u32 var800a4ccc; extern u32 var800a4cd0; extern u32 var800a4cd4; @@ -733,7 +733,7 @@ extern u32 var800a4cd8; extern u32 var800a4ce0; extern u32 var800a4ce4; extern u32 var800a4ce8; -extern u32 var800a4cec; +extern struct portal *g_Portals; extern u32 var800a4cf0; extern u32 var800a4cf8; extern u32 var800a4d00; diff --git a/src/include/types.h b/src/include/types.h index 36f83b31d..197352eae 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -4831,12 +4831,21 @@ struct scenariodata { }; }; -struct portal { +struct portalsomething { u32 unk00; u16 unk04; u8 flags; }; +struct portal { + u16 unk00; + u16 unk02; + u16 unk04; + s16 unk06; + u32 unk08; + u32 unk0c; +}; + struct trainingdata { u32 unk00_00 : 1; u32 unk00_01 : 1; diff --git a/src/lib/lib_16110.c b/src/lib/lib_16110.c index 3f5df923b..d7c9d3036 100644 --- a/src/lib/lib_16110.c +++ b/src/lib/lib_16110.c @@ -1985,8 +1985,8 @@ glabel func00017cbc GLOBAL_ASM( glabel func00017ce0 -/* 17ce0: 3c03800a */ lui $v1,%hi(g_Portals) -/* 17ce4: 8c634cc8 */ lw $v1,%lo(g_Portals)($v1) +/* 17ce0: 3c03800a */ lui $v1,%hi(g_PortalSomethings) +/* 17ce4: 8c634cc8 */ lw $v1,%lo(g_PortalSomethings)($v1) /* 17ce8: 000470c0 */ sll $t6,$a0,0x3 /* 17cec: 3c013f80 */ lui $at,0x3f80 /* 17cf0: 006e7821 */ addu $t7,$v1,$t6 @@ -2095,10 +2095,10 @@ glabel func00017e30 /* 17e54: c4a40004 */ lwc1 $f4,0x4($a1) /* 17e58: 460e6282 */ mul.s $f10,$f12,$f14 /* 17e5c: c5020008 */ lwc1 $f2,0x8($t0) -/* 17e60: 3c07800a */ lui $a3,%hi(g_Portals) +/* 17e60: 3c07800a */ lui $a3,%hi(g_PortalSomethings) /* 17e64: 46102182 */ mul.s $f6,$f4,$f16 /* 17e68: c4a40008 */ lwc1 $f4,0x8($a1) -/* 17e6c: 8ce74cc8 */ lw $a3,%lo(g_Portals)($a3) +/* 17e6c: 8ce74cc8 */ lw $a3,%lo(g_PortalSomethings)($a3) /* 17e70: 000478c0 */ sll $t7,$a0,0x3 /* 17e74: 27bdff90 */ addiu $sp,$sp,-112 /* 17e78: 00efc021 */ addu $t8,$a3,$t7 @@ -2342,9 +2342,9 @@ 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(g_Portals) -/* 181f8: 3c038008 */ lui $v1,%hi(var8007fc40) -/* 181fc: 8c63fc40 */ lw $v1,%lo(var8007fc40)($v1) +/* 181f4: 3c14800a */ lui $s4,%hi(g_PortalSomethings) +/* 181f8: 3c038008 */ lui $v1,%hi(g_NumPortals) +/* 181fc: 8c63fc40 */ lw $v1,%lo(g_NumPortals)($v1) /* 18200: 3c0b800a */ lui $t3,%hi(g_Vars+0x520) /* 18204: 2562a4e0 */ addiu $v0,$t3,%lo(g_Vars+0x520) /* 18208: 18600008 */ blez $v1,.L0001822c @@ -2361,7 +2361,7 @@ glabel func00018148 /* 1822c: 3c018006 */ lui $at,0x8006 /* 18230: a020ef20 */ sb $zero,-0x10e0($at) .L00018234: -/* 18234: 26944cc8 */ addiu $s4,$s4,%lo(g_Portals) +/* 18234: 26944cc8 */ addiu $s4,$s4,%lo(g_PortalSomethings) /* 18238: 87b5009c */ lh $s5,0x9c($sp) .L0001823c: /* 1823c: a7a4007c */ sh $a0,0x7c($sp)