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

bluegr bluegr at gmail.com
Sat Feb 20 19:33:24 UTC 2021


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

Summary:
7401a55dcf STARTREK: Convert more room texts to the new format
a465274c0e STARTREK: Update spockScan and mccoyScan calls


Commit: 7401a55dcf89c17d23d359e80d55f86d97ff6f2f
    https://github.com/scummvm/scummvm/commit/7401a55dcf89c17d23d359e80d55f86d97ff6f2f
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2021-02-20T21:32:51+02:00

Commit Message:
STARTREK: Convert more room texts to the new format

Changed paths:
    engines/startrek/room.cpp
    engines/startrek/rooms/function_map.h
    engines/startrek/rooms/love2.cpp
    engines/startrek/rooms/mudd3.cpp
    engines/startrek/rooms/mudd4.cpp
    engines/startrek/rooms/mudd5.cpp


diff --git a/engines/startrek/room.cpp b/engines/startrek/room.cpp
index ba2ed072ff..f64bf45b69 100644
--- a/engines/startrek/room.cpp
+++ b/engines/startrek/room.cpp
@@ -73,9 +73,9 @@ Room::Room(StarTrekEngine *vm, const Common::String &name) : _vm(vm), _awayMissi
 	ADD_ROOM(mudd0)
 	ADD_ROOM(mudd1)
 	ADD_ROOM(mudd2)
-	//ADD_ROOM(mudd3)
+	ADD_ROOM(mudd3)
 	//ADD_ROOM(mudd4)
-	//ADD_ROOM(mudd5)
+	ADD_ROOM(mudd5)
 	ADD_ROOM_COMMON(mudd)
 	ADD_ROOM(feather0)
 	ADD_ROOM(feather1)
diff --git a/engines/startrek/rooms/function_map.h b/engines/startrek/rooms/function_map.h
index 1b8ede3a5e..904f9c07a0 100644
--- a/engines/startrek/rooms/function_map.h
+++ b/engines/startrek/rooms/function_map.h
@@ -48,10 +48,10 @@ extern const RoomTextOffsets loveTextOffsets[];
 
 extern const RoomAction mudd0ActionList[], mudd1ActionList[], mudd2ActionList[], mudd3ActionList[];
 extern const RoomAction mudd4ActionList[], mudd5ActionList[];
-extern const RoomTextOffsets mudd0TextOffsets[], mudd1TextOffsets[], mudd2TextOffsets[];//, mudd3TextOffsets[];
-//extern const RoomTextOffsets mudd4TextOffsets[], mudd5TextOffsets[];
-extern const RoomText mudd0Texts[], mudd1Texts[], mudd2Texts[];//, mudd3Texts[];
-//extern const RoomText mudd4Texts[], mudd5Texts[];
+extern const RoomTextOffsets mudd0TextOffsets[], mudd1TextOffsets[], mudd2TextOffsets[], mudd3TextOffsets[];
+extern const RoomTextOffsets /*mudd4TextOffsets[],*/ mudd5TextOffsets[];
+extern const RoomText mudd0Texts[], mudd1Texts[], mudd2Texts[], mudd3Texts[];
+extern const RoomText /*mudd4Texts[],*/ mudd5Texts[];
 extern const RoomTextOffsets muddTextOffsets[];
 
 extern const RoomAction feather0ActionList[], feather1ActionList[], feather2ActionList[], feather3ActionList[];
diff --git a/engines/startrek/rooms/love2.cpp b/engines/startrek/rooms/love2.cpp
index a4fcbd96db..e5a0a24dca 100644
--- a/engines/startrek/rooms/love2.cpp
+++ b/engines/startrek/rooms/love2.cpp
@@ -536,65 +536,65 @@ void Room::love2DoorReachedOrOpened() {
 }
 
 void Room::love2LookAtCabinet() {
-	showDescription(27);
+	showDescription(TX_LOV2N027);
 }
 
 void Room::love2LookAtDoor() {
-	showDescription(1);
+	showDescription(TX_LOV2N001);
 }
 
 void Room::love2LookAtSynthesizer() {
-	showDescription(28);
+	showDescription(TX_LOV2N028);
 }
 
 void Room::love2LookAtAnywhere() {
-	showDescription(26);
+	showDescription(TX_LOV2N026);
 }
 
 void Room::love2LookAtAntigrav() {
-	showDescription(6);
+	showDescription(TX_LOV2N006);
 }
 
 void Room::love2LookAtMccoy() {
-	showDescription(11);
+	showDescription(TX_LOV2N011);
 }
 
 void Room::love2LookAtSpock() {
-	showDescription(14);
+	showDescription(TX_LOV2N014);
 }
 
 void Room::love2LookAtRedshirt() {
-	showDescription(10);
+	showDescription(TX_LOV2N010);
 }
 
 void Room::love2LookAtKirk() {
-	showDescription(9);
+	showDescription(TX_LOV2N009);
 }
 
 void Room::love2LookAtArdak() {
-	showDescription(45);
-	showText(TX_SPEAKER_SPOCK, 37);
+	showDescription(TX_LOV2N045);
+	showText(TX_SPEAKER_SPOCK, TX_LOV2_037);
 }
 
 void Room::love2LookAtChamber() {
-	showDescription(29);
-	showText(TX_SPEAKER_SPOCK, 35);
-	showText(TX_SPEAKER_MCCOY, 19);
-	showText(TX_SPEAKER_SPOCK, 33);
-	showText(TX_SPEAKER_MCCOY, 16);
+	showDescription(TX_LOV2N029);
+	showText(TX_SPEAKER_SPOCK, TX_LOV2_035);
+	showText(TX_SPEAKER_MCCOY, TX_LOV2_019);
+	showText(TX_SPEAKER_SPOCK, TX_LOV2_033);
+	showText(TX_SPEAKER_MCCOY, TX_LOV2_016);
 }
 
 void Room::love2LookAtCan1() {
 	switch (_awayMission->love.canister1) {
 	case CANTYPE_O2:
-		showDescription(4);
+		showDescription(TX_LOV2N004);
 		break;
 	case CANTYPE_H2:
-		showDescription(2);
+		showDescription(TX_LOV2N002);
 		break;
 	case CANTYPE_N2:
 	default:
-		showDescription(3);
+		showDescription(TX_LOV2N003);
 		break;
 	}
 }
