Skip to content

Commit 4971ff7

Browse files
Random zMusic improvements (#417)
1 parent 0b7d43b commit 4971ff7

File tree

1 file changed

+16
-7
lines changed

1 file changed

+16
-7
lines changed

src/SB/Game/zMusic.cpp

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,8 @@ extern zMusicTrackInfo sMusicTrack[2];
1212
extern zVolumeInfo volume;
1313
extern U32 sMusicPaused;
1414
extern S32 sMusicLastEnum[2];
15-
extern F32 lbl_803CDD48; //0f by default.
16-
extern F32 minDelay; //Value is defaulted at 0.001f.
1715
extern U32 sMusicSoundID[24][2];
1816
extern zMusicSituation sMusicInfo[8];
19-
extern F32 lbl_803CCA78;
20-
extern F32 lbl_803CD118;
2117
extern zMusicSituation* sMusicQueueData[2];
2218
extern F32 sMusicTimer[2];
2319

@@ -26,12 +22,14 @@ extern zGlobals globals;
2622

2723
extern const char zMusic_strings[];
2824

25+
static const F32 minDelay = 0.001f;
26+
2927
#ifdef NON_MATCHING
3028
void volume_reset()
3129
{
32-
volume.cur = lbl_803CCA78;
33-
volume.end = lbl_803CD118;
34-
volume.inc = lbl_803CCA78;
30+
volume.cur = 0.0f;
31+
volume.end = 1.0f;
32+
volume.inc = 0.5f;
3533
memset(volume.adjusted, 0, sizeof(volume.adjusted));
3634
}
3735
#endif
@@ -292,6 +290,17 @@ void zMusicSetVolume(F32 vol, F32 delay)
292290
volume.inc = (vol - volume.cur) / delay;
293291
}
294292

293+
// This version of it matches 33%. It's also functionally incorrect.
294+
void zMusicSetVolume(float vol, float delay)
295+
{
296+
volume.cur = vol; // This makes it introduce the "frsp" instruction.
297+
volume.inc = vol - volume.cur;
298+
299+
if (delay > minDelay) // Doing the if statement likes this makes it generate the "blelr" instruction
300+
{
301+
volume.inc = vol / delay;
302+
}
303+
}
295304
#endif
296305

297306
void zMusicReset()

0 commit comments

Comments
 (0)