Reimplemented fgsfds volumeScale

This commit is contained in:
KiritoDev 2021-05-21 19:54:57 -05:00
parent c9bcce5ac1
commit d3354cc1b6
4 changed files with 5 additions and 3 deletions

View File

@ -13,7 +13,8 @@ static void sequence_channel_process_sound(struct SequenceChannel *seqChannel) {
f32 panFromChannel;
s32 i;
channelVolume = seqChannel->volume * seqChannel->volumeScale * seqChannel->seqPlayer->fadeVolume;
channelVolume = seqChannel->volume * seqChannel->volumeScale *
seqChannel->seqPlayer->fadeVolume * seqChannel->seqPlayer->volumeScale;
if (seqChannel->seqPlayer->muted && (seqChannel->muteBehavior & MUTE_BEHAVIOR_SOFTEN) != 0) {
channelVolume *= seqChannel->seqPlayer->muteVolumeScale;
}

View File

@ -1851,7 +1851,7 @@ void play_dialog_sound(u8 dialogID) {
}
void set_sequence_player_volume(s32 player, f32 volume) {
gSequencePlayers[player].volume = volume;
gSequencePlayers[player].volumeScale = volume;
}
/**

View File

@ -241,6 +241,7 @@ struct SequencePlayer
/*0x134, ?????*/ struct AudioBank *loadingBank;
/*0x138, 0x140*/ uintptr_t bankDmaCurrDevAddr;
/*0x13C, 0x144*/ ssize_t bankDmaRemaining;
/* ext */ f32 volumeScale;
}; // size = 0x140, 0x148 on EU, 0x14C on SH
struct AdsrSettings {

View File

@ -2083,7 +2083,7 @@ void init_sequence_players(void) {
gSequencePlayers[i].seqDmaInProgress = FALSE;
// only set this once at the start so it doesn't spike later
gSequencePlayers[i].volume = 1.0f;
gSequencePlayers[i].volumeScale = 1.0f;
init_note_lists(&gSequencePlayers[i].notePool);
init_sequence_player(i);