Decompile gasTick

This commit is contained in:
Ryan Dwyer 2021-02-01 08:26:34 +10:00
parent bd2210894a
commit c5b663aed7
15 changed files with 216 additions and 289 deletions

View File

@ -10290,7 +10290,7 @@ bool aiChrBeginOrEndTeleport(void)
u32 playernum;
u32 prevplayernum;
s32 audiopri;
s32 c;
struct audiohandle *handle;
fvalue = 0.4;
chr = chrFindById(g_Vars.chrdata, cmd[4]);
prevplayernum = g_Vars.currentplayernum;
@ -10312,10 +10312,10 @@ bool aiChrBeginOrEndTeleport(void)
mainpri = osGetThreadPri(0);
audiopri = osGetThreadPri(&g_AudioManager.thread);
osSetThreadPri(0, audiopri + 1);
c = audioStart(var80095200, 0x0433, NULL, -1, -1, -1, -1, -1);
handle = audioStart(var80095200, 0x0433, NULL, -1, -1, -1, -1, -1);
if (c) {
func00033e50(c, 16, *(u32 *)&fvalue);
if (handle) {
func00033e50(handle, 16, *(u32 *)&fvalue);
}
osSetThreadPri(0, mainpri);
@ -10339,7 +10339,7 @@ bool aiIfChrTeleportFullWhite(void)
s32 mainpri;
f32 fvalue;
s32 audiopri;
s32 c;
struct audiohandle *handle;
if (chr && chr->prop && chr->prop->type == PROPTYPE_PLAYER) {
u32 playernum = propGetPlayerNum(chr->prop);
@ -10353,10 +10353,10 @@ bool aiIfChrTeleportFullWhite(void)
mainpri = osGetThreadPri(0);
audiopri = osGetThreadPri(&g_AudioManager.thread);
osSetThreadPri(0, audiopri + 1);
c = audioStart(var80095200, 0x8055, NULL, -1, -1, -1, -1, -1);
handle = audioStart(var80095200, 0x8055, NULL, -1, -1, -1, -1, -1);
if (c) {
func00033e50(c, 16, *(u32 *)&fvalue);
if (handle) {
func00033e50(handle, 16, *(u32 *)&fvalue);
}
osSetThreadPri(0, mainpri);

View File

@ -1214,7 +1214,7 @@ Gfx *coreRender(Gfx *gdl)
gdl = func0f130044(gdl);
gdl = weatherRender(gdl);
if (var80061640) {
if (g_GasActive) {
gdl = func0f00a168(gdl);
}
@ -2180,12 +2180,12 @@ void coreTick(void)
func0f13eb44();
func0f149864();
if (g_WeatherEnabled) {
if (g_WeatherActive) {
weatherTick();
}
if (var80061640) {
func0f009eac();
if (g_GasActive) {
gasTick();
}
coreUpdateMiscSfx();

View File

@ -3074,7 +3074,7 @@ f32 var80061630 = 0;
u32 var80061634 = 0x00000000;
u32 var80061638 = 0x00000000;
u32 var8006163c = 0x00000000;
s32 var80061640 = 0x00000000;
bool g_GasActive = false;
u32 var80061644 = 0x42c80000;
u32 var80061648 = 0x00000000;
u32 var8006164c = 0x00000000;
@ -3115,7 +3115,7 @@ u32 var800616d4 = 0xbf800000;
u32 var800616d8 = 0x00000000;
u32 var800616dc = 0x00000a30;
u32 var800616e0 = 0x00000330;
u32 var800616e4 = 0x00000000;
struct audiohandle *g_GasAudioHandle = NULL;
u32 var800616e8 = 0x00000000;
u32 var800616ec = 0x00000000;
u32 var800616f0 = 0x00000000;
@ -3131,5 +3131,3 @@ struct stageheadlimit g_StageHeadLimits[3] = {
u32 var80061708 = 0x00000000;
u32 var8006170c = 0x00000000;

View File

@ -41,51 +41,6 @@ const u32 var7f1a7ea4[] = {0x00000091};
const u32 var7f1a7ea8[] = {0x0000008f};
const u32 var7f1a7eac[] = {0x00000090};
const u32 var7f1a7eb0[] = {0x40c90fdb};
const u32 var7f1a7eb4[] = {0x40c90fdb};
const u32 var7f1a7eb8[] = {0x40c90fdb};
const u32 var7f1a7ebc[] = {0x40c90fdb};
const u32 var7f1a7ec0[] = {0x40c90fdb};
const u32 var7f1a7ec4[] = {0x40c90fdb};
const u32 var7f1a7ec8[] = {0x40c90fdb};
const u32 var7f1a7ecc[] = {0x40c90fdb};
const u32 var7f1a7ed0[] = {0x40c90fdb};
const u32 var7f1a7ed4[] = {0x40c90fdb};
const u32 var7f1a7ed8[] = {0x40c90fdb};
const u32 var7f1a7edc[] = {0x40c90fdb};
const u32 var7f1a7ee0[] = {0x40c90fdb};
const u32 var7f1a7ee4[] = {0x40c90fdb};
const u32 var7f1a7ee8[] = {0x40c90fdb};
const u32 var7f1a7eec[] = {0x40c90fdb};
const u32 var7f1a7ef0[] = {0x40c90fdb};
const u32 var7f1a7ef4[] = {0x40c90fdb};
const u32 var7f1a7ef8[] = {0x40c90fdb};
const u32 var7f1a7efc[] = {0x40c90fdb};
const u32 var7f1a7f00[] = {0x40c90fdb};
const u32 var7f1a7f04[] = {0x40c90fdb};
const u32 var7f1a7f08[] = {0x40c90fdb};
const u32 var7f1a7f0c[] = {0x40c90fdb};
const u32 var7f1a7f10[] = {0x40c90fdb};
const u32 var7f1a7f14[] = {0x40c90fdb};
const u32 var7f1a7f18[] = {0x40c90fdb};
const u32 var7f1a7f1c[] = {0x40c90fdb};
const u32 var7f1a7f20[] = {0x3c23d70a};
const u32 var7f1a7f24[] = {0x3d565b7b};
const u32 var7f1a7f28[] = {0x3d4ccccd};
const u32 var7f1a7f2c[] = {0x3d565b7b};
const u32 var7f1a7f30[] = {0x3ca3d70a};
const u32 var7f1a7f34[] = {0x3ecccccd};
const u32 var7f1a7f38[] = {0x46fffe00};
const u32 var7f1a7f3c[] = {0x3ecccccd};
const u32 var7f1a7f40[] = {0x3ecccccd};
const u32 var7f1a7f44[] = {0xc6557000};
const u32 var7f1a7f48[] = {0xc4b82000};
const u32 var7f1a7f4c[] = {0x3e4ccccd};
const u32 var7f1a7f50[] = {0x40c907a9};
const u32 var7f1a7f54[] = {0x453b8000};
const u32 var7f1a7f58[] = {0x00000000};
const u32 var7f1a7f5c[] = {0x00000000};
f32 func0f006bd0(f32 arg0)
{
s32 ival = arg0 * 4.0f;
@ -108,6 +63,38 @@ f32 func0f006bd0(f32 arg0)
GLOBAL_ASM(
glabel func0f006c80
.late_rodata
glabel var7f1a7eb0
.word 0x40c90fdb
glabel var7f1a7eb4
.word 0x40c90fdb
glabel var7f1a7eb8
.word 0x40c90fdb
glabel var7f1a7ebc
.word 0x40c90fdb
glabel var7f1a7ec0
.word 0x40c90fdb
glabel var7f1a7ec4
.word 0x40c90fdb
glabel var7f1a7ec8
.word 0x40c90fdb
glabel var7f1a7ecc
.word 0x40c90fdb
glabel var7f1a7ed0
.word 0x40c90fdb
glabel var7f1a7ed4
.word 0x40c90fdb
glabel var7f1a7ed8
.word 0x40c90fdb
glabel var7f1a7edc
.word 0x40c90fdb
glabel var7f1a7ee0
.word 0x40c90fdb
glabel var7f1a7ee4
.word 0x40c90fdb
glabel var7f1a7ee8
.word 0x40c90fdb
.text
/* f006c80: 27bdff78 */ addiu $sp,$sp,-136
/* f006c84: afbf003c */ sw $ra,0x3c($sp)
/* f006c88: afb30038 */ sw $s3,0x38($sp)
@ -1723,6 +1710,32 @@ glabel func0f006c80
GLOBAL_ASM(
glabel func0f008558
.late_rodata
glabel var7f1a7eec
.word 0x40c90fdb
glabel var7f1a7ef0
.word 0x40c90fdb
glabel var7f1a7ef4
.word 0x40c90fdb
glabel var7f1a7ef8
.word 0x40c90fdb
glabel var7f1a7efc
.word 0x40c90fdb
glabel var7f1a7f00
.word 0x40c90fdb
glabel var7f1a7f04
.word 0x40c90fdb
glabel var7f1a7f08
.word 0x40c90fdb
glabel var7f1a7f0c
.word 0x40c90fdb
glabel var7f1a7f10
.word 0x40c90fdb
glabel var7f1a7f14
.word 0x40c90fdb
glabel var7f1a7f18
.word 0x40c90fdb
.text
/* f008558: 27bdff58 */ addiu $sp,$sp,-168
/* f00855c: afb10044 */ sw $s1,0x44($sp)
/* f008560: 3c0f8006 */ lui $t7,%hi(var80061694)
@ -2977,6 +2990,10 @@ glabel func0f009504
GLOBAL_ASM(
glabel func0f009818
.late_rodata
glabel var7f1a7f1c
.word 0x40c90fdb
.text
/* f009818: 27bdfef0 */ addiu $sp,$sp,-272
/* f00981c: afbf001c */ sw $ra,0x1c($sp)
/* f009820: afb00018 */ sw $s0,0x18($sp)
@ -3082,18 +3099,22 @@ void func0f0099a4(void)
{
s32 i;
var80061640 = 0;
var800616e4 = 0;
g_GasActive = false;
g_GasAudioHandle = NULL;
for (i = 0; i < ARRAYCOUNT(var8009cb08); i++) {
var8009cb08[i].unk0c = -1;
var8009cb08[i].unk20 = 0;
var8009cb08[i].unk24 = 0;
for (i = 0; i < ARRAYCOUNT(g_GasParts); i++) {
g_GasParts[i].unk0c = -1;
g_GasParts[i].audiohandle20 = 0;
g_GasParts[i].audiohandle24 = 0;
}
}
GLOBAL_ASM(
glabel func0f0099e4
.late_rodata
glabel var7f1a7f20
.word 0x3c23d70a
.text
/* f0099e4: 27bdfcf8 */ addiu $sp,$sp,-776
/* f0099e8: afb50030 */ sw $s5,0x30($sp)
/* f0099ec: 3c15800a */ lui $s5,%hi(g_Vars)
@ -3311,6 +3332,14 @@ glabel func0f0099e4
GLOBAL_ASM(
glabel func0f009d10
.late_rodata
glabel var7f1a7f24
.word 0x3d565b7b
glabel var7f1a7f28
.word 0x3d4ccccd
glabel var7f1a7f2c
.word 0x3d565b7b
.text
/* f009d10: 27bdffd8 */ addiu $sp,$sp,-40
/* f009d14: afbf001c */ sw $ra,0x1c($sp)
/* f009d18: afb00018 */ sw $s0,0x18($sp)
@ -3423,199 +3452,77 @@ glabel func0f009d10
/* f009ea8: 00000000 */ nop
);
GLOBAL_ASM(
glabel func0f009eac
/* f009eac: 3c0e800a */ lui $t6,%hi(g_Vars+0x34)
/* f009eb0: 8dce9ff4 */ lw $t6,%lo(g_Vars+0x34)($t6)
/* f009eb4: 27bdffc0 */ addiu $sp,$sp,-64
/* f009eb8: afbf002c */ sw $ra,0x2c($sp)
/* f009ebc: afb00028 */ sw $s0,0x28($sp)
/* f009ec0: 11c00003 */ beqz $t6,.L0f009ed0
/* f009ec4: 24084e20 */ addiu $t0,$zero,0x4e20
/* f009ec8: 3c018006 */ lui $at,%hi(var80061640)
/* f009ecc: ac201640 */ sw $zero,%lo(var80061640)($at)
.L0f009ed0:
/* f009ed0: 00001825 */ or $v1,$zero,$zero
.L0f009ed4:
/* f009ed4: 3c0f800a */ lui $t7,%hi(g_Vars+0x34)
/* f009ed8: 8def9ff4 */ lw $t7,%lo(g_Vars+0x34)($t7)
/* f009edc: 0003c080 */ sll $t8,$v1,0x2
/* f009ee0: 0303c021 */ addu $t8,$t8,$v1
/* f009ee4: 11e00015 */ beqz $t7,.L0f009f3c
/* f009ee8: 0018c0c0 */ sll $t8,$t8,0x3
/* f009eec: 3c19800a */ lui $t9,%hi(var8009cb08)
/* f009ef0: 2739cb08 */ addiu $t9,$t9,%lo(var8009cb08)
/* f009ef4: 03198021 */ addu $s0,$t8,$t9
/* f009ef8: 8e09000c */ lw $t1,0xc($s0)
/* f009efc: 02002025 */ or $a0,$s0,$zero
/* f009f00: 0522000f */ bltzl $t1,.L0f009f40
/* f009f04: 24630001 */ addiu $v1,$v1,0x1
/* f009f08: afa3003c */ sw $v1,0x3c($sp)
/* f009f0c: 0fc02744 */ jal func0f009d10
/* f009f10: afa80038 */ sw $t0,0x38($sp)
/* f009f14: 8fa80038 */ lw $t0,0x38($sp)
/* f009f18: 8e02000c */ lw $v0,0xc($s0)
/* f009f1c: 8fa3003c */ lw $v1,0x3c($sp)
/* f009f20: 240a0001 */ addiu $t2,$zero,0x1
/* f009f24: 0048082a */ slt $at,$v0,$t0
/* f009f28: 10200002 */ beqz $at,.L0f009f34
/* f009f2c: 00000000 */ nop
/* f009f30: 00404025 */ or $t0,$v0,$zero
.L0f009f34:
/* f009f34: 3c018006 */ lui $at,%hi(var80061640)
/* f009f38: ac2a1640 */ sw $t2,%lo(var80061640)($at)
.L0f009f3c:
/* f009f3c: 24630001 */ addiu $v1,$v1,0x1
.L0f009f40:
/* f009f40: 28610006 */ slti $at,$v1,0x6
/* f009f44: 1420ffe3 */ bnez $at,.L0f009ed4
/* f009f48: 00000000 */ nop
/* f009f4c: 2901015e */ slti $at,$t0,0x15e
/* f009f50: 10200057 */ beqz $at,.L0f00a0b0
/* f009f54: 3c048006 */ lui $a0,%hi(var800616e4)
/* f009f58: 3c0b800a */ lui $t3,%hi(g_Vars+0x34)
/* f009f5c: 8d6b9ff4 */ lw $t3,%lo(g_Vars+0x34)($t3)
/* f009f60: 3c048006 */ lui $a0,%hi(var800616e4)
/* f009f64: 11600047 */ beqz $t3,.L0f00a084
/* f009f68: 00000000 */ nop
/* f009f6c: 3c048006 */ lui $a0,%hi(var800616e4)
/* f009f70: 8c8416e4 */ lw $a0,%lo(var800616e4)($a0)
/* f009f74: 3c068006 */ lui $a2,%hi(var800616e4)
/* f009f78: 24c616e4 */ addiu $a2,$a2,%lo(var800616e4)
/* f009f7c: 14800012 */ bnez $a0,.L0f009fc8
/* f009f80: 2405810c */ addiu $a1,$zero,-32500
/* f009f84: 3c01bf80 */ lui $at,0xbf80
/* f009f88: 44812000 */ mtc1 $at,$f4
/* f009f8c: 3c048009 */ lui $a0,%hi(var80095200)
/* f009f90: 240cffff */ addiu $t4,$zero,-1
/* f009f94: 240dffff */ addiu $t5,$zero,-1
/* f009f98: 240effff */ addiu $t6,$zero,-1
/* f009f9c: afae001c */ sw $t6,0x1c($sp)
/* f009fa0: afad0018 */ sw $t5,0x18($sp)
/* f009fa4: afac0010 */ sw $t4,0x10($sp)
/* f009fa8: 8c845200 */ lw $a0,%lo(var80095200)($a0)
/* f009fac: 2407ffff */ addiu $a3,$zero,-1
/* f009fb0: afa80038 */ sw $t0,0x38($sp)
/* f009fb4: 0c004241 */ jal audioStart
/* f009fb8: e7a40014 */ swc1 $f4,0x14($sp)
/* f009fbc: 3c048006 */ lui $a0,%hi(var800616e4)
/* f009fc0: 8c8416e4 */ lw $a0,%lo(var800616e4)($a0)
/* f009fc4: 8fa80038 */ lw $t0,0x38($sp)
.L0f009fc8:
/* f009fc8: 10800042 */ beqz $a0,.L0f00a0d4
/* f009fcc: 24107fff */ addiu $s0,$zero,0x7fff
/* f009fd0: 3c0141a0 */ lui $at,0x41a0
/* f009fd4: 44816000 */ mtc1 $at,$f12
/* f009fd8: 0fc01ac2 */ jal func0f006b08
/* f009fdc: afa80038 */ sw $t0,0x38($sp)
/* f009fe0: 3c017f1a */ lui $at,%hi(var7f1a7f30)
/* f009fe4: c4267f30 */ lwc1 $f6,%lo(var7f1a7f30)($at)
/* f009fe8: 3c017f1a */ lui $at,%hi(var7f1a7f34)
/* f009fec: c42a7f34 */ lwc1 $f10,%lo(var7f1a7f34)($at)
/* f009ff0: 46060202 */ mul.s $f8,$f0,$f6
/* f009ff4: 8fa80038 */ lw $t0,0x38($sp)
/* f009ff8: 3c048006 */ lui $a0,%hi(var800616e4)
/* f009ffc: 24050008 */ addiu $a1,$zero,0x8
/* f00a000: 2901012d */ slti $at,$t0,0x12d
/* f00a004: 250ffed4 */ addiu $t7,$t0,-300
/* f00a008: 460a4400 */ add.s $f16,$f8,$f10
/* f00a00c: 1420000f */ bnez $at,.L0f00a04c
/* f00a010: e7b00030 */ swc1 $f16,0x30($sp)
/* f00a014: 448f9000 */ mtc1 $t7,$f18
/* f00a018: 3c014248 */ lui $at,0x4248
/* f00a01c: 44813000 */ mtc1 $at,$f6
/* f00a020: 46809120 */ cvt.s.w $f4,$f18
/* f00a024: 3c013f80 */ lui $at,0x3f80
/* f00a028: 44815000 */ mtc1 $at,$f10
/* f00a02c: 3c017f1a */ lui $at,%hi(var7f1a7f38)
/* f00a030: c4327f38 */ lwc1 $f18,%lo(var7f1a7f38)($at)
/* f00a034: 46062203 */ div.s $f8,$f4,$f6
/* f00a038: 46085401 */ sub.s $f16,$f10,$f8
/* f00a03c: 46128102 */ mul.s $f4,$f16,$f18
/* f00a040: 4600218d */ trunc.w.s $f6,$f4
/* f00a044: 44103000 */ mfc1 $s0,$f6
/* f00a048: 00000000 */ nop
.L0f00a04c:
/* f00a04c: 2901015e */ slti $at,$t0,0x15e
/* f00a050: 14200002 */ bnez $at,.L0f00a05c
/* f00a054: 00000000 */ nop
/* f00a058: 00008025 */ or $s0,$zero,$zero
.L0f00a05c:
/* f00a05c: 8c8416e4 */ lw $a0,%lo(var800616e4)($a0)
/* f00a060: 0c00cf94 */ jal func00033e50
/* f00a064: 02003025 */ or $a2,$s0,$zero
/* f00a068: 3c048006 */ lui $a0,%hi(var800616e4)
/* f00a06c: 8c8416e4 */ lw $a0,%lo(var800616e4)($a0)
/* f00a070: 24050010 */ addiu $a1,$zero,0x10
/* f00a074: 0c00cf94 */ jal func00033e50
/* f00a078: 8fa60030 */ lw $a2,0x30($sp)
/* f00a07c: 10000015 */ b .L0f00a0d4
/* f00a080: 00000000 */ nop
.L0f00a084:
/* f00a084: 8c8416e4 */ lw $a0,%lo(var800616e4)($a0)
/* f00a088: 10800012 */ beqz $a0,.L0f00a0d4
/* f00a08c: 00000000 */ nop
/* f00a090: 0c00cdfc */ jal audioIsPlaying
/* f00a094: 00000000 */ nop
/* f00a098: 1040000e */ beqz $v0,.L0f00a0d4
/* f00a09c: 3c048006 */ lui $a0,%hi(var800616e4)
/* f00a0a0: 0c00cec9 */ jal audioStop
/* f00a0a4: 8c8416e4 */ lw $a0,%lo(var800616e4)($a0)
/* f00a0a8: 1000000a */ b .L0f00a0d4
/* f00a0ac: 00000000 */ nop
.L0f00a0b0:
/* f00a0b0: 8c8416e4 */ lw $a0,%lo(var800616e4)($a0)
/* f00a0b4: 10800007 */ beqz $a0,.L0f00a0d4
/* f00a0b8: 00000000 */ nop
/* f00a0bc: 0c00cdfc */ jal audioIsPlaying
/* f00a0c0: 00000000 */ nop
/* f00a0c4: 10400003 */ beqz $v0,.L0f00a0d4
/* f00a0c8: 3c048006 */ lui $a0,%hi(var800616e4)
/* f00a0cc: 0c00cec9 */ jal audioStop
/* f00a0d0: 8c8416e4 */ lw $a0,%lo(var800616e4)($a0)
.L0f00a0d4:
/* f00a0d4: 3c19800a */ lui $t9,%hi(g_Vars+0x34)
/* f00a0d8: 8f399ff4 */ lw $t9,%lo(g_Vars+0x34)($t9)
/* f00a0dc: 3c10800a */ lui $s0,%hi(var8009cb08)
/* f00a0e0: 2610cb08 */ addiu $s0,$s0,%lo(var8009cb08)
/* f00a0e4: 5720001c */ bnezl $t9,.L0f00a158
/* f00a0e8: 8fbf002c */ lw $ra,0x2c($sp)
/* f00a0ec: 8e09000c */ lw $t1,0xc($s0)
.L0f00a0f0:
/* f00a0f0: 05200013 */ bltz $t1,.L0f00a140
/* f00a0f4: 00000000 */ nop
/* f00a0f8: 8e040020 */ lw $a0,0x20($s0)
/* f00a0fc: 50800008 */ beqzl $a0,.L0f00a120
/* f00a100: 8e040024 */ lw $a0,0x24($s0)
/* f00a104: 0c00cdfc */ jal audioIsPlaying
/* f00a108: 00000000 */ nop
/* f00a10c: 50400004 */ beqzl $v0,.L0f00a120
/* f00a110: 8e040024 */ lw $a0,0x24($s0)
/* f00a114: 0c00cec9 */ jal audioStop
/* f00a118: 8e040020 */ lw $a0,0x20($s0)
/* f00a11c: 8e040024 */ lw $a0,0x24($s0)
.L0f00a120:
/* f00a120: 10800007 */ beqz $a0,.L0f00a140
/* f00a124: 00000000 */ nop
/* f00a128: 0c00cdfc */ jal audioIsPlaying
/* f00a12c: 00000000 */ nop
/* f00a130: 10400003 */ beqz $v0,.L0f00a140
/* f00a134: 00000000 */ nop
/* f00a138: 0c00cec9 */ jal audioStop
/* f00a13c: 8e040024 */ lw $a0,0x24($s0)
.L0f00a140:
/* f00a140: 3c0a800a */ lui $t2,%hi(var8009cbf8)
/* f00a144: 254acbf8 */ addiu $t2,$t2,%lo(var8009cbf8)
/* f00a148: 26100028 */ addiu $s0,$s0,0x28
/* f00a14c: 560affe8 */ bnel $s0,$t2,.L0f00a0f0
/* f00a150: 8e09000c */ lw $t1,0xc($s0)
/* f00a154: 8fbf002c */ lw $ra,0x2c($sp)
.L0f00a158:
/* f00a158: 8fb00028 */ lw $s0,0x28($sp)
/* f00a15c: 27bd0040 */ addiu $sp,$sp,0x40
/* f00a160: 03e00008 */ jr $ra
/* f00a164: 00000000 */ nop
);
void gasTick(void)
{
s32 i;
s32 smallest = 20000;
s32 somevalue;
if (g_Vars.lvupdate240 != 0) {
g_GasActive = false;
}
for (i = 0; i < 6; i++) {
if (g_Vars.lvupdate240 != 0 && g_GasParts[i].unk0c >= 0) {
func0f009d10(&g_GasParts[i]);
if (g_GasParts[i].unk0c < smallest) {
smallest = g_GasParts[i].unk0c;
}
g_GasActive = true;
}
}
somevalue = 0;
if (smallest < 350) {
if (g_Vars.lvupdate240 != 0) {
if (g_GasAudioHandle == 0) {
audioStart(var80095200, 0x810c, &g_GasAudioHandle, -1, -1, -1, -1, -1);
}
somevalue = 32767;
if (g_GasAudioHandle) {
f32 speed = func0f006b08(20) * 0.02f + 0.4f;
if (smallest > 300) {
somevalue = (1.0f - (f32)(smallest - 300) / 50.0f) * 32767.0f;
}
if (smallest >= 350) {
somevalue = 0;
}
func00033e50(g_GasAudioHandle, 8, somevalue);
func00033e50(g_GasAudioHandle, 16, *(s32 *)&speed);
}
} else {
if (g_GasAudioHandle && audioIsPlaying(g_GasAudioHandle)) {
audioStop(g_GasAudioHandle);
}
}
} else {
if (g_GasAudioHandle && audioIsPlaying(g_GasAudioHandle)) {
audioStop(g_GasAudioHandle);
}
}
if (g_Vars.lvupdate240 == 0) {
for (i = 0; i < 6; i++) {
if (g_GasParts[i].unk0c >= 0) {
if (g_GasParts[i].audiohandle20 && audioIsPlaying(g_GasParts[i].audiohandle20)) {
audioStop(g_GasParts[i].audiohandle20);
}
if (g_GasParts[i].audiohandle24 && audioIsPlaying(g_GasParts[i].audiohandle24)) {
audioStop(g_GasParts[i].audiohandle24);
}
}
}
}
}
Gfx *func0f00a168(Gfx *gdl)
{
@ -3623,12 +3530,12 @@ Gfx *func0f00a168(Gfx *gdl)
s32 value = 0;
for (i = 0; i < 6; i++) {
if (var8009cb08[i].unk0c >= 0) {
if (g_GasParts[i].unk0c >= 0) {
if (!value) {
value = func0f009504();
}
gdl = func0f009818(gdl, &var8009cb08[i], value);
gdl = func0f009818(gdl, &g_GasParts[i], value);
}
}
@ -3637,18 +3544,24 @@ Gfx *func0f00a168(Gfx *gdl)
GLOBAL_ASM(
glabel func0f00a1f8
.late_rodata
glabel var7f1a7f3c
.word 0x3ecccccd
glabel var7f1a7f40
.word 0x3ecccccd
.text
/* f00a1f8: 27bdffb8 */ addiu $sp,$sp,-72
/* f00a1fc: afa40048 */ sw $a0,0x48($sp)
/* f00a200: afa5004c */ sw $a1,0x4c($sp)
/* f00a204: 240e0001 */ addiu $t6,$zero,0x1
/* f00a208: 3c018006 */ lui $at,%hi(var80061640)
/* f00a20c: 3c03800a */ lui $v1,%hi(var8009cb08)
/* f00a208: 3c018006 */ lui $at,%hi(g_GasActive)
/* f00a20c: 3c03800a */ lui $v1,%hi(g_GasParts)
/* f00a210: afbf002c */ sw $ra,0x2c($sp)
/* f00a214: afb00028 */ sw $s0,0x28($sp)
/* f00a218: 2407ffff */ addiu $a3,$zero,-1
/* f00a21c: 00004025 */ or $t0,$zero,$zero
/* f00a220: ac2e1640 */ sw $t6,%lo(var80061640)($at)
/* f00a224: 2463cb08 */ addiu $v1,$v1,%lo(var8009cb08)
/* f00a220: ac2e1640 */ sw $t6,%lo(g_GasActive)($at)
/* f00a224: 2463cb08 */ addiu $v1,$v1,%lo(g_GasParts)
/* f00a228: 24050006 */ addiu $a1,$zero,0x6
/* f00a22c: 2404ffff */ addiu $a0,$zero,-1
/* f00a230: 00003025 */ or $a2,$zero,$zero
@ -3676,8 +3589,8 @@ glabel func0f00a1f8
.L0f00a27c:
/* f00a27c: 0008c880 */ sll $t9,$t0,0x2
/* f00a280: 0328c821 */ addu $t9,$t9,$t0
/* f00a284: 3c09800a */ lui $t1,%hi(var8009cb08)
/* f00a288: 2529cb08 */ addiu $t1,$t1,%lo(var8009cb08)
/* f00a284: 3c09800a */ lui $t1,%hi(g_GasParts)
/* f00a288: 2529cb08 */ addiu $t1,$t1,%lo(g_GasParts)
/* f00a28c: 0019c8c0 */ sll $t9,$t9,0x3
/* f00a290: 03298021 */ addu $s0,$t9,$t1
/* f00a294: 0fc0252d */ jal func0f0094b4
@ -3804,7 +3717,7 @@ glabel func0f00a490
/* f00a4b0: afa40080 */ sw $a0,0x80($sp)
/* f00a4b4: afa00050 */ sw $zero,0x50($sp)
/* f00a4b8: c4441bb0 */ lwc1 $f4,0x1bb0($v0)
/* f00a4bc: 3c10800a */ lui $s0,%hi(var8009cb08)
/* f00a4bc: 3c10800a */ lui $s0,%hi(g_GasParts)
/* f00a4c0: 3c11800a */ lui $s1,%hi(var8009cbf8)
/* f00a4c4: e7a40070 */ swc1 $f4,0x70($sp)
/* f00a4c8: c4461bb4 */ lwc1 $f6,0x1bb4($v0)
@ -3813,7 +3726,7 @@ glabel func0f00a490
/* f00a4d4: e7a60074 */ swc1 $f6,0x74($sp)
/* f00a4d8: c4481bb8 */ lwc1 $f8,0x1bb8($v0)
/* f00a4dc: 2631cbf8 */ addiu $s1,$s1,%lo(var8009cbf8)
/* f00a4e0: 2610cb08 */ addiu $s0,$s0,%lo(var8009cb08)
/* f00a4e0: 2610cb08 */ addiu $s0,$s0,%lo(g_GasParts)
/* f00a4e4: e7a80078 */ swc1 $f8,0x78($sp)
/* f00a4e8: 8e02000c */ lw $v0,0xc($s0)
.L0f00a4ec:
@ -4104,6 +4017,22 @@ glabel func0f00a490
GLOBAL_ASM(
glabel hudRenderGasIfEnabled
.late_rodata
glabel var7f1a7f44
.word 0xc6557000
glabel var7f1a7f48
.word 0xc4b82000
glabel var7f1a7f4c
.word 0x3e4ccccd
glabel var7f1a7f50
.word 0x40c907a9
glabel var7f1a7f54
.word 0x453b8000
glabel var7f1a7f58
.word 0x00000000
glabel var7f1a7f5c
.word 0x00000000
.text
/* f00a940: 27bdfef0 */ addiu $sp,$sp,-272
/* f00a944: 3c013f80 */ lui $at,0x3f80
/* f00a948: 44810000 */ mtc1 $at,$f0

View File

@ -9396,7 +9396,7 @@ Gfx *func0f0c07c8(Gfx *gdl)
gdl = func0f15b114(gdl);
}
if (var80061640 != 0) {
if (g_GasActive != 0) {
gdl = func0f00a490(gdl);
}

View File

@ -131,14 +131,14 @@ void menuPlaySound(s32 menusound)
}
if (sound != -1) {
s32 handle;
struct audiohandle *handle;
OSPri prevpri = osGetThreadPri(NULL);
osSetThreadPri(0, osGetThreadPri(&g_AudioManager.thread) + 1);
handle = audioStart(var80095200, sound, NULL, -1, -1, -1, -1, -1);
if (handle && flag1) {
func00033e50(handle, 16, *(u32 *)&speed);
func00033e50(handle, 16, *(s32 *)&speed);
}
if (handle && flag2) {

View File

@ -12,7 +12,7 @@
#include "lib/memory.h"
#include "types.h"
s32 g_WeatherEnabled = false;
s32 g_WeatherActive = false;
u32 var800623f4 = 0x00000000;
u32 var800623f8 = 0x00000000;
u32 var800623fc = 0x00000000;
@ -59,7 +59,7 @@ u32 var8006249c = 0x00000000;
void weatherInit(void)
{
g_WeatherEnabled = false;
g_WeatherActive = false;
g_WeatherData = NULL;
if ((g_StageIndex == STAGEINDEX_CHICAGO
@ -117,6 +117,6 @@ void weatherInit(void)
g_WeatherData->unkd0 = 0;
g_WeatherData->unkd4 = 0;
g_WeatherEnabled = true;
g_WeatherActive = true;
}
}

View File

@ -14238,7 +14238,7 @@ u32 var8009caf8 = 0;
u32 var8009cafc = 0;
u32 var8009cb00 = 0;
u32 var8009cb04 = 0;
struct var8009cb08 var8009cb08[6] = {0};
struct gaspart g_GasParts[6] = {0};
u32 var8009cbf8 = 0;
u32 var8009cbfc = 0;
struct prop *g_DangerousProps[MAX_DANGEROUSPROPS] = {NULL};

View File

@ -222,13 +222,13 @@ extern s32 g_FootstepSounds[];
extern u16 var800615a0[][2];
extern f32 var80061630;
extern u32 var80061634;
extern s32 var80061640;
extern bool g_GasActive;
extern u32 var80061644;
extern u32 var80061648;
extern u32 var8006164c;
extern u32 var80061694;
extern u32 var800616dc;
extern u32 var800616e4;
extern struct audiohandle *g_GasAudioHandle;
extern u32 var800616e8;
extern struct stageheadlimit g_StageHeadLimits[3];
extern u32 var80061710;

View File

@ -4,7 +4,7 @@
#include "types.h"
extern u32 var800623b0;
extern s32 g_WeatherEnabled;
extern s32 g_WeatherActive;
extern u32 var80062400;
extern u32 var80062410;
extern u32 var80062414;

View File

@ -9,11 +9,11 @@ u32 func0f008558(void);
u32 func0f0094b4(void);
u32 func0f0094bc(void);
s32 func0f009504(void);
Gfx *func0f009818(Gfx *gdl, struct var8009cb08 *arg1, s32 arg2);
Gfx *func0f009818(Gfx *gdl, struct gaspart *arg1, s32 arg2);
void func0f0099a4(void);
u32 func0f0099e4(void);
u32 func0f009d10(void);
void func0f009eac(void);
void func0f009d10(struct gaspart *part);
void gasTick(void);
Gfx *func0f00a168(Gfx *gdl);
u32 func0f00a1f8(void);
f32 doorGetFrac(s32 tagnum);

View File

@ -494,7 +494,7 @@ extern u32 var8009cadc;
extern u32 var8009cae0;
extern u8 var8009caec[4];
extern u8 var8009caf0;
extern struct var8009cb08 var8009cb08[6];
extern struct gaspart g_GasParts[6];
extern u32 var8009cbf8;
extern struct prop *g_DangerousProps[MAX_DANGEROUSPROPS];
extern s32 var8009cc30;

View File

@ -33,7 +33,7 @@ u32 func00010360(void);
u32 func0001036c(void);
void audioAdjust(struct audiohandle **handle, u32 arg1, u32 arg2, s32 speakerweight, s16 arg4, f32 arg5, s32 arg6, s32 arg7, s32 arg8);
struct audiohandle *func00010718(struct audiohandle **handle, s32 arg1, s32 arg2, s32 arg3, s32 arg4, f32 arg5, s32 arg6, s32 arg7, s32 arg8);
s32 audioStart(s32 arg0, s16 sound, struct audiohandle **handle, s32 arg3, s32 arg4, f32 arg5, s32 arg6, s32 arg7);
struct audiohandle *audioStart(s32 arg0, s16 sound, struct audiohandle **handle, s32 arg3, s32 arg4, f32 arg5, s32 arg6, s32 arg7);
u32 func00010ae4(void);
void envPlayNosedive(s32 room_id);
void envStopNosedive(void);

View File

@ -21,7 +21,7 @@ u32 func00033c30(void);
u32 func00033cf0(void);
u32 func00033db0(void);
u32 func00033dd8(void);
void func00033e50(s32 arg0, s32 arg1, u32 arg2);
void func00033e50(struct audiohandle *handle, s32 arg1, s32 arg2);
u32 func00033ec4(void);
u32 func00033f08(void);
u32 func00033f24(void);

View File

@ -6835,7 +6835,7 @@ struct var8006996c {
/*0x28*/ u32 unk28;
};
struct var8009cb08 {
struct gaspart {
u32 unk00;
u32 unk04;
u32 unk08;
@ -6844,8 +6844,8 @@ struct var8009cb08 {
u32 unk14;
u32 unk18;
u32 unk1c;
u32 unk20;
u32 unk24;
struct audiohandle *audiohandle20;
struct audiohandle *audiohandle24;
};
struct roomacousticdata {