[Scummvm-git-logs] scummvm master -> eb8e1a33fd6612fada2d2bb0d52349d9f0148cb4

bluegr bluegr at gmail.com
Tue Dec 29 14:14:34 UTC 2020


This automated email contains information about 8 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
c6d3f1df65 STARTREK: Ensure that we're not reading past the end of RDF files
0f8194ccd6 STARTREK: More work on mission ending, mission points and captain's log
df67983e68 STARTREK: Sync several missing fields in saved games
2227b2a3a2 STARTREK: More bridge-related functionality
49395f2a8a STARTREK: Rename sound IDs and remove calls to blank sounds
1705cbc846 STARTREK: Use the SFX enum instead of hardcoded values
f7d0670522 STARTREK: Remove more calls to blank sounds
eb8e1a33fd STARTREK: More functionality for bridge sequences and crew responses


Commit: c6d3f1df65e7acd214fbdc85bda67ff73f348aae
    https://github.com/scummvm/scummvm/commit/c6d3f1df65e7acd214fbdc85bda67ff73f348aae
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2020-12-29T16:14:01+02:00

Commit Message:
STARTREK: Ensure that we're not reading past the end of RDF files

Changed paths:
    engines/startrek/room.cpp


diff --git a/engines/startrek/room.cpp b/engines/startrek/room.cpp
index 20bc784539..606bb8f3c3 100644
--- a/engines/startrek/room.cpp
+++ b/engines/startrek/room.cpp
@@ -122,25 +122,32 @@ Room::~Room() {
 void Room::loadRoomMessages() {
 	// TODO: There are some more messages which are not stored in that offset
 	uint16 messagesOffset = readRdfWord(32);
+	uint16 offset = messagesOffset;
 	const char *text = (const char *)_rdfData + messagesOffset;
 	const char roomIndexChar = '0' + _vm->_roomIndex;
 
 	do {
-		while (text[0] != '#' || (text[1] != _vm->_missionName[0] && text[4] != roomIndexChar))
+		while ((text[0] != '#' || (text[1] != _vm->_missionName[0] && text[4] != roomIndexChar)) && offset < _rdfSize) {
 			text++;
+			offset++;
+		}
 
 		if (text[5] == '\\')
 			loadRoomMessage(text);
 
-		while (*text != '\0')
+		while (*text != '\0' && offset < _rdfSize) {
 			text++;
+			offset++;
+		}
 
 		// Peek the next byte, in case there's a filler text
 		if (Common::isAlpha(*(text + 1))) {
-			while (*text != '\0')
+			while (*text != '\0' && offset < _rdfSize) {
 				text++;
+				offset++;
+			}
 		}
-	} while (*(text + 1) == '#');
+	} while (*(text + 1) == '#' && offset < _rdfSize);
 }
 
 void Room::loadRoomMessage(const char *text) {


Commit: 0f8194ccd671e5da5f509a8a65a67ba213e821d5
    https://github.com/scummvm/scummvm/commit/0f8194ccd671e5da5f509a8a65a67ba213e821d5
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2020-12-29T16:14:02+02:00

Commit Message:
STARTREK: More work on mission ending, mission points and captain's log

Changed paths:
    engines/startrek/bridge.cpp
    engines/startrek/startrek.cpp
    engines/startrek/startrek.h


diff --git a/engines/startrek/bridge.cpp b/engines/startrek/bridge.cpp
index 4c5299dd98..677588868e 100644
--- a/engines/startrek/bridge.cpp
+++ b/engines/startrek/bridge.cpp
@@ -158,6 +158,13 @@ enum BridgeTalkers {
 	kBridgeTalkerAutobeacon
 };
 
+enum RandomEncounterType {
+	kRandomEncounterNone = 0,
+	kRandomEncounterKlingon = 1,
+	kRandomEncounterRomulan = 2,
+	kRandomEncounterElasi = 3
+};
+
 void StarTrekEngine::initBridge(bool b) {
 	_gfx->loadPalette("bridge");
 	_sound->loadMusicFile("bridge");
@@ -299,7 +306,7 @@ void StarTrekEngine::playBridgeSequence(int sequenceId) {
 		_sound->playSoundEffectIndex(34);
 		showTextboxBridge(kBridgeTalkerUhura, 23); // Message from Starfleet
 		showTextboxBridge(kBridgeTalkerKirk, 24);
-		showMissionPerformance(_awayMission.demon.missionScore * 100 / 32, 29);
+		showMissionPerformance(_awayMission.demon.missionScore * 100 / 32, 29, 0);
 		showTextboxBridge(kBridgeTalkerMcCoy, 25);
 		showTextboxBridge(kBridgeTalkerKirk, 26);
 		showTextboxBridge(kBridgeTalkerSpock, 27);
@@ -360,7 +367,7 @@ void StarTrekEngine::playBridgeSequence(int sequenceId) {
 			_sound->playSoundEffectIndex(34);
 			showTextboxBridge(kBridgeTalkerUhura, 29);
 			showTextboxBridge(kBridgeTalkerKirk, 30);
-			showMissionPerformance(_awayMission.tug.missionScore * 100 / 32, 31);
+			showMissionPerformance(_awayMission.tug.missionScore * 100 / 32, 31, 1);
 			showTextboxBridge(kBridgeTalkerMcCoy, 32); // Trying to hold a Federation starship captive. Can you believe it?
 			showTextboxBridge(kBridgeTalkerSpock, 33); // Since we just witnessed that very event, Doctor, I'm surprised you ask.
 			showTextboxBridge(kBridgeTalkerMcCoy, 34);
@@ -372,12 +379,12 @@ void StarTrekEngine::playBridgeSequence(int sequenceId) {
 			_sound->playSoundEffectIndex(34);
 			showTextboxBridge(kBridgeTalkerUhura, 39);
 			showTextboxBridge(kBridgeTalkerKirk, 40);
-			showMissionPerformance(0, 41);
+			showMissionPerformance(0, 41, 1);
 		} else if (_missionEndFlag == 2) {
 			// Bad ending 2 (0 score): bad handling of the situation, some prisoners died
 			_sound->playSoundEffectIndex(34);
 			showTextboxBridge(kBridgeTalkerUhura, 42);
-			showMissionPerformance(0, 43);
+			showMissionPerformance(0, 43, 1);
 		}
 		loadActorAnim(1, ACTOR_SITTING_SPOCK, 0, 0, 1.0);
 		removeActorFromScreen(2);
@@ -430,7 +437,7 @@ void StarTrekEngine::playBridgeSequence(int sequenceId) {
 		_sound->playSoundEffectIndex(34);
 		showTextboxBridge(kBridgeTalkerUhura, 18);
 		showTextboxBridge(kBridgeTalkerKirk, 19);
-		showMissionPerformance(_awayMission.love.missionScore * 100 / 32, 26);
+		showMissionPerformance(_awayMission.love.missionScore * 100 / 32, 26, 2);
 		showTextboxBridge(kBridgeTalkerKirk, 20);
 		showTextboxBridge(kBridgeTalkerMcCoy, 21);
 		showTextboxBridge(kBridgeTalkerKirk, 22);
@@ -463,7 +470,7 @@ void StarTrekEngine::playBridgeSequence(int sequenceId) {
 		_resource->setTxtFileName("MUDD");
 		loadActorAnim(1, ACTOR_STANDING_SPOCK, 0, 0, 1.0); // Standing Spock
 		loadActorAnim(2, ACTOR_STANDING_MCCOY, 0, 0, 1.0); // Standing McCoy
-		showMissionPerformance(_awayMission.mudd.missionScore * 100 / 32, 35);
+		showMissionPerformance(_awayMission.mudd.missionScore * 100 / 32, 35, 3);
 		if (_missionEndFlag != 0) {
 			// Obtained alien contraption
 			showTextboxBridge(kBridgeTalkerScotty, 36);
@@ -699,31 +706,36 @@ Common::String StarTrekEngine::getSpeechSampleForNumber(int number) {
 	return result;
 }
 
-// TODO: two more parameters
-void StarTrekEngine::showMissionPerformance(int score, int missionScoreTextId) {
+// TODO: one more parameter
+void StarTrekEngine::showMissionPerformance(int score, int missionScoreTextId, int missionId) {
 	Common::String performanceDescription;
 	int midiTrack = 0;
+	int commendationPoints = 0;
 
 	if (score >= 0 && score <= 50) {
 		performanceDescription = "#BRID\\B_199#I'll be frank, Kirk. Starfleet expects more of you than that. Try to do better on your next assignment.";
+		commendationPoints = 0;
 		midiTrack = 13;
 	} else if (score >= 60 && score <= 70) {
 		performanceDescription = "#BRID\\B_197#A satisfactory performance, Captain, but there's still room for improvement.";
+		commendationPoints = 1;
 		midiTrack = 13;
 	} else if (score >= 71 && score <= 85) {
 		performanceDescription = "#BRID\\B_214#Well done, Captain. Keep up the good work.";
+		commendationPoints = 2;
 		midiTrack = 11;
 	} else if (score >= 86 && score <= 99) {
 		performanceDescription = "#BRID\\B_414#The top brass at Starfleet are impressed. Outstanding work, Jim.";
+		commendationPoints = 3;
 		midiTrack = 12;
 	} else if (score == 100) {
 		performanceDescription = "#BRID\\B_195#A perfect mission, Jim! You are a model for all Starfleet!";
+		commendationPoints = 4;
 		midiTrack = 14;
 	}
 
 	_sound->playMidiMusicTracks(midiTrack, -1);
 
-	int commendationPoints = 0;	// TODO
 	Common::String speechIdPerformance = getSpeechSampleForNumber(score);
 	Common::String speechIdCommendationPoints = getSpeechSampleForNumber(commendationPoints);
 
@@ -742,6 +754,9 @@ void StarTrekEngine::showMissionPerformance(int score, int missionScoreTextId) {
 	};
 
 	showBridgeScreenTalkerWithMessages(texts, "Admiral", "woman");
+
+	_lastMissionId = missionId;
+	_missionPoints[missionId] = commendationPoints;
 }
 
 void StarTrekEngine::showBridgeScreenTalkerWithMessage(int textId, Common::String talkerHeader, Common::String talkerId, bool removeTalker) {
@@ -1021,7 +1036,7 @@ void StarTrekEngine::handleBridgeMenu(int menuEvent) {
 					showTextboxBridge(kBridgeTalkerKirk, transporterText);
 				else
 					showTextboxBridge(kBridgeTalkerKirk, transporterTextFeather);
-				runGameMode(GAMEMODE_BEAMDOWN, false);
+				_gameMode = GAMEMODE_BEAMDOWN;
 			}
 		}
 		break;
@@ -1126,7 +1141,26 @@ void StarTrekEngine::startBattle(Common::String enemyShip) {
 }
 
 void StarTrekEngine::wrongDestinationRandomEncounter() {
-	// TODO
+	_randomEncounterType = _randomSource.getRandomNumberRng(1, 3);
+
+	switch (_randomEncounterType) {
+	case kRandomEncounterKlingon:
+		_resource->setTxtFileName("klingon");
+		break;
+	case kRandomEncounterRomulan:
+		_resource->setTxtFileName("romulan");
+		break;
+	case kRandomEncounterElasi:
+		_resource->setTxtFileName("elasi");
+		break;
+	default:
+		break;
+	}
+
+	// TODO: The rest
+
+	_enterpriseState.underAttack = true;
+	_sound->loadMusicFile("bridge");	// TODO: check for bridgeb
 }
 
 // Used when approaching Beta Myamid / Masada in chapter 2, and Ark 7 in chapter 3
@@ -1147,9 +1181,44 @@ void StarTrekEngine::orbitPlanet() {
 }
 
 void StarTrekEngine::captainsLog() {
-	// TODO: Show points for recently completed missions
-	const char *noRecentMissions = "#BRID\\C_007#No recent missions have been completed.";
-	showTextboxBridge(kBridgeTalkerCaptainsLog, noRecentMissions);
+	const char *missionNames[] = {
+		"Demon World",
+		"Hijacked",
+		"Love's Labor Jeopardized",
+		"Another Fine Mess",
+		"Feathered Serpent",
+		"That Old Devil Moon",
+		"Vengeance"
+	};
+
+	int totalPoints = 0;
+	for (int i = 0; i < 7; i++)
+		totalPoints += _missionPoints[i];
+
+	Common::String captainsLogMessage = "";
+
+	if (_lastMissionId > -1) {
+		captainsLogMessage = Common::String::format(
+			"#BRID\\C_007#We have earned %d point",
+			totalPoints
+		);
+
+		if (totalPoints > 1)
+			captainsLogMessage += "s";
+
+		captainsLogMessage += " for the following recently completed missions:\n";
+
+		for (int i = 6; i >= 0; i--) {
+			captainsLogMessage += missionNames[i] + Common::String::format(":   %d point", _missionPoints[i]);
+			if (_missionPoints[i] > 1)
+				captainsLogMessage += "s";
+			captainsLogMessage + ".\n\n";
+		}
+	} else {
+		captainsLogMessage = "#BRID\\C_007#No recent missions have been completed.";
+	}
+
+	showTextboxBridge(kBridgeTalkerCaptainsLog, captainsLogMessage);
 }
 
 void StarTrekEngine::loadBridgeComputerTopics() {
diff --git a/engines/startrek/startrek.cpp b/engines/startrek/startrek.cpp
index 817fd82f94..348a0d64b4 100644
--- a/engines/startrek/startrek.cpp
+++ b/engines/startrek/startrek.cpp
@@ -118,6 +118,9 @@ StarTrekEngine::StarTrekEngine(OSystem *syst, const StarTrekGameDescription *gam
 	_deadMasadaPrisoners = 0;
 	_beamDownAllowed = true;
 	_missionEndFlag = 0;
+	_randomEncounterType = 0;
+	_lastMissionId = -1;
+	Common::fill(_missionPoints, _missionPoints + 7, 0);
 
 	_awayMission.demon.missionScore = 0;
 	_awayMission.tug.missionScore = 0;
@@ -245,6 +248,7 @@ Common::Error StarTrekEngine::runGameMode(int mode, bool resume) {
 			case GAMEMODE_BEAMUP:
 				runTransportSequence("teleb");
 				_gameMode = GAMEMODE_BRIDGE;
+				delete _room;
 				//sub_15c61();
 				_sound->stopAllVocSounds();
 				_sound->playVoc("bridloop");
diff --git a/engines/startrek/startrek.h b/engines/startrek/startrek.h
index 8c9d7a7213..8b90dcd245 100644
--- a/engines/startrek/startrek.h
+++ b/engines/startrek/startrek.h
@@ -261,7 +261,7 @@ public:
 	void playBridgeSequence(int sequenceId);
 	void handleBridgeEvents();
 	void handleBridgeComputer();
-	void showMissionPerformance(int score, int missionScoreTextId);
+	void showMissionPerformance(int score, int missionScoreTextId, int missionId);
 
 	int _bridgeSequenceToLoad;
 
@@ -280,14 +280,17 @@ private:
 	void negotiateWithElasiCereth();
 	void hailTheMasada();
 
-	int _targetPlanet;
-	int _currentPlanet;
+	int16 _targetPlanet;
+	int16 _currentPlanet;
 	int _currentScreenTalker;
 	bool _gameIsPaused;
 	bool _hailedTarget;
 	int _deadMasadaPrisoners;
 	bool _beamDownAllowed;
 	int _missionEndFlag;
+	int16 _randomEncounterType;	// 1: Klingon, 2: Romulan, 3: Elasi
+	int16 _lastMissionId;
+	int16 _missionPoints[7];
 
 public:
 	void playMovie(Common::String filename);


Commit: df67983e68cebf28e4e83d3308643276bbde6671
    https://github.com/scummvm/scummvm/commit/df67983e68cebf28e4e83d3308643276bbde6671
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2020-12-29T16:14:02+02:00

Commit Message:
STARTREK: Sync several missing fields in saved games

Most of these are related to the bridge screens

Changed paths:
    engines/startrek/saveload.cpp


diff --git a/engines/startrek/saveload.cpp b/engines/startrek/saveload.cpp
index d753135902..6fd9e28da8 100644
--- a/engines/startrek/saveload.cpp
+++ b/engines/startrek/saveload.cpp
@@ -76,7 +76,7 @@ bool StarTrekEngine::showLoadMenu() {
 	return loadGame(slot);
 }
 
-const uint32 CURRENT_SAVEGAME_VERSION = 0;
+const uint32 CURRENT_SAVEGAME_VERSION = 1;
 
 bool StarTrekEngine::saveGame(int slot, Common::String desc) {
 	Common::String filename = getSavegameFilename(slot);
@@ -195,20 +195,37 @@ bool StarTrekEngine::saveOrLoadGameData(Common::SeekableReadStream *in, Common::
 
 	ser.syncAsUint16LE(_frameIndex);
 	ser.syncAsUint16LE(_mouseControllingShip);
-	// TODO: word_45aa8
-	// TODO: word_45aaa
-	// TODO: word_45aac
-	// TODO: word_5082e
-	// TODO: dword_519b0
-	// TODO: word_45ab2
-	// TODO: word_45ab4
-	// TODO: word_45ab8
+	if (meta->version >= 1) {
+		ser.syncAsSint16LE(_enterpriseState.inOrbit);
+		ser.syncAsSint16LE(_enterpriseState.underAttack);
+		ser.syncAsSint16LE(_randomEncounterType);
+
+		int16 unkFlag1 = 0; // TODO: word_5082e (either 0 or 1)
+		ser.syncAsSint16LE(unkFlag1);
+
+		int unkVar1 = 0;	// TODO: dword_519b0
+		ser.syncAsSint32LE(unkVar1);
+
+		ser.syncAsSint16LE(_currentPlanet);
+		ser.syncAsSint16LE(_targetPlanet);
+
+		int16 unkFlag2 = 0; // TODO: word_45ab8 (either 0 or -1)
+		ser.syncAsSint16LE(unkFlag2);
+	}
 
 	ser.syncString(_missionToLoad);
-	// TODO: word_4b032
-	// TODO: word_519bc
-	// TODO: word_45c5c
-	// TODO: unk_52afe
+
+	if (meta->version >= 1) {
+		int16 unkFlag3 = 0; // TODO: word_4b032 (either 0 or 1)
+		ser.syncAsSint16LE(unkFlag3);
+
+		ser.syncAsUint16LE(_hailedTarget);
+		ser.syncAsSint16LE(_lastMissionId);
+		for (int i = 0; i < 7; i++) {
+			ser.syncAsUint16LE(_missionPoints[i]);
+		}
+	}
+
 	ser.syncString(_sound->_loopingAudioName);
 
 	if (ser.isLoading()) {
@@ -216,7 +233,9 @@ bool StarTrekEngine::saveOrLoadGameData(Common::SeekableReadStream *in, Common::
 			_sound->playVoc(_sound->_loopingAudioName);
 	}
 
-	// TODO: word_45a50
+	if (meta->version >= 1) {
+		ser.syncAsSint16LE(_bridgeSequenceToLoad);
+	}
 
 	for (int i = 0; i < NUM_OBJECTS; i++) {
 		ser.syncAsByte(_itemList[i].have);


Commit: 2227b2a3a23535ae7bba4e5ac6747c0e51028cf8
    https://github.com/scummvm/scummvm/commit/2227b2a3a23535ae7bba4e5ac6747c0e51028cf8
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2020-12-29T16:14:02+02:00

Commit Message:
STARTREK: More bridge-related functionality

Changed paths:
    engines/startrek/bridge.cpp
    engines/startrek/startrek.h


diff --git a/engines/startrek/bridge.cpp b/engines/startrek/bridge.cpp
index 677588868e..61896ff43a 100644
--- a/engines/startrek/bridge.cpp
+++ b/engines/startrek/bridge.cpp
@@ -155,7 +155,9 @@ enum BridgeTalkers {
 	kBridgeTalkerCaptainsLog,
 	kBridgeTalkerElasiCaptain,
 	kBridgeTalkerElasiCereth,
-	kBridgeTalkerAutobeacon
+	kBridgeTalkerAutobeacon,
+	kBridgeTalkerVoice,
+	kBridgeTalkerHarryMudd
 };
 
 enum RandomEncounterType {
@@ -247,6 +249,12 @@ void StarTrekEngine::showTextboxBridge(int talker, Common::String text) {
 	case kBridgeTalkerAutobeacon:
 		showTextbox("Autobeacon", text, 160, 130, 161, 0);
 		break;
+	case kBridgeTalkerVoice:
+		showTextbox("Voice", text, 160, 130, 44, 0);
+		break;
+	case kBridgeTalkerHarryMudd:
+		showTextbox("Harry Mudd", text, 160, 190, 44, 0);
+		break;
 	}
 }
 
@@ -421,7 +429,7 @@ void StarTrekEngine::playBridgeSequence(int sequenceId) {
 		_enterpriseState.underAttack = false;
 		showTextboxBridge(kBridgeTalkerSpock, 11);	// They activated a self-destruct device...
 		showTextboxBridge(kBridgeTalkerSulu, 12);	// Resuming course to ARK7, Captain
-		orbitPlanetSequence();
+		orbitPlanetSequence(4);
 		_bridgeSequenceToLoad = kSeqArrivedAtArk7;
 		break;
 	case kSeqArrivedAtArk7:
@@ -464,7 +472,28 @@ void StarTrekEngine::playBridgeSequence(int sequenceId) {
 		break;
 	case kSeqFightElasiShipsAndContactMudd:
 		showTextboxBridge(kBridgeTalkerSpock, 5);	// We have arrived at Harlequin
-		// TODO
+		//_beamDownAllowed = false;	// TODO: unused, since the player jumps straight into a battle?
+		showTextboxBridge(kBridgeTalkerSpock, 6);
+		_sound->playSoundEffectIndex(34);
+		showTextboxBridge(kBridgeTalkerUhura, 7);
+		showBridgeScreenTalkerWithMessage(14, "Elasi Pirate", "pira");
+		_enterpriseState.underAttack = true;
+		_sound->playMidiMusicTracks(2, -1);
+		startBattle("orion");	// Pirate Ship 1
+		startBattle("orion");	// Pirate Ship 2
+		_enterpriseState.underAttack = false;
+		showTextboxBridge(kBridgeTalkerSpock, 8);	// The ion trail of the scout ship leads to the Harrapan system, Captain
+		showTextboxBridge(kBridgeTalkerUhura, 9);
+		showTextboxBridge(kBridgeTalkerKirk, 10);
+		showTextboxBridge(kBridgeTalkerVoice, 11);
+		showTextboxBridge(kBridgeTalkerKirk, 12);
+		showTextboxBridge(kBridgeTalkerUhura, 13);
+		showBridgeScreenTalkerWithMessage(15, "Harry Mudd", "mudd", false);
+		showTextboxBridge(kBridgeTalkerKirk, 16);
+		showTextboxBridge(kBridgeTalkerHarryMudd, 17);
+		removeActorFromScreen(_currentScreenTalker);
+		initStarfieldSprite(&_starfieldSprite, new StubBitmap(0, 0), _starfieldRect);
+		showTextboxBridge(kBridgeTalkerSpock, 18);
 		break;
 	case kSeqEndMissionMudd:
 		_resource->setTxtFileName("MUDD");
@@ -514,13 +543,13 @@ struct CrewTextsForChapter {
 
 CrewTextsForChapter crewTexts[] = {
 	{ kPlanetPollux,     kBridgeTalkerSpock, 10, 20, 21, 22 },
-	{ kPlanetPollux,     kBridgeTalkerUhura,  9, 16, 19, 19},
+	{ kPlanetPollux,     kBridgeTalkerUhura,  9, 16, 19, 19 },
 	{ kPlanetBetaMyamid, kBridgeTalkerSpock, 13,  5, 17, 27 },
 	{ kPlanetBetaMyamid, kBridgeTalkerUhura, 12,  4, 16, -1 },
 	{ kPlanetArk7,       kBridgeTalkerSpock,  8,  4, -1, 13 },
 	{ kPlanetArk7,       kBridgeTalkerUhura,  7,  5, -1, -1 },
-	{ kPlanetHarlequin,  kBridgeTalkerSpock, -1,  4, -1, -1 },
-	{ kPlanetHarlequin,  kBridgeTalkerUhura, -1,  3, -1, -1 },
+	{ kPlanetHarlequin,  kBridgeTalkerSpock, 21,  4, 22, -1 },
+	{ kPlanetHarlequin,  kBridgeTalkerUhura, 19,  3, 20, -1 },
 	// TODO: The rest
 	{ kPlanetNone,       kBridgeTalkerNone,   0,  0,  0,  0 }
 };
@@ -528,42 +557,108 @@ CrewTextsForChapter crewTexts[] = {
 void StarTrekEngine::bridgeCrewAction(int crewId) {
 	CrewTextsForChapter *curCrewTexts = crewTexts;
 	int textId = -1;
+	const char *underAttackText = "#BRID\\B_348#Unable to comply, Captain.  We're under attack.";
+	const char *missionNotOverText = "#BRID\\B_338#May I respectfully remind the Captain that we haven't accomplished our mission, Sir.";
+	const char *leaveOrbitText = "#BRID\\B_349#We must first leave orbit, Sir.";
+	const char *nothingToReportText = "#BRID\\B_155 #Nothing to report, Captain.";
+	const char *hailingFrequenciesOpenText = "#BRID\\BRIDU016#Hailing frequencies open.";
+	const char *shieldsUpText = "#BRID\\B_332#Captain, the shields are up.";
+	const char *notInOrbitText = "#BRID\\B_350#We're not in orbit, Captain.";
+	const char *wrongDestinationText = "#BRID\\B_346#This isn't our destination.";
+	const char *transporterText = "#BRID\\C_060#Spock, come with me. Mr Scott, you have the conn.";
+	const char *transporterTextFeather = "#BRID\\C_006#Assemble a landing party. Unless we find this so-called criminal, we're going to war.";
 
-	while (curCrewTexts->targetPlanet != kPlanetNone) {
-		if (_targetPlanet == curCrewTexts->targetPlanet && curCrewTexts->talker == crewId) {
-			if (_enterpriseState.underAttack) {
-				textId = curCrewTexts->underAttackTextId;
-			} else if (_currentPlanet != _targetPlanet) {
-				textId = curCrewTexts->notReachedPlanetTextId;
-			} else if (!_enterpriseState.inOrbit) {
-				textId = curCrewTexts->notInOrbitTextId;
-			} else {
-				textId = curCrewTexts->inOrbitTextId;
+	switch (crewId) {
+	case kBridgeTalkerSpock:
+	case kBridgeTalkerUhura:
+		while (curCrewTexts->targetPlanet != kPlanetNone) {
+			if (_targetPlanet == curCrewTexts->targetPlanet && curCrewTexts->talker == crewId) {
+				if (_enterpriseState.underAttack) {
+					textId = curCrewTexts->underAttackTextId;
+				} else if (_currentPlanet != _targetPlanet) {
+					textId = curCrewTexts->notReachedPlanetTextId;
+				} else if (!_enterpriseState.inOrbit) {
+					textId = curCrewTexts->notInOrbitTextId;
+				} else {
+					textId = curCrewTexts->inOrbitTextId;
+				}
+				break;
 			}
-			break;
+
+			curCrewTexts++;
 		}
 
-		curCrewTexts++;
-	}
+		// Uhura's hailing sequences
+		if (crewId == kBridgeTalkerUhura && _currentPlanet == _targetPlanet) {
+			if (!_hailedTarget) {
+				contactTargetAction();
+				_hailedTarget = true;
+				return;
+			} else if (_currentPlanet == kPlanetBetaMyamid && _hailedTarget) {
+				hailTheMasada();
+				return;
+			}
+		}
+		break;
+	case kBridgeTalkerChekov:
+		if (_enterpriseState.underAttack) {
+			showTextboxBridge(kBridgeTalkerSulu, underAttackText);
+		} else if (_currentPlanet == _targetPlanet) {
+			showTextboxBridge(kBridgeTalkerSulu, missionNotOverText);
+		} else if (_enterpriseState.inOrbit) {
+			showTextboxBridge(kBridgeTalkerSulu, leaveOrbitText);
+		} else {
+			showStarMap();
+			if (_currentPlanet != _targetPlanet) {
+				wrongDestinationRandomEncounter();
+				// TODO: Redraw sprites
+			}
+		}
+		break;
+	case kBridgeTalkerSulu:
+		if (_enterpriseState.underAttack) {
+			showTextboxBridge(kBridgeTalkerSulu, underAttackText);
+		} else if (_currentPlanet == _targetPlanet && _enterpriseState.inOrbit) {
+			showTextboxBridge(kBridgeTalkerSulu, missionNotOverText);
+		} else {
+			if (_targetPlanet == kPlanetBetaMyamid) {
+				orbitPlanetSequence(6);
+				_bridgeSequenceToLoad = kSeqApproachedTheMasada;
+			} else if (_targetPlanet == kPlanetHarlequin) {
+				orbitPlanetSequence(5);
+			}
 
-	// Uhura's hailing sequences
-	if (crewId == kBridgeTalkerUhura && _currentPlanet == _targetPlanet) {
-		if (!_hailedTarget) {
-			contactTargetAction();
-			_hailedTarget = true;
-			return;
-		} else if (_currentPlanet == kPlanetBetaMyamid && _hailedTarget) {
-			hailTheMasada();
-			return;
+			orbitPlanet();
+		}
+		break;
+	case kBridgeTalkerKirk:
+		if (_enterpriseState.shields) {
+			showTextboxBridge(kBridgeTalkerSulu, shieldsUpText);
+		} else if (!_enterpriseState.inOrbit) {
+			showTextboxBridge(kBridgeTalkerSulu, notInOrbitText);
+		} else if (_currentPlanet != _targetPlanet) {
+			showTextboxBridge(kBridgeTalkerSulu, wrongDestinationText);
+		} else {
+			if (_targetPlanet == kPlanetBetaMyamid && !_beamDownAllowed) {
+				// Chapter 2, disallow beaming down until the correct code is set
+				showTextboxBridge(kBridgeTalkerSulu, 28); // Captain, the Masada's shields are still up
+			} else {
+				if (_missionToLoad != "FEATHER")
+					showTextboxBridge(kBridgeTalkerKirk, transporterText);
+				else
+					showTextboxBridge(kBridgeTalkerKirk, transporterTextFeather);
+				_gameMode = GAMEMODE_BEAMDOWN;
+			}
 		}
+		break;
 	}
 
 	if (textId >= 0) {
 		showTextboxBridge(crewId, textId);
 	} else if (crewId == kBridgeTalkerSpock) {
-		showTextboxBridge(crewId, "#BRID\\B_155 #Nothing to report, Captain.");
+		showTextboxBridge(crewId, nothingToReportText);
 	} else if (crewId == kBridgeTalkerUhura) {
-		showTextboxBridge(crewId, "#BRID\\BRIDU016#Hailing frequencies open.");
+		showTextboxBridge(crewId, hailingFrequenciesOpenText);
 	}
 }
 
@@ -595,6 +690,7 @@ void StarTrekEngine::contactTargetAction() {
 }
 
 void StarTrekEngine::negotiateWithElasiCereth() {
+	// TODO: Read these from tug.txt
 	const char *options1[] = {
 	    "Captain Kirk",
 		"#BRID\\C_074#This is Captain James T. Kirk of the U.S.S. Enterprise. You are illegally in possession of Starfleet property.",
@@ -656,6 +752,7 @@ void StarTrekEngine::negotiateWithElasiCereth() {
 }
 
 void StarTrekEngine::hailTheMasada() {
+	// TODO: Read these from tug.txt
 	const char *options[] = {
 		"Captain Kirk",
 	    "Hail the Masada.",
@@ -942,17 +1039,17 @@ void StarTrekEngine::handleBridgeEvents() {
 				_gameIsPaused = true;
 				break;
 			case Common::KEYCODE_e:	// Toggle SFX / emergency power
-				if (event.kbd.flags && Common::KBD_CTRL)
+				if (event.kbd.flags & Common::KBD_CTRL)
 					_sound->toggleSfx();
 				else
 					handleBridgeMenu(kBridgeScottyEmergencyPower);
 				break;
 			case Common::KEYCODE_m:
-				if (event.kbd.flags && Common::KBD_CTRL)
+				if (event.kbd.flags & Common::KBD_CTRL)
 					_sound->toggleMusic();
 				break;
 			case Common::KEYCODE_q:
-				if (event.kbd.flags && Common::KBD_CTRL)
+				if (event.kbd.flags & Common::KBD_CTRL)
 					showQuitGamePrompt(20, 20);
 				break;
 			case Common::KEYCODE_TILDE:	// Ship speed: reverse
@@ -985,21 +1082,12 @@ void StarTrekEngine::handleBridgeEvents() {
 }
 
 void StarTrekEngine::handleBridgeMenu(int menuEvent) {
-	// TODO: Move these
-	const char *shieldsUpText = "#BRID\\B_332#Captain, the shields are up.";
-	const char *notInOrbitText = "#BRID\\B_350#We're not in orbit, Captain.";
-	const char *wrongDestinationText = "#BRID\\B_346#This isn't our destination.";
-	const char *transporterText = "#BRID\\C_060#Spock, come with me. Mr Scott, you have the conn.";
-	const char *transporterTextFeather = "#BRID\\C_006#Assemble a landing party. Unless we find this so-called criminal, we're going to war.";
 	const char *raiseShieldsText = "#BRID\\B_340#Raising shields.";
 	const char *lowerShieldsText = "#BRID\\B_337#Lowering shields, Captain.";
 	const char *armWeaponsText = "#BRID\\B_351#Arming weapons.";
 	const char *disarmWeaponsText = "#BRID\\B_354#Disarming weapons.";
 	const char *emergencyPowerText = "#BRID\\BRID_S32#I don't know how long she can take it, Captain.";
 	const char *noEmergencyPowerText = "#BRID\\BRID_S41#She can't take it, Captain.";
-	const char *underAttackText = "#BRID\\B_348#Unable to comply, Captain.  We're under attack.";
-	const char *missionNotOverText = "#BRID\\B_338#May I respectfully remind the Captain that we haven't accomplished our mission, Sir.";
-	const char *leaveOrbitText = "#BRID\\B_349#We must first leave orbit, Sir.";
 	const char *targetAnalysisOnText = "#BRID\\B_344#Target Analysis On.";
 	const char *targetAnalysisOffText = "#BRID\\B_343#Target Analysis Off.";
 	const char *ayeSirText = "#BRID\\BRID_S22#Aye Sir.";
@@ -1021,24 +1109,7 @@ void StarTrekEngine::handleBridgeMenu(int menuEvent) {
 		captainsLog();
 		break;
 	case kBridgeKirkTransporter: // Kirk, transporter
-		if (_enterpriseState.shields) {
-			showTextboxBridge(kBridgeTalkerSulu, shieldsUpText);
-		} else if (!_enterpriseState.inOrbit) {
-			showTextboxBridge(kBridgeTalkerSulu, notInOrbitText);
-		} else if (_currentPlanet != _targetPlanet) {
-			showTextboxBridge(kBridgeTalkerSulu, wrongDestinationText);
-		} else {
-			if (_targetPlanet == kPlanetBetaMyamid && !_beamDownAllowed) {
-				// Chapter 2, disallow beaming down until the correct code is set
-				showTextboxBridge(kBridgeTalkerSulu, 28); // Captain, the Masada's shields are still up
-			} else {
-				if (_missionToLoad != "FEATHER")
-					showTextboxBridge(kBridgeTalkerKirk, transporterText);
-				else
-					showTextboxBridge(kBridgeTalkerKirk, transporterTextFeather);
-				_gameMode = GAMEMODE_BEAMDOWN;
-			}
-		}
+		bridgeCrewAction(kBridgeTalkerKirk);
 		break;
 	case kBridgeKirkOptions: // Kirk, options
 		showOptionsMenu(65, 60);
@@ -1060,37 +1131,14 @@ void StarTrekEngine::handleBridgeMenu(int menuEvent) {
 		bridgeCrewAction(kBridgeTalkerUhura);
 		break;
 	case kBridgeSuluOrbit: // Sulu, orbit
-		if (_enterpriseState.underAttack) {
-			showTextboxBridge(kBridgeTalkerSulu, underAttackText);
-		} else if (_currentPlanet == _targetPlanet && _enterpriseState.inOrbit) {
-			showTextboxBridge(kBridgeTalkerSulu, missionNotOverText);
-		} else {
-			if (_targetPlanet == kPlanetBetaMyamid) {
-				orbitPlanetSequence();
-				_bridgeSequenceToLoad = kSeqApproachedTheMasada;
-			}
-
-			orbitPlanet();
-		}
+		bridgeCrewAction(kBridgeTalkerSulu);
 		break;
 	case kBridgeSuluShields: // Sulu, shields
 		_enterpriseState.shields = !_enterpriseState.shields;
 		showTextboxBridge(kBridgeTalkerSulu, _enterpriseState.shields ? raiseShieldsText : lowerShieldsText);
 		break;
 	case kBridgeChekovNavigation: // Chekov, navigation
-		if (_enterpriseState.underAttack) {
-			showTextboxBridge(kBridgeTalkerSulu, underAttackText);
-		} else if (_currentPlanet == _targetPlanet) {
-			showTextboxBridge(kBridgeTalkerSulu, missionNotOverText);
-		} else if (_enterpriseState.inOrbit) {
-			showTextboxBridge(kBridgeTalkerSulu, leaveOrbitText);
-		} else {
-			showStarMap();
-			if (_currentPlanet != _targetPlanet) {
-				wrongDestinationRandomEncounter();
-				// TODO: Redraw sprites
-			}
-		}
+		bridgeCrewAction(kBridgeTalkerChekov);
 		break;
 	case kBridgeChekovWeapons: // Chekov, weapons
 		_enterpriseState.weapons = !_enterpriseState.weapons;
@@ -1164,7 +1212,7 @@ void StarTrekEngine::wrongDestinationRandomEncounter() {
 }
 
 // Used when approaching Beta Myamid / Masada in chapter 2, and Ark 7 in chapter 3
-void StarTrekEngine::orbitPlanetSequence() {
+void StarTrekEngine::orbitPlanetSequence(int sequenceId) {
 	// TODO
 }
 
diff --git a/engines/startrek/startrek.h b/engines/startrek/startrek.h
index 8b90dcd245..e2b1ac5f8d 100644
--- a/engines/startrek/startrek.h
+++ b/engines/startrek/startrek.h
@@ -276,7 +276,7 @@ private:
 	void wrongDestinationRandomEncounter();
 	void bridgeCrewAction(int crewId);
 	void contactTargetAction();
-	void orbitPlanetSequence();
+	void orbitPlanetSequence(int sequenceId);
 	void negotiateWithElasiCereth();
 	void hailTheMasada();
 


Commit: 49395f2a8a14975fdcfee0d33bf2305c8158f34a
    https://github.com/scummvm/scummvm/commit/49395f2a8a14975fdcfee0d33bf2305c8158f34a
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2020-12-29T16:14:02+02:00

Commit Message:
STARTREK: Rename sound IDs and remove calls to blank sounds

Changed paths:
    engines/startrek/awaymission.cpp
    engines/startrek/menu.cpp
    engines/startrek/room.cpp
    engines/startrek/rooms/feather3.cpp
    engines/startrek/rooms/feather6.cpp
    engines/startrek/rooms/love0.cpp
    engines/startrek/rooms/love1.cpp
    engines/startrek/rooms/love2.cpp
    engines/startrek/rooms/love3.cpp
    engines/startrek/rooms/love4.cpp
    engines/startrek/rooms/love5.cpp
    engines/startrek/rooms/lovea.cpp
    engines/startrek/rooms/mudd0.cpp
    engines/startrek/rooms/mudd1.cpp
    engines/startrek/rooms/mudd2.cpp
    engines/startrek/rooms/mudd3.cpp
    engines/startrek/rooms/mudd4.cpp
    engines/startrek/rooms/sins1.cpp
    engines/startrek/rooms/sins3.cpp
    engines/startrek/rooms/sins5.cpp
    engines/startrek/rooms/trial1.cpp
    engines/startrek/rooms/trial2.cpp
    engines/startrek/rooms/trial3.cpp
    engines/startrek/rooms/trial5.cpp
    engines/startrek/rooms/tug0.cpp
    engines/startrek/rooms/tug1.cpp
    engines/startrek/rooms/tug2.cpp
    engines/startrek/rooms/tug3.cpp
    engines/startrek/rooms/veng0.cpp
    engines/startrek/rooms/veng1.cpp
    engines/startrek/rooms/veng2.cpp
    engines/startrek/rooms/veng3.cpp
    engines/startrek/rooms/veng4.cpp
    engines/startrek/rooms/veng5.cpp
    engines/startrek/rooms/veng6.cpp
    engines/startrek/rooms/veng7.cpp
    engines/startrek/rooms/veng8.cpp
    engines/startrek/soundeffects.h


diff --git a/engines/startrek/awaymission.cpp b/engines/startrek/awaymission.cpp
index 71499f1c00..a5af5ed9df 100644
--- a/engines/startrek/awaymission.cpp
+++ b/engines/startrek/awaymission.cpp
@@ -400,7 +400,7 @@ void StarTrekEngine::awayMissionSelectAction(bool openActionMenu) {
 		if (_awayMission.disableInput)
 			return;
 		hideInventoryIcons();
-		_sound->playSoundEffectIndex(SND_07);
+		_sound->playSoundEffectIndex(kSfxButton);
 		_awayMission.activeAction = showActionMenu();
 	}
 
diff --git a/engines/startrek/menu.cpp b/engines/startrek/menu.cpp
index 0fffbd2c62..c815dd23ce 100644
--- a/engines/startrek/menu.cpp
+++ b/engines/startrek/menu.cpp
@@ -446,7 +446,7 @@ int StarTrekEngine::showActionMenu() {
 		}
 	}
 
-	_sound->playSoundEffectIndex(SND_SELECTION);
+	_sound->playSoundEffectIndex(kSfxSelection);
 
 	menuSprite.dontDrawNextFrame();
 	_gfx->drawAllSprites();
@@ -584,12 +584,12 @@ void StarTrekEngine::enableMenuButtons(uint32 bits) {
 
 int StarTrekEngine::leftClickEvent() {
 	if (_activeMenu->selectedButton != -1) {
-		_sound->playSoundEffectIndex(SND_SELECTION);
+		_sound->playSoundEffectIndex(kSfxSelection);
 		return _activeMenu->retvals[_activeMenu->selectedButton];
 	} else {
 		Common::Point mouse = _gfx->getMousePos();
 		if (getMenuButtonAt(_activeMenu->sprites, _activeMenu->numButtons, mouse.x, mouse.y) == -1) {
-			_sound->playSoundEffectIndex(SND_SELECTION);
+			_sound->playSoundEffectIndex(kSfxSelection);
 			return MENUEVENT_LCLICK_OFFBUTTON;
 		}
 	}
@@ -598,7 +598,7 @@ int StarTrekEngine::leftClickEvent() {
 }
 
 int StarTrekEngine::rightClickEvent() {
-	_sound->playSoundEffectIndex(SND_SELECTION);
+	_sound->playSoundEffectIndex(kSfxSelection);
 	if (_activeMenu->selectedButton == -1)
 		return MENUEVENT_RCLICK_OFFBUTTON;
 	else
@@ -720,13 +720,13 @@ int StarTrekEngine::handleMenuEvents(uint32 ticksUntilClickingEnabled, bool inTe
 					case Common::KEYCODE_RETURN:
 					case Common::KEYCODE_KP_ENTER:
 					case Common::KEYCODE_F1:
-						_sound->playSoundEffectIndex(SND_SELECTION);
+						_sound->playSoundEffectIndex(kSfxSelection);
 						return TEXTBUTTON_CONFIRM;
 
 					case Common::KEYCODE_SPACE:
 						if (!(_activeMenu->disabledButtons & (1 << TEXTBUTTON_NEXTCHOICE))
 						        && _activeMenu->sprites[TEXTBUTTON_NEXTCHOICE].drawMode == 2) {
-							_sound->playSoundEffectIndex(SND_SELECTION);
+							_sound->playSoundEffectIndex(kSfxSelection);
 							return TEXTBUTTON_NEXTCHOICE;
 						}
 						break;
@@ -735,7 +735,7 @@ int StarTrekEngine::handleMenuEvents(uint32 ticksUntilClickingEnabled, bool inTe
 					case Common::KEYCODE_KP7:
 						if (!(_activeMenu->disabledButtons & (1 << TEXTBUTTON_SCROLLUP))
 						        && _activeMenu->sprites[TEXTBUTTON_SCROLLUP].drawMode == 2) {
-							_sound->playSoundEffectIndex(SND_SELECTION);
+							_sound->playSoundEffectIndex(kSfxSelection);
 							return TEXTBUTTON_GOTO_TOP;
 						}
 						break;
@@ -744,7 +744,7 @@ int StarTrekEngine::handleMenuEvents(uint32 ticksUntilClickingEnabled, bool inTe
 					case Common::KEYCODE_KP8:
 						if (!(_activeMenu->disabledButtons & (1 << TEXTBUTTON_SCROLLUP))
 						        && _activeMenu->sprites[TEXTBUTTON_SCROLLUP].drawMode == 2) {
-							_sound->playSoundEffectIndex(SND_SELECTION);
+							_sound->playSoundEffectIndex(kSfxSelection);
 							return TEXTBUTTON_SCROLLUP_ONELINE;
 						}
 						break;
@@ -753,7 +753,7 @@ int StarTrekEngine::handleMenuEvents(uint32 ticksUntilClickingEnabled, bool inTe
 					case Common::KEYCODE_KP9:
 						if (!(_activeMenu->disabledButtons & (1 << TEXTBUTTON_SCROLLUP))
 						        && _activeMenu->sprites[TEXTBUTTON_SCROLLUP].drawMode == 2) {
-							_sound->playSoundEffectIndex(SND_SELECTION);
+							_sound->playSoundEffectIndex(kSfxSelection);
 							return TEXTBUTTON_SCROLLUP;
 						}
 						break;
@@ -762,7 +762,7 @@ int StarTrekEngine::handleMenuEvents(uint32 ticksUntilClickingEnabled, bool inTe
 					case Common::KEYCODE_KP4:
 						if (!(_activeMenu->disabledButtons & (1 << TEXTBUTTON_PREVCHOICE))
 						        && _activeMenu->sprites[TEXTBUTTON_PREVCHOICE].drawMode == 2) {
-							_sound->playSoundEffectIndex(SND_SELECTION);
+							_sound->playSoundEffectIndex(kSfxSelection);
 							return TEXTBUTTON_PREVCHOICE;
 						}
 						break;
@@ -771,7 +771,7 @@ int StarTrekEngine::handleMenuEvents(uint32 ticksUntilClickingEnabled, bool inTe
 					case Common::KEYCODE_KP6:
 						if (!(_activeMenu->disabledButtons & (1 << TEXTBUTTON_NEXTCHOICE))
 						        && _activeMenu->sprites[TEXTBUTTON_NEXTCHOICE].drawMode == 2) {
-							_sound->playSoundEffectIndex(SND_SELECTION);
+							_sound->playSoundEffectIndex(kSfxSelection);
 							return TEXTBUTTON_NEXTCHOICE;
 						}
 						break;
@@ -780,7 +780,7 @@ int StarTrekEngine::handleMenuEvents(uint32 ticksUntilClickingEnabled, bool inTe
 					case Common::KEYCODE_KP1:
 						if (!(_activeMenu->disabledButtons & (1 << TEXTBUTTON_SCROLLDOWN))
 						        && _activeMenu->sprites[TEXTBUTTON_SCROLLDOWN].drawMode == 2) {
-							_sound->playSoundEffectIndex(SND_SELECTION);
+							_sound->playSoundEffectIndex(kSfxSelection);
 							return TEXTBUTTON_GOTO_BOTTOM;
 						}
 						break;
@@ -789,7 +789,7 @@ int StarTrekEngine::handleMenuEvents(uint32 ticksUntilClickingEnabled, bool inTe
 					case Common::KEYCODE_KP2:
 						if (!(_activeMenu->disabledButtons & (1 << TEXTBUTTON_SCROLLDOWN))
 						        && _activeMenu->sprites[TEXTBUTTON_SCROLLDOWN].drawMode == 2) {
-							_sound->playSoundEffectIndex(SND_SELECTION);
+							_sound->playSoundEffectIndex(kSfxSelection);
 							return TEXTBUTTON_SCROLLDOWN_ONELINE;
 						}
 						break;
@@ -798,7 +798,7 @@ int StarTrekEngine::handleMenuEvents(uint32 ticksUntilClickingEnabled, bool inTe
 					case Common::KEYCODE_KP3:
 						if (!(_activeMenu->disabledButtons & (1 << TEXTBUTTON_SCROLLDOWN))
 						        && _activeMenu->sprites[TEXTBUTTON_SCROLLDOWN].drawMode == 2) {
-							_sound->playSoundEffectIndex(SND_SELECTION);
+							_sound->playSoundEffectIndex(kSfxSelection);
 							return TEXTBUTTON_SCROLLDOWN;
 						}
 						break;
diff --git a/engines/startrek/room.cpp b/engines/startrek/room.cpp
index 606bb8f3c3..bfcf978e73 100644
--- a/engines/startrek/room.cpp
+++ b/engines/startrek/room.cpp
@@ -765,7 +765,7 @@ void Room::spockScan(int direction, TextRef text, bool changeDirection, bool fro
 		_vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = direction;
 
 	loadActorAnim2(OBJECT_SPOCK, anim, -1, -1, 0);
-	playSoundEffectIndex(SND_TRICORDER);
+	playSoundEffectIndex(kSfxTricorder);
 
 	if (text != -1)
 		showText(TX_SPEAKER_SPOCK, text, fromRDF);
@@ -780,7 +780,7 @@ void Room::mccoyScan(int direction, TextRef text, bool changeDirection, bool fro
 		_vm->_awayMission.crewDirectionsAfterWalk[OBJECT_MCCOY] = direction;
 
 	loadActorAnim2(OBJECT_MCCOY, anim, -1, -1, 0);
-	playSoundEffectIndex(SND_TRICORDER);
+	playSoundEffectIndex(kSfxTricorder);
 
 	if (text != -1)
 		showText(TX_SPEAKER_MCCOY, text, fromRDF);
diff --git a/engines/startrek/rooms/feather3.cpp b/engines/startrek/rooms/feather3.cpp
index 04d83c6b82..39162cb113 100644
--- a/engines/startrek/rooms/feather3.cpp
+++ b/engines/startrek/rooms/feather3.cpp
@@ -241,7 +241,6 @@ void Room::feather3KirkReachedPositionToThrowRock() {
 }
 
 void Room::feather3Timer4Expired() {
-	playSoundEffectIndex(SND_BLANK_0b);
 }
 
 void Room::feather3Timer2Expired() {
diff --git a/engines/startrek/rooms/feather6.cpp b/engines/startrek/rooms/feather6.cpp
index ff05f415e3..2cef562571 100644
--- a/engines/startrek/rooms/feather6.cpp
+++ b/engines/startrek/rooms/feather6.cpp
@@ -134,7 +134,6 @@ void Room::feather6ReachedPositionToThrowRock() {
 }
 
 void Room::feather6DoneThrowingRock() {
-	playSoundEffectIndex(SND_BLANK_0b);
 	loadActorAnim2(OBJECT_STALACTITES, "s5r6tf");
 	loadActorAnimC(OBJECT_KIRK, "s5r6kd", -1, -1, &Room::feather6KirkDiedFromStalactites);
 	playMidiMusicTracks(1);
@@ -165,8 +164,6 @@ void Room::feather6ReachedCrystalsWithRock() {
 }
 
 void Room::feather6Tick() {
-	if (_awayMission->timers[2] == 55 || _awayMission->timers[2] == 89 || _awayMission->timers[2] == 119)
-		playSoundEffectIndex(SND_BLANK_0b);
 }
 
 void Room::feather6HitCrystalsWithRockFirstTime() {
diff --git a/engines/startrek/rooms/love0.cpp b/engines/startrek/rooms/love0.cpp
index a482e7fcc0..19ff429c1b 100644
--- a/engines/startrek/rooms/love0.cpp
+++ b/engines/startrek/rooms/love0.cpp
@@ -129,7 +129,7 @@ void Room::love0WalkToDoor2() {
 void Room::love0OpenDoor2() {
 	if (_roomVar.love.walkingToDoor == 2) {
 		loadActorAnim(OBJECT_DOOR2, "s3r0d2", 0xe6, 0x80, 3);
-		playSoundEffectIndex(SND_DOOR1);
+		playSoundEffectIndex(kSfxDoor);
 	}
 }
 
@@ -148,7 +148,7 @@ void Room::love0WalkToDoor1() {
 void Room::love0OpenDoor1() {
 	if (_roomVar.love.walkingToDoor == 1) {
 		loadActorAnim(OBJECT_DOOR1, "s3r0d1", 0x123, 0x8d, 4);
-		playSoundEffectIndex(SND_DOOR1);
+		playSoundEffectIndex(kSfxDoor);
 	}
 }
 
diff --git a/engines/startrek/rooms/love1.cpp b/engines/startrek/rooms/love1.cpp
index 73950253bc..ccdc35517c 100644
--- a/engines/startrek/rooms/love1.cpp
+++ b/engines/startrek/rooms/love1.cpp
@@ -246,7 +246,7 @@ void Room::love1WalkToDoor3() {
 void Room::love1OpenDoor3() {
 	if (_roomVar.love.walkingToDoor) {
 		loadActorAnim(OBJECT_DOOR3, "s3r2d3", 0xdb, 0x7e, 2);
-		playSoundEffectIndex(SND_DOOR1);
+		playSoundEffectIndex(kSfxDoor);
 	}
 }
 
@@ -266,7 +266,7 @@ void Room::love1WalkToDoor1() {
 void Room::love1OpenDoor1() {
 	if (_roomVar.love.walkingToDoor) {
 		loadActorAnim(OBJECT_DOOR1, "s3r2d1", 0, 0, 3);
-		playSoundEffectIndex(SND_DOOR1);
+		playSoundEffectIndex(kSfxDoor);
 	}
 }
 
@@ -286,7 +286,7 @@ void Room::love1WalkToDoor2() {
 void Room::love1OpenDoor2() {
 	if (_roomVar.love.walkingToDoor) {
 		loadActorAnim(OBJECT_DOOR2, "s3r2d2", 0, 0, 4);
-		playSoundEffectIndex(SND_DOOR1);
+		playSoundEffectIndex(kSfxDoor);
 	}
 }
 
@@ -458,7 +458,7 @@ void Room::love1KirkGotCureSample() {
 
 	loadActorStandAnim(OBJECT_DISH_IN_CHAMBER);
 	loadActorAnim2(OBJECT_CHAMBER, "s3r2d6", 0xb4, 0x75, 0);
-	playSoundEffectIndex(SND_DOOR1);
+	playSoundEffectIndex(kSfxDoor);
 	_awayMission->love.chamberHasDish = false;
 }
 
@@ -574,7 +574,7 @@ void Room::love1MccoyUsedReplicator() {
 	if (_roomVar.love.itemInNozzle == OBJECT_INH3) {
 		loadActorStandAnim(OBJECT_DISH_IN_CHAMBER);
 		loadActorAnim2(OBJECT_CHAMBER, "s3r2d6", 0xb4, 0x75, 7);
-		playSoundEffectIndex(SND_DOOR1);
+		playSoundEffectIndex(kSfxDoor);
 		walkCrewman(OBJECT_MCCOY, 0xbf, 0x98, 0);
 	} else {
 		showText(TX_SPEAKER_MCCOY, 19, true);
@@ -584,7 +584,7 @@ void Room::love1MccoyUsedReplicator() {
 
 void Room::love1ChamberClosed() {
 	loadActorAnim2(OBJECT_CHAMBER, "s3r2d5", 0xb4, 0x75, 8);
-	playSoundEffectIndex(SND_DOOR1);
+	playSoundEffectIndex(kSfxDoor);
 }
 
 void Room::love1ChamberOpened() {
@@ -606,7 +606,7 @@ void Room::love1KirkReachedChamberToPut() {
 		showText(TX_SPEAKER_MCCOY, 14, true); // TODO: test
 	else {
 		loadActorAnim(OBJECT_CHAMBER, "s3r2d5", 0xb4, 0x75, 1);
-		playSoundEffectIndex(SND_DOOR1);
+		playSoundEffectIndex(kSfxDoor);
 	}
 }
 
@@ -685,7 +685,7 @@ void Room::love1CrewmanOpenedOrClosedFreezer() {
 	else
 		loadActorAnim(OBJECT_FREEZER, "s3r2d4", 0x67, 0x8d, 0);
 
-	playSoundEffectIndex(SND_DOOR1);
+	playSoundEffectIndex(kSfxDoor);
 	_awayMission->love.freezerOpen = !_awayMission->love.freezerOpen;
 
 	walkCrewman(_roomVar.love.crewmanUsingDevice, _roomVar.love.crewmanUsingFreezerRetX, _roomVar.love.crewmanUsingFreezerRetY, 0);
@@ -768,7 +768,7 @@ void Room::love1CrewmanReachedLadder() {
 		loadRoomIndex(4, 3);
 	else { // Romulans still conscious, they shoot you
 		loadActorAnim(OBJECT_PHASERSHOT, "s3r2s2", 0xf3, 0x89, 0);
-		playSoundEffectIndex(SND_PHASSHOT);
+		playSoundEffectIndex(kSfxPhaser);
 
 		Common::String anim = getCrewmanAnimFilename(_roomVar.love.crewmanUsingDevice, "killw");
 		loadActorAnim(_roomVar.love.crewmanUsingDevice, anim, 0x102, 0x89, 6);
@@ -792,7 +792,7 @@ void Room::love1TouchedHotspot0() {
 	if (_awayMission->love.romulansUnconsciousFromLaughingGas || _awayMission->love.romulansUnconsciousFromVirus)
 		return;
 	loadActorAnim(OBJECT_PHASERSHOT, "s3r2s1", 0xf3, 0x89, 0);
-	playSoundEffectIndex(SND_PHASSHOT);
+	playSoundEffectIndex(kSfxPhaser);
 	if (!_awayMission->redshirtDead)
 		showText(TX_SPEAKER_FERRIS, 28, true);
 }
diff --git a/engines/startrek/rooms/love2.cpp b/engines/startrek/rooms/love2.cpp
index 395fac045d..dde23a835d 100644
--- a/engines/startrek/rooms/love2.cpp
+++ b/engines/startrek/rooms/love2.cpp
@@ -299,7 +299,7 @@ void Room::love2Tick1() {
 
 void Room::love2TouchedWarp1() {
 	_awayMission->disableInput = true;
-	playSoundEffectIndex(SND_DOOR1);
+	playSoundEffectIndex(kSfxDoor);
 	_awayMission->timers[3] = 10;
 }
 
@@ -317,7 +317,7 @@ void Room::love2WalkToDoor() {
 void Room::love2TouchedHotspot0() {
 	if (_roomVar.love.walkingToDoor) {
 		loadActorAnim(OBJECT_DOOR, "s3r3d3", 0x12a, 0xb5, 1);
-		playSoundEffectIndex(SND_DOOR1);
+		playSoundEffectIndex(kSfxDoor);
 	}
 }
 
@@ -464,7 +464,7 @@ void Room::love2CrewmanAccessedCabinet() {
 	else
 		loadActorAnim2(OBJECT_CABINET, "s3r3d1", 0x1e, 0xaf, 2);
 
-	playSoundEffectIndex(SND_DOOR1);
+	playSoundEffectIndex(kSfxDoor);
 
 	if (_awayMission->love.cabinetOpen)
 		loadActorStandAnim(OBJECT_ANTIGRAV);
@@ -688,7 +688,7 @@ void Room::love2UseSynthesizer() {
 				switch (_awayMission->love.synthesizerContents) {
 				case SYNTHITEM_PBC: // Romulan Laughing Gas
 					loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d5", -1, -1, 27); // -> love2ClosedSynthesizerDoorMakingRLG
-					playSoundEffectIndex(SND_DOOR1);
+					playSoundEffectIndex(kSfxDoor);
 					loadActorStandAnim(OBJECT_POLYBERYLCARBONATE);
 					break;
 
@@ -698,7 +698,7 @@ void Room::love2UseSynthesizer() {
 					loadActorStandAnim(OBJECT_VIRUSSAMPLE);
 					// Close synthesizer door
 					loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d5", 0x8a, 0x8d, 0);
-					playSoundEffectIndex(SND_DOOR1);
+					playSoundEffectIndex(kSfxDoor);
 					_awayMission->love.synthesizerContents = 0;
 					break;
 
@@ -708,7 +708,7 @@ void Room::love2UseSynthesizer() {
 					loadActorStandAnim(OBJECT_CURESAMPLE);
 					// Close synthesizer door
 					loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d5", 0x8a, 0x8d, 0);
-					playSoundEffectIndex(SND_DOOR1);
+					playSoundEffectIndex(kSfxDoor);
 					_awayMission->love.synthesizerContents = 0;
 					break;
 
@@ -722,7 +722,7 @@ void Room::love2UseSynthesizer() {
 					strcpy(_roomVar.love.chamberOutputAnim, "btle3");
 					// Produce bottle
 					loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d2", 0x8a, 0x8d, 3); // -> love2SynthesizerDoorClosed
-					playSoundEffectIndex(SND_DOOR1);
+					playSoundEffectIndex(kSfxDoor);
 					break;
 				}
 			} else if (c1 == CANTYPE_H2 && c2 == CANTYPE_N2) {
@@ -733,7 +733,7 @@ void Room::love2UseSynthesizer() {
 					loadActorStandAnim(OBJECT_POLYBERYLCARBONATE);
 					// Close synthesizer door
 					loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d5", 0x8a, 0x8d, 0);
-					playSoundEffectIndex(SND_DOOR1);
+					playSoundEffectIndex(kSfxDoor);
 					_awayMission->love.synthesizerContents = 0;
 					break;
 
@@ -744,14 +744,14 @@ void Room::love2UseSynthesizer() {
 					loadActorStandAnim(OBJECT_VIRUSSAMPLE);
 					// Close synthesizer door
 					loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d5", 0x8a, 0x8d, 0);
-					playSoundEffectIndex(SND_DOOR1);
+					playSoundEffectIndex(kSfxDoor);
 					_awayMission->love.synthesizerContents = 0;
 					break;
 
 				case SYNTHITEM_CURE_SAMPLE: // Cure
 					loadActorStandAnim(OBJECT_CURESAMPLE);
 					loadActorAnim2(OBJECT_SYNTHESIZER_DOOR, "s3r3d5", 0x8a, 0x8d, 8); // -> love2ClosedSynthesizerDoorMakingCure
-					playSoundEffectIndex(SND_DOOR1);
+					playSoundEffectIndex(kSfxDoor);
 					break;
 
 				case SYNTHITEM_BOTTLE: // Nothing happens
@@ -764,7 +764,7 @@ void Room::love2UseSynthesizer() {
 					strcpy(_roomVar.love.chamberOutputAnim, "btle2");
 					// Produce bottle
 					loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d2", 0x8a, 0x8d, 3); // -> love2SynthesizerDoorClosed
-					playSoundEffectIndex(SND_DOOR1);
+					playSoundEffectIndex(kSfxDoor);
 					break;
 				}
 			} else if (c1 == CANTYPE_O2 && c2 == CANTYPE_N2) {
@@ -775,7 +775,7 @@ void Room::love2UseSynthesizer() {
 					loadActorStandAnim(OBJECT_POLYBERYLCARBONATE);
 					// Close synthesizer door
 					loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d5", 0x8a, 0x8d, 0);
-					playSoundEffectIndex(SND_DOOR1);
+					playSoundEffectIndex(kSfxDoor);
 					_awayMission->love.synthesizerContents = 0;
 					break;
 
@@ -785,7 +785,7 @@ void Room::love2UseSynthesizer() {
 					loadActorStandAnim(OBJECT_VIRUSSAMPLE);
 					// Close synthesizer door
 					loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d5", 0x8a, 0x8d, 0);
-					playSoundEffectIndex(SND_DOOR1);
+					playSoundEffectIndex(kSfxDoor);
 					_awayMission->love.synthesizerContents = 0;
 					break;
 
@@ -795,7 +795,7 @@ void Room::love2UseSynthesizer() {
 					loadActorStandAnim(OBJECT_CURESAMPLE);
 					// Close synthesizer door
 					loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d5", 0x8a, 0x8d, 0);
-					playSoundEffectIndex(SND_DOOR1);
+					playSoundEffectIndex(kSfxDoor);
 					_awayMission->love.synthesizerContents = 0;
 					break;
 
@@ -809,7 +809,7 @@ void Room::love2UseSynthesizer() {
 					strcpy(_roomVar.love.chamberOutputAnim, "btle1");
 					// Produce bottle
 					loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d2", 0x8a, 0x8d, 3); // -> love2SynthesizerDoorClosed
-					playSoundEffectIndex(SND_DOOR1);
+					playSoundEffectIndex(kSfxDoor);
 					break;
 				}
 			}
@@ -870,7 +870,7 @@ void Room::love2ClosedSynthesizerDoorMakingRLG() {
 	_awayMission->love.synthesizerBottleIndex = BOTTLETYPE_RLG;
 	strcpy(_roomVar.love.chamberOutputAnim, "btle4");
 	loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d2", 0x8a, 0x8d, 3); // -> love2SynthesizerDoorClosed
-	playSoundEffectIndex(SND_DOOR1);
+	playSoundEffectIndex(kSfxDoor);
 }
 
 // Synthesizer door closed, using N2 + O2 on cure sample
@@ -899,7 +899,7 @@ void Room::love2KirkReachedSynthesizerWithPolyberylcarbonate() {
 		showDescription(25, true);
 	else {
 		loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d2", 0x8a, 0x8d, 5);
-		playSoundEffectIndex(SND_DOOR1);
+		playSoundEffectIndex(kSfxDoor);
 	}
 }
 
@@ -925,7 +925,7 @@ void Room::love2KirkReachedSynthesizerWithVirusSample() {
 		showDescription(25, true);
 	else {
 		loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d2", 0x8a, 0x8d, 6);
-		playSoundEffectIndex(SND_DOOR1);
+		playSoundEffectIndex(kSfxDoor);
 	}
 }
 
@@ -951,7 +951,7 @@ void Room::love2KirkReachedSynthesizerWithCureSample() {
 		showDescription(25, true); // BUGFIX: original didn't play audio
 	else {
 		loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d2", 0x8a, 0x8d, 7);
-		playSoundEffectIndex(SND_DOOR1);
+		playSoundEffectIndex(kSfxDoor);
 	}
 }
 
@@ -1015,7 +1015,7 @@ void Room::love2GotPolyberylcarbonate() {
 	giveItem(OBJECT_IPBC);
 	_awayMission->love.synthesizerContents = 0;
 	loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d5", 0x8a, 0x8d, 0);
-	playSoundEffectIndex(SND_DOOR1);
+	playSoundEffectIndex(kSfxDoor);
 }
 
 
@@ -1035,7 +1035,7 @@ void Room::love2GotDishes() {
 	giveItem(OBJECT_IDISHES);
 	_awayMission->love.synthesizerContents = 0;
 	loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d5", 0x8a, 0x8d, 0);
-	playSoundEffectIndex(SND_DOOR1);
+	playSoundEffectIndex(kSfxDoor);
 }
 
 
@@ -1055,7 +1055,7 @@ void Room::love2GotSample() {
 	giveItem(OBJECT_ISAMPLE);
 	_awayMission->love.synthesizerContents = 0;
 	loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d5", 0x8a, 0x8d, 0);
-	playSoundEffectIndex(SND_DOOR1);
+	playSoundEffectIndex(kSfxDoor);
 }
 
 
@@ -1099,7 +1099,7 @@ void Room::love2GotSynthesizerOutput() {
 
 	loadActorStandAnim(OBJECT_SYNTHESIZER_OUTPUT);
 	loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d5", 0x8a, 0x8d, 0);
-	playSoundEffectIndex(SND_DOOR1);
+	playSoundEffectIndex(kSfxDoor);
 
 	_awayMission->love.synthesizerContents = 0;
 	_awayMission->love.synthesizerBottleIndex = 0;
@@ -1126,7 +1126,7 @@ void Room::love2GotCure() {
 	showDescription(43, true);
 
 	loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d5", 0x8a, 0x8d, 0);
-	playSoundEffectIndex(SND_DOOR1);
+	playSoundEffectIndex(kSfxDoor);
 	_awayMission->love.synthesizerContents = 0;
 }
 
diff --git a/engines/startrek/rooms/love3.cpp b/engines/startrek/rooms/love3.cpp
index fe7871efbd..32512ae283 100644
--- a/engines/startrek/rooms/love3.cpp
+++ b/engines/startrek/rooms/love3.cpp
@@ -200,7 +200,7 @@ void Room::love3Tick80() {
 
 void Room::love3TouchedWarp1() {
 	_awayMission->disableInput = true;
-	playSoundEffectIndex(SND_DOOR1);
+	playSoundEffectIndex(kSfxDoor);
 	_awayMission->timers[3] = 10;
 }
 
diff --git a/engines/startrek/rooms/love4.cpp b/engines/startrek/rooms/love4.cpp
index d9c4b0ab9c..5b8e57f8f6 100644
--- a/engines/startrek/rooms/love4.cpp
+++ b/engines/startrek/rooms/love4.cpp
@@ -170,7 +170,7 @@ void Room::love4WalkToDoor() {
 void Room::love4TouchedHotspot0() {
 	if (_roomVar.love.walkingToDoor) {
 		loadActorAnimC(OBJECT_DOOR, "s3r5d1", 0x90, 0x99, &Room::love4DoorOpenedOrReached);
-		playSoundEffectIndex(SND_DOOR1);
+		playSoundEffectIndex(kSfxDoor);
 	}
 }
 
diff --git a/engines/startrek/rooms/love5.cpp b/engines/startrek/rooms/love5.cpp
index 28feb041c2..f5fbe0c58f 100644
--- a/engines/startrek/rooms/love5.cpp
+++ b/engines/startrek/rooms/love5.cpp
@@ -128,7 +128,7 @@ void Room::love5Tick1() {
 
 void Room::love5TouchedWarp1() {
 	_awayMission->disableInput = true;
-	playSoundEffectIndex(SND_DOOR1);
+	playSoundEffectIndex(kSfxDoor);
 	_awayMission->timers[4] = 10;
 }
 
diff --git a/engines/startrek/rooms/lovea.cpp b/engines/startrek/rooms/lovea.cpp
index 3fd2dd795b..85b26f4e46 100644
--- a/engines/startrek/rooms/lovea.cpp
+++ b/engines/startrek/rooms/lovea.cpp
@@ -141,7 +141,7 @@ void Room::loveaTimer2Expired() {
 void Room::loveaUseMTricorderOnSpock() {
 	// Mccoy doesn't do his animation, I guess because he doesn't know which way to face?
 	// (possible future enhancement?)
-	playSoundEffectIndex(SND_TRICORDER);
+	playSoundEffectIndex(kSfxTricorder);
 
 	if (_awayMission->love.spockCured)
 		showText(TX_SPEAKER_MCCOY, 1 + COMMON_MESSAGE_OFFSET, true);
@@ -162,7 +162,7 @@ void Room::loveaUseMTricorderOnSpock() {
 }
 
 void Room::loveaUseMTricorderOnHuman() {
-	playSoundEffectIndex(SND_TRICORDER);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_MCCOY, 7 + COMMON_MESSAGE_OFFSET, true);
 }
 
diff --git a/engines/startrek/rooms/mudd0.cpp b/engines/startrek/rooms/mudd0.cpp
index 14f2fc5ef4..3c0bd76eb8 100644
--- a/engines/startrek/rooms/mudd0.cpp
+++ b/engines/startrek/rooms/mudd0.cpp
@@ -177,7 +177,7 @@ void Room::mudd0LookAtLense() {
 void Room::mudd0UseSTricorderAnywhere() {
 	// Narrator says something, not Spock (so we don't use "spockScan" function)
 	loadActorAnim2(OBJECT_SPOCK, "sscans", -1, -1, 0);
-	playSoundEffectIndex(SND_TRICORDER);
+	playSoundEffectIndex(kSfxTricorder);
 	showDescription(15, true);
 }
 
@@ -186,7 +186,7 @@ void Room::mudd0UseMTricorderAnywhere() {
 	// BUGFIX-ish: original game had "McCoy" as the speaker, which is inconsistent with
 	// above.
 	loadActorAnim2(OBJECT_MCCOY, "mscans", -1, -1, 0);
-	playSoundEffectIndex(SND_TRICORDER);
+	playSoundEffectIndex(kSfxTricorder);
 	showDescription(15, true);
 }
 
@@ -198,7 +198,7 @@ void Room::mudd0UseSTricorderOnDegrimerBox() {
 	// Narrator says something, not Spock (so we don't use "spockScan" function)
 	_awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_W;
 	loadActorAnim2(OBJECT_SPOCK, "sscanw", -1, -1, 0);
-	playSoundEffectIndex(SND_TRICORDER);
+	playSoundEffectIndex(kSfxTricorder);
 	showDescription(0, true);
 }
 
diff --git a/engines/startrek/rooms/mudd1.cpp b/engines/startrek/rooms/mudd1.cpp
index f2c61986a2..5c33501180 100644
--- a/engines/startrek/rooms/mudd1.cpp
+++ b/engines/startrek/rooms/mudd1.cpp
@@ -123,7 +123,7 @@ void Room::mudd1Tick1() {
 }
 
 void Room::mudd1Timer1Expired() {
-	playSoundEffectIndex(SND_07);
+	playSoundEffectIndex(kSfxButton);
 }
 
 void Room::mudd1UseCommunicator() {
diff --git a/engines/startrek/rooms/mudd2.cpp b/engines/startrek/rooms/mudd2.cpp
index 99be04be24..cbfa5af271 100644
--- a/engines/startrek/rooms/mudd2.cpp
+++ b/engines/startrek/rooms/mudd2.cpp
@@ -332,7 +332,6 @@ void Room::mudd2RedshirtReachedMudd() {
 }
 
 void Room::mudd2Timer2Expired() {
-	playSoundEffectIndex(SND_BLANK_0b);
 }
 
 void Room::mudd2MuddFinishedPushingRedshirt() {
diff --git a/engines/startrek/rooms/mudd3.cpp b/engines/startrek/rooms/mudd3.cpp
index 6f8bc64a2a..f27f04d8ba 100644
--- a/engines/startrek/rooms/mudd3.cpp
+++ b/engines/startrek/rooms/mudd3.cpp
@@ -277,7 +277,7 @@ void Room::mudd3ReadyToHookUpTricorders() {
 	_awayMission->timers[1] = 50;
 
 	loadActorAnim2(OBJECT_SPOCK, "sscans");
-	playSoundEffectIndex(SND_TRICORDER);
+	playSoundEffectIndex(kSfxTricorder);
 }
 
 void Room::mudd3Timer1Expired() { // Tricorders ready for use again
diff --git a/engines/startrek/rooms/mudd4.cpp b/engines/startrek/rooms/mudd4.cpp
index 1a837f9b9c..a8db98643b 100644
--- a/engines/startrek/rooms/mudd4.cpp
+++ b/engines/startrek/rooms/mudd4.cpp
@@ -132,11 +132,11 @@ void Room::mudd4UseCommunicator() {
 }
 
 void Room::mudd4Timer2Expired() {
-	playSoundEffectIndex(SND_07);
+	playSoundEffectIndex(kSfxButton);
 }
 
 void Room::mudd4Timer3Expired() {
-	playSoundEffectIndex(SND_TRANSENE);
+	playSoundEffectIndex(kSfxTransporterEnergize);
 }
 
 void Room::mudd4UseSpockOnLeftConsole() {
diff --git a/engines/startrek/rooms/sins1.cpp b/engines/startrek/rooms/sins1.cpp
index 79e9a83b5f..357b9fe3e8 100644
--- a/engines/startrek/rooms/sins1.cpp
+++ b/engines/startrek/rooms/sins1.cpp
@@ -240,7 +240,7 @@ void Room::sins1EnteredSacredSofNumber() {
 	_awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_W;
 	walkCrewman(OBJECT_SPOCK, 0xf3, 0xad);
 	loadActorAnimC(OBJECT_9, "s1ph1", 0, 0, &Room::sins1DoorUsedLaser);
-	playSoundEffectIndex(SND_PHASSHOT);
+	playSoundEffectIndex(kSfxPhaser);
 }
 
 void Room::sins1UsePhaserOnDoor() {
diff --git a/engines/startrek/rooms/sins3.cpp b/engines/startrek/rooms/sins3.cpp
index efeb17edfe..8ed43fa872 100644
--- a/engines/startrek/rooms/sins3.cpp
+++ b/engines/startrek/rooms/sins3.cpp
@@ -216,7 +216,6 @@ void Room::sins3KirkReachedBox() {
 
 // Plays a sound effect at a specific time while opening the box
 void Room::sins3Timer0Expired() {
-	playSoundEffectIndex(SND_0c);
 }
 
 void Room::sins3UseSpockOnBox() {
@@ -340,17 +339,17 @@ void Room::sins3SpockReachedPanel() {
 				if (_awayMission->sins.laserPattern == 0 && _awayMission->sins.laserSetting == 3) {
 					// This code is unreachable, as the same condition was checked above
 					loadActorAnimC(OBJECT_ITEM, "s3las2", 0, 0, &Room::sins3MadeHoleInRock);
-					playSoundEffectIndex(SND_PHASSHOT);
+					playSoundEffectIndex(kSfxPhaser);
 					_awayMission->sins.moldState = -1;
 				} else if (_awayMission->sins.laserPattern == 1 && _awayMission->sins.laserSetting == 3) {
 					// Strong laser creates the needed mold
 					loadActorAnimC(OBJECT_ITEM, "s3las3", 0, 0, &Room::sins3CreatedTemplateInRock);
-					playSoundEffectIndex(SND_PHASSHOT);
+					playSoundEffectIndex(kSfxPhaser);
 					_awayMission->sins.moldState = 2;
 				} else {
 					// Weak laser does nothing to the rock
 					loadActorAnimC(OBJECT_ITEM, "s3las1", 0, 0, &Room::sins3UsedLowPowerLaserOnRock);
-					playSoundEffectIndex(SND_PHASSHOT);
+					playSoundEffectIndex(kSfxPhaser);
 				}
 			} else if (_awayMission->sins.moldState == 3) { // There's a rock sitting on the mold
 				loadActorAnim2(OBJECT_SPOCK, "susemn");
@@ -359,12 +358,12 @@ void Room::sins3SpockReachedPanel() {
 				if (_awayMission->sins.laserSetting == 1 || _awayMission->sins.laserSetting == 2) {
 					// Weak-setting lasers create the keycard properly
 					loadActorAnimC(OBJECT_ITEM, "s3las4", 0, 0, &Room::sins3RockTurnedIntoIDCard);
-					playSoundEffectIndex(SND_PHASSHOT);
+					playSoundEffectIndex(kSfxPhaser);
 					_awayMission->sins.moldState = 4;
 				} else if (_awayMission->sins.laserSetting == 3) {
 					// High-setting laser vaporizes the rocks
 					loadActorAnimC(OBJECT_ITEM, "s3las5", 0, 0, &Room::sins3RockVaporized);
-					playSoundEffectIndex(SND_PHASSHOT);
+					playSoundEffectIndex(kSfxPhaser);
 					_awayMission->sins.moldState = 2;
 					_awayMission->sins.laserPattern = 1;
 				}
diff --git a/engines/startrek/rooms/sins5.cpp b/engines/startrek/rooms/sins5.cpp
index 9aa3e1fca3..32f74059da 100644
--- a/engines/startrek/rooms/sins5.cpp
+++ b/engines/startrek/rooms/sins5.cpp
@@ -332,7 +332,7 @@ void Room::sins5ReachedPositionToShootLeftComputer() {
 
 void Room::sins5DrewPhaserToShootLeftComputer() {
 	loadActorAnimC(OBJECT_LEFT_COMPUTER_EXPLOSION, "s5phal", 0, 0xaf, &Room::sins5ComputerLaunchesMissiles);
-	playSoundEffectIndex(SND_PHASSHOT);
+	playSoundEffectIndex(kSfxPhaser);
 	_awayMission->timers[3] = 10;
 	_awayMission->timers[0] = 24;
 }
@@ -355,7 +355,7 @@ void Room::sins5ReachedPositionToShootMiddleComputer() {
 
 void Room::sins5DrewPhaserToShootMiddleComputer() {
 	loadActorAnimC(OBJECT_MIDDLE_COMPUTER_EXPLOSION, "s5phac", 0, 0x8c, &Room::sins5ComputerLaunchesMissiles);
-	playSoundEffectIndex(SND_PHASSHOT);
+	playSoundEffectIndex(kSfxPhaser);
 	_awayMission->timers[3] = 10;
 	_awayMission->timers[1] = 24;
 }
@@ -378,7 +378,7 @@ void Room::sins5ReachedPositionToShootRightComputer() {
 
 void Room::sins5DrewPhaserToShootRightComputer() {
 	loadActorAnimC(OBJECT_RIGHT_COMPUTER_EXPLOSION, "s5phar", 0, 0xaf, &Room::sins5ComputerLaunchesMissiles);
-	playSoundEffectIndex(SND_PHASSHOT);
+	playSoundEffectIndex(kSfxPhaser);
 	_awayMission->timers[3] = 10;
 	_awayMission->timers[2] = 24;
 }
@@ -397,7 +397,6 @@ void Room::sins5ComputerLaunchesMissiles() {
 }
 
 void Room::sins5Timer3Expired() {
-	playSoundEffectIndex(SND_BLANK_14);
 }
 
 void Room::sins5LookAnywhere() {
diff --git a/engines/startrek/rooms/trial1.cpp b/engines/startrek/rooms/trial1.cpp
index 9551b4b4b7..e273918f54 100644
--- a/engines/startrek/rooms/trial1.cpp
+++ b/engines/startrek/rooms/trial1.cpp
@@ -320,7 +320,7 @@ void Room::trial1UseStunPhaserOnFloor() {
 }
 
 void Room::trial1ReachedFloorToUseStunPhaser() {
-	playSoundEffectIndex(SND_PHASSHOT);
+	playSoundEffectIndex(kSfxPhaser);
 	loadActorAnimC(OBJECT_KIRK, "t1mlts", 0xca, 0xbc, &Room::trial1DoneShootingFloorWithStunPhaser);
 }
 
@@ -338,7 +338,7 @@ void Room::trial1UseKillPhaserOnFloor() {
 }
 
 void Room::trial1ReachedFloorToUseKillPhaser() {
-	playSoundEffectIndex(SND_PHASSHOT);
+	playSoundEffectIndex(kSfxPhaser);
 	loadActorAnimC(OBJECT_KIRK, "t1mltk", 0xca, 0xbc, &Room::trial1DoneShootingFloorWithKillPhaser);
 }
 
@@ -529,20 +529,20 @@ void Room::trial1UseSpockOnLock() {
 }
 
 void Room::trial1SpockReachedKeypad() { // Spock opens the door
-	playSoundEffectIndex(SND_07);
+	playSoundEffectIndex(kSfxButton);
 	loadActorAnimC(OBJECT_SPOCK, "susemw", -1, -1, &Room::trial1SpockUsedKeypad);
 }
 
 void Room::trial1SpockUsedKeypad() {
 	_awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_W;
 	loadActorStandAnim(OBJECT_SPOCK);
-	playSoundEffectIndex(SND_DOOR1);
+	playSoundEffectIndex(kSfxDoor);
 	loadActorAnimC(OBJECT_DOOR, "t1drco", -1, -1, &Room::trial1DoorOpened);
 	_awayMission->trial.doorOpen = true;
 }
 
 void Room::trial1SpockReachedKeypadWithExtraProgram() { // Spock activates the unknown program
-	playSoundEffectIndex(SND_07);
+	playSoundEffectIndex(kSfxButton);
 	loadActorAnimC(OBJECT_SPOCK, "susemw", -1, -1, &Room::trial1SpockUsedKeypadWithExtraProgram);
 }
 
@@ -578,20 +578,20 @@ void Room::trial1UseRedshirtOnLock() {
 }
 
 void Room::trial1RedshirtReachedKeypad() { // Redshirt opens the lock
-	playSoundEffectIndex(SND_07);
+	playSoundEffectIndex(kSfxButton);
 	loadActorAnimC(OBJECT_REDSHIRT, "rusemw", -1, -1, &Room::trial1RedshirtUsedKeypad);
 }
 
 void Room::trial1RedshirtUsedKeypad() {
 	_awayMission->crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_W;
 	loadActorStandAnim(OBJECT_REDSHIRT);
-	playSoundEffectIndex(SND_DOOR1);
+	playSoundEffectIndex(kSfxDoor);
 	loadActorAnimC(OBJECT_DOOR, "t1drco", -1, -1, &Room::trial1DoorOpened);
 	_awayMission->trial.doorOpen = true;
 }
 
 void Room::trial1RedshirtReachedKeypadWithExtraProgram() {
-	playSoundEffectIndex(SND_07);
+	playSoundEffectIndex(kSfxButton);
 	loadActorAnimC(OBJECT_REDSHIRT, "rusemw", -1, -1, &Room::trial1RedshirtUsedKeypadWithExtraProgram);
 }
 
diff --git a/engines/startrek/rooms/trial2.cpp b/engines/startrek/rooms/trial2.cpp
index dbf96ce480..d00912162c 100644
--- a/engines/startrek/rooms/trial2.cpp
+++ b/engines/startrek/rooms/trial2.cpp
@@ -245,7 +245,7 @@ void Room::trial2DrewPhaserToShootGlob() {
 	int index = _roomVar.trial.globBeingShot - OBJECT_GLOB;
 
 	_awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_W;
-	playSoundEffectIndex(SND_PHASSHOT);
+	playSoundEffectIndex(kSfxPhaser);
 	if (_roomVar.trial.phaserOnKill)
 		showBitmapFor5Ticks(killPhaserAnims[index], 5);
 	else
@@ -277,7 +277,6 @@ void Room::trial2DrewPhaserToShootGlob() {
 		playVoc("GLOBEDIV");
 		loadActorAnimC(_roomVar.trial.globBeingShot, "globsp", globPositions[index].x, globPositions[index].y, &Room::trial2GlobDoneSplitting);
 	} else if (_awayMission->trial.globEnergyLevels[index] >= 4) {
-		playSoundEffectIndex(SND_BLANK_14);
 		playVoc("REDBALL");
 		loadActorAnimC(_roomVar.trial.globBeingShot, "globex", globPositions[index].x, globPositions[index].y, &Room::trial2GlobDoneExploding);
 	}
diff --git a/engines/startrek/rooms/trial3.cpp b/engines/startrek/rooms/trial3.cpp
index 02a3e43c00..70600e43ba 100644
--- a/engines/startrek/rooms/trial3.cpp
+++ b/engines/startrek/rooms/trial3.cpp
@@ -134,12 +134,12 @@ void Room::trial3Klingon3BeamedIn() {
 void Room::trial3KlingonShootsSomeone1() {
 	_awayMission->trial.klingonShootIndex++;
 	if (_awayMission->trial.klingonShootIndex == 1) {
-		playSoundEffectIndex(SND_PHASSHOT);
+		playSoundEffectIndex(kSfxPhaser);
 		showBitmapFor5Ticks("t3phas04", 5);
 		loadActorAnimC(OBJECT_REDSHIRT, "rkillw", -1, -1, &Room::trial3RedshirtDoneDying);
 		_awayMission->redshirtDead = true;
 	} else if (_awayMission->trial.klingonShootIndex == 2) {
-		playSoundEffectIndex(SND_PHASSHOT);
+		playSoundEffectIndex(kSfxPhaser);
 		showBitmapFor5Ticks("t3phas05", 5);
 		playMidiMusicTracks(MIDITRACK_2, -1);
 		loadActorAnimC(OBJECT_KIRK, "kkillw", -1, -1, &Room::trial3KirkDoneDying);
@@ -166,12 +166,12 @@ void Room::trial3KlingonShootsSomeone2() {
 	// one line differs...
 	_awayMission->trial.klingonShootIndex++;
 	if (_awayMission->trial.klingonShootIndex == 1) {
-		playSoundEffectIndex(SND_PHASSHOT);
+		playSoundEffectIndex(kSfxPhaser);
 		showBitmapFor5Ticks("t3phas04", 5);
 		loadActorAnimC(OBJECT_REDSHIRT, "rkillw", -1, -1, &Room::trial3RedshirtDoneDying);
 		_awayMission->redshirtDead = true;
 	} else if (_awayMission->trial.klingonShootIndex == 2) {
-		playSoundEffectIndex(SND_PHASSHOT);
+		playSoundEffectIndex(kSfxPhaser);
 		showBitmapFor5Ticks("t3phas05", 5);
 		// NOTE: Only difference to "trial3KlingonShootsSomeone1" is this doesn't play a midi track?
 		loadActorAnimC(OBJECT_KIRK, "kkillw", -1, -1, &Room::trial3KirkDoneDying);
@@ -239,7 +239,7 @@ void Room::trial3CrewmanBeamedOut() {
 
 void Room::trial3Tick90() {
 	if ((!(_awayMission->trial.shotKlingons & 8) && _awayMission->trial.shotKlingonState != 20)) {
-		playSoundEffectIndex(SND_TRANSMAT);
+		playSoundEffectIndex(kSfxTransporterMaterialize);
 		playMidiMusicTracks(MIDITRACK_32, -1);
 		loadActorAnimC(OBJECT_KLINGON_1, "t3ktel", 0x57, 0xb1, &Room::trial3Klingon1BeamedIn);
 		_awayMission->trial.shotKlingonState = 21;
@@ -247,7 +247,6 @@ void Room::trial3Tick90() {
 }
 
 void Room::trial3TouchedHotspot3() { // Activated the explosive
-	playSoundEffectIndex(SND_BLANK_14);
 	playMidiMusicTracks(MIDITRACK_2, -1);
 	playVoc("BITOKIRK");
 	loadActorAnimC(OBJECT_EXPLOSION, "t3expl", 0, 0xc7, &Room::trial3KirkExploded);
@@ -314,7 +313,7 @@ void Room::trial3UseStunPhaserOnKlingon1() {
 
 void Room::trial3ReadyToShootKlingon1OnStun() {
 	if (_awayMission->trial.shotKlingonState == 21) {
-		playSoundEffectIndex(SND_PHASSHOT);
+		playSoundEffectIndex(kSfxPhaser);
 		showBitmapFor5Ticks("t3phas00", 5);
 		loadActorAnimC(OBJECT_KLINGON_1, "t3kstn", -1, -1, &Room::trial3Klingon1Shot);
 		_awayMission->disableInput = false;
@@ -334,7 +333,7 @@ void Room::trial3UseKillPhaserOnKlingon1() {
 
 void Room::trial3ReadyToShootKlingon1OnKill() {
 	if (_awayMission->trial.shotKlingonState == 21) {
-		playSoundEffectIndex(SND_PHASSHOT);
+		playSoundEffectIndex(kSfxPhaser);
 		showBitmapFor5Ticks("t3phas02", 5);
 		loadActorAnimC(OBJECT_KLINGON_1, "t3kdie", -1, -1, &Room::trial3Klingon1Shot);
 		_awayMission->disableInput = false;
@@ -413,7 +412,7 @@ void Room::trial3BeamToVlict() {
 	showText(TX_SPEAKER_UHURA, TX_TRI1U080);
 
 	_awayMission->disableInput = true;
-	playSoundEffectIndex(SND_TRANSDEM);
+	playSoundEffectIndex(kSfxTransporterDematerialize);
 
 	loadActorAnimC(OBJECT_KIRK,  "kteled", -1, -1, &Room::trial3CrewmanBeamedOut);
 	loadActorAnimC(OBJECT_SPOCK, "steled", -1, -1, &Room::trial3CrewmanBeamedOut);
diff --git a/engines/startrek/rooms/trial5.cpp b/engines/startrek/rooms/trial5.cpp
index 7163247a8c..1baffb2956 100644
--- a/engines/startrek/rooms/trial5.cpp
+++ b/engines/startrek/rooms/trial5.cpp
@@ -575,7 +575,7 @@ void Room::trial5ReachedHoleToPutGem() {
 			showText(TX_SPEAKER_LIGHT_OF_TRAVEL, 46, true);
 
 			_awayMission->disableInput = true;
-			playSoundEffectIndex(SND_TRANSDEM);
+			playSoundEffectIndex(kSfxTransporterDematerialize);
 
 			loadActorAnimC(OBJECT_KIRK,  "kteled", -1, -1, &Room::trial5CrewmanBeamedOut);
 			loadActorAnimC(OBJECT_SPOCK, "steled", -1, -1, &Room::trial5CrewmanBeamedOut);
@@ -590,17 +590,17 @@ void Room::trial5ReachedHoleToPutGem() {
 }
 
 void Room::trial5ActivateLightOfWar() {
-	playSoundEffectIndex(SND_TRANSENE);
+	playSoundEffectIndex(kSfxTransporterEnergize);
 	loadActorAnim2(OBJECT_BEAM, "redlit", 0, 0);
 }
 
 void Room::trial5ActivateLightOfKnowledge() {
-	playSoundEffectIndex(SND_TRANSENE);
+	playSoundEffectIndex(kSfxTransporterEnergize);
 	loadActorAnim2(OBJECT_BEAM, "grnlit", 0, 0);
 }
 
 void Room::trial5ActivateLightOfTravel() {
-	playSoundEffectIndex(SND_TRANSENE);
+	playSoundEffectIndex(kSfxTransporterEnergize);
 	loadActorAnim2(OBJECT_BEAM, "blulit", 0, 0);
 }
 
@@ -609,7 +609,7 @@ void Room::trial5RestrictedCombination1() {
 	// "trial5RestrictedCombination2" is that this one doesn't show the light of
 	// knowledge.
 	// It's inconsistent, but I guess we can chalk it up to the aliens being mysterious...
-	playSoundEffectIndex(SND_TRANSENE);
+	playSoundEffectIndex(kSfxTransporterEnergize);
 	showText(TX_SPEAKER_LIGHT_OF_KNOWLEDGE, 39, true);
 }
 
diff --git a/engines/startrek/rooms/tug0.cpp b/engines/startrek/rooms/tug0.cpp
index 70049b71a5..102bc5774d 100644
--- a/engines/startrek/rooms/tug0.cpp
+++ b/engines/startrek/rooms/tug0.cpp
@@ -148,7 +148,7 @@ void Room::tug0UseSpockOnControls() {
 
 void Room::tug0SpockReachedControlsToExamine() {
 	loadActorAnim2(OBJECT_SPOCK, "sscane", -1, -1, 17);
-	playSoundEffectIndex(SND_TRICORDER);
+	playSoundEffectIndex(kSfxTricorder);
 }
 
 void Room::tug0SpockExaminedControls() {
@@ -175,7 +175,6 @@ void Room::tug0UseTransmogrifierWithBitOnControls() {
 void Room::tug0SpockReachedControlsWithTransmogrifier() {
 	showText(TX_SPEAKER_SPOCK, 29, true);
 	loadActorAnim2(OBJECT_SPOCK, "susehn", -1, -1, 7);
-	playSoundEffectIndex(SND_BLANK_0b); // FIXME: blank sound?
 }
 
 void Room::tug0SpockFinishedUsingTransmogrifier() {
@@ -334,8 +333,8 @@ void Room::tug0UseTransporter() {
 
 void Room::tug0SpockReachedControlsToTransport() {
 	loadActorAnim2(OBJECT_SPOCK, "susehw", -1, -1, 18);
-	playSoundEffectIndex(SND_07);
-	playSoundEffectIndex(SND_TRANSENE);
+	playSoundEffectIndex(kSfxButton);
+	playSoundEffectIndex(kSfxTransporterEnergize);
 }
 
 void Room::tug0SpockPreparedTransporter() {
@@ -345,7 +344,7 @@ void Room::tug0SpockPreparedTransporter() {
 }
 
 void Room::tug0SpockReachedTransporter() {
-	playSoundEffectIndex(SND_TRANSDEM);
+	playSoundEffectIndex(kSfxTransporterDematerialize);
 	loadActorAnim2(OBJECT_KIRK,     "kteled", -1, -1, 21);
 	loadActorAnim2(OBJECT_SPOCK,    "steled", -1, -1, 0);
 	loadActorAnim2(OBJECT_MCCOY,    "mteled", -1, -1, 0);
@@ -384,17 +383,16 @@ void Room::tug0KirkPlacedBomb() {
 
 void Room::tug0SpockReachedControlsForBomb() {
 	loadActorAnim2(OBJECT_SPOCK, "susehw", -1, -1, 19);
-	playSoundEffectIndex(SND_07);
-	playSoundEffectIndex(SND_TRANSENE);
+	playSoundEffectIndex(kSfxButton);
+	playSoundEffectIndex(kSfxTransporterEnergize);
 }
 
 void Room::tug0SpockBeginsBeamingBomb() {
-	playSoundEffectIndex(SND_TRANSDEM);
+	playSoundEffectIndex(kSfxTransporterDematerialize);
 	loadActorAnim2(10, "bomb2", 0x5a, 0x7f, 12);
 }
 
 void Room::tug0SpockFinishesBeamingBomb() {
-	playSoundEffectIndex(SND_BLANK_14);
 	_awayMission->tug.missionScore = 0;
 	_awayMission->timers[0] = 64;
 }
@@ -419,13 +417,13 @@ void Room::tug0BombExploded() {
 void Room::tug0UseMTricorderOnControls() {
 	_awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_S;
 	loadActorAnim2(OBJECT_MCCOY, "mscans", -1, -1, 0);
-	playSoundEffectIndex(SND_TRICORDER);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_MCCOY, 16, true);
 }
 
 void Room::tug0UseSTricorderOnControls() {
 	loadActorAnim2(OBJECT_SPOCK, "sscans", -1, -1, 23);
-	playSoundEffectIndex(SND_TRICORDER);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, 15, true);
 }
 
@@ -436,7 +434,7 @@ void Room::tug0UseMTricorderOnEngineer() {
 }
 
 void Room::tug0MccoyReachedEngineerToScan() {
-	playSoundEffectIndex(SND_TRICORDER);
+	playSoundEffectIndex(kSfxTricorder);
 	loadActorAnim2(OBJECT_MCCOY, "mscann", -1, -1, 25);
 }
 
@@ -454,7 +452,7 @@ void Room::tug0MccoyFinishedScanningEngineer() {
 void Room::tug0UseSTricorderOnEngineer() {
 	_awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_S;
 	loadActorAnim2(OBJECT_SPOCK, "sscans", -1, -1, 0);
-	playSoundEffectIndex(SND_TRICORDER);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, 30, true);
 }
 
@@ -526,14 +524,14 @@ void Room::tug0LookAnywhere() {
 void Room::tug0UseSTricorderAnywhere() {
 	_awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_S;
 	loadActorAnim2(OBJECT_SPOCK, "sscans", -1, -1, 0);
-	playSoundEffectIndex(SND_TRICORDER);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, 28, true);
 }
 
 void Room::tug0UseMTricorderAnywhere() {
 	_awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_S;
 	loadActorAnim2(OBJECT_MCCOY, "mscans", -1, -1, 0);
-	playSoundEffectIndex(SND_TRICORDER);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_MCCOY, 20, true); // BUG: typo
 }
 
diff --git a/engines/startrek/rooms/tug1.cpp b/engines/startrek/rooms/tug1.cpp
index 35efce1b0f..7d039da808 100644
--- a/engines/startrek/rooms/tug1.cpp
+++ b/engines/startrek/rooms/tug1.cpp
@@ -106,7 +106,7 @@ void Room::tug1Tick1() {
 void Room::tug1UseSTricorderOnAnything() {
 	_awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_N;
 	loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0);
-	playSoundEffectIndex(SND_TRICORDER);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, 14, true);
 
 	// NOTE: this action has a second implementation (which is never called). It displayed
@@ -125,7 +125,7 @@ void Room::tug1UseSTricorderOnBridgeDoor() {
 
 	_awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_N;
 	loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0);
-	playSoundEffectIndex(SND_TRICORDER);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, 2, true);
 }
 
@@ -145,7 +145,7 @@ void Room::tug1KirkReachedFiringPosition() {
 
 void Room::tug1KirkPulledOutPhaser() {
 	loadActorAnim2(OBJECT_PHASERSHOT, "t1phas", 0, 0, 5);
-	playSoundEffectIndex(SND_PHASSHOT);
+	playSoundEffectIndex(kSfxPhaser);
 }
 
 void Room::tug1KirkFinishedFiringPhaser() {
@@ -162,7 +162,7 @@ void Room::tug1TalkToSpock() {
 void Room::tug1UseSTricorderOnJunkPile() {
 	_awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_N;
 	loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0);
-	playSoundEffectIndex(SND_TRICORDER);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, 9, true);
 }
 
@@ -301,7 +301,7 @@ void Room::tug1LookAtBrigDoor() {
 void Room::tug1UseSTricorderOnBrigDoor() {
 	_awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_N;
 	loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0);
-	playSoundEffectIndex(SND_TRICORDER);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, 18, true);
 }
 
@@ -338,21 +338,21 @@ void Room::tug1WalkToBrigDoor() {
 void Room::tug1UseMTricorderAnywhere() {
 	_awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_N;
 	loadActorAnim2(OBJECT_MCCOY, "mscann", -1, -1, 0);
-	playSoundEffectIndex(SND_TRICORDER);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_MCCOY, 3, true);
 }
 
 void Room::tug1UseMTricorderOnBridgeDoor() {
 	_awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_N;
 	loadActorAnim2(OBJECT_MCCOY, "mscann", -1, -1, 0);
-	playSoundEffectIndex(SND_TRICORDER);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_MCCOY, 7, true);
 }
 
 void Room::tug1UseMTricorderOnBrigDoor() {
 	_awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_N;
 	loadActorAnim2(OBJECT_MCCOY, "mscann", -1, -1, 0);
-	playSoundEffectIndex(SND_TRICORDER);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_MCCOY, 5, true);
 }
 
diff --git a/engines/startrek/rooms/tug2.cpp b/engines/startrek/rooms/tug2.cpp
index 662577535d..f1538f6862 100644
--- a/engines/startrek/rooms/tug2.cpp
+++ b/engines/startrek/rooms/tug2.cpp
@@ -380,7 +380,7 @@ void Room::tug2KirkGotWires() {
 		loadActorAnim2(OBJECT_BRIG, "zap", 0, 0, 1);
 		playVoc("NM8EXPLO");
 		loadActorAnim2(OBJECT_BOMB, "t2bbo", -3, 1, 0);
-		playSoundEffectIndex(SND_PHASSHOT);
+		playSoundEffectIndex(kSfxPhaser);
 		playSoundEffectIndex(SND_BLANK_16);
 		_awayMission->tug.field35 = 6;
 		loadActorStandAnim(OBJECT_WIRE);
@@ -407,7 +407,7 @@ void Room::tug2UseKirkOnButton() {
 
 void Room::tug2KirkReachedButton() {
 	loadActorAnim2(OBJECT_KIRK, "kusehe", -1, -1, 15);
-	playSoundEffectIndex(SND_07);
+	playSoundEffectIndex(kSfxButton);
 }
 
 void Room::tug2UseSpockOnButton() {
@@ -420,7 +420,7 @@ void Room::tug2UseSpockOnButton() {
 
 void Room::tug2SpockReachedButton() {
 	loadActorAnim2(OBJECT_SPOCK, "susehe", -1, -1, 17);
-	playSoundEffectIndex(SND_07);
+	playSoundEffectIndex(kSfxButton);
 }
 
 void Room::tug2UseMccoyOnButton() {
@@ -433,7 +433,7 @@ void Room::tug2UseMccoyOnButton() {
 
 void Room::tug2MccoyReachedButton() {
 	loadActorAnim2(OBJECT_MCCOY, "musehe", -1, -1, 19);
-	playSoundEffectIndex(SND_07);
+	playSoundEffectIndex(kSfxButton);
 }
 
 void Room::tug2UseRedshirtOnButton() {
@@ -446,7 +446,7 @@ void Room::tug2UseRedshirtOnButton() {
 
 void Room::tug2RedshirtReachedButton() {
 	loadActorAnim2(OBJECT_REDSHIRT, "rusehe", -1, -1, 21);
-	playSoundEffectIndex(SND_07);
+	playSoundEffectIndex(kSfxButton);
 }
 
 void Room::tug2TurnedOffForceField() {
@@ -524,7 +524,7 @@ void Room::tug2KirkShootGuard1() {
 	if (_awayMission->tug.guard1Status == GUARDSTAT_UP) {
 		loadActorAnim2(OBJECT_GUARD_1, "p5stun", -1, -1, 0);
 		_awayMission->tug.guard1Status = GUARDSTAT_STUNNED;
-		playSoundEffectIndex(SND_PHASSHOT);
+		playSoundEffectIndex(kSfxPhaser);
 		showBitmapFor5Ticks("t2beem03", 5);
 		tug2CheckEndFirefight();
 	}
@@ -551,7 +551,7 @@ void Room::tug2KirkShootGuard2() {
 	if (_awayMission->tug.guard2Status == GUARDSTAT_UP) {
 		loadActorAnim2(OBJECT_GUARD_2, "p6stun", -1, -1, 0);
 		_awayMission->tug.guard2Status = GUARDSTAT_STUNNED;
-		playSoundEffectIndex(SND_PHASSHOT);
+		playSoundEffectIndex(kSfxPhaser);
 		showBitmapFor5Ticks("t2beem02", 5);
 		tug2CheckEndFirefight();
 	}
@@ -579,7 +579,7 @@ void Room::tug2KirkKillGuard1() {
 	if (_awayMission->tug.guard1Status == GUARDSTAT_UP) {
 		loadActorAnim2(OBJECT_GUARD_1, "p5kill", -1, -1, 0);
 		_awayMission->tug.guard1Status = GUARDSTAT_DEAD;
-		playSoundEffectIndex(SND_PHASSHOT);
+		playSoundEffectIndex(kSfxPhaser);
 		showBitmapFor5Ticks("t2beem05", 5);
 		tug2CheckEndFirefight();
 	}
@@ -607,7 +607,7 @@ void Room::tug2KirkKillGuard2() {
 	if (_awayMission->tug.guard2Status == GUARDSTAT_UP) {
 		loadActorAnim2(OBJECT_GUARD_2, "p6kill", -1, -1, 0);
 		_awayMission->tug.guard2Status = GUARDSTAT_DEAD;
-		playSoundEffectIndex(SND_PHASSHOT);
+		playSoundEffectIndex(kSfxPhaser);
 		showBitmapFor5Ticks("t2beem04", 5);
 		tug2CheckEndFirefight();
 	}
@@ -728,7 +728,7 @@ void Room::tug2Timer0Expired() {
 		// Guard misses and shoots wall
 		loadActorAnim2(OBJECT_13, "wallht", 0, 0, 0);
 		showBitmapFor5Ticks("t2beem00", 5);
-		playSoundEffectIndex(SND_PHASSHOT);
+		playSoundEffectIndex(kSfxPhaser);
 		loadActorAnim2(OBJECT_GUARD_2, "p6fire", -1, -1, 0);
 		_awayMission->tug.field4e = _roomVar.tug.elasiPhaserOnKill;
 		_awayMission->timers[0] = 60;
@@ -848,7 +848,7 @@ void Room::tug2GuardShootsCrewman() {
 		loadActorAnim2(_roomVar.tug.shootingTarget, anim, -1, -1, 26);
 
 	showBitmapFor5Ticks(bitmapArray[_roomVar.tug.shootingTarget], 5);
-	playSoundEffectIndex(SND_PHASSHOT);
+	playSoundEffectIndex(kSfxPhaser);
 
 	if (_roomVar.tug.shootingObject == OBJECT_GUARD_1)
 		loadActorAnim2(OBJECT_GUARD_1, "p5fire", -1, -1, 0);
diff --git a/engines/startrek/rooms/tug3.cpp b/engines/startrek/rooms/tug3.cpp
index 9ac4b78177..3c39f172c9 100644
--- a/engines/startrek/rooms/tug3.cpp
+++ b/engines/startrek/rooms/tug3.cpp
@@ -162,7 +162,7 @@ void Room::tug3UseStunPhaserOnElasi1() {
 	if (_awayMission->tug.crewmanKilled[OBJECT_KIRK] || _awayMission->tug.bridgeElasi1Status != GUARDSTAT_UP)
 		return;
 	loadActorAnim2(OBJECT_ELASI_1, "p1stun", -1, -1, 12);
-	playSoundEffectIndex(SND_PHASSHOT);
+	playSoundEffectIndex(kSfxPhaser);
 	showBitmapFor5Ticks("t3beem05", 5);
 	_awayMission->tug.bridgeElasi1Status = GUARDSTAT_STUNNED;
 	tug3ElasiDrawPhasers();
@@ -172,7 +172,7 @@ void Room::tug3UseStunPhaserOnElasi2() {
 	if (_awayMission->tug.crewmanKilled[OBJECT_KIRK] || _awayMission->tug.bridgeElasi2Status != GUARDSTAT_UP)
 		return;
 	loadActorAnim2(OBJECT_ELASI_2, "p2stun", -1, -1, 12);
-	playSoundEffectIndex(SND_PHASSHOT);
+	playSoundEffectIndex(kSfxPhaser);
 	showBitmapFor5Ticks("t3beem06", 5);
 	_awayMission->tug.bridgeElasi2Status = GUARDSTAT_STUNNED;
 	tug3ElasiDrawPhasers();
@@ -182,7 +182,7 @@ void Room::tug3UseStunPhaserOnElasi3() {
 	if (_awayMission->tug.crewmanKilled[OBJECT_KIRK] || _awayMission->tug.bridgeElasi3Status != GUARDSTAT_UP)
 		return;
 	loadActorAnim2(OBJECT_ELASI_3, "p3stun", -1, -1, 12);
-	playSoundEffectIndex(SND_PHASSHOT);
+	playSoundEffectIndex(kSfxPhaser);
 	showBitmapFor5Ticks("t3beem07", 5);
 	_awayMission->tug.bridgeElasi3Status = GUARDSTAT_STUNNED;
 	tug3ElasiDrawPhasers();
@@ -192,7 +192,7 @@ void Room::tug3UseStunPhaserOnElasi4() {
 	if (_awayMission->tug.crewmanKilled[OBJECT_KIRK] || _awayMission->tug.bridgeElasi4Status != GUARDSTAT_UP)
 		return;
 	loadActorAnim2(OBJECT_ELASI_4, "p4stun", -1, -1, 12);
-	playSoundEffectIndex(SND_PHASSHOT);
+	playSoundEffectIndex(kSfxPhaser);
 	showBitmapFor5Ticks("t3beem04", 5);
 	_awayMission->tug.bridgeElasi4Status = GUARDSTAT_STUNNED;
 	tug3ElasiDrawPhasers();
@@ -202,7 +202,7 @@ void Room::tug3UseKillPhaserOnElasi1() {
 	if (_awayMission->tug.crewmanKilled[OBJECT_KIRK] || _awayMission->tug.bridgeElasi1Status != GUARDSTAT_UP)
 		return;
 	loadActorAnim2(OBJECT_ELASI_1, "p1Kill", -1, -1, 12);
-	playSoundEffectIndex(SND_PHASSHOT);
+	playSoundEffectIndex(kSfxPhaser);
 	showBitmapFor5Ticks("t3beem25", 5);
 	_awayMission->tug.bridgeElasi1Status = GUARDSTAT_DEAD;
 	_awayMission->tug.missionScore -= 2;
@@ -213,7 +213,7 @@ void Room::tug3UseKillPhaserOnElasi2() {
 	if (_awayMission->tug.crewmanKilled[OBJECT_KIRK] || _awayMission->tug.bridgeElasi2Status != GUARDSTAT_UP)
 		return;
 	loadActorAnim2(OBJECT_ELASI_2, "p2Kill", -1, -1, 12);
-	playSoundEffectIndex(SND_PHASSHOT);
+	playSoundEffectIndex(kSfxPhaser);
 	showBitmapFor5Ticks("t3beem27", 5);
 	_awayMission->tug.bridgeElasi2Status = GUARDSTAT_DEAD;
 	_awayMission->tug.missionScore -= 2;
@@ -224,7 +224,7 @@ void Room::tug3UseKillPhaserOnElasi3() {
 	if (_awayMission->tug.crewmanKilled[OBJECT_KIRK] || _awayMission->tug.bridgeElasi3Status != GUARDSTAT_UP)
 		return;
 	loadActorAnim2(OBJECT_ELASI_3, "p3Kill", -1, -1, 12);
-	playSoundEffectIndex(SND_PHASSHOT);
+	playSoundEffectIndex(kSfxPhaser);
 	showBitmapFor5Ticks("t3beem26", 5);
 	_awayMission->tug.bridgeElasi3Status = GUARDSTAT_DEAD;
 	_awayMission->tug.missionScore -= 2;
@@ -235,7 +235,7 @@ void Room::tug3UseKillPhaserOnElasi4() {
 	if (_awayMission->tug.crewmanKilled[OBJECT_KIRK] || _awayMission->tug.bridgeElasi4Status != GUARDSTAT_UP)
 		return;
 	loadActorAnim2(OBJECT_ELASI_4, "p4Kill", -1, -1, 12);
-	playSoundEffectIndex(SND_PHASSHOT);
+	playSoundEffectIndex(kSfxPhaser);
 	showBitmapFor5Ticks("t3beem24", 5);
 	_awayMission->tug.bridgeElasi4Status = GUARDSTAT_DEAD;
 	_awayMission->tug.missionScore -= 2;
@@ -303,7 +303,7 @@ void Room::tug3TalkToElasi1() {
 }
 
 void Room::tug3Elasi1DrewPhaser() {
-	playSoundEffectIndex(SND_PHASSHOT);
+	playSoundEffectIndex(kSfxPhaser);
 	showBitmapFor5Ticks("t3beem41", 13);
 	playSoundEffectIndex(SND_BLANK_16);
 	loadActorAnim2(OBJECT_12, "sparks", 0xa0, 0xad, 4);
@@ -317,7 +317,7 @@ void Room::tug3Elasi1ShotConsole() {
 }
 
 void Room::tug3Elasi1DrewPhaser2() {
-	playSoundEffectIndex(SND_PHASSHOT);
+	playSoundEffectIndex(kSfxPhaser);
 	showBitmapFor5Ticks("t3beem41", 13);
 	loadActorAnim2(OBJECT_12, "sparks", 0xa0, 0xad, 6);
 }
@@ -482,7 +482,7 @@ void Room::tug3Timer0Expired() {
 	} else
 		return;
 
-	playSoundEffectIndex(SND_PHASSHOT);
+	playSoundEffectIndex(kSfxPhaser);
 	showBitmapFor5Ticks(beamAnims[elasiShooter][elasiTarget], 5);
 	_awayMission->timers[0] = 50;
 }
@@ -511,7 +511,7 @@ void Room::tug3Timer1Expired() {
 void Room::tug3EndMission() {
 	playMidiMusicTracks(28, -1);
 	showText(TX_SPEAKER_KIRK, 1, true);
-	playSoundEffectIndex(SND_TRANSMAT);
+	playSoundEffectIndex(kSfxTransporterMaterialize);
 	loadActorAnim2(OBJECT_13, "rteleb", 0x14, 0xa0, 7);
 	loadActorAnim2(OBJECT_14, "rteleb", 0x118, 0xa0, 0);
 	loadActorAnim2(OBJECT_15, "rteleb", 0x96, 0xbe, 0);
diff --git a/engines/startrek/rooms/veng0.cpp b/engines/startrek/rooms/veng0.cpp
index 1121ee80d6..3443149b11 100644
--- a/engines/startrek/rooms/veng0.cpp
+++ b/engines/startrek/rooms/veng0.cpp
@@ -148,7 +148,7 @@ void Room::veng0Tick50() {
 }
 
 void Room::veng0TouchedDoor() {
-	playSoundEffectIndex(SND_DOOR1);
+	playSoundEffectIndex(kSfxDoor);
 	showRepublicMap(0, 0);
 }
 
@@ -231,7 +231,7 @@ void Room::veng0Timer0Expired() {
 	playVoc("MUR3E2");
 	loadActorAnim2(OBJECT_9, "s7r0s1", 0, 0xc7);
 	loadActorAnim2(OBJECT_10, "s7r0b1", 0, 0xc7);
-	playSoundEffectIndex(SND_PHASSHOT);
+	playSoundEffectIndex(kSfxPhaser);
 }
 
 void Room::veng0DoneCuttingBeam() {
diff --git a/engines/startrek/rooms/veng1.cpp b/engines/startrek/rooms/veng1.cpp
index e8f5ac7a6b..f435242453 100644
--- a/engines/startrek/rooms/veng1.cpp
+++ b/engines/startrek/rooms/veng1.cpp
@@ -163,7 +163,7 @@ void Room::veng1TouchedHotspot0() {
 	if (_roomVar.veng.walkingToDoor) {
 		loadActorAnimC(OBJECT_DOOR, "s7r1d1", 0xa1, 0x7e, &Room::veng1ReachedDoor);
 		loadActorAnim2(OBJECT_PANEL, "s7r1g1", 0xd8, 0x79);
-		playSoundEffectIndex(SND_DOOR1);
+		playSoundEffectIndex(kSfxDoor);
 	}
 }
 
@@ -173,7 +173,7 @@ void Room::veng1ReachedDoor() {
 }
 
 void Room::veng1TouchedTurbolift() {
-	playSoundEffectIndex(SND_DOOR1);
+	playSoundEffectIndex(kSfxDoor);
 	showRepublicMap(1, 0);
 }
 
diff --git a/engines/startrek/rooms/veng2.cpp b/engines/startrek/rooms/veng2.cpp
index 5de0119f43..1413b6a626 100644
--- a/engines/startrek/rooms/veng2.cpp
+++ b/engines/startrek/rooms/veng2.cpp
@@ -309,7 +309,7 @@ void Room::veng2Timer2Expired() { // Elasi hail the Enterprise if they haven't a
 }
 
 void Room::veng2TouchedDoor() {
-	playSoundEffectIndex(SND_DOOR1);
+	playSoundEffectIndex(kSfxDoor);
 	_awayMission->rdfStillDoDefaultAction = true;
 }
 
diff --git a/engines/startrek/rooms/veng3.cpp b/engines/startrek/rooms/veng3.cpp
index 5c8bcd9d57..fa05bb9b45 100644
--- a/engines/startrek/rooms/veng3.cpp
+++ b/engines/startrek/rooms/veng3.cpp
@@ -132,12 +132,12 @@ void Room::veng3Tick15() {
 }
 
 void Room::veng3TouchedTurbolift2() {
-	playSoundEffectIndex(SND_DOOR1);
+	playSoundEffectIndex(kSfxDoor);
 	showRepublicMap(3, 1);
 }
 
 void Room::veng3TouchedTurbolift1() {
-	playSoundEffectIndex(SND_DOOR1);
+	playSoundEffectIndex(kSfxDoor);
 	showRepublicMap(3, 0);
 }
 
@@ -151,7 +151,7 @@ void Room::veng3WalkToDoor() {
 void Room::veng3ReachedTurbolift2() {
 	_awayMission->disableInput = true;
 	loadActorAnimC(OBJECT_DOOR, "s7r3db", 0xa6, 0x60, &Room::veng3Turbolift2Opened);
-	playSoundEffectIndex(SND_DOOR1);
+	playSoundEffectIndex(kSfxDoor);
 }
 
 void Room::veng3Turbolift2Opened() {
@@ -165,7 +165,7 @@ void Room::veng3WalkToSickbayDoor() {
 void Room::veng3ReachedSickbayDoor() {
 	_awayMission->disableInput = true;
 	loadActorAnimC(OBJECT_SICKBAY_DOOR, "s7r3da", 0x5b, 0x80, &Room::veng3SickbayDoorOpened);
-	playSoundEffectIndex(SND_DOOR1);
+	playSoundEffectIndex(kSfxDoor);
 }
 
 void Room::veng3SickbayDoorOpened() {
@@ -245,7 +245,7 @@ void Room::veng3ReachedPositionToShootDebris() {
 
 void Room::veng3DrewPhaserToShootDebris() {
 	loadActorAnimC(OBJECT_DEBRIS, "s7r3ph", 0x9c, 0x83, &Room::veng3DebrisVaporized);
-	playSoundEffectIndex(SND_PHASSHOT);
+	playSoundEffectIndex(kSfxPhaser);
 }
 
 void Room::veng3DebrisVaporized() {
diff --git a/engines/startrek/rooms/veng4.cpp b/engines/startrek/rooms/veng4.cpp
index 1d0bbcf29b..56a05495a7 100644
--- a/engines/startrek/rooms/veng4.cpp
+++ b/engines/startrek/rooms/veng4.cpp
@@ -185,7 +185,7 @@ void Room::veng4UseMccoyOnBrittany() {
 void Room::veng4MccoyReachedBrittany() {
 	if (!_roomVar.veng.usingMedkitOnBrittany) {
 		loadActorAnimC(OBJECT_MCCOY, "mscane", -1, -1, &Room::veng4MccoyScannedBrittany);
-		playSoundEffectIndex(SND_TRICORDER);
+		playSoundEffectIndex(kSfxTricorder);
 	} else {
 		loadActorAnimC(OBJECT_MCCOY, "museme", -1, -1, &Room::veng4UsedMedkitOnBrittany);
 	}
@@ -343,7 +343,7 @@ void Room::veng4PickedUpDrill() {
 
 void Room::veng4TouchedHotspot0() { // Trigger door opening
 	if (_roomVar.veng.walkingToDoor) {
-		playSoundEffectIndex(SND_DOOR1);
+		playSoundEffectIndex(kSfxDoor);
 		loadActorAnim(OBJECT_DOOR, "s9r1do", DOOR_X, DOOR_Y);
 	}
 }
diff --git a/engines/startrek/rooms/veng5.cpp b/engines/startrek/rooms/veng5.cpp
index 4d1c6a9108..ffb6739b7f 100644
--- a/engines/startrek/rooms/veng5.cpp
+++ b/engines/startrek/rooms/veng5.cpp
@@ -113,7 +113,7 @@ void Room::veng5WalkToDoor() {
 
 void Room::veng5ReachedDoor() {
 	_awayMission->disableInput = true;
-	playSoundEffectIndex(SND_DOOR1);
+	playSoundEffectIndex(kSfxDoor);
 	loadActorAnimC(OBJECT_DOOR, "s7r5d1", 0x6b, 0x8c, &Room::veng5DoorOpened);
 	walkCrewman(OBJECT_KIRK, 0x64, 0x8e);
 }
@@ -123,7 +123,7 @@ void Room::veng5DoorOpened() {
 }
 
 void Room::veng5TouchedTurboliftDoor() {
-	playSoundEffectIndex(SND_DOOR1);
+	playSoundEffectIndex(kSfxDoor);
 	showRepublicMap(5, 1);
 }
 
@@ -186,7 +186,7 @@ void Room::veng5ReachedPositionToShootDebris() {
 
 void Room::veng5DrewPhaser() {
 	loadActorAnimC(OBJECT_POWER_PACK, "s7r5p1", 0xb1, 0x89, &Room::veng5VaporizedDebris);
-	playSoundEffectIndex(SND_PHASSHOT);
+	playSoundEffectIndex(kSfxPhaser);
 	loadActorStandAnim(OBJECT_DEBRIS);
 }
 
diff --git a/engines/startrek/rooms/veng6.cpp b/engines/startrek/rooms/veng6.cpp
index 906b0e1968..a4fa9963a5 100644
--- a/engines/startrek/rooms/veng6.cpp
+++ b/engines/startrek/rooms/veng6.cpp
@@ -178,7 +178,7 @@ void Room::veng6WalkToDoor() {
 
 void Room::veng6ReachedDoor() {
 	_awayMission->disableInput = true;
-	playSoundEffectIndex(SND_DOOR1);
+	playSoundEffectIndex(kSfxDoor);
 	loadActorAnimC(OBJECT_DOOR, "s7r6d1", DOOR_X, DOOR_Y, &Room::veng6DoorOpened);
 }
 
@@ -403,11 +403,11 @@ void Room::veng6OpenedOrClosedCabinet() {
 
 	if (_awayMission->veng.engineeringCabinetOpen) {
 		loadActorAnim(OBJECT_CABINET, "s7r6p2", CABINET_X, CABINET_Y);
-		playSoundEffectIndex(SND_DOOR1);
+		playSoundEffectIndex(kSfxDoor);
 		_awayMission->veng.engineeringCabinetOpen = false;
 	} else {
 		loadActorAnim(OBJECT_CABINET, "s7r6p1", CABINET_X, CABINET_Y);
-		playSoundEffectIndex(SND_DOOR1);
+		playSoundEffectIndex(kSfxDoor);
 		_awayMission->veng.engineeringCabinetOpen = true;
 		if (!_awayMission->veng.tookEngineeringJournal)
 			showDescription(5, true);
diff --git a/engines/startrek/rooms/veng7.cpp b/engines/startrek/rooms/veng7.cpp
index fa3ad1ae2d..143d380d8b 100644
--- a/engines/startrek/rooms/veng7.cpp
+++ b/engines/startrek/rooms/veng7.cpp
@@ -91,7 +91,7 @@ void Room::veng7WalkToDoor() {
 
 void Room::veng7ReachedDoor() {
 	_awayMission->disableInput = true;
-	playSoundEffectIndex(SND_DOOR1);
+	playSoundEffectIndex(kSfxDoor);
 	loadActorAnimC(OBJECT_DOOR, "s7r7d1", 0x59, 0x72, &Room::veng7DoorOpened);
 }
 
@@ -100,7 +100,7 @@ void Room::veng7DoorOpened() {
 }
 
 void Room::veng7TouchedTurboliftDoor() {
-	playSoundEffectIndex(SND_DOOR1);
+	playSoundEffectIndex(kSfxDoor);
 	showRepublicMap(7, 1);
 }
 
diff --git a/engines/startrek/rooms/veng8.cpp b/engines/startrek/rooms/veng8.cpp
index 97da13fd5e..9c6b9ad423 100644
--- a/engines/startrek/rooms/veng8.cpp
+++ b/engines/startrek/rooms/veng8.cpp
@@ -132,7 +132,7 @@ void Room::veng8WalkToDoor() {
 
 void Room::veng8ReachedDoor() {
 	_awayMission->disableInput = true;
-	playSoundEffectIndex(SND_DOOR1);
+	playSoundEffectIndex(kSfxDoor);
 	loadActorAnimC(OBJECT_DOOR, "s7r8d1", 0x12c, 0xac, &Room::veng8DoorOpened);
 }
 
@@ -342,12 +342,12 @@ void Room::veng8SpockReachedSlider() {
 void Room::veng8RedshirtReachedTransporter() {
 	showText(TX_SPEAKER_KIRK,  9, true);
 	loadActorAnimC(OBJECT_SPOCK, "susehn", -1, -1, &Room::veng8SpockPulledSliderToBeamOut);
-	playSoundEffectIndex(SND_TRANSENE);
+	playSoundEffectIndex(kSfxTransporterEnergize);
 }
 
 void Room::veng8SpockPulledSliderToBeamOut() {
 	loadActorAnimC(OBJECT_REDSHIRT, "rteled", -1, -1, &Room::veng8RedshirtBeamedOut);
-	playSoundEffectIndex(SND_TRANSDEM);
+	playSoundEffectIndex(kSfxTransporterDematerialize);
 	_awayMission->redshirtDead = true;
 }
 
@@ -360,13 +360,13 @@ void Room::veng8RedshirtBeamedOut() {
 	showText(TX_SPEAKER_KIJE, 38, true);
 	showText(TX_SPEAKER_KIRK,  7, true);
 	loadActorAnimC(OBJECT_SPOCK, "susehn", -1, -1, &Room::veng8SpockPulledSliderToBeamIn);
-	playSoundEffectIndex(SND_TRANSENE);
+	playSoundEffectIndex(kSfxTransporterEnergize);
 }
 
 void Room::veng8SpockPulledSliderToBeamIn() {
 	_awayMission->redshirtDead = false;
 	loadActorAnimC(OBJECT_REDSHIRT, "rtele", 0xc8, 0x81, &Room::veng8RedshirtBeamedIn);
-	playSoundEffectIndex(SND_TRANSMAT);
+	playSoundEffectIndex(kSfxTransporterMaterialize);
 }
 
 void Room::veng8RedshirtBeamedIn() {
diff --git a/engines/startrek/soundeffects.h b/engines/startrek/soundeffects.h
index adfb4eb737..54f30f83e0 100644
--- a/engines/startrek/soundeffects.h
+++ b/engines/startrek/soundeffects.h
@@ -26,25 +26,25 @@
 
 // Sound effects for "playSoundEffectIndex" function
 enum SoundEffects {
-	SND_TRICORDER = 4,
-	SND_DOOR1 = 5,
-	SND_PHASSHOT = 6,
-	SND_07 = 7,
-	SND_TRANSDEM = 8,
-	SND_TRANSMAT = 9,
-	SND_TRANSENE = 0x0a,
-	SND_BLANK_0b = 0x0b,
-	SND_0c = 0x0c,
-	SND_SELECTION = 0x10,
-	SND_BLANK_14 = 0x14,
-	SND_BLANK_16 = 0x16,
-	SND_HAILING = 0x22,
-	SND_PHASSHOT_2 = 0x24,
-	SND_PHOTSHOT = 0x25,
-	SND_HITSHIEL = 0x26,
-	SND_27 = 0x27,
-	SND_REDALERT = 0x28,
-	SND_WARP = 0x29
+	// Sounds 0 - 3 are blank
+	kSfxTricorder = 4,
+	kSfxDoor = 5,
+	kSfxPhaser = 6,
+	kSfxButton = 7,
+	kSfxTransporterDematerialize = 8,
+	kSfxTransporterMaterialize = 9,
+	kSfxTransporterEnergize = 10,
+	// Sounds 11 - 15 are blank
+	kSfxSelection = 16,
+	// Sounds 17 - 33 are blank
+	kSfxHailing = 34,
+	// Sound 35 is blank
+	kSfxPhaser2 = 36,
+	kSfxPhotonTorpedoes = 37,
+	kSfxShieldHit = 38,
+	kSfxUnk = 39,
+	kSfxRedAlert = 40,
+	kSfxWarp = 41
 };
 
 


Commit: 1705cbc846eb7879d677dc0824c1fb45053c505c
    https://github.com/scummvm/scummvm/commit/1705cbc846eb7879d677dc0824c1fb45053c505c
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2020-12-29T16:14:03+02:00

Commit Message:
STARTREK: Use the SFX enum instead of hardcoded values

Changed paths:
    engines/startrek/bridge.cpp


diff --git a/engines/startrek/bridge.cpp b/engines/startrek/bridge.cpp
index 61896ff43a..ffe7bd532c 100644
--- a/engines/startrek/bridge.cpp
+++ b/engines/startrek/bridge.cpp
@@ -274,7 +274,7 @@ void StarTrekEngine::playBridgeSequence(int sequenceId) {
 		// TODO: sub_2FF19("enterpri") // random number generation
 		// TODO: changeBridgeMode 1
 		_sound->playMidiMusicTracks(2, -1);
-		_sound->playSoundEffectIndex(40);
+		_sound->playSoundEffectIndex(kSfxRedAlert);
 
 		// HACK: Play the end of the mock battle sequence, until the 3D code is implemented
 		_bridgeSequenceToLoad = kSeqEndMockBattle;
@@ -311,7 +311,7 @@ void StarTrekEngine::playBridgeSequence(int sequenceId) {
 		_resource->setTxtFileName("DEMON");
 		loadActorAnim(1, ACTOR_STANDING_SPOCK, 0, 0, 1.0);
 		loadActorAnim(2, ACTOR_STANDING_MCCOY, 0, 0, 1.0);
-		_sound->playSoundEffectIndex(34);
+		_sound->playSoundEffectIndex(kSfxHailing);
 		showTextboxBridge(kBridgeTalkerUhura, 23); // Message from Starfleet
 		showTextboxBridge(kBridgeTalkerKirk, 24);
 		showMissionPerformance(_awayMission.demon.missionScore * 100 / 32, 29, 0);
@@ -330,7 +330,7 @@ void StarTrekEngine::playBridgeSequence(int sequenceId) {
 		_sound->loadMusicFile("bridge");
 		showMissionStartEnterpriseFlyby("TUG0\\FLYBY", "hijacked");
 		_sound->playMidiMusicTracks(0, -1);
-		_sound->playSoundEffectIndex(34);
+		_sound->playSoundEffectIndex(kSfxHailing);
 		showTextboxBridge(kBridgeTalkerUhura, 0);
 		showTextboxBridge(kBridgeTalkerKirk, 1);
 		showBridgeScreenTalkerWithMessage(2, "Admiral", "woman");
@@ -338,7 +338,7 @@ void StarTrekEngine::playBridgeSequence(int sequenceId) {
 		break;
 	case kSeqStartElasiPirateBattle:
 		showTextboxBridge(kBridgeTalkerSpock, 6);
-		_sound->playSoundEffectIndex(34);
+		_sound->playSoundEffectIndex(kSfxHailing);
 		showTextboxBridge(kBridgeTalkerUhura, 7);
 		showTextboxBridge(kBridgeTalkerKirk, 8);
 		showBridgeScreenTalkerWithMessage(9, "Elasi Captain", "pira", false);
@@ -346,7 +346,7 @@ void StarTrekEngine::playBridgeSequence(int sequenceId) {
 		showTextboxBridge(kBridgeTalkerElasiCaptain, 11);
 		removeActorFromScreen(_currentScreenTalker);
 		initStarfieldSprite(&_starfieldSprite, new StubBitmap(0, 0), _starfieldRect);
-		_sound->playSoundEffectIndex(40);
+		_sound->playSoundEffectIndex(kSfxRedAlert);
 		_enterpriseState.underAttack = true;
 		_sound->playMidiMusicTracks(2, -1);
 		startBattle("orion"); // Elasi Pirate battle
@@ -372,7 +372,7 @@ void StarTrekEngine::playBridgeSequence(int sequenceId) {
 		loadActorAnim(2, ACTOR_STANDING_MCCOY, 0, 0, 1.0); // Standing McCoy
 		if (_missionEndFlag == 0) {
 			// Good ending
-			_sound->playSoundEffectIndex(34);
+			_sound->playSoundEffectIndex(kSfxHailing);
 			showTextboxBridge(kBridgeTalkerUhura, 29);
 			showTextboxBridge(kBridgeTalkerKirk, 30);
 			showMissionPerformance(_awayMission.tug.missionScore * 100 / 32, 31, 1);
@@ -384,13 +384,13 @@ void StarTrekEngine::playBridgeSequence(int sequenceId) {
 			showTextboxBridge(kBridgeTalkerKirk, 37);
 		} else if (_missionEndFlag == 1) {
 			// Bad ending 1 (0 score): the Masada got destroyed, everyone died
-			_sound->playSoundEffectIndex(34);
+			_sound->playSoundEffectIndex(kSfxHailing);
 			showTextboxBridge(kBridgeTalkerUhura, 39);
 			showTextboxBridge(kBridgeTalkerKirk, 40);
 			showMissionPerformance(0, 41, 1);
 		} else if (_missionEndFlag == 2) {
 			// Bad ending 2 (0 score): bad handling of the situation, some prisoners died
-			_sound->playSoundEffectIndex(34);
+			_sound->playSoundEffectIndex(kSfxHailing);
 			showTextboxBridge(kBridgeTalkerUhura, 42);
 			showMissionPerformance(0, 43, 1);
 		}
@@ -404,7 +404,7 @@ void StarTrekEngine::playBridgeSequence(int sequenceId) {
 		_resource->setTxtFileName(_missionName);
 		_sound->loadMusicFile("bridge");
 		showMissionStartEnterpriseFlyby("LOV0\\FLYBY", "tlove");
-		_sound->playSoundEffectIndex(34);
+		_sound->playSoundEffectIndex(kSfxHailing);
 		showTextboxBridge(kBridgeTalkerUhura, 0);
 		showTextboxBridge(kBridgeTalkerKirk, 1);
 		showBridgeScreenTalkerWithMessage(2, "Admiral", "woman");
@@ -416,7 +416,7 @@ void StarTrekEngine::playBridgeSequence(int sequenceId) {
 		break;
 	case kSeqStartRomulanBattle:
 		showTextboxBridge(kBridgeTalkerSpock, "#BRID\\B_160#Romulan ship decloaking, Captain.");
-		_sound->playSoundEffectIndex(34);
+		_sound->playSoundEffectIndex(kSfxHailing);
 		showTextboxBridge(kBridgeTalkerUhura, 6);	// Message from the Romulan ship, Sir
 		showBridgeScreenTalkerWithMessage(9, "Romulan Captain", "romula");
 		showTextboxBridge(kBridgeTalkerSpock, 10);
@@ -434,7 +434,7 @@ void StarTrekEngine::playBridgeSequence(int sequenceId) {
 		break;
 	case kSeqArrivedAtArk7:
 		_hailedTarget = false;
-		_sound->playSoundEffectIndex(34);
+		_sound->playSoundEffectIndex(kSfxHailing);
 		showTextboxBridge(kBridgeTalkerUhura, 17);
 		showTextboxBridge(kBridgeTalkerAutobeacon, 16);
 		break;
@@ -442,7 +442,7 @@ void StarTrekEngine::playBridgeSequence(int sequenceId) {
 		_resource->setTxtFileName("LOVE");
 		loadActorAnim(1, ACTOR_STANDING_SPOCK, 0, 0, 1.0); // Standing Spock
 		loadActorAnim(2, ACTOR_STANDING_MCCOY, 0, 0, 1.0); // Standing McCoy
-		_sound->playSoundEffectIndex(34);
+		_sound->playSoundEffectIndex(kSfxHailing);
 		showTextboxBridge(kBridgeTalkerUhura, 18);
 		showTextboxBridge(kBridgeTalkerKirk, 19);
 		showMissionPerformance(_awayMission.love.missionScore * 100 / 32, 26, 2);
@@ -463,7 +463,7 @@ void StarTrekEngine::playBridgeSequence(int sequenceId) {
 		_sound->loadMusicFile("bridge");
 		// TODO: sub_321F9()
 		showMissionStartEnterpriseFlyby("MUD0\\FLYBY", "another");
-		_sound->playSoundEffectIndex(34);
+		_sound->playSoundEffectIndex(kSfxHailing);
 		showTextboxBridge(kBridgeTalkerUhura, 0);
 		showTextboxBridge(kBridgeTalkerKirk, 1);
 		showBridgeScreenTalkerWithMessage(2, "Admiral", "woman");
@@ -474,7 +474,7 @@ void StarTrekEngine::playBridgeSequence(int sequenceId) {
 		showTextboxBridge(kBridgeTalkerSpock, 5);	// We have arrived at Harlequin
 		//_beamDownAllowed = false;	// TODO: unused, since the player jumps straight into a battle?
 		showTextboxBridge(kBridgeTalkerSpock, 6);
-		_sound->playSoundEffectIndex(34);
+		_sound->playSoundEffectIndex(kSfxHailing);
 		showTextboxBridge(kBridgeTalkerUhura, 7);
 		showBridgeScreenTalkerWithMessage(14, "Elasi Pirate", "pira");
 		_enterpriseState.underAttack = true;
@@ -665,7 +665,7 @@ void StarTrekEngine::bridgeCrewAction(int crewId) {
 void StarTrekEngine::contactTargetAction() {
 	switch (_targetPlanet) {
 	case kPlanetPollux:	// Chapter 1: Demon world (demon)
-		_sound->playSoundEffectIndex(34);
+		_sound->playSoundEffectIndex(kSfxHailing);
 		showTextboxBridge(kBridgeTalkerUhura, 17);
 		showBridgeScreenTalkerWithMessage(18, "Priest", "prst");
 		break;
@@ -681,7 +681,7 @@ void StarTrekEngine::contactTargetAction() {
 		}	
 		break;
 	case kPlanetArk7:	// Chapter 3: Love's Labor Jeopardized (love)
-		_sound->playSoundEffectIndex(34);
+		_sound->playSoundEffectIndex(kSfxHailing);
 		showTextboxBridge(kBridgeTalkerUhura, 14);
 		showBridgeScreenTalkerWithMessage(15, "Centurion Preax", "romula");
 		break;


Commit: f7d06705228f07e38a4e4a9749f491dbf81c062a
    https://github.com/scummvm/scummvm/commit/f7d06705228f07e38a4e4a9749f491dbf81c062a
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2020-12-29T16:14:03+02:00

Commit Message:
STARTREK: Remove more calls to blank sounds

Changed paths:
    engines/startrek/rooms/tug2.cpp
    engines/startrek/rooms/tug3.cpp


diff --git a/engines/startrek/rooms/tug2.cpp b/engines/startrek/rooms/tug2.cpp
index f1538f6862..f57aeabfe3 100644
--- a/engines/startrek/rooms/tug2.cpp
+++ b/engines/startrek/rooms/tug2.cpp
@@ -381,7 +381,6 @@ void Room::tug2KirkGotWires() {
 		playVoc("NM8EXPLO");
 		loadActorAnim2(OBJECT_BOMB, "t2bbo", -3, 1, 0);
 		playSoundEffectIndex(kSfxPhaser);
-		playSoundEffectIndex(SND_BLANK_16);
 		_awayMission->tug.field35 = 6;
 		loadActorStandAnim(OBJECT_WIRE);
 		giveItem(OBJECT_IWIRING);
diff --git a/engines/startrek/rooms/tug3.cpp b/engines/startrek/rooms/tug3.cpp
index 3c39f172c9..ef2306da5e 100644
--- a/engines/startrek/rooms/tug3.cpp
+++ b/engines/startrek/rooms/tug3.cpp
@@ -305,7 +305,6 @@ void Room::tug3TalkToElasi1() {
 void Room::tug3Elasi1DrewPhaser() {
 	playSoundEffectIndex(kSfxPhaser);
 	showBitmapFor5Ticks("t3beem41", 13);
-	playSoundEffectIndex(SND_BLANK_16);
 	loadActorAnim2(OBJECT_12, "sparks", 0xa0, 0xad, 4);
 }
 


Commit: eb8e1a33fd6612fada2d2bb0d52349d9f0148cb4
    https://github.com/scummvm/scummvm/commit/eb8e1a33fd6612fada2d2bb0d52349d9f0148cb4
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2020-12-29T16:14:03+02:00

Commit Message:
STARTREK: More functionality for bridge sequences and crew responses

Changed paths:
    engines/startrek/bridge.cpp


diff --git a/engines/startrek/bridge.cpp b/engines/startrek/bridge.cpp
index ffe7bd532c..8005a2a26a 100644
--- a/engines/startrek/bridge.cpp
+++ b/engines/startrek/bridge.cpp
@@ -523,7 +523,37 @@ void StarTrekEngine::playBridgeSequence(int sequenceId) {
 		_sound->loadMusicFile("bridgeb");
 		// TODO: sub_321F9()
 		showMissionStartEnterpriseFlyby("FEA0\\FLYBY", "feather");
-		showTextboxBridge(kBridgeTalkerKirk, 5);
+		showTextboxBridge(kBridgeTalkerKirk, 5);	// Captain's log, Stardate 5097.3. Starfleet reports major military activity...
+		// TODO
+		break;
+	case kSeqStartMissionTrial:
+		_currentPlanet = _targetPlanet = kPlanetHrakkour;
+		_missionName = _missionToLoad = "TRIAL";
+		_resource->setTxtFileName(_missionName);
+		orbitPlanet();
+		showTextboxBridge(kBridgeTalkerKirk, 0);	// Captain's Log. We have come to the ruined Klingon planet of Hrakkour...
+		// TODO
+		break;
+	case kSeqStartMissionSins:
+		_targetPlanet = kPlanetAlphaProxima; // We set it earlier for uniformity
+		_missionName = _missionToLoad = "SINS";
+		_resource->setTxtFileName(_missionName);
+		_sound->loadMusicFile("bridge");
+		showMissionStartEnterpriseFlyby("SIN0\\FLYBY", "devilmon");
+		_sound->playSoundEffectIndex(kSfxHailing);
+		showTextboxBridge(kBridgeTalkerUhura, 0);
+		showTextboxBridge(kBridgeTalkerKirk, 1);
+		showBridgeScreenTalkerWithMessage(2, "Admiral", "woman");
+		showTextboxBridge(kBridgeTalkerSpock, 3);
+		showTextboxBridge(kBridgeTalkerKirk, 4);
+		showTextboxBridge(kBridgeTalkerSpock, 5);
+		showTextboxBridge(kBridgeTalkerChekov, 6);
+		showTextboxBridge(kBridgeTalkerSpock, 7);
+		showTextboxBridge(kBridgeTalkerKirk, 8);
+		showTextboxBridge(kBridgeTalkerSpock, 9);
+		// TODO
+		break;
+	case kSeqStartMissionVeng:
 		// TODO
 		break;
 	// TODO: The rest
@@ -542,14 +572,21 @@ struct CrewTextsForChapter {
 };
 
 CrewTextsForChapter crewTexts[] = {
-	{ kPlanetPollux,     kBridgeTalkerSpock, 10, 20, 21, 22 },
-	{ kPlanetPollux,     kBridgeTalkerUhura,  9, 16, 19, 19 },
-	{ kPlanetBetaMyamid, kBridgeTalkerSpock, 13,  5, 17, 27 },
-	{ kPlanetBetaMyamid, kBridgeTalkerUhura, 12,  4, 16, -1 },
-	{ kPlanetArk7,       kBridgeTalkerSpock,  8,  4, -1, 13 },
-	{ kPlanetArk7,       kBridgeTalkerUhura,  7,  5, -1, -1 },
-	{ kPlanetHarlequin,  kBridgeTalkerSpock, 21,  4, 22, -1 },
-	{ kPlanetHarlequin,  kBridgeTalkerUhura, 19,  3, 20, -1 },
+    // -- Chapter 1 ----
+	{ kPlanetPollux,       kBridgeTalkerSpock, 10, 20, 21, 22 },
+	{ kPlanetPollux,       kBridgeTalkerUhura,  9, 16, 19, 19 },
+    // -- Chapter 2 ----
+	{ kPlanetBetaMyamid,   kBridgeTalkerSpock, 13,  5, 17, 27 },
+	{ kPlanetBetaMyamid,   kBridgeTalkerUhura, 12,  4, 16, -1 },
+    // -- Chapter 3 ----
+	{ kPlanetArk7,         kBridgeTalkerSpock,  8,  4, -1, 13 },
+	{ kPlanetArk7,         kBridgeTalkerUhura,  7,  5, -1, -1 },
+    // -- Chapter 4 ----
+	{ kPlanetHarlequin,    kBridgeTalkerSpock, 21,  4, 22, -1 },
+	{ kPlanetHarlequin,    kBridgeTalkerUhura, 19,  3, 20, -1 },
+    // -- Chapter 6 ----
+	{ kPlanetAlphaProxima, kBridgeTalkerSpock, -1, 11, -1, -1 },
+	{ kPlanetAlphaProxima, kBridgeTalkerUhura, -1, 10, -1, -1 },
 	// TODO: The rest
 	{ kPlanetNone,       kBridgeTalkerNone,   0,  0,  0,  0 }
 };




More information about the Scummvm-git-logs mailing list