diff --git a/desktop_version/src/Music.cpp b/desktop_version/src/Music.cpp index d7b6c52a..94306310 100644 --- a/desktop_version/src/Music.cpp +++ b/desktop_version/src/Music.cpp @@ -5,6 +5,7 @@ #include #include "BinaryBlob.h" +#include "Game.h" #include "Map.h" #include "UtilityClass.h" @@ -273,10 +274,20 @@ void musicclass::silencedasmusik(void) musicVolume = 0; } +void musicclass::setfadeamount(const int fade_ms) +{ + if (fade_ms == 0) + { + FadeVolAmountPerFrame = MIX_MAX_VOLUME; + return; + } + FadeVolAmountPerFrame = MIX_MAX_VOLUME / (fade_ms / game.get_timestep()); +} + void musicclass::fadeMusicVolumeIn(int ms) { m_doFadeInVol = true; - FadeVolAmountPerFrame = MIX_MAX_VOLUME / (ms / 33); + setfadeamount(ms); } void musicclass::fadeout(const bool quick_fade_ /*= true*/) diff --git a/desktop_version/src/Music.h b/desktop_version/src/Music.h index 78f4c612..70594a37 100644 --- a/desktop_version/src/Music.h +++ b/desktop_version/src/Music.h @@ -19,6 +19,7 @@ public: void resume(const int fadein_ms = 0); void haltdasmusik(void); void silencedasmusik(void); + void setfadeamount(const int fade_ms); void fadeMusicVolumeIn(int ms); void fadeout(const bool quick_fade_ = true); void fadein(void);