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

bluegr noreply at scummvm.org
Sat Jun 29 13:37:34 UTC 2024


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

Summary:
5336245f27 STARTREK: Always use enum values for sound effects
a7c304148f STARTREK: Always use enum values for MIDI tracks
ff9da88582 STARTREK: Better names for some of the MidiTracks values


Commit: 5336245f2790c88ae173cdfefca8030714d805d3
    https://github.com/scummvm/scummvm/commit/5336245f2790c88ae173cdfefca8030714d805d3
Author: Cameron Cawley (ccawley2011 at gmail.com)
Date: 2024-06-29T16:37:30+03:00

Commit Message:
STARTREK: Always use enum values for sound effects

Changed paths:
    engines/startrek/actors.cpp
    engines/startrek/awaymission.cpp
    engines/startrek/room.cpp
    engines/startrek/room.h
    engines/startrek/rooms/demon0.cpp
    engines/startrek/rooms/demon1.cpp
    engines/startrek/rooms/demon2.cpp
    engines/startrek/rooms/demon3.cpp
    engines/startrek/rooms/demon4.cpp
    engines/startrek/rooms/demon5.cpp
    engines/startrek/rooms/demon6.cpp
    engines/startrek/sound.cpp
    engines/startrek/sound.h
    engines/startrek/startrek.cpp


diff --git a/engines/startrek/actors.cpp b/engines/startrek/actors.cpp
index e48b2d5ab9d..9b70cbd70e7 100644
--- a/engines/startrek/actors.cpp
+++ b/engines/startrek/actors.cpp
@@ -1295,7 +1295,7 @@ int StarTrekEngine::showInventoryMenu(int x, int y, bool restoreMouse) {
 		removeNextEvent();
 	}
 
-	_sound->playSoundEffectIndex(0x10);
+	_sound->playSoundEffectIndex(kSfxSelection);
 	if (lastItemIndex >= 0)
 		drawMenuButtonOutline(itemSprites[lastItemIndex].bitmap, 0);
 
diff --git a/engines/startrek/awaymission.cpp b/engines/startrek/awaymission.cpp
index 75a4b83a8fa..c8c82cd3281 100644
--- a/engines/startrek/awaymission.cpp
+++ b/engines/startrek/awaymission.cpp
@@ -156,7 +156,7 @@ void StarTrekEngine::initAwayCrewPositions(int warpEntryIndex) {
 		_kirkActor->triggerActionWhenAnimFinished = true;
 		_kirkActor->finishedAnimActionParam = 0xff;
 		_awayMission.disableInput = true;
-		_sound->playSoundEffectIndex(0x09);
+		_sound->playSoundEffectIndex(kSfxTransporterMaterialize);
 		_warpHotspotsActive = false;
 		break;
 	case 5: // Crew spawns in directly at a position.
diff --git a/engines/startrek/room.cpp b/engines/startrek/room.cpp
index 0b3178d5178..fd2409a2ab7 100644
--- a/engines/startrek/room.cpp
+++ b/engines/startrek/room.cpp
@@ -510,7 +510,7 @@ int16 Room::getRandomWordInRange(int start, int end) {
 	return _vm->getRandomWord() % (end - start + 1) + start;
 }
 
-void Room::playSoundEffectIndex(int soundEffect) {
+void Room::playSoundEffectIndex(SoundEffects soundEffect) {
 	_vm->_sound->playSoundEffectIndex(soundEffect);
 }
 
@@ -532,7 +532,7 @@ void Room::endMission(int16 score, int16 arg1, int16 arg2) {
 	_vm->_mccoyActor->animationString.clear();
 	_vm->_redshirtActor->animationString.clear();
 
-	playSoundEffectIndex(8);
+	playSoundEffectIndex(kSfxTransporterDematerialize);
 
 	while (_vm->_kirkActor->spriteDrawn)
 		_vm->handleAwayMissionEvents();
diff --git a/engines/startrek/room.h b/engines/startrek/room.h
index 9b68c88fcd3..04d30882e76 100644
--- a/engines/startrek/room.h
+++ b/engines/startrek/room.h
@@ -262,7 +262,7 @@ private:
 	/**
 	 * Cmd 0x0f
 	 */
-	void playSoundEffectIndex(int soundEffect);
+	void playSoundEffectIndex(SoundEffects soundEffect);
 	/**
 	 * Cmd 0x10
 	 */
diff --git a/engines/startrek/rooms/demon0.cpp b/engines/startrek/rooms/demon0.cpp
index c6e159a7a97..6937737163b 100644
--- a/engines/startrek/rooms/demon0.cpp
+++ b/engines/startrek/rooms/demon0.cpp
@@ -219,7 +219,7 @@ void Room::demon0TouchedHotspot1() {
 	if (!_roomVar.demon.movingToBottomDoor)
 		return;
 	loadActorAnim2(9, "s0r0d1", 254, 153, 1);
-	playSoundEffectIndex(0x05);
+	playSoundEffectIndex(kSfxDoor);
 }
 
 void Room::demon0ReachedBottomDoor() {
@@ -239,7 +239,7 @@ void Room::demon0TouchedHotspot0() {
 	if (!_roomVar.demon.movingToTopDoor)
 		return;
 	loadActorAnim2(10, "s0r0d2", 158, 130, 2);
-	playSoundEffectIndex(0x05);
+	playSoundEffectIndex(kSfxDoor);
 }
 
 void Room::demon0ReachedTopDoor() {
@@ -451,19 +451,19 @@ void Room::demon0AskPrelateAboutSightings() {
 
 void Room::demon0UseSTricorderAnywhere() {
 	loadActorAnim2(OBJECT_SPOCK, "sscans", -1, -1, 0);
-	playSoundEffectIndex(0x04);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, TX_DEM0_028);
 }
 
 void Room::demon0UseMTricorderAnywhere() {
 	loadActorAnim2(OBJECT_MCCOY, "mscans", -1, -1, 0);
-	playSoundEffectIndex(0x04);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_MCCOY, TX_DEM0_021);
 }
 
 void Room::demon0UseMTricorderOnPrelate() {
 	loadActorAnim2(OBJECT_MCCOY, "mscans", -1, -1, 0);
-	playSoundEffectIndex(0x04);
+	playSoundEffectIndex(kSfxTricorder);
 
 	if (_awayMission->demon.talkedToPrelate)
 		showText(TX_SPEAKER_MCCOY, TX_DEM0_018);
diff --git a/engines/startrek/rooms/demon1.cpp b/engines/startrek/rooms/demon1.cpp
index b50ee350a48..66a8b63a098 100644
--- a/engines/startrek/rooms/demon1.cpp
+++ b/engines/startrek/rooms/demon1.cpp
@@ -334,7 +334,7 @@ void Room::demon1Timer1Expired() {
 
 void Room::demon1KlingonFinishedAimingWeapon() {
 	loadActorAnim(11, _roomVar.demon.d6, 0, 0, 0);
-	playSoundEffectIndex(0x06);
+	playSoundEffectIndex(kSfxPhaser);
 
 	_roomVar.demon.attackIndex++;
 	int crewman = OBJECT_REDSHIRT;
@@ -393,7 +393,7 @@ void Room::demon1ShootKlingon1() {
 		_awayMission->disableWalking = false;
 	}
 	loadActorAnim(12, "s0ks1", 0, 0, 0);
-	playSoundEffectIndex(0x06);
+	playSoundEffectIndex(kSfxPhaser);
 	playVoc("EFX19");
 	loadActorAnim2(8, "klg1d", 0x120, 0x84, 7);
 }
@@ -441,7 +441,7 @@ void Room::demon1ShootKlingon2() {
 		_awayMission->disableWalking = false;
 	}
 	loadActorAnim(12, "s0ks2", 0, 0, 0);
-	playSoundEffectIndex(0x06);
+	playSoundEffectIndex(kSfxPhaser);
 	loadActorAnim2(9, "klg2d", 0xaa, 0x7c, 0);
 	_awayMission->disableInput = 0;
 }
@@ -470,7 +470,7 @@ void Room::demon1ShootKlingon3() {
 		_awayMission->disableWalking = false;
 	}
 	loadActorAnim(12, "s0ks3", 0, 0, 0);
-	playSoundEffectIndex(0x06);
+	playSoundEffectIndex(kSfxPhaser);
 	loadActorAnim2(10, "klg3d", 0, 0, 0);
 	_awayMission->disableInput = 0;
 }
@@ -498,37 +498,37 @@ void Room::demon1Timer5Expired() {
 
 void Room::demon1UseMTricorderOnKlingon() {
 	loadActorAnim2(OBJECT_MCCOY, "mscann", -1, -1, 0);
-	playSoundEffectIndex(0x04);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_MCCOY, TX_DEM1_012);
 }
 
 void Room::demon1UseSTricorderOnTulips() {
 	loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0);
-	playSoundEffectIndex(0x04);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, TX_DEM1_007);
 }
 
 void Room::demon1UseSTricorderOnPods() {
 	loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0);
-	playSoundEffectIndex(0x04);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, TX_DEM1_008);
 }
 
 void Room::demon1UseSTricorderOnCattails() {
 	loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0);
-	playSoundEffectIndex(0x04);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, TX_DEM1_005);
 }
 
 void Room::demon1UseSTricorderOnFerns() {
 	loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0);
-	playSoundEffectIndex(0x04);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, TX_DEM1_006);
 }
 
 void Room::demon1UseSTricorderOnHand() {
 	loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0);
-	playSoundEffectIndex(0x04);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, TX_DEM1_017);
 }
 
@@ -537,7 +537,7 @@ void Room::demon1UseSTricorderOnKlingon1() {
 	// actually call the function...
 	loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0);
 
-	playSoundEffectIndex(0x04);
+	playSoundEffectIndex(kSfxTricorder);
 
 	if (_roomVar.demon.numKlingonsKilled == 3 && !_awayMission->demon.tookKlingonHand && _rdfData[0xcf] != 1) {
 		showText(TX_SPEAKER_SPOCK, TX_DEM1_018);
@@ -549,7 +549,7 @@ void Room::demon1UseSTricorderOnKlingon1() {
 
 void Room::demon1UseSTricorderOnKlingon2Or3() {
 	loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0);
-	playSoundEffectIndex(0x04);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, TX_DEM1_019);
 }
 
@@ -570,7 +570,7 @@ void Room::demon1UseMTricorderOnRedshirt() {
 
 void Room::demon1UseMTricorderOnCrewman() {
 	loadActorAnim2(OBJECT_MCCOY, "mscann", -1, -1, 0);
-	playSoundEffectIndex(0x04);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_MCCOY, TX_DEM1_009);
 }
 
diff --git a/engines/startrek/rooms/demon2.cpp b/engines/startrek/rooms/demon2.cpp
index 373555ef455..31179d3c76c 100644
--- a/engines/startrek/rooms/demon2.cpp
+++ b/engines/startrek/rooms/demon2.cpp
@@ -212,25 +212,25 @@ void Room::demon2UsePhaserOnBerries() {
 
 void Room::demon2UseSTricorderOnBerries() {
 	loadActorAnim2(OBJECT_SPOCK, "sscane", -1, -1, 0);
-	playSoundEffectIndex(0x04);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, TX_DEM2_008);
 }
 
 void Room::demon2UseSTricorderOnMoss() {
 	loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0);
