aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine
diff options
context:
space:
mode:
authorMax Horn2009-05-28 10:54:30 +0000
committerMax Horn2009-05-28 10:54:30 +0000
commitd70504c9108dd62bef75386b4462a22ba4705b1c (patch)
treec9c803cb022c83db92b665bb9f17c3f971439c28 /engines/sci/engine
parente23e1ffcb78c88a84514c4038a0e999f102d25c2 (diff)
downloadscummvm-rg350-d70504c9108dd62bef75386b4462a22ba4705b1c.tar.gz
scummvm-rg350-d70504c9108dd62bef75386b4462a22ba4705b1c.tar.bz2
scummvm-rg350-d70504c9108dd62bef75386b4462a22ba4705b1c.zip
SCI: Renamed sfx_state_t -> SfxState, preparing it to become a class eventually
svn-id: r40958
Diffstat (limited to 'engines/sci/engine')
-rw-r--r--engines/sci/engine/game.cpp4
-rw-r--r--engines/sci/engine/ksound.cpp142
-rw-r--r--engines/sci/engine/savegame.cpp34
-rw-r--r--engines/sci/engine/scriptdebug.cpp12
-rw-r--r--engines/sci/engine/state.cpp1
-rw-r--r--engines/sci/engine/state.h2
6 files changed, 97 insertions, 98 deletions
diff --git a/engines/sci/engine/game.cpp b/engines/sci/engine/game.cpp
index eef539d463..8adc44acee 100644
--- a/engines/sci/engine/game.cpp
+++ b/engines/sci/engine/game.cpp
@@ -220,7 +220,7 @@ int game_init_sound(EngineState *s, int sound_flags) {
sound_flags |= SFX_STATE_FLAG_MULTIPLAY;
s->sfx_init_flags = sound_flags;
- sfx_init(&s->sound, s->resmgr, sound_flags);
+ sfx_init(&s->_sound, s->resmgr, sound_flags);
return 0;
}
@@ -593,7 +593,7 @@ int game_exit(EngineState *s) {
s->_executionStack.clear();
if (!s->successor) {
- sfx_exit(&s->sound);
+ sfx_exit(&s->_sound);
// Reinit because some other code depends on having a valid state
game_init_sound(s, SFX_STATE_FLAG_NOSOUND);
}
diff --git a/engines/sci/engine/ksound.cpp b/engines/sci/engine/ksound.cpp
index 54a65249e1..684b007042 100644
--- a/engines/sci/engine/ksound.cpp
+++ b/engines/sci/engine/ksound.cpp
@@ -127,7 +127,7 @@ static void script_set_priority(EngineState *s, reg_t obj, int priority) {
flags &= ~SCI1_SOUND_FLAG_SCRIPTED_PRI;
} else flags |= SCI1_SOUND_FLAG_SCRIPTED_PRI;
- sfx_song_renice(&s->sound, FROBNICATE_HANDLE(obj), priority);
+ sfx_song_renice(&s->_sound, FROBNICATE_HANDLE(obj), priority);
PUT_SEL32V(obj, flags, flags);
}
@@ -150,7 +150,7 @@ void process_sound_events(EngineState *s) { /* Get all sound events, apply their
return;
/* SCI01 and later explicitly poll for everything */
- while ((result = sfx_poll(&s->sound, &handle, &cue))) {
+ while ((result = sfx_poll(&s->_sound, &handle, &cue))) {
reg_t obj = DEFROBNICATE_HANDLE(handle);
if (!is_object(s, obj)) {
warning("Non-object %04x:%04x received sound signal (%d/%d)", PRINT_REG(obj), result, cue);
@@ -264,7 +264,7 @@ reg_t kDoSound_SCI0(EngineState *s, int funct_nr, int argc, reg_t *argv) {
case _K_SCI0_SOUND_INIT_HANDLE:
if (obj.segment) {
sciprintf("Initializing song number %d\n", GET_SEL32V(obj, number));
- SCRIPT_ASSERT_ZERO(sfx_add_song(&s->sound,
+ SCRIPT_ASSERT_ZERO(sfx_add_song(&s->_sound,
build_iterator(s, number,
SCI_SONG_ITERATOR_TYPE_SCI0,
handle),
@@ -276,9 +276,9 @@ reg_t kDoSound_SCI0(EngineState *s, int funct_nr, int argc, reg_t *argv) {
case _K_SCI0_SOUND_PLAY_HANDLE:
if (obj.segment) {
- sfx_song_set_status(&s->sound,
+ sfx_song_set_status(&s->_sound,
handle, SOUND_STATUS_PLAYING);
- sfx_song_set_loops(&s->sound,
+ sfx_song_set_loops(&s->_sound,
handle, GET_SEL32V(obj, loop));
PUT_SEL32V(obj, state, _K_SOUND_STATUS_PLAYING);
}
@@ -289,14 +289,14 @@ reg_t kDoSound_SCI0(EngineState *s, int funct_nr, int argc, reg_t *argv) {
case _K_SCI0_SOUND_DISPOSE_HANDLE:
if (obj.segment) {
- sfx_remove_song(&s->sound, handle);
+ sfx_remove_song(&s->_sound, handle);
}
PUT_SEL32V(obj, handle, 0x0000);
break;
case _K_SCI0_SOUND_STOP_HANDLE:
if (obj.segment) {
- sfx_song_set_status(&s->sound,
+ sfx_song_set_status(&s->_sound,
handle, SOUND_STATUS_STOPPED);
PUT_SEL32V(obj, state, SOUND_STATUS_STOPPED);
}
@@ -304,7 +304,7 @@ reg_t kDoSound_SCI0(EngineState *s, int funct_nr, int argc, reg_t *argv) {
case _K_SCI0_SOUND_SUSPEND_HANDLE:
if (obj.segment) {
- sfx_song_set_status(&s->sound,
+ sfx_song_set_status(&s->_sound,
handle, SOUND_STATUS_SUSPENDED);
PUT_SEL32V(obj, state, SOUND_STATUS_SUSPENDED);
}
@@ -312,7 +312,7 @@ reg_t kDoSound_SCI0(EngineState *s, int funct_nr, int argc, reg_t *argv) {
case _K_SCI0_SOUND_RESUME_HANDLE:
if (obj.segment) {
- sfx_song_set_status(&s->sound,
+ sfx_song_set_status(&s->_sound,
handle, SOUND_STATUS_PLAYING);
PUT_SEL32V(obj, state, SOUND_STATUS_PLAYING);
}
@@ -337,15 +337,15 @@ reg_t kDoSound_SCI0(EngineState *s, int funct_nr, int argc, reg_t *argv) {
int vol = SKPV_OR_ALT(1, -1);
if (vol != -1)
- sfx_set_volume(&s->sound, vol << 0xf);
+ sfx_set_volume(&s->_sound, vol << 0xf);
else
- s->r_acc = make_reg(0, sfx_get_volume(&s->sound) >> 0xf);
+ s->r_acc = make_reg(0, sfx_get_volume(&s->_sound) >> 0xf);
}
break;
case _K_SCI0_SOUND_UPDATE_VOL_PRI:
if (obj.segment) {
- sfx_song_set_loops(&s->sound,
+ sfx_song_set_loops(&s->_sound,
handle, GET_SEL32V(obj, loop));
script_set_priority(s, obj, GET_SEL32V(obj, pri));
}
@@ -356,7 +356,7 @@ reg_t kDoSound_SCI0(EngineState *s, int funct_nr, int argc, reg_t *argv) {
/* FIXME: The next couple of lines actually STOP the handle, rather
** than fading it! */
if (obj.segment) {
- sfx_song_set_status(&s->sound,
+ sfx_song_set_status(&s->_sound,
handle, SOUND_STATUS_STOPPED);
PUT_SEL32V(obj, state, SOUND_STATUS_STOPPED);
PUT_SEL32V(obj, signal, -1);
@@ -368,7 +368,7 @@ reg_t kDoSound_SCI0(EngineState *s, int funct_nr, int argc, reg_t *argv) {
break;
case _K_SCI0_SOUND_PLAY_NEXT:
- /* sfx_all_stop(&s->sound);*/
+ /* sfx_all_stop(&s->_sound);*/
break;
default:
@@ -459,9 +459,9 @@ reg_t kDoSound_SCI01(EngineState *s, int funct_nr, int argc, reg_t *argv) {
int vol = SKPV_OR_ALT(1, -1);
if (vol != -1)
- sfx_set_volume(&s->sound, vol << 0xf);
+ sfx_set_volume(&s->_sound, vol << 0xf);
else
- s->r_acc = make_reg(0, sfx_get_volume(&s->sound) >> 0xf);
+ s->r_acc = make_reg(0, sfx_get_volume(&s->_sound) >> 0xf);
break;
}
case _K_SCI01_SOUND_MUTE_SOUND : {
@@ -490,13 +490,13 @@ reg_t kDoSound_SCI01(EngineState *s, int funct_nr, int argc, reg_t *argv) {
RESTORE_BEHAVIOR rb = (RESTORE_BEHAVIOR) UKPV(2); /* Too lazy to look up a default value for this */
if (obj.segment) {
- sfx_song_set_status(&s->sound,
+ sfx_song_set_status(&s->_sound,
handle, SOUND_STATUS_PLAYING);
- sfx_song_set_loops(&s->sound,
+ sfx_song_set_loops(&s->_sound,
handle, looping);
- sfx_song_renice(&s->sound,
+ sfx_song_renice(&s->_sound,
handle, pri);
- song_lib_set_restore_behavior(s->sound.songlib, handle, rb);
+ song_lib_set_restore_behavior(s->_sound._songlib, handle, rb);
}
break;
@@ -508,7 +508,7 @@ reg_t kDoSound_SCI01(EngineState *s, int funct_nr, int argc, reg_t *argv) {
if (obj.segment && (s->resmgr->testResource(kResourceTypeSound, number))) {
sciprintf("Initializing song number %d\n", number);
- SCRIPT_ASSERT_ZERO(sfx_add_song(&s->sound,
+ SCRIPT_ASSERT_ZERO(sfx_add_song(&s->_sound,
build_iterator(s, number,
SCI_SONG_ITERATOR_TYPE_SCI1,
handle),
@@ -520,9 +520,9 @@ reg_t kDoSound_SCI01(EngineState *s, int funct_nr, int argc, reg_t *argv) {
}
case _K_SCI01_SOUND_DISPOSE_HANDLE : {
if (obj.segment) {
- sfx_song_set_status(&s->sound,
+ sfx_song_set_status(&s->_sound,
handle, SOUND_STATUS_STOPPED);
- sfx_remove_song(&s->sound, handle);
+ sfx_remove_song(&s->_sound, handle);
}
break;
}
@@ -538,9 +538,9 @@ reg_t kDoSound_SCI01(EngineState *s, int funct_nr, int argc, reg_t *argv) {
//int vol = GET_SEL32V(obj, vol);
int pri = GET_SEL32V(obj, pri);
- sfx_song_set_loops(&s->sound,
+ sfx_song_set_loops(&s->_sound,
handle, looping);
- sfx_song_renice(&s->sound, handle, pri);
+ sfx_song_renice(&s->_sound, handle, pri);
SCIkdebug(SCIkSOUND, "[sound01-update-handle] -- CUE %04x:%04x");
@@ -554,7 +554,7 @@ reg_t kDoSound_SCI01(EngineState *s, int funct_nr, int argc, reg_t *argv) {
case _K_SCI01_SOUND_STOP_HANDLE : {
PUT_SEL32V(obj, signal, -1);
if (obj.segment) {
- sfx_song_set_status(&s->sound,
+ sfx_song_set_status(&s->_sound,
handle, SOUND_STATUS_STOPPED);
}
break;
@@ -565,7 +565,7 @@ reg_t kDoSound_SCI01(EngineState *s, int funct_nr, int argc, reg_t *argv) {
SOUND_STATUS_SUSPENDED : SOUND_STATUS_PLAYING;
if (obj.segment) {
- sfx_song_set_status(&s->sound,
+ sfx_song_set_status(&s->_sound,
handle, setstate);
}
break;
@@ -577,7 +577,7 @@ reg_t kDoSound_SCI01(EngineState *s, int funct_nr, int argc, reg_t *argv) {
/* FIXME: The next couple of lines actually STOP the song right away */
PUT_SEL32V(obj, signal, -1);
if (obj.segment) {
- sfx_song_set_status(&s->sound,
+ sfx_song_set_status(&s->_sound,
handle, SOUND_STATUS_STOPPED);
}
break;
@@ -591,7 +591,7 @@ reg_t kDoSound_SCI01(EngineState *s, int funct_nr, int argc, reg_t *argv) {
int cue = 0;
while (result == SI_LOOP)
- result = sfx_poll_specific(&s->sound, handle, &cue);
+ result = sfx_poll_specific(&s->_sound, handle, &cue);
switch (result) {
@@ -637,7 +637,7 @@ reg_t kDoSound_SCI01(EngineState *s, int funct_nr, int argc, reg_t *argv) {
/* } */
/* break; */
/* case 0xFF: /\* May be unnecessary *\/ */
- /* sfx_song_set_status(&s->sound, */
+ /* sfx_song_set_status(&s->_sound, */
/* handle, SOUND_STATUS_STOPPED); */
/* break; */
/* default : */
@@ -665,7 +665,7 @@ reg_t kDoSound_SCI01(EngineState *s, int funct_nr, int argc, reg_t *argv) {
int controller = UKPV(3);
int param = UKPV(4);
- sfx_send_midi(&s->sound, handle,
+ sfx_send_midi(&s->_sound, handle,
channel, midiCmd, controller, param);
break;
}
@@ -810,12 +810,12 @@ reg_t kDoSound_SCI1(EngineState *s, int funct_nr, int argc, reg_t *argv) {
int looping = GET_SEL32V(obj, loop);
//int vol = GET_SEL32V(obj, vol);
int pri = GET_SEL32V(obj, pri);
- song_t *song = song_lib_find(s->sound.songlib, handle);
+ song_t *song = song_lib_find(s->_sound._songlib, handle);
if (GET_SEL32V(obj, nodePtr) && (song && number != song->resource_num)) {
- sfx_song_set_status(&s->sound,
+ sfx_song_set_status(&s->_sound,
handle, SOUND_STATUS_STOPPED);
- sfx_remove_song(&s->sound, handle);
+ sfx_remove_song(&s->_sound, handle);
PUT_SEL32(obj, nodePtr, NULL_REG);
}
@@ -826,7 +826,7 @@ reg_t kDoSound_SCI1(EngineState *s, int funct_nr, int argc, reg_t *argv) {
}
sciprintf("Initializing song number %d\n", number);
- SCRIPT_ASSERT_ZERO(sfx_add_song(&s->sound,
+ SCRIPT_ASSERT_ZERO(sfx_add_song(&s->_sound,
build_iterator(s, number,
SCI_SONG_ITERATOR_TYPE_SCI1,
handle),
@@ -836,11 +836,11 @@ reg_t kDoSound_SCI1(EngineState *s, int funct_nr, int argc, reg_t *argv) {
}
if (obj.segment) {
- sfx_song_set_status(&s->sound,
+ sfx_song_set_status(&s->_sound,
handle, SOUND_STATUS_PLAYING);
- sfx_song_set_loops(&s->sound,
+ sfx_song_set_loops(&s->_sound,
handle, looping);
- sfx_song_renice(&s->sound,
+ sfx_song_renice(&s->_sound,
handle, pri);
}
@@ -852,14 +852,14 @@ reg_t kDoSound_SCI1(EngineState *s, int funct_nr, int argc, reg_t *argv) {
//int pri = GET_SEL32V(obj, pri);
if (GET_SEL32V(obj, nodePtr)) {
- sfx_song_set_status(&s->sound,
+ sfx_song_set_status(&s->_sound,
handle, SOUND_STATUS_STOPPED);
- sfx_remove_song(&s->sound, handle);
+ sfx_remove_song(&s->_sound, handle);
}
if (obj.segment && (s->resmgr->testResource(kResourceTypeSound, number))) {
sciprintf("Initializing song number %d\n", number);
- SCRIPT_ASSERT_ZERO(sfx_add_song(&s->sound,
+ SCRIPT_ASSERT_ZERO(sfx_add_song(&s->_sound,
build_iterator(s, number,
SCI_SONG_ITERATOR_TYPE_SCI1,
handle),
@@ -871,16 +871,16 @@ reg_t kDoSound_SCI1(EngineState *s, int funct_nr, int argc, reg_t *argv) {
}
case _K_SCI1_SOUND_DISPOSE_HANDLE : {
if (obj.segment) {
- sfx_song_set_status(&s->sound,
+ sfx_song_set_status(&s->_sound,
handle, SOUND_STATUS_STOPPED);
- sfx_remove_song(&s->sound, handle);
+ sfx_remove_song(&s->_sound, handle);
}
break;
}
case _K_SCI1_SOUND_STOP_HANDLE : {
PUT_SEL32V(obj, signal, -1);
if (obj.segment) {
- sfx_song_set_status(&s->sound,
+ sfx_song_set_status(&s->_sound,
handle, SOUND_STATUS_STOPPED);
}
break;
@@ -898,7 +898,7 @@ reg_t kDoSound_SCI1(EngineState *s, int funct_nr, int argc, reg_t *argv) {
FADE_ACTION_FADE_AND_STOP :
FADE_ACTION_FADE_AND_CONT;
- sfx_song_set_fade(&s->sound,
+ sfx_song_set_fade(&s->_sound,
handle,
&fade);
@@ -908,7 +908,7 @@ reg_t kDoSound_SCI1(EngineState *s, int funct_nr, int argc, reg_t *argv) {
PUT_SEL32V(obj, signal, -1);
PUT_SEL32V(obj, nodePtr, 0);
PUT_SEL32V(obj, handle, 0);
- sfx_song_set_status(&s->sound,
+ sfx_song_set_status(&s->_sound,
handle, SOUND_STATUS_STOPPED);
} else {
// FIXME: Support fade-and-continue. For now, send signal right away.
@@ -920,7 +920,7 @@ reg_t kDoSound_SCI1(EngineState *s, int funct_nr, int argc, reg_t *argv) {
case _K_SCI1_SOUND_HOLD_HANDLE : {
int value = SKPV(2);
- sfx_song_set_hold(&s->sound,
+ sfx_song_set_hold(&s->_sound,
handle, value);
break;
}
@@ -948,7 +948,7 @@ reg_t kDoSound_SCI1(EngineState *s, int funct_nr, int argc, reg_t *argv) {
int cue = 0;
while (result == SI_LOOP)
- result = sfx_poll_specific(&s->sound, handle, &cue);
+ result = sfx_poll_specific(&s->_sound, handle, &cue);
switch (result) {
@@ -978,7 +978,7 @@ reg_t kDoSound_SCI1(EngineState *s, int funct_nr, int argc, reg_t *argv) {
break;
}
case _K_SCI1_SOUND_MIDI_SEND : {
- sfx_send_midi(&s->sound, handle,
+ sfx_send_midi(&s->_sound, handle,
UKPV(2), UKPV(3), UKPV(4), UKPV(5));
break;
}
@@ -1006,19 +1006,19 @@ reg_t kDoAudio(EngineState *s, int funct_nr, int argc, reg_t *argv) {
Audio::Mixer *mixer = g_system->getMixer();
int sampleLen = 0;
- if (!s->sound.audioResource)
- s->sound.audioResource = new AudioResource(s->resmgr, s->version);
+ if (!s->_sound._audioResource)
+ s->_sound._audioResource = new AudioResource(s->resmgr, s->version);
switch (UKPV(0)) {
case kSciAudioWPlay:
case kSciAudioPlay:
- s->sound.audioResource->stop();
+ s->_sound._audioResource->stop();
if (argc == 2) { // KQ5CD, KQ6 floppy
- Audio::AudioStream *audioStream = s->sound.audioResource->getAudioStream(UKPV(1), &sampleLen);
+ Audio::AudioStream *audioStream = s->_sound._audioResource->getAudioStream(UKPV(1), &sampleLen);
if (audioStream)
- mixer->playInputStream(Audio::Mixer::kSpeechSoundType, s->sound.audioResource->getAudioHandle(), audioStream);
+ mixer->playInputStream(Audio::Mixer::kSpeechSoundType, s->_sound._audioResource->getAudioHandle(), audioStream);
} else if (argc == 6) { // SQ4CD or newer
// TODO
warning("kDoAudio: Play called with new semantics - 5 parameters: %d %d %d %d %d", UKPV(1), UKPV(2), UKPV(3), UKPV(4), UKPV(5));
@@ -1027,18 +1027,18 @@ reg_t kDoAudio(EngineState *s, int funct_nr, int argc, reg_t *argv) {
}
return make_reg(0, sampleLen); // return sample length in ticks
case kSciAudioStop:
- s->sound.audioResource->stop();
+ s->_sound._audioResource->stop();
break;
case kSciAudioPause:
- s->sound.audioResource->pause();
+ s->_sound._audioResource->pause();
break;
case kSciAudioResume:
- s->sound.audioResource->resume();
+ s->_sound._audioResource->resume();
break;
case kSciAudioPosition:
- return make_reg(0, s->sound.audioResource->getAudioPosition());
+ return make_reg(0, s->_sound._audioResource->getAudioPosition());
case kSciAudioRate:
- s->sound.audioResource->setAudioRate(UKPV(1));
+ s->_sound._audioResource->setAudioRate(UKPV(1));
break;
case kSciAudioVolume:
mixer->setVolumeForSoundType(Audio::Mixer::kSpeechSoundType, UKPV(1));
@@ -1048,7 +1048,7 @@ reg_t kDoAudio(EngineState *s, int funct_nr, int argc, reg_t *argv) {
// In SCI1.1: tests for digital audio support
return make_reg(0, 1);
} else {
- s->sound.audioResource->setAudioLang(SKPV(1));
+ s->_sound._audioResource->setAudioLang(SKPV(1));
}
break;
default:
@@ -1062,15 +1062,15 @@ reg_t kDoSync(EngineState *s, int funct_nr, int argc, reg_t *argv) {
switch (UKPV(0)) {
case kSciAudioSyncStart:
if (argc == 3) { // KQ5CD, KQ6 floppy
- if (s->sound.soundSync) {
- s->resmgr->unlockResource(s->sound.soundSync, s->sound.soundSync->number, kResourceTypeSync);
+ if (s->_sound._soundSync) {
+ s->resmgr->unlockResource(s->_sound._soundSync, s->_sound._soundSync->number, kResourceTypeSync);
}
// Load sound sync resource and lock it
- s->sound.soundSync = (ResourceSync *)s->resmgr->findResource(kResourceTypeSync, UKPV(2), 1);
+ s->_sound._soundSync = (ResourceSync *)s->resmgr->findResource(kResourceTypeSync, UKPV(2), 1);
- if (s->sound.soundSync) {
- s->sound.soundSync->startSync(s, argv[1]);
+ if (s->_sound._soundSync) {
+ s->_sound._soundSync->startSync(s, argv[1]);
} else {
// Notify the scripts to stop sound sync
PUT_SEL32V(argv[1], syncCue, -1);
@@ -1083,15 +1083,15 @@ reg_t kDoSync(EngineState *s, int funct_nr, int argc, reg_t *argv) {
}
break;
case kSciAudioSyncNext:
- if (s->sound.soundSync) {
- s->sound.soundSync->nextSync(s, argv[1]);
+ if (s->_sound._soundSync) {
+ s->_sound._soundSync->nextSync(s, argv[1]);
}
break;
case kSciAudioSyncStop:
- if (s->sound.soundSync) {
- s->sound.soundSync->stopSync();
- s->resmgr->unlockResource(s->sound.soundSync, s->sound.soundSync->number, kResourceTypeSync);
- s->sound.soundSync = NULL;
+ if (s->_sound._soundSync) {
+ s->_sound._soundSync->stopSync();
+ s->resmgr->unlockResource(s->_sound._soundSync, s->_sound._soundSync->number, kResourceTypeSync);
+ s->_sound._soundSync = NULL;
}
break;
default:
diff --git a/engines/sci/engine/savegame.cpp b/engines/sci/engine/savegame.cpp
index 33561ea316..433a01974e 100644
--- a/engines/sci/engine/savegame.cpp
+++ b/engines/sci/engine/savegame.cpp
@@ -231,8 +231,8 @@ void syncWithSerializer(Common::Serializer &s, Class &obj) {
sync_reg_t(s, obj.reg);
}
-static void sync_sfx_state_t(Common::Serializer &s, sfx_state_t &obj) {
- sync_songlib_t(s, obj.songlib);
+static void sync_sfx_state_t(Common::Serializer &s, SfxState &obj) {
+ sync_songlib_t(s, obj._songlib);
}
static void sync_SavegameMetadata(Common::Serializer &s, SavegameMetadata &obj) {
@@ -268,7 +268,7 @@ void EngineState::saveLoadWithSerializer(Common::Serializer &s) {
syncArray<Class>(s, _classtable);
- sync_sfx_state_t(s, sound);
+ sync_sfx_state_t(s, _sound);
}
void LocalVariables::saveLoadWithSerializer(Common::Serializer &s) {
@@ -695,10 +695,10 @@ static void reconstruct_sounds(EngineState *s) {
song_t *seeker;
SongIteratorType it_type = s->resmgr->_sciVersion >= SCI_VERSION_01 ? SCI_SONG_ITERATOR_TYPE_SCI1 : SCI_SONG_ITERATOR_TYPE_SCI0;
- if (s->sound.songlib.lib)
- seeker = *(s->sound.songlib.lib);
+ if (s->_sound._songlib.lib)
+ seeker = *(s->_sound._songlib.lib);
else {
- song_lib_init(&s->sound.songlib);
+ song_lib_init(&s->_sound._songlib);
seeker = NULL;
}
@@ -720,7 +720,7 @@ static void reconstruct_sounds(EngineState *s) {
oldstatus = seeker->status;
seeker->status = SOUND_STATUS_STOPPED;
seeker->it = ff;
- sfx_song_set_status(&s->sound, seeker->handle, oldstatus);
+ sfx_song_set_status(&s->_sound, seeker->handle, oldstatus);
seeker = seeker->next;
}
}
@@ -770,7 +770,7 @@ EngineState *gamestate_restore(EngineState *s, Common::SeekableReadStream *fh) {
retval->saveLoadWithSerializer(ser); // FIXME: Error handling?
- sfx_exit(&s->sound);
+ sfx_exit(&s->_sound);
// Set exec stack base to zero
retval->execution_stack_base = 0;
@@ -783,11 +783,11 @@ EngineState *gamestate_restore(EngineState *s, Common::SeekableReadStream *fh) {
retval->resmgr = s->resmgr;
- temp = retval->sound.songlib;
- sfx_init(&retval->sound, retval->resmgr, s->sfx_init_flags);
+ temp = retval->_sound._songlib;
+ sfx_init(&retval->_sound, retval->resmgr, s->sfx_init_flags);
retval->sfx_init_flags = s->sfx_init_flags;
- song_lib_free(retval->sound.songlib);
- retval->sound.songlib = temp;
+ song_lib_free(retval->_sound._songlib);
+ retval->_sound._songlib = temp;
_reset_graphics_input(retval);
reconstruct_stack(retval);
@@ -851,11 +851,11 @@ EngineState *gamestate_restore(EngineState *s, Common::SeekableReadStream *fh) {
retval->pic_priority_table = (int*)gfxop_get_pic_metainfo(retval->gfx_state);
retval->_gameName = obj_get_name(retval, retval->game_obj);
- retval->sound.it = NULL;
- retval->sound.flags = s->sound.flags;
- retval->sound.song = NULL;
- retval->sound.suspended = s->sound.suspended;
- retval->sound.debug = s->sound.debug;
+ retval->_sound._it = NULL;
+ retval->_sound._flags = s->_sound._flags;
+ retval->_sound._song = NULL;
+ retval->_sound._suspended = s->_sound._suspended;
+ retval->_sound._debug = s->_sound._debug;
reconstruct_sounds(retval);
// Message state:
diff --git a/engines/sci/engine/scriptdebug.cpp b/engines/sci/engine/scriptdebug.cpp
index 52a1488df8..e46d830fcd 100644
--- a/engines/sci/engine/scriptdebug.cpp
+++ b/engines/sci/engine/scriptdebug.cpp
@@ -555,7 +555,7 @@ int objinfo(EngineState *s, reg_t pos);
void song_lib_dump(const songlib_t &songlib, int line);
static int c_songlib_print(EngineState *s, const Common::Array<cmd_param_t> &cmdParams) {
- song_lib_dump(s->sound.songlib, __LINE__);
+ song_lib_dump(s->_sound._songlib, __LINE__);
return 0;
}
@@ -2343,7 +2343,7 @@ static int c_sfx_debuglog(EngineState *s, const Common::Array<cmd_param_t> &cmdP
{"Song cue polling and delivery", 'c', SFX_DEBUG_CUES}
};
- return c_handle_config_update(sfx_debug_modes, SFX_DEBUG_MODES, "sound subsystem", (int *)&(s->sound.debug), cmdParams);
+ return c_handle_config_update(sfx_debug_modes, SFX_DEBUG_MODES, "sound subsystem", (int *)&(s->_sound._debug), cmdParams);
}
static int c_sfx_remove(EngineState *s, const Common::Array<cmd_param_t> &cmdParams) {
@@ -2351,8 +2351,8 @@ static int c_sfx_remove(EngineState *s, const Common::Array<cmd_param_t> &cmdPar
int handle = FROBNICATE_HANDLE(id);
if (id.segment) {
- sfx_song_set_status(&s->sound, handle, SOUND_STATUS_STOPPED);
- sfx_remove_song(&s->sound, handle);
+ sfx_song_set_status(&s->_sound, handle, SOUND_STATUS_STOPPED);
+ sfx_remove_song(&s->_sound, handle);
PUT_SEL32V(id, signal, -1);
PUT_SEL32V(id, nodePtr, 0);
PUT_SEL32V(id, handle, 0);
@@ -3250,7 +3250,7 @@ void script_debug(EngineState *s, reg_t *pc, StackPtr *sp, StackPtr *pp, reg_t *
const char *commandstring;
// Suspend music playing
- sfx_suspend(&s->sound, 1);
+ sfx_suspend(&s->_sound, 1);
commandstring = _debug_get_input();
@@ -3263,7 +3263,7 @@ void script_debug(EngineState *s, reg_t *pc, StackPtr *sp, StackPtr *pp, reg_t *
sciprintf("\n");
// Resume music playing
- sfx_suspend(&s->sound, 0);
+ sfx_suspend(&s->_sound, 0);
}
}
diff --git a/engines/sci/engine/state.cpp b/engines/sci/engine/state.cpp
index 320c69ce4c..70f5550722 100644
--- a/engines/sci/engine/state.cpp
+++ b/engines/sci/engine/state.cpp
@@ -37,7 +37,6 @@ EngineState::EngineState() : _dirseeker(this) {
gfx_state = 0;
old_screen = 0;
- memset(&sound, 0, sizeof(sound)); // FIXME: Remove this once/if we C++ify sfx_state_t
sfx_init_flags = 0;
sound_volume = 0;
sound_mute = 0;
diff --git a/engines/sci/engine/state.h b/engines/sci/engine/state.h
index ba4c07d9ca..5c15995dfb 100644
--- a/engines/sci/engine/state.h
+++ b/engines/sci/engine/state.h
@@ -129,7 +129,7 @@ public:
GfxState *gfx_state; /**< Graphics state and driver */
gfx_pixmap_t *old_screen; /**< Old screen content: Stored during kDrawPic() for kAnimate() */
- sfx_state_t sound; /**< sound subsystem */
+ SfxState _sound; /**< sound subsystem */
int sfx_init_flags; /**< flags the sfx subsystem was initialised with */
unsigned int sound_volume; /**< 0x0 -> 0xf Current volume of sound system */
unsigned int sound_mute; /**< 0 = not, else == saved value */