@@ -12,12 +12,8 @@ extern zMusicTrackInfo sMusicTrack[2];
1212extern zVolumeInfo volume;
1313extern U32 sMusicPaused ;
1414extern S32 sMusicLastEnum [2 ];
15- extern F32 lbl_803CDD48; // 0f by default.
16- extern F32 minDelay; // Value is defaulted at 0.001f.
1715extern U32 sMusicSoundID [24 ][2 ];
1816extern zMusicSituation sMusicInfo [8 ];
19- extern F32 lbl_803CCA78;
20- extern F32 lbl_803CD118;
2117extern zMusicSituation* sMusicQueueData [2 ];
2218extern F32 sMusicTimer [2 ];
2319
@@ -26,12 +22,14 @@ extern zGlobals globals;
2622
2723extern const char zMusic_strings[];
2824
25+ static const F32 minDelay = 0 .001f ;
26+
2927#ifdef NON_MATCHING
3028void 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
297306void zMusicReset ()
0 commit comments