-	playSoundEffectIndex(0x04);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, TX_DEM2_007);
 }
 
 void Room::demon2UseSTricorderOnFern() {
 	loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0);
-	playSoundEffectIndex(0x04);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, TX_DEM2_006);
 }
 
 void Room::demon2UseSTricorderOnCave() {
 	loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0);
-	playSoundEffectIndex(0x04);
+	playSoundEffectIndex(kSfxTricorder);
 
 	// NOTE: audio file for this is empty.
 	showText(TX_SPEAKER_SPOCK, TX_DEM2_005);
@@ -238,7 +238,7 @@ void Room::demon2UseSTricorderOnCave() {
 
 void Room::demon2UseMTricorderOnBerries() {
 	loadActorAnim2(OBJECT_MCCOY, "mscane", -1, -1, 0);
-	playSoundEffectIndex(0x04);
+	playSoundEffectIndex(kSfxTricorder);
 
 	if (_awayMission->demon.curedChub)
 		showText(TX_SPEAKER_MCCOY, TX_DEM2_013);
diff --git a/engines/startrek/rooms/demon3.cpp b/engines/startrek/rooms/demon3.cpp
index eb653d412e3..f7e6d787afe 100644
--- a/engines/startrek/rooms/demon3.cpp
+++ b/engines/startrek/rooms/demon3.cpp
@@ -298,7 +298,7 @@ void Room::demon3FinishedAnimation2() {
 
 void Room::demon3FinishedWalking5() {
 	loadActorAnim2(OBJECT_MCCOY, "mscanw", -1, -1, 0);
-	playSoundEffectIndex(0x04);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_MCCOY, TX_DEM3_019);
 
 	_awayMission->disableInput = false;
@@ -376,7 +376,7 @@ void Room::demon3FireAtBoulder() {
 	}
 
 	loadActorAnim(17, _roomVar.demon.boulderAnim, 0, 0, 0);
-	playSoundEffectIndex(0x06);
+	playSoundEffectIndex(kSfxPhaser);
 	if (!_roomVar.demon.boulder1Shot)
 		_awayMission->timers[0] = 1;
 	_awayMission->disableInput = false;
@@ -470,13 +470,13 @@ void Room::demon3BoulderCommon() {
 
 void Room::demon3UseSTricorderOnMiner() {
 	loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0);
-	playSoundEffectIndex(0x04);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, TX_DEM3_008);
 }
 
 void Room::demon3UseSTricorderOnPanel() {
 	loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0);
-	playSoundEffectIndex(0x04);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, TX_DEM3_009);
 }
 
@@ -484,7 +484,7 @@ void Room::demon3UseSTricorderOnBoulder() {
 	if (_awayMission->demon.foundMiner)
 		return;
 	loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0);
-	playSoundEffectIndex(0x04);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, TX_DEM3_010);
 }
 
@@ -492,7 +492,7 @@ void Room::demon3UseMTricorderOnBoulder() {
 	if (_awayMission->demon.foundMiner)
 		return;
 	loadActorAnim2(OBJECT_MCCOY, "mscann", -1, -1, 0);
-	playSoundEffectIndex(0x04);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_MCCOY, TX_DEM3_020);
 }
 
@@ -527,7 +527,7 @@ void Room::demon3RedshirtUsedPanel() {
 		showText(TX_SPEAKER_EVERTS, TX_DEM3_A32);
 
 		loadActorAnim2(OBJECT_REDSHIRT, "rkille", -1, -1, 3);
-		playSoundEffectIndex(0x06);
+		playSoundEffectIndex(kSfxPhaser);
 		_awayMission->redshirtDead = true;
 		_awayMission->demon.field45 = true;
 	} else {
@@ -555,19 +555,19 @@ void Room::demon3RedshirtElectrocuted() {
 
 void Room::demon3UseSTricorderOnDoor() {
 	loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0);
-	playSoundEffectIndex(0x04);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, TX_DEM3_012);
 }
 
 void Room::demon3UseSTricorderOnAnything() {
 	loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0);
-	playSoundEffectIndex(0x04);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, TX_DEM3_027);
 }
 
 void Room::demon3UseMTricorderOnDoor() {
 	loadActorAnim2(OBJECT_SPOCK, "mscann", -1, -1, 0);
-	playSoundEffectIndex(0x04);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_MCCOY, TX_DEM3_016);
 }
 
@@ -604,7 +604,7 @@ void Room::demon3KirkUsedHandPanel() {
 
 void Room::demon3UseMTricorderOnMiner() {
 	loadActorAnim2(OBJECT_MCCOY, "mscann", -1, -1, 0);
-	playSoundEffectIndex(0x04);
+	playSoundEffectIndex(kSfxTricorder);
 
 	if (_awayMission->demon.minerDead) {
 		showText(TX_SPEAKER_MCCOY, TX_DEM3_022);
diff --git a/engines/startrek/rooms/demon4.cpp b/engines/startrek/rooms/demon4.cpp
index 5c30bb70b30..20624bd250a 100644
--- a/engines/startrek/rooms/demon4.cpp
+++ b/engines/startrek/rooms/demon4.cpp
@@ -745,13 +745,13 @@ void Room::demon4TalkToRedshirt() {
 
 void Room::demon4UseSTricorderOnChamber() {
 	loadActorAnim2(OBJECT_SPOCK, "sscane", -1, -1, 0);
-	playSoundEffectIndex(4);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, TX_DEM4_012);
 }
 
 void Room::demon4UseSTricorderOnPattern() {
 	loadActorAnim2(OBJECT_SPOCK, "sscane", -1, -1, 0);
-	playSoundEffectIndex(4);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, TX_DEM4_014);
 	showText(TX_SPEAKER_SPOCK, TX_DEM4_025);
 }
@@ -762,49 +762,49 @@ void Room::demon4UseMTricorderOnPattern() {
 
 void Room::demon4UseSTricorderOnPanel() {
 	loadActorAnim2(OBJECT_SPOCK, "sscane", -1, -1, 0);
-	playSoundEffectIndex(4);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, TX_DEM4_027);
 }
 
 void Room::demon4UseMTricorderOnPanel() {
 	loadActorAnim2(OBJECT_MCCOY, "mscane", -1, -1, 0);
-	playSoundEffectIndex(4);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_MCCOY, TX_DEM4_027); // BUG: Uses spock's voice (though speaker says "Mccoy")
 }
 
 void Room::demon4UseSTricorderOnAnything() {
 	loadActorAnim2(OBJECT_SPOCK, "sscane", -1, -1, 0);
-	playSoundEffectIndex(4);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, TX_DEM4_023);
 }
 
 void Room::demon4UseMTricorderOnAnything() {
 	loadActorAnim2(OBJECT_MCCOY, "mscane", -1, -1, 0);
-	playSoundEffectIndex(4);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_MCCOY, TX_DEM4_020);
 }
 
 void Room::demon4UseSTricorderOnNauian() {
 	loadActorAnim2(OBJECT_SPOCK, "sscane", -1, -1, 0);
-	playSoundEffectIndex(4);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, TX_DEM4_029);
 }
 
 void Room::demon4UseMTricorderOnNauian() {
 	loadActorAnim2(OBJECT_MCCOY, "mscane", -1, -1, 0);
-	playSoundEffectIndex(4);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, TX_DEM4_029); // BUG: Uses spock's voice (speaker says "Spock" too)
 }
 
 void Room::demon4UseSTricorderOnSecurityEquipment() {
 	loadActorAnim2(OBJECT_SPOCK, "sscane", -1, -1, 0);
-	playSoundEffectIndex(4);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, TX_DEM4_026);
 }
 
 void Room::demon4UseMTricorderOnSecurityEquipment() {
 	loadActorAnim2(OBJECT_MCCOY, "mscane", -1, -1, 0);
-	playSoundEffectIndex(4);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, TX_DEM4_026); // BUG: Uses spock's voice (speaker says "Spock" too)
 }
 
diff --git a/engines/startrek/rooms/demon5.cpp b/engines/startrek/rooms/demon5.cpp
index 93bf5985aaa..40aa78053de 100644
--- a/engines/startrek/rooms/demon5.cpp
+++ b/engines/startrek/rooms/demon5.cpp
@@ -199,7 +199,7 @@ void Room::demon5TouchedDoorOpenTrigger() {
 	if (!_roomVar.demon.movingToDoor)
 		return;
 	loadActorAnim(12, "s0r6d1", 0xa0, 0x92, 1);
-	playSoundEffectIndex(0x05);
+	playSoundEffectIndex(kSfxDoor);
 }
 
 void Room::demon5DoorOpenedOrReachedDoor() {
@@ -212,7 +212,7 @@ void Room::demon5DoorOpenedOrReachedDoor() {
 
 void Room::demon5UseSTricorderOnCrate() {
 	loadActorAnim(OBJECT_SPOCK, "sscans", -1, -1, 0);
-	playSoundEffectIndex(0x04);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, TX_DEM5_006);
 }
 
@@ -413,7 +413,7 @@ void Room::demon5UseMTricorderOnRoberts() {
 	if (_roomVar.demon.scannedRoberts)
 		return;
 	loadActorAnim2(OBJECT_MCCOY, "mscane", -1, -1, 0);
-	playSoundEffectIndex(0x04);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_MCCOY, TX_DEM5_015);
 
 	_roomVar.demon.scannedRoberts = true;
@@ -423,7 +423,7 @@ void Room::demon5UseMTricorderOnRoberts() {
 
 void Room::demon5UseMTricorderOnChub() {
 	loadActorAnim2(OBJECT_MCCOY, "mscane", -1, -1, 0);
-	playSoundEffectIndex(0x04);
+	playSoundEffectIndex(kSfxTricorder);
 
 	if (_awayMission->demon.curedChub) {
 		if (_roomVar.demon.scannedChub)
@@ -449,7 +449,7 @@ void Room::demon5UseMTricorderOnGrisnash() {
 	if (_roomVar.demon.scannedGrisnash)
 		return;
 	loadActorAnim2(OBJECT_MCCOY, "mscane", -1, -1, 0);
-	playSoundEffectIndex(0x04);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_MCCOY, TX_DEM5_013);
 
 	_roomVar.demon.scannedGrisnash = true;
@@ -461,7 +461,7 @@ void Room::demon5UseMTricorderOnStephen() {
 	if (_roomVar.demon.scannedStephen)
 		return;
 	loadActorAnim2(OBJECT_MCCOY, "mscanw", -1, -1, 0);
-	playSoundEffectIndex(0x04);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_MCCOY, TX_DEM5_014);
 
 	_roomVar.demon.scannedStephen = true;
diff --git a/engines/startrek/rooms/demon6.cpp b/engines/startrek/rooms/demon6.cpp
index 2f417e515e9..5362d1445b0 100644
--- a/engines/startrek/rooms/demon6.cpp
+++ b/engines/startrek/rooms/demon6.cpp
@@ -257,7 +257,7 @@ void Room::demon6TouchedDoorOpenTrigger() {
 	if (!_roomVar.demon.movingToDoor)
 		return;
 	loadActorAnim(10, "s0r6d1", 0xa0, 0x92, 2);
-	playSoundEffectIndex(5);
+	playSoundEffectIndex(kSfxDoor);
 }
 
 void Room::demon6DoorOpenedOrReachedDoor() {
@@ -555,61 +555,61 @@ void Room::demon6UseHandOnStephen() {
 
 void Room::demon6UseMTricoderOnStephen() {
 	loadActorAnim2(OBJECT_MCCOY, "mscans", -1, -1, 0);
-	playSoundEffectIndex(4);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_MCCOY, TX_DEM6_016);
 }
 
 void Room::demon6UseSTricoderOnTable() {
 	loadActorAnim2(OBJECT_SPOCK, "sscans", -1, -1, 0);
-	playSoundEffectIndex(4);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, TX_DEM6_009);
 }
 
 void Room::demon6UseSTricoderOnComputer() {
 	loadActorAnim2(OBJECT_SPOCK, "sscans", -1, -1, 0);
-	playSoundEffectIndex(4);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, TX_DEM6_007);
 }
 
 void Room::demon6UseSTricoderOnMineral() {
 	loadActorAnim2(OBJECT_SPOCK, "sscans", -1, -1, 0);
-	playSoundEffectIndex(4);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, TX_DEM6_013);
 }
 
 void Room::demon6UseSTricoderOnShells() {
 	loadActorAnim2(OBJECT_SPOCK, "sscans", -1, -1, 0);
-	playSoundEffectIndex(4);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, TX_DEM6_021);
 }
 
 void Room::demon6UseSTricoderOnSkull() {
 	loadActorAnim2(OBJECT_SPOCK, "sscans", -1, -1, 0);
-	playSoundEffectIndex(4);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, TX_DEM6_012);
 }
 
 void Room::demon6UseSTricoderOnMetal() {
 	loadActorAnim2(OBJECT_SPOCK, "sscans", -1, -1, 0);
-	playSoundEffectIndex(4);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, TX_DEM6_011);
 }
 
 void Room::demon6UseSTricoderOnMeteor() {
 	loadActorAnim2(OBJECT_SPOCK, "sscans", -1, -1, 0);
-	playSoundEffectIndex(4);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, TX_DEM6_010);
 }
 
 void Room::demon6UseSTricoderOnCase() {
 	loadActorAnim2(OBJECT_SPOCK, "sscans", -1, -1, 0);
-	playSoundEffectIndex(4);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, TX_DEM6_023);
 }
 
 void Room::demon6UseSTricoderOnSynthesizer() {
 	loadActorAnim2(OBJECT_SPOCK, "sscans", -1, -1, 0);
-	playSoundEffectIndex(4);
+	playSoundEffectIndex(kSfxTricorder);
 	showText(TX_SPEAKER_SPOCK, TX_DEM6_008);
 }
 
