mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-01-11 00:39:59 +00:00
6dcf6c565a
git-svn-id: https://openmw.svn.sourceforge.net/svnroot/openmw/trunk@83 ea6a568a-9f4f-0410-981a-c910a81bb256
105 lines
2.3 KiB
Plaintext
105 lines
2.3 KiB
Plaintext
/*
|
|
OpenMW - The completely unofficial reimplementation of Morrowind
|
|
Copyright (C) 2008 Nicolay Korslund
|
|
Email: < korslund@gmail.com >
|
|
WWW: http://openmw.snaptoad.com/
|
|
|
|
This file (jukebox.mn) is part of the OpenMW package.
|
|
|
|
OpenMW is distributed as free software: you can redistribute it
|
|
and/or modify it under the terms of the GNU General Public License
|
|
version 3, as published by the Free Software Foundation.
|
|
|
|
This program is distributed in the hope that it will be useful, but
|
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
version 3 along with this program. If not, see
|
|
http://www.gnu.org/licenses/ .
|
|
|
|
*/
|
|
|
|
// This class controls all the music.
|
|
singleton Music;
|
|
|
|
// Create one jukebox for normal music, and one for battle music. This
|
|
// way we can pause / fade out one while the other resumes / fades in.
|
|
Jukebox jukebox, battle;
|
|
|
|
bool isBattle;
|
|
bool isMuted;
|
|
|
|
// Toggle between normal and battle music
|
|
toggle()
|
|
{
|
|
if(isBattle)
|
|
{
|
|
print("Switching to normal music");
|
|
battle.pause();
|
|
jukebox.resume();
|
|
isBattle = false;
|
|
}
|
|
else
|
|
{
|
|
print("Switching to battle music");
|
|
jukebox.pause();
|
|
battle.resume();
|
|
isBattle = true;
|
|
}
|
|
}
|
|
|
|
toggleMute()
|
|
{
|
|
if(!isMuted)
|
|
{
|
|
jukebox.updateVolume(0);
|
|
battle.updateVolume(0);
|
|
print("Muted");
|
|
isMuted = true;
|
|
}
|
|
else
|
|
{
|
|
updateVolume();
|
|
isMuted = false;
|
|
print("Mute off");
|
|
}
|
|
}
|
|
|
|
setup()
|
|
{
|
|
jukebox = new Jukebox;
|
|
battle = new Jukebox;
|
|
|
|
jukebox.name = "Main";
|
|
battle.name = "Battle";
|
|
|
|
isBattle = false;
|
|
|
|
updateVolume();
|
|
}
|
|
|
|
play()
|
|
{
|
|
if(isBattle) battle.play();
|
|
else jukebox.play();
|
|
}
|
|
|
|
// Called at startup, listing the files in the "explore" and "battle"
|
|
// music directories respectively.
|
|
setPlaylists(char[][] normal, char[][] battlelist)
|
|
{
|
|
jukebox.setPlaylist(normal);
|
|
battle.setPlaylist(battlelist);
|
|
}
|
|
|
|
// Called whenever the volume settings (music volume or main volume)
|
|
// have been changed by the user.
|
|
updateVolume()
|
|
{
|
|
float v = Config.calcMusicVolume();
|
|
jukebox.updateVolume(v);
|
|
battle.updateVolume(v);
|
|
}
|