From a0fb6deb298caa0b74f285f6122e8392193a53dd Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Tue, 29 Oct 2019 13:31:36 +0200 Subject: STARTREK: Read the text for the SINS mission from RDF files --- engines/startrek/room.cpp | 12 +- engines/startrek/room.h | 1 + engines/startrek/rooms/sins0.cpp | 92 +++++------ engines/startrek/rooms/sins1.cpp | 98 ++++++------ engines/startrek/rooms/sins2.cpp | 124 +++++++-------- engines/startrek/rooms/sins3.cpp | 89 +++++------ engines/startrek/rooms/sins4.cpp | 115 +++++++------- engines/startrek/rooms/sins5.cpp | 122 +++++++------- engines/startrek/text.cpp | 322 ------------------------------------- engines/startrek/text.h | 332 --------------------------------------- 10 files changed, 325 insertions(+), 982 deletions(-) diff --git a/engines/startrek/room.cpp b/engines/startrek/room.cpp index 0cc2a444be..bd70898781 100644 --- a/engines/startrek/room.cpp +++ b/engines/startrek/room.cpp @@ -157,12 +157,12 @@ void Room::loadRoomMessage(const char *text) { Common::String patchedText = patchRoomMessage(text); text = patchedText.c_str(); - char textType = text[10]; // _ and U: talk message, N: look message, L: look with talker message + char textType = text[10]; // _, U and S: talk message, N: look message, L: look with talker message if (text[5] != '\\') error("loadRoomMessage: Invalid message"); - isTalkMessage = (textType == '_' || textType == 'U'); // U = Uhura + isTalkMessage = (textType == '_' || textType == 'U' || textType == 'S'); // U = Uhura, S = Scotty isLookMessage = (textType == 'N'); isLookWithTalkerMessage = (textType == 'L'); @@ -175,6 +175,11 @@ void Room::loadRoomMessage(const char *text) { messageNum += COMMON_MESSAGE_OFFSET; } + // For some reason, Uhura's messages (Uxx) follow the same numbering as the + // rest, but Scott's don't, and start from one. + if (textType == 'S') + messageNum += SCOTTY_MESSAGE_OFFSET; + if (isTalkMessage) _talkMessages[messageNum] = text; else if (isLookMessage) @@ -213,6 +218,9 @@ Common::String Room::patchRoomMessage(const char *text) { { "#FEA6\\FEA6_017#", "isn't that just great", "isn't this just great" }, { "#FEA6\\FEA6_019#", "that action, Captain It may", "that action, Captain. It may" }, { "#FEA6\\FEA6N016#", "that attack you", "that attacked you" }, + { "#SIN2\\SIN2_012#", "I'm a surgeon not a alien", "I'm a surgeon, not an alien" }, + { "#SIN4\\SIN4_023#", "to bypass it's lock system", "to bypass its lock system" }, + { "#SIN5\\SIN5N012#", "Sparks explode and", "Sparks fly and" }, { "", "", "" } }; diff --git a/engines/startrek/room.h b/engines/startrek/room.h index 9a2f47787c..8146dcb654 100644 --- a/engines/startrek/room.h +++ b/engines/startrek/room.h @@ -62,6 +62,7 @@ const int RDF_BEAM_IN_POSITIONS = 0xaa; const int RDF_SPAWN_POSITIONS = 0xba; #define COMMON_MESSAGE_OFFSET 1000 +#define SCOTTY_MESSAGE_OFFSET 500 class Room { public: diff --git a/engines/startrek/rooms/sins0.cpp b/engines/startrek/rooms/sins0.cpp index 63d77ddbd1..5b50896544 100644 --- a/engines/startrek/rooms/sins0.cpp +++ b/engines/startrek/rooms/sins0.cpp @@ -93,23 +93,23 @@ void Room::sins0Tick1() { } void Room::sins0LookAnywhere() { - showDescription(TX_SIN0N009); + showDescription(9, true); } void Room::sins0LookAtOpenDoor() { - showDescription(TX_SIN0N005); + showDescription(5, true); } void Room::sins0LookAtClosedDoor() { - showDescription(TX_SIN0N008); + showDescription(8, true); } void Room::sins0TalkToSpock() { - showText(TX_SPEAKER_SPOCK, TX_SIN0_009); + showText(TX_SPEAKER_SPOCK, 9, true); } void Room::sins0TalkToMccoy() { - showText(TX_SPEAKER_MCCOY, TX_SIN0_011); + showText(TX_SPEAKER_MCCOY, 11, true); } void Room::sins0TalkToRedshirt() { @@ -118,16 +118,16 @@ void Room::sins0TalkToRedshirt() { // comments on how the small moon could have an atmosphere. This is more interesting // and relevant, so that implementation is used instead. if (false) - showText(TX_SPEAKER_MOSHER, TX_SIN0_024); + showText(TX_SPEAKER_MOSHER, 24, true); else { - showText(TX_SPEAKER_MOSHER, TX_SIN0_026); - showText(TX_SPEAKER_SPOCK, TX_SIN0_022); - showText(TX_SPEAKER_KIRK, TX_SIN0_006); + showText(TX_SPEAKER_MOSHER, 26, true); + showText(TX_SPEAKER_SPOCK, 22, true); + showText(TX_SPEAKER_KIRK, 6, true); } } void Room::sins0LookAtGround() { - showDescription(TX_SIN0N006); + showDescription(6, true); } void Room::sins0GetRock() { @@ -139,82 +139,82 @@ void Room::sins0GetRock() { void Room::sins0PickedUpRock() { _awayMission->disableInput = false; loadActorStandAnim(OBJECT_KIRK); - showDescription(TX_SIN0N010); + showDescription(10, true); giveItem(OBJECT_IS8ROCKS); } void Room::sins0UseSTricorderAnywhere() { - spockScan(DIR_S, TX_SIN0_018); + spockScan(DIR_S, 18, false, true); } void Room::sins0UseSTricorderOnGround() { - spockScan(DIR_S, TX_SIN0_017); + spockScan(DIR_S, 17, false, true); _awayMission->sins.gatheredClues |= 1; } void Room::sins0UseSTricorderOnPlanet() { - spockScan(DIR_S, TX_SIN0_016); + spockScan(DIR_S, 16, false, true); } void Room::sins0Tick40() { if (!_awayMission->sins.enteredRoom0FirstTime) { _awayMission->disableInput = false; - showText(TX_SPEAKER_UHURA, TX_SIN0U082); - showText(TX_SPEAKER_KIRK, TX_SIN0_003); - showText(TX_SPEAKER_SCOTT, TX_SIN0_S48); - showText(TX_SPEAKER_KIRK, TX_SIN0_007); - showText(TX_SPEAKER_SCOTT, TX_SIN0_S50); - showText(TX_SPEAKER_KIRK, TX_SIN0_005); - showText(TX_SPEAKER_SCOTT, TX_SIN0_S49); - showText(TX_SPEAKER_KIRK, TX_SIN0_001); + showText(TX_SPEAKER_UHURA, 82, true); + showText(TX_SPEAKER_KIRK, 3, true); + showText(TX_SPEAKER_SCOTT, 48 + SCOTTY_MESSAGE_OFFSET); + showText(TX_SPEAKER_KIRK, 7, true); + showText(TX_SPEAKER_SCOTT, 50 + SCOTTY_MESSAGE_OFFSET); + showText(TX_SPEAKER_KIRK, 5, true); + showText(TX_SPEAKER_SCOTT, 49 + SCOTTY_MESSAGE_OFFSET); + showText(TX_SPEAKER_KIRK, 1, true); _awayMission->sins.enteredRoom0FirstTime = true; } } void Room::sins0LookAtStatue() { - showDescription(TX_SIN0N011); - showText(TX_SPEAKER_MCCOY, TX_SIN0_015); - showText(TX_SPEAKER_SPOCK, TX_SIN0_021); - showText(TX_SPEAKER_MOSHER, TX_SIN0_027); - showText(TX_SPEAKER_MCCOY, TX_SIN0_014); + showDescription(11, true); + showText(TX_SPEAKER_MCCOY, 15, true); + showText(TX_SPEAKER_SPOCK, 21, true); + showText(TX_SPEAKER_MOSHER, 27, true); + showText(TX_SPEAKER_MCCOY, 14, true); } void Room::sins0LookAtPlanet() { - showDescription(TX_SIN0N007); + showDescription(7, true); } void Room::sins0LookAtSky() { // This seems unused, due to HOTSPOT_SKY not being mapped anywhere? - showDescription(TX_SIN0N004); + showDescription(4, true); } void Room::sins0LookAtKirk() { - showDescription(TX_SIN0N002); + showDescription(2, true); } void Room::sins0LookAtSpock() { - showDescription(TX_SIN0N003); + showDescription(3, true); } void Room::sins0LookAtMccoy() { - showDescription(TX_SIN0N000); + showDescription(0, true); } void Room::sins0LookAtRedshirt() { - showDescription(TX_SIN0N001); + showDescription(1, true); } void Room::sins0UseSTricorderOnClosedDoor() { - spockScan(DIR_S, TX_SIN0_019); - showText(TX_SPEAKER_MOSHER, TX_SIN0_025); - showText(TX_SPEAKER_MCCOY, TX_SIN0_013); - showText(TX_SPEAKER_MOSHER, TX_SIN0_028); + spockScan(DIR_S, 19, false, true); + showText(TX_SPEAKER_MOSHER, 25, true); + showText(TX_SPEAKER_MCCOY, 13, true); + showText(TX_SPEAKER_MOSHER, 28, true); } void Room::sins0UseSTricorderOnStatue() { - spockScan(DIR_S, TX_SIN0_020); - showText(TX_SPEAKER_KIRK, TX_SIN0_008); - showText(TX_SPEAKER_SPOCK, TX_SIN0_023); + spockScan(DIR_S, 20, false, true); + showText(TX_SPEAKER_KIRK, 8, true); + showText(TX_SPEAKER_SPOCK, 23, true); if (!_awayMission->sins.gotPointsForScanningStatue) { _awayMission->sins.gotPointsForScanningStatue = true; @@ -223,20 +223,20 @@ void Room::sins0UseSTricorderOnStatue() { } void Room::sins0UseMedkitOnCrewman() { - showText(TX_SPEAKER_MCCOY, TX_SIN0_012); + showText(TX_SPEAKER_MCCOY, 12, true); } void Room::sins0UseMTricorderOnCrewman() { - mccoyScan(DIR_S, TX_SIN0_010); + mccoyScan(DIR_S, 10, false, true); } void Room::sins0UseCommunicator() { if (!_awayMission->sins.scottyInformedKirkAboutVirus) { - showText(TX_SPEAKER_KIRK, TX_SIN0_004); - showText(TX_SPEAKER_SCOTT, TX_SIN0_S01); - showText(TX_SPEAKER_KIRK, TX_SIN0_002); + showText(TX_SPEAKER_KIRK, 4, true); + showText(TX_SPEAKER_SCOTT, 1 + SCOTTY_MESSAGE_OFFSET, true); + showText(TX_SPEAKER_KIRK, 2, true); } else - showText(TX_SPEAKER_UHURA, TX_SIN0U069); + showText(TX_SPEAKER_UHURA, 69, true); } void Room::sins0WalkToDoor() { diff --git a/engines/startrek/rooms/sins1.cpp b/engines/startrek/rooms/sins1.cpp index e2873680ca..073837bc06 100644 --- a/engines/startrek/rooms/sins1.cpp +++ b/engines/startrek/rooms/sins1.cpp @@ -117,74 +117,74 @@ void Room::sins1Tick1() { } void Room::sins1LookAnywhere() { - showDescription(TX_SIN1N001); + showDescription(1, true); } void Room::sins1LookAtLock() { - showDescription(TX_SIN1N009); + showDescription(9, true); } void Room::sins1LookAtDoor() { // NOTE: This function had two implementations (one unused). if (true) - showDescription(TX_SIN1N010); + showDescription(10, true); else - showDescription(TX_SIN1N008); + showDescription(8, true); } void Room::sins1LookAtPanel() { - showDescription(TX_SIN1N003); + showDescription(3, true); } void Room::sins1LookAtKeypad() { - showDescription(TX_SIN1N011); + showDescription(11, true); } void Room::sins1UseSTricorderOnPanel() { - spockScan(DIR_N, TX_SIN1_010); + spockScan(DIR_N, 10, false, true); } void Room::sins1UseSTricorderOnKeypad() { - spockScan(DIR_N, TX_SIN1_021); + spockScan(DIR_N, 21, false, true); } void Room::sins1UseSTricorderOnLock() { - spockScan(DIR_N, TX_SIN1_009); + spockScan(DIR_N, 9, false, true); } void Room::sins1UseSTricorderOnDoor() { if (!_awayMission->sins.openedOuterDoor) - spockScan(DIR_N, TX_SIN1_019); + spockScan(DIR_N, 19, false, true); } void Room::sins1UseSTricorderAnywhere() { - spockScan(DIR_S, TX_SIN1_024); + spockScan(DIR_S, 24, false, true); } void Room::sins1UseSTricorderOnLens() { if (!_awayMission->sins.doorLaserFiredOnce) - spockScan(DIR_N, TX_SIN1_022); + spockScan(DIR_N, 22, false, true); else // BUGFIX: Original didn't do the tricorder animation, etc. in this case - spockScan(DIR_N, TX_SIN1_023); + spockScan(DIR_N, 23, false, true); } void Room::sins1UseRockOnDoor() { - showDescription(TX_SIN1N007); + showDescription(7, true); } void Room::sins1UseRedshirtOnKeypad() { if (!_awayMission->sins.openedOuterDoor) - showText(TX_SPEAKER_MOSHER, TX_SIN1_028); + showText(TX_SPEAKER_MOSHER, 28, true); } void Room::sins1UseMccoyOnKeypad() { if (!_awayMission->sins.openedOuterDoor) - showText(TX_SPEAKER_MCCOY, TX_SIN1_012); + showText(TX_SPEAKER_MCCOY, 12, true); } void Room::sins1UseKirkOnKeypad() { if (!_awayMission->sins.openedOuterDoor) { - showText(TX_SPEAKER_KIRK, TX_SIN1_001); + showText(TX_SPEAKER_KIRK, 1, true); sins1UseSpockOnKeypad(); } } @@ -228,13 +228,13 @@ void Room::sins1EnteredCorrectCode() { } void Room::sins1DoorDoneOpening() { - showText(TX_SPEAKER_SPOCK, TX_SIN1_011); + showText(TX_SPEAKER_SPOCK, 11, true); } void Room::sins1EnteredIncorrectCode() { _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_W; walkCrewman(OBJECT_SPOCK, 0xf3, 0xad); - showText(TX_SPEAKER_SPOCK, TX_SIN1_017); + showText(TX_SPEAKER_SPOCK, 17, true); } void Room::sins1EnteredSacredSofNumber() { @@ -246,12 +246,12 @@ void Room::sins1EnteredSacredSofNumber() { } void Room::sins1UsePhaserOnDoor() { - showText(TX_SPEAKER_SPOCK, TX_SIN1_016); + showText(TX_SPEAKER_SPOCK, 16, true); } void Room::sins1DoorUsedLaser() { loadActorStandAnim(OBJECT_9); - showText(TX_SPEAKER_SPOCK, TX_SIN1_018); + showText(TX_SPEAKER_SPOCK, 18, true); _awayMission->sins.field33 = true; _awayMission->sins.doorLaserFiredOnce = true; @@ -259,13 +259,13 @@ void Room::sins1DoorUsedLaser() { void Room::sins1Tick40() { if (!_awayMission->sins.scottyInformedKirkAboutVirus) { - showText(TX_SPEAKER_SCOTT, TX_SIN1_S10); - showText(TX_SPEAKER_KIRK, TX_SIN1_007); - showText(TX_SPEAKER_SCOTT, TX_SIN1_S18); - showText(TX_SPEAKER_KIRK, TX_SIN1_005); - showText(TX_SPEAKER_SCOTT, TX_SIN1_S85); - showText(TX_SPEAKER_KIRK, TX_SIN1_003); - showText(TX_SPEAKER_SCOTT, TX_SIN1_S17); + showText(TX_SPEAKER_SCOTT, 10 + SCOTTY_MESSAGE_OFFSET, true); + showText(TX_SPEAKER_KIRK, 7, true); + showText(TX_SPEAKER_SCOTT, 18 + SCOTTY_MESSAGE_OFFSET, true); + showText(TX_SPEAKER_KIRK, 5, true); + showText(TX_SPEAKER_SCOTT, 85 + SCOTTY_MESSAGE_OFFSET, true); + showText(TX_SPEAKER_KIRK, 3, true); + showText(TX_SPEAKER_SCOTT, 17 + SCOTTY_MESSAGE_OFFSET, true); _awayMission->sins.scottyInformedKirkAboutVirus = true; _awayMission->disableInput = false; @@ -273,8 +273,8 @@ void Room::sins1Tick40() { } void Room::sins1TalkToKirk() { - showText(TX_SPEAKER_KIRK, TX_SIN1_006); - showText(TX_SPEAKER_SPOCK, TX_SIN1_027); + showText(TX_SPEAKER_KIRK, 6, true); + showText(TX_SPEAKER_SPOCK, 27, true); } void Room::sins1TalkToSpock() { @@ -282,58 +282,58 @@ void Room::sins1TalkToSpock() { // the energy source is coming from. The second (unused) one says to "carefully // consider what we know about this culture". if (true) - showText(TX_SPEAKER_SPOCK, TX_SIN1_020); + showText(TX_SPEAKER_SPOCK, 20, true); else - showText(TX_SPEAKER_SPOCK, TX_SIN1_025); + showText(TX_SPEAKER_SPOCK, 25, true); } void Room::sins1TalkToMccoy() { - showText(TX_SPEAKER_MCCOY, TX_SIN1_015); + showText(TX_SPEAKER_MCCOY, 15, true); } void Room::sins1TalkToRedshirt() { - showText(TX_SPEAKER_MOSHER, TX_SIN1_030); - showText(TX_SPEAKER_SPOCK, TX_SIN1_026); - showText(TX_SPEAKER_MOSHER, TX_SIN1_029); + showText(TX_SPEAKER_MOSHER, 30, true); + showText(TX_SPEAKER_SPOCK, 26, true); + showText(TX_SPEAKER_MOSHER, 29, true); } void Room::sins1LookAtKirk() { - showDescription(TX_SIN1N005); + showDescription(5, true); } void Room::sins1LookAtSpock() { - showDescription(TX_SIN1N004); + showDescription(4, true); } void Room::sins1LookAtMccoy() { - showDescription(TX_SIN1N006); + showDescription(6, true); } void Room::sins1LookAtRedshirt() { - showDescription(TX_SIN1N002); + showDescription(2, true); } void Room::sins1LookAtLens() { - showDescription(TX_SIN1N000); + showDescription(0, true); } void Room::sins1UseCommunicator() { if (!_awayMission->sins.enteredRoom2FirstTime) { - showText(TX_SPEAKER_KIRK, TX_SIN1_008); - showText(TX_SPEAKER_SCOTT, TX_SIN1_S51); - showText(TX_SPEAKER_KIRK, TX_SIN1_002); - showText(TX_SPEAKER_SCOTT, TX_SIN1_S20); - showText(TX_SPEAKER_KIRK, TX_SIN1_004); + showText(TX_SPEAKER_KIRK, 8, true); + showText(TX_SPEAKER_SCOTT, 51 + SCOTTY_MESSAGE_OFFSET, true); + showText(TX_SPEAKER_KIRK, 2, true); + showText(TX_SPEAKER_SCOTT, 20 + SCOTTY_MESSAGE_OFFSET, true); + showText(TX_SPEAKER_KIRK, 4, true); } else - showText(TX_SPEAKER_UHURA, TX_SIN1U070); + showText(TX_SPEAKER_UHURA, 70, true); } void Room::sins1UseMedkitOnCrewman() { - showText(TX_SPEAKER_MCCOY, TX_SIN1_014); + showText(TX_SPEAKER_MCCOY, 14, true); } void Room::sins1UseMTricorderOnCrewman() { - mccoyScan(DIR_S, TX_SIN1_013); + mccoyScan(DIR_S, 13, false, true); } void Room::sins1WalkToDoor() { diff --git a/engines/startrek/rooms/sins2.cpp b/engines/startrek/rooms/sins2.cpp index b85ca345ed..b045f0113e 100644 --- a/engines/startrek/rooms/sins2.cpp +++ b/engines/startrek/rooms/sins2.cpp @@ -104,15 +104,15 @@ void Room::sins2Tick1() { } void Room::sins2UsePhaserOnDoor() { - showText(TX_SPEAKER_SPOCK, TX_SIN2_025); + showText(TX_SPEAKER_SPOCK, 25, true); } void Room::sins2UseSTricorderAnywhere() { - spockScan(DIR_S, TX_SIN2_026); + spockScan(DIR_S, 26, true); } void Room::sins2UseKirkOnTerminal() { - showText(TX_SPEAKER_KIRK, TX_SIN2_002); + showText(TX_SPEAKER_KIRK, 2, true); sins2UseSpockOnTerminal(); } @@ -127,56 +127,56 @@ void Room::sins2SpockReachedTerminal() { } void Room::sins2SpockUsedTerminal() { - showText(TX_SPEAKER_SPOCK, TX_SIN2_042); - showText(TX_SPEAKER_SPOCK, TX_SIN2_044); + showText(TX_SPEAKER_SPOCK, 42, true); + showText(TX_SPEAKER_SPOCK, 44, true); if (!_awayMission->sins.gotPointsForAccessingTerminal) { _awayMission->sins.missionScore += 2; _awayMission->sins.gotPointsForAccessingTerminal = true; } - showText(TX_SPEAKER_MCCOY, TX_SIN2_015); - showText(TX_SPEAKER_SPOCK, TX_SIN2_032); - showText(TX_SPEAKER_MOSHER, TX_SIN2_050); - showText(TX_SPEAKER_SPOCK, TX_SIN2_035); - showText(TX_SPEAKER_SPOCK, TX_SIN2_043); - showText(TX_SPEAKER_SPOCK, TX_SIN2_041); - showText(TX_SPEAKER_SPOCK, TX_SIN2_040); - showText(TX_SPEAKER_MCCOY, TX_SIN2_021); - showText(TX_SPEAKER_SPOCK, TX_SIN2_034); - showText(TX_SPEAKER_SPOCK, TX_SIN2_031); - showText(TX_SPEAKER_SPOCK, TX_SIN2_038); - showText(TX_SPEAKER_MCCOY, TX_SIN2_020); - showText(TX_SPEAKER_SPOCK, TX_SIN2_033); - showText(TX_SPEAKER_KIRK, TX_SIN2_007); - showText(TX_SPEAKER_SPOCK, TX_SIN2_037); - showText(TX_SPEAKER_MCCOY, TX_SIN2_022); - showText(TX_SPEAKER_SPOCK, TX_SIN2_029); + showText(TX_SPEAKER_MCCOY, 15, true); + showText(TX_SPEAKER_SPOCK, 32, true); + showText(TX_SPEAKER_MOSHER, 50, true); + showText(TX_SPEAKER_SPOCK, 35, true); + showText(TX_SPEAKER_SPOCK, 43, true); + showText(TX_SPEAKER_SPOCK, 41, true); + showText(TX_SPEAKER_SPOCK, 40, true); + showText(TX_SPEAKER_MCCOY, 21, true); + showText(TX_SPEAKER_SPOCK, 34, true); + showText(TX_SPEAKER_SPOCK, 31, true); + showText(TX_SPEAKER_SPOCK, 38, true); + showText(TX_SPEAKER_MCCOY, 20, true); + showText(TX_SPEAKER_SPOCK, 33, true); + showText(TX_SPEAKER_KIRK, 7, true); + showText(TX_SPEAKER_SPOCK, 37, true); + showText(TX_SPEAKER_MCCOY, 22, true); + showText(TX_SPEAKER_SPOCK, 29, true); } void Room::sins2UseMccoyOnTerminal() { - showText(TX_SPEAKER_MCCOY, TX_SIN2_012); + showText(TX_SPEAKER_MCCOY, 12, true); } void Room::sins2UseRedshirtOnTerminal() { - showText(TX_SPEAKER_MOSHER, TX_SIN2_045); + showText(TX_SPEAKER_MOSHER, 45, true); } void Room::sins2UseSTricorderOnTerminal() { - spockScan(DIR_W, TX_SIN2_009); + spockScan(DIR_W, 9, false, true); } void Room::sins2UseSTricorderOnKeypad() { - spockScan(DIR_N, TX_SIN2_028); + spockScan(DIR_N, 28, false, true); } void Room::sins2UseSTricorderOnDoor() { - spockScan(DIR_N, TX_SIN2_027); + spockScan(DIR_N, 27, false, true); } void Room::sins2UseKirkOnKeypad() { if (!_awayMission->sins.openedInnerDoor) { - showText(TX_SPEAKER_KIRK, TX_SIN2_001); + showText(TX_SPEAKER_KIRK, 01, true); sins2UseSpockOnKeypad(); } } @@ -212,105 +212,105 @@ void Room::sins2EnteredCorrectCode() { } void Room::sins2EnteredIncorrectCode() { - showText(TX_SPEAKER_SPOCK, TX_SIN2_024); // BUGFIX: Speaker is spock, not "none" + showText(TX_SPEAKER_SPOCK, 24, true); // BUGFIX: Speaker is spock, not "none" } void Room::sins2DoorFinishedOpening() { - showText(TX_SPEAKER_SPOCK, TX_SIN2_010); + showText(TX_SPEAKER_SPOCK, 10, true); } void Room::sins2Tick40() { if (!_awayMission->sins.enteredRoom2FirstTime) { _awayMission->disableInput = false; - showText(TX_SPEAKER_KIRK, TX_SIN2_005); - showText(TX_SPEAKER_SCOTT, TX_SIN2_S05); - showText(TX_SPEAKER_UHURA, TX_SIN2U085); - showText(TX_SPEAKER_KIRK, TX_SIN2_008); - showText(TX_SPEAKER_UHURA, TX_SIN2U097); + showText(TX_SPEAKER_KIRK, 5, true); + showText(TX_SPEAKER_SCOTT, 5 + SCOTTY_MESSAGE_OFFSET, true); + showText(TX_SPEAKER_UHURA, 85, true); + showText(TX_SPEAKER_KIRK, 8, true); + showText(TX_SPEAKER_UHURA, 97, true); showText(TX_SPEAKER_MCCOY, TX_SIN2_F26); - showText(TX_SPEAKER_UHURA, TX_SIN2U096); - showText(TX_SPEAKER_MCCOY, TX_SIN2_019); - showText(TX_SPEAKER_KIRK, TX_SIN2_004); + showText(TX_SPEAKER_UHURA, 96, true); + showText(TX_SPEAKER_MCCOY, 19, true); + showText(TX_SPEAKER_KIRK, 4, true); _awayMission->sins.enteredRoom2FirstTime = true; } } void Room::sins2LookAnywhere() { - showDescription(TX_SIN2N006); + showDescription(6, true); } void Room::sins2LookAtOpenDoor() { - showDescription(TX_SIN2N007); + showDescription(7, true); } void Room::sins2LookAtTerminal() { - showDescription(TX_SIN2N000); + showDescription(0, true); } void Room::sins2LookAtKeypad() { - showDescription(TX_SIN2N001); + showDescription(1, true); } void Room::sins2LookAtKirk() { - showDescription(TX_SIN2N003); + showDescription(3, true); } void Room::sins2LookAtSpock() { - showDescription(TX_SIN2N005); + showDescription(5, true); } void Room::sins2LookAtMccoy() { - showDescription(TX_SIN2N004); + showDescription(4, true); } void Room::sins2LookAtRedshirt() { - showDescription(TX_SIN2N002); + showDescription(2, true); } void Room::sins2TalkToKirk() { - showText(TX_SPEAKER_KIRK, TX_SIN2_003); + showText(TX_SPEAKER_KIRK, 3, true); } void Room::sins2TalkToSpock() { - showText(TX_SPEAKER_SPOCK, TX_SIN2_039); - showText(TX_SPEAKER_MCCOY, TX_SIN2_016); + showText(TX_SPEAKER_SPOCK, 39, true); + showText(TX_SPEAKER_MCCOY, 16, true); } void Room::sins2TalkToMccoy() { - showText(TX_SPEAKER_MCCOY, TX_SIN2_023); - showText(TX_SPEAKER_MOSHER, TX_SIN2_049); + showText(TX_SPEAKER_MCCOY, 23, true); + showText(TX_SPEAKER_MOSHER, 49, true); } void Room::sins2TalkToRedshirt() { - showText(TX_SPEAKER_MOSHER, TX_SIN2_047); + showText(TX_SPEAKER_MOSHER, 47, true); } void Room::sins2LookAtDoor() { if (!_awayMission->sins.openedInnerDoor) - showDescription(TX_SIN2N008); + showDescription(8, true); } void Room::sins2UseSpockOnDoor() { if (!_awayMission->sins.openedInnerDoor) { showText(TX_SPEAKER_SPOCK, TX_SIN2_F12); - showText(TX_SPEAKER_MOSHER, TX_SIN2_048); - showText(TX_SPEAKER_SPOCK, TX_SIN2_030); + showText(TX_SPEAKER_MOSHER, 48, true); + showText(TX_SPEAKER_SPOCK, 30, true); } } void Room::sins2UseCommunicator() { if (!_awayMission->sins.enteredRoom4FirstTime) { - showText(TX_SPEAKER_KIRK, TX_SIN2_006); - showText(TX_SPEAKER_SCOTT, TX_SIN2_S16); - showText(TX_SPEAKER_MCCOY, TX_SIN2_017); + showText(TX_SPEAKER_KIRK, 6, true); + showText(TX_SPEAKER_SCOTT, 16 + SCOTTY_MESSAGE_OFFSET, true); + showText(TX_SPEAKER_MCCOY, 17, true); } else - showText(TX_SPEAKER_UHURA, TX_SIN1U070); + showText(TX_SPEAKER_UHURA, 70, true); } void Room::sins2UseMedkitOnCrewman() { - showText(TX_SPEAKER_MCCOY, TX_SIN2_014); + showText(TX_SPEAKER_MCCOY, 14, true); } void Room::sins2UseMTricorderOnCrewman() { @@ -319,12 +319,12 @@ void Room::sins2UseMTricorderOnCrewman() { void Room::sins2UseMccoyOnKeypad() { if (!_awayMission->sins.openedInnerDoor) - showText(TX_SPEAKER_MCCOY, TX_SIN2_013); + showText(TX_SPEAKER_MCCOY, 13, true); } void Room::sins2UseRedshirtOnKeypad() { if (!_awayMission->sins.openedInnerDoor) - showText(TX_SPEAKER_MOSHER, TX_SIN2_046); + showText(TX_SPEAKER_MOSHER, 46, true); } void Room::sins2WalkToDoor() { diff --git a/engines/startrek/rooms/sins3.cpp b/engines/startrek/rooms/sins3.cpp index f04450b3f0..2704e111ed 100644 --- a/engines/startrek/rooms/sins3.cpp +++ b/engines/startrek/rooms/sins3.cpp @@ -148,60 +148,57 @@ void Room::sins3Tick1() { } void Room::sins3UseSTricorderOnBox() { - spockScan(DIR_S, TX_SIN3_003); + spockScan(DIR_S, 3, false, true); } void Room::sins3UseSTricorderOnMonitor() { - spockScan(DIR_N, TX_SIN3_018); + spockScan(DIR_N, 18, false, true); } void Room::sins3UseSTricorderAnywhere() { - spockScan(DIR_S, TX_SIN3_017); + spockScan(DIR_S, 17, false, true); } void Room::sins3UseSTricorderOnDrill() { - spockScan(DIR_E, TX_SIN3_016); + spockScan(DIR_E, 16, false, true); } void Room::sins3UseSTricorderOnPanel() { if (_awayMission->sins.scannedKeycardLock) { - spockScan(DIR_E, TX_SIN3_015); + spockScan(DIR_E, 15, false, true); _awayMission->sins.laserPattern = 1; } else - spockScan(DIR_E, TX_SIN3_019); + spockScan(DIR_E, 19, false, true); } void Room::sins3LookAtDrill() { - showDescription(TX_SIN3N012); + showDescription(12, true); } void Room::sins3LookAtPanel() { - showDescription(TX_SIN3N011); + showDescription(11, true); } void Room::sins3LookAtMonitor() { - showDescription(TX_SIN3N007); + showDescription(7, true); } void Room::sins3LookAnywhere() { - showDescription(TX_SIN3N013); + showDescription(13, true); } void Room::sins3UseSTricorderOnWall() { - // NOTE: this event has two implementations, one unused. - if (true) - spockScan(DIR_E, TX_SIN3_023); - else - spockScan(DIR_S, TX_SIN3_022); + // NOTE: this event has two implementations (index 23 and 22), one unused. + spockScan(DIR_E, 23, false, true); } void Room::sins3LookAtBox() { if (_awayMission->sins.boxState == 0) - showDescription(TX_SIN3N000); + showDescription(0, true); else if (_awayMission->sins.boxState == 1) - showDescription(TX_SIN3N008); + showDescription(8, true); else if (_awayMission->sins.boxState == 2) - showDescription(TX_SIN3N005); + showDescription(5, true); } void Room::sins3UseKirkOnBox() { @@ -295,9 +292,9 @@ void Room::sins3KirkGotBoxContents() { void Room::sins3Tick30() { if (!_awayMission->sins.enteredRoom3FirstTime) { - showText(TX_SPEAKER_MCCOY, TX_SIN3_012); - showText(TX_SPEAKER_SPOCK, TX_SIN3_024); - showText(TX_SPEAKER_MCCOY, TX_SIN3_013); + showText(TX_SPEAKER_MCCOY, 12, true); + showText(TX_SPEAKER_SPOCK, 24, true); + showText(TX_SPEAKER_MCCOY, 13, true); _awayMission->sins.enteredRoom3FirstTime = true; _awayMission->disableInput = false; } @@ -305,13 +302,13 @@ void Room::sins3Tick30() { void Room::sins3Tick60() { if (_awayMission->sins.gatheredClues == 7) { - showText(TX_SPEAKER_SPOCK, TX_SIN3_007); + showText(TX_SPEAKER_SPOCK, 7, true); _awayMission->sins.gatheredClues |= 8; } } void Room::sins3UseKirkOnPanel() { - showText(TX_SPEAKER_KIRK, TX_SIN3_001); + showText(TX_SPEAKER_KIRK, 1, true); sins3UseSpockOnPanel(); } @@ -336,7 +333,7 @@ void Room::sins3SpockReachedPanel() { if (_awayMission->sins.laserPattern == 0 && _awayMission->sins.laserSetting == 3) // High setting can't be used until the template pattern has been uploaded to // the machine - showText(TX_SPEAKER_SPOCK, TX_SIN3_005); + showText(TX_SPEAKER_SPOCK, 5, true); else if (_awayMission->sins.moldState != -1) { if (_awayMission->sins.moldState == 0) { // Mold not yet created loadActorAnim2(OBJECT_SPOCK, "susemn"); @@ -375,7 +372,7 @@ void Room::sins3SpockReachedPanel() { } } else { // moldState == 2 or 4 (mold created; either keycard is in it, or nothing) // "Template would be damaged from direct fire" - showText(TX_SPEAKER_SPOCK, TX_SIN3_006); + showText(TX_SPEAKER_SPOCK, 6, true); } } } @@ -423,12 +420,12 @@ void Room::sins3RockTurnedIntoIDCard() { } void Room::sins3RockVaporized() { - showText(TX_SPEAKER_SPOCK, TX_SIN3_021); + showText(TX_SPEAKER_SPOCK, 21, true); } void Room::sins3UseDrillAnywhere() { // It isn't possible to "use" a hotspot on something else, so this is never called? - showDescription(TX_SIN3N009); + showDescription(9, true); } void Room::sins3GetIDCard() { @@ -452,61 +449,61 @@ void Room::sins3PickedUpIDCard() { void Room::sins3LookAtItemBeingDrilled() { if (_awayMission->sins.moldState == 2) - showDescription(TX_SIN3N006); + showDescription(6, true); else if (_awayMission->sins.moldState == 3) - showDescription(TX_SIN3N014); + showDescription(14, true); else if (_awayMission->sins.moldState == 4) - showDescription(TX_SIN3N010); + showDescription(10, true); } void Room::sins3LookAtKirk() { - showDescription(TX_SIN3N003); + showDescription(3, true); } void Room::sins3LookAtSpock() { - showDescription(TX_SIN3N004); + showDescription(4, true); } void Room::sins3LookAtMccoy() { - showDescription(TX_SIN3N001); // BUGFIX: Speaker is "nobody", not Dr. McCoy + showDescription(1, true); // BUGFIX: Speaker is "nobody", not Dr. McCoy } void Room::sins3LookAtRedshirt() { - showDescription(TX_SIN3N002); + showDescription(2, true); } void Room::sins3TalkToKirk() { - showText(TX_SPEAKER_KIRK, TX_SIN3_002); + showText(TX_SPEAKER_KIRK, 2, true); } void Room::sins3TalkToSpock() { - showText(TX_SPEAKER_SPOCK, TX_SIN3_020); + showText(TX_SPEAKER_SPOCK, 20, true); } void Room::sins3TalkToMccoy() { - showText(TX_SPEAKER_MCCOY, TX_SIN3_011); + showText(TX_SPEAKER_MCCOY, 11, true); } void Room::sins3TalkToRedshirt() { - showText(TX_SPEAKER_MOSHER, TX_SIN3_026); - showText(TX_SPEAKER_MCCOY, TX_SIN3_014); - showText(TX_SPEAKER_MOSHER, TX_SIN3_027); + showText(TX_SPEAKER_MOSHER, 26, true); + showText(TX_SPEAKER_MCCOY, 14, true); + showText(TX_SPEAKER_MOSHER, 27, true); } void Room::sins3UseCommunicator() { - showText(TX_SPEAKER_UHURA, TX_SIN3U072); + showText(TX_SPEAKER_UHURA, 72, true); } void Room::sins3UseSpockOnDrill() { - showText(TX_SPEAKER_SPOCK, TX_SIN3_004); + showText(TX_SPEAKER_SPOCK, 4, true); } void Room::sins3UseMccoyOnDrill() { - showText(TX_SPEAKER_MCCOY, TX_SIN3_009); + showText(TX_SPEAKER_MCCOY, 9, true); } void Room::sins3UseRedshirtOnDrill() { - showText(TX_SPEAKER_MOSHER, TX_SIN3_025); + showText(TX_SPEAKER_MOSHER, 25, true); } void Room::sins3WalkToDoor() { @@ -514,11 +511,11 @@ void Room::sins3WalkToDoor() { } void Room::sins3UseMedkitOnCrewman() { - showText(TX_SPEAKER_MCCOY, TX_SIN3_010); + showText(TX_SPEAKER_MCCOY, 10, true); } void Room::sins3UseMTricorderOnCrewman() { - mccoyScan(DIR_S, TX_SIN3_008); + mccoyScan(DIR_S, 8, false, true); } } diff --git a/engines/startrek/rooms/sins4.cpp b/engines/startrek/rooms/sins4.cpp index 9a0a37b54e..fa765874c3 100644 --- a/engines/startrek/rooms/sins4.cpp +++ b/engines/startrek/rooms/sins4.cpp @@ -108,41 +108,32 @@ void Room::sins4Tick1() { } void Room::sins4UseSTricorderOnPanel() { - spockScan(DIR_N, TX_SIN4_020); + spockScan(DIR_N, 20, false, true); _awayMission->sins.scannedKeycardLock = true; _awayMission->sins.gatheredClues |= 4; if (_awayMission->sins.gatheredClues == 7) { - showText(TX_SPEAKER_SPOCK, TX_SIN4_010); + showText(TX_SPEAKER_SPOCK, 10, true); _awayMission->sins.gatheredClues |= 8; } } void Room::sins4UseSpockOnPanel() { - // NOTE: two implementations of this function, one unused - if (true) - showText(TX_SPEAKER_SPOCK, TX_SIN4_018); - else { - showText(TX_SPEAKER_SPOCK, TX_SIN4_021); - - if (_awayMission->sins.gatheredClues == 7) { - showText(TX_SPEAKER_SPOCK, TX_SIN4_010); - _awayMission->sins.gatheredClues |= 8; - } - } + // NOTE: two implementations of this function (index 18 and 21), one unused + showText(TX_SPEAKER_SPOCK, 18, true); } void Room::sins4UsePhaserOnNorthDoor() { - showText(TX_SPEAKER_SPOCK, TX_SIN4_009); + showText(TX_SPEAKER_SPOCK, 9, true); } void Room::sins4UsePhaserOnPanel() { - showText(TX_SPEAKER_SPOCK, TX_SIN4_008); + showText(TX_SPEAKER_SPOCK, 8, true); } void Room::sins4UseIDCardOnPanel() { if (_awayMission->sins.unlockedIDCardDoor) - showDescription(TX_SIN4N006); + showDescription(6, true); else walkCrewmanC(OBJECT_KIRK, 0xb8, 0x86, &Room::sins4KirkReachedPanel); } @@ -170,106 +161,106 @@ void Room::sins4KirkReachedPanelWithRock() { } void Room::sins4KirkUsedRockOnPanel() { - showDescription(TX_SIN4N012); - showText(TX_SPEAKER_SPOCK, TX_SIN4_022); + showDescription(12, true); + showText(TX_SPEAKER_SPOCK, 22, true); if (_awayMission->sins.gatheredClues == 7) { - showText(TX_SPEAKER_SPOCK, TX_SIN4_010); + showText(TX_SPEAKER_SPOCK, 10, true); _awayMission->sins.gatheredClues |= 8; } } void Room::sins4LookAtWestDoor() { - showDescription(TX_SIN4N009); + showDescription(9, true); } void Room::sins4LookAtEastDoor() { - showDescription(TX_SIN4N010); + showDescription(10, true); } void Room::sins4LookAnywhere() { - showDescription(TX_SIN4N013); + showDescription(13, true); } void Room::sins4LookAtPanel() { - showDescription(TX_SIN4N011); + showDescription(11, true); } void Room::sins4Tick40() { if (!_awayMission->sins.enteredRoom4FirstTime) { _awayMission->disableInput = false; - showText(TX_SPEAKER_UHURA, TX_SIN4U088); - showText(TX_SPEAKER_KIRK, TX_SIN4_007); - showText(TX_SPEAKER_UHURA, TX_SIN4U103); - showText(TX_SPEAKER_SPOCK, TX_SIN4_025); - showText(TX_SPEAKER_KIRK, TX_SIN4_003); - showText(TX_SPEAKER_UHURA, TX_SIN4U107); - showText(TX_SPEAKER_UHURA, TX_SIN4U105); - showText(TX_SPEAKER_KIRK, TX_SIN4_005); + showText(TX_SPEAKER_UHURA, 88, true); + showText(TX_SPEAKER_KIRK, 7, true); + showText(TX_SPEAKER_UHURA, 103, true); + showText(TX_SPEAKER_SPOCK, 25, true); + showText(TX_SPEAKER_KIRK, 3, true); + showText(TX_SPEAKER_UHURA, 107, true); + showText(TX_SPEAKER_UHURA, 105, true); + showText(TX_SPEAKER_KIRK, 5, true); _awayMission->sins.enteredRoom4FirstTime = true; } } void Room::sins4LookAtKirk() { - showDescription(TX_SIN4N002); + showDescription(2, true); } void Room::sins4LookAtSpock() { - showDescription(TX_SIN4N004); + showDescription(4, true); } void Room::sins4LookAtMccoy() { - showDescription(TX_SIN4N003); + showDescription(3, true); } void Room::sins4LookAtRedshirt() { - showDescription(TX_SIN4N001); + showDescription(1, true); } void Room::sins4LookAtLight() { - showDescription(TX_SIN4N000); + showDescription(0, true); } void Room::sins4LookAtBeam() { - showDescription(TX_SIN4N005); + showDescription(5, true); } void Room::sins4LookAtOpenNorthDoor() { - showDescription(TX_SIN4N008); + showDescription(8, true); } void Room::sins4LookAtClosedNorthDoor() { - showDescription(TX_SIN4N007); + showDescription(7, true); } void Room::sins4TalkToKirk() { - showText(TX_SPEAKER_KIRK, TX_SIN4_001); - showText(TX_SPEAKER_SPOCK, TX_SIN4_028); - showText(TX_SPEAKER_KIRK, TX_SIN4_004); + showText(TX_SPEAKER_KIRK, 1, true); + showText(TX_SPEAKER_SPOCK, 28, true); + showText(TX_SPEAKER_KIRK, 4, true); } void Room::sins4TalkToSpock() { - showText(TX_SPEAKER_SPOCK, TX_SIN4_019); + showText(TX_SPEAKER_SPOCK, 19, true); } void Room::sins4TalkToMccoy() { - showText(TX_SPEAKER_MCCOY, TX_SIN4_015); - showText(TX_SPEAKER_SPOCK, TX_SIN4_024); - showText(TX_SPEAKER_MCCOY, TX_SIN4_017); + showText(TX_SPEAKER_MCCOY, 15, true); + showText(TX_SPEAKER_SPOCK, 24, true); + showText(TX_SPEAKER_MCCOY, 17, true); } void Room::sins4TalkToRedshirt() { - showText(TX_SPEAKER_MOSHER, TX_SIN4_031); + showText(TX_SPEAKER_MOSHER, 31, true); } void Room::sins4UseSTricorderOnNorthDoor() { - spockScan(DIR_N, TX_SIN4_027); - showText(TX_SPEAKER_MOSHER, TX_SIN4_032); - showText(TX_SPEAKER_SPOCK, TX_SIN4_026); + spockScan(DIR_N, 27, false, true); + showText(TX_SPEAKER_MOSHER, 32, true); + showText(TX_SPEAKER_SPOCK, 26, true); } void Room::sins4UseSTricorderAnywhere() { - spockScan(DIR_S, TX_SIN4_011); + spockScan(DIR_S, 11, false, true); if (!_awayMission->sins.gotPointsForScanningRoom4) { _awayMission->sins.missionScore += 1; @@ -279,32 +270,32 @@ void Room::sins4UseSTricorderAnywhere() { void Room::sins4UseCommunicator() { if (!_awayMission->sins.enteredRoom3FirstTime) { - showText(TX_SPEAKER_UHURA, TX_SIN4U100); - showText(TX_SPEAKER_KIRK, TX_SIN4_006); + showText(TX_SPEAKER_UHURA, 100, true); + showText(TX_SPEAKER_KIRK, 6, true); showText(TX_SPEAKER_UHURA, TX_SIN4U83B); - showText(TX_SPEAKER_KIRK, TX_SIN4_002); + showText(TX_SPEAKER_KIRK, 2, true); } else - showText(TX_SPEAKER_UHURA, TX_SIN4U073); + showText(TX_SPEAKER_UHURA, 73, true); } void Room::sins4UseMccoyOnNorthDoor() { - showText(TX_SPEAKER_MCCOY, TX_SIN4_016); + showText(TX_SPEAKER_MCCOY, 16, true); } void Room::sins4UseRedshirtOnNorthDoor() { - showText(TX_SPEAKER_MOSHER, TX_SIN4_029); + showText(TX_SPEAKER_MOSHER, 29, true); } void Room::sins4UseSpockOnNorthDoor() { - showText(TX_SPEAKER_SPOCK, TX_SIN4_023); + showText(TX_SPEAKER_SPOCK, 23, true); } void Room::sins4UseMccoyOnPanel() { - showText(TX_SPEAKER_MCCOY, TX_SIN4_013); + showText(TX_SPEAKER_MCCOY, 13, true); } void Room::sins4UseRedshirtOnPanel() { - showText(TX_SPEAKER_MOSHER, TX_SIN4_030); + showText(TX_SPEAKER_MOSHER, 30, true); } void Room::sins4WalkToNorthDoor() { @@ -321,11 +312,11 @@ void Room::sins4WalkToEastDoor() { } void Room::sins4UseMedkitOnCrewman() { - showText(TX_SPEAKER_MCCOY, TX_SIN4_014); + showText(TX_SPEAKER_MCCOY, 14, true); } void Room::sins4UseMTricorderOnCrewman() { - mccoyScan(DIR_S, TX_SIN4_012); + mccoyScan(DIR_S, 12, false, true); } } diff --git a/engines/startrek/rooms/sins5.cpp b/engines/startrek/rooms/sins5.cpp index ac3868f795..14446525f5 100644 --- a/engines/startrek/rooms/sins5.cpp +++ b/engines/startrek/rooms/sins5.cpp @@ -152,7 +152,7 @@ void Room::sins5Tick1() { } void Room::sins5UseSTricorderAnywhere() { - spockScan(DIR_S, TX_SIN5_013); + spockScan(DIR_S, 13, false, true); } void Room::sins5UseSTricorderOnRightComputer() { @@ -160,7 +160,7 @@ void Room::sins5UseSTricorderOnRightComputer() { _awayMission->sins.missionScore += 1; _awayMission->sins.gotPointsForScanningRightComputer = true; // BUGFIX: add this line to prevent infinite score mechanism } - spockScan(DIR_S, TX_SIN5_030); + spockScan(DIR_S, 30, false, true); _awayMission->sins.scannedAndUsedComputers |= 2; sins5CheckGatheredAllClues(); } @@ -170,39 +170,39 @@ void Room::sins5UseSTricorderOnLeftComputer() { _awayMission->sins.missionScore += 1; _awayMission->sins.gotPointsForScanningLeftComputer = true; // BUGFIX: add this line to prevent infinite score mechanism } - spockScan(DIR_S, TX_SIN5_029); + spockScan(DIR_S, 29, false, true); _awayMission->sins.scannedAndUsedComputers |= 1; sins5CheckGatheredAllClues(); } void Room::sins5UseSTricorderOnMiddleComputer() { - spockScan(DIR_S, TX_SIN5_028); + spockScan(DIR_S, 28, false, true); } void Room::sins5UseKirkOnRightComputer() { - showText(TX_SPEAKER_KIRK, TX_SIN5_003); + showText(TX_SPEAKER_KIRK, 3, true); sins5UseSpockOnRightComputer(); } void Room::sins5UseKirkOnLeftComputer() { - showText(TX_SPEAKER_KIRK, TX_SIN5_004); + showText(TX_SPEAKER_KIRK, 4, true); sins5UseSpockOnLeftComputer(); } void Room::sins5UseKirkOnMiddleComputer() { - showText(TX_SPEAKER_KIRK, TX_SIN5_001); + showText(TX_SPEAKER_KIRK, 1, true); } void Room::sins5UseMccoyOnComputer() { - showText(TX_SPEAKER_MCCOY, TX_SIN5_015); + showText(TX_SPEAKER_MCCOY, 15, true); } void Room::sins5UseRedshirtOnComputer() { - showText(TX_SPEAKER_MOSHER, TX_SIN5_042); + showText(TX_SPEAKER_MOSHER, 42, true); } void Room::sins5UseSpockOnMiddleComputer() { - showText(TX_SPEAKER_SPOCK, TX_SIN5_027); + showText(TX_SPEAKER_SPOCK, 27, true); } void Room::sins5UseSpockOnRightComputer() { @@ -222,7 +222,7 @@ void Room::sins5SpockReachedRightComputer() { void Room::sins5SpockUsedRightComputer() { _awayMission->disableInput = false; - showText(TX_SPEAKER_COMPUTER, TX_SIN5_039); + showText(TX_SPEAKER_COMPUTER, 39, true); _awayMission->sins.scannedAndUsedComputers |= 8; sins5CheckGatheredAllClues(); } @@ -244,8 +244,8 @@ void Room::sins5SpockReachedLeftComputer() { void Room::sins5SpockUsedLeftComputer() { if (_awayMission->sins.wireConnected1 && _awayMission->sins.wireConnected2) { - showText(TX_SPEAKER_COMPUTER, TX_SIN5_041); - showText(TX_SPEAKER_SPOCK, TX_SIN5_025); + showText(TX_SPEAKER_COMPUTER, 41, true); + showText(TX_SPEAKER_SPOCK, 25, true); walkCrewmanC(OBJECT_KIRK, 0x8c, 0xb5, &Room::sins5CrewmanReadyToBeamOut); walkCrewmanC(OBJECT_SPOCK, 0x82, 0xab, &Room::sins5CrewmanReadyToBeamOut); @@ -253,7 +253,7 @@ void Room::sins5SpockUsedLeftComputer() { walkCrewmanC(OBJECT_REDSHIRT, 0x91, 0xa1, &Room::sins5CrewmanReadyToBeamOut); } else { _awayMission->disableInput = false; - showText(TX_SPEAKER_COMPUTER, TX_SIN5_040); + showText(TX_SPEAKER_COMPUTER, 40, true); _awayMission->sins.scannedAndUsedComputers |= 4; sins5CheckGatheredAllClues(); } @@ -261,9 +261,9 @@ void Room::sins5SpockUsedLeftComputer() { void Room::sins5CrewmanReadyToBeamOut() { if (++_roomVar.sins.numCrewmenReadyToBeamOut == 4) { - showText(TX_SPEAKER_KIRK, TX_SIN5_008); - showText(TX_SPEAKER_SCOTT, TX_SIN5_S19); - showText(TX_SPEAKER_KIRK, TX_SIN5_005); + showText(TX_SPEAKER_KIRK, 8, true); + showText(TX_SPEAKER_SCOTT, 19 + SCOTTY_MESSAGE_OFFSET); + showText(TX_SPEAKER_KIRK, 5, true); _awayMission->sins.missionScore += 19; endMission(_awayMission->sins.missionScore, 28, 0); } @@ -272,7 +272,7 @@ void Room::sins5CrewmanReadyToBeamOut() { void Room::sins5Tick20() { if (!_awayMission->sins.enteredRoom5FirstTime) { _awayMission->disableInput = false; - showText(TX_SPEAKER_SPOCK, TX_SIN5_026); + showText(TX_SPEAKER_SPOCK, 26, true); _awayMission->sins.enteredRoom5FirstTime = true; } } @@ -281,15 +281,15 @@ void Room::sins5Tick20() { void Room::sins5CheckGatheredAllClues() { if (_awayMission->sins.scannedAndUsedComputers == 0xf && !_awayMission->sins.discoveredComputersOutOfSync) { _awayMission->sins.discoveredComputersOutOfSync = true; - showText(TX_SPEAKER_MOSHER, TX_SIN5_044); - showText(TX_SPEAKER_SPOCK, TX_SIN5_036); - showText(TX_SPEAKER_MCCOY, TX_SIN5_020); - showText(TX_SPEAKER_SPOCK, TX_SIN5_035); - showText(TX_SPEAKER_KIRK, TX_SIN5_006); - showText(TX_SPEAKER_SPOCK, TX_SIN5_037); - showText(TX_SPEAKER_MCCOY, TX_SIN5_021); - showText(TX_SPEAKER_SPOCK, TX_SIN5_032); - showText(TX_SPEAKER_KIRK, TX_SIN5_007); + showText(TX_SPEAKER_MOSHER, 44, true); + showText(TX_SPEAKER_SPOCK, 36, true); + showText(TX_SPEAKER_MCCOY, 20, true); + showText(TX_SPEAKER_SPOCK, 35, true); + showText(TX_SPEAKER_KIRK, 6, true); + showText(TX_SPEAKER_SPOCK, 37, true); + showText(TX_SPEAKER_MCCOY, 21, true); + showText(TX_SPEAKER_SPOCK, 32, true); + showText(TX_SPEAKER_KIRK, 7, true); } } @@ -311,7 +311,7 @@ void Room::sins5WireConnected() { _awayMission->sins.wireConnected1 = true; _awayMission->sins.wireConnected2 = true; loadActorAnim2(OBJECT_CABLE, "s5cabl", 0, 0); - showDescription(TX_SIN5N004); + showDescription(4, true); loseItem(OBJECT_ICONECT); playMidiMusicTracks(MIDITRACK_30, -1); } @@ -319,7 +319,7 @@ void Room::sins5WireConnected() { } void Room::sins5UseStunPhaserOnComputer() { - showText(TX_SPEAKER_MOSHER, TX_SIN5_043); + showText(TX_SPEAKER_MOSHER, 43, true); } @@ -393,8 +393,8 @@ void Room::sins5Timer2Expired() { void Room::sins5ComputerLaunchesMissiles() { playMidiMusicTracks(MIDITRACK_2, -1); - showDescription(TX_SIN5N012); - showDescription(TX_SIN5N013); + showDescription(12, true); + showDescription(13, true); showGameOverMenu(); } @@ -403,55 +403,55 @@ void Room::sins5Timer3Expired() { } void Room::sins5LookAnywhere() { - showDescription(TX_SIN5N005); + showDescription(5, true); } void Room::sins5LookAtKirk() { - showDescription(TX_SIN5N000); + showDescription(0, true); } void Room::sins5LookAtSpock() { - showDescription(TX_SIN5N006); + showDescription(6, true); } void Room::sins5LookAtMccoy() { - showDescription(TX_SIN5N001); + showDescription(1, true); } void Room::sins5LookAtRedshirt() { - showDescription(TX_SIN5N002); + showDescription(2, true); } void Room::sins5LookAtLight() { - showDescription(TX_SIN5N007); + showDescription(7, true); } void Room::sins5LookAtLeftComputer() { - showDescription(TX_SIN5N010); + showDescription(10, true); } void Room::sins5LookAtMiddleComputer() { - showDescription(TX_SIN5N008); + showDescription(8, true); } void Room::sins5LookAtRightComputer() { - showDescription(TX_SIN5N009); + showDescription(9, true); } void Room::sins5LookAtMissile() { - showDescription(TX_SIN5N003); + showDescription(3, true); } void Room::sins5LookAtNorthDoor() { - showDescription(TX_SIN5N011); + showDescription(11, true); } void Room::sins5UseMedkitOnCrewman() { - showText(TX_SPEAKER_MCCOY, TX_SIN5_017); + showText(TX_SPEAKER_MCCOY, 17, true); } void Room::sins5UseMTricorderAnywhere() { - mccoyScan(DIR_S, TX_SIN5_016); + mccoyScan(DIR_S, 16, false, true); if (!_awayMission->sins.gotPointsForScanningRoom5) { _awayMission->sins.missionScore += 1; _awayMission->sins.gotPointsForScanningRoom5 = true; // BUGFIX: add this line to prevent infinite score mechanism @@ -459,46 +459,46 @@ void Room::sins5UseMTricorderAnywhere() { } void Room::sins5TalkToKirk() { - showText(TX_SPEAKER_KIRK, TX_SIN5_002); + showText(TX_SPEAKER_KIRK, 2, true); } void Room::sins5TalkToSpock() { - showText(TX_SPEAKER_SPOCK, TX_SIN5_038); - showText(TX_SPEAKER_MCCOY, TX_SIN5_023); - showText(TX_SPEAKER_SPOCK, TX_SIN5_033); - showText(TX_SPEAKER_MCCOY, TX_SIN5_019); + showText(TX_SPEAKER_SPOCK, 38, true); + showText(TX_SPEAKER_MCCOY, 23, true); + showText(TX_SPEAKER_SPOCK, 33, true); + showText(TX_SPEAKER_MCCOY, 19, true); } void Room::sins5TalkToMccoy() { - showText(TX_SPEAKER_MCCOY, TX_SIN5_018); - showText(TX_SPEAKER_KIRK, TX_SIN5_010); + showText(TX_SPEAKER_MCCOY, 18, true); + showText(TX_SPEAKER_KIRK, 10, true); // The following code block is unused. It doesn't belong to any function, but would // fit best as an alternative to this one. if (false) { - showText(TX_SPEAKER_MCCOY, TX_SIN5_022); - showText(TX_SPEAKER_SPOCK, TX_SIN5_031); - showText(TX_SPEAKER_KIRK, TX_SIN5_009); + showText(TX_SPEAKER_MCCOY, 22, true); + showText(TX_SPEAKER_SPOCK, 31, true); + showText(TX_SPEAKER_KIRK, 9, true); } } void Room::sins5TalkToRedshirt() { - showText(TX_SPEAKER_MOSHER, TX_SIN5_046); - showText(TX_SPEAKER_SPOCK, TX_SIN5_034); - showText(TX_SPEAKER_MOSHER, TX_SIN5_045); - showText(TX_SPEAKER_KIRK, TX_SIN5_011); + showText(TX_SPEAKER_MOSHER, 46, true); + showText(TX_SPEAKER_SPOCK, 34, true); + showText(TX_SPEAKER_MOSHER, 45, true); + showText(TX_SPEAKER_KIRK, 11, true); } void Room::sins5UseSTricorderOnMissile() { - spockScan(DIR_S, TX_SIN5_012); + spockScan(DIR_S, 12, false, true); } void Room::sins5UseSTricorderOnNorthDoor() { - spockScan(DIR_S, TX_SIN5_024); + spockScan(DIR_S, 24, false, true); } void Room::sins5UseMTricorderOnCrewman() { - mccoyScan(DIR_S, TX_SIN5_014); + mccoyScan(DIR_S, 14, false, true); } } diff --git a/engines/startrek/text.cpp b/engines/startrek/text.cpp index 1257c5426e..79605e9dfa 100644 --- a/engines/startrek/text.cpp +++ b/engines/startrek/text.cpp @@ -560,338 +560,16 @@ extern const char *const g_gameStrings[] = { "#TRI5\\TRI5N020#This large gem appears to be an emerald of unusual size. This is obviously artificial.", // TYPO "#TRI5\\TRI5N021#This large gem appears to be an emerald of unusual size. This is obviously artificial.", // TYPO - - "#SIN0\\SIN0_001#Good Mr. Scott. I'll keep you posted. Kirk out.", - "#SIN0\\SIN0_002#Let me know if things change. Kirk out.", - "#SIN0\\SIN0_003#Mr. Scott?", - "#SIN0\\SIN0_004#Scotty, report on the transporter problem.", - "#SIN0\\SIN0_005#That will still give us plenty of time, Scotty.", - "#SIN0\\SIN0_006#That's what we're here to find out. The unknown.", - "#SIN0\\SIN0_007#We didn't notice anything beaming down.", - "#SIN0\\SIN0_008#Which means that this moon might still be inhabited, Mr. Spock.", - "#SIN0\\SIN0_009#Aside from the security door on what should be a lifeless planetoid, this place is unremarkable.", - "#SIN0\\SIN0_010#It's what I was afraid of, Jim. The thin atmosphere of this moon doesn't provide enough protection from cosmic rays. We shouldn't stay here any more than a few hours.", - "#SIN0\\SIN0_011#The atmosphere is breathable, Jim, but hardly nourishing. We should either get inside or go back to the ship.", - "#SIN0\\SIN0_012#There's not much I can do for cosmic radiation. It's best if we find some cover indoors.", - "#SIN0\\SIN0_013#Do you have Vulcan blood ensign?", - "#SIN0\\SIN0_014#I never realized the Orions ever got past decadence... They hadn't the last time I was there.", - "#SIN0\\SIN0_015#These stones resemble those on Earth, on Easter Island.", - "#SIN0\\SIN0_016#I cannot get readings from this range, Captain. But if we do not hurry there will be nothing left to get a reading on.", - "#SIN0\\SIN0_017#The rocks have a high quantity of Tri-Phosphorate Silver in them.", - "#SIN0\\SIN0_018#Unremarkable except for low grade power emanations from the door area.", - "#SIN0\\SIN0_019#As expected Captain. The source of power emanations lies beyond that door.", - "#SIN0\\SIN0_020#Large quantities of atmosphere are being circulated through these rocks. I would guess there are storage units within this satellite which are constantly replacing the atmosphere that is lost because of this moon's weak gravity.", - "#SIN0\\SIN0_021#Stone monoliths of faces are a common artistic expression in evolving cultures...", - "#SIN0\\SIN0_022#Unknown, ensign.", - "#SIN0\\SIN0_023#We have detected no signs of life, Captain, but the possibility does exist.", - "#SIN0\\SIN0_024#Area secure, Captain.", - "#SIN0\\SIN0_025#A power source that has lasted millenia and endured major catastrophes. That's fascinating, Mr. Spock.", - "#SIN0\\SIN0_026#How can there be an atmosphere on a moon of this size?", - "#SIN0\\SIN0_027#Like the faces on Vandu II. Even the animal face art of the Orion Post-Decadence Movement is similar.", - "#SIN0\\SIN0_028#No, sir.", - "#SIN0\\SIN0_S01#No change Captain. Although why it happened is about as clear as a foggy night in Glasgow.", - "#SIN0\\SIN0_S48#Aye. We've had some slight problems with the transporters.", - "#SIN0\\SIN0_S49#I know. I have the lads in Engineering doing a complete overhaul of the ship's systems.", - "#SIN0\\SIN0_S50#Just a glitch in the main transporter program. Mr. Kyle is loading a back-up, and we're performing tests. The transporters will be down for about an hour.", - "#SIN0\\SIN0N000#Dr. Leonard McCoy, knowing that they aren't likely to encounter any medical problems, is rather annoyed about being dragged yet again into the transporter.", - "#SIN0\\SIN0N001#Ensign Mosher seems to be rather curious about the planet's technology.", - "#SIN0\\SIN0N002#James T. Kirk, worried about the safety of the people of Proxtrey.", - "#SIN0\\SIN0N003#Mr. Spock looks forward to examining the technology of this ancient culture.", - "#SIN0\\SIN0N004#Ten thousand points of light are visible to the naked eye through the thin atmosphere of this moon.", - "#SIN0\\SIN0N005#The heavy-duty security door is now open.", - "#SIN0\\SIN0N006#There are many rocks here.", - "#SIN0\\SIN0N007#This is the planet Proxtrey, currently six hundred thousand kilometers from this moon.", - "#SIN0\\SIN0N008#This looks like a heavy-duty security door built into the side of a hill on this moon.", - "#SIN0\\SIN0N009#This moon has a thin but breathable atmosphere.", - "#SIN0\\SIN0N010#You retrieve a rock.", - "#SIN0\\SIN0N011#These stones look like faces.", - "#SIN0\\SIN0U069#Nothing new to report Captain.", - "#SIN0\\SIN0U082#Captain, Mr. Scott wishes to speak with you.", - - - "#SIN1\\SIN1_001#Spock, see what you can do with that lock.", - "#SIN1\\SIN1_002#Check her record, Mr. Scott. She was in the top ten percent of her class in computer systems analysis.", - "#SIN1\\SIN1_003#Isolate that virus. That's your number one priority.", - "#SIN1\\SIN1_004#Just do your best, Scotty. Kirk out.", - "#SIN1\\SIN1_005#There goes our back-up plan. Do what you can, Mr. Scott.", - "#SIN1\\SIN1_006#Well, we won't be able to phaser any outbound missiles.", - "#SIN1\\SIN1_007#What is it, Scotty?", - "#SIN1\\SIN1_008#Your situation, Mr. Scott?", - "#SIN1\\SIN1_009#A security lock, Captain.", - "#SIN1\\SIN1_010#A working display panel, Captain.", - "#SIN1\\SIN1_011#Ah, that worked. I see you deduced that 10200, in the Lucrs base three was equal to their sacred number 99.", - "#SIN1\\SIN1_012#Damn it, Jim. I'm a doctor, not a locksmith!", - "#SIN1\\SIN1_013#No appreciable cosmic radiation damage. Yet.", - "#SIN1\\SIN1_014#There's not much I can do for cosmic radiation. It's best if we find some cover indoors.", - "#SIN1\\SIN1_015#We should stay inside as much as possible. We must try to protect ourselves from the cosmic radiation.", - "#SIN1\\SIN1_016#It would be useless Captain. The door could easily withstand our phaser fire.", - "#SIN1\\SIN1_017#That did not seem to work, Captain. Perhaps we should try a number that had some significance to them. Remember they were very superstitious.", - "#SIN1\\SIN1_018#That prompted a response, Captain. 01210 is 100 in base four, a number the Sofs regarded as sacred.", - "#SIN1\\SIN1_019#The door still appears to be in operating condition.", - "#SIN1\\SIN1_020#The origin point for the broadcast Uhura monitored was approximately fifty meters beyond this door.", - "#SIN1\\SIN1_021#There is power running to the keypad.", - "#SIN1\\SIN1_022#This appears to be a dust-covered lens of some sort.", - "#SIN1\\SIN1_023#This is the focal lense for an anti-intruder laser.", - "#SIN1\\SIN1_024#Unremarkable.", - "#SIN1\\SIN1_025#We should carefully consider everything we know about this culture before taking action.", - "#SIN1\\SIN1_026#From what we know about the Lucrs, they had an affinity for size. Their machines weren't just equipment; they were also monuments.", - "#SIN1\\SIN1_027#It appears that our mission has increased in importance.", - "#SIN1\\SIN1_028#I'm just a security officer, Sir.", - "#SIN1\\SIN1_029#I can believe that.", - "#SIN1\\SIN1_030#This door is huge. If they were humanoid, they could have been giants...", - "#SIN1\\SIN1_S10#Captain, I'm afraid we've got a wee problem here.", - "#SIN1\\SIN1_S17#That it is, Captain. We'll keep you informed. Scott out.", - "#SIN1\\SIN1_S18#There is some sort of virus in the main computer. Our phasers and tractor beams have been disabled, and there's no way we're getting them back in three hours.", - "#SIN1\\SIN1_S20#We'll find that virus soon Captain, or I'm an Englishman.", - "#SIN1\\SIN1_S51#We're still looking for the virus, Captain. I even have Lieutenant Uhura looking through the computer system. I never realized the lass was so good with them.", - "#SIN1\\SIN1_S85#Aye, I will Captain. I may yet have a trick or two that I can pull, but don't count on any miracles.", - "#SIN1\\SIN1N000#A lens sits above the doorway, but is it mere decoration?", - "#SIN1\\SIN1N001#Built into the rock is a very large door.", - "#SIN1\\SIN1N002#Ensign Mosher is glad to be a member of this landing party, at least for now.", - "#SIN1\\SIN1N003#It looks like some sort of display panel.", - "#SIN1\\SIN1N004#It never ceases to amaze you how passive Spock can be, even in the presence of extraordinary wonders.", - "#SIN1\\SIN1N005#James T. Kirk, A man with a problem. A big problem that is getting bigger.", - "#SIN1\\SIN1N006#McCoy is examining himself for cosmic radiation sickness symptoms.", - "#SIN1\\SIN1N007#Meteorites have hit this door and left it undamaged. What are you going to do with a rock?", - "#SIN1\\SIN1N008#The doorway into the complex is huge.", - "#SIN1\\SIN1N009#This appears to be some sort of security lock.", - "#SIN1\\SIN1N010#This heavy-duty door has taken numerous micrometeorite strikes but still appears solid.", - "#SIN1\\SIN1N011#This is a keypad that looks functional.", - "#SIN1\\SIN1U070#Nothing new to report Captain.", - - - "#SIN2\\SIN2_001#Spock, see what you can do with that lock.", - "#SIN2\\SIN2_002#Spock, see what you can do with this.", - "#SIN2\\SIN2_003#The Lucrs did not seem to have a problem with security.", - "#SIN2\\SIN2_004#Keep working at it, Uhura. Kirk out.", - "#SIN2\\SIN2_005#Report, Scotty. How are things going?", - "#SIN2\\SIN2_006#Scotty, any progress on the phasers?", - "#SIN2\\SIN2_007#Spock is right, Bones. Spock, what are the chances that we could decode the transmission and send a stop code to the base?", - "#SIN2\\SIN2_008#Well done, Uhura.", - "#SIN2\\SIN2_009#A computer terminal, Captain. It uses the lucr alphabet. I think I can decipher it.", - "#SIN2\\SIN2_010#Fascinating. If the Federation language studies were correct, the ideograph for the word \"Scythe\" in the Lucrs language is the 17th symbol in their alphabet. That corresponds with 122 in base 3.", - "#SIN2\\SIN2_012#Damn it Jim, I'm a surgeon not an alien computer science specialist.", // TYPO - "#SIN2\\SIN2_013#I think Spock would have a better chance at cracking that, Jim.", - "#SIN2\\SIN2_014#We're safe from the cosmic radiation, Jim.", - "#SIN2\\SIN2_015#22%? That's very low -- hardly something to brag about.", - "#SIN2\\SIN2_016#At least we won't have to worry about suffocating.", - "#SIN2\\SIN2_017#By then, Proxtrey could be a dead planet.", - "#SIN2\\SIN2_019#Finally, someone who appreciates me!", - "#SIN2\\SIN2_020#Jim, let's return to the ship and blast this place to destroy its weapons.", - "#SIN2\\SIN2_021#So why has the base been activated again?", - "#SIN2\\SIN2_022#Spock!", - "#SIN2\\SIN2_023#This place does seem to provide protection against cosmic rays.", - "#SIN2\\SIN2_024#That did not work, Captain. It is probable this lock also uses a number of some significance.", - "#SIN2\\SIN2_025#The door will easily withstand our phasers, Captain.", - "#SIN2\\SIN2_026#The interior of the security lock is unremarkable and well preserved.", - "#SIN2\\SIN2_027#This door is similar to the one on the outside of the securelock except that it has not weathered over the years. Electrical panels indicate the keypad on the right controls the door.", - "#SIN2\\SIN2_028#This keypad is fully functional and controls the door. Its entry code is in base three.", - "#SIN2\\SIN2_029#1.327 million to one, provided the archaeological studies about Lucrs languages are correct. Our other option is to get into this base and see if we can bring the computers down.", - "#SIN2\\SIN2_030#Actually, Ensign, they differ from your culture only in that their language was explicit in their expressions of dominance and submission, rather than implied.", - "#SIN2\\SIN2_031#Because it does not recognize them, it assumes the Sofs are still active.", - "#SIN2\\SIN2_032#Doctor, in base 3, 22/100 is equivalent to 8 out of 9 or 88%. I would think that quite satisfactory given this base's probable mission of destroying the Sof forces on Proxtrey.", - "#SIN2\\SIN2_033#Doctor, this moon is a god to the people down there. If we destroy it we will violate the Prime Directive.", - "#SIN2\\SIN2_034#Given the damage to the moon, its slow rotation and orbit, it has never realized the war is over. On this pass, for the first time, it has detected radio-wave transmissions from Proxtrey.", - "#SIN2\\SIN2_035#If the Lucrs built this base with a clock that told the time by measuring the moon's rotational speed or the gravitational forces generated by Proxtrey and the sun, the computer may have calculated only a week of time has passed since its first action. I might be able to learn more with another look at the console.", - "#SIN2\\SIN2_037#In Trinary or Decimal?", - "#SIN2\\SIN2_038#Its transmission to the planet, I would assume, was some sort of a check beacon to see if it should continue its mission.", - "#SIN2\\SIN2_039#My tricorder is picking up large supplies of frozen oxygen, nitrogen, and carbon dioxide beneath the surface. Enough to last many centuries.", - "#SIN2\\SIN2_040#One Sof strike did, in fact, hit the moon and deflected it from its orbit. It has been dormant since then.", - "#SIN2\\SIN2_041#The Sofs managed to infiltrate the base. however, their actions triggered Scythe's auto-attack mechanisms, and initiated a holocaust that nearly annihilated the planet. ", - "#SIN2\\SIN2_042#The console reports the following: ", - "#SIN2\\SIN2_043#There is a substantial amount of data here, but in summary, Scythe was created by the Lucrs as a launching platform for missiles to keep the Sofs subjugated to their influence.", - "#SIN2\\SIN2_044#Welcome to Orbital Missile Base. Codename: Scythe. This base has been operational for the past week. It has completed 1 successful fire mission. Estimation of success is at 22/100.", - "#SIN2\\SIN2_045#I think Mr. Spock would have a better idea of how to operate that, Captain.", - "#SIN2\\SIN2_046#I'm just a security officer, Sir.", - "#SIN2\\SIN2_047#We appear to be in some type of Security Lock. No defensive systems are apparent here, but considering the size of the doors, they probably don't need them!", - "#SIN2\\SIN2_048#Dominance seemed to be very important to these people. No wonder the Lucr were so war-like.", - "#SIN2\\SIN2_049#I don't see why they bothered putting an atmosphere here, Captain. There hasn't even been bacteria here in centuries, let alone humanoids.", - "#SIN2\\SIN2_050#It says the base has been operational for a week, but this has been here for a thousand years.", "#SIN2\\SIN2_F12#This says: \"Dominant People only to dominate things beyond >,