aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/startrek/actors.cpp2
-rw-r--r--engines/startrek/awaymission.cpp4
-rw-r--r--engines/startrek/intro.cpp2
-rw-r--r--engines/startrek/menu.cpp28
-rw-r--r--engines/startrek/room.cpp4
-rw-r--r--engines/startrek/sound.cpp56
-rw-r--r--engines/startrek/sound.h1
-rw-r--r--engines/startrek/startrek.cpp75
-rw-r--r--engines/startrek/startrek.h6
-rw-r--r--engines/startrek/textbox.cpp4
10 files changed, 82 insertions, 100 deletions
diff --git a/engines/startrek/actors.cpp b/engines/startrek/actors.cpp
index a0c6b9c146..24434eb995 100644
--- a/engines/startrek/actors.cpp
+++ b/engines/startrek/actors.cpp
@@ -1253,7 +1253,7 @@ exitWithoutSelection:
removeNextEvent();
}
- playSoundEffectIndex(0x10);
+ _sound->playSoundEffectIndex(0x10);
if (lastItemIndex >= 0)
drawMenuButtonOutline(itemSprites[lastItemIndex].bitmap, 0);
diff --git a/engines/startrek/awaymission.cpp b/engines/startrek/awaymission.cpp
index d05cc35a73..0f5f8a8689 100644
--- a/engines/startrek/awaymission.cpp
+++ b/engines/startrek/awaymission.cpp
@@ -153,7 +153,7 @@ void StarTrekEngine::initAwayCrewPositions(int warpEntryIndex) {
_kirkActor->triggerActionWhenAnimFinished = true;
_kirkActor->finishedAnimActionParam = 0xff;
_awayMission.disableInput = true;
- playSoundEffectIndex(0x09);
+ _sound->playSoundEffectIndex(0x09);
_warpHotspotsActive = false;
break;
case 5: // Crew spawns in directly at a position.
@@ -364,7 +364,7 @@ void StarTrekEngine::awayMissionSelectAction(bool openActionMenu) {
if (_awayMission.disableInput)
return;
hideInventoryIcons();
- playSoundEffectIndex(SND_07);
+ _sound->playSoundEffectIndex(SND_07);
_awayMission.activeAction = showActionMenu();
}
diff --git a/engines/startrek/intro.cpp b/engines/startrek/intro.cpp
index cb0b096be6..02d7642da2 100644
--- a/engines/startrek/intro.cpp
+++ b/engines/startrek/intro.cpp
@@ -123,7 +123,7 @@ void StarTrekEngine::playIntro() {
switch (frame) {
case 0:
starfieldZoomSpeed = 10;
- playMidiMusicTracks(MIDITRACK_0, -1);
+ _sound->playMidiMusicTracks(MIDITRACK_0, -1);
_byte_45b3c = 0;
break;
diff --git a/engines/startrek/menu.cpp b/engines/startrek/menu.cpp
index 09528ce3c6..f973f9a95b 100644
--- a/engines/startrek/menu.cpp
+++ b/engines/startrek/menu.cpp
@@ -469,7 +469,7 @@ lookupNextAction:
}
}
- playSoundEffectIndex(SND_SELECTION);
+ _sound->playSoundEffectIndex(SND_SELECTION);
menuSprite.dontDrawNextFrame();
_gfx->drawAllSprites();
@@ -656,12 +656,12 @@ int StarTrekEngine::handleMenuEvents(uint32 ticksUntilClickingEnabled, bool inTe
case TREKEVENT_LBUTTONDOWN:
lclick:
if (_activeMenu->selectedButton != -1) {
- playSoundEffectIndex(SND_SELECTION);
+ _sound->playSoundEffectIndex(SND_SELECTION);
return _activeMenu->retvals[_activeMenu->selectedButton];
} else {
Common::Point mouse = _gfx->getMousePos();
if (getMenuButtonAt(_activeMenu->sprites, _activeMenu->numButtons, mouse.x, mouse.y) == -1) {
- playSoundEffectIndex(SND_SELECTION);
+ _sound->playSoundEffectIndex(SND_SELECTION);
return MENUEVENT_LCLICK_OFFBUTTON;
}
}
@@ -669,7 +669,7 @@ lclick:
case TREKEVENT_RBUTTONDOWN:
rclick:
- playSoundEffectIndex(SND_SELECTION);
+ _sound->playSoundEffectIndex(SND_SELECTION);
if (_activeMenu->selectedButton == -1)
return MENUEVENT_RCLICK_OFFBUTTON;
else
@@ -686,13 +686,13 @@ rclick:
case Common::KEYCODE_RETURN:
case Common::KEYCODE_KP_ENTER:
case Common::KEYCODE_F1:
- playSoundEffectIndex(SND_SELECTION);
+ _sound->playSoundEffectIndex(SND_SELECTION);
return TEXTBUTTON_CONFIRM;
case Common::KEYCODE_SPACE:
if (!(_activeMenu->disabledButtons & (1 << TEXTBUTTON_NEXTCHOICE))
&& _activeMenu->sprites[TEXTBUTTON_NEXTCHOICE].drawMode == 2) {
- playSoundEffectIndex(SND_SELECTION);
+ _sound->playSoundEffectIndex(SND_SELECTION);
return TEXTBUTTON_NEXTCHOICE;
}
break;
@@ -701,7 +701,7 @@ rclick:
case Common::KEYCODE_KP7:
if (!(_activeMenu->disabledButtons & (1 << TEXTBUTTON_SCROLLUP))
&& _activeMenu->sprites[TEXTBUTTON_SCROLLUP].drawMode == 2) {
- playSoundEffectIndex(SND_SELECTION);
+ _sound->playSoundEffectIndex(SND_SELECTION);
return TEXTBUTTON_GOTO_TOP;
}
break;
@@ -710,7 +710,7 @@ rclick:
case Common::KEYCODE_KP8:
if (!(_activeMenu->disabledButtons & (1 << TEXTBUTTON_SCROLLUP))
&& _activeMenu->sprites[TEXTBUTTON_SCROLLUP].drawMode == 2) {
- playSoundEffectIndex(SND_SELECTION);
+ _sound->playSoundEffectIndex(SND_SELECTION);
return TEXTBUTTON_SCROLLUP_ONELINE;
}
break;
@@ -719,7 +719,7 @@ rclick:
case Common::KEYCODE_KP9:
if (!(_activeMenu->disabledButtons & (1 << TEXTBUTTON_SCROLLUP))
&& _activeMenu->sprites[TEXTBUTTON_SCROLLUP].drawMode == 2) {
- playSoundEffectIndex(SND_SELECTION);
+ _sound->playSoundEffectIndex(SND_SELECTION);
return TEXTBUTTON_SCROLLUP;
}
break;
@@ -728,7 +728,7 @@ rclick:
case Common::KEYCODE_KP4:
if (!(_activeMenu->disabledButtons & (1 << TEXTBUTTON_PREVCHOICE))
&& _activeMenu->sprites[TEXTBUTTON_PREVCHOICE].drawMode == 2) {
- playSoundEffectIndex(SND_SELECTION);
+ _sound->playSoundEffectIndex(SND_SELECTION);
return TEXTBUTTON_PREVCHOICE;
}
break;
@@ -737,7 +737,7 @@ rclick:
case Common::KEYCODE_KP6:
if (!(_activeMenu->disabledButtons & (1 << TEXTBUTTON_NEXTCHOICE))
&& _activeMenu->sprites[TEXTBUTTON_NEXTCHOICE].drawMode == 2) {
- playSoundEffectIndex(SND_SELECTION);
+ _sound->playSoundEffectIndex(SND_SELECTION);
return TEXTBUTTON_NEXTCHOICE;
}
break;
@@ -746,7 +746,7 @@ rclick:
case Common::KEYCODE_KP1:
if (!(_activeMenu->disabledButtons & (1 << TEXTBUTTON_SCROLLDOWN))
&& _activeMenu->sprites[TEXTBUTTON_SCROLLDOWN].drawMode == 2) {
- playSoundEffectIndex(SND_SELECTION);
+ _sound->playSoundEffectIndex(SND_SELECTION);
return TEXTBUTTON_GOTO_BOTTOM;
}
break;
@@ -755,7 +755,7 @@ rclick:
case Common::KEYCODE_KP2:
if (!(_activeMenu->disabledButtons & (1 << TEXTBUTTON_SCROLLDOWN))
&& _activeMenu->sprites[TEXTBUTTON_SCROLLDOWN].drawMode == 2) {
- playSoundEffectIndex(SND_SELECTION);
+ _sound->playSoundEffectIndex(SND_SELECTION);
return TEXTBUTTON_SCROLLDOWN_ONELINE;
}
break;
@@ -764,7 +764,7 @@ rclick:
case Common::KEYCODE_KP3:
if (!(_activeMenu->disabledButtons & (1 << TEXTBUTTON_SCROLLDOWN))
&& _activeMenu->sprites[TEXTBUTTON_SCROLLDOWN].drawMode == 2) {
- playSoundEffectIndex(SND_SELECTION);
+ _sound->playSoundEffectIndex(SND_SELECTION);
return TEXTBUTTON_SCROLLDOWN;
}
break;
diff --git a/engines/startrek/room.cpp b/engines/startrek/room.cpp
index 9c308ebeed..a34af48b0b 100644
--- a/engines/startrek/room.cpp
+++ b/engines/startrek/room.cpp
@@ -630,11 +630,11 @@ int16 Room::getRandomWordInRange(int start, int end) {
}
void Room::playSoundEffectIndex(int soundEffect) {
- _vm->playSoundEffectIndex(soundEffect);
+ _vm->_sound->playSoundEffectIndex(soundEffect);
}
void Room::playMidiMusicTracks(int startTrack, int loopTrack) {
- _vm->playMidiMusicTracks(startTrack, loopTrack);
+ _vm->_sound->playMidiMusicTracks(startTrack, loopTrack);
}
void Room::endMission(int16 score, int16 arg1, int16 arg2) {
diff --git a/engines/startrek/sound.cpp b/engines/startrek/sound.cpp
index c448126e08..7976d05dc8 100644
--- a/engines/startrek/sound.cpp
+++ b/engines/startrek/sound.cpp
@@ -281,6 +281,62 @@ void Sound::stopPlayingSpeech() {
}
}
+void Sound::playSoundEffectIndex(int index) {
+ if (!(_vm->getFeatures() & GF_CDROM))
+ playMidiTrack(index);
+ else {
+ switch (index) {
+ case 0x04:
+ playVoc("tricorde");
+ break;
+ case 0x05:
+ playVoc("STDOOR1");
+ break;
+ case 0x06:
+ playVoc("PHASSHOT");
+ break;
+ case 0x07:
+ playMidiTrack(index);
+ break;
+ case 0x08:
+ playVoc("TRANSDEM");
+ break;
+ case 0x09: // Beaming in?
+ playVoc("TRANSMAT");
+ break;
+ case 0x0a: // Beaming out?
+ playVoc("TRANSENE");
+ break;
+ case 0x10: // Menu selection sound
+ playMidiTrack(index);
+ break;
+ case 0x22:
+ playVoc("HAILING");
+ break;
+ case 0x24:
+ playVoc("PHASSHOT");
+ break;
+ case 0x25:
+ playVoc("PHOTSHOT");
+ break;
+ case 0x26:
+ playVoc("HITSHIEL");
+ break;
+ case 0x27:
+ playMidiTrack(index);
+ break;
+ case 0x28:
+ playVoc("REDALERT");
+ break;
+ case 0x29:
+ playVoc("WARP");
+ break;
+ default:
+ debugC(kDebugSound, 6, "Unmapped sound 0x%x", index);
+ break;
+ }
+ }
+}
void Sound::setMusicEnabled(bool enable) {
if (!_vm->_musicWorking || _vm->_musicEnabled == enable)
diff --git a/engines/startrek/sound.h b/engines/startrek/sound.h
index 5df02bc1d1..732d7819b9 100644
--- a/engines/startrek/sound.h
+++ b/engines/startrek/sound.h
@@ -69,6 +69,7 @@ public:
void playSpeech(const Common::String &basename);
void stopAllVocSounds();
void stopPlayingSpeech();
+ void playSoundEffectIndex(int index);
void setMusicEnabled(bool enable);
void setSfxEnabled(bool enable);
void checkLoopMusic();
diff --git a/engines/startrek/startrek.cpp b/engines/startrek/startrek.cpp
index 4266462cff..3c82ea2650 100644
--- a/engines/startrek/startrek.cpp
+++ b/engines/startrek/startrek.cpp
@@ -300,12 +300,12 @@ void StarTrekEngine::runTransportSequence(const Common::String &name) {
_gfx->drawAllSprites();
_gfx->fadeinScreen();
- playSoundEffectIndex(0x0a);
+ _sound->playSoundEffectIndex(0x0a);
if (name.equalsIgnoreCase("teled"))
- playSoundEffectIndex(0x08);
+ _sound->playSoundEffectIndex(0x08);
else
- playSoundEffectIndex(0x09);
+ _sound->playSoundEffectIndex(0x09);
while (_actorList[0].field62 == 0) {
TrekEvent event;
@@ -327,75 +327,6 @@ void StarTrekEngine::runTransportSequence(const Common::String &name) {
initActors();
}
-void StarTrekEngine::playSoundEffectIndex(int index) {
- if (!(getFeatures() & GF_CDROM))
- _sound->playMidiTrack(index);
- else {
- switch (index) {
- case 0x04:
- _sound->playVoc("tricorde");
- break;
- case 0x05:
- _sound->playVoc("STDOOR1");
- break;
- case 0x06:
- _sound->playVoc("PHASSHOT");
- break;
- case 0x07:
- _sound->playMidiTrack(index);
- break;
- case 0x08:
- _sound->playVoc("TRANSDEM");
- break;
- case 0x09: // Beaming in?
- _sound->playVoc("TRANSMAT");
- break;
- case 0x0a: // Beaming out?
- _sound->playVoc("TRANSENE");
- break;
- case 0x10: // Menu selection sound
- _sound->playMidiTrack(index);
- break;
- case 0x22:
- _sound->playVoc("HAILING");
- break;
- case 0x24:
- _sound->playVoc("PHASSHOT");
- break;
- case 0x25:
- _sound->playVoc("PHOTSHOT");
- break;
- case 0x26:
- _sound->playVoc("HITSHIEL");
- break;
- case 0x27:
- _sound->playMidiTrack(index);
- break;
- case 0x28:
- _sound->playVoc("REDALERT");
- break;
- case 0x29:
- _sound->playVoc("WARP");
- break;
- default:
- debugC(kDebugSound, 6, "Unmapped sound 0x%x", index);
- break;
- }
- }
-}
-
-void StarTrekEngine::playMidiMusicTracks(int startTrack, int loopTrack) {
- _sound->playMidiMusicTracks(startTrack, loopTrack);
-}
-
-void StarTrekEngine::playSpeech(const Common::String &filename) {
- _sound->playSpeech(filename.c_str());
-}
-
-void StarTrekEngine::stopPlayingSpeech() {
- _sound->stopPlayingSpeech();
-}
-
/**
* TODO:
* - Should return nullptr on failure to open a file?
diff --git a/engines/startrek/startrek.h b/engines/startrek/startrek.h
index a55b59e689..1e4e330ecb 100644
--- a/engines/startrek/startrek.h
+++ b/engines/startrek/startrek.h
@@ -243,12 +243,6 @@ public:
void initBridge(bool b) {}; // TODO
void cleanupBridge() {}; // TODO
- // Running the game
- void playSoundEffectIndex(int index);
- void playMidiMusicTracks(int startTrack, int loopTrack);
- void playSpeech(const Common::String &filename);
- void stopPlayingSpeech();
-
Common::MemoryReadStreamEndian *loadFile(Common::String filename, int fileIndex = 0);
/**
* TODO: Figure out what the extra parameters are, and if they're important.
diff --git a/engines/startrek/textbox.cpp b/engines/startrek/textbox.cpp
index 542df25bc7..007ab8f5af 100644
--- a/engines/startrek/textbox.cpp
+++ b/engines/startrek/textbox.cpp
@@ -240,7 +240,7 @@ String StarTrekEngine::playTextAudio(const String &str) {
}
soundFile[len] = '\0';
- playSpeech(soundFile);
+ _sound->playSpeech(soundFile);
return String(text + 1);
}
@@ -462,7 +462,7 @@ readjustScroll:
}
_textboxVar2 = _frameIndex;
- stopPlayingSpeech();
+ _sound->stopPlayingSpeech();
return choiceIndex;
}