diff --git a/engines/startrek/sound.cpp b/engines/startrek/sound.cpp
index 33284a47c86..aff12269632 100644
--- a/engines/startrek/sound.cpp
+++ b/engines/startrek/sound.cpp
@@ -288,54 +288,54 @@ void Sound::stopPlayingSpeech() {
 	}
 }
 
-void Sound::playSoundEffectIndex(int index) {
+void Sound::playSoundEffectIndex(SoundEffects index) {
 	if (!(_vm->getFeatures() & GF_CDROM))
 		playMidiTrack(index);
 	else {
 		switch (index) {
-		case 0x04:
+		case kSfxTricorder:
 			playVoc("tricorde");
 			break;
-		case 0x05:
+		case kSfxDoor:
 			playVoc("STDOOR1");
 			break;
-		case 0x06:
+		case kSfxPhaser:
 			playVoc("PHASSHOT");
 			break;
-		case 0x07:
+		case kSfxButton:
 			playMidiTrack(index);
 			break;
-		case 0x08:
+		case kSfxTransporterDematerialize:
 			playVoc("TRANSDEM");
 			break;
-		case 0x09: // Beaming in?
+		case kSfxTransporterMaterialize:
 			playVoc("TRANSMAT");
 			break;
-		case 0x0a: // Beaming out?
+		case kSfxTransporterEnergize:
 			playVoc("TRANSENE");
 			break;
-		case 0x10: // Menu selection sound
+		case kSfxSelection:
 			playMidiTrack(index);
 			break;
-		case 0x22:
+		case kSfxHailing:
 			playVoc("HAILING");
 			break;
-		case 0x24:
+		case kSfxPhaser2:
 			playVoc("PHASSHOT");
 			break;
-		case 0x25:
+		case kSfxPhotonTorpedoes:
 			playVoc("PHOTSHOT");
 			break;
-		case 0x26:
+		case kSfxShieldHit:
 			playVoc("HITSHIEL");
 			break;
-		case 0x27:
+		case kSfxUnk:
 			playMidiTrack(index);
 			break;
-		case 0x28:
+		case kSfxRedAlert:
 			playVoc("REDALERT");
 			break;
-		case 0x29:
+		case kSfxWarp:
 			playVoc("WARP");
 			break;
 		default:
diff --git a/engines/startrek/sound.h b/engines/startrek/sound.h
index 1cc40b6c797..6fda01d13de 100644
--- a/engines/startrek/sound.h
+++ b/engines/startrek/sound.h
@@ -68,7 +68,7 @@ public:
 	void playSpeech(const Common::String &basename);
 	void stopAllVocSounds();
 	void stopPlayingSpeech();
-	void playSoundEffectIndex(int index);
+	void playSoundEffectIndex(SoundEffects index);
 	void setMusicEnabled(bool enable);
 	void setSfxEnabled(bool enable);
 	void toggleMusic();
diff --git a/engines/startrek/startrek.cpp b/engines/startrek/startrek.cpp
index 148266f4493..62453dd13b4 100644
--- a/engines/startrek/startrek.cpp
+++ b/engines/startrek/startrek.cpp
@@ -323,12 +323,12 @@ void StarTrekEngine::runTransportSequence(const Common::String &name) {
 	_gfx->drawAllSprites();
 	_gfx->fadeinScreen();
 
-	_sound->playSoundEffectIndex(0x0a);
+	_sound->playSoundEffectIndex(kSfxTransporterEnergize);
 
 	if (name.equalsIgnoreCase("teled"))
-		_sound->playSoundEffectIndex(0x08);
+		_sound->playSoundEffectIndex(kSfxTransporterDematerialize);
 	else
-		_sound->playSoundEffectIndex(0x09);
+		_sound->playSoundEffectIndex(kSfxTransporterMaterialize);
 
 	while (_actorList[0].field62 == 0) {
 		TrekEvent event;


Commit: a7c304148f19587ec34a4c1dd87062bb454cd659
    https://github.com/scummvm/scummvm/commit/a7c304148f19587ec34a4c1dd87062bb454cd659
Author: Cameron Cawley (ccawley2011 at gmail.com)
Date: 2024-06-29T16:37:30+03:00

Commit Message:
STARTREK: Always use enum values for MIDI tracks

Changed paths:
    engines/startrek/bridge.cpp
    engines/startrek/intro.cpp
    engines/startrek/room.cpp
    engines/startrek/room.h
    engines/startrek/rooms/demon1.cpp
    engines/startrek/rooms/demon3.cpp
    engines/startrek/rooms/demon4.cpp
    engines/startrek/rooms/demon6.cpp
    engines/startrek/rooms/feather0.cpp
    engines/startrek/rooms/feather1.cpp
    engines/startrek/rooms/feather2.cpp
    engines/startrek/rooms/feather3.cpp
    engines/startrek/rooms/feather4.cpp
    engines/startrek/rooms/feather5.cpp
    engines/startrek/rooms/feather6.cpp
    engines/startrek/rooms/feather7.cpp
    engines/startrek/rooms/love4.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/mudd5.cpp
    engines/startrek/rooms/sins0.cpp
    engines/startrek/rooms/sins1.cpp
    engines/startrek/rooms/sins2.cpp
    engines/startrek/rooms/sins3.cpp
    engines/startrek/rooms/sins4.cpp
    engines/startrek/rooms/sins5.cpp
    engines/startrek/rooms/trial0.cpp
    engines/startrek/rooms/trial2.cpp
    engines/startrek/rooms/trial3.cpp
    engines/startrek/rooms/trial4.cpp
    engines/startrek/rooms/trial5.cpp
    engines/startrek/rooms/tug0.cpp
    engines/startrek/rooms/tug2.cpp
    engines/startrek/rooms/tug3.cpp
    engines/startrek/saveload.cpp
    engines/startrek/sound.cpp
    engines/startrek/sound.h
    engines/startrek/soundeffects.h


diff --git a/engines/startrek/bridge.cpp b/engines/startrek/bridge.cpp
index 1e22a069e39..0ee355312f8 100644
--- a/engines/startrek/bridge.cpp
+++ b/engines/startrek/bridge.cpp
@@ -163,7 +163,7 @@ void StarTrekEngine::playBridgeSequence(int sequenceId) {
 		showTextboxBridge(kBridgeTalkerSpock, 2);
 		// TODO: sub_2FF19("enterpri") // random number generation
 		// TODO: changeBridgeMode 1
-		_sound->playMidiMusicTracks(2, -1);
+		_sound->playMidiMusicTracks(MIDITRACK_2);
 		_sound->playSoundEffectIndex(kSfxRedAlert);
 
 		// HACK: Play the end of the mock battle sequence, until the 3D code is implemented
@@ -172,7 +172,7 @@ void StarTrekEngine::playBridgeSequence(int sequenceId) {
 	case kSeqEndMockBattle:
 		if (true) {	// TODO: Check for Enterprise damage
 			// Mock battle won
-			_sound->playMidiMusicTracks(3, -1);
+			_sound->playMidiMusicTracks(MIDITRACK_3);
 			showTextboxBridge(kBridgeTalkerSpock, 4);
 			showTextboxBridge(kBridgeTalkerUhura, 5);
 			// TODO: sub_2f4c3()
@@ -219,7 +219,7 @@ void StarTrekEngine::playBridgeSequence(int sequenceId) {
 		_resource->setTxtFileName(_missionName);
 		_sound->loadMusicFile("bridge");
 		showMissionStartEnterpriseFlyby("TUG0\\FLYBY", "hijacked");
-		_sound->playMidiMusicTracks(0, -1);
+		_sound->playMidiMusicTracks(MIDITRACK_0);
 		_sound->playSoundEffectIndex(kSfxHailing);
 		showTextboxBridge(kBridgeTalkerUhura, 0);
 		showTextboxBridge(kBridgeTalkerKirk, 1);
@@ -238,10 +238,10 @@ void StarTrekEngine::playBridgeSequence(int sequenceId) {
 		initStarfieldSprite(&_starfieldSprite, new StubBitmap(0, 0), _starfieldRect);
 		_sound->playSoundEffectIndex(kSfxRedAlert);
 		_enterpriseState.underAttack = true;
-		_sound->playMidiMusicTracks(2, -1);
+		_sound->playMidiMusicTracks(MIDITRACK_2);
 		startBattle("orion"); // Elasi Pirate battle
 		_enterpriseState.underAttack = false;
-		_sound->playMidiMusicTracks(3, -1);
+		_sound->playMidiMusicTracks(MIDITRACK_3);
 		showTextboxBridge(kBridgeTalkerChekov, 14);	// Captain they are fleeing!
 		showTextboxBridge(kBridgeTalkerSpock, 15);	// The enemy ship's initial intercept course...
 		_bridgeSequenceToLoad = kSeqArrivedAtBetaMyamid;
@@ -310,7 +310,7 @@ void StarTrekEngine::playBridgeSequence(int sequenceId) {
 		showTextboxBridge(kBridgeTalkerUhura, 6);	// Message from the Romulan ship, Sir
 		showBridgeScreenTalkerWithMessage(9, "Romulan Captain", "romula");
 		showTextboxBridge(kBridgeTalkerSpock, 10);
-		_sound->playMidiMusicTracks(2, -1);
+		_sound->playMidiMusicTracks(MIDITRACK_2);
 		_enterpriseState.underAttack = true;
 		// HACK: Play the end of the Romulan battle sequence, until the 3D code is implemented
 		_bridgeSequenceToLoad = kSeqAfterRomulanBattle;
@@ -368,7 +368,7 @@ void StarTrekEngine::playBridgeSequence(int sequenceId) {
 		showTextboxBridge(kBridgeTalkerUhura, 7);
 		showBridgeScreenTalkerWithMessage(14, "Elasi Pirate", "pira");
 		_enterpriseState.underAttack = true;
-		_sound->playMidiMusicTracks(2, -1);
+		_sound->playMidiMusicTracks(MIDITRACK_2);
 		startBattle("orion");	// Pirate Ship 1
 		startBattle("orion");	// Pirate Ship 2
 		_enterpriseState.underAttack = false;
@@ -862,32 +862,32 @@ Common::String StarTrekEngine::getSpeechSampleForNumber(int number) {
 // TODO: one more parameter
 void StarTrekEngine::showMissionPerformance(int score, int missionScoreTextId, int missionId) {
 	Common::String performanceDescription;
-	int midiTrack = 0;
+	MidiTracks midiTrack = 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;
+		midiTrack = 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;
+		midiTrack = MIDITRACK_13;
 	} else if (score >= 71 && score <= 85) {
 		performanceDescription = "#BRID\\B_214#Well done, Captain. Keep up the good work.";
 		commendationPoints = 2;
-		midiTrack = 11;
+		midiTrack = 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;
+		midiTrack = 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;
+		midiTrack = MIDITRACK_14;
 	}
 
-	_sound->playMidiMusicTracks(midiTrack, -1);
+	_sound->playMidiMusicTracks(midiTrack);
 
 	Common::String speechIdPerformance = getSpeechSampleForNumber(score);
 	Common::String speechIdCommendationPoints = getSpeechSampleForNumber(commendationPoints);
@@ -923,9 +923,9 @@ void StarTrekEngine::showBridgeScreenTalkerWithMessage(int textId, Common::Strin
 
 void StarTrekEngine::showBridgeScreenTalkerWithMessages(Common::String texts[], Common::String talkerHeader, Common::String talkerId, bool removeTalker) {
 	if (talkerId == "romula" || talkerId == "pira" || talkerId == "klg1" || talkerId == "klg2" || talkerId == "maddoc")
-		_sound->playMidiMusicTracks(15, -1);
+		_sound->playMidiMusicTracks(MIDITRACK_15);
 	else if (talkerId == "mudd")
-		_sound->playMidiMusicTracks(17, -1);
+		_sound->playMidiMusicTracks(MIDITRACK_17);
 
 	initStarfieldSprite(&_starfieldSprite, new Bitmap(_resource->loadBitmapFile(talkerId)), _starfieldRect);
 	_starfieldSprite.drawMode = 0;
diff --git a/engines/startrek/intro.cpp b/engines/startrek/intro.cpp
index 5c9725e28b0..b46dcb4b04b 100644
--- a/engines/startrek/intro.cpp
+++ b/engines/startrek/intro.cpp
@@ -123,7 +123,7 @@ void StarTrekEngine::playIntro() {
 		switch (frame) {
 		case 0: // Starfield is shown
 			starfieldZoomSpeed = 10;
-			_sound->playMidiMusicTracks(MIDITRACK_0, -1);
+			_sound->playMidiMusicTracks(MIDITRACK_0);
 			_byte_45b3c = 0;
 			break;
 
diff --git a/engines/startrek/room.cpp b/engines/startrek/room.cpp
index fd2409a2ab7..0535313f676 100644
--- a/engines/startrek/room.cpp
+++ b/engines/startrek/room.cpp
@@ -514,8 +514,8 @@ void Room::playSoundEffectIndex(SoundEffects soundEffect) {
 	_vm->_sound->playSoundEffectIndex(soundEffect);
 }
 
-void Room::playMidiMusicTracks(int startTrack, int loopTrack) {
-	_vm->_sound->playMidiMusicTracks(startTrack, loopTrack);
+void Room::playMidiMusicTracks(MidiTracks startTrack, MidiLoopType loopType) {
+	_vm->_sound->playMidiMusicTracks(startTrack, loopType);
 }
 
 void Room::endMission(int16 score, int16 arg1, int16 arg2) {
diff --git a/engines/startrek/room.h b/engines/startrek/room.h
index 04d30882e76..b78f7e9450d 100644
--- a/engines/startrek/room.h
+++ b/engines/startrek/room.h
@@ -266,7 +266,7 @@ private:
 	/**
 	 * Cmd 0x10
 	 */
-	void playMidiMusicTracks(int startTrack, int loopTrack = -1);
+	void playMidiMusicTracks(MidiTracks startTrack, MidiLoopType loopType = kLoopTypeNone);
 	/**
 	 * Cmd 0x11
 	 */
diff --git a/engines/startrek/rooms/demon1.cpp b/engines/startrek/rooms/demon1.cpp
index 66a8b63a098..7aaa853e560 100644
--- a/engines/startrek/rooms/demon1.cpp
+++ b/engines/startrek/rooms/demon1.cpp
@@ -196,7 +196,7 @@ void Room::demon1Tick1() {
 	playVoc("DEM1LOOP");
 
 	if (!_awayMission->demon.beatKlingons)
-		playMidiMusicTracks(1, -1);
+		playMidiMusicTracks(MIDITRACK_1);
 
 	if (_awayMission->demon.enteredFrom == 1) { // Entered from south
 		_awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N;
diff --git a/engines/startrek/rooms/demon3.cpp b/engines/startrek/rooms/demon3.cpp
index f7e6d787afe..ef01b0e96c0 100644
--- a/engines/startrek/rooms/demon3.cpp
+++ b/engines/startrek/rooms/demon3.cpp
@@ -246,7 +246,7 @@ void Room::demon3Tick1() {
 
 	if (!_awayMission->demon.field56) {
 		_awayMission->demon.field56 = true;
-		playMidiMusicTracks(0, -1);
+		playMidiMusicTracks(MIDITRACK_0);
 	}
 }
 
@@ -258,7 +258,7 @@ void Room::demon3Timer0Expired() {
 	_awayMission->demon.boulder1Gone = true;
 	_awayMission->demon.numBouldersGone++;
 	_awayMission->disableInput = true;
-	playMidiMusicTracks(2, -1);
+	playMidiMusicTracks(MIDITRACK_2);
 	playVoc("BOULDERK");
 }
 
diff --git a/engines/startrek/rooms/demon4.cpp b/engines/startrek/rooms/demon4.cpp
index 20624bd250a..eba4273a5da 100644
--- a/engines/startrek/rooms/demon4.cpp
+++ b/engines/startrek/rooms/demon4.cpp
@@ -206,7 +206,7 @@ void Room::demon4Tick1() {
 
 	if (!_awayMission->demon.foundAlienRoom) {
 		_awayMission->demon.foundAlienRoom = true;
-		playMidiMusicTracks(1, -1);
+		playMidiMusicTracks(MIDITRACK_1);
 	}
 }
 
diff --git a/engines/startrek/rooms/demon6.cpp b/engines/startrek/rooms/demon6.cpp
index 5362d1445b0..c2103462ce6 100644
--- a/engines/startrek/rooms/demon6.cpp
+++ b/engines/startrek/rooms/demon6.cpp
@@ -386,7 +386,7 @@ void Room::demon6MccoyReachedSynthesizer() {
 }
 
 void Room::demon6FinishedMakingHypoDytoxin() {
-	playMidiMusicTracks(-1, -1);
+	playMidiMusicTracks(MIDITRACK_NONE);
 	showDescription(TX_DEM6N023);
 	showText(TX_SPEAKER_MCCOY, TX_DEM6_018);
 
diff --git a/engines/startrek/rooms/feather0.cpp b/engines/startrek/rooms/feather0.cpp
index 595c2550659..6b0c9128f8a 100644
--- a/engines/startrek/rooms/feather0.cpp
+++ b/engines/startrek/rooms/feather0.cpp
@@ -155,7 +155,7 @@ void Room::feather0Tick1() {
 }
 
 void Room::feather0Tick60() {
-	playMidiMusicTracks(33);
+	playMidiMusicTracks(MIDITRACK_33);
 }
 
 void Room::feather0TalkToQuetzecoatl() {
@@ -233,7 +233,7 @@ void Room::feather0TalkToQuetzecoatl() {
 	// Quetzecoatl ultimately warps the crew away no matter what
 	_awayMission->disableInput = true;
 	loadActorAnim(OBJECT_QUETZECOATL, "s5r0qt");
-	playMidiMusicTracks(1);
+	playMidiMusicTracks(MIDITRACK_1);
 	_awayMission->timers[0] = 50;
 	_awayMission->timers[1] = 64;
 }
diff --git a/engines/startrek/rooms/feather1.cpp b/engines/startrek/rooms/feather1.cpp
index 58a126ad1a4..648ae07b086 100644
--- a/engines/startrek/rooms/feather1.cpp
+++ b/engines/startrek/rooms/feather1.cpp
@@ -259,7 +259,7 @@ extern const RoomText feather1Texts[] = {
 
 void Room::feather1Tick1() {
 	playVoc("FEA1LOOP");
-	playMidiMusicTracks(27);
+	playMidiMusicTracks(MIDITRACK_27);
 
 	if (_awayMission->feather.vineState == 0)
 		_awayMission->disableInput = true;
diff --git a/engines/startrek/rooms/feather2.cpp b/engines/startrek/rooms/feather2.cpp
index c06dc306e01..578cfb127af 100644
--- a/engines/startrek/rooms/feather2.cpp
+++ b/engines/startrek/rooms/feather2.cpp
@@ -100,7 +100,7 @@ extern const RoomText feather2Texts[] = {
 
 void Room::feather2Tick1() {
 	playVoc("FEA2LOOP");
-	playMidiMusicTracks(27);
+	playMidiMusicTracks(MIDITRACK_27);
 }
 
 void Room::feather2UseCommunicator() {
diff --git a/engines/startrek/rooms/feather3.cpp b/engines/startrek/rooms/feather3.cpp
index 431b5d6180a..a8b371ec475 100644
--- a/engines/startrek/rooms/feather3.cpp
+++ b/engines/startrek/rooms/feather3.cpp
@@ -179,7 +179,7 @@ extern const RoomText feather3Texts[] = {
 
 void Room::feather3Tick1() {
 	playVoc("FEA3LOOP");
-	playMidiMusicTracks(27);
+	playMidiMusicTracks(MIDITRACK_27);
 
 	if (!_awayMission->feather.tlaoxacTestPassed) {
 		loadActorAnim(OBJECT_TLAOXAC, "s5r3as", 0x2e, 0xab);
@@ -391,7 +391,7 @@ void Room::feather3TalkToTlaoxac() {
 				showText(TX_SPEAKER_TLAOXAC, TX_FEA3_040);
 				_awayMission->disableInput = true;
 				loadActorAnimC(OBJECT_TLAOXAC, "s5r3aj", -1, -1, &Room::feather3TlaoxacKilledRedshirt);
-				playMidiMusicTracks(2);
+				playMidiMusicTracks(MIDITRACK_2);
 				loadActorAnim(OBJECT_REDSHIRT, "s5r3rd");
 				_awayMission->redshirtDead = true;
 			} else
diff --git a/engines/startrek/rooms/feather4.cpp b/engines/startrek/rooms/feather4.cpp
index 6e8a8079d47..9d0a3248b36 100644
--- a/engines/startrek/rooms/feather4.cpp
+++ b/engines/startrek/rooms/feather4.cpp
@@ -110,7 +110,7 @@ extern const RoomText feather4Texts[] = {
 
 void Room::feather4Tick1() {
 	playVoc("FEA4LOOP");
-	playMidiMusicTracks(27);
+	playMidiMusicTracks(MIDITRACK_27);
 }
 
 void Room::feather4UseCommunicator() {
diff --git a/engines/startrek/rooms/feather5.cpp b/engines/startrek/rooms/feather5.cpp
index 5308fd92532..785d80cddbb 100644
--- a/engines/startrek/rooms/feather5.cpp
+++ b/engines/startrek/rooms/feather5.cpp
@@ -143,7 +143,7 @@ extern const RoomText feather5Texts[] = {
 
 void Room::feather5Tick1() {
 	playVoc("FEA5LOOP");
-	playMidiMusicTracks(29);
+	playMidiMusicTracks(MIDITRACK_29);
 
 	if (!_awayMission->feather.waterMonsterRetreated)
 		loadActorAnim(OBJECT_MONSTER, "s5r5os", 0x4e, 0xa4);
@@ -181,7 +181,7 @@ void Room::feather5UseRedshirtOnLeftExit() {
 }
 
 void Room::feather5RedshirtReachedLog() {
-	playMidiMusicTracks(2);
+	playMidiMusicTracks(MIDITRACK_2);
 	playVoc("TENTICL2");
 	loadActorAnim(OBJECT_MONSTER, "s5r5oh", 0x4e, 0xa4);
 	loadActorAnimC(OBJECT_REDSHIRT, "s5r5ol", 0x8f, 0x64, &Room::feather5RedshirtDeathFinished);
diff --git a/engines/startrek/rooms/feather6.cpp b/engines/startrek/rooms/feather6.cpp
index fabfcb6fe6c..02675cb4054 100644
--- a/engines/startrek/rooms/feather6.cpp
+++ b/engines/startrek/rooms/feather6.cpp
@@ -193,7 +193,7 @@ extern const RoomText feather6Texts[] = {
 
 void Room::feather6Tick1() {
 	playVoc("FEA6LOOP");
-	playMidiMusicTracks(27);
+	playMidiMusicTracks(MIDITRACK_27);
 	loadActorAnim(OBJECT_CRYSTALS, "s5r6cx", 0x8a, 0x91);
 	loadActorAnim(OBJECT_STALACTITES, "s5r6ts", 0x90, 0x25);
 }
@@ -227,7 +227,7 @@ void Room::feather6ReachedPositionToThrowRock() {
 void Room::feather6DoneThrowingRock() {
 	loadActorAnim2(OBJECT_STALACTITES, "s5r6tf");
 	loadActorAnimC(OBJECT_KIRK, "s5r6kd", -1, -1, &Room::feather6KirkDiedFromStalactites);
-	playMidiMusicTracks(1);
+	playMidiMusicTracks(MIDITRACK_1);
 }
 
 void Room::feather6KirkDiedFromStalactites() {
@@ -266,7 +266,7 @@ void Room::feather6HitCrystalsWithRockFirstTime() {
 void Room::feather6HitCrystalsWithRockSecondTime() {
 	loadActorAnimC(OBJECT_KIRK, "s5r6kd", -1, -1, &Room::feather6KirkDiedFromStalactites);
 	loadActorAnim2(OBJECT_STALACTITES, "s5r6tf");
-	playMidiMusicTracks(0);
+	playMidiMusicTracks(MIDITRACK_0);
 }
 
 void Room::feather6UseRockOnStalagmites() {
diff --git a/engines/startrek/rooms/feather7.cpp b/engines/startrek/rooms/feather7.cpp
index c179f38513e..cd17eb245a0 100644
--- a/engines/startrek/rooms/feather7.cpp
+++ b/engines/startrek/rooms/feather7.cpp
@@ -93,7 +93,7 @@ extern const RoomText feather7Texts[] = {
 
 void Room::feather7Tick1() {
 	playVoc("FEA7LOOP");
-	playMidiMusicTracks(33);
+	playMidiMusicTracks(MIDITRACK_33);
 	_awayMission->disableInput = 2;
 	loadActorAnim(OBJECT_QUETZECOATL, "s5r7qn", 0x106, 0x98);
 }
diff --git a/engines/startrek/rooms/love4.cpp b/engines/startrek/rooms/love4.cpp
index 35f12cace24..9f4ce61661a 100644
--- a/engines/startrek/rooms/love4.cpp
+++ b/engines/startrek/rooms/love4.cpp
@@ -302,7 +302,7 @@ void Room::love4Tick1() {
 
 void Room::love4Tick10() {
 	if (!_awayMission->love.visitedRoomWithRomulans) {
-		playMidiMusicTracks(1, -1);
+		playMidiMusicTracks(MIDITRACK_1);
 		_awayMission->love.visitedRoomWithRomulans = true;
 	}
 }
diff --git a/engines/startrek/rooms/lovea.cpp b/engines/startrek/rooms/lovea.cpp
index 9d37fae54a6..20ea9335870 100644
--- a/engines/startrek/rooms/lovea.cpp
+++ b/engines/startrek/rooms/lovea.cpp
@@ -240,7 +240,7 @@ void Room::loveaTimer2Expired() {
 		_awayMission->love.spockInfectionCounter++;
 		if (_awayMission->love.spockInfectionCounter >= 100) { // Spock succumbs, game over
 			loadActorAnim(OBJECT_SPOCK, "sgetdn", -1, -1, 0);
-			playMidiMusicTracks(2, -1); // FIXME: assembly had no second parameter...?
+			playMidiMusicTracks(MIDITRACK_2); // FIXME: assembly had no second parameter...?
 			showDescription(TX_GENER004);
 			showGameOverMenu();
 		} else if (_awayMission->love.spockInfectionCounter == 15) {
@@ -304,7 +304,7 @@ void Room::loveaUseHumanLaughingGas() {
 	showText(TX_SPEAKER_SPOCK, TX_MUD2_040);
 	_awayMission->love.releasedHumanLaughingGas = true;
 	loseItem(OBJECT_IN2O);
-	playMidiMusicTracks(3, -1); // FIXME: assembly had no second parameter...?
+	playMidiMusicTracks(MIDITRACK_3); // FIXME: assembly had no second parameter...?
 
 	// BUGFIX: start the effects immediately
 	_awayMission->timers[0] = getRandomWordInRange(200, 400);
diff --git a/engines/startrek/rooms/mudd0.cpp b/engines/startrek/rooms/mudd0.cpp
index 1034b311305..1a929c261c9 100644
--- a/engines/startrek/rooms/mudd0.cpp
+++ b/engines/startrek/rooms/mudd0.cpp
@@ -199,7 +199,7 @@ void Room::mudd0Tick1() {
 
 void Room::mudd0Tick50() {
 	if (!_awayMission->mudd.enteredRoom0ForFirstTime) {
-		playMidiMusicTracks(3);
+		playMidiMusicTracks(MIDITRACK_3);
 		_awayMission->mudd.enteredRoom0ForFirstTime = true;
 	}
 }
diff --git a/engines/startrek/rooms/mudd1.cpp b/engines/startrek/rooms/mudd1.cpp
index 7a8c3659e38..b60ccbc266b 100644
--- a/engines/startrek/rooms/mudd1.cpp
+++ b/engines/startrek/rooms/mudd1.cpp
@@ -181,7 +181,7 @@ void Room::mudd1Tick1() {
 	playVoc("MUD1LOOP"); // BUGFIX: moved this out of below if statement
 
 	if (!_awayMission->mudd.enteredRoom1ForFirstTime) {
-		playMidiMusicTracks(0);
+		playMidiMusicTracks(MIDITRACK_0);
 		_awayMission->mudd.enteredRoom1ForFirstTime = true;
 	}
 
diff --git a/engines/startrek/rooms/mudd2.cpp b/engines/startrek/rooms/mudd2.cpp
index ed154148869..4acb9ae3f3e 100644
--- a/engines/startrek/rooms/mudd2.cpp
+++ b/engines/startrek/rooms/mudd2.cpp
@@ -245,7 +245,7 @@ void Room::mudd2Tick1() {
 	} else if (_awayMission->mudd.muddUnavailable) {
 		_awayMission->mudd.muddInsanityState = 1;
 	} else if (_awayMission->mudd.muddInsanityState == 1) { // Second time entering room, start cutscene
-		playMidiMusicTracks(3);
+		playMidiMusicTracks(MIDITRACK_3);
 		loadActorAnim2(OBJECT_MUDD, "s4sbhw", 0x99, 0xbf);
 		_awayMission->disableInput = 2;
 		_awayMission->mudd.muddInhaledGas = true;
@@ -351,7 +351,7 @@ void Room::mudd2MuddNoticedKirk() {
 	showText(TX_SPEAKER_MUDD, TX_MUD2_044);
 	playVoc("BATTYGAS");
 	loadActorAnimC(OBJECT_MUDD, "s4sbhb", 0x9f, 0xbf, &Room::mudd2MuddDroppedCapsule); // Drops the capsule
-	playMidiMusicTracks(0);
+	playMidiMusicTracks(MIDITRACK_0);
 }
 
 void Room::mudd2MuddDroppedCapsule() {
diff --git a/engines/startrek/rooms/mudd3.cpp b/engines/startrek/rooms/mudd3.cpp
index de9f6f2fed0..4f25565d992 100644
--- a/engines/startrek/rooms/mudd3.cpp
+++ b/engines/startrek/rooms/mudd3.cpp
@@ -231,7 +231,7 @@ void Room::mudd3Tick1() {
 	if (!_awayMission->mudd.muddVisitedDatabaseRoom && _awayMission->mudd.translatedAlienLanguage && !_awayMission->mudd.muddUnavailable) {
 		_awayMission->mudd.muddVisitedDatabaseRoom = true;
 		loadActorAnim(OBJECT_MUDD, "s4lbhs", 0xa2, 0x9f);
-		playMidiMusicTracks(3);
+		playMidiMusicTracks(MIDITRACK_3);
 		_awayMission->mudd.muddInDatabaseRoom = true;
 		_awayMission->timers[2] = 10;
 	}
@@ -450,7 +450,7 @@ void Room::mudd3Timer2Expired() {
 		showText(TX_SPEAKER_MUDD, TX_MUD3_064);
 		_awayMission->timers[4] = 98;
 		_awayMission->disableInput = 2;
-		playMidiMusicTracks(26);
+		playMidiMusicTracks(MIDITRACK_26);
 		loadActorAnim(OBJECT_MUDD, "s4lbhb", 0xa2, 0x9f);
 	}
 }
diff --git a/engines/startrek/rooms/mudd4.cpp b/engines/startrek/rooms/mudd4.cpp
index d3b1701a553..cf19285855d 100644
--- a/engines/startrek/rooms/mudd4.cpp
+++ b/engines/startrek/rooms/mudd4.cpp
@@ -552,7 +552,7 @@ void Room::mudd4TalkWithMuddAtMissionEnd() {
 		_awayMission->crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_E;
 		loadActorStandAnim(OBJECT_REDSHIRT);
 
-		playMidiMusicTracks(3);
+		playMidiMusicTracks(MIDITRACK_3);
 		loadActorAnim(OBJECT_11, "s4crhw", 0x13f, 0xc7);
 	}
 }
@@ -614,7 +614,7 @@ void Room::mudd4KirkReachedPositionToTalkToMudd() {
 				showText(TX_SPEAKER_KIRK, TX_MUD4_011);
 
 				_awayMission->mudd.missionScore += 4;
-				playMidiMusicTracks(30);
+				playMidiMusicTracks(MIDITRACK_30);
 
 				showText(TX_SPEAKER_MUDD, TX_MUD4_073);
 				showText(TX_SPEAKER_KIRK, TX_MUD4_035);
diff --git a/engines/startrek/rooms/mudd5.cpp b/engines/startrek/rooms/mudd5.cpp
index 8fd90c51d06..9efc4957a00 100644
--- a/engines/startrek/rooms/mudd5.cpp
+++ b/engines/startrek/rooms/mudd5.cpp
@@ -172,7 +172,7 @@ void Room::mudd5Tick1() {
 
 	_awayMission->crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_E;
 	if (_awayMission->mudd.lifeSupportMalfunctioning) {
-		playMidiMusicTracks(19);
+		playMidiMusicTracks(MIDITRACK_19);
 		loadActorAnim(OBJECT_LIFE_SUPPORT_GENERATOR, "s4epls", GENERATOR_X, GENERATOR_Y);
 	} else {
 		loadActorAnim(OBJECT_LIFE_SUPPORT_GENERATOR, "s4eplo", GENERATOR_X, GENERATOR_Y);
@@ -182,7 +182,7 @@ void Room::mudd5Tick1() {
 			_awayMission->mudd.muddUnavailable = true;
 			_awayMission->mudd.numTimesEnteredRoom5 = 1;
 			_awayMission->disableInput = 2;
-			playMidiMusicTracks(3);
+			playMidiMusicTracks(MIDITRACK_3);
 			loadActorAnim(OBJECT_MUDD, "s4ephh", 0x0e, 0xa7);
 			_awayMission->timers[1] = 112;
 			_awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_W;
@@ -209,7 +209,7 @@ void Room::mudd5Timer1Expired() { // Mudd enters room through hatch
 void Room::mudd5Timer2Expired() { // Life-support generator starts acting up
 	_awayMission->disableInput = false;
 	_awayMission->mudd.lifeSupportMalfunctioning = true;
-	playMidiMusicTracks(19);
+	playMidiMusicTracks(MIDITRACK_19);
 	loadActorAnim(OBJECT_LIFE_SUPPORT_GENERATOR, "s4epls", GENERATOR_X, GENERATOR_Y);
 }
 
@@ -273,7 +273,7 @@ void Room::mudd5KirkReachedLifeSupportGenerator() {
 }
 
 void Room::mudd5KirkTimer4Expired() {
-	playMidiMusicTracks(-1);
+	playMidiMusicTracks(MIDITRACK_NONE);
 	loadActorAnim2(OBJECT_LIFE_SUPPORT_GENERATOR, "s4eplo");
 	_awayMission->mudd.repairedLifeSupportGenerator = true;
 	_awayMission->mudd.missionScore += 2;
@@ -285,7 +285,7 @@ void Room::mudd5KirkRepairedLifeSupportGenerator() {
 
 	_awayMission->mudd.lifeSupportMalfunctioning = false;
 	_awayMission->mudd.muddUnavailable = false;
-	playMidiMusicTracks(3);
+	playMidiMusicTracks(MIDITRACK_3);
 	loadActorAnim(OBJECT_MUDD, "s4ephh", 0x0e, 0xa7);
 	_awayMission->disableInput = true;
 
diff --git a/engines/startrek/rooms/sins0.cpp b/engines/startrek/rooms/sins0.cpp
index e3a5314a215..5a1390353c3 100644
--- a/engines/startrek/rooms/sins0.cpp
+++ b/engines/startrek/rooms/sins0.cpp
@@ -161,7 +161,7 @@ void Room::sins0Tick1() {
 	else if (_awayMission->sins.openedOuterDoor)
 		loadActorAnim2(OBJECT_DOOR, "s0dr1", 0, 0);
 
-	playMidiMusicTracks(MIDITRACK_27, -3);
+	playMidiMusicTracks(MIDITRACK_27, kLoopTypeRepeat);
 }
 
 void Room::sins0LookAnywhere() {
diff --git a/engines/startrek/rooms/sins1.cpp b/engines/startrek/rooms/sins1.cpp
index 0296a7db283..101bc3d1a8d 100644
--- a/engines/startrek/rooms/sins1.cpp
+++ b/engines/startrek/rooms/sins1.cpp
@@ -184,10 +184,10 @@ void Room::sins1Tick1() {
 	_awayMission->sins.field32 = 1;
 	_awayMission->sins.field31 = 1;
 
-	playMidiMusicTracks(MIDITRACK_27, -3);
+	playMidiMusicTracks(MIDITRACK_27, kLoopTypeRepeat);
 
 	if (!_awayMission->sins.enteredRoom1FirstTime) {
-		playMidiMusicTracks(MIDITRACK_1, -2);
+		playMidiMusicTracks(MIDITRACK_1, kLoopTypeLast);
 		_awayMission->sins.enteredRoom1FirstTime = true;
 	}
 }
diff --git a/engines/startrek/rooms/sins2.cpp b/engines/startrek/rooms/sins2.cpp
index 3b30c21fd06..ee2f7e66461 100644
--- a/engines/startrek/rooms/sins2.cpp
+++ b/engines/startrek/rooms/sins2.cpp
@@ -184,7 +184,7 @@ extern const RoomText sins2Texts[] = {
 
 void Room::sins2Tick1() {
 	playVoc("SIN2LOOP");
-	playMidiMusicTracks(MIDITRACK_27, -3);
+	playMidiMusicTracks(MIDITRACK_27, kLoopTypeRepeat);
 
 	if (!_awayMission->sins.enteredRoom2FirstTime)
 		_awayMission->disableInput = 2;
diff --git a/engines/startrek/rooms/sins3.cpp b/engines/startrek/rooms/sins3.cpp
index 258e039d5e9..ae5e66b796a 100644
--- a/engines/startrek/rooms/sins3.cpp
+++ b/engines/startrek/rooms/sins3.cpp
@@ -217,7 +217,7 @@ void Room::sins3Tick1() {
 		loadActorAnim2(OBJECT_ITEM, "s3card", 0, 0);
 
 	_awayMission->sins.gatheredClues |= 2;
-	playMidiMusicTracks(MIDITRACK_27, -3);
+	playMidiMusicTracks(MIDITRACK_27, kLoopTypeRepeat);
 }
 
 void Room::sins3UseSTricorderOnBox() {
diff --git a/engines/startrek/rooms/sins4.cpp b/engines/startrek/rooms/sins4.cpp
index 72e918a32d4..6adb7e084b1 100644
--- a/engines/startrek/rooms/sins4.cpp
+++ b/engines/startrek/rooms/sins4.cpp
@@ -184,7 +184,7 @@ void Room::sins4Tick1() {
 	if (_awayMission->sins.unlockedIDCardDoor)
 		loadActorAnim2(OBJECT_NORTH_DOOR, "s4dro", 0, 0);
 
-	playMidiMusicTracks(MIDITRACK_27, -3);
+	playMidiMusicTracks(MIDITRACK_27, kLoopTypeRepeat);
 }
 
 void Room::sins4UseSTricorderOnPanel() {
diff --git a/engines/startrek/rooms/sins5.cpp b/engines/startrek/rooms/sins5.cpp
index a748d31898a..747e38d2f51 100644
--- a/engines/startrek/rooms/sins5.cpp
+++ b/engines/startrek/rooms/sins5.cpp
@@ -235,11 +235,11 @@ void Room::sins5Tick1() {
 	if (!_awayMission->sins.playedMusicUponEnteringRoom5FirstTime) {
 		// NOTE: The music gets drowned out due to a different track being played
 		// immediately after.
-		playMidiMusicTracks(MIDITRACK_0, -1);
+		playMidiMusicTracks(MIDITRACK_0);
 		_awayMission->sins.playedMusicUponEnteringRoom5FirstTime = true;
 	}
 
-	playMidiMusicTracks(MIDITRACK_27, -3);
+	playMidiMusicTracks(MIDITRACK_27, kLoopTypeRepeat);
 }
 
 void Room::sins5UseSTricorderAnywhere() {
@@ -404,7 +404,7 @@ void Room::sins5WireConnected() {
 		loadActorAnim2(OBJECT_CABLE, "s5cabl", 0, 0);
 		showDescription(TX_SIN5N004);
 		loseItem(OBJECT_ICONECT);
-		playMidiMusicTracks(MIDITRACK_30, -1);
+		playMidiMusicTracks(MIDITRACK_30);
 	}
 	_awayMission->disableInput = false;
 }
@@ -483,7 +483,7 @@ void Room::sins5Timer2Expired() {
 }
 
 void Room::sins5ComputerLaunchesMissiles() {
-	playMidiMusicTracks(MIDITRACK_2, -1);
+	playMidiMusicTracks(MIDITRACK_2);
 	showDescription(TX_SIN5N012);
 	showDescription(TX_SIN5N013);
 	showGameOverMenu();
diff --git a/engines/startrek/rooms/trial0.cpp b/engines/startrek/rooms/trial0.cpp
index cceb11737f9..4713c175ec3 100644
--- a/engines/startrek/rooms/trial0.cpp
+++ b/engines/startrek/rooms/trial0.cpp
@@ -304,7 +304,7 @@ void Room::trial0ReachedRoomCenter() {
 		gaveUp = true;
 
 	if (gaveUp) {
-		playMidiMusicTracks(2, -1);
+		playMidiMusicTracks(MIDITRACK_2);
 		showText(TX_SPEAKER_VLICT, TX_TRI0_049);
 		showText(TX_SPEAKER_VLICT, TX_TRI0_044);
 		_awayMission->trial.missionEndMethod = 0;
diff --git a/engines/startrek/rooms/trial2.cpp b/engines/startrek/rooms/trial2.cpp
index ac236c86245..377bfc6ec06 100644
--- a/engines/startrek/rooms/trial2.cpp
+++ b/engines/startrek/rooms/trial2.cpp
@@ -212,7 +212,7 @@ void Room::trial2Tick1() {
 		_awayMission->disableInput = 2;
 
 	if (!_awayMission->trial.globDefeated) {
-		playMidiMusicTracks(MIDITRACK_24, -1);
+		playMidiMusicTracks(MIDITRACK_24);
 		loadMapFile("trial22");
 
 		if (!_awayMission->trial.globSplitInTwo) {
@@ -371,7 +371,7 @@ void Room::trial2GlobDoneExploding() {
 	playVoc("Noooloop");
 	showText(TX_SPEAKER_SPOCK, TX_TRI2_020);
 	_awayMission->trial.globDefeated = true;
-	playMidiMusicTracks(MIDITRACK_28, -1);
+	playMidiMusicTracks(MIDITRACK_28);
 	_awayMission->trial.missionScore += 1;
 	loadMapFile("trial2");
 }
@@ -390,7 +390,7 @@ void Room::trial2GlobDoneSplitting() {
 	// Everyone gets vaporized
 	playVoc("V7ALLGET");
 	_awayMission->disableInput = true;
-	playMidiMusicTracks(MIDITRACK_26, -1);
+	playMidiMusicTracks(MIDITRACK_26);
 	loadActorAnimC(OBJECT_KIRK, "kkills", -1, -1, &Room::trial2KirkDied);
 	loadActorAnim2(OBJECT_SPOCK, "skills");
 	loadActorAnim2(OBJECT_MCCOY, "mkills");
diff --git a/engines/startrek/rooms/trial3.cpp b/engines/startrek/rooms/trial3.cpp
index 6a8aa96bf72..d7acafa39c5 100644
--- a/engines/startrek/rooms/trial3.cpp
+++ b/engines/startrek/rooms/trial3.cpp
@@ -172,7 +172,7 @@ void Room::trial3Tick1() {
 		_awayMission->disableWalking = true;
 		_awayMission->disableInput = 2;
 	}
-	playMidiMusicTracks(MIDITRACK_33, -1);
+	playMidiMusicTracks(MIDITRACK_33);
 }
 
 void Room::trial3Tick30() {
@@ -214,7 +214,7 @@ void Room::trial3KlingonShootsSomeone1() {
 	} else if (_awayMission->trial.klingonShootIndex == 2) {
 		playSoundEffectIndex(kSfxPhaser);
 		showBitmapFor5Ticks("t3phas05", 5);
-		playMidiMusicTracks(MIDITRACK_2, -1);
+		playMidiMusicTracks(MIDITRACK_2);
 		loadActorAnimC(OBJECT_KIRK, "kkillw", -1, -1, &Room::trial3KirkDoneDying);
 	}
 }
@@ -313,14 +313,14 @@ void Room::trial3CrewmanBeamedOut() {
 void Room::trial3Tick90() {
 	if ((!(_awayMission->trial.shotKlingons & 8) && _awayMission->trial.shotKlingonState != 20)) {
 		playSoundEffectIndex(kSfxTransporterMaterialize);
-		playMidiMusicTracks(MIDITRACK_32, -1);
+		playMidiMusicTracks(MIDITRACK_32);
 		loadActorAnimC(OBJECT_KLINGON_1, "t3ktel", 0x57, 0xb1, &Room::trial3Klingon1BeamedIn);
 		_awayMission->trial.shotKlingonState = 21;
 	}
 }
 
 void Room::trial3TouchedHotspot3() { // Activated the explosive
-	playMidiMusicTracks(MIDITRACK_2, -1);
+	playMidiMusicTracks(MIDITRACK_2);
 	playVoc("BITOKIRK");
 	loadActorAnimC(OBJECT_EXPLOSION, "t3expl", 0, 0xc7, &Room::trial3KirkExploded);
 }
diff --git a/engines/startrek/rooms/trial4.cpp b/engines/startrek/rooms/trial4.cpp
index 45deb5d7d9f..f276c5017e2 100644
--- a/engines/startrek/rooms/trial4.cpp
+++ b/engines/startrek/rooms/trial4.cpp
@@ -151,7 +151,7 @@ void Room::trial4Tick1() {
 	loadActorAnim2(OBJECT_GUARD, "kgstnd", 0xdc, 0x6a);
 	loadActorAnim2(OBJECT_QUETZECOATL, "qstand", 0x10e, 0xaa);
 
-	playMidiMusicTracks(MIDITRACK_32, -1);
+	playMidiMusicTracks(MIDITRACK_32);
 }
 
 void Room::trial4Tick60() {
diff --git a/engines/startrek/rooms/trial5.cpp b/engines/startrek/rooms/trial5.cpp
index d3d6efb3730..61a250aff10 100644
--- a/engines/startrek/rooms/trial5.cpp
+++ b/engines/startrek/rooms/trial5.cpp
@@ -275,7 +275,7 @@ extern const RoomText trial5Texts[] = {
 
 void Room::trial5Tick1() {
 	playVoc("TRI5LOOP");
-	playMidiMusicTracks(MIDITRACK_31, -1);
+	playMidiMusicTracks(MIDITRACK_31);
 
 	loadActorAnim2(OBJECT_REDGEM1, "redgem", REDGEM1_X, REDGEM1_Y);
 	loadActorAnim2(OBJECT_REDGEM2, "redgem", REDGEM2_X, REDGEM2_Y);
@@ -334,7 +334,7 @@ void Room::trial5VlictAppeared() {
 		endMission(_awayMission->trial.missionScore, 1, 4);
 	} else if (choice == 2) { // "I'll intervene if Quetzecoatl goes free"
 		showText(TX_SPEAKER_VLICT, TX_TRI5_019);
-		playMidiMusicTracks(MIDITRACK_28, -1);
+		playMidiMusicTracks(MIDITRACK_28);
 
 		showText(TX_SPEAKER_BIALBI, TX_TRI5_025);
 		_awayMission->trial.missionScore += 4;
@@ -363,7 +363,7 @@ void Room::trial5ReachedInterface() {
 		showText(TX_SPEAKER_BIALBI, TX_TRI5_024);
 		loadActorAnimC(OBJECT_VLICT, "vlict1", 0xbe, 0x91, &Room::trial5VlictAppeared);
 		_awayMission->trial.missionScore += 5;
-		playMidiMusicTracks(MIDITRACK_1, -1);
+		playMidiMusicTracks(MIDITRACK_1);
 	}
 }
 
@@ -611,7 +611,7 @@ void Room::trial5ReachedHoleToPutGem() {
 
 		if COMBO(RED, RED, RED) {
 			trial5ActivateLightOfWar();
-			playMidiMusicTracks(MIDITRACK_1, -1);
+			playMidiMusicTracks(MIDITRACK_1);
 			showText(TX_SPEAKER_LIGHT_OF_WAR, TX_TRI5_050); // All ships in orbit destroyed
 			showGameOverMenu();
 		} else if COMBO(RED, RED, GREEN) {
diff --git a/engines/startrek/rooms/tug0.cpp b/engines/startrek/rooms/tug0.cpp
index 2fdd50f5977..e34511172ce 100644
--- a/engines/startrek/rooms/tug0.cpp
+++ b/engines/startrek/rooms/tug0.cpp
@@ -202,7 +202,7 @@ extern const RoomText tug0Texts[] = {
 
 void Room::tug0Tick1() {
 	playVoc("TUG0LOOP");
-	playMidiMusicTracks(0, -1);
+	playMidiMusicTracks(MIDITRACK_0);
 
 	_awayMission->tug.field2b = 0x23;
 	if (_awayMission->tug.transporterRepaired)
@@ -498,7 +498,7 @@ void Room::tug0SpockFinishesBeamingBomb() {
 }
 
 void Room::tug0BombExploded() {
-	playMidiMusicTracks(2, -1);
+	playMidiMusicTracks(MIDITRACK_2);
 	showText(TX_SPEAKER_MCCOY, TX_TUG0_023);
 	showText(TX_SPEAKER_SPOCK, TX_TUG0_037);
 	showText(TX_SPEAKER_MCCOY, TX_TUG0_027);
diff --git a/engines/startrek/rooms/tug2.cpp b/engines/startrek/rooms/tug2.cpp
index 441b745498b..951eb4dc70d 100644
--- a/engines/startrek/rooms/tug2.cpp
+++ b/engines/startrek/rooms/tug2.cpp
@@ -305,7 +305,7 @@ void Room::tug2Tick1() {
 
 	if (_awayMission->tug.field5b == 0) {
 		_awayMission->disableWalking = true;
-		playMidiMusicTracks(32, -1);
+		playMidiMusicTracks(MIDITRACK_32);
 	}
 
 	_awayMission->tug.field5b = 1;
@@ -486,7 +486,7 @@ void Room::tug2KirkReachedWiresToGet() {
 
 void Room::tug2KirkGotWires() {
 	if (_awayMission->tug.field35 == 0) {
-		playMidiMusicTracks(2, -1);
+		playMidiMusicTracks(MIDITRACK_2);
 		loadActorAnim2(OBJECT_BRIG, "zap", 0, 0, 1);
 		playVoc("NM8EXPLO");
 		loadActorAnim2(OBJECT_BOMB, "t2bbo", -3, 1, 0);
@@ -561,7 +561,7 @@ void Room::tug2RedshirtReachedButton() {
 void Room::tug2TurnedOffForceField() {
 	_awayMission->disableInput = false;
 	if (_awayMission->tug.field35 == 0) {
-		playMidiMusicTracks(2, -1);
+		playMidiMusicTracks(MIDITRACK_2);
 		loadActorAnim2(OBJECT_BRIG, "zap", 0, 0, 1);
 		playVoc("NM8EXPLO");
 		loadActorAnim2(OBJECT_BOMB, "t2bbo", -3, 1, 0);
diff --git a/engines/startrek/rooms/tug3.cpp b/engines/startrek/rooms/tug3.cpp
index ac7842678f7..0cbcce05da3 100644
--- a/engines/startrek/rooms/tug3.cpp
+++ b/engines/startrek/rooms/tug3.cpp
@@ -491,7 +491,7 @@ void Room::tug3UseCommunicator() {
 			showText(TX_SPEAKER_KIRK, TX_TUG3_006);
 			showText(TX_SPEAKER_SCOTT, TX_TUG3_S07);
 
-			playMidiMusicTracks(-1, -1);
+			playMidiMusicTracks(MIDITRACK_NONE);
 
 			_awayMission->disableInput = true;
 			if (_awayMission->tug.missionScore < 0)
@@ -547,7 +547,7 @@ void Room::tug3Timer0Expired() {
 }
 
 void Room::tug3AllCrewmenDead() {
-	playMidiMusicTracks(2, -1);
+	playMidiMusicTracks(MIDITRACK_2);
 	showGameOverMenu();
 }
 
@@ -568,7 +568,7 @@ void Room::tug3Timer1Expired() {
 }
 
 void Room::tug3EndMission() {
-	playMidiMusicTracks(28, -1);
+	playMidiMusicTracks(MIDITRACK_28);
 	showText(TX_SPEAKER_KIRK, TX_TUG3_001);
 	playSoundEffectIndex(kSfxTransporterMaterialize);
 	loadActorAnim2(OBJECT_13, "rteleb", 0x14, 0xa0, 7);
@@ -584,7 +584,7 @@ void Room::tug3SecurityTeamBeamedIn() {
 	showText(TX_SPEAKER_KIRK, TX_TUG3_005);
 	showText(TX_SPEAKER_SCOTT, TX_TUG3_S08);
 
-	playMidiMusicTracks(-1, -1);
+	playMidiMusicTracks(MIDITRACK_NONE);
 	_awayMission->disableInput = true;
 	if (_awayMission->tug.missionScore < 0)
 		_awayMission->tug.missionScore = 0;
diff --git a/engines/startrek/saveload.cpp b/engines/startrek/saveload.cpp
index 550f7c04ea6..96544ebadf6 100644
--- a/engines/startrek/saveload.cpp
+++ b/engines/startrek/saveload.cpp
@@ -188,7 +188,7 @@ bool StarTrekEngine::saveOrLoadGameData(Common::SeekableReadStream *in, Common::
 			_sound->clearAllMidiSlots();
 		else {
 			_sound->loadMusicFile(midiFilename);
-			_sound->playMidiMusicTracks(_sound->_loopingMidiTrack, _sound->_loopingMidiTrack);
+			_sound->playMidiTrackInSlot(0, _sound->_loopingMidiTrack);
 		}
 	}
 
diff --git a/engines/startrek/sound.cpp b/engines/startrek/sound.cpp
index aff12269632..9dd20435807 100644
--- a/engines/startrek/sound.cpp
+++ b/engines/startrek/sound.cpp
@@ -37,7 +37,7 @@ namespace StarTrek {
 Sound::Sound(StarTrekEngine *vm) : _vm(vm) {
 	_midiDevice = MT_AUTO;
 	_midiDriver = nullptr;
-	_loopingMidiTrack = false;
+	_loopingMidiTrack = MIDITRACK_0;
 
 	if (_vm->getPlatform() == Common::kPlatformDOS || _vm->getPlatform() == Common::kPlatformMacintosh) {
 		_midiDevice = MidiDriver::detectDevice(MDT_PCSPK | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32);
@@ -94,7 +94,7 @@ void Sound::clearAllMidiSlots() {
 	}
 }
 
-void Sound::playMidiTrack(int track) {
+void Sound::playMidiTrack(MidiTracks track) {
 	if (!_vm->_musicEnabled || !_vm->_musicWorking)
 		return;
 
@@ -125,7 +125,7 @@ void Sound::playMidiTrack(int track) {
 	playMidiTrackInSlot(slot->slot, track);
 }
 
-void Sound::playMidiTrackInSlot(int slot, int track) {
+void Sound::playMidiTrackInSlot(int slot, MidiTracks track) {
 	assert(_loadedSoundData != nullptr);
 	debugC(6, kDebugSound, "Playing MIDI track %d (slot %d)", track, slot);
 
@@ -171,16 +171,16 @@ void Sound::loadMusicFile(const Common::String &baseSoundName) {
 	}
 }
 
-void Sound::playMidiMusicTracks(int startTrack, int loopTrack) {
+void Sound::playMidiMusicTracks(MidiTracks startTrack, MidiLoopType loopType) {
 	if (!_vm->_musicWorking || !_vm->_musicEnabled)
 		return;
 
-	if (loopTrack == -3)
+	if (loopType == kLoopTypeRepeat)
 		_loopingMidiTrack = startTrack;
-	else if (loopTrack != -2)
-		_loopingMidiTrack = loopTrack;
+	else if (loopType == kLoopTypeNone)
+		_loopingMidiTrack = MIDITRACK_NONE;
 
-	if (startTrack != -2 && _vm->_musicEnabled)
+	if (_vm->_musicEnabled)
 		playMidiTrackInSlot(0, startTrack);
 }
 
@@ -290,7 +290,7 @@ void Sound::stopPlayingSpeech() {
 
 void Sound::playSoundEffectIndex(SoundEffects index) {
 	if (!(_vm->getFeatures() & GF_CDROM))
-		playMidiTrack(index);
+		playMidiTrack((MidiTracks)index);
 	else {
 		switch (index) {
 		case kSfxTricorder:
@@ -303,7 +303,7 @@ void Sound::playSoundEffectIndex(SoundEffects index) {
 			playVoc("PHASSHOT");
 			break;
 		case kSfxButton:
-			playMidiTrack(index);
+			playMidiTrack(MIDITRACK_7);
 			break;
 		case kSfxTransporterDematerialize:
 			playVoc("TRANSDEM");
@@ -315,7 +315,7 @@ void Sound::playSoundEffectIndex(SoundEffects index) {
 			playVoc("TRANSENE");
 			break;
 		case kSfxSelection:
-			playMidiTrack(index);
+			playMidiTrack(MIDITRACK_16);
 			break;
 		case kSfxHailing:
 			playVoc("HAILING");
@@ -330,7 +330,7 @@ void Sound::playSoundEffectIndex(SoundEffects index) {
 			playVoc("HITSHIEL");
 			break;
 		case kSfxUnk:
-			playMidiTrack(index);
+			playMidiTrack(MIDITRACK_39);
 			break;
 		case kSfxRedAlert:
 			playVoc("REDALERT");
@@ -356,7 +356,7 @@ void Sound::setMusicEnabled(bool enable) {
 	_vm->_musicEnabled = enable;
 
 	if (enable)
-		playMidiMusicTracks(_loopingMidiTrack, _loopingMidiTrack);
+		playMidiTrackInSlot(0, _loopingMidiTrack);
 	else
 		clearMidiSlot(0);
 }
diff --git a/engines/startrek/sound.h b/engines/startrek/sound.h
index 6fda01d13de..90ed9181118 100644
--- a/engines/startrek/sound.h
+++ b/engines/startrek/sound.h
@@ -59,11 +59,11 @@ public:
 	/**
 	 * Plays a midi track as a sound effect (one of midi slots 1-7)
 	 */
-	void playMidiTrack(int track);
-	void playMidiTrackInSlot(int slot, int track);
+	void playMidiTrack(MidiTracks track);
+	void playMidiTrackInSlot(int slot, MidiTracks track);
 	bool isMidiPlaying();
 	void loadMusicFile(const Common::String &baseSoundName);
-	void playMidiMusicTracks(int startTrack, int loopTrack);
+	void playMidiMusicTracks(MidiTracks startTrack, MidiLoopType loopType = kLoopTypeNone);
 	void playVoc(const Common::String &baseSoundName);
 	void playSpeech(const Common::String &basename);
 	void stopAllVocSounds();
@@ -99,7 +99,7 @@ private:
 public:
 	Common::String _loopingAudioName;
 	Common::String _loadedMidiFilename;
-	int _loopingMidiTrack;
+	MidiTracks _loopingMidiTrack;
 
 private:
 	// Driver callback
diff --git a/engines/startrek/soundeffects.h b/engines/startrek/soundeffects.h
index a3ec8fb37a4..1539670db90 100644
--- a/engines/startrek/soundeffects.h
+++ b/engines/startrek/soundeffects.h
@@ -48,7 +48,9 @@ enum SoundEffects {
 
 
 enum MidiTracks {
-	MIDITRACK_0,
+	MIDITRACK_NONE = -1,
+
+	MIDITRACK_0 = 0,
 	MIDITRACK_1,
 	MIDITRACK_2,
 	MIDITRACK_3,
@@ -81,7 +83,22 @@ enum MidiTracks {
 	MIDITRACK_30,
 	MIDITRACK_31,
 	MIDITRACK_32,
-	MIDITRACK_33
+	MIDITRACK_33,
+	MIDITRACK_34,
+	MIDITRACK_35,
+	MIDITRACK_36,
+	MIDITRACK_37,
+	MIDITRACK_38,
+	MIDITRACK_39,
+	MIDITRACK_40,
+	MIDITRACK_41
+};
+
+
+enum MidiLoopType {
+	kLoopTypeRepeat = -3,
+	kLoopTypeLast = -2,
+	kLoopTypeNone = -1
 };
 
 #endif


Commit: ff9da885822c1bc0bdffb7704a438828616eaab2
    https://github.com/scummvm/scummvm/commit/ff9da885822c1bc0bdffb7704a438828616eaab2
Author: Cameron Cawley (ccawley2011 at gmail.com)
Date: 2024-06-29T16:37:30+03:00

Commit Message:
STARTREK: Better names for some of the MidiTracks values

Changed paths:
    engines/startrek/sound.cpp
    engines/startrek/soundeffects.h


diff --git a/engines/startrek/sound.cpp b/engines/startrek/sound.cpp
index 9dd20435807..aeb6c895836 100644
--- a/engines/startrek/sound.cpp
+++ b/engines/startrek/sound.cpp
@@ -303,7 +303,7 @@ void Sound::playSoundEffectIndex(SoundEffects index) {
 			playVoc("PHASSHOT");
 			break;
 		case kSfxButton:
-			playMidiTrack(MIDITRACK_7);
+			playMidiTrack(MIDITRACK_SFX_BUTTON);
 			break;
 		case kSfxTransporterDematerialize:
 			playVoc("TRANSDEM");
@@ -315,7 +315,7 @@ void Sound::playSoundEffectIndex(SoundEffects index) {
 			playVoc("TRANSENE");
 			break;
 		case kSfxSelection:
-			playMidiTrack(MIDITRACK_16);
+			playMidiTrack(MIDITRACK_SFX_BUTTON);
 			break;
 		case kSfxHailing:
 			playVoc("HAILING");
@@ -330,7 +330,7 @@ void Sound::playSoundEffectIndex(SoundEffects index) {
 			playVoc("HITSHIEL");
 			break;
 		case kSfxUnk:
-			playMidiTrack(MIDITRACK_39);
+			playMidiTrack(MIDITRACK_SFX_UNK);
 			break;
 		case kSfxRedAlert:
 			playVoc("REDALERT");
diff --git a/engines/startrek/soundeffects.h b/engines/startrek/soundeffects.h
index 1539670db90..68b617577ef 100644
--- a/engines/startrek/soundeffects.h
+++ b/engines/startrek/soundeffects.h
@@ -54,19 +54,19 @@ enum MidiTracks {
 	MIDITRACK_1,
 	MIDITRACK_2,
 	MIDITRACK_3,
-	MIDITRACK_4,
-	MIDITRACK_5,
-	MIDITRACK_6,
-	MIDITRACK_7,
-	MIDITRACK_8,
-	MIDITRACK_9,
-	MIDITRACK_10,
+	MIDITRACK_SFX_TRICORDER,
+	MIDITRACK_SFX_DOOR,
+	MIDITRACK_SFX_PHASER,
+	MIDITRACK_SFX_BUTTON,
+	MIDITRACK_SFX_TRANSPORTER_DEMATERIALIZE,
+	MIDITRACK_SFX_TRANSPORTER_MATERIALIZE,
+	MIDITRACK_SFX_TRANSPORTER_ENERGIZE,
 	MIDITRACK_11,
 	MIDITRACK_12,
 	MIDITRACK_13,
 	MIDITRACK_14,
 	MIDITRACK_15,
-	MIDITRACK_16,
+	MIDITRACK_SFX_SELECTION,
 	MIDITRACK_17,
 	MIDITRACK_18,
 	MIDITRACK_19,
@@ -84,14 +84,14 @@ enum MidiTracks {
 	MIDITRACK_31,
 	MIDITRACK_32,
 	MIDITRACK_33,
-	MIDITRACK_34,
+	MIDITRACK_SFX_HAILING,
 	MIDITRACK_35,
-	MIDITRACK_36,
-	MIDITRACK_37,
-	MIDITRACK_38,
-	MIDITRACK_39,
-	MIDITRACK_40,
-	MIDITRACK_41
+	MIDITRACK_SFX_PHASER2,
+	MIDITRACK_SFX_PHOTON_TORPEDOES,
+	MIDITRACK_SFX_SHIELD_HIT,
+	MIDITRACK_SFX_UNK,
+	MIDITRACK_SFX_RED_ALERT,
+	MIDITRACK_SFX_WARP
 };
 
 




More information about the Scummvm-git-logs mailing list