MCPcopy Create free account
hub / github.com/bfbbdecomp/bfbb / volume_update

Function volume_update

src/SB/Game/zMusic.cpp:373–407  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

371}
372
373static void volume_update(F32 vol)
374{
375 F32 oldVol = volume.cur;
376 if (volume.inc >= 1e-5f && volume.inc <= -1e-5f)
377 {
378 volume.cur = volume.end;
379 }
380 else
381 {
382 volume.cur = volume.inc * vol + volume.cur;
383 }
384
385 if ((volume.inc < 0.0f && volume.cur <= volume.end) ||
386 (!(volume.inc < 0.0f) && volume.cur >= volume.end))
387 {
388 volume.end = volume.cur;
389 volume.inc = 0.0f;
390 }
391
392 for (S32 trackIdx = 0; trackIdx < TRACK_COUNT; trackIdx++)
393 {
394 if (sMusicTrack[trackIdx].snd_id != 0 &&
395 (oldVol != volume.cur || volume.adjusted[trackIdx] != sMusicTrack[trackIdx].snd_id))
396 {
397 F32 setVol = volume.cur * sMusicTrack[trackIdx].lastVol;
398 if (setVol > 1.0f)
399 {
400 setVol = 1.0f;
401 }
402
403 xSndSetVol(sMusicTrack[trackIdx].snd_id, setVol);
404 volume.adjusted[trackIdx] = sMusicTrack[trackIdx].snd_id;
405 }
406 }
407}
408
409// Stop all tracks and set them to null.
410void zMusicKill()

Callers 1

zMusicUpdateFunction · 0.85

Calls 1

xSndSetVolFunction · 0.85

Tested by

no test coverage detected