remove envelopeVolume union

This commit is contained in:
z64a 2025-05-22 00:43:58 -04:00
parent 6de82b8476
commit f1f0481c73
3 changed files with 13 additions and 12 deletions

View File

@ -437,11 +437,6 @@ typedef union SeqArgs {
} UnkCmdFF;
} SeqArgs;
typedef union VolumeField {
u16 u16;
s32 s32;
} VolumeField;
/// Structure for volume fading for SFX and BGM. Has independent controls for base and envelope volumes.
typedef struct Fade {
/* 0x0 */ s16_16 baseVolume;
@ -452,7 +447,7 @@ typedef struct Fade {
/* 0xC */ AuCallback onCompleteCallback;
/* 0xC */ s32 variation;
};
/* 0x10 */ VolumeField envelopeVolume;
/* 0x10 */ s16_16 envelopeVolume;
/* 0x14 */ s32 envelopeStep;
/* 0x18 */ s16 envelopeTarget;
/* 0x1A */ s16 envelopeTicks;

View File

@ -637,7 +637,10 @@ void au_bgm_update_fade(BGMPlayer* player) {
}
void au_bgm_update_bus_volumes(BGMPlayer* player) {
u16 volume = (((u32)player->fadeInfo.baseVolume >> 16) * player->fadeInfo.envelopeVolume.u16) >> 15;
u16 volume = (
((u32)player->fadeInfo.baseVolume >> 16) *
((u32)player->fadeInfo.envelopeVolume >> 16)
) >> 15;
s32 i;
for (i = 0; i < ARRAY_COUNT(player->effectIndices); i++) {
@ -1837,7 +1840,10 @@ void au_BGMCmd_FF(BGMPlayer* player, BGMPlayerTrack* track) {
if ((player->soundManager->bgmSounds[i].index) == 0) {
player->soundManager->bgmSounds[i].index = arg1;
player->soundManager->bgmSounds[i].volume =
((s32)(((u32)player->fadeInfo.baseVolume >> 16) * player->fadeInfo.envelopeVolume.u16) + AU_MAX_VOLUME_16) >> 0x17;
((s32)(
((u32)player->fadeInfo.baseVolume >> 16) *
((u32)player->fadeInfo.envelopeVolume >> 16)
) + AU_MAX_VOLUME_16) >> 0x17;
break;
}
}

View File

@ -461,7 +461,7 @@ void au_fade_flush(Fade* fade) {
}
void au_fade_set_vol_scale(Fade* fade, s16 value) {
fade->envelopeVolume.s32 = value << 16;
fade->envelopeVolume = value << 16;
fade->envelopeTarget = value;
fade->envelopeTicks = 0;
fade->envelopeStep = 0;
@ -473,7 +473,7 @@ void au_unk_80053B04(Fade* fade, u32 duration, s32 target) {
if (duration >= 250 && duration <= 100000) {
ticks = (s32)(duration * 1000) / AU_FRAME_USEC;
delta = (target << 16) - fade->envelopeVolume.s32;
delta = (target << 16) - fade->envelopeVolume;
fade->envelopeTarget = target;
fade->envelopeTicks = ticks;
@ -488,10 +488,10 @@ void au_fade_update_envelope(Fade* fade) {
fade->envelopeTicks--;
if (fade->envelopeTicks != 0) {
fade->envelopeVolume.s32 += fade->envelopeStep;
fade->envelopeVolume += fade->envelopeStep;
} else {
fade->envelopeStep = 0;
fade->envelopeVolume.s32 = fade->envelopeTarget << 16;
fade->envelopeVolume = fade->envelopeTarget << 16;
}
}