audio/external: 800C5384 (#390)

This commit is contained in:
Joshua Peisach
2023-08-30 22:59:06 -04:00
committed by GitHub
parent 05d3636835
commit d08a8b6b29
3 changed files with 22 additions and 120 deletions
+21 -35
View File
@@ -2234,44 +2234,32 @@ void func_800C5278(u8 bank) {
GLOBAL_ASM("asm/non_matchings/audio/external/func_800C5278.s")
#endif
#ifdef MIPS_TO_C
//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Aug-14-2023
? func_800C473C(s32, s32); /* extern */
extern void func_800C473C(u8, u8); /* extern */
void func_800C5384(s32 arg0, s32 arg1) {
s32 temp_s5;
s32 var_s2;
struct Unk_80191420 *temp_s0;
struct Unk_80191420 *temp_s3;
u8 var_s1;
void func_800C5384(u8 arg0, f32 *arg1)
{
u8 curr;
u8 next;
temp_s5 = arg0 & 0xFF;
var_s1 = sSoundBanks[temp_s5]->next;
var_s2 = 0;
if (var_s1 != 0xFF) {
temp_s3 = sSoundBanks[temp_s5];
do {
temp_s0 = &temp_s3[var_s1];
if (arg1 == temp_s0->unk00) {
if ((s32) temp_s0->soundStatus >= 3) {
func_800CBBE8((temp_s0->unk2C << 8) | 0x06020000, 0);
}
if (temp_s0->soundStatus != 0) {
func_800C473C(temp_s5 & 0xFF, var_s1 & 0xFF);
}
var_s1 = temp_s3[var_s2].next;
} else {
var_s2 = var_s1 & 0xFF;
var_s1 = temp_s3[var_s2].next;
curr = 0;
next = sSoundBanks[arg0][0].next;
while (next != 0xff) {
if (arg1 == sSoundBanks[arg0][next].unk00) {
if (sSoundBanks[arg0][next].soundStatus >= 3) {
func_800CBBE8((0x06020000 | ((sSoundBanks[arg0][next].unk2C & 0xff) << 8)), 0);
}
} while (var_s1 != 0xFF);
if (sSoundBanks[arg0][next].soundStatus != 0) {
func_800C473C(arg0, next);
}
} else {
curr = next;
}
next = sSoundBanks[arg0][curr].next;
}
}
#else
GLOBAL_ASM("asm/non_matchings/audio/external/func_800C5384.s")
#endif
extern void func_800C5384(u8, s32);
struct UnkStruct {
s32 unk0;
@@ -2288,8 +2276,6 @@ void func_800C54B8(u8 arg0, s32 arg1) {
func_800C41CC(1, (void*)&unk);
}
extern void func_800C5384(u8, s32); /* extern */
void func_800C550C(s32 arg0) {
UNUSED s32 pad[11];
+1 -1
View File
@@ -79,7 +79,7 @@ struct Unk_80191420 {
/* 0x29 */ u8 freshness;
/* 0x2A */ u8 prev;
/* 0x2B */ u8 next;
/* 0x2C */ s32 unk2C;
/* 0x2C */ u8 unk2C;
}; // size = 0x30
struct Unk_800EA06C {