diff options
author | Matthew Stewart | 2018-08-07 23:56:59 -0400 |
---|---|---|
committer | Eugene Sandulenko | 2018-08-09 08:37:30 +0200 |
commit | 1a12a25b54b2c19225b44892db972707a413c31c (patch) | |
tree | 04e41739817ad0f6999decd8c52d17e23ee77e17 /engines | |
parent | ebc6f194c27f23b74df1fb8a8fb8aed43fcdd050 (diff) | |
download | scummvm-rg350-1a12a25b54b2c19225b44892db972707a413c31c.tar.gz scummvm-rg350-1a12a25b54b2c19225b44892db972707a413c31c.tar.bz2 scummvm-rg350-1a12a25b54b2c19225b44892db972707a413c31c.zip |
STARTREK: VENG4
Diffstat (limited to 'engines')
-rw-r--r-- | engines/startrek/awaymission.h | 10 | ||||
-rw-r--r-- | engines/startrek/room.h | 44 | ||||
-rw-r--r-- | engines/startrek/rooms/veng2.cpp | 2 | ||||
-rw-r--r-- | engines/startrek/rooms/veng3.cpp | 4 | ||||
-rw-r--r-- | engines/startrek/rooms/veng4.cpp | 315 | ||||
-rw-r--r-- | engines/startrek/text.cpp | 41 | ||||
-rw-r--r-- | engines/startrek/text.h | 37 |
7 files changed, 444 insertions, 9 deletions
diff --git a/engines/startrek/awaymission.h b/engines/startrek/awaymission.h index 835a2b72f1..abfa00fd71 100644 --- a/engines/startrek/awaymission.h +++ b/engines/startrek/awaymission.h @@ -620,6 +620,10 @@ struct AwayMission { } sins; struct { + bool usedMedkitOnBrittany; // 0x29 + bool talkedToBrittany; // 0x2a + bool brittanyDead; // 0x2b + bool lookedAtBrittany; // 0x2c bool enteredRoom0FirstTime; // 0x2d int16 missionScore; // 0x2e bool bridgeCrewmanDead; // 0x30 @@ -668,14 +672,16 @@ struct AwayMission { bool putSupportBeamInSickbayHallway; // 0x53 bool clearedDebris; // 0x54 bool lookedAtTurbolift2Door; // 0x55 - bool kirkSuggestedReestablishingPower; // 0x56 + bool kirkShouldSuggestReestablishingPower; // 0x56 + bool tookHypoFromSickbay; // 0x57 + bool tookDrillFromSickbay; // 0x58 bool havePowerPack; // 0x5a bool tookCableFromSickbayHallway; // 0x5f bool tookMolecularSaw; // 0x60 bool readEngineeringJournal; // 0x61 bool examinedTorpedoControl; // 0x66 bool field68; // 0x68 - bool field69; // 0x69 + bool getPointsForHealingBrittany; // 0x69 bool readAllLogs; // 0x6a bool field6b; // 0x6b bool field6c; // 0x6c diff --git a/engines/startrek/room.h b/engines/startrek/room.h index 78fbe2b19c..0f85f720e9 100644 --- a/engines/startrek/room.h +++ b/engines/startrek/room.h @@ -2638,9 +2638,46 @@ public: void veng3ReachedCable(); void veng3PickedUpCable(); void veng3UseMccoyOnDeadGuy(); + // TODO: Common code // VENG4 void veng4Tick1(); + void veng4TalkToKirk(); + void veng4TalkToMccoy(); + void veng4TalkToSpock(); + void veng4TalkToRedshirt(); + void veng4UseMccoyOnDeadGuy(); + void veng4UseHypoOnBrittany(); + void veng4UseMedkitOnBrittany(); + void veng4UseMTricorderOnBrittany(); + void veng4UseMccoyOnBrittany(); + void veng4MccoyReachedBrittany(); + void veng4UsedMedkitOnBrittany(); + void veng4MccoyScannedBrittany(); + void veng4TalkToBrittany(); + void veng4LookAtDeadGuy(); + void veng4LookAtRightBedReadings(); + void veng4LookAtDoorHotspot(); + void veng4LookAtKirk(); + void veng4LookAtSpock(); + void veng4LookAtMccoy(); + void veng4LookAtRedshirt(); + void veng4LookAtLeftBed(); + void veng4LookAtLeftBedReadings(); + void veng4LookAtBrittany(); + void veng4LookAtDrill(); + void veng4LookAtHypo(); + void veng4LookAtDoorObject(); + void veng4LookAnywhere(); + void veng4GetHypo(); + void veng4ReachedHypo(); + void veng4PickedUpHypo(); + void veng4GetDrill(); + void veng4ReachedDrill(); + void veng4PickedUpDrill(); + void veng4TouchedHotspot0(); + void veng4WalkToDoor(); + // TODO: common code // VENG5 void veng5Tick1(); @@ -2970,10 +3007,15 @@ public: struct { // veng1 byte doorOpenCounter; // 0xca - bool walkingToDoor; // 0xcb // veng2 byte numCrewmenReadyToBeamOut; // 0xca + + // veng4 + bool usingMedkitOnBrittany; + + // venga (common) + bool walkingToDoor; // 0xcb (veng1), 0xca (veng4) } veng; } _roomVar; diff --git a/engines/startrek/rooms/veng2.cpp b/engines/startrek/rooms/veng2.cpp index d473e588ac..c00c346543 100644 --- a/engines/startrek/rooms/veng2.cpp +++ b/engines/startrek/rooms/veng2.cpp @@ -599,7 +599,7 @@ void Room::veng2CrewmanInPositionToBeamOut() { _awayMission->veng.missionScore = 16; if (_awayMission->veng.field68) _awayMission->veng.missionScore += 1; - if (_awayMission->veng.field69) + if (_awayMission->veng.getPointsForHealingBrittany) _awayMission->veng.missionScore += 1; if (_awayMission->veng.readAllLogs) _awayMission->veng.missionScore += 1; diff --git a/engines/startrek/rooms/veng3.cpp b/engines/startrek/rooms/veng3.cpp index f4a6a95c1d..649288be66 100644 --- a/engines/startrek/rooms/veng3.cpp +++ b/engines/startrek/rooms/veng3.cpp @@ -121,9 +121,9 @@ void Room::veng3Tick1() { } void Room::veng3Tick15() { - if (_awayMission->veng.kirkSuggestedReestablishingPower && !_awayMission->veng.impulseEnginesOn) { + if (_awayMission->veng.kirkShouldSuggestReestablishingPower && !_awayMission->veng.impulseEnginesOn) { showText(TX_SPEAKER_KIRK, TX_VEN0_010); - _awayMission->veng.kirkSuggestedReestablishingPower = true; + _awayMission->veng.kirkShouldSuggestReestablishingPower = false; } } diff --git a/engines/startrek/rooms/veng4.cpp b/engines/startrek/rooms/veng4.cpp index 836fcceb62..2c3f8f2319 100644 --- a/engines/startrek/rooms/veng4.cpp +++ b/engines/startrek/rooms/veng4.cpp @@ -22,20 +22,331 @@ #include "startrek/room.h" -#define OBJECT_DOOR 8 +#define OBJECT_BRITTANY 8 +#define OBJECT_DOOR 9 +#define OBJECT_HYPO 10 +#define OBJECT_DRILL 11 +#define OBJECT_LEFT_READINGS 12 -#define HOTSPOT_20 0x20 +#define HOTSPOT_DOOR 0x20 +#define HOTSPOT_LEFT_BED 0x21 +#define HOTSPOT_RIGHT_BED 0x22 +#define HOTSPOT_LEFT_READINGS 0x23 +#define HOTSPOT_RIGHT_READINGS 0x24 namespace StarTrek { extern const RoomAction veng4ActionList[] = { { {ACTION_TICK, 1, 0, 0}, &Room::veng4Tick1 }, + + { {ACTION_TALK, OBJECT_KIRK, 0, 0}, &Room::veng4TalkToKirk }, + { {ACTION_TALK, OBJECT_MCCOY, 0, 0}, &Room::veng4TalkToMccoy }, + { {ACTION_TALK, OBJECT_SPOCK, 0, 0}, &Room::veng4TalkToSpock }, + { {ACTION_TALK, OBJECT_REDSHIRT, 0, 0}, &Room::veng4TalkToRedshirt }, + + { {ACTION_USE, OBJECT_IMEDKIT, HOTSPOT_RIGHT_BED, 0}, &Room::veng4UseMccoyOnDeadGuy }, + { {ACTION_USE, OBJECT_IMTRICOR, HOTSPOT_RIGHT_BED, 0}, &Room::veng4UseMccoyOnDeadGuy }, + { {ACTION_USE, OBJECT_MCCOY, HOTSPOT_RIGHT_BED, 0}, &Room::veng4UseMccoyOnDeadGuy }, + + { {ACTION_USE, OBJECT_IHYPO, OBJECT_BRITTANY, 0}, &Room::veng4UseHypoOnBrittany }, + { {ACTION_USE, OBJECT_IMEDKIT, OBJECT_BRITTANY, 0}, &Room::veng4UseMedkitOnBrittany }, + { {ACTION_USE, OBJECT_IMTRICOR, OBJECT_BRITTANY, 0}, &Room::veng4UseMTricorderOnBrittany }, + { {ACTION_USE, OBJECT_MCCOY, OBJECT_BRITTANY, 0}, &Room::veng4UseMTricorderOnBrittany }, + { {ACTION_DONE_WALK, 5, 0, 0}, &Room::veng4MccoyReachedBrittany }, + { {ACTION_DONE_ANIM, 6, 0, 0}, &Room::veng4UsedMedkitOnBrittany }, + { {ACTION_DONE_ANIM, 7, 0, 0}, &Room::veng4MccoyScannedBrittany }, + + { {ACTION_TALK, OBJECT_BRITTANY, 0, 0}, &Room::veng4TalkToBrittany }, + { {ACTION_LOOK, HOTSPOT_RIGHT_BED, 0, 0}, &Room::veng4LookAtDeadGuy }, + { {ACTION_LOOK, HOTSPOT_RIGHT_READINGS, 0, 0}, &Room::veng4LookAtRightBedReadings }, + { {ACTION_LOOK, HOTSPOT_DOOR, 0, 0}, &Room::veng4LookAtDoorHotspot }, + { {ACTION_LOOK, OBJECT_KIRK, 0, 0}, &Room::veng4LookAtKirk }, + { {ACTION_LOOK, OBJECT_SPOCK, 0, 0}, &Room::veng4LookAtSpock }, + { {ACTION_LOOK, OBJECT_MCCOY, 0, 0}, &Room::veng4LookAtMccoy }, + { {ACTION_LOOK, OBJECT_REDSHIRT, 0, 0}, &Room::veng4LookAtRedshirt }, + { {ACTION_LOOK, HOTSPOT_LEFT_BED, 0, 0}, &Room::veng4LookAtLeftBed }, + { {ACTION_LOOK, HOTSPOT_LEFT_READINGS, 0, 0}, &Room::veng4LookAtLeftBedReadings }, + { {ACTION_LOOK, OBJECT_BRITTANY, 0, 0}, &Room::veng4LookAtBrittany }, + + { {ACTION_USE, OBJECT_ISTRICOR, OBJECT_DRILL, 0}, &Room::veng4LookAtDrill }, + { {ACTION_LOOK, OBJECT_DRILL, 0, 0}, &Room::veng4LookAtDrill }, + { {ACTION_USE, OBJECT_ISTRICOR, OBJECT_HYPO, 0}, &Room::veng4LookAtHypo }, + { {ACTION_LOOK, OBJECT_HYPO, 0, 0}, &Room::veng4LookAtHypo }, + { {ACTION_LOOK, OBJECT_DOOR, 0, 0}, &Room::veng4LookAtDoorObject }, + { {ACTION_LOOK, 0xff, 0, 0}, &Room::veng4LookAnywhere }, + + { {ACTION_GET, OBJECT_HYPO, 0, 0}, &Room::veng4GetHypo }, + { {ACTION_DONE_WALK, 1, 0, 0}, &Room::veng4ReachedHypo }, + { {ACTION_DONE_ANIM, 2, 0, 0}, &Room::veng4PickedUpHypo }, + + { {ACTION_GET, OBJECT_DRILL, 0, 0}, &Room::veng4GetDrill }, + { {ACTION_DONE_WALK, 3, 0, 0}, &Room::veng4ReachedDrill }, + { {ACTION_DONE_ANIM, 4, 0, 0}, &Room::veng4PickedUpDrill }, + + { {ACTION_TOUCHED_HOTSPOT, 0, 0, 0}, &Room::veng4TouchedHotspot0 }, + { {ACTION_WALK, OBJECT_DOOR, 0, 0}, &Room::veng4WalkToDoor }, + { {ACTION_WALK, HOTSPOT_DOOR, 0, 0}, &Room::veng4WalkToDoor }, + + // ENHANCEMENT (let object count for the "look" action, not just the hotspot) + { {ACTION_LOOK, OBJECT_LEFT_READINGS, 0, 0}, &Room::veng4LookAtLeftBedReadings }, }; extern const int veng4NumActions = ARRAYSIZE(veng4ActionList); +#define DOOR_X 0x13f +#define DOOR_Y 0xab + +#define BRITTANY_X 0x5a +#define BRITTANY_Y 0xa5 + +#define LEFT_READINGS_X 0x5c +#define LEFT_READINGS_Y 0x75 + void Room::veng4Tick1() { + playMidiMusicTracks(MIDITRACK_31); + + loadActorAnim2(OBJECT_DOOR, "s9r1dc", DOOR_X, DOOR_Y); + loadActorAnim2(OBJECT_LEFT_READINGS, "s7r4m2", LEFT_READINGS_X, LEFT_READINGS_Y); + + if (!_awayMission->veng.usedMedkitOnBrittany) { + loadActorAnim2(OBJECT_BRITTANY, "s9r1bm", BRITTANY_X, BRITTANY_Y); + playVoc("VEN4LOOP"); + } else { + playVoc("VE42LOOP"); + loadActorAnim2(OBJECT_BRITTANY, "s9r1bh", BRITTANY_X, BRITTANY_Y); + } + + if (!_awayMission->veng.tookHypoFromSickbay) + loadActorAnim2(OBJECT_HYPO, "s7r4h1", 0xea, 0x8b); + if (!_awayMission->veng.tookDrillFromSickbay) + loadActorAnim2(OBJECT_DRILL, "s7r4dl", 0xea, 0x87); + + if (_awayMission->veng.brittanyDead) { + loadActorAnim2(OBJECT_BRITTANY, "s7r4bd", BRITTANY_X, BRITTANY_Y); + loadActorAnim2(OBJECT_LEFT_READINGS, "s7r4m1d", LEFT_READINGS_X, LEFT_READINGS_Y); + } +} + +void Room::veng4TalkToKirk() { + showText(TX_SPEAKER_KIRK, TX_VEN4_002); +} + +void Room::veng4TalkToMccoy() { + showText(TX_SPEAKER_MCCOY, TX_VEN4_015); +} + +void Room::veng4TalkToSpock() { + showText(TX_SPEAKER_SPOCK, TX_VEN4_017); +} + +void Room::veng4TalkToRedshirt() { + showText(TX_SPEAKER_KIJE, TX_VEN4_022); +} + +void Room::veng4UseMccoyOnDeadGuy() { + showText(TX_SPEAKER_MCCOY, TX_VEN4_007); +} + +void Room::veng4UseHypoOnBrittany() { + showText(TX_SPEAKER_MCCOY, TX_VEN4_008); +} + +void Room::veng4UseMedkitOnBrittany() { + _roomVar.veng.usingMedkitOnBrittany = true; + veng4UseMccoyOnBrittany(); +} + +void Room::veng4UseMTricorderOnBrittany() { + _roomVar.veng.usingMedkitOnBrittany = false; + veng4UseMccoyOnBrittany(); +} + +void Room::veng4UseMccoyOnBrittany() { + if (_awayMission->veng.brittanyDead) + showText(TX_SPEAKER_MCCOY, TX_VEN4_013); + else if (_awayMission->veng.usedMedkitOnBrittany) + showText(TX_SPEAKER_MCCOY, TX_VEN4_009); + else { + if (!_awayMission->veng.lookedAtBrittany) { + _awayMission->veng.lookedAtBrittany = true; + showText(TX_SPEAKER_KIRK, TX_VEN4_005); + } + _awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_E; + walkCrewmanC(OBJECT_MCCOY, 0x3c, 0xa0, &Room::veng4MccoyReachedBrittany); + } +} + +void Room::veng4MccoyReachedBrittany() { + if (!_roomVar.veng.usingMedkitOnBrittany) { + loadActorAnimC(OBJECT_MCCOY, "mscane", -1, -1, &Room::veng4MccoyScannedBrittany); + playSoundEffectIndex(SND_TRICORDER); + } else { + loadActorAnimC(OBJECT_MCCOY, "museme", -1, -1, &Room::veng4UsedMedkitOnBrittany); + } +} + +void Room::veng4UsedMedkitOnBrittany() { + loadActorAnim2(OBJECT_BRITTANY, "s9r1bh"); + _awayMission->veng.getPointsForHealingBrittany = true; + _awayMission->veng.usedMedkitOnBrittany = true; + _awayMission->veng.kirkShouldSuggestReestablishingPower = true; + showText(TX_SPEAKER_MCCOY, TX_VEN4_009); +} + +void Room::veng4MccoyScannedBrittany() { + showText(TX_SPEAKER_MCCOY, TX_VEN4_011); + showText(TX_SPEAKER_KIRK, TX_VEN4_001); + + _roomVar.veng.usingMedkitOnBrittany = true; + veng4UseMccoyOnBrittany(); +} + +void Room::veng4TalkToBrittany() { + if (_awayMission->veng.talkedToBrittany) + showText(TX_SPEAKER_MCCOY, TX_VEN4_012); + else if (!_awayMission->veng.usedMedkitOnBrittany) + showText(TX_SPEAKER_MCCOY, TX_VEN4_010); + else { + _awayMission->veng.talkedToBrittany = true; + showText(TX_SPEAKER_BRITTANY_MARATA, TX_VEN4_019); + showText(TX_SPEAKER_KIRK, TX_VEN4_004); + showText(TX_SPEAKER_BRITTANY_MARATA, TX_VEN4_020); + showText(TX_SPEAKER_KIRK, TX_VEN4_006); + showText(TX_SPEAKER_BRITTANY_MARATA, TX_VEN4_021); + showText(TX_SPEAKER_KIRK, TX_VEN4_003); + + loadActorAnim2(OBJECT_BRITTANY, "s9r1bm", BRITTANY_X, BRITTANY_Y); + showText(TX_SPEAKER_MCCOY, TX_VEN4_016); + loadActorAnim2(OBJECT_LEFT_READINGS, "s7r4m1", LEFT_READINGS_X, LEFT_READINGS_Y); + loadActorAnim2(OBJECT_BRITTANY, "s7r4bd", BRITTANY_X, BRITTANY_Y); + _awayMission->veng.brittanyDead = true; + stopAllVocSounds(); + playVoc("VE42LOOP"); + } +} + +void Room::veng4LookAtDeadGuy() { + showText(TX_VEN4N014); +} + +void Room::veng4LookAtRightBedReadings() { + showText(TX_VEN4N013); +} + +void Room::veng4LookAtDoorHotspot() { + showText(TX_VEN4N008); +} + +void Room::veng4LookAtKirk() { + showText(TX_VEN4N002); +} + +void Room::veng4LookAtSpock() { + showText(TX_SPEAKER_SPOCK, TX_VEN4N003); +} + +void Room::veng4LookAtMccoy() { + showText(TX_SPEAKER_MCCOY, TX_VEN4N000); +} + +void Room::veng4LookAtRedshirt() { + showText(TX_SPEAKER_KIJE, TX_VEN4N001); +} + +void Room::veng4LookAtLeftBed() { + if (_awayMission->veng.brittanyDead) { + // ENHANCEMENT: Original game showed a string with no corresponding audio ("This + // bed contains the body of a recently deceaced crewman." Yes that's a typo.) + // Instead, show some appropriate voiced text. + showText(TX_VEN4N017); + } else + showText(TX_VEN4N007); +} + +void Room::veng4LookAtLeftBedReadings() { + if (!_awayMission->veng.brittanyDead) + showText(TX_VEN4N006); + else + showText(TX_VEN4N005); +} + +void Room::veng4LookAtBrittany() { + if (_awayMission->veng.brittanyDead) + showText(TX_VEN4N017); + else if (!_awayMission->veng.lookedAtBrittany) { + _awayMission->veng.lookedAtBrittany = true; + showText(TX_SPEAKER_KIRK, TX_VEN4_005); + showText(TX_SPEAKER_MCCOY, TX_VEN4_014); + } else if (_awayMission->veng.talkedToBrittany) + showText(TX_VEN4N017); + else + showText(TX_VEN4N004); +} + +void Room::veng4LookAtDrill() { + showText(TX_VEN4N012); +} + +void Room::veng4LookAtHypo() { + showText(TX_VEN4N010); +} + +void Room::veng4LookAtDoorObject() { + showText(TX_VEN4N009); +} + +void Room::veng4LookAnywhere() { + showText(TX_VEN4N011); +} + +void Room::veng4GetHypo() { + _awayMission->disableInput = true; + walkCrewmanC(OBJECT_KIRK, 0xea, 0xae, &Room::veng4ReachedHypo); +} + +void Room::veng4ReachedHypo() { + loadActorAnimC(OBJECT_KIRK, "kusemn", -1, -1, &Room::veng4PickedUpHypo); +} + +void Room::veng4PickedUpHypo() { + giveItem(OBJECT_IHYPO); + _awayMission->veng.tookHypoFromSickbay = true; + loadActorStandAnim(OBJECT_HYPO); + showText(TX_VEN4N015); + walkCrewman(OBJECT_KIRK, 0xcd, 0xc2); + _awayMission->disableInput = false; +} + +void Room::veng4GetDrill() { + _awayMission->disableInput = true; + walkCrewmanC(OBJECT_KIRK, 0xea, 0xae, &Room::veng4ReachedDrill); +} + +void Room::veng4ReachedDrill() { + loadActorAnimC(OBJECT_KIRK, "kusemn", -1, -1, &Room::veng4PickedUpDrill); +} + +void Room::veng4PickedUpDrill() { + giveItem(OBJECT_IDRILL); + _awayMission->veng.tookDrillFromSickbay = true; + loadActorStandAnim(OBJECT_DRILL); + showText(TX_VEN4N016); + walkCrewman(OBJECT_KIRK, 0xcd, 0xc2); + _awayMission->disableInput = false; +} + +void Room::veng4TouchedHotspot0() { // Trigger door opening + if (_roomVar.veng.walkingToDoor) { + playSoundEffectIndex(SND_DOOR1); + loadActorAnim(OBJECT_DOOR, "s9r1do", DOOR_X, DOOR_Y); + } +} + +void Room::veng4WalkToDoor() { + _roomVar.veng.walkingToDoor = true; + _awayMission->disableInput = true; + walkCrewman(OBJECT_KIRK, 0x12e, 0xab); } } diff --git a/engines/startrek/text.cpp b/engines/startrek/text.cpp index e7822700db..4ad34eeb44 100644 --- a/engines/startrek/text.cpp +++ b/engines/startrek/text.cpp @@ -69,6 +69,7 @@ extern const char *const g_gameStrings[] = { "Elasi Captain", "Elasi Weapons Master", "Elasi Crewman", + "Brittany Marata", "#BRID\\BRIDU146#Nothing to report, Captain.", @@ -2979,10 +2980,48 @@ extern const char *const g_gameStrings[] = { "#VEN3\\VEN3N014#You have taken the cable.", - "#VEN4\\VEN4_016#There's nothing more I can do.", // TYPO + "#VEN4\\VEN4_001#Do what you can, Bones. I need to find out what happened here.", + "#VEN4\\VEN4_002#You always hope the instruments are wrong...that you'll find someone alive.", + "#VEN4\\VEN4_003#It wasn't the Enterprise, Marata!", + "#VEN4\\VEN4_004#Marata, what happened?", + "#VEN4\\VEN4_005#I can't believe it. That's Brittany Marata. I knew her from my Academy days. We studied alien history together.", + "#VEN4\\VEN4_006#What about the Enterprise?", + "#VEN4\\VEN4_007#He's dead, Jim. I can't bring him back.", + "#VEN4\\VEN4_008#That will accomplish nothing, Jim.", + "#VEN4\\VEN4_009#She's in bad shape, Jim. I've tried to stabilize her, but it doesn't look good.", + "#VEN4\\VEN4_010#She's in no condition to talk right now.", + "#VEN4\\VEN4_011#She's suffering from severe trauma and internal bleeding. I'll see what I can do.", + "#VEN4\\VEN4_012#That won't bring her back. She's gone.", + "#VEN4\\VEN4_013#There's nothing more I can do for her, Jim.", + "#VEN4\\VEN4_014#At least she's still alive, although just barely.", + "#VEN4\\VEN4_015#Life support must have gone down during the fight. Most of the people died from shock before the back-up systems came on line.", + "#VEN4\\VEN4_016#There's nothing more I can do.", // TYPO (in some rooms, this has "Jim..." at the start of the text, though not in VENG4 itself) "#VEN4\\VEN4_017#I believe nothing needs to be said, Captain.", + "#VEN4\\VEN4_018#An interesting hypothesis, doctor. Had Mr. Scott been present, he might have been able to verify it.", + "#VEN4\\VEN4_019#No... you won't get us...", + "#VEN4\\VEN4_020#They said it was the Enterprise...They had visual confirmation...", + "#VEN4\\VEN4_021#You killed us, Jim. We were friends for... I trusted ...", + "#VEN4\\VEN4_022#Captain, did I ever mention how much I hate hospitals?", + "#VEN4\\VEN4N000#A very concerned Doctor Leonard McCoy.", + "#VEN4\\VEN4N001#A very unhappy looking Ensign Kije.", + "#VEN4\\VEN4N002#James T. Kirk, in total confusion at the moment.", + "#VEN4\\VEN4N003#Mr. Spock, looking pensive as usual.", + "#VEN4\\VEN4N004#Seeing Brittany in this condition stirs you on to find the culprits responsible for this injustice.", + "#VEN4\\VEN4N005#The medical scanner has registered the death of Brittany Marata.", + "#VEN4\\VEN4N006#The medical scanner is monitoring the woman's condition.", + "#VEN4\\VEN4N007#The woman in this sickbed is alive, barely.", + "#VEN4\\VEN4N008#This door leads back to the corridor and turbolifts.", + "#VEN4\\VEN4N009#This door leads back to the corridor, and turbolifts 1 and 2.", "#VEN4\\VEN4N010#This is an empty hypodermic injector.", + "#VEN4\\VEN4N011#This is the Republic's sickbay. Fortunately, power is still functioning here.", + "#VEN4\\VEN4N012#This medical drill fires a microscopic phaser beam.", + "#VEN4\\VEN4N013#This monitor has recorded the death of a patient.", "#VEN4\\VEN4N014#Yet another crewman of the Republic whose life was unfairly abbreviated.", + "#VEN4\\VEN4N015#You pick up the empty hypodermic injector.", + "#VEN4\\VEN4N016#You retrieve the medical drill.", + "#VEN4\\VEN4N017#You see the dead body of Brittany. Her life was cut short and you won't stop until you find the persons responsible.", + + "#VEN4\\VEN4_017#I believe nothing needs to be said, Captain.", "#VEN6\\VEN6N007#The hypo is now filled with multipurpose oil.", diff --git a/engines/startrek/text.h b/engines/startrek/text.h index 634d000337..9cd6376f81 100644 --- a/engines/startrek/text.h +++ b/engines/startrek/text.h @@ -127,6 +127,7 @@ enum GameStringIDs { TX_SPEAKER_ELASI_CAPTAIN, TX_SPEAKER_ELASI_WEAPONS_MASTER, TX_SPEAKER_ELASI_CREWMAN, + TX_SPEAKER_BRITTANY_MARATA, TX_BRIDU146, @@ -3100,10 +3101,46 @@ enum GameStringIDs { TX_VEN3N014, + TX_VEN4_001, + TX_VEN4_002, + TX_VEN4_003, + TX_VEN4_004, + TX_VEN4_005, + TX_VEN4_006, + TX_VEN4_007, + TX_VEN4_008, + TX_VEN4_009, + TX_VEN4_010, + TX_VEN4_011, + TX_VEN4_012, + TX_VEN4_013, + TX_VEN4_014, + TX_VEN4_015, TX_VEN4_016, TX_VEN4_017, + TX_VEN4_018, // UNUSED + TX_VEN4_019, + TX_VEN4_020, + TX_VEN4_021, + TX_VEN4_022, + TX_VEN4N000, + TX_VEN4N001, + TX_VEN4N002, + TX_VEN4N003, + TX_VEN4N004, + TX_VEN4N005, + TX_VEN4N006, + TX_VEN4N007, + TX_VEN4N008, + TX_VEN4N009, TX_VEN4N010, + TX_VEN4N011, + TX_VEN4N012, + TX_VEN4N013, TX_VEN4N014, + TX_VEN4N015, + TX_VEN4N016, + TX_VEN4N017, TX_VEN6N007, |