@@ -602,43 +602,43 @@ void Room::love2LookAtCan1() {
 void Room::love2LookAtCan2() {
 	switch (_awayMission->love.canister2) {
 	case CANTYPE_O2:
-		showDescription(4);
+		showDescription(TX_LOV2N004);
 		break;
 	case CANTYPE_H2:
-		showDescription(2);
+		showDescription(TX_LOV2N002);
 		break;
 	case CANTYPE_N2:
 	default:
-		showDescription(3);
+		showDescription(TX_LOV2N003);
 		break;
 	}
 }
 
 void Room::love2TalkToKirk() {
-	showText(TX_SPEAKER_KIRK, 1);
+	showText(TX_SPEAKER_KIRK, TX_LOV2_001);
 }
 
 void Room::love2TalkToSpock() {
-	showText(TX_SPEAKER_SPOCK, 29);
+	showText(TX_SPEAKER_SPOCK, TX_LOV2_029);
 }
 
 void Room::love2TalkToMccoy() {
-	showText(TX_SPEAKER_MCCOY, 9);
+	showText(TX_SPEAKER_MCCOY, TX_LOV2_009);
 }
 
 void Room::love2TalkToRedshirt() {
-	showText(TX_SPEAKER_FERRIS, 41);
+	showText(TX_SPEAKER_FERRIS, TX_LOV2_041);
 }
 
 void Room::love2UseMTricorderAnywhere() {
 	if (_awayMission->love.knowAboutVirus)
-		mccoyScan(DIR_S, 8, false);
+		mccoyScan(DIR_S, TX_SPEAKER_MCCOY, TX_LOV2_008, false);
 	else
-		mccoyScan(DIR_S, 12, false);
+		mccoyScan(DIR_S, TX_SPEAKER_MCCOY, TX_LOV2_012, false);
 }
 
 void Room::love2UseSTricorderAnywhere() {
-	spockScan(DIR_S, TX_SPEAKER_SPOCK, 27, false);
+	spockScan(DIR_S, TX_SPEAKER_SPOCK, TX_LOV2_027, false);
 }
 
 void Room::love2UseKirkOnCabinet() {
@@ -698,11 +698,11 @@ void Room::love2ChangedGasFeed() {
 	if (_awayMission->love.gasFeedOn) {
 		_awayMission->love.gasFeedOn = false;
 		loadActorAnim2(OBJECT_GAS_FEED, "s3r3v2", 0xac, 0x75, 0);
-		showDescription(7);
+		showDescription(TX_LOV2N007);
 	} else {
 		_awayMission->love.gasFeedOn = true;
 		loadActorAnim2(OBJECT_GAS_FEED, "s3r3v1", 0xac, 0x75, 0);
-		showDescription(8);
+		showDescription(TX_LOV2N008);
 	}
 }
 
@@ -729,14 +729,14 @@ void Room::love2UseN2GasOnCanisterSlot() {
 
 void Room::love2ReachedCanisterSlot() {
 	if (_awayMission->love.gasFeedOn)
-		showText(TX_SPEAKER_SPOCK, 26);
+		showText(TX_SPEAKER_SPOCK, TX_LOV2_026);
 	else {
 		if (_awayMission->love.canister1 == CANTYPE_NONE)
 			loadActorAnim2(OBJECT_KIRK, "kusehn", -1, -1, 13);
 		else if (_awayMission->love.canister2 == CANTYPE_NONE)
 			loadActorAnim2(OBJECT_KIRK, "kusehn", -1, -1, 14);
 		else
-			showDescription(24);
+			showDescription(TX_LOV2N024);
 	}
 }
 
@@ -744,7 +744,7 @@ void Room::love2PutCanisterInSlot1() {
 	playVoc("SE6FOOD");
 	loadActorAnim(OBJECT_CAN1, _roomVar.love.canisterAnim, 0xa7, 0xae, 0);
 	_awayMission->love.canister1 = _roomVar.love.canisterType;
-	showDescription(34);
+	showDescription(TX_LOV2N034);
 	loseItem(_roomVar.love.canisterItem);
 }
 
@@ -752,7 +752,7 @@ void Room::love2PutCanisterInSlot2() {
 	playVoc("SE6FOOD");
 	loadActorAnim(OBJECT_CAN2, _roomVar.love.canisterAnim, 0xb1, 0xaf, 0);
 	_awayMission->love.canister2 = _roomVar.love.canisterType;
-	showDescription(35);
+	showDescription(TX_LOV2N035);
 	loseItem(_roomVar.love.canisterItem);
 }
 
@@ -762,7 +762,7 @@ void Room::love2UseAntigravOnCanister1() {
 
 void Room::love2ReachedCanisterSlot1ToGet() {
 	if (_awayMission->love.gasFeedOn)
-		showText(TX_SPEAKER_SPOCK, 25);
+		showText(TX_SPEAKER_SPOCK, TX_LOV2_025);
 	else {
 		loadActorAnim2(OBJECT_KIRK, "kusehn", -1, -1, 15);
 		// BUGFIX: original game only played this for canister 2
@@ -771,7 +771,7 @@ void Room::love2ReachedCanisterSlot1ToGet() {
 }
 
 void Room::love2TookCanister1() {
-	showDescription(30);
+	showDescription(TX_LOV2N030);
 	loadActorStandAnim(OBJECT_CAN1);
 
 	switch (_awayMission->love.canister1) {
@@ -796,7 +796,7 @@ void Room::love2UseAntigravOnCanister2() {
 
 void Room::love2ReachedCanisterSlot2ToGet() {
 	if (_awayMission->love.gasFeedOn)
-		showText(TX_SPEAKER_SPOCK, 25);
+		showText(TX_SPEAKER_SPOCK, TX_LOV2_025);
 	else {
 		loadActorAnim2(OBJECT_KIRK, "kusehn", -1, -1, 16);
 		playVoc("SE3PLBAT");
@@ -804,7 +804,7 @@ void Room::love2ReachedCanisterSlot2ToGet() {
 }
 
 void Room::love2TookCanister2() {
-	showDescription(31);
+	showDescription(TX_LOV2N031);
 	loadActorStandAnim(OBJECT_CAN2);
 
 	switch (_awayMission->love.canister2) {
@@ -854,13 +854,13 @@ void Room::love2CrewmanUsedSynthesizer() {
 	} else {
 		if (_roomVar.love.cb == 3) {
 			if (haveItem(OBJECT_IWRENCH)) {
-				showText(TX_SPEAKER_SPOCK, 5);
+				showText(TX_SPEAKER_SPOCK, TX_LOV2_005);
 				walkCrewman(OBJECT_SPOCK, 0xa8, 0xb7, 16);
 			} else
-				showText(TX_SPEAKER_SPOCK, 6);
+				showText(TX_SPEAKER_SPOCK, TX_LOV2_006);
 		} else {
 			_roomVar.love.cb++;
-			showDescription(12);
+			showDescription(TX_LOV2N012);
 		}
 	}
 }
@@ -874,7 +874,7 @@ void Room::love2SpockEnabledGasFeeds() {
 	_awayMission->love.gasFeedOn = true;
 
 	loadActorAnim2(OBJECT_GAS_FEED, "s3r3v1", 0xac, 0x75, 0);
-	showDescription(8);
+	showDescription(TX_LOV2N008);
 	walkCrewman(OBJECT_SPOCK, 0xc6, 0xbb, 0);
 
 	love2UseSynthesizer();
@@ -901,8 +901,8 @@ void Room::love2UseSynthesizer() {
 					break;
 
 				case SYNTHITEM_VIRUS_SAMPLE: // Wet goo
-					showDescription(51);
-					showText(TX_SPEAKER_KIRK, 2);
+					showDescription(TX_LOV2N051);
+					showText(TX_SPEAKER_KIRK, TX_LOV2_002);
 					loadActorStandAnim(OBJECT_VIRUSSAMPLE);
 					// Close synthesizer door
 					loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d5", 0x8a, 0x8d, 0);
@@ -911,8 +911,8 @@ void Room::love2UseSynthesizer() {
 					break;
 
 				case SYNTHITEM_CURE_SAMPLE: // Wet goo
-					showDescription(50);
-					showText(TX_SPEAKER_MCCOY, 21);
+					showDescription(TX_LOV2N050);
+					showText(TX_SPEAKER_MCCOY, TX_LOV2_021);
 					loadActorStandAnim(OBJECT_CURESAMPLE);
 					// Close synthesizer door
 					loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d5", 0x8a, 0x8d, 0);
@@ -921,7 +921,7 @@ void Room::love2UseSynthesizer() {
 					break;
 
 				case SYNTHITEM_BOTTLE: // Nothing happens
-					showText(TX_SPEAKER_SPOCK, 28);
+					showText(TX_SPEAKER_SPOCK, TX_LOV2_028);
 					break;
 
 				case SYNTHITEM_NONE: // Water
@@ -936,8 +936,8 @@ void Room::love2UseSynthesizer() {
 			} else if (c1 == CANTYPE_H2 && c2 == CANTYPE_N2) {
 				switch (_awayMission->love.synthesizerContents) {
 				case SYNTHITEM_PBC: // Inert matter
-					showDescription(49);
-					showText(TX_SPEAKER_SPOCK, 39); // BUGFIX: original didn't play audio
+					showDescription(TX_LOV2N049);
+					showText(TX_SPEAKER_SPOCK, TX_LOV2_039); // BUGFIX: original didn't play audio
 					loadActorStandAnim(OBJECT_POLYBERYLCARBONATE);
 					// Close synthesizer door
 					loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d5", 0x8a, 0x8d, 0);
@@ -946,9 +946,9 @@ void Room::love2UseSynthesizer() {
 					break;
 
 				case SYNTHITEM_VIRUS_SAMPLE: // Colorless goo (with useful information about virus in ammonia)
-					showDescription(48);
-					showText(TX_SPEAKER_SPOCK, 34); // BUGFIX: original didn't play audio
-					showText(TX_SPEAKER_MCCOY, 23);
+					showDescription(TX_LOV2N048);
+					showText(TX_SPEAKER_SPOCK, TX_LOV2_034); // BUGFIX: original didn't play audio
+					showText(TX_SPEAKER_MCCOY, TX_LOV2_023);
 					loadActorStandAnim(OBJECT_VIRUSSAMPLE);
 					// Close synthesizer door
 					loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d5", 0x8a, 0x8d, 0);
@@ -978,8 +978,8 @@ void Room::love2UseSynthesizer() {
 			} else if (c1 == CANTYPE_O2 && c2 == CANTYPE_N2) {
 				switch (_awayMission->love.synthesizerContents) {
 				case SYNTHITEM_PBC: // Inert matter
-					showDescription(49);
-					showText(TX_SPEAKER_SPOCK, 39); // BUGFIX: original didn't play audio
+					showDescription(TX_LOV2N049);
+					showText(TX_SPEAKER_SPOCK, TX_LOV2_039); // BUGFIX: original didn't play audio
 					loadActorStandAnim(OBJECT_POLYBERYLCARBONATE);
 					// Close synthesizer door
 					loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d5", 0x8a, 0x8d, 0);
@@ -988,8 +988,8 @@ void Room::love2UseSynthesizer() {
 					break;
 
 				case SYNTHITEM_VIRUS_SAMPLE: // Wet goo
-					showDescription(47);
-					showText(TX_SPEAKER_MCCOY, 17);
+					showDescription(TX_LOV2N047);
+					showText(TX_SPEAKER_MCCOY, TX_LOV2_017);
 					loadActorStandAnim(OBJECT_VIRUSSAMPLE);
 					// Close synthesizer door
 					loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d5", 0x8a, 0x8d, 0);
@@ -998,8 +998,8 @@ void Room::love2UseSynthesizer() {
 					break;
 
 				case SYNTHITEM_CURE_SAMPLE: // Wet goo
-					showDescription(50);
-					showText(TX_SPEAKER_MCCOY, 21);
+					showDescription(TX_LOV2N050);
+					showText(TX_SPEAKER_MCCOY, TX_LOV2_021);
 					loadActorStandAnim(OBJECT_CURESAMPLE);
 					// Close synthesizer door
 					loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d5", 0x8a, 0x8d, 0);
@@ -1023,13 +1023,13 @@ void Room::love2UseSynthesizer() {
 			}
 		} else {
 			playVoc("EFX24");
-			showDescription(5);
-			showText(TX_SPEAKER_MCCOY, 10);
+			showDescription(TX_LOV2N005);
+			showText(TX_SPEAKER_MCCOY, TX_LOV2_010);
 		}
 	} else {
 		playVoc("EFX24");
-		showDescription(5);
-		showText(TX_SPEAKER_SPOCK, 24);
+		showDescription(TX_LOV2N005);
+		showText(TX_SPEAKER_SPOCK, TX_LOV2_024);
 	}
 }
 
@@ -1043,33 +1043,33 @@ void Room::love2SynthesizerDoorClosed() {
 void Room::love2SynthesizerFinished() {
 	switch (_awayMission->love.synthesizerBottleIndex) {
 	case BOTTLETYPE_N2O:
-		showDescription(17);
-		showText(TX_SPEAKER_SPOCK, 32);
-		showText(TX_SPEAKER_MCCOY, 15);
-		showText(TX_SPEAKER_SPOCK, 36);
+		showDescription(TX_LOV2N017);
+		showText(TX_SPEAKER_SPOCK, TX_LOV2_032);
+		showText(TX_SPEAKER_MCCOY, TX_LOV2_015);
+		showText(TX_SPEAKER_SPOCK, TX_LOV2_036);
 		break;
 
 	case BOTTLETYPE_NH3:
-		showDescription(16);
+		showDescription(TX_LOV2N016);
 		if (!_awayMission->redshirtDead) {
-			showText(TX_SPEAKER_FERRIS, 43);
-			showText(TX_SPEAKER_KIRK, 3);
+			showText(TX_SPEAKER_FERRIS, TX_LOV2_043);
+			showText(TX_SPEAKER_KIRK, TX_LOV2_003);
 		}
 		break;
 
 	case BOTTLETYPE_H2O:
-		showDescription(18);
-		showText(TX_SPEAKER_SPOCK, 4);
+		showDescription(TX_LOV2N018);
+		showText(TX_SPEAKER_SPOCK, TX_LOV2_004);
 		break;
 
 	case BOTTLETYPE_RLG:
 	default:
-		showDescription(19);
-		showText(TX_SPEAKER_SPOCK, 31);
-		showText(TX_SPEAKER_MCCOY, 18);
-		showText(TX_SPEAKER_SPOCK, 30);
-		showText(TX_SPEAKER_MCCOY, 22);
-		showText(TX_SPEAKER_SPOCK, 38);
+		showDescription(TX_LOV2N019);
+		showText(TX_SPEAKER_SPOCK, TX_LOV2_031);
+		showText(TX_SPEAKER_MCCOY, TX_LOV2_018);
+		showText(TX_SPEAKER_SPOCK, TX_LOV2_030);
+		showText(TX_SPEAKER_MCCOY, TX_LOV2_022);
+		showText(TX_SPEAKER_SPOCK, TX_LOV2_038);
 		break;
 	}
 }
@@ -1091,8 +1091,8 @@ void Room::love2CureStartedSynthesizing() {
 }
 
 void Room::love2CureSynthesized() {
-	showDescription(46);
-	showText(TX_SPEAKER_MCCOY, 20);
+	showDescription(TX_LOV2N046);
+	showText(TX_SPEAKER_MCCOY, TX_LOV2_020);
 }
 
 
@@ -1104,7 +1104,7 @@ void Room::love2UsePolyberylcarbonateOnSynthesizerDoor() {
 
 void Room::love2KirkReachedSynthesizerWithPolyberylcarbonate() {
 	if (_awayMission->love.synthesizerContents != 0)
-		showDescription(25);
+		showDescription(TX_LOV2N025);
 	else {
 		loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d2", 0x8a, 0x8d, 5);
 		playSoundEffectIndex(kSfxDoor);
@@ -1130,7 +1130,7 @@ void Room::love2UseVirusSampleOnSynthesizerDoor() {
 
 void Room::love2KirkReachedSynthesizerWithVirusSample() {
 	if (_awayMission->love.synthesizerContents != 0)
-		showDescription(25);
+		showDescription(TX_LOV2N025);
 	else {
 		loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d2", 0x8a, 0x8d, 6);
 		playSoundEffectIndex(kSfxDoor);
@@ -1156,7 +1156,7 @@ void Room::love2UseCureSampleOnSynthesizerDoor() {
 
 void Room::love2KirkReachedSynthesizerWithCureSample() {
 	if (_awayMission->love.synthesizerContents != 0)
-		showDescription(25); // BUGFIX: original didn't play audio
+		showDescription(TX_LOV2N025); // BUGFIX: original didn't play audio
 	else {
 		loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d2", 0x8a, 0x8d, 7);
 		playSoundEffectIndex(kSfxDoor);
@@ -1176,18 +1176,18 @@ void Room::love2PutCureSampleInSynthesizer() {
 
 
 void Room::love2UseAnythingOnSynthesizerDoor() {
-	showText(TX_SPEAKER_MCCOY, 14);
+	showText(TX_SPEAKER_MCCOY, TX_LOV2_014);
 }
 
 void Room::love2UseAnythingOnSynthesizer() {
-	showText(TX_SPEAKER_SPOCK, 7);
+	showText(TX_SPEAKER_SPOCK, TX_LOV2_007);
 }
 
 void Room::love2GetCanister() {
 	if (_awayMission->redshirtDead)
-		showText(TX_SPEAKER_MCCOY, 11);
+		showText(TX_SPEAKER_MCCOY, TX_LOV2_011);
 	else
-		showText(TX_SPEAKER_FERRIS, 40);
+		showText(TX_SPEAKER_FERRIS, TX_LOV2_040);
 }
 
 
@@ -1203,7 +1203,7 @@ void Room::love2ReachedAntigrav() {
 void Room::love2GotAntigrav() {
 	loadActorStandAnim(OBJECT_ANTIGRAV);
 	giveItem(OBJECT_IANTIGRA);
-	showDescription(42);
+	showDescription(TX_LOV2N042);
 }
 
 
@@ -1219,7 +1219,7 @@ void Room::love2ReachedPolyberylcarbonate() {
 
 void Room::love2GotPolyberylcarbonate() {
 	loadActorStandAnim(OBJECT_POLYBERYLCARBONATE);
-	showDescription(44);
+	showDescription(TX_LOV2N044);
 	giveItem(OBJECT_IPBC);
 	_awayMission->love.synthesizerContents = 0;
 	loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d5", 0x8a, 0x8d, 0);
@@ -1239,7 +1239,7 @@ void Room::love2ReachedDishes() {
 
 void Room::love2GotDishes() {
 	loadActorStandAnim(OBJECT_VIRUSSAMPLE);
-	showDescription(36); // FIXME: text doesn't match audio
+	showDescription(TX_LOV2N036); // FIXME: text doesn't match audio
 	giveItem(OBJECT_IDISHES);
 	_awayMission->love.synthesizerContents = 0;
 	loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d5", 0x8a, 0x8d, 0);
@@ -1259,7 +1259,7 @@ void Room::love2ReachedSample() {
 
 void Room::love2GotSample() {
 	loadActorStandAnim(OBJECT_CURESAMPLE);
-	showDescription(37);
+	showDescription(TX_LOV2N037);
 	giveItem(OBJECT_ISAMPLE);
 	_awayMission->love.synthesizerContents = 0;
 	loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d5", 0x8a, 0x8d, 0);
@@ -1280,23 +1280,23 @@ void Room::love2ReachedSynthesizerOutput() {
 void Room::love2GotSynthesizerOutput() {
 	switch (_awayMission->love.synthesizerBottleIndex) {
 	case BOTTLETYPE_N2O:
-		showDescription(40);
+		showDescription(TX_LOV2N040);
 		giveItem(OBJECT_IN2O);
 		break;
 
 	case BOTTLETYPE_NH3:
-		showDescription(39);
+		showDescription(TX_LOV2N039);
 		giveItem(OBJECT_INH3);
 		break;
 
 	case BOTTLETYPE_H2O:
-		showDescription(41);
+		showDescription(TX_LOV2N041);
 		giveItem(OBJECT_IH2O);
 		break;
 
 	case BOTTLETYPE_RLG:
 	default:
-		showDescription(38);
+		showDescription(TX_LOV2N038);
 		if (!_awayMission->love.gotTLDH) {
 			_awayMission->love.gotTLDH = true;
 			_awayMission->love.missionScore += 4;
@@ -1331,7 +1331,7 @@ void Room::love2GotCure() {
 
 	giveItem(OBJECT_ICURE);
 	loadActorStandAnim(OBJECT_CURE);
-	showDescription(43);
+	showDescription(TX_LOV2N043);
 
 	loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d5", 0x8a, 0x8d, 0);
 	playSoundEffectIndex(kSfxDoor);
diff --git a/engines/startrek/rooms/mudd3.cpp b/engines/startrek/rooms/mudd3.cpp
index dffca418ec..a1e4b1c1c3 100644
--- a/engines/startrek/rooms/mudd3.cpp
+++ b/engines/startrek/rooms/mudd3.cpp
@@ -20,7 +20,6 @@
  *
  */
 
-#if 0
 #include "startrek/room.h"
 
 #define OBJECT_MUDD 8
@@ -87,20 +86,129 @@ extern const RoomAction mudd3ActionList[] = {
 };
 
 enum mudd3TextIds {
-	TX_SPEAKER_KIRK, TX_SPEAKER_MCCOY, TX_SPEAKER_SPOCK, TX_SPEAKER_EVERTS,
+	TX_SPEAKER_KIRK, TX_SPEAKER_MCCOY, TX_SPEAKER_SPOCK, TX_SPEAKER_UHURA,
+	TX_SPEAKER_BUCHERT, TX_SPEAKER_MUDD,
+	TX_MUD3_002, TX_MUD3_003, TX_MUD3_005, TX_MUD3_006, TX_MUD3_007,
+	TX_MUD3_008, TX_MUD3_009, TX_MUD3_010, TX_MUD3_011, TX_MUD3_012,
+	TX_MUD3_013, TX_MUD3_014, TX_MUD3_015, TX_MUD3_016, TX_MUD3_017,
+	TX_MUD3_018, TX_MUD3_019, TX_MUD3_020, TX_MUD3_021, TX_MUD3_022,
+	TX_MUD3_023, TX_MUD3_024, TX_MUD3_025, TX_MUD3_026, TX_MUD3_027,
+	TX_MUD3_028, TX_MUD3_029, TX_MUD3_030, TX_MUD3_031,	TX_MUD3_032,
+	TX_MUD3_033, TX_MUD3_034, TX_MUD3_035, TX_MUD3_037, TX_MUD3_038,
+	TX_MUD3_039, TX_MUD3_040, TX_MUD3_041, TX_MUD3_042, TX_MUD3_043,
+	TX_MUD3_044, TX_MUD3_046, TX_MUD3_047, TX_MUD3_048, TX_MUD3_049,
+	TX_MUD3_050, TX_MUD3_051, TX_MUD3_052, TX_MUD3_053, TX_MUD3_054,
+	TX_MUD3_055, TX_MUD3_056, TX_MUD3_057, TX_MUD3_058, TX_MUD3_059,
+	TX_MUD3_060, TX_MUD3_061, TX_MUD3_062, TX_MUD3_063,	TX_MUD3_064,
+	TX_MUD3_065, TX_MUD3_066, TX_MUD3_067, TX_MUD3_068, TX_MUD3_069,
+	TX_MUD3_070, TX_MUD3_071, TX_MUD3N000, TX_MUD3N002, TX_MUD3N003,
+	TX_MUD3N004, TX_MUD3N005, TX_MUD3N006, TX_MUD3N007, TX_MUD3N008,
+	TX_MUD3N009, TX_MUD3N010, TX_MUD3N011, TX_MUD3N012, TX_MUD3N013,
+	TX_MUD3N014, TX_MUD3N015, TX_MUD3N017, TX_MUD3N018, TX_MUD3N019,
+	TX_MUD3N020, TX_DEM0N009, TX_STATICU1
 };
 
 // TODO: Finish floppy offsets
 extern const RoomTextOffsets mudd3TextOffsets[] = {
-	//{ TX_SPEAKER_KIRK, 2597, 0 },
-	//{ TX_SPEAKER_MCCOY, 2622, 0 },
-	//{ TX_SPEAKER_SPOCK, 2632, 0 },
-	//{ TX_SPEAKER_EVERTS, 2642, 0 },
+	{ TX_SPEAKER_KIRK, 3778, 0 },
+	{ TX_SPEAKER_MCCOY, 3789, 0 },
+	{ TX_SPEAKER_SPOCK, 3799, 0 },
+	{ TX_SPEAKER_UHURA, 524, 0 },
+	{ TX_SPEAKER_BUCHERT, 3809, 0 },
+	{ TX_SPEAKER_MUDD, 3821, 0 },
+	{ TX_MUD3_002, 12100, 0 },
+	{ TX_MUD3_003, 487, 0 },
+	{ TX_MUD3_005, 13314, 0 },
+	{ TX_MUD3_006, 9361, 0 },
+	{ TX_MUD3_007, 7734, 0 },
+	{ TX_MUD3_008, 9718, 0 },
+	{ TX_MUD3_009, 8704, 0 },
+	{ TX_MUD3_010, 8569, 0 },
+	{ TX_MUD3_011, 11631, 0 },
+	{ TX_MUD3_012, 9147, 0 },
+	{ TX_MUD3_013, 12946, 0 },
+	{ TX_MUD3_014, 11167, 0 },	
+	{ TX_MUD3_015, 5526, 0 },
+	{ TX_MUD3_016, 11915, 0 },
+	{ TX_MUD3_017, 4507, 0 },
+	{ TX_MUD3_018, 6344, 0 },
+	{ TX_MUD3_019, 12146, 0 },
+	{ TX_MUD3_020, 3473, 0 },
+	{ TX_MUD3_021, 6291, 0 },
+	{ TX_MUD3_022, 5312, 0 },
+	{ TX_MUD3_023, 11763, 0 },
+	{ TX_MUD3_024, 9282, 0 },
+	{ TX_MUD3_025, 11373, 0 },
+	{ TX_MUD3_026, 8287, 0 },
+	{ TX_MUD3_027, 7770, 0 },
+	{ TX_MUD3_028, 8134, 0 },
+	{ TX_MUD3_029, 12593, 0 },
+	{ TX_MUD3_030, 12257, 0 },
+	{ TX_MUD3_031, 8858, 0 },
+	{ TX_MUD3_032, 7050, 0 },
+	{ TX_MUD3_033, 11586, 0 },
+	{ TX_MUD3_034, 4190, 0 },
+	{ TX_MUD3_035, 3833, 0 },
+	{ TX_MUD3_037, 4647, 0 },
+	{ TX_MUD3_038, 4388, 0 },
+	{ TX_MUD3_039, 3907, 0 },
+	{ TX_MUD3_040, 4049, 0 },
+	{ TX_MUD3_041, 6156, 0 },
+	{ TX_MUD3_042, 5896, 0 },
+	{ TX_MUD3_043, 5086, 0 },
+	{ TX_MUD3_044, 4851, 0 },
+	{ TX_MUD3_046, 7649, 0 },
+	{ TX_MUD3_047, 5629, 0 },
+	{ TX_MUD3_048, 9448, 0 },
+	{ TX_MUD3_049, 7393, 0 },
+	{ TX_MUD3_050, 7152, 0 },
+	{ TX_MUD3_051, 9784, 0 },
+	{ TX_MUD3_052, 9015, 0 },
+	{ TX_MUD3_053, 7890, 0 },
+	{ TX_MUD3_054, 6745, 0 },
+	{ TX_MUD3_055, 11459, 0 },
+	{ TX_MUD3_056, 5448, 0 },
+	{ TX_MUD3_057, 11261, 0 },
+	{ TX_MUD3_058, 13030, 0 },
+	{ TX_MUD3_059, 13225, 0 },
+	{ TX_MUD3_060, 12512, 0 },
+	{ TX_MUD3_061, 12832, 0 },
+	{ TX_MUD3_062, 12375, 0 },
+	{ TX_MUD3_063, 8836, 0 },
+	{ TX_MUD3_064, 8794, 0 },
+	{ TX_MUD3_065, 8447, 0 },
+	{ TX_MUD3_066, 8633, 0 },
+	{ TX_MUD3_067, 12427, 0 },
+	{ TX_MUD3_069, 13141, 0 },
+	{ TX_MUD3_070, 11823, 0 },
+	{ TX_MUD3_071, 11966, 0 },
+	{ TX_MUD3N000, 8982, 0 },
+	{ TX_MUD3N002, 10865, 0 },
+	{ TX_MUD3N003, 11075, 0 },
+	{ TX_MUD3N004, 10800, 0 },
+	{ TX_MUD3N005, 10481, 0 },
+	{ TX_MUD3N006, 10993, 0 },
+	{ TX_MUD3N007, 10692, 0 },
+	{ TX_MUD3N008, 2490, 0 },
+	{ TX_MUD3N009, 10937, 0 },
+	{ TX_MUD3N010, 10640, 0 },
+	{ TX_MUD3N011, 4615, 0 },
+	{ TX_MUD3N012, 10570, 0 },
+	{ TX_MUD3N013, 2698, 0 },
+	{ TX_MUD3N014, 9939, 0 },
+	{ TX_MUD3N015, 4749, 0 },
+	{ TX_MUD3N017, 4331, 0 },
+	{ TX_MUD3N018, 10144, 0 },
+	{ TX_MUD3N019, 10095, 0 },
+	{ TX_MUD3N020, 10005, 0 },
+	{ TX_STATICU1, 534, 0 },
 	{          -1, 0,    0 }
 };
 
 extern const RoomText mudd3Texts[] = {
-      { -1, Common::UNK_LANG, "" }
+	{ TX_MUD3_068, Common::EN_ANY, "#MUD3\\MUD3_068#Not my area of expertise, I'm afraid." },	// Same as MUD3_021, spoken by Buchert
+	{ TX_DEM0N009, Common::EN_ANY, "#DEM0\\DEM0N009#Spock raises an eyebrow" },
+	{ -1, Common::UNK_LANG, "" }
 };
 
 // BUG-ish: trying to scan the sphere while someone is behind it causes it to scan that
@@ -131,31 +239,31 @@ void Room::mudd3Tick1() {
 }
 
 void Room::mudd3UseCommunicator() {
-	showText(TX_SPEAKER_KIRK,  3);
-	showText(TX_SPEAKER_UHURA_GLOBAL, TX_STATICU1);
+	showText(TX_SPEAKER_KIRK,  TX_MUD3_003);
+	showText(TX_SPEAKER_UHURA, TX_STATICU1);
 }
 
 void Room::mudd3LookAtScreen() {
 	// BUGFIX: the condition was flipped in the original; the more "vague" description
 	// should be shown before the alien language is understood.
 	if (_awayMission->mudd.translatedAlienLanguage)
-		showText(TX_SPEAKER_SPOCK, 38);
+		showText(TX_SPEAKER_SPOCK, TX_MUD3_038);
 	else
-		showDescription(17);
+		showDescription(TX_MUD3N017);
 }
 
 void Room::mudd3UseSTricorderOnScreen() {
 	if (_roomVar.mudd.tricordersUnavailable)
-		showText(TX_SPEAKER_SPOCK, 39);
+		showText(TX_SPEAKER_SPOCK, TX_MUD3_039);
 	else
-		spockScan(DIR_S, 17, false);
+		spockScan(DIR_S, TX_SPEAKER_SPOCK, TX_MUD3_017, false);
 }
 
 // BUGFIX: Event was actually "use screen on kirk", which makes no sense.
 void Room::mudd3UseKirkOnScreen() {
 	if (!_awayMission->mudd.translatedAlienLanguage) {
-		showDescription(11);
-		showText(TX_SPEAKER_SPOCK, 37);
+		showDescription(TX_MUD3N011);
+		showText(TX_SPEAKER_SPOCK, TX_MUD3_037);
 	}
 }
 
@@ -165,27 +273,27 @@ void Room::mudd3UseSpockOnSphere() {
 
 	if (_awayMission->mudd.computerDataErasedOrDestroyed) {
 		if (!_awayMission->mudd.databaseDestroyed) {
-			showDescription(0);
-			showText(TX_SPEAKER_SPOCK, 52);
-			showText(TX_SPEAKER_KIRK,  12);
-			showText(TX_SPEAKER_MCCOY, 24);
+			showDescription(TX_MUD3N000);
+			showText(TX_SPEAKER_SPOCK, TX_MUD3_052);
+			showText(TX_SPEAKER_KIRK,  TX_MUD3_012);
+			showText(TX_SPEAKER_MCCOY, TX_MUD3_024);
 		}
-		showText(TX_SPEAKER_KIRK,   6);
-		showText(TX_SPEAKER_SPOCK, 48);
-		showText(TX_SPEAKER_KIRK,   8);
-		showText(TX_SPEAKER_SPOCK, 51);
+		showText(TX_SPEAKER_KIRK,  TX_MUD3_006);
+		showText(TX_SPEAKER_SPOCK, TX_MUD3_048);
+		showText(TX_SPEAKER_KIRK,  TX_MUD3_008);
+		showText(TX_SPEAKER_SPOCK, TX_MUD3_051);
 	} else if (_awayMission->mudd.translatedAlienLanguage) {
 		if (_awayMission->mudd.accessedAlienDatabase)
-			showText(TX_SPEAKER_SPOCK, 35);
+			showText(TX_SPEAKER_SPOCK, TX_MUD3_035);
 		else {
 			_awayMission->mudd.accessedAlienDatabase = true;
 
-			showText(TX_SPEAKER_SPOCK, 54);
-			showText(TX_SPEAKER_MCCOY, 32);
-			showText(TX_SPEAKER_SPOCK, 50);
-			showText(TX_SPEAKER_SPOCK, 49);
-			showText(TX_SPEAKER_SPOCK, 46);
-			showText(TX_SPEAKER_KIRK,   7);
+			showText(TX_SPEAKER_SPOCK, TX_MUD3_054);
+			showText(TX_SPEAKER_MCCOY, TX_MUD3_032);
+			showText(TX_SPEAKER_SPOCK, TX_MUD3_050);
+			showText(TX_SPEAKER_SPOCK, TX_MUD3_049);
+			showText(TX_SPEAKER_SPOCK, TX_MUD3_046);
+			showText(TX_SPEAKER_KIRK,  TX_MUD3_007);
 
 			_awayMission->mudd.missionScore++;
 			playVoc("LSHAIANS");
@@ -204,14 +312,14 @@ void Room::mudd3UseSpockOnSphere() {
 			_awayMission->timers[3] = 40;
 		}
 	} else if (_awayMission->mudd.discoveredBase3System) {
-		showText(TX_SPEAKER_SPOCK, 43);
-		showText(TX_SPEAKER_MCCOY, 22);
-		showText(TX_SPEAKER_SPOCK, 56);
-		showText(TX_SPEAKER_KIRK,  15);
-		showText(TX_SPEAKER_SPOCK, 47);
+		showText(TX_SPEAKER_SPOCK, TX_MUD3_043);
+		showText(TX_SPEAKER_MCCOY, TX_MUD3_022);
+		showText(TX_SPEAKER_SPOCK, TX_MUD3_056);
+		showText(TX_SPEAKER_KIRK,  TX_MUD3_015);
+		showText(TX_SPEAKER_SPOCK, TX_MUD3_047);
 		_roomVar.mudd.suggestedUsingTricorders = true;
 	} else {
-		showText(TX_SPEAKER_SPOCK, 44);
+		showText(TX_SPEAKER_SPOCK, TX_MUD3_044);
 		_awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_W;
 		walkCrewman(OBJECT_SPOCK, 0xcd, 0x87);
 	}
@@ -221,10 +329,10 @@ void Room::mudd3UseSpockOnSphere() {
 void Room::mudd3Timer3Expired() {
 	_awayMission->disableInput = false;
 
-	showText(TX_SPEAKER_MCCOY, 27);
-	showText(TX_SPEAKER_SPOCK, 53);
-	showText(TX_SPEAKER_MCCOY, 28);
-	showText(TX_SPEAKER_MCCOY, 26);
+	showText(TX_SPEAKER_MCCOY, TX_MUD3_027);
+	showText(TX_SPEAKER_SPOCK, TX_MUD3_053);
+	showText(TX_SPEAKER_MCCOY, TX_MUD3_028);
+	showText(TX_SPEAKER_MCCOY, TX_MUD3_026);
 }
 
 void Room::mudd3UseMccoyOnSphere() {
@@ -232,7 +340,7 @@ void Room::mudd3UseMccoyOnSphere() {
 	_awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_S;
 	loadActorStandAnim(OBJECT_MCCOY);
 
-	showText(TX_SPEAKER_MCCOY, 21);
+	showText(TX_SPEAKER_MCCOY, TX_MUD3_021);
 	_awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_W;
 	walkCrewman(OBJECT_MCCOY, 0xec, 0x84);
 }
@@ -242,14 +350,14 @@ void Room::mudd3UseRedshirtOnSphere() {
 	_awayMission->crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_S;
 	loadActorStandAnim(OBJECT_REDSHIRT);
 
-	showText(TX_SPEAKER_BUCHERT, 68); // BUGFIX: original played McCoy's audio by mistake
+	showText(TX_SPEAKER_BUCHERT, TX_MUD3_068); // BUGFIX: original played McCoy's audio by mistake
 	_awayMission->crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_W;
 	walkCrewman(OBJECT_REDSHIRT, 0xec, 0x84);
 }
 
 void Room::mudd3UseMTricorderOnSphere() {
 	if (_roomVar.mudd.tricordersUnavailable)
-		showText(TX_SPEAKER_SPOCK, 39); // BUGFIX: speaker is Spock
+		showText(TX_SPEAKER_SPOCK, TX_MUD3_039); // BUGFIX: speaker is Spock
 	else {
 		_awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_S;
 		loadActorStandAnim(OBJECT_MCCOY);
@@ -261,7 +369,7 @@ void Room::mudd3UseMTricorderOnSphere() {
 			_awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_S;
 			walkCrewmanC(OBJECT_SPOCK, 0xa5, 0x8c, &Room::mudd3ReadyToHookUpTricorders);
 		} else {
-			showText(TX_SPEAKER_MCCOY, 21);
+			showText(TX_SPEAKER_MCCOY, TX_MUD3_021);
 			_awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_W;
 			walkCrewman(OBJECT_MCCOY, 0xec, 0x84);
 		}
@@ -273,9 +381,9 @@ void Room::mudd3UseSTricorderOnSphere() {
 	loadActorStandAnim(OBJECT_SPOCK);
 
 	if (_roomVar.mudd.tricordersUnavailable)
-		showText(TX_SPEAKER_SPOCK, 39); // BUGFIX: speaker is Spock
+		showText(TX_SPEAKER_SPOCK, TX_MUD3_039); // BUGFIX: speaker is Spock
 	else if (_awayMission->mudd.translatedAlienLanguage || (_awayMission->mudd.discoveredBase3System && !_roomVar.mudd.suggestedUsingTricorders)) {
-		showText(TX_SPEAKER_SPOCK, 41);
+		showText(TX_SPEAKER_SPOCK, TX_MUD3_041);
 		_awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_W;
 		walkCrewman(OBJECT_SPOCK, 0xcd, 0x87);
 	} else if (_awayMission->mudd.discoveredBase3System && _roomVar.mudd.suggestedUsingTricorders) { // Hooking up tricorders
@@ -283,13 +391,13 @@ void Room::mudd3UseSTricorderOnSphere() {
 		_awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_S;
 		walkCrewmanC(OBJECT_MCCOY, 0xca, 0x88, &Room::mudd3ReadyToHookUpTricorders);
 	} else { // No idea how to access it
-		showText(TX_SPEAKER_SPOCK, 42);
+		showText(TX_SPEAKER_SPOCK, TX_MUD3_042);
 		walkCrewman(OBJECT_SPOCK, 0xcd, 0x87);
 	}
 }
 
 void Room::mudd3ReadyToHookUpTricorders() {
-	showText(TX_SPEAKER_SPOCK, 18);
+	showText(TX_SPEAKER_SPOCK, TX_MUD3_018);
 
 	_roomVar.mudd.tricordersUnavailable = true;
 	_awayMission->timers[1] = 50;
@@ -299,8 +407,8 @@ void Room::mudd3ReadyToHookUpTricorders() {
 }
 
 void Room::mudd3Timer1Expired() { // Tricorders ready for use again
-	showText(TX_SPEAKER_SPOCK, 40);
-	showText(TX_SPEAKER_SPOCK, 34);
+	showText(TX_SPEAKER_SPOCK, TX_MUD3_040);
+	showText(TX_SPEAKER_SPOCK, TX_MUD3_034);
 
 	_awayMission->disableInput = false;
 	_roomVar.mudd.tricordersUnavailable = false;
@@ -318,29 +426,29 @@ void Room::mudd3Timer1Expired() { // Tricorders ready for use again
 void Room::mudd3Timer2Expired() {
 	const TextRef choices[] = {
 		TX_SPEAKER_KIRK,
-		10,
-		9,
-		TX_BLANK
+		TX_MUD3_010,
+		TX_MUD3_009,
+		TX_END
 	};
 
 	_awayMission->mudd.computerDataErasedOrDestroyed = true;
 
-	showText(TX_SPEAKER_MUDD, 65);
+	showText(TX_SPEAKER_MUDD, TX_MUD3_065);
 	int choice = showMultipleTexts(choices);
 
 	if (choice == 0) { // Allow him to access the database (he ends up erasing it)
-		showText(TX_SPEAKER_MUDD, 66);
+		showText(TX_SPEAKER_MUDD, TX_MUD3_066);
 		_awayMission->mudd.muddErasedDatabase = true;
 
 		// ENHANCEMENT: Add a few lines to make it clear that Mudd erased the databanks.
 		// Otherwise, the end of the mission when you confront Mudd doesn't make sense
 		// unless the player happened to try accessing the database again. Also, if you
 		// talk to the crew, they berate him for no apparent reason if this isn't clear.
-		showDescription(0);
-		showText(TX_SPEAKER_MCCOY, 31);
+		showDescription(TX_MUD3N000);
+		showText(TX_SPEAKER_MCCOY, TX_MUD3_031);
 
 	} else { // Don't allow it (he destroys it by accident)
-		showText(TX_SPEAKER_MUDD, 64);
+		showText(TX_SPEAKER_MUDD, TX_MUD3_064);
 		_awayMission->timers[4] = 98;
 		_awayMission->disableInput = 2;
 		playMidiMusicTracks(26);
@@ -351,8 +459,8 @@ void Room::mudd3Timer2Expired() {
 void Room::mudd3Timer4Expired() {
 	_awayMission->mudd.databaseDestroyed = true;
 
-	showText(TX_SPEAKER_MUDD, 63);
-	showText(TX_SPEAKER_MCCOY, 31);
+	showText(TX_SPEAKER_MUDD, TX_MUD3_063);
+	showText(TX_SPEAKER_MCCOY, TX_MUD3_031);
 
 	_awayMission->disableInput = false;
 }
@@ -363,21 +471,21 @@ void Room::mudd3UseMemoryDiskOnSphere() {
 	loadActorStandAnim(OBJECT_KIRK);
 
 	if (_awayMission->mudd.databaseDestroyed)
-		showDescription(14);
+		showDescription(TX_MUD3N014);
 	else if (_awayMission->mudd.translatedAlienLanguage && !_awayMission->mudd.muddErasedDatabase) {
-		showDescription(20);
+		showDescription(TX_MUD3N020);
 		if (!_awayMission->mudd.gotPointsForDownloadingData) {
 			_awayMission->mudd.missionScore += 3;
 			_awayMission->mudd.gotPointsForDownloadingData = true;
 		}
 	} else
-		showDescription(19);
+		showDescription(TX_MUD3N019);
 }
 
 
 void Room::mudd3GetRepairTool() {
 	if (_awayMission->mudd.tookRepairTool)
-		showDescription(18); // NOTE: unused, since the object disappears, can't be selected again
+		showDescription(TX_MUD3N018); // NOTE: unused, since the object disappears, can't be selected again
 	else {
 		_awayMission->disableInput = true;
 		_awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N;
@@ -403,7 +511,7 @@ void Room::mudd3LookAtSphere() {
 	_awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_S;
 	loadActorStandAnim(OBJECT_KIRK);
 
-	showDescription(15);
+	showDescription(TX_MUD3N015);
 }
 
 void Room::mudd3WalkToNorthDoor() {
@@ -433,91 +541,90 @@ void Room::mudd3TouchedHotspot1() {
 
 void Room::mudd3LookAtKirk() {
 	if (!_awayMission->mudd.muddInDatabaseRoom)
-		showDescription(5);
+		showDescription(TX_MUD3N005);
 	else
-		showDescription(4);
+		showDescription(TX_MUD3N004);
 }
 
 void Room::mudd3LookAtSpock() {
 	if (!_awayMission->mudd.muddInDatabaseRoom)
-		showDescription(12);
+		showDescription(TX_MUD3N012);
 	else
-		showDescription( 2);
+		showDescription(TX_MUD3N002);
 }
 
 void Room::mudd3LookAtMccoy() {
 	if (!_awayMission->mudd.muddInDatabaseRoom)
-		showDescription(10);
+		showDescription(TX_MUD3N010);
 	else
-		showDescription( 9);
+		showDescription(TX_MUD3N009);
 }
 
 void Room::mudd3LookAtRedshirt() {
 	if (!_awayMission->mudd.muddInDatabaseRoom)
-		showDescription(7);
+		showDescription(TX_MUD3N007);
 	else
-		showDescription(6);
+		showDescription(TX_MUD3N006);
 }
 
 void Room::mudd3LookAtMudd() {
-	showDescription(3);
+	showDescription(TX_MUD3N003);
 }
 
 void Room::mudd3TalkToKirk() {
 	if (!_awayMission->mudd.muddInDatabaseRoom) {
-		showText(TX_SPEAKER_KIRK,  14);
-		showText(TX_SPEAKER_SPOCK, 57);
-		showText(TX_SPEAKER_MCCOY, 25);
+		showText(TX_SPEAKER_KIRK,  TX_MUD3_014);
+		showText(TX_SPEAKER_SPOCK, TX_MUD3_057);
+		showText(TX_SPEAKER_MCCOY, TX_MUD3_025);
 	} else
-		showText(TX_SPEAKER_KIRK,  2);
+		showText(TX_SPEAKER_KIRK, TX_MUD3_002);
 }
 
 void Room::mudd3TalkToSpock() {
 	if (!_awayMission->mudd.muddInDatabaseRoom) {
-		showText(TX_SPEAKER_SPOCK, 55);
-		showText(TX_SPEAKER_MCCOY, 33);
-		showText(TX_SPEAKER_KIRK,  11);
+		showText(TX_SPEAKER_SPOCK, TX_MUD3_055);
+		showText(TX_SPEAKER_MCCOY, TX_MUD3_033);
+		showText(TX_SPEAKER_KIRK,  TX_MUD3_011);
 	} else
-		showText(TX_SPEAKER_SPOCK, 19);
+		showText(TX_SPEAKER_SPOCK, TX_MUD3_019);
 }
 
 void Room::mudd3TalkToMccoy() {
 	if (!_awayMission->mudd.muddInDatabaseRoom)
-		showText(TX_SPEAKER_MCCOY, 23);
+		showText(TX_SPEAKER_MCCOY, TX_MUD3_023);
 	else {
-		showText(TX_SPEAKER_MCCOY, 30);
-		showText(TX_SPEAKER_MUDD,  62);
+		showText(TX_SPEAKER_MCCOY, TX_MUD3_030);
+		showText(TX_SPEAKER_MUDD,  TX_MUD3_062);
 	}
 }
 
 void Room::mudd3TalkToRedshirt() {
 	if (!_awayMission->mudd.muddInDatabaseRoom) {
-		showText(TX_SPEAKER_BUCHERT, 70);
-		showText(TX_SPEAKER_KIRK,    16);
-		showText(TX_SPEAKER_BUCHERT, 71);
+		showText(TX_SPEAKER_BUCHERT, TX_MUD3_070);
+		showText(TX_SPEAKER_KIRK,    TX_MUD3_016);
+		showText(TX_SPEAKER_BUCHERT, TX_MUD3_071);
 	} else
-		showText(TX_SPEAKER_BUCHERT, 67);
+		showText(TX_SPEAKER_BUCHERT, TX_MUD3_067);
 }
 
 void Room::mudd3TalkToMudd() {
 	// ENHANCEMENT: the 2nd part of the if condition is new; whether he physically
 	// destroys the database or does through software, he should give this reaction.
 	if (_awayMission->mudd.databaseDestroyed || _awayMission->mudd.muddErasedDatabase) {
-		showText(TX_SPEAKER_MUDD,    60);
-		showText(TX_SPEAKER_MCCOY,   29);
-		showText(TX_SPEAKER_MUDD,    61);
-		showText(TX_SPEAKER_KIRK,    13);
-		showText(TX_SPEAKER_MUDD,    58);
-		//showText(TX_SPEAKER_SPOCK,   TX_DEM0N009);
-		showText(TX_SPEAKER_BUCHERT, 69);
-		showText(TX_SPEAKER_MUDD,    59);
-		showText(TX_SPEAKER_KIRK,     5);
+		showText(TX_SPEAKER_MUDD,    TX_MUD3_060);
+		showText(TX_SPEAKER_MCCOY,   TX_MUD3_029);
+		showText(TX_SPEAKER_MUDD,    TX_MUD3_061);
+		showText(TX_SPEAKER_KIRK,    TX_MUD3_013);
+		showText(TX_SPEAKER_MUDD,    TX_MUD3_058);
+		showText(TX_SPEAKER_SPOCK,   TX_DEM0N009); // ENHANCEMENT: Original text was just "(Raises eyebrow)" without any audio.
+		showText(TX_SPEAKER_BUCHERT, TX_MUD3_069);
+		showText(TX_SPEAKER_MUDD,    TX_MUD3_059);
+		showText(TX_SPEAKER_KIRK,    TX_MUD3_005);
 	}
 }
 
 void Room::mudd3UseMedkit() {
-	showText(TX_SPEAKER_MCCOY, 20);
+	showText(TX_SPEAKER_MCCOY, TX_MUD3_020);
 }
 
 }
-#endif
diff --git a/engines/startrek/rooms/mudd4.cpp b/engines/startrek/rooms/mudd4.cpp
index bd4268a4bc..3094d80000 100644
--- a/engines/startrek/rooms/mudd4.cpp
+++ b/engines/startrek/rooms/mudd4.cpp
@@ -118,15 +118,75 @@ extern const RoomAction mudd4ActionList[] = {
 };
 
 enum mudd4TextIds {
-	TX_SPEAKER_KIRK, TX_SPEAKER_MCCOY, TX_SPEAKER_SPOCK, TX_SPEAKER_EVERTS,
+	TX_SPEAKER_KIRK, TX_SPEAKER_MCCOY, TX_SPEAKER_SPOCK, TX_SPEAKER_UHURA, TX_SPEAKER_BUCHERT,
+	TX_SPEAKER_SCOTT, TX_SPEAKER_MUDD,
+	TX_MUD4_002, TX_MUD4_004, TX_MUD4_006,
+	TX_MUD4_007, TX_MUD4_013, TX_MUD4_018, TX_MUD4_019, TX_MUD4_020,
+	TX_MUD4_023, TX_MUD4_024, TX_MUD4_025, TX_MUD4_027, TX_MUD4_028,
+	TX_MUD4_031, TX_MUD4_033, TX_MUD4_038, TX_MUD4_039, TX_MUD4_040,
+	TX_MUD4_041, TX_MUD4_042, TX_MUD4_043, TX_MUD4_045, TX_MUD4_048,
+	TX_MUD4_049, TX_MUD4_052, TX_MUD4_053, TX_MUD4_054, TX_MUD4_055,
+	TX_MUD4_056, TX_MUD4_057, TX_MUD4_058, TX_MUD4_059, TX_MUD4_060,
+	TX_MUD4_061, TX_MUD4_062, TX_MUD4_075, TX_MUD4_A29, TX_MUD4_S02,
+	TX_MUD4_S03, TX_MUD4_S04, TX_MUD4N000, TX_MUD4N001, TX_MUD4N005,
+	TX_MUD4N007,
+	TX_STATICU1
 };
 
+// TODO: Finish offsets
 // TODO: Finish floppy offsets
 extern const RoomTextOffsets mudd4TextOffsets[] = {
-	//{ TX_SPEAKER_KIRK, 2597, 0 },
-	//{ TX_SPEAKER_MCCOY, 2622, 0 },
-	//{ TX_SPEAKER_SPOCK, 2632, 0 },
-	//{ TX_SPEAKER_EVERTS, 2642, 0 },
+	{ TX_SPEAKER_KIRK, 4048, 0 },
+	{ TX_SPEAKER_MCCOY, 4059, 0 },
+	{ TX_SPEAKER_SPOCK, 4069, 0 },
+	//{ TX_SPEAKER_UHURA, 2632, 0 },
+	{ TX_SPEAKER_BUCHERT, 4079, 0 },
+	{ TX_SPEAKER_SCOTT, 4091, 0 },
+	{ TX_SPEAKER_MUDD, 4101, 0 },
+	{ TX_MUD4_002, 6069, 0 },
+	{ TX_MUD4_004, 6134, 0 },
+	{ TX_MUD4_006, 5958, 0 },
+	{ TX_MUD4_007, 6103, 0 },
+	{ TX_MUD4_013, 4255, 0 },
+	{ TX_MUD4_018, 454, 0 },
+	{ TX_MUD4_019, 7470, 0 },
+	{ TX_MUD4_020, 7279, 0 },
+	{ TX_MUD4_023, 7208, 0 },
+	{ TX_MUD4_024, 7106, 0 },
+	{ TX_MUD4_025, 6345, 0 },
+	{ TX_MUD4_027, 6588, 0 },
+	{ TX_MUD4_028, 6812, 0 },
+	{ TX_MUD4_031, 4607, 0 },
+	{ TX_MUD4_033, 7060, 0 },
+	{ TX_MUD4_038, 5197, 0 },
+	{ TX_MUD4_039, 5224, 0 },
+	{ TX_MUD4_040, 5254, 0 },
+	{ TX_MUD4_041, 5285, 0 },
+	{ TX_MUD4_042, 7869, 0 },
+	{ TX_MUD4_043, 2510, 0 },
+	{ TX_MUD4_045, 7555, 0 },
+	{ TX_MUD4_048, 4377, 0 },
+	{ TX_MUD4_049, 5786, 0 },
+	{ TX_MUD4_052, 5840, 0 },
+	{ TX_MUD4_053, 5309, 0 },
+	{ TX_MUD4_054, 6219, 0 },
+	{ TX_MUD4_055, 5603, 0 },
+	{ TX_MUD4_056, 5523, 0 },
+	{ TX_MUD4_057, 4895, 0 },
+	{ TX_MUD4_058, 5023, 0 },
+	{ TX_MUD4_059, 4459, 0 },
+	{ TX_MUD4_060, 4676, 0 },
+	{ TX_MUD4_061, 4119, 0 },
+	{ TX_MUD4_062, 4288, 0 },
+	{ TX_MUD4_075, 7611, 0 },
+	{ TX_MUD4_A29, 7503, 0 },
+	{ TX_MUD4_S02, 6377, 0 },
+	{ TX_MUD4_S03, 7323, 0 },
+	{ TX_MUD4_S04, 6912, 0 },
+	{ TX_MUD4N000, 7801, 0 },
+	{ TX_MUD4N001, 0, 0 },
+	{ TX_MUD4N005, 3106, 0 },
+	{ TX_MUD4N007, 3298, 0 },
 	{          -1, 0,    0 }
 };
 
@@ -145,8 +205,8 @@ void Room::mudd4Tick1() {
 }
 
 void Room::mudd4UseCommunicator() {
-	showText(TX_SPEAKER_KIRK,  18);
-	showText(TX_SPEAKER_UHURA_GLOBAL, TX_STATICU1);
+	showText(TX_SPEAKER_KIRK,  TX_MUD4_018);
+	showText(TX_SPEAKER_UHURA, TX_STATICU1);
 }
 
 void Room::mudd4Timer2Expired() {
@@ -173,17 +233,17 @@ void Room::mudd4UseSpockOnConsole() {
 
 	if (_awayMission->mudd.translatedAlienLanguage) {
 		if (!_roomVar.mudd.usingLeftConsole)
-			showText(TX_SPEAKER_SPOCK, 57);
+			showText(TX_SPEAKER_SPOCK, TX_MUD4_057);
 	} else if (_awayMission->mudd.discoveredBase3System) {
-		showText(TX_SPEAKER_SPOCK, 62);
+		showText(TX_SPEAKER_SPOCK, TX_MUD4_062);
 	} else {
-		showText(TX_SPEAKER_SPOCK, 61);
-		showText(TX_SPEAKER_KIRK,  13);
-		showText(TX_SPEAKER_SPOCK, 62);
-		showText(TX_SPEAKER_MCCOY, 48);
-		showText(TX_SPEAKER_SPOCK, 59);
-		showText(TX_SPEAKER_KIRK,  31);
-		showText(TX_SPEAKER_SPOCK, 60);
+		showText(TX_SPEAKER_SPOCK, TX_MUD4_061);
+		showText(TX_SPEAKER_KIRK,  TX_MUD4_013);
+		showText(TX_SPEAKER_SPOCK, TX_MUD4_062);
+		showText(TX_SPEAKER_MCCOY, TX_MUD4_048);
+		showText(TX_SPEAKER_SPOCK, TX_MUD4_059);
+		showText(TX_SPEAKER_KIRK,  TX_MUD4_031);
+		showText(TX_SPEAKER_SPOCK, TX_MUD4_060);
 
 		if (!_awayMission->mudd.discoveredBase3System) {
 			_awayMission->mudd.discoveredBase3System = true;
@@ -206,18 +266,18 @@ void Room::mudd4SpockReachedChair() {
 void Room::mudd4SpockSatInChair() {
 	loadActorAnim2(OBJECT_SPOCK, "s4crsr", 0x55, 0x98);
 
-	showText(TX_SPEAKER_SPOCK, 58);
+	showText(TX_SPEAKER_SPOCK, TX_MUD4_058);
 	mudd4ShowLeftConsoleMenu();
 }
 
 void Room::mudd4ShowLeftConsoleMenu() {
 	const TextRef choices[] = {
 		TX_SPEAKER_SPOCK,
-		38,
-		39,
-		40,
-		41,
-		TX_BLANK
+		TX_MUD4_038,
+		TX_MUD4_039,
+		TX_MUD4_040,
+		TX_MUD4_041,
+		TX_END
 	};
 
 	int choice = showMultipleTexts(choices);
@@ -243,27 +303,24 @@ void Room::mudd4ShowLeftConsoleMenu() {
 		_awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_N;
 		walkCrewman(OBJECT_SPOCK, 0x69, 0xb7);
 		break;
-
-	default:
-		break;
 	}
 }
 
 void Room::mudd4SpockUsedSensors() {
 	_awayMission->disableInput = false;
-	showText(TX_SPEAKER_SPOCK, 53);
+	showText(TX_SPEAKER_SPOCK, TX_MUD4_053);
 	mudd4ShowLeftConsoleMenu();
 }
 
 void Room::mudd4SpockUsedEngineering() {
 	_awayMission->disableInput = false;
-	showText(TX_SPEAKER_SPOCK, 56);
+	showText(TX_SPEAKER_SPOCK, TX_MUD4_056);
 	mudd4ShowLeftConsoleMenu();
 }
 
 void Room::mudd4SpockUsedNavigation() {
 	_awayMission->disableInput = false;
-	showText(TX_SPEAKER_SPOCK, 55);
+	showText(TX_SPEAKER_SPOCK, TX_MUD4_055);
 	mudd4ShowLeftConsoleMenu();
 }
 
@@ -287,13 +344,13 @@ void Room::mudd4UseKirkOnConsole() {
 	loadActorStandAnim(OBJECT_KIRK);
 
 	if (!_awayMission->mudd.translatedAlienLanguage) {
-		showText(TX_SPEAKER_KIRK, 06);
+		showText(TX_SPEAKER_KIRK, TX_MUD4_006);
 		_awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_N;
 		walkCrewmanC(OBJECT_SPOCK, 0x6d, 0x9a, &Room::mudd4FinishedWalking3);
 		_awayMission->disableInput = true;
 	} else {
 		if (!_roomVar.mudd.kirkUsingRightConsole)
-			showText(TX_SPEAKER_KIRK, 49);
+			showText(TX_SPEAKER_KIRK, TX_MUD4_049);
 		_awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N;
 		walkCrewmanC(OBJECT_KIRK, 0x7e, 0x98, &Room::mudd4KirkReachedRightConsole);
 		_awayMission->disableInput = true;
@@ -312,7 +369,7 @@ void Room::mudd4KirkSatInChair() {
 	_awayMission->timers[2] = 5;
 	_awayMission->disableInput = false;
 
-	showText(TX_SPEAKER_SPOCK, 52); // NOTE: why is Spock talking here?
+	showText(TX_SPEAKER_SPOCK, TX_MUD4_052); // NOTE: why is Spock talking here?
 
 	mudd4ShowRightConsoleMenu();
 }
@@ -320,10 +377,10 @@ void Room::mudd4KirkSatInChair() {
 void Room::mudd4ShowRightConsoleMenu() {
 	const TextRef choices[] = {
 		TX_SPEAKER_KIRK,
-		2,
-		7,
-		3,	// BUGFIX: this used Spock's voice instead of Kirk's in original
-		TX_BLANK
+		TX_MUD4_002,
+		TX_MUD4_007,
+		TX_MUD4_003, // BUGFIX: this used Spock's voice instead of Kirk's in original
+		TX_END
 	};
 
 	int choice = showMultipleTexts(choices);
@@ -343,9 +400,6 @@ void Room::mudd4ShowRightConsoleMenu() {
 		_awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N;
 		walkCrewman(OBJECT_KIRK, 0x83, 0xb6);
 		break;
-
-	default:
-		break;
 	}
 }
 
@@ -371,34 +425,34 @@ void Room::mudd4KirkUsedViewScreen() {
 void Room::mudd4Timer1Expired() {
 	_awayMission->disableInput = false;
 	if (_awayMission->mudd.viewScreenEnabled)
-		showText(TX_SPEAKER_KIRK, 04);
+		showText(TX_SPEAKER_KIRK, TX_MUD4_004);
 	mudd4ShowRightConsoleMenu();
 }
 
 void Room::mudd4KirkUsedCommunications() {
 	_awayMission->disableInput = false;
 	if (!_awayMission->mudd.knowAboutTorpedo) {
-		showText(TX_SPEAKER_SPOCK, 54);
+		showText(TX_SPEAKER_SPOCK, TX_MUD4_054);
 		mudd4ShowRightConsoleMenu();
 	} else {
 		if (!_awayMission->mudd.contactedEnterpriseFirstTime) {
 			_awayMission->mudd.missionScore++;
-			showText(TX_SPEAKER_KIRK,  25);
-			showText(TX_SPEAKER_SCOTT_GLOBAL, 2 + SCOTTY_MESSAGE_OFFSET);
+			showText(TX_SPEAKER_KIRK,  TX_MUD4_025);
+			showText(TX_SPEAKER_SCOTT, TX_MUD4_S02);
 
 			if (_awayMission->mudd.torpedoStatus == 1)
-				showText(TX_SPEAKER_KIRK, 27);
+				showText(TX_SPEAKER_KIRK, TX_MUD4_027);
 			else
-				showText(TX_SPEAKER_KIRK, 28);
+				showText(TX_SPEAKER_KIRK, TX_MUD4_028);
 
-			showText(TX_SPEAKER_SCOTT_GLOBAL, 4 + SCOTTY_MESSAGE_OFFSET);
+			showText(TX_SPEAKER_SCOTT, TX_MUD4_S04);
 
 			const TextRef choices[] = {
 				TX_SPEAKER_KIRK,
-				24,
-				33,
-				22,	// ENHANCEMENT: This line was recorded twice (MUD4_022 and MUD4_023). It's used twice, so, might as well make use of the second recording.
-				TX_BLANK
+				TX_MUD4_024,
+				TX_MUD4_033,
+				TX_MUD4_022, // ENHANCEMENT: This line was recorded twice (MUD4_022 and MUD4_023). It's used twice, so, might as well make use of the second recording.
+				TX_END
 			};
 
 			int choice = showMultipleTexts(choices);
@@ -416,11 +470,11 @@ void Room::mudd4KirkUsedCommunications() {
 				TX_MUD4_019,
 				TX_MUD4_A29,
 				TX_MUD4_023,
-				TX_BLANK
+				TX_END
 			};
 
-			showText(TX_SPEAKER_KIRK,  20);
-			showText(TX_SPEAKER_SCOTT_GLOBAL, 3 + SCOTTY_MESSAGE_OFFSET);
+			showText(TX_SPEAKER_KIRK,  TX_MUD4_020);
+			showText(TX_SPEAKER_SCOTT, TX_MUD4_S03);
 			int choice = showMultipleTexts(choices);
 
 			if (choice == 1) {
@@ -463,32 +517,32 @@ void Room::mudd4KirkReachedPositionToTalkToMudd() {
 	        || !_awayMission->mudd.accessedAlienDatabase) { // NOTE: why this last line? Test this...
 		const TextRef choices[] = {
 			TX_SPEAKER_KIRK,
-			 9,
-			16,
-			TX_BLANK
+			TX_MUD4_009,
+			TX_MUD4_016,
+			TX_END
 		};
 
-		showText(TX_SPEAKER_MUDD, 66);
+		showText(TX_SPEAKER_MUDD, TX_MUD4_066);
 		int choice = showMultipleTexts(choices);
 
 		if (choice == 1) {
 			// Copy of code at very bottom of function
-			showText(TX_SPEAKER_MUDD, 74);
-			showText(TX_SPEAKER_KIRK, 17);
-			showText(TX_SPEAKER_MUDD, 72);
-			showText(TX_SPEAKER_KIRK,  8);
-			showText(TX_SPEAKER_MUDD, 68);
-			showText(TX_SPEAKER_KIRK, 32);
+			showText(TX_SPEAKER_MUDD, TX_MUD4_074);
+			showText(TX_SPEAKER_KIRK, TX_MUD4_017);
+			showText(TX_SPEAKER_MUDD, TX_MUD4_072);
+			showText(TX_SPEAKER_KIRK, TX_MUD4_008);
+			showText(TX_SPEAKER_MUDD, TX_MUD4_068);
+			showText(TX_SPEAKER_KIRK, TX_MUD4_032);
 
 			endMission(_awayMission->mudd.missionScore, 0x1b, _awayMission->mudd.torpedoStatus);
 		} else {
 			// Threaten to arrest Mudd.
 			if (_awayMission->mudd.muddErasedDatabase || _awayMission->mudd.databaseDestroyed)
-				showText(TX_SPEAKER_KIRK, 34);
+				showText(TX_SPEAKER_KIRK, TX_MUD4_034);
 			if (_awayMission->mudd.discoveredLenseAndDegrimerFunction)
-				showText(TX_SPEAKER_KIRK, 37);
+				showText(TX_SPEAKER_KIRK, TX_MUD4_037);
 
-			showText(TX_SPEAKER_KIRK, 26);
+			showText(TX_SPEAKER_KIRK, TX_MUD4_026);
 
 			if (_awayMission->mudd.muddErasedDatabase && _awayMission->mudd.databaseDestroyed) {
 				// Mudd offers to copy the lost data to the enterprise computer. You don't
@@ -497,57 +551,57 @@ void Room::mudd4KirkReachedPositionToTalkToMudd() {
 				// NOTE: This combination is probably impossible, making this unused?
 				// (Either you give Mudd access to the database, or he destroys it.)
 
-				showText(TX_SPEAKER_MUDD,  71);
-				showText(TX_SPEAKER_KIRK,  36);
-				showText(TX_SPEAKER_SPOCK, 29);
-				showText(TX_SPEAKER_KIRK,  30);
+				showText(TX_SPEAKER_MUDD,  TX_MUD4_071);
+				showText(TX_SPEAKER_KIRK,  TX_MUD4_036);
+				showText(TX_SPEAKER_SPOCK, TX_MUD4_029);
+				showText(TX_SPEAKER_KIRK,  TX_MUD4_030);
 			} else {
 				// Mudd is forced to agree to give samples to a university.
-				showText(TX_SPEAKER_MUDD, 64);
-				showText(TX_SPEAKER_KIRK, 12);
-				showText(TX_SPEAKER_MUDD, 70);
-				showText(TX_SPEAKER_KIRK, 10);
-				showText(TX_SPEAKER_MUDD, 67);
-				showText(TX_SPEAKER_KIRK, 11);
+				showText(TX_SPEAKER_MUDD, TX_MUD4_064);
+				showText(TX_SPEAKER_KIRK, TX_MUD4_012);
+				showText(TX_SPEAKER_MUDD, TX_MUD4_070);
+				showText(TX_SPEAKER_KIRK, TX_MUD4_010);
+				showText(TX_SPEAKER_MUDD, TX_MUD4_067);
+				showText(TX_SPEAKER_KIRK, TX_MUD4_011);
 
 				_awayMission->mudd.missionScore += 4;
 				playMidiMusicTracks(30);
 
-				showText(TX_SPEAKER_MUDD, 73);
-				showText(TX_SPEAKER_KIRK, 35);
+				showText(TX_SPEAKER_MUDD, TX_MUD4_073);
+				showText(TX_SPEAKER_KIRK, TX_MUD4_035);
 			}
-			showText(TX_SPEAKER_MUDD, 69);
-			showText(TX_SPEAKER_KIRK, 01);
+			showText(TX_SPEAKER_MUDD, TX_MUD4_069);
+			showText(TX_SPEAKER_KIRK, TX_MUD4_001);
 
 			endMission(_awayMission->mudd.missionScore, 0x1b, _awayMission->mudd.torpedoStatus);
 		}
 	} else {
 		const TextRef choices[] = {
 			TX_SPEAKER_KIRK,
-			14,
-			21,
-			TX_BLANK
+			TX_MUD4_014,
+			TX_MUD4_021,
+			TX_END
 		};
 
-		showText(TX_SPEAKER_MUDD, 65);
+		showText(TX_SPEAKER_MUDD, TX_MUD4_065);
 		int choice = showMultipleTexts(choices);
 
 		if (choice == 1) {
-			showText(TX_SPEAKER_MUDD, 74);
-			showText(TX_SPEAKER_KIRK, 17);
+			showText(TX_SPEAKER_MUDD, TX_MUD4_074);
+			showText(TX_SPEAKER_KIRK, TX_MUD4_017);
 		}
-		showText(TX_SPEAKER_MUDD, 72);
-		showText(TX_SPEAKER_KIRK,  8);
-		showText(TX_SPEAKER_MUDD, 68);
-		showText(TX_SPEAKER_KIRK, 32);
+		showText(TX_SPEAKER_MUDD, TX_MUD4_072);
+		showText(TX_SPEAKER_KIRK, TX_MUD4_008);
+		showText(TX_SPEAKER_MUDD, TX_MUD4_068);
+		showText(TX_SPEAKER_KIRK, TX_MUD4_032);
 
 		endMission(_awayMission->mudd.missionScore, 0x1b, _awayMission->mudd.torpedoStatus);
 	}
 }
 
 void Room::mudd4UseMccoyOnConsole() {
-	// NOTE: This audio was recorded twice (45, true, and 44, true which is unused)
-	showText(TX_SPEAKER_MCCOY, 45);
+	// NOTE: This audio was recorded twice (TX_MUD4_045, and TX_MUD4_044 which is unused)
+	showText(TX_SPEAKER_MCCOY, TX_MUD4_045);
 
 	_awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_N;
 	walkCrewman(OBJECT_MCCOY, 0x7d, 0xc3);
@@ -557,33 +611,33 @@ void Room::mudd4UseRedshirtOnConsole() {
 	// Floppy version shows two different pieces of text here, but in the CD version,
 	// there's no difference
 	if (!_awayMission->mudd.translatedAlienLanguage)
-		showText(TX_SPEAKER_BUCHERT, 75);
+		showText(TX_SPEAKER_BUCHERT, TX_MUD4_075);
 	else
-		showText(TX_SPEAKER_BUCHERT, 75);
+		showText(TX_SPEAKER_BUCHERT, TX_MUD4_075);
 
 	_awayMission->crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_N;
 	walkCrewman(OBJECT_REDSHIRT, 0x2a, 0xbb);
 }
 
 void Room::mudd4UseSTricorderOnRepairTool() {
-	spockScan(DIR_E, 51, false);
+	spockScan(DIR_E, TX_SPEAKER_SPOCK, TX_MUD4_051, false);
 }
 
 void Room::mudd4UseSTricorderOnConsole() {
-	spockScan(DIR_N, 42, false);
+	spockScan(DIR_N, TX_SPEAKER_SPOCK, TX_MUD4_042, false);
 }
 
 void Room::mudd4UseSTricorderOnViewscreen() {
-	spockScan(DIR_N, 50, false);
+	spockScan(DIR_N, TX_SPEAKER_SPOCK, TX_MUD4_050, false);
 }
 
 void Room::mudd4UseMedkit() {
-	showText(TX_SPEAKER_MCCOY, 43);
+	showText(TX_SPEAKER_MCCOY, TX_MUD4_043);
 }
 
 void Room::mudd4GetRepairTool() {
 	if (_awayMission->mudd.tookRepairTool)
-		showDescription(12); // NOTE: unused, since the object disappears, can't be selected again
+		showDescription(TX_MUD4N012); // NOTE: unused, since the object disappears, can't be selected again
 	else {
 		_awayMission->disableInput = true;
 		_awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N;
@@ -604,52 +658,52 @@ void Room::mudd4PickedUpRepairTool() {
 }
 
 void Room::mudd4LookAtConsole() {
-	showDescription(0);
+	showDescription(TX_MUD4N000);
 }
 
 void Room::mudd4LookAtViewscreen() {
 	if (_awayMission->mudd.viewScreenEnabled)
-		showDescription(8);
+		showDescription(TX_MUD4N008);
 	else
-		showDescription(13);
+		showDescription(TX_MUD4N013);
 }
 
 void Room::mudd4LookAtKirk() {
-	showDescription(3);
+	showDescription(TX_MUD4N003);
 }
 
 void Room::mudd4LookAtSpock() {
-	showDescription(6);
+	showDescription(TX_MUD4N006);
 }
 
 void Room::mudd4LookAtMccoy() {
-	showDescription(1);
+	showDescription(TX_MUD4N001);
 }
 
 void Room::mudd4LookAtRedshirt() {
-	showDescription(4);
+	showDescription(TX_MUD4N004);
 }
 
 void Room::mudd4LookAtRepairTool() {
-	showDescription(11);
+	showDescription(TX_MUD4N011);
 }
 
 void Room::mudd4TalkToKirk() {
-	showText(TX_SPEAKER_KIRK, 05);
+	showText(TX_SPEAKER_KIRK, TX_MUD4_005);
 }
 
 void Room::mudd4TalkToSpock() {
-	showText(TX_SPEAKER_SPOCK, 63);
-	showText(TX_SPEAKER_KIRK,  15);
-	showText(TX_SPEAKER_MCCOY, 47);
+	showText(TX_SPEAKER_SPOCK, TX_MUD4_063);
+	showText(TX_SPEAKER_KIRK,  TX_MUD4_015);
+	showText(TX_SPEAKER_MCCOY, TX_MUD4_047);
 }
 
 void Room::mudd4TalkToMccoy() {
-	showText(TX_SPEAKER_MCCOY, 46);
+	showText(TX_SPEAKER_MCCOY, TX_MUD4_046);
 }
 
 void Room::mudd4TalkToRedshirt() {
-	showText(TX_SPEAKER_BUCHERT, 76);
+	showText(TX_SPEAKER_BUCHERT, TX_MUD4_076);
 }
 
 void Room::mudd4WalkToEastDoor() {
diff --git a/engines/startrek/rooms/mudd5.cpp b/engines/startrek/rooms/mudd5.cpp
index eaf9eecba1..2a2fd6a5f9 100644
--- a/engines/startrek/rooms/mudd5.cpp
+++ b/engines/startrek/rooms/mudd5.cpp
@@ -20,7 +20,6 @@
  *
  */
 
-#if 0
 #include "startrek/room.h"
 
 #define OBJECT_MUDD 8
@@ -86,15 +85,82 @@ extern const RoomAction mudd5ActionList[] = {
 };
 
 enum mudd5TextIds {
-	TX_SPEAKER_KIRK, TX_SPEAKER_MCCOY, TX_SPEAKER_SPOCK, TX_SPEAKER_EVERTS,
+	TX_SPEAKER_KIRK, TX_SPEAKER_MCCOY, TX_SPEAKER_SPOCK, TX_SPEAKER_UHURA,
+	TX_SPEAKER_BUCHERT, TX_SPEAKER_MUDD,
+	TX_MUD5_001, TX_MUD5_002, TX_MUD5_003, TX_MUD5_004, TX_MUD5_005,
+	TX_MUD5_006, TX_MUD5_007, TX_MUD5_009, TX_MUD5_010, TX_MUD5_011,
+	TX_MUD5_012, TX_MUD5_013, TX_MUD5_014, TX_MUD5_015, TX_MUD5_016,
+	TX_MUD5_017, TX_MUD5_018, TX_MUD5_019, TX_MUD5_020, TX_MUD5_021,
+	TX_MUD5_022, TX_MUD5_023, TX_MUD5_024, TX_MUD5_025, TX_MUD5_026,
+	TX_MUD5_027, TX_MUD5_028, TX_MUD5_030, TX_MUD5_031, TX_MUD5_032,
+	TX_MUD5_033, TX_MUD5_034, TX_MUD5_035, TX_MUD5_036, TX_MUD5_037,
+	TX_MUD5_038, TX_MUD5_039, TX_MUD5_040, TX_MUD2_002, TX_MUD5N000,
+	TX_MUD5N001, TX_MUD5N002, TX_MUD5N003, TX_MUD5N004, TX_MUD5N005,
+	TX_MUD5N006, TX_MUD5N007, TX_MUD5N008, TX_MUD5N009, TX_MUD5N010,
+	TX_MUD5N011, TX_MUD5N012, TX_MUD5N105, TX_STATICU1
 };
 
 // TODO: Finish floppy offsets
 extern const RoomTextOffsets mudd5TextOffsets[] = {
-	//{ TX_SPEAKER_KIRK, 2597, 0 },
-	//{ TX_SPEAKER_MCCOY, 2622, 0 },
-	//{ TX_SPEAKER_SPOCK, 2632, 0 },
-	//{ TX_SPEAKER_EVERTS, 2642, 0 },
+	{ TX_SPEAKER_KIRK, 2736, 0 },
+	{ TX_SPEAKER_MCCOY, 2747, 0 },
+	{ TX_SPEAKER_SPOCK, 2757, 0 },
+	{ TX_SPEAKER_UHURA, 646, 0 },
+	{ TX_SPEAKER_BUCHERT, 2767, 0 },
+	{ TX_SPEAKER_MUDD, 2779, 0 },
+	{ TX_MUD5_001, 3484, 0 },
+	{ TX_MUD5_002, 6809, 0 },
+	{ TX_MUD5_003, 609, 0 },
+	{ TX_MUD5_004, 7313, 0 },
+	{ TX_MUD5_005, 6045, 0 },
+	{ TX_MUD5_006, 5739, 0 },
+	{ TX_MUD5_007, 5037, 0 },
+	{ TX_MUD5_009, 3318, 0 },
+	{ TX_MUD5_010, 5829, 0 },
+	{ TX_MUD5_011, 2965, 0 },
+	{ TX_MUD5_012, 2481, 0 },
+	{ TX_MUD5_013, 5393, 0 },
+	{ TX_MUD5_014, 4477, 0 },
+	{ TX_MUD5_015, 3774, 0 },
+	{ TX_MUD5_016, 7112, 0 },
+	{ TX_MUD5_017, 7194, 0 },
+	{ TX_MUD5_018, 7524, 0 },
+	{ TX_MUD5_019, 4612, 0 },
+	{ TX_MUD5_020, 5276, 0 },
+	{ TX_MUD5_021, 4776, 0 },
+	{ TX_MUD5_022, 2791, 0 },
+	{ TX_MUD5_023, 7906, 0 },
+	{ TX_MUD5_024, 3359, 0 },
+	{ TX_MUD5_025, 3551, 0 },
+	{ TX_MUD5_026, 4382, 0 },
+	{ TX_MUD5_027, 4076, 0 },
+	{ TX_MUD5_028, 5137, 0 },
+	{ TX_MUD5_030, 3869, 0 },
+	{ TX_MUD5_031, 3192, 0 },
+	{ TX_MUD5_032, 6971, 0 },
+	{ TX_MUD5_033, 7022, 0 },
+	{ TX_MUD5_034, 5629, 0 },
+	{ TX_MUD5_035, 6005, 0 },
+	{ TX_MUD5_036, 6078, 0 },
+	{ TX_MUD5_037, 5884, 0 },
+	{ TX_MUD5_038, 5527, 0 },
+	{ TX_MUD5_039, 3928, 0 },
+	{ TX_MUD5_040, 7399, 0 },
+	{ TX_MUD2_002, 6142, 0 },
+	{ TX_MUD5N000, 7842, 0 },
+	{ TX_MUD5N001, 6351, 0 },
+	{ TX_MUD5N002, 6437, 0 },
+	{ TX_MUD5N003, 6718, 0 },
+	{ TX_MUD5N004, 6638, 0 },
+	{ TX_MUD5N005, 6557, 0 },
+	{ TX_MUD5N006, 7716, 0 },
+	{ TX_MUD5N007, 2122, 0 },
+	{ TX_MUD5N008, 4152, 0 },
+	{ TX_MUD5N009, 6270, 0 },
+	{ TX_MUD5N010, 8007, 0 },
+	{ TX_MUD5N011, 3084, 0 },
+	{ TX_MUD5N012, 4234, 0 },
+	{ TX_MUD5N105, 1928, 0 },
 	{          -1, 0,    0 }
 };
 
@@ -128,14 +194,14 @@ void Room::mudd5Tick1() {
 void Room::mudd5Timer1Expired() { // Mudd enters room through hatch
 	const TextRef choices[] = {
 		TX_SPEAKER_KIRK,
-		6, true,
-		10, true,
-		TX_BLANK
+		TX_MUD5_006,
+		TX_MUD5_010,
+		TX_END
 	};
 
-	showText(TX_SPEAKER_MUDD, 34);
+	showText(TX_SPEAKER_MUDD, TX_MUD5_034);
 	showMultipleTexts(choices);
-	showText(TX_SPEAKER_MUDD, 37);
+	showText(TX_SPEAKER_MUDD, TX_MUD5_037);
 
 	loadActorAnim2(OBJECT_MUDD, "s4ephc");
 	_awayMission->timers[2] = 140;
@@ -149,47 +215,47 @@ void Room::mudd5Timer2Expired() { // Life-support generator starts acting up
 }
 
 void Room::mudd5UseCommunicator() {
-	showText(TX_SPEAKER_KIRK,  3);
-	showText(TX_SPEAKER_UHURA_GLOBAL, TX_STATICU1);
+	showText(TX_SPEAKER_KIRK,  TX_MUD5_003);
+	showText(TX_SPEAKER_UHURA, TX_STATICU1);
 }
 
 void Room::mudd5UseSTricorderAnywhere() {
-	spockScan(DIR_S, 22, false);
+	spockScan(DIR_S, TX_SPEAKER_SPOCK, TX_MUD5_022, false);
 }
 
 void Room::mudd5UseSTricorderOnEngine() {
-	spockScan(DIR_E, 11, false);
+	spockScan(DIR_E, TX_SPEAKER_SPOCK, TX_MUD5_011, false);
 }
 
 void Room::mudd5UseSTricorderOnCrane() {
-	spockScan(DIR_S, 23, false);
+	spockScan(DIR_S, TX_SPEAKER_SPOCK, TX_MUD5_023, false);
 }
 
 void Room::mudd5UseSTricorderOnHatch() {
-	spockScan(DIR_W, 24, false);
-	showText(TX_SPEAKER_KIRK, 1);
+	spockScan(DIR_W, TX_SPEAKER_SPOCK, TX_MUD5_024, false);
+	showText(TX_SPEAKER_KIRK, TX_MUD5_001);
 }
 
 void Room::mudd5UseSTricorderOnLifeSupportGenerator() {
 	if (_awayMission->mudd.lifeSupportMalfunctioning)
-		spockScan(DIR_W, 19, false);
+		spockScan(DIR_W, TX_SPEAKER_SPOCK, TX_MUD5_019, false);
 	else
-		spockScan(DIR_W, 21, false);
+		spockScan(DIR_W, TX_SPEAKER_SPOCK, TX_MUD5_021, false);
 }
 
 void Room::mudd5UseStunPhaserOnHatch() {
-	showText(TX_SPEAKER_SPOCK, 25);
-	showText(TX_SPEAKER_MCCOY, 15);
-	showText(TX_SPEAKER_SPOCK, 30);
+	showText(TX_SPEAKER_SPOCK, TX_MUD5_025);
+	showText(TX_SPEAKER_MCCOY, TX_MUD5_015);
+	showText(TX_SPEAKER_SPOCK, TX_MUD5_030);
 }
 
 void Room::mudd5UseKillPhaserOnHatch() {
-	showText(TX_SPEAKER_BUCHERT, 39);
-	showText(TX_SPEAKER_SPOCK,   27);
+	showText(TX_SPEAKER_BUCHERT, TX_MUD5_039);
+	showText(TX_SPEAKER_SPOCK,   TX_MUD5_027);
 }
 
 void Room::mudd5UseAnythingOnLifeSupportGenerator() {
-	showText(TX_SPEAKER_MCCOY, 14); // BUGFIX: speaker is McCoy, not none
+	showText(TX_SPEAKER_MCCOY, TX_MUD5_014); // BUGFIX: speaker is McCoy, not none
 }
 
 
@@ -199,7 +265,7 @@ void Room::mudd5UseDooverOnLifeSupportGenerator() {
 		_awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N;
 		walkCrewmanC(OBJECT_KIRK, 0x57, 0xb4, &Room::mudd5KirkReachedLifeSupportGenerator);
 	} else
-		showText(TX_SPEAKER_MCCOY, 14); // BUGFIX: speaker is McCoy, not none
+		showText(TX_SPEAKER_MCCOY, TX_MUD5_014); // BUGFIX: speaker is McCoy, not none
 }
 
 void Room::mudd5KirkReachedLifeSupportGenerator() {
@@ -215,8 +281,8 @@ void Room::mudd5KirkTimer4Expired() {
 }
 
 void Room::mudd5KirkRepairedLifeSupportGenerator() {
-	showText(TX_SPEAKER_KIRK,  7);
-	showText(TX_SPEAKER_SPOCK, 28);
+	showText(TX_SPEAKER_KIRK,  TX_MUD5_007);
+	showText(TX_SPEAKER_SPOCK, TX_MUD5_028);
 
 	_awayMission->mudd.lifeSupportMalfunctioning = false;
 	_awayMission->mudd.muddUnavailable = false;
@@ -231,26 +297,26 @@ void Room::mudd5KirkRepairedLifeSupportGenerator() {
 }
 
 void Room::mudd5KirkTimer3Expired() { // Mudd popped back in after repairing generator
-	showText(TX_SPEAKER_MUDD, 35);
-	showText(TX_SPEAKER_KIRK,  5);
-	showText(TX_SPEAKER_MUDD, 36);
+	showText(TX_SPEAKER_MUDD, TX_MUD5_035);
+	showText(TX_SPEAKER_KIRK, TX_MUD5_005);
+	showText(TX_SPEAKER_MUDD, TX_MUD5_036);
 
 	loadActorAnim2(OBJECT_MUDD, "s4ephc");
 	_awayMission->disableInput = false;
 }
 
 void Room::mudd5LookAtHatch() {
-	showDescription(11);
-	showText(TX_SPEAKER_SPOCK, 31);
-	showText(TX_SPEAKER_KIRK,   9);
+	showDescription(TX_MUD5N011);
+	showText(TX_SPEAKER_SPOCK, TX_MUD5_031);
+	showText(TX_SPEAKER_KIRK,  TX_MUD5_009);
 }
 
 void Room::mudd5LookAtLifeSupportGenerator() {
 	if (_awayMission->mudd.lifeSupportMalfunctioning)
-		showDescription(8);
+		showDescription(TX_MUD5N008);
 	else {
-		showDescription(12);
-		showText(TX_SPEAKER_SPOCK, 26);
+		showDescription(TX_MUD5N012);
+		showText(TX_SPEAKER_SPOCK, TX_MUD5_026);
 	}
 }
 
@@ -268,56 +334,55 @@ void Room::mudd5WalkToDoor() {
 }
 
 void Room::mudd5LookAtKirk() {
-	showDescription(2);
+	showDescription(TX_MUD5N002);
 }
 
 void Room::mudd5LookAtSpock() {
-	showDescription(5);
+	showDescription(TX_MUD5N005);
 }
 
 void Room::mudd5LookAtMccoy() {
-	showDescription(4);
+	showDescription(TX_MUD5N004);
 }
 
 void Room::mudd5LookAtRedshirt() {
-	showDescription(3);
+	showDescription(TX_MUD5N003);
 }
 
 void Room::mudd5LookAtDoor() {
-	showDescription(10);
+	showDescription(TX_MUD5N010);
 }
 
 void Room::mudd5LookAtCrane() {
-	showDescription(0);
+	showDescription(TX_MUD5N000);
 }
 
 void Room::mudd5LookAtEngine() {
-	showDescription(6);
+	showDescription(TX_MUD5N006);
 }
 
 void Room::mudd5TalkToKirk() {
-	showText(TX_SPEAKER_KIRK,   2);
-	showText(TX_SPEAKER_SPOCK, 32);
+	showText(TX_SPEAKER_KIRK,  TX_MUD5_002);
+	showText(TX_SPEAKER_SPOCK, TX_MUD5_032);
 }
 
 void Room::mudd5TalkToSpock() {
-	showText(TX_SPEAKER_SPOCK, 33);
-	showText(TX_SPEAKER_MCCOY, 16);
+	showText(TX_SPEAKER_SPOCK, TX_MUD5_033);
+	showText(TX_SPEAKER_MCCOY, TX_MUD5_016);
 }
 
 void Room::mudd5TalkToMccoy() {
-	showText(TX_SPEAKER_MCCOY, 17);
-	showText(TX_SPEAKER_KIRK,   4);
+	showText(TX_SPEAKER_MCCOY, TX_MUD5_017);
+	showText(TX_SPEAKER_KIRK,  TX_MUD5_004);
 }
 
 void Room::mudd5TalkToRedshirt() {
-	showText(TX_SPEAKER_BUCHERT, 40);
-	showText(TX_SPEAKER_MCCOY,   18);
+	showText(TX_SPEAKER_BUCHERT, TX_MUD5_040);
+	showText(TX_SPEAKER_MCCOY,   TX_MUD5_018);
 }
 
 void Room::mudd5UseMedkit() {
-	showText(TX_SPEAKER_MCCOY, 12);
+	showText(TX_SPEAKER_MCCOY, TX_MUD5_012);
 }
 
 }
-#endif


Commit: a465274c0eec8203366c2fbddc0d1424f907dd19
    https://github.com/scummvm/scummvm/commit/a465274c0eec8203366c2fbddc0d1424f907dd19
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2021-02-20T21:32:52+02:00

Commit Message:
STARTREK: Update spockScan and mccoyScan calls

Changed paths:
    engines/startrek/rooms/love1.cpp
    engines/startrek/rooms/love3.cpp
    engines/startrek/rooms/love4.cpp
    engines/startrek/rooms/love5.cpp
    engines/startrek/rooms/mudd0.cpp
    engines/startrek/rooms/mudd1.cpp
    engines/startrek/rooms/mudd2.cpp
    engines/startrek/rooms/trial0.cpp
    engines/startrek/rooms/trial1.cpp
    engines/startrek/rooms/trial2.cpp
    engines/startrek/rooms/trial3.cpp
    engines/startrek/rooms/tug2.cpp


diff --git a/engines/startrek/rooms/love1.cpp b/engines/startrek/rooms/love1.cpp
index fb861fa2c4..58e38147ed 100644
--- a/engines/startrek/rooms/love1.cpp
+++ b/engines/startrek/rooms/love1.cpp
@@ -542,15 +542,15 @@ void Room::love1TalkToRedshirt() {
 }
 
 void Room::love1UseMTricorderOnDishes() {
-	mccoyScan(DIR_W, TX_LOV1_017, false);
+	mccoyScan(DIR_W, TX_SPEAKER_MCCOY, TX_LOV1_017, false);
 	// TODO: only works in this room, despite being inventory item?
 }
 
 void Room::love1UseMTricorderAnywhere() {
 	if (_awayMission->love.knowAboutVirus)
-		mccoyScan(DIR_S, TX_LOV1_009, false);
+		mccoyScan(DIR_S, TX_SPEAKER_MCCOY, TX_LOV1_009, false);
 	else
-		mccoyScan(DIR_S, TX_LOV1_010, false);
+		mccoyScan(DIR_S, TX_SPEAKER_MCCOY, TX_LOV1_010, false);
 }
 
 void Room::love1UseSTricorderOnReplicator() {
diff --git a/engines/startrek/rooms/love3.cpp b/engines/startrek/rooms/love3.cpp
index ca7f55391f..01110cf649 100644
--- a/engines/startrek/rooms/love3.cpp
+++ b/engines/startrek/rooms/love3.cpp
@@ -470,9 +470,9 @@ void Room::love3TalkToRedshirt() {
 
 void Room::love3UseMTricorderAnywhere() {
 	if (_awayMission->love.knowAboutVirus)
-		mccoyScan(DIR_S, TX_LOV3_005, false);
+		mccoyScan(DIR_S, TX_SPEAKER_MCCOY, TX_LOV3_005, false);
 	else
-		mccoyScan(DIR_S, TX_LOV3_006, false);
+		mccoyScan(DIR_S, TX_SPEAKER_MCCOY, TX_LOV3_006, false);
 }
 
 void Room::love3UseSTricorderOnTurbines() {
diff --git a/engines/startrek/rooms/love4.cpp b/engines/startrek/rooms/love4.cpp
index 5035dd7e49..61dc080dc8 100644
--- a/engines/startrek/rooms/love4.cpp
+++ b/engines/startrek/rooms/love4.cpp
@@ -409,18 +409,18 @@ void Room::love4TalkToRomulan() {
 
 void Room::love4UseMTricorderOnRomulan() {
 	if (_awayMission->love.romulansCured)
-		mccoyScan(DIR_S, TX_LOV4_018, false);
+		mccoyScan(DIR_S, TX_SPEAKER_MCCOY, TX_LOV4_018, false);
 	else
-		mccoyScan(DIR_S, TX_LOV4_015, false);
+		mccoyScan(DIR_S, TX_SPEAKER_MCCOY, TX_LOV4_015, false);
 }
 
 void Room::love4UseMTricorderAnywhere() {
 	if (_awayMission->love.romulansCured)
-		mccoyScan(DIR_S, TX_LOV4_019, false);
+		mccoyScan(DIR_S, TX_SPEAKER_MCCOY, TX_LOV4_019, false);
 	else if (_awayMission->love.romulansUnconsciousFromLaughingGas)
-		mccoyScan(DIR_S, TX_LOV4_020, false);
+		mccoyScan(DIR_S, TX_SPEAKER_MCCOY, TX_LOV4_020, false);
 	else
-		mccoyScan(DIR_S, TX_LOV4_021, false);
+		mccoyScan(DIR_S, TX_SPEAKER_MCCOY, TX_LOV4_021, false);
 }
 
 void Room::love4UseSTricorderAnywhere() {
diff --git a/engines/startrek/rooms/love5.cpp b/engines/startrek/rooms/love5.cpp
index e2d71247b4..6de3d29296 100644
--- a/engines/startrek/rooms/love5.cpp
+++ b/engines/startrek/rooms/love5.cpp
@@ -528,9 +528,9 @@ void Room::love5UseMTricorderOnMarcusOrCheever() {
 void Room::love5UseMTricorderOnPreax() {
 	if (!_awayMission->love.preaxCured) {
 		if (_awayMission->love.romulansUnconsciousFromLaughingGas)
-			mccoyScan(DIR_E, TX_LOV5_024, false);
+			mccoyScan(DIR_E, TX_SPEAKER_MCCOY, TX_LOV5_024, false);
 		else
-			mccoyScan(DIR_E, TX_LOV5_016, false);
+			mccoyScan(DIR_E, TX_SPEAKER_MCCOY, TX_LOV5_016, false);
 	}
 }
 
diff --git a/engines/startrek/rooms/mudd0.cpp b/engines/startrek/rooms/mudd0.cpp
index 7c9cb53526..a30cc53bd3 100644
--- a/engines/startrek/rooms/mudd0.cpp
+++ b/engines/startrek/rooms/mudd0.cpp
@@ -297,9 +297,9 @@ void Room::mudd0UseSTricorderOnDegrimerBox() {
 
 void Room::mudd0UseMTricorderOnLense() {
 	if (_awayMission->mudd.discoveredLenseAndDegrimerFunction)
-		mccoyScan(DIR_E, TX_MUD0_012, true);
+		mccoyScan(DIR_E, TX_SPEAKER_MCCOY, TX_MUD0_012, true);
 	else
-		mccoyScan(DIR_E, TX_MUD0_013, true);
+		mccoyScan(DIR_E, TX_SPEAKER_MCCOY, TX_MUD0_013, true);
 }
 
 void Room::mudd0GetLense() {
diff --git a/engines/startrek/rooms/mudd1.cpp b/engines/startrek/rooms/mudd1.cpp
index 859435cd9c..24319d4e15 100644
--- a/engines/startrek/rooms/mudd1.cpp
+++ b/engines/startrek/rooms/mudd1.cpp
@@ -322,7 +322,7 @@ void Room::mudd1GetTorpedo() {
 }
 
 void Room::mudd1UseSTricorderOnTorpedo() {
-	spockScan(DIR_W, TX_MUD1_025, false);
+	spockScan(DIR_W, TX_SPEAKER_SPOCK, TX_MUD1_025, false);
 	showText(TX_SPEAKER_BUCHERT, TX_MUD1_027);
 	showText(TX_SPEAKER_SPOCK,   TX_MUD1_020);
 	showText(TX_SPEAKER_BUCHERT, TX_MUD1_028);
@@ -330,17 +330,17 @@ void Room::mudd1UseSTricorderOnTorpedo() {
 }
 
 void Room::mudd1UseSTricorderOnTorpedoLauncher() {
-	spockScan(DIR_W, TX_MUD1_010, false);
+	spockScan(DIR_W, TX_SPEAKER_SPOCK, TX_MUD1_010, false);
 }
 
 void Room::mudd1UseSTricorderOnButton() {
 	// ENHANCEMENT: Do the whole "spockScan" thing, don't just show the text
-	spockScan(DIR_W, TX_MUD1_015, false);
+	spockScan(DIR_W, TX_SPEAKER_SPOCK, TX_MUD1_015, false);
 }
 
 void Room::mudd1UseSTricorderOnCrane() {
 	// ENHANCEMENT: See above
-	spockScan(DIR_N, TX_MUD1_014, false);
+	spockScan(DIR_N, TX_SPEAKER_SPOCK, TX_MUD1_014, false);
 }
 
 void Room::mudd1UseMedkitAnywhere() {
diff --git a/engines/startrek/rooms/mudd2.cpp b/engines/startrek/rooms/mudd2.cpp
index 8b559b6704..03f4301912 100644
--- a/engines/startrek/rooms/mudd2.cpp
+++ b/engines/startrek/rooms/mudd2.cpp
@@ -261,7 +261,7 @@ void Room::mudd2Timer1Expired() {
 }
 
 void Room::mudd2UseSTricorderAnywhere() {
-	spockScan(DIR_S, TX_MUD2_037, false);
+	spockScan(DIR_S, TX_SPEAKER_SPOCK, TX_MUD2_037, false);
 }
 
 void Room::mudd2UseSpockOnCapsules() {
@@ -299,7 +299,7 @@ void Room::mudd2LookAtCapsules() {
 }
 
 void Room::mudd2UseMTricorderOnCapsules() {
-	mccoyScan(DIR_W, TX_MUD2_030, false);
+	mccoyScan(DIR_W, TX_SPEAKER_MCCOY, TX_MUD2_030, false);
 	showText(TX_SPEAKER_KIRK,  TX_MUD2_004);
 	showText(TX_SPEAKER_MCCOY, TX_MUD2_019);
 }
@@ -448,7 +448,7 @@ void Room::mudd2RedshirtPushedAway() {
 // The function itself was also modified (ie. condition for showing text was inverted).
 void Room::mudd2UseMTricorderOnMudd() {
 	if (_awayMission->mudd.muddInhaledGas && !_awayMission->mudd.muddUnconscious)
-		mccoyScan(DIR_W, TX_MUD2_013, false);
+		mccoyScan(DIR_W, TX_SPEAKER_MCCOY, TX_MUD2_013, false);
 }
 
 
diff --git a/engines/startrek/rooms/trial0.cpp b/engines/startrek/rooms/trial0.cpp
index 49b5349d71..e50e31e009 100644
--- a/engines/startrek/rooms/trial0.cpp
+++ b/engines/startrek/rooms/trial0.cpp
@@ -400,24 +400,24 @@ void Room::trial0UseSnakeOnGuard() {
 }
 
 void Room::trial0UseMTricorderOnQuetzecoatl() {
-	mccoyScan(DIR_S, TX_TRI0_029, true);
+	mccoyScan(DIR_S, TX_SPEAKER_MCCOY, TX_TRI0_029, true);
 }
 
 void Room::trial0UseMTricorderOnVlict() {
-	mccoyScan(DIR_S, TX_TRI0_030, true);
+	mccoyScan(DIR_S, TX_SPEAKER_MCCOY, TX_TRI0_030, true);
 }
 
 void Room::trial0UseMTricorderAnywhere() {
-	mccoyScan(DIR_S, TX_TRI0_035, true);
+	mccoyScan(DIR_S, TX_SPEAKER_MCCOY, TX_TRI0_035, true);
 }
 
 void Room::trial0UseSTricorderOnWindow() {
-	spockScan(DIR_S, TX_TRI0_037, true);
+	spockScan(DIR_S, TX_SPEAKER_SPOCK, TX_TRI0_037, true);
 }
 
 void Room::trial0UseSTricorderAnywhere() {
 	// ENHANCEMENT: Originally didn't play tricorder sound, etc
-	spockScan(DIR_S, TX_TRI0_038, true);
+	spockScan(DIR_S, TX_SPEAKER_SPOCK, TX_TRI0_038, true);
 }
 
 void Room::trial0UseCommunicator() {
diff --git a/engines/startrek/rooms/trial1.cpp b/engines/startrek/rooms/trial1.cpp
index 49b2971793..7828fbbcd6 100644
--- a/engines/startrek/rooms/trial1.cpp
+++ b/engines/startrek/rooms/trial1.cpp
@@ -490,54 +490,54 @@ void Room::trial1UsePhaserOnLock() {
 }
 
 void Room::trial1UseMTricorderOnKirk() {
-	mccoyScan(DIR_S, TX_TRI1_024, true);
+	mccoyScan(DIR_S, TX_SPEAKER_MCCOY, TX_TRI1_024, true);
 }
 
 void Room::trial1UseMTricorderOnSpock() {
 	// ENHANCEMENT: Original didn't play tricorder sound, etc
-	mccoyScan(DIR_S, TX_TRI1_025, true);
+	mccoyScan(DIR_S, TX_SPEAKER_MCCOY, TX_TRI1_025, true);
 }
 
 void Room::trial1UseMTricorderOnMccoy() {
-	mccoyScan(DIR_S, TX_TRI1_022, true);
+	mccoyScan(DIR_S, TX_SPEAKER_MCCOY, TX_TRI1_022, true);
 }
 
 void Room::trial1UseMTricorderOnRedshirt() {
-	mccoyScan(DIR_S, TX_TRI1_023, true);
+	mccoyScan(DIR_S, TX_SPEAKER_MCCOY, TX_TRI1_023, true);
 }
 
 void Room::trial1UseMTricorderOnEntity() {
-	mccoyScan(DIR_S, TX_TRI1_017, true);
+	mccoyScan(DIR_S, TX_SPEAKER_MCCOY, TX_TRI1_017, true);
 }
 
 void Room::trial1UseSTricorderOnWall() {
-	spockScan(DIR_S, TX_TRI1_043, true);
+	spockScan(DIR_S, TX_SPEAKER_SPOCK, TX_TRI1_043, true);
 }
 
 void Room::trial1UseSTricorderOnEntity() {
-	spockScan(DIR_S, TX_TRI1_012, true);
+	spockScan(DIR_S, TX_SPEAKER_SPOCK, TX_TRI1_012, true);
 
 	// BUG: infinite score mechanism
 	_awayMission->trial.missionScore += 1;
 }
 
 void Room::trial1UseSTricorderOnRods() {
-	spockScan(DIR_S, TX_TRI1_041, true);
+	spockScan(DIR_S, TX_SPEAKER_SPOCK, TX_TRI1_041, true);
 }
 
 void Room::trial1UseSTricorderOnFloor() {
-	spockScan(DIR_S, TX_TRI1_042, true);
+	spockScan(DIR_S, TX_SPEAKER_SPOCK, TX_TRI1_042, true);
 
 	// BUG: infinite score mechanism
 	_awayMission->trial.missionScore += 1;
 }
 
 void Room::trial1UseSTricorderOnDoor() {
-	spockScan(DIR_S, TX_TRI1_013, true);
+	spockScan(DIR_S, TX_SPEAKER_SPOCK, TX_TRI1_013, true);
 }
 
 void Room::trial1UseSTricorderOnLock() {
-	spockScan(DIR_S, TX_TRI1_014, true);
+	spockScan(DIR_S, TX_SPEAKER_SPOCK, TX_TRI1_014, true);
 
 	if (!_awayMission->trial.scannedLock) {
 		_awayMission->trial.scannedLock = true;
diff --git a/engines/startrek/rooms/trial2.cpp b/engines/startrek/rooms/trial2.cpp
index 89d46261b5..6199dbf9c6 100644
--- a/engines/startrek/rooms/trial2.cpp
+++ b/engines/startrek/rooms/trial2.cpp
@@ -428,23 +428,23 @@ void Room::trial2UseKillPhaserOnSplitGlob2() {
 }
 
 void Room::trial2UseMTricorderOnKirk() {
-	mccoyScan(DIR_S, TX_TRI2_016, true);
+	mccoyScan(DIR_S, TX_SPEAKER_MCCOY, TX_TRI2_016, true);
 }
 
 void Room::trial2UseMTricorderOnSpock() {
-	mccoyScan(DIR_S, TX_TRI2_017, true);
+	mccoyScan(DIR_S, TX_SPEAKER_MCCOY, TX_TRI2_017, true);
 }
 
 void Room::trial2UseMTricorderOnMccoy() {
-	mccoyScan(DIR_S, TX_TRI2_014, true);
+	mccoyScan(DIR_S, TX_SPEAKER_MCCOY, TX_TRI2_014, true);
 }
 
 void Room::trial2UseMTricorderOnRedshirt() {
-	mccoyScan(DIR_S, TX_TRI2_015, true);
+	mccoyScan(DIR_S, TX_SPEAKER_MCCOY, TX_TRI2_015, true);
 }
 
 void Room::trial2UseMTricorderOnGlob() {
-	mccoyScan(DIR_S, TX_TRI2_011, true);
+	mccoyScan(DIR_S, TX_SPEAKER_MCCOY, TX_TRI2_011, true);
 
 	if (!_awayMission->trial.gotPointsForScanningGlob) {
 		_awayMission->trial.gotPointsForScanningGlob = true;
@@ -453,15 +453,15 @@ void Room::trial2UseMTricorderOnGlob() {
 }
 
 void Room::trial2UseSTricorderOnWall() {
-	spockScan(DIR_S, TX_TRI2_029, true);
+	spockScan(DIR_S, TX_SPEAKER_SPOCK, TX_TRI2_029, true);
 }
 
 void Room::trial2UseSTricorderAnywhere() {
-	spockScan(DIR_S, TX_TRI2_027, true);
+	spockScan(DIR_S, TX_SPEAKER_SPOCK, TX_TRI2_027, true);
 }
 
 void Room::trial2UseSTricorderOnGlob() {
-	spockScan(DIR_S, TX_TRI2_026, true);
+	spockScan(DIR_S, TX_SPEAKER_SPOCK, TX_TRI2_026, true);
 
 	if (!_awayMission->trial.gotPointsForScanningGlob) {
 		_awayMission->trial.gotPointsForScanningGlob = true;
diff --git a/engines/startrek/rooms/trial3.cpp b/engines/startrek/rooms/trial3.cpp
index 1229eb8bf5..48507f72bb 100644
--- a/engines/startrek/rooms/trial3.cpp
+++ b/engines/startrek/rooms/trial3.cpp
@@ -426,27 +426,27 @@ void Room::trial3UseMTricorderOnKirk() {
 }
 
 void Room::trial3UseMTricorderOnSpock() {
-	mccoyScan(DIR_S, TX_TRI3_016, true);
+	mccoyScan(DIR_S, TX_SPEAKER_MCCOY, TX_TRI3_016, true);
 }
 
 void Room::trial3UseMTricorderOnMccoy() {
-	mccoyScan(DIR_S, TX_TRI3_013, true);
+	mccoyScan(DIR_S, TX_SPEAKER_MCCOY, TX_TRI3_013, true);
 }
 
 void Room::trial3UseMTricorderOnRedshirt() {
-	mccoyScan(DIR_S, TX_TRI3_014, true);
+	mccoyScan(DIR_S, TX_SPEAKER_MCCOY, TX_TRI3_014, true);
 }
 
 void Room::trial3UseMTricorderOnExit() {
-	mccoyScan(DIR_S, TX_TRI3_009, true);
+	mccoyScan(DIR_S, TX_SPEAKER_MCCOY, TX_TRI3_009, true);
 }
 
 void Room::trial3UseSTricorderOnWall() {
-	spockScan(DIR_S, TX_TRI3_024, true);
+	spockScan(DIR_S, TX_SPEAKER_SPOCK, TX_TRI3_024, true);
 }
 
 void Room::trial3UseSTricorderOnExit() {
-	spockScan(DIR_S, TX_TRI3_023, true);
+	spockScan(DIR_S, TX_SPEAKER_SPOCK, TX_TRI3_023, true);
 }
 
 void Room::trial3UseMTricorderOnKlingon() {
diff --git a/engines/startrek/rooms/tug2.cpp b/engines/startrek/rooms/tug2.cpp
index 7fa104c745..a161a7040d 100644
--- a/engines/startrek/rooms/tug2.cpp
+++ b/engines/startrek/rooms/tug2.cpp
@@ -390,7 +390,7 @@ void Room::tug2LookAtWires() {
 void Room::tug2UseSTricorderOnButton() {
 	if (_awayMission->tug.field35 != 0)
 		return;
-	spockScan(DIR_E, TX_TUG2_007, true);
+	spockScan(DIR_E, TX_SPEAKER_SPOCK, TX_TUG2_007, true);
 }
 
 void Room::tug2UseMccoyOnWires() {
@@ -985,18 +985,18 @@ void Room::tug2Timer2Expired() {
 }
 
 void Room::tug2UseSTricorderOnBomb() {
-	spockScan(DIR_E, TX_TUG2_004, true);
+	spockScan(DIR_E, TX_SPEAKER_SPOCK, TX_TUG2_004, true);
 }
 
 void Room::tug2UseMTricorderOnGuard1() {
 	if (_awayMission->tug.guard1Status == GUARDSTAT_STUNNED)
-		mccoyScan(DIR_E, TX_TUG2_016, true);
+		mccoyScan(DIR_E, TX_SPEAKER_MCCOY, TX_TUG2_016, true);
 }
 
 void Room::tug2UseMTricorderOnGuard2() {
 	// BUGFIX: original didn't play audio for this (despite being the same as above).
 	if (_awayMission->tug.guard2Status == GUARDSTAT_STUNNED)
-		mccoyScan(DIR_E, TX_TUG2_016, true);
+		mccoyScan(DIR_E, TX_SPEAKER_MCCOY, TX_TUG2_016, true);
 }
 
 void Room::tug2TalkToGuard1() {
@@ -1057,19 +1057,19 @@ void Room::tug2TalkToBrig() {
 	if (_awayMission->tug.brigForceFieldDown && _awayMission->tug.talkedToBrigCrewman)
 		showText(TX_SPEAKER_MASADA_CREWMAN, TX_TUG2_027);
 	else if (!_awayMission->tug.brigForceFieldDown)
-		mccoyScan(DIR_E, TX_TUG2_015, true);
+		mccoyScan(DIR_E, TX_SPEAKER_MCCOY, TX_TUG2_015, true);
 }
 
 void Room::tug2UseMTricorderOnBrig() {
 	if (_awayMission->tug.field35 == 6)
-		mccoyScan(DIR_E, TX_TUG2_019, true);
+		mccoyScan(DIR_E, TX_SPEAKER_MCCOY, TX_TUG2_019, true);
 	else if (!_awayMission->tug.brigForceFieldDown)
-		mccoyScan(DIR_E, TX_TUG2_015, true);
+		mccoyScan(DIR_E, TX_SPEAKER_MCCOY, TX_TUG2_015, true);
 }
 
 void Room::tug2UseMTricorderOnOpenBrig() {
 	if (_awayMission->tug.brigForceFieldDown)
-		mccoyScan(DIR_E, TX_TUG2_015, true);
+		mccoyScan(DIR_E, TX_SPEAKER_MCCOY, TX_TUG2_015, true);
 }
 
 void Room::tug2UsePhaserAnywhere() {




More information about the Scummvm-git-logs mailing list