2020-10-03 15:22:44 +00:00
|
|
|
#include "ultra64.h"
|
|
|
|
#include "global.h"
|
2021-07-27 23:44:58 +00:00
|
|
|
#include "ultra64/abi.h"
|
|
|
|
extern unk_D_8016E750 D_8016E750[4];
|
|
|
|
extern u8 D_8016E348[4];
|
|
|
|
extern u32 sAudioSeqCmds[0x100];
|
|
|
|
extern u8 sSeqCmdRdPos;
|
|
|
|
extern u8 sSeqCmdWrPos;
|
|
|
|
extern u8 D_80133408;
|
2020-07-20 01:08:50 +00:00
|
|
|
|
2021-07-27 23:44:58 +00:00
|
|
|
void Audio_ProcessSeqCmd(u32 cmd);
|
|
|
|
|
|
|
|
#ifdef NON_MATCHING
|
|
|
|
void func_800F9280(u8 seqIdx, u8 seqId, u8 arg2, u16 fadeTimer) {
|
|
|
|
u8 temp_s0;
|
|
|
|
u8 i;
|
|
|
|
|
|
|
|
temp_s0 = seqIdx;
|
|
|
|
if (D_80133408 == 0 || temp_s0 == 2) {
|
|
|
|
arg2 &= 0x7F;
|
|
|
|
if (arg2 == 0x7F) {
|
|
|
|
Audio_QueueCmdS32(0x85000000 | ((u8)seqIdx << 16) | (seqId << 8),
|
2021-07-28 21:59:52 +00:00
|
|
|
((fadeTimer >> 3) * 0x3C * gAudioContext.audioBufferParameters.updatesPerFrame) & 0xFFFF);
|
2021-07-27 23:44:58 +00:00
|
|
|
} else {
|
|
|
|
Audio_QueueCmdS32(0x82000000 | ((u8)seqIdx << 16) | (seqId << 8),
|
|
|
|
(fadeTimer * (u16)gAudioContext.audioBufferParameters.updatesPerFrame) / 4);
|
|
|
|
}
|
|
|
|
|
|
|
|
D_8016E750[temp_s0].unk_256 = D_8016E750[temp_s0].unk_254 = (arg2 << 8) | seqId;
|
|
|
|
|
|
|
|
if (D_8016E750[temp_s0].volCur != 1.0f) {
|
|
|
|
Audio_QueueCmdF32(0x41000000 | ((u8)seqIdx << 16), D_8016E750[temp_s0].volCur);
|
|
|
|
}
|
|
|
|
|
|
|
|
D_8016E750[temp_s0].unk_28 = 0;
|
|
|
|
D_8016E750[temp_s0].unk_18 = 0;
|
|
|
|
D_8016E750[temp_s0].unk_14 = 0;
|
|
|
|
|
|
|
|
for (i = 0; i < 0x10; i++) {
|
|
|
|
D_8016E750[temp_s0].unk_50[i].unk_00 = 1.0f;
|
|
|
|
D_8016E750[temp_s0].unk_50[i].unk_0C = 0;
|
|
|
|
D_8016E750[temp_s0].unk_50[i].unk_10 = 1.0f;
|
|
|
|
D_8016E750[temp_s0].unk_50[i].unk_1C = 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
D_8016E750[temp_s0].unk_250 = 0;
|
|
|
|
D_8016E750[temp_s0].unk_252 = 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#else
|
2020-07-20 01:08:50 +00:00
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/code_800F9280/func_800F9280.s")
|
2021-07-27 23:44:58 +00:00
|
|
|
#endif
|
|
|
|
|
|
|
|
void func_800F9474(u8 arg0, u16 arg1) {
|
|
|
|
Audio_QueueCmdS32(0x83000000 | ((u8)arg0 << 16),
|
|
|
|
(arg1 * (u16)gAudioContext.audioBufferParameters.updatesPerFrame) / 4);
|
|
|
|
D_8016E750[arg0].unk_254 = 0xFFFF;
|
|
|
|
}
|
|
|
|
|
|
|
|
typedef enum {
|
|
|
|
SEQ_START,
|
|
|
|
CMD1,
|
|
|
|
CMD2,
|
|
|
|
CMD3,
|
|
|
|
SEQ_VOL_UPD,
|
|
|
|
CMD5,
|
|
|
|
CMD6,
|
|
|
|
CMD7,
|
|
|
|
CMD8,
|
|
|
|
CMD9,
|
|
|
|
CMDA,
|
|
|
|
CMDB,
|
|
|
|
CMDC,
|
|
|
|
CMDD,
|
|
|
|
CMDE,
|
|
|
|
CMDF
|
|
|
|
} SeqCmdType;
|
|
|
|
|
|
|
|
extern u32 D_8013340C;
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/code_800F9280/Audio_ProcessSeqCmd.s")
|
|
|
|
|
|
|
|
void Audio_QueueSeqCmd(u32 cmd) {
|
|
|
|
sAudioSeqCmds[sSeqCmdWrPos++] = cmd;
|
|
|
|
}
|
|
|
|
|
|
|
|
void Audio_ProcessSeqCmds(void) {
|
|
|
|
while (sSeqCmdWrPos != sSeqCmdRdPos) {
|
|
|
|
Audio_ProcessSeqCmd(sAudioSeqCmds[sSeqCmdRdPos++]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
u16 func_800FA0B4(u8 playerIdx) {
|
|
|
|
if (!gAudioContext.seqPlayers[playerIdx].enabled) {
|
|
|
|
return 0xFFFF;
|
|
|
|
}
|
|
|
|
return D_8016E750[playerIdx].unk_254;
|
|
|
|
}
|
|
|
|
|
|
|
|
s32 func_800FA11C(u32 arg0, u32 arg1) {
|
|
|
|
u8 i;
|
|
|
|
|
|
|
|
for (i = sSeqCmdRdPos; i != sSeqCmdWrPos; i++) {
|
|
|
|
if (arg0 == (sAudioSeqCmds[i] & arg1)) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
void func_800FA174(u8 arg0) {
|
|
|
|
D_8016E348[arg0] = 0;
|
|
|
|
}
|
2020-07-20 01:08:50 +00:00
|
|
|
|
2021-07-27 23:44:58 +00:00
|
|
|
void func_800FA18C(u8 arg0, u8 arg1) {
|
|
|
|
u8 i;
|
2020-07-20 01:08:50 +00:00
|
|
|
|
2021-07-27 23:44:58 +00:00
|
|
|
for (i = 0; i < D_8016E750[arg0].unk_4D; i++) {
|
|
|
|
u8 unkb = (D_8016E750[arg0].unk_2C[i] & 0xF00000) >> 0x14;
|
2020-07-20 01:08:50 +00:00
|
|
|
|
2021-07-27 23:44:58 +00:00
|
|
|
if (unkb == arg1) {
|
|
|
|
D_8016E750[arg0].unk_2C[i] = 0xFF000000;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#define Audio_SetVolScaleNow(seqIdx, volFadeTimer, volScale) \
|
|
|
|
Audio_ProcessSeqCmd(0x40000000 | ((u8)seqIdx << 0x18) | ((u8)volFadeTimer << 0x10) | ((u8)(volScale * 127.0f)));
|
2020-07-20 01:08:50 +00:00
|
|
|
|
2021-07-27 23:44:58 +00:00
|
|
|
void Audio_SetVolScale(u8 seqIdx, u8 scaleIdx, u8 targetVol, u8 volFadeTimer) {
|
|
|
|
f32 volScale;
|
|
|
|
u8 i;
|
2020-07-20 01:08:50 +00:00
|
|
|
|
2021-07-27 23:44:58 +00:00
|
|
|
D_8016E750[seqIdx].volScales[scaleIdx] = targetVol & 0x7F;
|
2020-07-20 01:08:50 +00:00
|
|
|
|
2021-07-27 23:44:58 +00:00
|
|
|
if (volFadeTimer != 0) {
|
|
|
|
D_8016E750[seqIdx].fadeVolUpdate = 1;
|
|
|
|
D_8016E750[seqIdx].volFadeTimer = volFadeTimer;
|
|
|
|
} else {
|
|
|
|
for (i = 0, volScale = 1.0f; i < 4; i++) {
|
|
|
|
volScale *= D_8016E750[seqIdx].volScales[i] / 127.0f;
|
|
|
|
}
|
2020-07-20 01:08:50 +00:00
|
|
|
|
2021-07-27 23:44:58 +00:00
|
|
|
Audio_SetVolScaleNow(seqIdx, volFadeTimer, volScale);
|
|
|
|
}
|
|
|
|
}
|
2020-07-20 01:08:50 +00:00
|
|
|
|
2021-07-27 23:44:58 +00:00
|
|
|
#ifdef NON_MATCHING
|
|
|
|
void func_800FA3DC(void) {
|
|
|
|
u32 sp70;
|
|
|
|
f32 temp_f0;
|
|
|
|
f32 temp_f0_2;
|
|
|
|
f32 temp_f16;
|
|
|
|
f32 temp_f2;
|
|
|
|
f32 temp_f6;
|
|
|
|
f32 temp_f8;
|
|
|
|
s32 temp_a0_2;
|
|
|
|
s32 temp_a2;
|
|
|
|
s32 temp_a3;
|
|
|
|
u16 temp_lo;
|
|
|
|
s32 temp_s0;
|
|
|
|
s32 temp_s0_2;
|
|
|
|
u8 temp_s1;
|
|
|
|
s32 temp_s3;
|
|
|
|
s32 temp_s3_2;
|
|
|
|
s32 temp_s5;
|
|
|
|
s32 temp_v0_10;
|
|
|
|
u8 temp_v0_4;
|
|
|
|
s32 temp_v1;
|
|
|
|
u16 temp_t4;
|
|
|
|
u16 temp_t5;
|
|
|
|
u16 temp_t5_2;
|
|
|
|
u16 temp_t8;
|
|
|
|
u16 temp_v0_2;
|
|
|
|
u16 temp_v0_5;
|
|
|
|
u16 temp_v0_6;
|
|
|
|
u16 temp_v1_2;
|
|
|
|
u16 temp_v1_3;
|
|
|
|
u8 temp_a0;
|
|
|
|
u32 temp_v0;
|
|
|
|
u8 temp_a3_3;
|
|
|
|
u8 temp_s0_3;
|
|
|
|
u8 temp_t3;
|
|
|
|
u8 temp_v0_9;
|
|
|
|
u8 temp_v1_4;
|
|
|
|
unk_D_8016E750* temp_s0_4;
|
|
|
|
unk_D_8016E750* temp_s0_5;
|
|
|
|
unk_D_8016E750* temp_s2;
|
|
|
|
void* temp_v0_7;
|
|
|
|
void* temp_v0_8;
|
|
|
|
s32 phi_s3;
|
|
|
|
f32 phi_f0;
|
|
|
|
f32 phi_f6;
|
|
|
|
u16 phi_a2;
|
|
|
|
s32 phi_a2_2;
|
|
|
|
f32 phi_f0_2;
|
|
|
|
u8 phi_t0;
|
|
|
|
f32 phi_f8;
|
|
|
|
s32 phi_s0;
|
|
|
|
s32 phi_s0_2;
|
|
|
|
s32 phi_s3_2;
|
|
|
|
s32 phi_v1;
|
|
|
|
f32 phi_f16;
|
|
|
|
u8 i;
|
|
|
|
u8 j;
|
|
|
|
u8 k;
|
2020-07-20 01:08:50 +00:00
|
|
|
|
2021-07-27 23:44:58 +00:00
|
|
|
for (i = 0; i < 4; i++) {
|
|
|
|
temp_s2 = &D_8016E750[i];
|
|
|
|
if (temp_s2->unk_260 != 0) {
|
|
|
|
switch (func_800E5E20(&sp70)) {
|
|
|
|
case 1:
|
|
|
|
case 2:
|
|
|
|
case 3:
|
|
|
|
case 4:
|
|
|
|
temp_s2->unk_260 = 0;
|
|
|
|
Audio_ProcessSeqCmd(temp_s2->unk_25C);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
2020-07-20 01:08:50 +00:00
|
|
|
|
2021-07-27 23:44:58 +00:00
|
|
|
if (temp_s2->fadeVolUpdate) {
|
|
|
|
for (j = 0, phi_f0 = 1.0f; j < 4; j++) {
|
|
|
|
phi_f0 *= (D_8016E750[i].volScales[j] / 127.0f);
|
|
|
|
}
|
|
|
|
|
|
|
|
Audio_SeqCmd4(i, temp_s2->volFadeTimer, phi_f0 * 127.0f);
|
|
|
|
temp_s2->fadeVolUpdate = 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (temp_s2->unk_0C != 0) {
|
|
|
|
temp_s2->unk_0C--;
|
|
|
|
|
|
|
|
if (temp_s2->unk_0C != 0) {
|
|
|
|
temp_s2->volCur = temp_s2->volCur - temp_s2->unk_08;
|
|
|
|
} else {
|
|
|
|
temp_s2->volCur = temp_s2->volTarget;
|
|
|
|
}
|
|
|
|
|
|
|
|
Audio_QueueCmdF32(0x41000000 | _SHIFTL(i, 16, 8), temp_s2->volCur);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (temp_s2->unk_14 != 0) {
|
|
|
|
phi_a2 = temp_s2->unk_14 & 0xFFF;
|
|
|
|
phi_t0 = (temp_s2->unk_14 & 0xFF0000) >> 0xF;
|
|
|
|
if (phi_t0 == 0) {
|
|
|
|
phi_t0++;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (gAudioContext.seqPlayers[i].enabled) {
|
|
|
|
temp_v0_4 = (temp_s2->unk_14 & 0xF000) >> 0xC;
|
|
|
|
temp_lo = gAudioContext.seqPlayers[i].tempo / 0x30;
|
|
|
|
switch (temp_v0_4) {
|
|
|
|
case 1:
|
|
|
|
phi_a2 += temp_lo;
|
|
|
|
break;
|
|
|
|
case 2:
|
|
|
|
phi_a2 = temp_a2;
|
|
|
|
if (temp_v1 < temp_lo) {
|
|
|
|
phi_a2 = temp_lo - temp_v1;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 3:
|
|
|
|
phi_a2 = temp_lo * (phi_a2 / 100.0f);
|
|
|
|
break;
|
|
|
|
case 4:
|
|
|
|
temp_v0_5 = temp_s2->unk_18;
|
|
|
|
phi_a2 = temp_lo;
|
|
|
|
if (temp_v0_5 != 0) {
|
|
|
|
phi_a2 = temp_v0_5 & 0xFFFF;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (phi_a2 >= 0x12D) {
|
|
|
|
phi_a2 = 0x12C;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (temp_s2->unk_18 == 0) {
|
|
|
|
temp_s2->unk_18 = temp_lo;
|
|
|
|
}
|
|
|
|
|
|
|
|
temp_s2->unk_20 = phi_a2;
|
|
|
|
temp_s2->unk_1C = temp_lo;
|
|
|
|
temp_s2->unk_28 = phi_t0;
|
|
|
|
temp_s2->unk_14 = 0;
|
|
|
|
temp_s2->unk_24 = (temp_s2->unk_1C - temp_s2->unk_20) / temp_s2->unk_28;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (temp_s2->unk_28 != 0) {
|
|
|
|
temp_s2->unk_28--;
|
|
|
|
if (temp_s2->unk_28 != 0) {
|
|
|
|
temp_s2->unk_1C = temp_s2->unk_1C - temp_s2->unk_24;
|
|
|
|
} else {
|
|
|
|
temp_s2->unk_1C = temp_s2->unk_20;
|
|
|
|
}
|
|
|
|
Audio_QueueCmdS32(0x47000000 | _SHIFTL(i, 16, 8), temp_s2->unk_1C);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (temp_s2->unk_252 != 0) {
|
|
|
|
for (k = 0; k < 0x10; k++) {
|
|
|
|
if (D_8016E750[i].unk_50[k].unk_0C != 0) {
|
|
|
|
D_8016E750[i].unk_50[k].unk_0C--;
|
|
|
|
if (D_8016E750[i].unk_50[k].unk_0C != 0) {
|
|
|
|
D_8016E750[i].unk_50[k].unk_00 -= D_8016E750[i].unk_50[k].unk_08;
|
|
|
|
} else {
|
|
|
|
D_8016E750[i].unk_50[k].unk_00 = D_8016E750[i].unk_50[k].unk_04;
|
|
|
|
temp_s2->unk_252 ^= (1 << k);
|
|
|
|
}
|
|
|
|
Audio_QueueCmdF32(0x01000000 | _SHIFTL(i, 16, 8) | (k, 8, 8), D_8016E750[i].unk_50[k].unk_00);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (temp_s2->unk_250 != 0) {
|
|
|
|
for (k = 0; k < 0x10; k++) {
|
|
|
|
if (D_8016E750[i].unk_50[k].unk_1C != 0) {
|
|
|
|
D_8016E750[i].unk_50[k].unk_1C--;
|
|
|
|
if (D_8016E750[i].unk_50[k].unk_1C != 0) {
|
|
|
|
D_8016E750[i].unk_50[k].unk_10 -= D_8016E750[i].unk_50[k].unk_18;
|
|
|
|
} else {
|
|
|
|
D_8016E750[i].unk_50[k].unk_10 = D_8016E750[i].unk_50[k].unk_14;
|
|
|
|
temp_s2->unk_250 ^= (1 << k);
|
|
|
|
}
|
|
|
|
Audio_QueueCmdF32(0x04000000 | _SHIFTL(i, 16, 8) | _SHIFTL(k, 8, 8),
|
|
|
|
D_8016E750[i].unk_50[k].unk_10);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (temp_s2->unk_4D != 0) {
|
|
|
|
if (func_800FA11C(0xF0000000, 0xF0000000) == 0) {
|
|
|
|
temp_s2->unk_4D = 0;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (temp_s2->unk_4C != 0) {
|
|
|
|
temp_s2->unk_4C--;
|
|
|
|
} else if (!gAudioContext.seqPlayers[i].enabled) {
|
|
|
|
for (j = 0; j < temp_s2->unk_4D; j++) {
|
|
|
|
// temp_a0 = (temp_v0_10 & 0x00F00000) >> 20;
|
|
|
|
// temp_s1 = (temp_v0_10 & 0x000F0000) >> 16;
|
|
|
|
// temp_s0_3 = (temp_v0_10 & 0xFF00) >> 8;
|
|
|
|
// temp_a3_3 = (temp_v0_10 & 0xFF) >> 0;
|
|
|
|
temp_v0_10 = D_8016E750[i].unk_2C[j];
|
|
|
|
temp_a0 = Unk2C_B8(temp_v0_10);
|
|
|
|
temp_s1 = Unk2C_B12(temp_v0_10);
|
|
|
|
temp_s0_3 = Unk2C_B16(temp_v0_10);
|
|
|
|
temp_a3_3 = Unk2C_B24(temp_v0_10);
|
|
|
|
switch (temp_a0) {
|
|
|
|
case 0:
|
|
|
|
Audio_SetVolScale(temp_s1, 1, 0x7F, temp_a3_3);
|
|
|
|
break;
|
|
|
|
case 7:
|
|
|
|
if (temp_a3_3 == D_8016E348[i]) {
|
|
|
|
Audio_SetVolScale(temp_s1, 1, 0x7F, temp_s0_3);
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 1:
|
|
|
|
Audio_SeqCmd3(i, temp_s2->unk_254);
|
|
|
|
break;
|
|
|
|
case 2:
|
|
|
|
Audio_StartSeq(temp_s1, 0, D_8016E750[temp_s1].unk_254);
|
|
|
|
D_8016E750[temp_s1].fadeVolUpdate = 1;
|
|
|
|
D_8016E750[temp_s1].volScales[1] = 0x7F;
|
|
|
|
break;
|
|
|
|
case 3:
|
|
|
|
Audio_SeqCmdB30(temp_s1, temp_s0_3, temp_a3_3);
|
|
|
|
break;
|
|
|
|
case 4:
|
|
|
|
Audio_SeqCmdB40(temp_s1, temp_a3_3, 0);
|
|
|
|
break;
|
|
|
|
case 5:
|
|
|
|
Audio_StartSeq(temp_s1, D_8016E750[temp_s1].unk_4E, temp_v0_10);
|
|
|
|
Audio_SetVolScale(temp_s1, 1, 0x7F, 0);
|
|
|
|
D_8016E750[temp_s1].unk_4E = 0;
|
|
|
|
break;
|
|
|
|
case 6:
|
|
|
|
temp_s2->unk_4E = temp_s0_3;
|
|
|
|
break;
|
|
|
|
case 8:
|
|
|
|
Audio_SetVolScale(temp_s1, temp_s0_3, 0x7F, temp_a3_3);
|
|
|
|
break;
|
|
|
|
case 14:
|
|
|
|
if (temp_a3_3 & 1) {
|
|
|
|
Audio_QueueCmdS32(0xE3000000, 0);
|
|
|
|
}
|
|
|
|
if (temp_a3_3 & 2) {
|
|
|
|
Audio_QueueCmdS32(0xE3000000U, 1);
|
|
|
|
}
|
|
|
|
if (temp_a3_3 & 4) {
|
|
|
|
Audio_QueueCmdS32(0xE3000000U, 2);
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 9:
|
|
|
|
Audio_SeqCmdA(temp_s1, temp_v0_10);
|
|
|
|
break;
|
|
|
|
case 10:
|
|
|
|
Audio_SeqCmd5(temp_s1, temp_s0_3, (temp_a3_3 * 0xA));
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
temp_s2->unk_4D = 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#else
|
|
|
|
void func_800FA3DC(void);
|
2020-07-20 01:08:50 +00:00
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/code_800F9280/func_800FA3DC.s")
|
2021-07-27 23:44:58 +00:00
|
|
|
#endif
|
|
|
|
|
|
|
|
extern u8 D_80133418;
|
|
|
|
extern u8 D_801333CC;
|
|
|
|
#define CMD46(a) (_SHIFTL(0x46, 24, 8) | _SHIFTL(a, 16, 8))
|
|
|
|
u8 func_800FAD34(void) {
|
|
|
|
if (D_80133418 != 0) {
|
|
|
|
if (D_80133418 == 1) {
|
|
|
|
if (func_800E5EDC() == 1) {
|
|
|
|
D_80133418 = 0;
|
|
|
|
Audio_QueueCmdS8(CMD46(2), D_801333CC);
|
|
|
|
func_800F7170();
|
|
|
|
}
|
|
|
|
} else if (D_80133418 == 2) {
|
|
|
|
while (func_800E5EDC() != 1) {}
|
|
|
|
D_80133418 = 0;
|
|
|
|
Audio_QueueCmdS8(CMD46(2), D_801333CC);
|
|
|
|
func_800F7170();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return D_80133418;
|
|
|
|
}
|
|
|
|
|
|
|
|
void func_800FADF8(void) {
|
|
|
|
u8 i, j;
|
2020-07-20 01:08:50 +00:00
|
|
|
|
2021-07-27 23:44:58 +00:00
|
|
|
for (i = 0; i < 4; i++) {
|
|
|
|
D_8016E348[i] = 0;
|
|
|
|
D_8016E750[i].unk_254 = 0xFFFF;
|
|
|
|
D_8016E750[i].unk_256 = 0xFFFF;
|
|
|
|
D_8016E750[i].unk_28 = 0;
|
|
|
|
D_8016E750[i].unk_18 = 0;
|
|
|
|
D_8016E750[i].unk_14 = 0;
|
|
|
|
D_8016E750[i].unk_258 = 0;
|
|
|
|
D_8016E750[i].unk_4D = 0;
|
|
|
|
D_8016E750[i].unk_4E = 0;
|
|
|
|
D_8016E750[i].unk_250 = 0;
|
|
|
|
D_8016E750[i].unk_252 = 0;
|
|
|
|
for (j = 0; j < 4; j++) {
|
|
|
|
D_8016E750[i].volScales[j] = 0x7F;
|
|
|
|
}
|
|
|
|
D_8016E750[i].volFadeTimer = 1;
|
|
|
|
D_8016E750[i].fadeVolUpdate = 1;
|
|
|
|
}
|
|
|
|
}
|
2020-07-20 01:08:50 +00:00
|
|
|
|
2021-07-27 23:44:58 +00:00
|
|
|
void func_800FAEB4(void) {
|
|
|
|
u8 i, j;
|
2020-07-20 01:08:50 +00:00
|
|
|
|
2021-07-27 23:44:58 +00:00
|
|
|
for (i = 0; i < 4; i++) {
|
|
|
|
D_8016E750[i].volCur = 1.0f;
|
|
|
|
D_8016E750[i].unk_0C = 0;
|
|
|
|
D_8016E750[i].fadeVolUpdate = 0;
|
|
|
|
for (j = 0; j < 4; j++) {
|
|
|
|
D_8016E750[i].volScales[j] = 0x7F;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
func_800FADF8();
|
|
|
|
}
|