Decompile shardsTick

This commit is contained in:
Ryan Dwyer 2021-02-10 22:04:40 +10:00
parent dc4922b0d3
commit ce040a5d9c
13 changed files with 92 additions and 216 deletions

View File

@ -393,7 +393,7 @@ void coreLoadStage(s32 stagenum)
func0f0147d0();
func0f0147f8();
stub0f013540();
func0f0139f0();
shardsInit();
frUnloadData();
if (g_Vars.stagenum == STAGE_TITLE) {
@ -2179,7 +2179,7 @@ void coreTick(void)
func0f01d8c0();
func0f01d990();
casingsTick();
func0f01de30();
shardsTick();
sparksTick();
func0f13eb44();
func0f149864();
@ -2267,7 +2267,7 @@ void coreUnloadStage(void)
smokeReset();
stub0f015400();
stub0f015410();
func0f015420();
shardsReset();
stub0f0153f0();
alarmReset();
func0f015010(); // props/setup related

View File

@ -2157,7 +2157,7 @@ u32 var8007fa74 = 0x3f800000;
u32 var8007fa78 = 0x3f800000;
u32 var8007fa7c = 0x00000000;
u32 var8007fa80 = 0x00000000;
u32 var8007fa84 = 0x00000000;
bool g_ShardsActive = false;
u32 var8007fa88 = 0x00000000;
u32 var8007fa8c = 0x00000000;
u8 g_InGameSubtitles = 1;

View File

@ -127,27 +127,27 @@ void func0f013550(void)
}
}
void func0f0139f0(void)
void shardsInit(void)
{
s32 i;
var800a45c0 = 200 / PLAYERCOUNT();
g_MaxShards = 200 / PLAYERCOUNT();
if (IS4MB()) {
var800a45c0 = var800a45c0 / 2;
g_MaxShards = g_MaxShards / 2;
}
if (g_Vars.stagenum >= STAGE_TITLE) {
var800a45c0 = 0;
g_MaxShards = 0;
}
if (var800a45c0 == 0) {
var800a45c4 = 0;
if (g_MaxShards == 0) {
g_Shards = NULL;
} else {
var800a45c4 = malloc(var800a45c0 * sizeof(struct var800a45c4) + 0xf & ~0xf, MEMPOOL_STAGE);
g_Shards = malloc(g_MaxShards * sizeof(struct shard) + 0xf & ~0xf, MEMPOOL_STAGE);
for (i = 0; i < var800a45c0; i++) {
var800a45c4[i].unk04 = 0;
for (i = 0; i < g_MaxShards; i++) {
g_Shards[i].age60 = 0;
}
}

View File

@ -10,11 +10,11 @@
#include "gvars/gvars.h"
#include "types.h"
void func0f015420(void)
void shardsReset(void)
{
s32 i;
for (i = 0; i < var800a45c0; i++) {
var800a45c4[i].unk04 = 0;
for (i = 0; i < g_MaxShards; i++) {
g_Shards[i].age60 = 0;
}
}

View File

@ -10,158 +10,42 @@
#include "gvars/gvars.h"
#include "types.h"
const u32 var7f1a8670[] = {0x46ea6000};
const u32 var7f1a8674[] = {0xc6ea6000};
const u32 var7f1a8678[] = {0x3dcccccd};
const u32 var7f1a867c[] = {0x00000000};
void shardsTick(void)
{
f32 lvupdate;
s32 i;
s32 j;
GLOBAL_ASM(
glabel func0f01de30
/* f01de30: 3c088008 */ lui $t0,%hi(var8007fa84)
/* f01de34: 2508fa84 */ addiu $t0,$t0,%lo(var8007fa84)
/* f01de38: 8d0e0000 */ lw $t6,0x0($t0)
/* f01de3c: 3c09800a */ lui $t1,%hi(var800a45c0)
/* f01de40: 252945c0 */ addiu $t1,$t1,%lo(var800a45c0)
/* f01de44: 11c0007d */ beqz $t6,.L0f01e03c
/* f01de48: 3c02800a */ lui $v0,%hi(g_Vars+0x38)
/* f01de4c: 8c429ff8 */ lw $v0,%lo(g_Vars+0x38)($v0)
/* f01de50: 00001825 */ or $v1,$zero,$zero
/* f01de54: 240b0001 */ addiu $t3,$zero,0x1
/* f01de58: 2841000f */ slti $at,$v0,0xf
/* f01de5c: 10200004 */ beqz $at,.L0f01de70
/* f01de60: 3c0a800a */ lui $t2,%hi(var800a45c4)
/* f01de64: 44822000 */ mtc1 $v0,$f4
/* f01de68: 10000004 */ b .L0f01de7c
/* f01de6c: 46802020 */ cvt.s.w $f0,$f4
.L0f01de70:
/* f01de70: 3c014170 */ lui $at,0x4170
/* f01de74: 44810000 */ mtc1 $at,$f0
/* f01de78: 00000000 */ nop
.L0f01de7c:
/* f01de7c: 8d2f0000 */ lw $t7,0x0($t1)
/* f01de80: 00001025 */ or $v0,$zero,$zero
/* f01de84: 3c017f1b */ lui $at,%hi(var7f1a8670)
/* f01de88: 19e0006c */ blez $t7,.L0f01e03c
/* f01de8c: 254a45c4 */ addiu $t2,$t2,%lo(var800a45c4)
/* f01de90: c4308670 */ lwc1 $f16,%lo(var7f1a8670)($at)
/* f01de94: 3c017f1b */ lui $at,%hi(var7f1a8674)
/* f01de98: c42e8674 */ lwc1 $f14,%lo(var7f1a8674)($at)
/* f01de9c: 3c017f1b */ lui $at,%hi(var7f1a8678)
/* f01dea0: c42c8678 */ lwc1 $f12,%lo(var7f1a8678)($at)
/* f01dea4: 8d580000 */ lw $t8,0x0($t2)
.L0f01dea8:
/* f01dea8: 03032021 */ addu $a0,$t8,$v1
/* f01deac: 8c850004 */ lw $a1,0x4($a0)
/* f01deb0: 58a0005d */ blezl $a1,.L0f01e028
/* f01deb4: 8d2c0000 */ lw $t4,0x0($t1)
/* f01deb8: 4600018d */ trunc.w.s $f6,$f0
/* f01debc: 00003825 */ or $a3,$zero,$zero
/* f01dec0: 44063000 */ mfc1 $a2,$f6
/* f01dec4: 00000000 */ nop
/* f01dec8: 00a66021 */ addu $t4,$a1,$a2
/* f01decc: ac8c0004 */ sw $t4,0x4($a0)
/* f01ded0: 8d4d0000 */ lw $t5,0x0($t2)
/* f01ded4: 01a32021 */ addu $a0,$t5,$v1
/* f01ded8: c48a002c */ lwc1 $f10,0x2c($a0)
/* f01dedc: c4880014 */ lwc1 $f8,0x14($a0)
/* f01dee0: 46005482 */ mul.s $f18,$f10,$f0
/* f01dee4: 46124100 */ add.s $f4,$f8,$f18
/* f01dee8: e4840014 */ swc1 $f4,0x14($a0)
/* f01deec: 8d4e0000 */ lw $t6,0x0($t2)
/* f01def0: 01c32021 */ addu $a0,$t6,$v1
/* f01def4: c48a0030 */ lwc1 $f10,0x30($a0)
/* f01def8: c4860018 */ lwc1 $f6,0x18($a0)
/* f01defc: 46005202 */ mul.s $f8,$f10,$f0
/* f01df00: 46083480 */ add.s $f18,$f6,$f8
/* f01df04: e4920018 */ swc1 $f18,0x18($a0)
/* f01df08: 8d4f0000 */ lw $t7,0x0($t2)
/* f01df0c: 01e32021 */ addu $a0,$t7,$v1
/* f01df10: c48a0034 */ lwc1 $f10,0x34($a0)
/* f01df14: c484001c */ lwc1 $f4,0x1c($a0)
/* f01df18: 46005182 */ mul.s $f6,$f10,$f0
/* f01df1c: 46062200 */ add.s $f8,$f4,$f6
/* f01df20: e488001c */ swc1 $f8,0x1c($a0)
/* f01df24: 8d580000 */ lw $t8,0x0($t2)
/* f01df28: 03032021 */ addu $a0,$t8,$v1
/* f01df2c: c48a0020 */ lwc1 $f10,0x20($a0)
/* f01df30: c4920008 */ lwc1 $f18,0x8($a0)
/* f01df34: 46005102 */ mul.s $f4,$f10,$f0
/* f01df38: 46049180 */ add.s $f6,$f18,$f4
/* f01df3c: e4860008 */ swc1 $f6,0x8($a0)
/* f01df40: 8d590000 */ lw $t9,0x0($t2)
/* f01df44: 03232021 */ addu $a0,$t9,$v1
/* f01df48: c48a0028 */ lwc1 $f10,0x28($a0)
/* f01df4c: c4880010 */ lwc1 $f8,0x10($a0)
/* f01df50: 46005482 */ mul.s $f18,$f10,$f0
/* f01df54: 46124100 */ add.s $f4,$f8,$f18
/* f01df58: 18c0001b */ blez $a2,.L0f01dfc8
/* f01df5c: e4840010 */ swc1 $f4,0x10($a0)
/* f01df60: 24e70001 */ addiu $a3,$a3,0x1
/* f01df64: 10e6000e */ beq $a3,$a2,.L0f01dfa0
/* f01df68: 8d4c0000 */ lw $t4,0x0($t2)
.L0f01df6c:
/* f01df6c: 01832021 */ addu $a0,$t4,$v1
/* f01df70: c492000c */ lwc1 $f18,0xc($a0)
/* f01df74: c48a0024 */ lwc1 $f10,0x24($a0)
/* f01df78: 24e70001 */ addiu $a3,$a3,0x1
/* f01df7c: 460a9280 */ add.s $f10,$f18,$f10
/* f01df80: e48a000c */ swc1 $f10,0xc($a0)
/* f01df84: 8d4d0000 */ lw $t5,0x0($t2)
/* f01df88: 01a32021 */ addu $a0,$t5,$v1
/* f01df8c: c48a0024 */ lwc1 $f10,0x24($a0)
/* f01df90: 460c5281 */ sub.s $f10,$f10,$f12
/* f01df94: e48a0024 */ swc1 $f10,0x24($a0)
/* f01df98: 14e6fff4 */ bne $a3,$a2,.L0f01df6c
/* f01df9c: 8d4c0000 */ lw $t4,0x0($t2)
.L0f01dfa0:
/* f01dfa0: 01832021 */ addu $a0,$t4,$v1
/* f01dfa4: c492000c */ lwc1 $f18,0xc($a0)
/* f01dfa8: c48a0024 */ lwc1 $f10,0x24($a0)
/* f01dfac: 460a9280 */ add.s $f10,$f18,$f10
/* f01dfb0: e48a000c */ swc1 $f10,0xc($a0)
/* f01dfb4: 8d4d0000 */ lw $t5,0x0($t2)
/* f01dfb8: 01a32021 */ addu $a0,$t5,$v1
/* f01dfbc: c48a0024 */ lwc1 $f10,0x24($a0)
/* f01dfc0: 460c5281 */ sub.s $f10,$f10,$f12
/* f01dfc4: e48a0024 */ swc1 $f10,0x24($a0)
.L0f01dfc8:
/* f01dfc8: 8d4e0000 */ lw $t6,0x0($t2)
/* f01dfcc: 01c32021 */ addu $a0,$t6,$v1
/* f01dfd0: 8c8f0004 */ lw $t7,0x4($a0)
/* f01dfd4: 29e10096 */ slti $at,$t7,0x96
/* f01dfd8: 54200005 */ bnezl $at,.L0f01dff0
/* f01dfdc: c482000c */ lwc1 $f2,0xc($a0)
/* f01dfe0: ac800004 */ sw $zero,0x4($a0)
/* f01dfe4: 8d580000 */ lw $t8,0x0($t2)
/* f01dfe8: 03032021 */ addu $a0,$t8,$v1
/* f01dfec: c482000c */ lwc1 $f2,0xc($a0)
.L0f01dff0:
/* f01dff0: 460e103c */ c.lt.s $f2,$f14
/* f01dff4: 00000000 */ nop
/* f01dff8: 45030006 */ bc1tl .L0f01e014
/* f01dffc: ac800004 */ sw $zero,0x4($a0)
/* f01e000: 4602803c */ c.lt.s $f16,$f2
/* f01e004: 00000000 */ nop
/* f01e008: 45020003 */ bc1fl .L0f01e018
/* f01e00c: 8d190000 */ lw $t9,0x0($t0)
/* f01e010: ac800004 */ sw $zero,0x4($a0)
.L0f01e014:
/* f01e014: 8d190000 */ lw $t9,0x0($t0)
.L0f01e018:
/* f01e018: 57200003 */ bnezl $t9,.L0f01e028
/* f01e01c: 8d2c0000 */ lw $t4,0x0($t1)
/* f01e020: ad0b0000 */ sw $t3,0x0($t0)
/* f01e024: 8d2c0000 */ lw $t4,0x0($t1)
.L0f01e028:
/* f01e028: 24420001 */ addiu $v0,$v0,0x1
/* f01e02c: 2463006c */ addiu $v1,$v1,0x6c
/* f01e030: 004c082a */ slt $at,$v0,$t4
/* f01e034: 5420ff9c */ bnezl $at,.L0f01dea8
/* f01e038: 8d580000 */ lw $t8,0x0($t2)
.L0f01e03c:
/* f01e03c: 03e00008 */ jr $ra
/* f01e040: 00000000 */ nop
/* f01e044: 00000000 */ nop
/* f01e048: 00000000 */ nop
/* f01e04c: 00000000 */ nop
);
if (g_ShardsActive) {
lvupdate = (g_Vars.lvupdate240_60 < 15) ? g_Vars.lvupdate240_60 : 15;
for (i = 0; i < g_MaxShards; i++) {
if (g_Shards[i].age60 > 0) {
g_Shards[i].age60 += (s32)lvupdate;
g_Shards[i].rot.x += g_Shards[i].rotspeed.x * lvupdate;
g_Shards[i].rot.y += g_Shards[i].rotspeed.y * lvupdate;
g_Shards[i].rot.z += g_Shards[i].rotspeed.z * lvupdate;
g_Shards[i].pos.x += g_Shards[i].vel.x * lvupdate;
g_Shards[i].pos.z += g_Shards[i].vel.z * lvupdate;
for (j = 0; j < (s32)lvupdate; j++) {
g_Shards[i].pos.y += g_Shards[i].vel.y;
g_Shards[i].vel.y -= 0.1f;
}
if (g_Shards[i].age60 >= 150) {
g_Shards[i].age60 = 0;
}
if (g_Shards[i].pos.y < -30000 || g_Shards[i].pos.y > 30000) {
g_Shards[i].age60 = 0;
}
if (!g_ShardsActive) {
g_ShardsActive = true;
}
}
}
}
}

View File

@ -120,8 +120,8 @@ glabel func0f150820
/* f15096c: c64e0008 */ lwc1 $f14,0x8($s2)
/* f150970: 0fc259d4 */ jal atan2f
/* f150974: c64c0000 */ lwc1 $f12,0x0($s2)
/* f150978: 3c0e800a */ lui $t6,%hi(var800a45c0)
/* f15097c: 8dce45c0 */ lw $t6,%lo(var800a45c0)($t6)
/* f150978: 3c0e800a */ lui $t6,%hi(g_MaxShards)
/* f15097c: 8dce45c0 */ lw $t6,%lo(g_MaxShards)($t6)
/* f150980: 4616d501 */ sub.s $f20,$f26,$f22
/* f150984: 46000786 */ mov.s $f30,$f0
/* f150988: 4618e081 */ sub.s $f2,$f28,$f24
@ -430,9 +430,9 @@ glabel func0f150d38
/* f150e04: 2694fa80 */ addiu $s4,$s4,%lo(var8007fa80)
/* f150e08: 8e980000 */ lw $t8,0x0($s4)
/* f150e0c: 2416006c */ addiu $s6,$zero,0x6c
/* f150e10: 3c15800a */ lui $s5,%hi(var800a45c4)
/* f150e10: 3c15800a */ lui $s5,%hi(g_Shards)
/* f150e14: 03160019 */ multu $t8,$s6
/* f150e18: 26b545c4 */ addiu $s5,$s5,%lo(var800a45c4)
/* f150e18: 26b545c4 */ addiu $s5,$s5,%lo(g_Shards)
/* f150e1c: 8eaf0000 */ lw $t7,0x0($s5)
/* f150e20: 8fb20078 */ lw $s2,0x78($sp)
/* f150e24: 240d0001 */ addiu $t5,$zero,0x1
@ -1022,10 +1022,10 @@ glabel func0f150d38
/* f1516f8: 01960019 */ multu $t4,$s6
/* f1516fc: c42a738c */ lwc1 $f10,%lo(var7f1b738c)($at)
/* f151700: 8ea90000 */ lw $t1,0x0($s5)
/* f151704: 3c0d800a */ lui $t5,%hi(var800a45c0)
/* f151708: 3c028008 */ lui $v0,%hi(var8007fa84)
/* f151704: 3c0d800a */ lui $t5,%hi(g_MaxShards)
/* f151708: 3c028008 */ lui $v0,%hi(g_ShardsActive)
/* f15170c: 460a3402 */ mul.s $f16,$f6,$f10
/* f151710: 2442fa84 */ addiu $v0,$v0,%lo(var8007fa84)
/* f151710: 2442fa84 */ addiu $v0,$v0,%lo(g_ShardsActive)
/* f151714: 240a0001 */ addiu $t2,$zero,0x1
/* f151718: 0000c812 */ mflo $t9
/* f15171c: 01397821 */ addu $t7,$t1,$t9
@ -1033,7 +1033,7 @@ glabel func0f150d38
/* f151724: 8e8b0000 */ lw $t3,0x0($s4)
/* f151728: 256e0001 */ addiu $t6,$t3,0x1
/* f15172c: ae8e0000 */ sw $t6,0x0($s4)
/* f151730: 8dad45c0 */ lw $t5,%lo(var800a45c0)($t5)
/* f151730: 8dad45c0 */ lw $t5,%lo(g_MaxShards)($t5)
/* f151734: 01cd082a */ slt $at,$t6,$t5
/* f151738: 54200003 */ bnezl $at,.L0f151748
/* f15173c: 8c580000 */ lw $t8,0x0($v0)
@ -1060,8 +1060,8 @@ glabel func0f150d38
GLOBAL_ASM(
glabel func0f151780
/* f151780: 27bdfed0 */ addiu $sp,$sp,-304
/* f151784: 3c0e8008 */ lui $t6,%hi(var8007fa84)
/* f151788: 8dcefa84 */ lw $t6,%lo(var8007fa84)($t6)
/* f151784: 3c0e8008 */ lui $t6,%hi(g_ShardsActive)
/* f151788: 8dcefa84 */ lw $t6,%lo(g_ShardsActive)($t6)
/* f15178c: afb30054 */ sw $s3,0x54($sp)
/* f151790: 00809825 */ or $s3,$a0,$zero
/* f151794: afbf006c */ sw $ra,0x6c($sp)
@ -1132,8 +1132,8 @@ glabel func0f151780
/* f151898: 0c012d20 */ jal osVirtualToPhysical
/* f15189c: 00402025 */ or $a0,$v0,$zero
/* f1518a0: ae020004 */ sw $v0,0x4($s0)
/* f1518a4: 3c08800a */ lui $t0,%hi(var800a45c0)
/* f1518a8: 8d0845c0 */ lw $t0,%lo(var800a45c0)($t0)
/* f1518a4: 3c08800a */ lui $t0,%hi(g_MaxShards)
/* f1518a8: 8d0845c0 */ lw $t0,%lo(g_MaxShards)($t0)
/* f1518ac: 0000f025 */ or $s8,$zero,$zero
/* f1518b0: 0000a025 */ or $s4,$zero,$zero
/* f1518b4: 19000159 */ blez $t0,.L0f151e1c
@ -1145,9 +1145,9 @@ glabel func0f151780
/* f1518cc: c43a7394 */ lwc1 $f26,%lo(var7f1b7394)($at)
/* f1518d0: 3c013f80 */ lui $at,0x3f80
/* f1518d4: 3c158008 */ lui $s5,%hi(var8007fa80)
/* f1518d8: 3c12800a */ lui $s2,%hi(var800a45c4)
/* f1518d8: 3c12800a */ lui $s2,%hi(g_Shards)
/* f1518dc: 4481c000 */ mtc1 $at,$f24
/* f1518e0: 265245c4 */ addiu $s2,$s2,%lo(var800a45c4)
/* f1518e0: 265245c4 */ addiu $s2,$s2,%lo(g_Shards)
/* f1518e4: 26b5fa80 */ addiu $s5,$s5,%lo(var8007fa80)
/* f1518e8: c7b600bc */ lwc1 $f22,0xbc($sp)
/* f1518ec: 2416000c */ addiu $s6,$zero,0xc
@ -1495,8 +1495,8 @@ glabel func0f151780
/* f151df4: ac6c0000 */ sw $t4,0x0($v1)
/* f151df8: 26730008 */ addiu $s3,$s3,0x8
.L0f151dfc:
/* f151dfc: 3c0d800a */ lui $t5,%hi(var800a45c0)
/* f151e00: 8dad45c0 */ lw $t5,%lo(var800a45c0)($t5)
/* f151dfc: 3c0d800a */ lui $t5,%hi(g_MaxShards)
/* f151e00: 8dad45c0 */ lw $t5,%lo(g_MaxShards)($t5)
/* f151e04: 27de0001 */ addiu $s8,$s8,0x1
/* f151e08: 2694006c */ addiu $s4,$s4,0x6c
/* f151e0c: 03cd082a */ slt $at,$s8,$t5
@ -1556,8 +1556,8 @@ glabel func0f151780
GLOBAL_ASM(
glabel func0f151ed0
/* f151ed0: 27bdfec0 */ addiu $sp,$sp,-320
/* f151ed4: 3c0e8008 */ lui $t6,%hi(var8007fa84)
/* f151ed8: 8dcefa84 */ lw $t6,%lo(var8007fa84)($t6)
/* f151ed4: 3c0e8008 */ lui $t6,%hi(g_ShardsActive)
/* f151ed8: 8dcefa84 */ lw $t6,%lo(g_ShardsActive)($t6)
/* f151edc: afbf007c */ sw $ra,0x7c($sp)
/* f151ee0: afbe0078 */ sw $s8,0x78($sp)
/* f151ee4: afb70074 */ sw $s7,0x74($sp)
@ -1671,8 +1671,8 @@ glabel func0f151ed0
/* f152088: 0c012d20 */ jal osVirtualToPhysical
/* f15208c: 00402025 */ or $a0,$v0,$zero
/* f152090: ae020004 */ sw $v0,0x4($s0)
/* f152094: 3c0a800a */ lui $t2,%hi(var800a45c0)
/* f152098: 8d4a45c0 */ lw $t2,%lo(var800a45c0)($t2)
/* f152094: 3c0a800a */ lui $t2,%hi(g_MaxShards)
/* f152098: 8d4a45c0 */ lw $t2,%lo(g_MaxShards)($t2)
/* f15209c: 0000b825 */ or $s7,$zero,$zero
/* f1520a0: 00009825 */ or $s3,$zero,$zero
/* f1520a4: 1940015f */ blez $t2,.L0f152624
@ -1684,9 +1684,9 @@ glabel func0f151ed0
/* f1520bc: c43a739c */ lwc1 $f26,%lo(var7f1b739c)($at)
/* f1520c0: 3c013f80 */ lui $at,0x3f80
/* f1520c4: 3c148008 */ lui $s4,%hi(var8007fa80)
/* f1520c8: 3c12800a */ lui $s2,%hi(var800a45c4)
/* f1520c8: 3c12800a */ lui $s2,%hi(g_Shards)
/* f1520cc: 4481c000 */ mtc1 $at,$f24
/* f1520d0: 265245c4 */ addiu $s2,$s2,%lo(var800a45c4)
/* f1520d0: 265245c4 */ addiu $s2,$s2,%lo(g_Shards)
/* f1520d4: 2694fa80 */ addiu $s4,$s4,%lo(var8007fa80)
/* f1520d8: c7b600cc */ lwc1 $f22,0xcc($sp)
/* f1520dc: 27be00f8 */ addiu $s8,$sp,0xf8
@ -2040,8 +2040,8 @@ glabel func0f151ed0
/* f1525fc: ad8f0004 */ sw $t7,0x4($t4)
/* f152600: ad8e0000 */ sw $t6,0x0($t4)
.L0f152604:
/* f152604: 3c18800a */ lui $t8,%hi(var800a45c0)
/* f152608: 8f1845c0 */ lw $t8,%lo(var800a45c0)($t8)
/* f152604: 3c18800a */ lui $t8,%hi(g_MaxShards)
/* f152608: 8f1845c0 */ lw $t8,%lo(g_MaxShards)($t8)
/* f15260c: 26f70001 */ addiu $s7,$s7,0x1
/* f152610: 2673006c */ addiu $s3,$s3,0x6c
/* f152614: 02f8082a */ slt $at,$s7,$t8

View File

@ -14969,8 +14969,8 @@ u32 var800a45b0 = 0;
u32 var800a45b4 = 0;
u32 var800a45b8 = 0;
u32 var800a45bc = 0;
s32 var800a45c0 = 0;
struct var800a45c4 *var800a45c4 = NULL;
s32 g_MaxShards = 0;
struct shard *g_Shards = NULL;
u32 var800a45c8 = 0;
u32 var800a45cc = 0;
struct var800a45d0 var800a45d0 = {0};

View File

@ -203,7 +203,7 @@ extern u32 var8007f9d8;
extern u32 var8007f9fc;
extern u32 var8007fa60;
extern u32 var8007fa80;
extern u32 var8007fa84;
extern bool g_ShardsActive;
extern u8 g_InGameSubtitles;
extern u8 g_CutsceneSubtitles;
extern s32 g_ScreenSize;

View File

@ -4,7 +4,7 @@
#include "types.h"
u32 func0f013550(void);
void func0f0139f0(void);
void shardsInit(void);
void func0f013b80(void);
void func0f013ba0(void);

View File

@ -3,6 +3,6 @@
#include <ultra64.h>
#include "types.h"
u32 func0f015420(void);
u32 shardsReset(void);
#endif

View File

@ -3,6 +3,6 @@
#include <ultra64.h>
#include "types.h"
void func0f01de30(void);
void shardsTick(void);
#endif

View File

@ -694,8 +694,8 @@ extern char var800a41c0[];
extern u32 var800a41d8;
extern u32 var800a45a0;
extern u32 var800a45a8;
extern s32 var800a45c0; // count of var800a45c4
extern struct var800a45c4 *var800a45c4;
extern s32 g_MaxShards; // count of g_Shards
extern struct shard *g_Shards;
extern struct var800a45d0 var800a45d0;
extern Gfx *var800a4634;
extern struct var800a4640 var800a4640;

View File

@ -6687,21 +6687,13 @@ struct gfxvtx {
/*0x0a*/ s16 unk0a;
};
struct var800a45c4 {
struct shard {
/*0x00*/ u32 unk00;
/*0x04*/ u32 unk04;
/*0x08*/ u32 unk08;
/*0x0c*/ u32 unk0c;
/*0x10*/ u32 unk10;
/*0x14*/ u32 unk14;
/*0x18*/ u32 unk18;
/*0x1c*/ u32 unk1c;
/*0x20*/ u32 unk20;
/*0x24*/ u32 unk24;
/*0x28*/ u32 unk28;
/*0x2c*/ u32 unk2c;
/*0x30*/ u32 unk30;
/*0x34*/ u32 unk34;
/*0x04*/ s32 age60;
/*0x08*/ struct coord pos;
/*0x14*/ struct coord rot;
/*0x20*/ struct coord vel;
/*0x2c*/ struct coord rotspeed;
/*0x38*/ u32 unk38;
/*0x3c*/ u32 unk3c;
/*0x40*/ u32 unk40;