aboutsummaryrefslogtreecommitdiff
path: root/scummvm.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'scummvm.cpp')
-rw-r--r--scummvm.cpp44
1 files changed, 21 insertions, 23 deletions
diff --git a/scummvm.cpp b/scummvm.cpp
index a6acab1caf..991dd0c496 100644
--- a/scummvm.cpp
+++ b/scummvm.cpp
@@ -38,7 +38,7 @@
extern void GraphicsOff(void);
#endif
-void autosave(Scumm * scumm) /* Not in class to prevent being bound */
+void autosave(Scumm * scumm)
{
scumm->_doAutosave = true;
}
@@ -67,6 +67,7 @@ Scumm::Scumm (void) {
_newgui = new NewGui(this);
_bundle = new Bundle(this);
_timer = new Timer(this);
+ _sound = new Sound(this);
}
Scumm::~Scumm (void) {
@@ -74,6 +75,7 @@ Scumm::~Scumm (void) {
delete _newgui;
delete _bundle;
delete _timer;
+ delete _sound;
}
void Scumm::scummInit()
@@ -81,7 +83,7 @@ void Scumm::scummInit()
int i;
Actor *a;
- tempMusic=0;
+ tempMusic = 0;
debug(9, "scummInit");
if (_features & GF_SMALL_HEADER)
@@ -203,13 +205,9 @@ void Scumm::scummInit()
getGraphicsPerformance();
#ifdef COMPRESSED_SOUND_FILE
- _current_cache = 0;
+ _sound->_current_cache = 0;
#endif
- _numberBundleMusic = -1;
- _musicBundleBufFinal = NULL;
- _musicBundleBufOutput = NULL;
-
_timer->installProcedure(&autosave, 5 * 60 * 1000);
}
@@ -342,7 +340,7 @@ int Scumm::scummLoop(int delta)
gdi._cursorActive = 0;
CHARSET_1();
drawDirtyScreenParts();
- processSoundQues();
+ _sound->processSoundQues();
camera._last = camera._cur;
} else {
walkActors();
@@ -390,7 +388,7 @@ int Scumm::scummLoop(int delta)
if (!(_features & GF_AFTER_V6))
playActorSounds();
- processSoundQues();
+ _sound->processSoundQues();
camera._last = camera._cur;
}
@@ -969,19 +967,19 @@ void Scumm::processKbd()
runScript(_vars[VAR_UNK_SCRIPT_2], 0, 0, 0);
} else if (_lastKeyHit == _vars[VAR_TALKSTOP_KEY]) {
_talkDelay = 0;
- if (_sfxMode == 2)
+ if (_sound->_sfxMode == 2)
stopTalk();
return;
} else if (_lastKeyHit == '[') { // [, eg volume down
- _sound_volume_master-=5;
- if (_sound_volume_master < 0)
- _sound_volume_master = 0;
- _imuse->set_master_volume(_sound_volume_master);
+ _sound->_sound_volume_master-=5;
+ if (_sound->_sound_volume_master < 0)
+ _sound->_sound_volume_master = 0;
+ _imuse->set_master_volume(_sound->_sound_volume_master);
} else if (_lastKeyHit == ']') { // ], eg volume down
- _sound_volume_master+=5;
- if (_sound_volume_master > 128)
- _sound_volume_master = 128;
- _imuse->set_master_volume(_sound_volume_master);
+ _sound->_sound_volume_master+=5;
+ if (_sound->_sound_volume_master > 128)
+ _sound->_sound_volume_master = 128;
+ _imuse->set_master_volume(_sound->_sound_volume_master);
} else if (_lastKeyHit == '-') { // -, eg text speed down
_defaultTalkDelay+=5;
if (_defaultTalkDelay > 90)
@@ -1373,7 +1371,7 @@ void Scumm::waitForTimer(int msec_delay) {
}
}
#ifdef COMPRESSED_SOUND_FILE
- if (updateMP3CD() == -1)
+ if (_sound->updateMP3CD() == -1)
#endif
_system->update_cdrom(); /* Loop CD Audio if needed */
if (_system->get_msecs() >= start_time + msec_delay)
@@ -1502,7 +1500,7 @@ void Scumm::launch()
if (_gameId == GID_MONKEY)
_vars[74] = 1225;
- setupSound();
+ _sound->setupSound();
runScript(1, 0, 0, &_bootParam);
@@ -1571,8 +1569,8 @@ Scumm *Scumm::createFromDetector(GameDetector *detector, OSystem *syst)
scumm->_noSubtitles = detector->_noSubtitles;
scumm->_cdrom = detector->_cdrom;
scumm->_defaultTalkDelay = detector->_talkSpeed;
- scumm->_sound_volume_sfx = detector->_sfx_volume;
- scumm->_sound_volume_music = detector->_music_volume;
+ scumm->_sound->_sound_volume_sfx = detector->_sfx_volume;
+ scumm->_sound->_sound_volume_music = detector->_music_volume;
{
IMuse *imuse;
@@ -1587,7 +1585,7 @@ Scumm *Scumm::createFromDetector(GameDetector *detector, OSystem *syst)
if (detector->_gameTempo != 0)
imuse->property(IMuse::PROP_TEMPO_BASE, detector->_gameTempo);
- imuse->set_music_volume(scumm->_sound_volume_music);
+ imuse->set_music_volume(scumm->_sound->_sound_volume_music);
scumm->_imuse = imuse;
}