diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/startrek/room.cpp | 28 | ||||
-rw-r--r-- | engines/startrek/room.h | 6 | ||||
-rw-r--r-- | engines/startrek/rooms/demon0.cpp | 435 | ||||
-rw-r--r-- | engines/startrek/rooms/demon1.cpp | 381 | ||||
-rw-r--r-- | engines/startrek/rooms/demon2.cpp | 245 | ||||
-rw-r--r-- | engines/startrek/rooms/demon3.cpp | 422 | ||||
-rw-r--r-- | engines/startrek/text.h | 471 |
7 files changed, 774 insertions, 1214 deletions
diff --git a/engines/startrek/room.cpp b/engines/startrek/room.cpp index 1de12153f1..d44ad9632a 100644 --- a/engines/startrek/room.cpp +++ b/engines/startrek/room.cpp @@ -160,8 +160,6 @@ void Room::loadActorAnim2(int actorIndex, Common::String anim, int16 x, int16 y, loadActorAnim(actorIndex, anim, x, y, finishedAnimActionParam); } -// TODO: replace "rdfOffset" with a pointer, so we no longer read from RDF files? (This -// may be necessary to support other platforms; can't leave offsets hardcoded.) int Room::showRoomSpecificText(const char **array) { Common::String speaker; byte textColor; @@ -191,6 +189,32 @@ int Room::showRoomSpecificText(const char **array) { return _vm->showText(&StarTrekEngine::readTextFromArray, (uintptr)array, 20, 20, textColor, true, false, false); } +int Room::showText(const int *textIDs) { + int numIDs = 0; + while (textIDs[numIDs] != TX_BLANK) + numIDs++; + + const char **text = (const char **)malloc(sizeof(const char *) * (numIDs + 1)); + for (int i = 0; i <= numIDs; i++) + text[i] = g_gameStrings[textIDs[i]]; + int retval = showRoomSpecificText(text); + free(text); + + return retval; +} + +int Room::showText(int speaker, int text) { + int textIDs[3]; + textIDs[0] = speaker; + textIDs[1] = text; + textIDs[2] = TX_BLANK; + showText(textIDs); +} + +int Room::showText(int text) { + showText(TX_NULL, text); +} + void Room::giveItem(int item) { _vm->_itemList[item - ITEMS_START].have = true; } diff --git a/engines/startrek/room.h b/engines/startrek/room.h index 4f0e49b828..12468b54ee 100644 --- a/engines/startrek/room.h +++ b/engines/startrek/room.h @@ -28,6 +28,7 @@ #include "common/str.h" #include "startrek/startrek.h" +#include "startrek/text.h" using Common::SharedPtr; @@ -102,7 +103,10 @@ private: void loadActorAnim(int actorIndex, Common::String anim, int16 x, int16 y, uint16 field66); // Cmd 0x00 void loadActorStandAnim(int actorIndex); // Cmd 0x01 void loadActorAnim2(int actorIndex, Common::String anim, int16 x, int16 y, uint16 field66);// Cmd 0x02 - int showRoomSpecificText(const char **textAddr); // Cmd 0x03 + int showRoomSpecificText(const char **textAddr); // (Deprecated, use function below) // Cmd 0x03 + int showText(const int *text); // Cmd 0x03 + int showText(int speaker, int text); // Cmd 0x03 + int showText(int text); // Cmd 0x03 void giveItem(int item); // Cmd 0x04 void loadRoomIndex(int roomIndex, int spawnIndex); // Cmd 0x06 void walkCrewman(int actorIndex, int16 destX, int16 destY, uint16 finishedAnimActionParam);// Cmd 0x08 diff --git a/engines/startrek/rooms/demon0.cpp b/engines/startrek/rooms/demon0.cpp index 529bf746d2..397a3eb120 100644 --- a/engines/startrek/rooms/demon0.cpp +++ b/engines/startrek/rooms/demon0.cpp @@ -43,26 +43,14 @@ void Room::demon0Tick60() { } void Room::demon0Tick100() { - const char *text[] = { - "Prel. Angiven", - "#DEM0\\DEM0_036#This is so much better, gentlefolk. We are honored at your presence and hope you will find peace here in our haven.", - "" - }; - - showRoomSpecificText(text); + showText(TX_SPEAKER_ANGIVEN, TX_DEM0_036); } void Room::demon0Tick140() { - const char *text[] = { - SPEAKER_MCCOY, - "#DEM0\\DEM0_016#Captain, the flora on this planet is very interesting. I wonder how useful it may be for medicinal purposes.", - "" - }; - if (_vm->_awayMission.demon.mccoyMentionedFlora) return; - showRoomSpecificText(text); + showText(TX_SPEAKER_MCCOY, TX_DEM0_016); _vm->_awayMission.demon.mccoyMentionedFlora = true; } @@ -113,55 +101,54 @@ void Room::demon0ReachedTopDoor() { } void Room::demon0TalkToPrelate() { - const char *options1[] = { - SPEAKER_KIRK, - "#DEM0\\DEM0_006#I'm Captain James T. Kirk of the U.S.S. Enterprise. We have received word that alien lifeforms are creating problems at your mining facilities at Idyll Mountain. Tell me more.", - "#DEM0\\DEM0_008#Most High Prelate Angiven, I am honored to meet you. I consider it my divine duty to assist you in any possible way with the spawn of the devil.", - "#DEM0\\DEM0_003#Been seeing ghosts and bogeymen eh? I find that a little hard to believe.", - "" - }; - const char *firstResponse0[] = { - "Prel. Angiven", - "#DEM0\\DEM0_038#Certainly, Captain Kirk. Not aliens, per se -- we have encountered what we believe are demons at Idyll Mountain, creatures surely emerging from the very gates of Hell. Our God would not test us thus without reason, so we believe your might and insight are our God's method to help us discover what is going on.", - "" - }; - const char *firstResponse1[] = { - "Prel. Angiven", - "#DEM0\\DEM0_032#Captain Kirk. I had no idea we were blessed with one of our order in the ranks of Starfleet. We believe we have located the very Gates of Hell below Idyll Mountain.", - "" - }; - const char *options2[] = { - SPEAKER_KIRK, - "#DEM0\\DEM0_002#Aside from seeing demons, has any hard data been collected? Any evidence I could see?", - "#DEM0\\DEM0_005#Demons? Gates of Hell? This is the 23rd Century!", - "" - }; - const char *secondResponse[] = { - "Prel. Angiven", - "#DEM0\\DEM0_031#A skeptic would consider everything merely anecdotal or unproven. My people will gladly tell you their own stories, so you need not hear it secondhand through me.", - "" - }; - const char *options3[] = { - SPEAKER_KIRK, - "#DEM0\\DEM0_010#What can you tell me about the mine itself?", - "#DEM0\\DEM0_012#You're wasting the time of a starship capable of destroying this planet with campfire stories? No wonder you were dumped out here in the middle of nowhere.", - "" - }; - const char *thirdResponse[] = { - "Prel. Angiven", - "#DEM0\\DEM0_035#The area is exceptionally stable tectonically, and easy for our machinery to work in, praise God. We've mined for hafnium and a variety of useful trace elements. The deeper we dig, however, the more anomalous the variety of minerals seems to be. Our Ignaciate, Brother Stephen, has his own theories about why this might be. Either way, the anomalies inspired Brother Kandrey to conduct studies inside the mine. Yesterday, he reported discovering a strange door -- a gate to Hell, surely, for the demons caused a cave-in immediately. Kandrey was trapped, unconscious, and the demons prevent us from rescuing him. We can only hope he is still alive.", - "" - }; - - const char *badConclusion[] = { - "Prel. Angiven", - "#DEM0\\DEM0_037#We need your help, Kirk. You may have no respect for our beliefs, but I hope you will look beyond that. Godspeed.", - "" - }; - const char *goodConclusion[] = { - "Prel. Angiven", - "#DEM0\\DEM0_034#Thank you for your courtesy, Kirk. May you receive the guidance and protection of our God as you complete this divine mission.", - "" + const int options1[] = { + TX_SPEAKER_KIRK, + TX_DEM0_006, + TX_DEM0_008, + TX_DEM0_003, + TX_BLANK + }; + const int firstResponse0[] = { + TX_SPEAKER_ANGIVEN, + TX_DEM0_038, + TX_BLANK + }; + const int firstResponse1[] = { + TX_SPEAKER_ANGIVEN, + TX_DEM0_032, + TX_BLANK + }; + const int options2[] = { + TX_SPEAKER_KIRK, + TX_DEM0_002, + TX_DEM0_005, + TX_BLANK + }; + const int secondResponse[] = { + TX_SPEAKER_ANGIVEN, + TX_DEM0_031, + TX_BLANK + }; + const int options3[] = { + TX_SPEAKER_KIRK, + TX_DEM0_010, + TX_DEM0_012, + TX_BLANK + }; + const int thirdResponse[] = { + TX_SPEAKER_ANGIVEN, + TX_DEM0_035, + TX_BLANK + }; + const int badConclusion[] = { + TX_SPEAKER_ANGIVEN, + TX_DEM0_037, + TX_BLANK + }; + const int goodConclusion[] = { + TX_SPEAKER_ANGIVEN, + TX_DEM0_034, + TX_BLANK }; if (_vm->_awayMission.demon.talkedToPrelate) @@ -170,9 +157,9 @@ void Room::demon0TalkToPrelate() { _vm->_awayMission.missionScore += 3; _vm->_awayMission.demon.talkedToPrelate = true; - const char **response = nullptr; + const int *response = nullptr; - switch (showRoomSpecificText(options1)) { + switch (showText(options1)) { case 0: response = firstResponse0; break; @@ -185,278 +172,114 @@ void Room::demon0TalkToPrelate() { } if (response != nullptr) - showRoomSpecificText(response); + showText(response); - if (showRoomSpecificText(options2) == 1) + if (showText(options2) == 1) demon0BadResponse(); - showRoomSpecificText(secondResponse); + showText(secondResponse); - if (showRoomSpecificText(options3) == 1) + if (showText(options3) == 1) demon0BadResponse(); - showRoomSpecificText(thirdResponse); + showText(thirdResponse); if (_vm->_awayMission.demon.wasRudeToPrelate) - showRoomSpecificText(badConclusion); + showText(badConclusion); else - showRoomSpecificText(goodConclusion); + showText(goodConclusion); } void Room::demon0LookAtPrelate() { - const char *text[] = { - nullptr, - "#DEM0\\DEM0N004#High Prelate Angiven waits patiently for you to decide what you will do next.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM0N004); } void Room::demon0UsePhaserOnSnow() { // BUG: doesn't check if redshirt is dead. - const char *text[] = { - SPEAKER_EVERTS, - "#DEM0\\DEM0_039#Aw, Captain, please don't melt the snow. I've never seen it before.", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_EVERTS, TX_DEM0_039); } void Room::demon0UsePhaserOnSign() { - const char *text[] = { - SPEAKER_MCCOY, - "#DEM0\\DEM0_017#Quite the vandal aren't we, Jim?", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_MCCOY, TX_DEM0_017); } void Room::demon0UsePhaserOnShelter() { - const char *text1[] = { - SPEAKER_MCCOY, - "#DEM0\\DEM0_015#Burning down their house is not the best way to gain their confidence Jim!", - "" - }; - const char *text2[] = { - SPEAKER_SPOCK, - "#DEM0\\DEM0_013#Captain, Doctor McCoy is correct.", - "" - }; - const char *text3[] = { - SPEAKER_EVERTS, - "#DEM0\\DEM0_040#Is he always this trigger happy on ground missions?", - "" - }; - showRoomSpecificText(text1); - showRoomSpecificText(text2); + showText(TX_SPEAKER_MCCOY, TX_DEM0_015); + showText(TX_SPEAKER_SPOCK, TX_DEM0_013); if (!_vm->_awayMission.redshirtDead) - showRoomSpecificText(text3); + showText(TX_SPEAKER_EVERTS, TX_DEM0_040); } void Room::demon0UsePhaserOnPrelate() { - const char *text[] = { - SPEAKER_MCCOY, - "#DEM0\\DEM0_020#Jim! Are you out of your mind?", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_MCCOY, TX_DEM0_020); } void Room::demon0LookAtSign() { - const char *text[] = { - "Sign", - "All mining equipment use this road.", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_SIGN, TX_DEM0C001); } void Room::demon0LookAtTrees() { - const char *text[] = { - nullptr, - "#DEM0\\DEM0N006#On the other side of the trees is Idyll Mountain. A tall, forbidding place. You have a vague feeling of danger.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM0N006); } void Room::demon0LookAtSnow() { - const char *text[] = { - nullptr, - "#DEM0\\DEM0N007#Remnants of a recent snowfall cover the ground.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM0N007); } void Room::demon0LookAnywhere() { - const char *text[] = { - nullptr, - "#DEM0\\DEM0N000#A beautiful, snow covered scene with a path leading off to Mount Idyll.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM0N000); } void Room::demon0LookAtBushes() { - const char *text[] = { - nullptr, - "#DEM0\\DEM0N010#Various bushes and shrubs grow along the edge of the forest.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM0N010); } void Room::demon0LookAtKirk() { - const char *text[] = { - nullptr, - "#DEM0\\DEM0N005#James Tiberius Kirk, Captain of the Enterprise. He's always happy to run an errand of mercy.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM0N005); } void Room::demon0LookAtMcCoy() { - const char *text[] = { - nullptr, - "#DEM0\\DEM0N002#Dr. Leonard McCoy, the finest doctor in Starfleet, wishes that he were on a warmer planet.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM0N002); } void Room::demon0LookAtRedShirt() { - const char *text[] = { - nullptr, - "#DEM0\\DEM0N003#Ensign Everts, who has never been this close to snow before in his life, gazes with child-like fascination at the ground.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM0N003); } void Room::demon0LookAtSpock() { - const char *text[] = { - nullptr, - "#DEM0\\DEM0N009#Spock raises an eyebrow.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM0N009); } void Room::demon0LookAtShelter() { - const char *text[] = { - nullptr, - "#DEM0\\DEM0N001#A quickly constructed spartan shelter, primarily used by fledgling colonies.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM0N001); } void Room::demon0TalkToKirk() { - const char *text1[] = { - SPEAKER_KIRK, - "#DEM0\\DEM0_009#This planet's as beautiful as everyone says it is.", - "" - }; - const char *text2[] = { - SPEAKER_MCCOY, - "#DEM0\\DEM0_027#The trees. The fresh air. The freezing cold...", - "" - }; - const char *text3[] = { - SPEAKER_KIRK, - "#DEM0\\DEM0_004#C'mon Bones, the cold will improve your circulation.", - "" - }; - const char *text4[] = { - SPEAKER_MCCOY, - "#DEM0\\DEM0_024#Some people get too much circulation!", - "" - }; - - showRoomSpecificText(text1); - showRoomSpecificText(text2); - showRoomSpecificText(text3); - showRoomSpecificText(text4); + showText(TX_SPEAKER_KIRK, TX_DEM0_009); + showText(TX_SPEAKER_MCCOY, TX_DEM0_027); + showText(TX_SPEAKER_KIRK, TX_DEM0_004); + showText(TX_SPEAKER_MCCOY, TX_DEM0_024); } void Room::demon0TalkToRedshirt() { - const char *text1[] = { - SPEAKER_EVERTS, - "#DEM0\\DEM0_043#I've never seen snow like this before. This is great!", - "" - }; - const char *text2[] = { - SPEAKER_MCCOY, - "#DEM0\\DEM0_026#You mean you've never built a snowman, ensign?", - "" - }; - const char *text3[] = { - SPEAKER_EVERTS, - "#DEM0\\DEM0_042#I've never even thrown a snowball. Do you think anyone would mind?", - "" - }; - const char *text4[] = { - SPEAKER_MCCOY, - "#DEM0\\DEM0_025#Well...", - "" - }; - const char *text5[] = { - SPEAKER_KIRK, - "#DEM0\\DEM0_007#Later Ensign. We have work to do.", - "" - }; - const char *text6[] = { - SPEAKER_EVERTS, - "#DEM0\\DEM0_044#Of course, sir.", - "" - }; - - showRoomSpecificText(text1); - showRoomSpecificText(text2); - showRoomSpecificText(text3); - showRoomSpecificText(text4); - showRoomSpecificText(text5); - showRoomSpecificText(text6); + showText(TX_SPEAKER_EVERTS, TX_DEM0_043); + showText(TX_SPEAKER_MCCOY, TX_DEM0_026); + showText(TX_SPEAKER_EVERTS, TX_DEM0_042); + showText(TX_SPEAKER_MCCOY, TX_DEM0_025); + showText(TX_SPEAKER_KIRK, TX_DEM0_007); + showText(TX_SPEAKER_EVERTS, TX_DEM0_044); } void Room::demon0TalkToMcCoy() { if (_vm->_awayMission.demon.talkedToPrelate) { - const char *text1[] = { - SPEAKER_KIRK, - "#DEM0\\DEM0_011#You look rather cold, Bones.", - "" - }; - const char *text2[] = { - SPEAKER_MCCOY, - "#DEM0\\DEM0_023#I'm not cold, I'm freezing! And that damn transporter just had to set me down in the middle of a snow drift!", - "" - }; - const char *text3[] = { - SPEAKER_SPOCK, - "#DEM0\\DEM0_029#A centimeter of snow does not technically constitute a drift, Doctor.", - "" - }; - const char *text4[] = { - SPEAKER_EVERTS, - "#DEM0\\DEM0_041#And doctors say that patients complain too much!", - "" - }; - - showRoomSpecificText(text1); - showRoomSpecificText(text2); - showRoomSpecificText(text3); + showText(TX_SPEAKER_KIRK, TX_DEM0_011); + showText(TX_SPEAKER_MCCOY, TX_DEM0_023); + showText(TX_SPEAKER_SPOCK, TX_DEM0_029); if (!_vm->_awayMission.redshirtDead) - showRoomSpecificText(text4); + showText(TX_SPEAKER_EVERTS, TX_DEM0_041); } else { - const char *text1[] = { - SPEAKER_MCCOY, - "#DEM0\\DEM0_019#I don't know if the problem is real, the result of a new illness, or mass hysteria. But at the very least, there's an injured miner who needs my help.", - "" - }; - - showRoomSpecificText(text1); + showText(TX_SPEAKER_MCCOY, TX_DEM0_019); if (!_vm->_awayMission.demon.askedPrelateAboutSightings) { demon0AskPrelateAboutSightings(); } @@ -464,36 +287,15 @@ void Room::demon0TalkToMcCoy() { } void Room::demon0TalkToSpock() { - const char *text1[] = { - SPEAKER_SPOCK, - "#DEM0\\DEM0_014#Captain, demons and supernatural creatures are, almost by definition, illogical. Yet it is evident these people believe what they have seen. Barring illness or mass hysteria, I agree that a real problem seems to exist.", - "" - }; + showText(TX_SPEAKER_SPOCK, TX_DEM0_014); - if (_vm->_awayMission.demon.talkedToPrelate) { - showRoomSpecificText(text1); - } - else { - showRoomSpecificText(text1); - if (!_vm->_awayMission.demon.askedPrelateAboutSightings) - demon0AskPrelateAboutSightings(); - } + if (!_vm->_awayMission.demon.talkedToPrelate && !_vm->_awayMission.demon.askedPrelateAboutSightings) + demon0AskPrelateAboutSightings(); } void Room::demon0AskPrelateAboutSightings() { - const char *text2[] = { - SPEAKER_KIRK, - "#DEM0\\DEM0_001#Doctor, you need to investigate the possibility of disease, mental or physical, among these people, before we go chasing up the mountains. Prelate Angiven, may we see those who have encountered the demons?", - "" - }; - const char *text3[] = { - "Prel. Angiven", - "#DEM0\\DEM0_030#They are already gathered in the chapel, and will cooperate in any way with you. First door on my right.", - "" - }; - - showRoomSpecificText(text2); - showRoomSpecificText(text3); + showText(TX_SPEAKER_KIRK, TX_DEM0_001); + showText(TX_SPEAKER_ANGIVEN, TX_DEM0_030); _vm->_awayMission.demon.askedPrelateAboutSightings = true; } @@ -501,65 +303,34 @@ void Room::demon0AskPrelateAboutSightings() { void Room::demon0UseSTricorderAnywhere() { loadActorAnim2(OBJECT_SPOCK, "sscans", -1, -1, 0); playSoundEffectIndex(0x04); - - const char *text[] = { - SPEAKER_SPOCK, - "#DEM0\\DEM0_028#Captain, reading the rocks in this area, I find that this locality may have been disturbed in the distant past. Recent disturbances created by the colonists' construction and mining prevent me from discovering anything further.", - "" - }; - - showRoomSpecificText(text); + showText(TX_SPEAKER_SPOCK, TX_DEM0_028); } void Room::demon0UseMTricorderAnywhere() { loadActorAnim2(OBJECT_MCCOY, "mscans", -1, -1, 0); playSoundEffectIndex(0x04); - - const char *text[] = { - SPEAKER_MCCOY, - "#DEM0\\DEM0_021#Jim, I am not picking up any unusual life here, just native lifeforms and the settlers. The colonists are all human, except for the one Tellarite. If there are demons here, they don't register on my tricorder.", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_MCCOY, TX_DEM0_021); } void Room::demon0UseMTricorderOnPrelate() { loadActorAnim2(OBJECT_MCCOY, "mscans", -1, -1, 0); playSoundEffectIndex(0x04); - if (_vm->_awayMission.demon.talkedToPrelate) { - const char *text[] = { - SPEAKER_MCCOY, - "#DEM0\\DEM0_018#His blood pressure's up a bit, but he believes he's telling the truth.", - "" - }; - showRoomSpecificText(text); - } - else { - const char *text[] = { - SPEAKER_MCCOY, - "#DEM0\\DEM0_022#The man's in perfect health.", - "" - }; - showRoomSpecificText(text); - } + if (_vm->_awayMission.demon.talkedToPrelate) + showText(TX_SPEAKER_MCCOY, TX_DEM0_018); + else + showText(TX_SPEAKER_MCCOY, TX_DEM0_022); } // Helper functions void Room::demon0BadResponse() { - const char *text[] = { - "Prel. Angiven", - "#DEM0\\DEM0_033#Starfleet recognizes our freedom to worship and believe as we see fit, Captain. I am surprised that you do not share that feeling. Rest assured that Starfleet Command will be informed of your rudeness.", - "" - }; - if (_vm->_awayMission.demon.wasRudeToPrelate) return; _vm->_awayMission.missionScore -= 3; _vm->_awayMission.demon.wasRudeToPrelate = true; - showRoomSpecificText(text); + showText(TX_SPEAKER_ANGIVEN, TX_DEM0_033); } } diff --git a/engines/startrek/rooms/demon1.cpp b/engines/startrek/rooms/demon1.cpp index 2830ff9279..fb5a66e1fc 100644 --- a/engines/startrek/rooms/demon1.cpp +++ b/engines/startrek/rooms/demon1.cpp @@ -204,25 +204,13 @@ void Room::demon1KlingonFinishedAimingWeapon() { } void Room::demon1KirkShot() { - const char *text[] = { - nullptr, - "#DEM1\\DEM1N000#Captain Kirk is fatally shot by a Klingon, game over.", - "" - }; - - showRoomSpecificText(text); + showText(TX_DEM1N000); showGameOverMenu(); } void Room::demon1UsePhaserOnAnything() { - const char *text[] = { - SPEAKER_MCCOY, - "#DEM1\\DEM1_011#The fire fight is over, Jim. I think you can put that away now.", - "" - }; - if (_roomVar.demon1.numKlingonsKilled == 3) - showRoomSpecificText(text); + showText(TX_SPEAKER_MCCOY, TX_DEM1_011); } void Room::demon1UsePhaserOnKlingon1() { @@ -256,35 +244,20 @@ void Room::demon1ShootKlingon1() { } void Room::demon1KlingonDropsHand() { - const char *text[] = { - nullptr, - "#DEM1\\DEM1N020#You see a small explosion, and the Klingon's hand falls to the ground with a dull thud.", - "" - }; loadActorAnim(13, "klghnd", 0x10b, 0x8e, 0); _vm->_awayMission.transitioningIntoRoom = 0; _vm->_awayMission.timers[1] = 0; - showRoomSpecificText(text); + showText(TX_DEM1N020); if (_vm->_awayMission.crewDownBitset & (1 << OBJECT_REDSHIRT)) return; - const char *rshirtText[] = { - SPEAKER_EVERTS, - "#DEM1\\DEM1_025#I guess they don't make Klingons like they used to, Sir.", - "" - }; - showRoomSpecificText(rshirtText); + showText(TX_SPEAKER_EVERTS, TX_DEM1_025); if (_roomVar.demon1.numKlingonsKilled == 3) return; - const char *klingonText[] = { - "Klingon", - "#DEM1\\DEM1_F23#Federation Scum!", - "" - }; - showRoomSpecificText(klingonText); + showText(TX_SPEAKER_KLINGON, TX_DEM1_F23); _vm->_awayMission.timers[1] = 1; } @@ -361,116 +334,50 @@ void Room::demon1Timer5Expired() { if (_vm->_awayMission.crewDownBitset != 0) return; - const char *text1[] = { - "Lt. Uhura", - "#DEM1\\DEM1U077#Captain we registered Phaser fire and an unknown energy beam. Is everyone OK?", - "" - }; - const char *text2[] = { - SPEAKER_KIRK, - "#DEM1\\DEM1_003#We're fine. Did you register any Disruptor fire?", - "" - }; - const char *text3[] = { - "Lt. Uhura", - "#DEM1\\DEM1U078#No, Captain. Why, are Klingons down there?", - "" - }; - const char *text4[] = { - SPEAKER_KIRK, - "#DEM1\\DEM1_002#No just an idea, Kirk out.", - "" - }; - const char *text5[] = { - SPEAKER_SPOCK, - "#DEM1\\DEM1_020#Fascinating. I begin to suspect that we have stumbled upon something that the colonists would never have uncovered.", - "" - }; - const char *text6[] = { - SPEAKER_KIRK, - "#DEM1\\DEM1_004#What is it, Spock?", - "" - }; - const char *text7[] = { - SPEAKER_SPOCK, - "#DEM1\\DEM1_021#I wish to gather further data before making a definite conclusion, Captain.", - "" - }; - - showRoomSpecificText(text1); - showRoomSpecificText(text2); - showRoomSpecificText(text3); - showRoomSpecificText(text4); - showRoomSpecificText(text5); - showRoomSpecificText(text6); - showRoomSpecificText(text7); + showText(TX_SPEAKER_UHURA, TX_DEM1U077); + showText(TX_SPEAKER_KIRK, TX_DEM1_003); + showText(TX_SPEAKER_UHURA, TX_DEM1U078); + showText(TX_SPEAKER_KIRK, TX_DEM1_002); + showText(TX_SPEAKER_SPOCK, TX_DEM1_020); + showText(TX_SPEAKER_KIRK, TX_DEM1_004); + showText(TX_SPEAKER_SPOCK, TX_DEM1_021); } void Room::demon1UseMTricorderOnKlingon() { - const char *text[] = { - SPEAKER_MCCOY, - "#DEM1\\DEM1_012#This is definitely not a real klingon Jim.", - "" - }; loadActorAnim2(OBJECT_MCCOY, "mscann", -1, -1, 0); playSoundEffectIndex(0x04); - showRoomSpecificText(text); + showText(TX_SPEAKER_MCCOY, TX_DEM1_012); } void Room::demon1UseSTricorderOnTulips() { - const char *text[] = { - SPEAKER_SPOCK, - "#DEM1\\DEM1_007#Khytellian tulips are a perennial flower that survive in almost any climate.", - "" - }; loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0); playSoundEffectIndex(0x04); - showRoomSpecificText(text); + showText(TX_SPEAKER_SPOCK, TX_DEM1_007); } void Room::demon1UseSTricorderOnPods() { - const char *text[] = { - SPEAKER_SPOCK, - "#DEM1\\DEM1_008#The Brandzite pod is similar to terran milkweed except that the silk pods are in bright iridecent colors.", - "" - }; loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0); playSoundEffectIndex(0x04); - showRoomSpecificText(text); + showText(TX_SPEAKER_SPOCK, TX_DEM1_008); } void Room::demon1UseSTricorderOnCattails() { - const char *text[] = { - SPEAKER_SPOCK, - "#DEM1\\DEM1_005#Doctis Cattails are similar to their terran name sake except that they are known to cause hives if in contact with flesh for any amount of time.", - "" - }; loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0); playSoundEffectIndex(0x04); - showRoomSpecificText(text); + showText(TX_SPEAKER_SPOCK, TX_DEM1_005); } void Room::demon1UseSTricorderOnFerns() { - const char *text[] = { - SPEAKER_SPOCK, - "#DEM1\\DEM1_006#Gindorian ferns are regarded as an intergalactic weed, Captain.", - "" - }; loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0); playSoundEffectIndex(0x04); - showRoomSpecificText(text); + showText(TX_SPEAKER_SPOCK, TX_DEM1_006); } void Room::demon1UseSTricorderOnHand() { - const char *text[] = { - SPEAKER_SPOCK, - "#DEM1\\DEM1_017#This is a detached hand with some kind of circuitry in the palm, Captain.", - "" - }; loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0); playSoundEffectIndex(0x04); - showRoomSpecificText(text); + showText(TX_SPEAKER_SPOCK, TX_DEM1_017); } void Room::demon1UseSTricorderOnKlingon1() { @@ -479,34 +386,18 @@ void Room::demon1UseSTricorderOnKlingon1() { playSoundEffectIndex(0x04); if (_roomVar.demon1.numKlingonsKilled == 3 && !_vm->_awayMission.demon.tookKlingonHand && _rdfData[0xcf] != 1) { - const char *text[] = { - SPEAKER_SPOCK, - "#DEM1\\DEM1_018#This is not a Klingon, Captain, not a real one. It is an organic construct -- an android-like robot. It looks like a Klingon, but the appearance is entirely superficial. There is something different about this particular construct. Come here, Captain, look at the hand.It seems to have been separated from the body. There is a wiring circuit in the middle of the palm.", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_SPOCK, TX_DEM1_018); _rdfData[0xcf] = 1; } else { - const char *text[] = { - SPEAKER_SPOCK, - "#DEM1\\DEM1_019#This is not a Klingon, Captain, not a real one. It is an organic construct -- an android-like robot. It looks like a Klingon, but the appearance is entirely superficial.", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_SPOCK, TX_DEM1_019); } } void Room::demon1UseSTricorderOnKlingon2Or3() { loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0); playSoundEffectIndex(0x04); - - const char *text[] = { - SPEAKER_SPOCK, - "#DEM1\\DEM1_019#This is not a Klingon, Captain, not a real one. It is an organic construct -- an android-like robot. It looks like a Klingon, but the appearance is entirely superficial.", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_SPOCK, TX_DEM1_019); } void Room::demon1UseMTricorderOnKirk() { @@ -525,14 +416,9 @@ void Room::demon1UseMTricorderOnRedshirt() { } void Room::demon1UseMTricorderOnCrewman() { - const char *text[] = { - SPEAKER_MCCOY, - "#DEM1\\DEM1_009#He's only stunned. He'll be back up in a few seconds.", - "" - }; loadActorAnim2(OBJECT_MCCOY, "mscann", -1, -1, 0); playSoundEffectIndex(0x04); - showRoomSpecificText(text); + showText(TX_SPEAKER_MCCOY, TX_DEM1_009); } void Room::demon1GetHand() { @@ -554,231 +440,98 @@ void Room::demon1PickedUpHand() { // Timer 4 expired void Room::demon1FinishedGettingHand() { - const char *text1[] = { - nullptr, - "#DEM1\\DEM1N005#You already took the hand from the Klingon.", - "" - }; - const char *text2[] = { - nullptr, - "#DEM1\\DEM1N007#You take the Klingon's detached hand.", - "" - }; if (_vm->_awayMission.demon.tookKlingonHand) - showRoomSpecificText(text1); + showText(TX_DEM1N005); else { _vm->_awayMission.demon.tookKlingonHand = true; giveItem(OBJECT_IHAND); - showRoomSpecificText(text2); + showText(TX_DEM1N007); } } void Room::demon1LookAtKlingon() { - const char *text[] = { - nullptr, - "#DEM1\\DEM1N004#They look like Klingons.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM1N004); } void Room::demon1LookAtCattails() { - const char *text[] = { - nullptr, - "#DEM1\\DEM1N018#These are very beautiful Doctis Cattails.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM1N018); } void Room::demon1LookAtTulips() { - const char *text[] = { - nullptr, - "M1\\DEM1N010#A large patch of Khytellian Tulips.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM1N010); } void Room::demon1LookAtPods() { - const char *text[] = { - nullptr, - "#DEM1\\DEM1N019#These Brandzite Pods add a nice touch to the local flora.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM1N019); } void Room::demon1LookAtFerns() { - const char *text[] = { - nullptr, - "#DEM1\\DEM1N009#A Gindorian Fern.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM1N009); } void Room::demon1LookAtStream() { - const char *text[] = { - nullptr, - "#DEM1\\DEM1N011#A small stream flows down towards the forest.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM1N011); } void Room::demon1LookAtMine() { - const char *text[] = { - nullptr, - "#DEM1\\DEM1N021#You see the mine entrance ahead.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM1N021); } void Room::demon1LookAtMountain() { - const char *text[] = { - nullptr, - "#DEM1\\DEM1N016#Mt. Idyll rises above you.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM1N016); } void Room::demon1LookAtHand() { - const char *text[] = { - nullptr, - "#DEM1\\DEM1N023#It's the Klingon's detached hand!", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM1N023); } void Room::demon1LookAnywhere() { - const char *text[] = { - nullptr, - "#DEM1\\DEM1N017#The path is surrounded by some beautiful shrubbery.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM1N017); } void Room::demon1LookAtKirk() { - if (_vm->_awayMission.crewDownBitset & (1 << OBJECT_KIRK)) { - const char *text[] = { - nullptr, - "#DEM1\\DEM1N012#Captain Kirk is unconscious.", - "" - }; - showRoomSpecificText(text); - } - else { - const char *text[] = { - nullptr, - "#DEM1\\DEM1N003#James Kirk, filled with a premonition of more dangers yet to come.", - "" - }; - showRoomSpecificText(text); - } + if (_vm->_awayMission.crewDownBitset & (1 << OBJECT_KIRK)) + showText(TX_DEM1N012); + else + showText(TX_DEM1N003); } void Room::demon1LookAtSpock() { - if (_vm->_awayMission.crewDownBitset & (1 << OBJECT_SPOCK)) { - const char *text[] = { - nullptr, - "#DEM1\\DEM1N015#Mr. Spock is unconscious.", - "" - }; - showRoomSpecificText(text); - } - else { - const char *text[] = { - nullptr, - "#DEM1\\DEM1N008#Your Vulcan science officer seems to be lost in thought, but remains alert.", - "" - }; - showRoomSpecificText(text); - } + if (_vm->_awayMission.crewDownBitset & (1 << OBJECT_SPOCK)) + showText(TX_DEM1N015); + else + showText(TX_DEM1N008); } void Room::demon1LookAtMcCoy() { - if (_vm->_awayMission.crewDownBitset & (1 << OBJECT_MCCOY)) { - const char *text[] = { - nullptr, - "#DEM1\\DEM1N013#Dr. McCoy is unconscious.", - "" - }; - showRoomSpecificText(text); - } - else { - const char *text[] = { - nullptr, - "#DEM1\\DEM1N001#Dr. McCoy, still hoping the cold winds that whip around Mount Idyll will soon die down.", - "" - }; - showRoomSpecificText(text); - } + if (_vm->_awayMission.crewDownBitset & (1 << OBJECT_MCCOY)) + showText(TX_DEM1N013); + else + showText(TX_DEM1N001); } void Room::demon1LookAtRedshirt() { - if (_vm->_awayMission.crewDownBitset & (1 << OBJECT_REDSHIRT)) { - const char *text[] = { - nullptr, - "#DEM1\\DEM1N014#Ensign Everts is unconscious.", - "" - }; - showRoomSpecificText(text); - } - else { - const char *text[] = { - nullptr, - "#DEM1\\DEM1N002#Ensign Everts seems to be rattled by the attack of the Klingons.", - "" - }; - showRoomSpecificText(text); - } + if (_vm->_awayMission.crewDownBitset & (1 << OBJECT_REDSHIRT)) + showText(TX_DEM1N014); + else + showText(TX_DEM1N002); } void Room::demon1TalkToKirk() { - const char *text[] = { - SPEAKER_KIRK, - "#DEM1\\DEM1_001#We were caught flat footed there. I don't want any more surprises to catch us off guard.", - "" - }; if (_vm->_awayMission.crewDownBitset & (1 << OBJECT_KIRK)) demon1TalkToUnconsciousCrewman(); else if (_roomVar.demon1.numKlingonsKilled == 3) - showRoomSpecificText(text); + showText(TX_SPEAKER_KIRK, TX_DEM1_001); } void Room::demon1TalkToSpock() { if (_vm->_awayMission.crewDownBitset & (1 << OBJECT_SPOCK)) demon1TalkToUnconsciousCrewman(); else { - const char *text1[] = { - SPEAKER_SPOCK, - "#DEM1\\DEM1_022#Captain, I detect a recent avalanche, approximately 6.2 kilometers away, that occurred within the last three days. The mountain may be quite dangerous.", - "" - }; - const char *text2[] = { - SPEAKER_MCCOY, - "#DEM1\\DEM1_013#Demons, Klingons, avalanches... What's next, the Wicked Witch of the West?", - "" - }; - const char *text3[] = { - SPEAKER_SPOCK, - "#DEM1\\DEM1_024#That is not logical, doctor.", - "" - }; - const char *text4[] = { - SPEAKER_MCCOY, - "#DEM1\\DEM1_014#It wasn't supposed to be logical, you green blooded Vulcan! Why does everything have to be so damned logical?", - "" - }; - showRoomSpecificText(text1); - showRoomSpecificText(text2); - showRoomSpecificText(text3); - showRoomSpecificText(text4); + showText(TX_SPEAKER_SPOCK, TX_DEM1_022); + showText(TX_SPEAKER_MCCOY, TX_DEM1_013); + showText(TX_SPEAKER_SPOCK, TX_DEM1_024); + showText(TX_SPEAKER_MCCOY, TX_DEM1_014); } } @@ -786,32 +539,16 @@ void Room::demon1TalkToMcCoy() { if (_vm->_awayMission.crewDownBitset & (1 << OBJECT_MCCOY)) demon1TalkToUnconsciousCrewman(); else { - const char *text1[] = { - SPEAKER_MCCOY, - "#DEM1\\DEM1_015#Well, we've seen Klingons. Now all we need is a few Romulans...", - "" - }; - const char *text2[] = { - SPEAKER_SPOCK, - "#DEM1\\DEM1_023#Control your thoughts, Doctor. There is a high probability that something here is using our own memories against us.", - "" - }; - showRoomSpecificText(text1); - showRoomSpecificText(text2); + showText(TX_SPEAKER_MCCOY, TX_DEM1_015); + showText(TX_SPEAKER_SPOCK, TX_DEM1_023); } } void Room::demon1TalkToRedshirt() { if (_vm->_awayMission.crewDownBitset & (1 << OBJECT_REDSHIRT)) demon1TalkToUnconsciousCrewman(); - else { - const char *text[] = { - SPEAKER_EVERTS, - "#DEM1\\DEM1_026#I guess this isn't such a great planet after all.", - "" - }; - showRoomSpecificText(text); - } + else + showText(TX_SPEAKER_EVERTS, TX_DEM1_026); } // FIXME: this doesn't happen in actual game? (does the event get blocked from higher up?) diff --git a/engines/startrek/rooms/demon2.cpp b/engines/startrek/rooms/demon2.cpp index 7d2d0194a5..c707e25308 100644 --- a/engines/startrek/rooms/demon2.cpp +++ b/engines/startrek/rooms/demon2.cpp @@ -42,219 +42,91 @@ void Room::demon2TouchedWarp1() { } void Room::demon2LookAtCave() { - const char *text[] = { - nullptr, - "#DEM2\\DEM2N009#Mine entrance.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM2N009); } void Room::demon2LookAtMountain() { - const char *text[] = { - nullptr, - "#DEM2\\DEM2N007#Idyll Mountain.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM2N007); } void Room::demon2LookAtBerries() { - const char *text[] = { - nullptr, - "#DEM2\\DEM2N012#Various types of berries grow amongst the bushes.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM2N012); } void Room::demon2LookAtFern() { - const char *text[] = { - nullptr, - "#DEM2\\DEM2N005#A Gindorian fern.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM2N005); } void Room::demon2LookAtMoss() { - const char *text[] = { - nullptr, - "#DEM2\\DEM2N010#Phequedian moss grows on the cave wall.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM2N010); } void Room::demon2LookAtLights() { - const char *text[] = { - nullptr, - "#DEM2\\DEM2N006#Feeble lights illuminate the mine tunnel.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM2N006); } void Room::demon2LookAtAnything() { - const char *text[] = { - nullptr, - "#DEM2\\DEM2N011#The mine entrance goes deep into Mount Idyll.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM2N011); } void Room::demon2LookAtKirk() { - const char *text[] = { - nullptr, - "#DEM2\\DEM2N002#James T. Kirk. Always wondering what the next surprise will be.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM2N002); } void Room::demon2LookAtSpock() { - const char *text[] = { - nullptr, - "#DEM2\\DEM2N004#Spock. Perhaps the most brilliant mind in Starfleet, pondering a most peculiar mystery.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM2N004); } void Room::demon2LookAtMcCoy() { - const char *text[] = { - nullptr, - "#DEM2\\DEM2N003#Leonard McCoy. Hoping that the cave will be warmer than outside.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM2N003); } void Room::demon2LookAtRedshirt() { - const char *text[] = { - nullptr, - "#DEM2\\DEM2N000#Ensign Everts. Keeping a sharp eye out for anything dangerous.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM2N000); } void Room::demon2TalkToKirk() { - const char *text[] = { - SPEAKER_KIRK, - "#DEM2\\DEM2_001#The answer to this mystery lies ahead of us, gentlemen.", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_KIRK, TX_DEM2_001); } void Room::demon2TalkToSpock() { - const char *text1[] = { - SPEAKER_SPOCK, - "#DEM2\\DEM2_018#Whoever was trying to stop us may not stop with those Klingons, Captain. I recommend extreme caution.", - "" - }; - const char *text2[] = { - SPEAKER_KIRK, - "#DEM2\\DEM2_003#The thought had occurred to me, Mr. Spock, but thank you for mentioning it.", - "" - }; - showRoomSpecificText(text1); - showRoomSpecificText(text2); + showText(TX_SPEAKER_SPOCK, TX_DEM2_018); + showText(TX_SPEAKER_KIRK, TX_DEM2_003); } void Room::demon2TalkToMcCoy() { - const char *text1[] = { - SPEAKER_MCCOY, - "#DEM2\\DEM2_015#Does your tricorder say the cave is warmer, Spock...", - "" - }; - const char *text2[] = { - SPEAKER_SPOCK, - "#DEM2\\DEM2_017#It is not logical for me to use my tricorder to determine the cave's temperature, doctor. I do not see what purpose it would serve.", - "" - }; - const char *text3[] = { - SPEAKER_MCCOY, - "#DEM2\\DEM2_016#Spock, everybody talks about the weather!", - "" - }; - showRoomSpecificText(text1); - showRoomSpecificText(text2); - showRoomSpecificText(text3); + showText(TX_SPEAKER_MCCOY, TX_DEM2_015); + showText(TX_SPEAKER_SPOCK, TX_DEM2_017); + showText(TX_SPEAKER_MCCOY, TX_DEM2_016); } void Room::demon2TalkToRedshirt() { - const char *text1[] = { - SPEAKER_EVERTS, - "#DEM2\\DEM2_019#I'm sorry I let you down with those Klingons back there. I should have been paying more attention.", - "" - }; - const char *text2[] = { - SPEAKER_KIRK, - "#DEM2\\DEM2_002#Just don't make that mistake again, Ensign.", - "" - }; - const char *text3[] = { - SPEAKER_EVERTS, - "#DEM2\\DEM2_020#Those Klingons give me the willies. They always have. My sister was wounded by them in the Chozon ambush.", - "" - }; - const char *text4[] = { - SPEAKER_KIRK, - "#DEM2\\DEM2_004#We've all had our share of conflict with Klingons, Ensign. The Organians told me that one day Humans and Klingons will become good friends. I wonder if I'll ever live to see that day.", - "" - }; - showRoomSpecificText(text1); - showRoomSpecificText(text2); - showRoomSpecificText(text3); - showRoomSpecificText(text4); + showText(TX_SPEAKER_EVERTS, TX_DEM2_019); + showText(TX_SPEAKER_KIRK, TX_DEM2_002); + showText(TX_SPEAKER_EVERTS, TX_DEM2_020); + showText(TX_SPEAKER_KIRK, TX_DEM2_004); } void Room::demon2UsePhaserOnBerries() { - const char *text[] = { - SPEAKER_MCCOY, - "#DEM2\\DEM2_011#Jim, you usually pick food and then cook it.", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_MCCOY, TX_DEM2_011); } void Room::demon2UseSTricorderOnBerries() { loadActorAnim2(OBJECT_SPOCK, "sscane", -1, -1, 0); playSoundEffectIndex(0x04); - - const char *text[] = { - SPEAKER_SPOCK, - "#DEM2\\DEM2_008#These seem to be Laraxian berries, Captain. They have several medicinal uses, but Dr. McCoy would know more.", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_SPOCK, TX_DEM2_008); } void Room::demon2UseSTricorderOnMoss() { loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0); playSoundEffectIndex(0x04); - - const char *text[] = { - SPEAKER_SPOCK, - "#DEM2\\DEM2_007#The Phequedine moss extracts nourishment from hafnium, Captain.", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_SPOCK, TX_DEM2_007); } void Room::demon2UseSTricorderOnFern() { loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0); playSoundEffectIndex(0x04); - - const char *text[] = { - SPEAKER_SPOCK, - "#DEM2\\DEM2_006#Gindorian ferns are regarded as an intergalactic weed, Captain.", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_SPOCK, TX_DEM2_006); } void Room::demon2UseSTricorderOnCave() { @@ -262,64 +134,28 @@ void Room::demon2UseSTricorderOnCave() { playSoundEffectIndex(0x04); // NOTE: audio file for this is empty. - const char *text[] = { - SPEAKER_SPOCK, - "#DEM2\\DEM2_005#Captain, I'm having trouble getting reliable readings from inside the mountain. Unusual crystalline structures within the ore may be at fault, though I cannot say for certain.", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_SPOCK, TX_DEM2_005); } void Room::demon2UseMTricorderOnBerries() { loadActorAnim2(OBJECT_MCCOY, "mscane", -1, -1, 0); playSoundEffectIndex(0x04); - if (_vm->_awayMission.demon.curedBrother) { - const char *text[] = { - SPEAKER_MCCOY, - "#DEM2\\DEM2_013#These are the Laraxian Berries we used to cure Brother Chub.", - "" - }; - showRoomSpecificText(text); - } - else if (_vm->_awayMission.demon.madeHypoDytoxin) { - const char *text[] = { - SPEAKER_MCCOY, - "#DEM2\\DEM2_009#Jim, these are Laraxian Berries that we used to make the Hypo-Dytoxin.", - "" - }; - showRoomSpecificText(text); - } - else if (_vm->_awayMission.demon.knowAboutHypoDytoxin) { - const char *text[] = { - SPEAKER_MCCOY, - "#DEM2\\DEM2_010#Jim, these are the berries we need to synthesize the Hypo-Dytoxin. We must get these to Brother Stephen quickly.", - "" - }; - showRoomSpecificText(text); - } - else { - const char *text[] = { - SPEAKER_MCCOY, - "#DEM2\\DEM2_012#These are Laraxian Berries. From what I remember, certain chemical compounds in the berry can be used to treat Nugaireyn infections.", - "" - }; - showRoomSpecificText(text); - } + if (_vm->_awayMission.demon.curedBrother) + showText(TX_SPEAKER_MCCOY, TX_DEM2_013); + else if (_vm->_awayMission.demon.madeHypoDytoxin) + showText(TX_SPEAKER_MCCOY, TX_DEM2_009); + else if (_vm->_awayMission.demon.knowAboutHypoDytoxin) + showText(TX_SPEAKER_MCCOY, TX_DEM2_010); + else + showText(TX_SPEAKER_MCCOY, TX_DEM2_012); } void Room::demon2GetBerries() { - if (_vm->_awayMission.demon.gotBerries) { - const char *text[] = { - SPEAKER_MCCOY, - "#DEM2\\DEM2_014#We don't need any more berries, Jim.", - "" - }; - showRoomSpecificText(text); - } - else { + if (_vm->_awayMission.demon.gotBerries) + showText(TX_SPEAKER_MCCOY, TX_DEM2_014); + else walkCrewman(OBJECT_KIRK, 0xe8, 0x97, 1); - } } void Room::demon2ReachedBerries() { @@ -328,12 +164,7 @@ void Room::demon2ReachedBerries() { } void Room::demon2PickedUpBerries() { - const char *text[] = { - nullptr, - "#DEM2\\DEM2N013#You have retrieved a sample of berries.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM2N013); giveItem(OBJECT_IBERRY); _vm->_awayMission.demon.gotBerries = true; _vm->_awayMission.missionScore += 1; diff --git a/engines/startrek/rooms/demon3.cpp b/engines/startrek/rooms/demon3.cpp index 3af6da9669..eb31f29a13 100644 --- a/engines/startrek/rooms/demon3.cpp +++ b/engines/startrek/rooms/demon3.cpp @@ -86,24 +86,14 @@ void Room::demon3Timer1Expired() { // Door just opened void Room::demon3Timer3Expired() { if (_vm->_awayMission.demon.field3b) { - const char *text[] = { - nullptr, - "#DEM3\\DEM3N008#The hand's circuitry triggers a connection, and the door opens.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM3N008); loadActorAnim(14, "door", 0x82, 0xc, 0); loadMapFile("demon3"); _vm->_awayMission.demon.doorOpened = true; _vm->_awayMission.missionScore += 2; } else { - const char *text[] = { - nullptr, - "#DEM3\\DEM3N007#The fit is perfect, but something seems to be shorting out.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM3N007); } } @@ -124,13 +114,7 @@ void Room::demon3FinishedAnimation2() { void Room::demon3FinishedWalking5() { loadActorAnim2(OBJECT_MCCOY, "mscanw", -1, -1, 0); playSoundEffectIndex(0x04); - - const char *text[] = { - SPEAKER_MCCOY, - "#DEM3\\DEM3_019#He's dead, Jim...", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_MCCOY, TX_DEM3_019); _vm->_awayMission.transitioningIntoRoom = false; } @@ -216,21 +200,11 @@ void Room::demon3FireAtBoulder() { void Room::demon3UsePhaserOnRedshirt() { if (!_vm->_awayMission.redshirtDead) return; - const char *text[] = { - SPEAKER_MCCOY, - "#DEM3\\DEM3_013#He's already dead, Jim. Isn't that good enough for you?", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_MCCOY, TX_DEM3_013); } void Room::demon3UseStunPhaserOnBoulder() { - const char *text[] = { - SPEAKER_SPOCK, - "#DEM3\\DEM3_007#Captain, the stun setting would be very ineffective on these boulders.", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_SPOCK, TX_DEM3_007); } void Room::demon3UsePhaserOnBoulder1() { @@ -265,12 +239,7 @@ void Room::demon3UsePhaserOnBoulder3() { demon3BoulderCommon(); } else { - const char *text[] = { - SPEAKER_SPOCK, - "#DEM3\\DEM3_006#Captain, the structure is extremely unstable. I would not recommend disturbing the lower section before the upper sections have been cleared.", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_SPOCK, TX_DEM3_006); } } @@ -288,12 +257,7 @@ void Room::demon3UsePhaserOnBoulder4() { else { // BUGFIX: In the original, the audio didn't play, despite the file existing (and // despite it being used for the boulder on the left). - const char *text[] = { - SPEAKER_SPOCK, - "#DEM3\\DEM3_006#Captain, the structure is extremely unstable. I would not recommend disturbing the lower section before the upper sections have been cleared.", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_SPOCK, TX_DEM3_006); } } @@ -309,12 +273,7 @@ void Room::demon3BoulderCommon() { demon3PullOutPhaserAndFireAtBoulder(); } else { - const char *text[] = { - SPEAKER_KIRK, - "#DEM3\\DEM3_001#Assume firing positions.", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_KIRK, TX_DEM3_001); walkCrewman(OBJECT_KIRK, 0x79, 0xa0, 1); walkCrewman(OBJECT_SPOCK, 0xae, 0xb4, 2); @@ -330,23 +289,13 @@ void Room::demon3BoulderCommon() { void Room::demon3UseSTricorderOnMiner() { loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0); playSoundEffectIndex(0x04); - const char *text[] = { - SPEAKER_SPOCK, - "#DEM3\\DEM3_008#I think Doctor McCoy would be better suited to deal with this.", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_SPOCK, TX_DEM3_008); } void Room::demon3UseSTricorderOnPanel() { loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0); playSoundEffectIndex(0x04); - const char *text[] = { - SPEAKER_SPOCK, - "#DEM3\\DEM3_009#It appears to be a security lock designed to open the door when the correct hand print is registered.", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_SPOCK, TX_DEM3_009); } void Room::demon3UseSTricorderOnBoulder() { @@ -354,12 +303,7 @@ void Room::demon3UseSTricorderOnBoulder() { return; loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0); playSoundEffectIndex(0x04); - const char *text[] = { - SPEAKER_SPOCK, - "#DEM3\\DEM3_010#Captain, there are several weak points in the cave-in's structure. Careful use of our phasers, from the top down, should be able to clear it.", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_SPOCK, TX_DEM3_010); } void Room::demon3UseMTricorderOnBoulder() { @@ -367,40 +311,24 @@ void Room::demon3UseMTricorderOnBoulder() { return; loadActorAnim2(OBJECT_MCCOY, "mscann", -1, -1, 0); playSoundEffectIndex(0x04); - const char *text[] = { - SPEAKER_MCCOY, - "#DEM3\\DEM3_020#I'm picking up weak vital signs. If we don't dig him out soon, we're going to lose him!", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_MCCOY, TX_DEM3_020); } void Room::demon3UseCrewmanOnPanel() { if (_vm->_awayMission.demon.numBouldersGone != 4 || _vm->_awayMission.redshirtDead) return; - const char *text[] = { - SPEAKER_EVERTS, - "#DEM3\\DEM3_031#Sir, it may be dangerous. Let me try it.", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_EVERTS, TX_DEM3_031); demon3UseRedshirtOnPanel(); } void Room::demon3UseRedshirtOnPanel() { if (_vm->_awayMission.redshirtDead) return; - if (_vm->_awayMission.demon.numBouldersGone != 4) { - const char *text[] = { - SPEAKER_EVERTS, - "#DEM3\\DEM3_030#Sir, I think we should clear the rest of the rocks before we check out the device.", - "" - }; - showRoomSpecificText(text); - } - else { + + if (_vm->_awayMission.demon.numBouldersGone != 4) + showText(TX_SPEAKER_EVERTS, TX_DEM3_030); + else walkCrewman(OBJECT_REDSHIRT, 0xd8, 0x70, 8); - } } void Room::demon3RedshirtReachedPanel() { @@ -414,12 +342,7 @@ void Room::demon3RedshirtUsedPanel() { _vm->_awayMission.demon.field41++; if (_vm->_awayMission.demon.field41 == 5) { playVoc("EFX3"); - const char *text[] = { - SPEAKER_EVERTS, - "#DEM3\\DEM3_A32#Aieeee!", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_EVERTS, TX_DEM3_A32); loadActorAnim2(OBJECT_REDSHIRT, "rkille", -1, -1, 3); playSoundEffectIndex(0x06); @@ -427,84 +350,53 @@ void Room::demon3RedshirtUsedPanel() { _vm->_awayMission.demon.field45 = true; } else { - const char *textTable[] = { - "#DEM3\\DEM3N005#Nothing happens.", - "#DEM3\\DEM3_033#I think I was shocked, sir.", - "#DEM3\\DEM3_035#That was definitely a mild shock.", - "#DEM3\\DEM3_034#Ouch, that hurt.", + const int textTable[] = { + TX_DEM3N005, + TX_DEM3_033, + TX_DEM3_035, + TX_DEM3_034, }; - const char *text[] = { - "SPEAKER_EVERTS", - nullptr, - "" + int text[] = { + TX_SPEAKER_EVERTS, + TX_NULL, + TX_BLANK }; text[1] = textTable[_vm->_awayMission.demon.field41 - 1]; - showRoomSpecificText(text); + showText(text); walkCrewman(OBJECT_REDSHIRT, 0xbe, 0x9b, 0); } } void Room::demon3RedshirtElectrocuted() { - const char *text[] = { - SPEAKER_MCCOY, - "#DEM3\\DEM3_018#He's dead Jim.", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_MCCOY, TX_DEM3_018); } void Room::demon3UseSTricorderOnDoor() { loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0); playSoundEffectIndex(0x04); - const char *text[] = { - SPEAKER_SPOCK, - "#DEM3\\DEM3_012#Fascinating, Captain. This door is made of an unknown material. It is clearly built by an alien race we have no knowledge of.", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_SPOCK, TX_DEM3_012); } void Room::demon3UseSTricorderOnAnything() { loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0); playSoundEffectIndex(0x04); - const char *text[] = { - SPEAKER_SPOCK, - "#DEM3\\DEM3_027#Fascinating... I'm registering low-intensity shielding unlike anything we've encountered before. That kept this door -- and whatever is behind it -- hidden from the ship's sensors and earlier tricorder readings.", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_SPOCK, TX_DEM3_027); } void Room::demon3UseMTricorderOnDoor() { loadActorAnim2(OBJECT_SPOCK, "mscann", -1, -1, 0); playSoundEffectIndex(0x04); - const char *text[] = { - SPEAKER_MCCOY, - "#DEM3\\DEM3_016#This is incredible, Jim. I'm picking up faint lifesign readings behind this door!", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_MCCOY, TX_DEM3_016); } void Room::demon3UsePhaserOnDoor() { _roomVar.demon3.usedPhaserOnDoor++; - if (_roomVar.demon3.usedPhaserOnDoor == 1) { - const char *text[] = { - nullptr, - "#DEM3\\DEM3N009#There is no apparent effect.", - "" - }; - showRoomSpecificText(text); - } - else if (_roomVar.demon3.usedPhaserOnDoor == 2) { - const char *text[] = { - SPEAKER_SPOCK, - "#DEM3\\DEM3_011#Captain, this course of action is ineffectual.", - "" - }; - showRoomSpecificText(text); - } + + if (_roomVar.demon3.usedPhaserOnDoor == 1) + showText(TX_DEM3N009); + else if (_roomVar.demon3.usedPhaserOnDoor == 2) + showText(TX_SPEAKER_SPOCK, TX_DEM3_011); } void Room::demon3UseHandOnPanel() { @@ -514,12 +406,7 @@ void Room::demon3UseHandOnPanel() { walkCrewman(OBJECT_KIRK, 0xd8, 0x70, 7); } else { - const char *text[] = { - SPEAKER_SPOCK, - "#DEM3\\DEM3_005#Captain, I would strongly recommend clearing all the debris first.", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_SPOCK, TX_DEM3_005); } } @@ -540,30 +427,16 @@ void Room::demon3UseMTricorderOnMiner() { playSoundEffectIndex(0x04); if (_vm->_awayMission.demon.minerDead) { - const char *text[] = { - SPEAKER_MCCOY, - "#DEM3\\DEM3_022#The miner is dead.", - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_MCCOY, TX_DEM3_022); } else { - const char *text[] = { - SPEAKER_MCCOY, - "#DEM3\\DEM3_023#This man is badly hurt, and suffering from shock and exposure as well.", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_MCCOY, TX_DEM3_023); } } void Room::demon3UseMedkitOnMiner() { if (_vm->_awayMission.demon.healedMiner) { - const char *text[] = { - SPEAKER_MCCOY, - "#DEM3\\DEM3_015#I've done all I can. He just needs rest now.", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_MCCOY, TX_DEM3_015); } else { walkCrewman(OBJECT_MCCOY, 0xe6, 0x7b, 6); @@ -578,20 +451,10 @@ void Room::demon3McCoyReachedMiner() { void Room::demon3McCoyFinishedHealingMiner() { if (_vm->_awayMission.demon.minerDead) { - const char *text[] = { - SPEAKER_MCCOY, - "#DEM3\\DEM3_022#The miner is dead.", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_MCCOY, TX_DEM3_022); } else { - const char *text[] = { - SPEAKER_MCCOY, - "#DEM3\\DEM3_021#It was a near thing, but he'll live.", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_MCCOY, TX_DEM3_021); _vm->_awayMission.demon.healedMiner = true; loadActorAnim2(13, "drmine", 0xda, 0x6c, 0); _vm->_awayMission.missionScore += 2; @@ -600,72 +463,27 @@ void Room::demon3McCoyFinishedHealingMiner() { } void Room::demon3GetMiner() { - const char *text[] = { - SPEAKER_MCCOY, - "#DEM3\\DEM3_017#Dammit, Jim, I'm a doctor, not a bellhop. This man's too hurt to be moved.", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_MCCOY, TX_DEM3_017); } void Room::demon3TalkToKirk() { - const char *text1[] = { - SPEAKER_KIRK, - "#DEM3\\DEM3_002#A gateway to an alien race. The wonders of the galaxy are endless, aren't they, Mr. Spock?", - "" - }; - const char *text2[] = { - SPEAKER_SPOCK, - "#DEM3\\DEM3_029#Indeed, Captain.", - "" - }; - const char *text3[] = { - SPEAKER_MCCOY, - "#DEM3\\DEM3_026#They can also be damned cold.", - "" - }; - showRoomSpecificText(text1); - showRoomSpecificText(text2); - showRoomSpecificText(text3); + showText(TX_SPEAKER_KIRK, TX_DEM3_002); + showText(TX_SPEAKER_SPOCK, TX_DEM3_029); + showText(TX_SPEAKER_MCCOY, TX_DEM3_026); } void Room::demon3TalkToSpock() { - const char *text[] = { - SPEAKER_SPOCK, - "#DEM3\\DEM3_028#I recommend as thorough an analysis of this area as possible.", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_SPOCK, TX_DEM3_028); } void Room::demon3TalkToMccoy() { if (_vm->_awayMission.redshirtDead) { - const char *text[] = { - SPEAKER_MCCOY, - "#DEM3\\DEM3_014#I'm sorry, Jim. Ensign Everts is beyond my help.", - "" - }; - showRoomSpecificText(text); + showText(TX_SPEAKER_MCCOY, TX_DEM3_014); } else { - const char *text1[] = { - SPEAKER_MCCOY, - "#DEM3\\DEM3_025#Jim, the next time you need medical help on a snowball...", - "" - }; - const char *text2[] = { - SPEAKER_KIRK, - "#DEM3\\DEM3_003#Bones..", - "" - }; - const char *text3[] = { - SPEAKER_MCCOY, - "#DEM3\\DEM3_024#I'll probably end up coming along.", - "" - }; - showRoomSpecificText(text1); - showRoomSpecificText(text2); - showRoomSpecificText(text3); + showText(TX_SPEAKER_MCCOY, TX_DEM3_025); + showText(TX_SPEAKER_KIRK, TX_DEM3_003); + showText(TX_SPEAKER_MCCOY, TX_DEM3_024); } } @@ -673,176 +491,80 @@ void Room::demon3TalkToMccoy() { void Room::demon3TalkToRedshirt() { // FIXME: this shouldn't work if he's dead. Should it check higher up whether that's // the case? - const char *text1[] = { - SPEAKER_EVERTS, - "#DEM3\\DEM3_036#No sign of demons, Klingons, or other hostiles, Captain. I promise I'll let you know the instant something appears.", - "" - }; - const char *text2[] = { - SPEAKER_KIRK, - "#DEM3\\DEM3_004#Don't be too anxious, Ensign. We may want to talk with them.", - "" - }; - showRoomSpecificText(text1); - showRoomSpecificText(text2); + showText(TX_SPEAKER_EVERTS, TX_DEM3_036); + showText(TX_SPEAKER_KIRK, TX_DEM3_004); } void Room::demon3LookAtKirk() { - const char *text[] = { - nullptr, - "#DEM3\\DEM3N004#James T. Kirk. Captain of the Enterprise.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM3N004); } void Room::demon3LookAtSpock() { - const char *text[] = { - nullptr, - "#DEM3\\DEM3N001#Commander Spock; curious about what lies ahead.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM3N001); } void Room::demon3LookAtMccoy() { - const char *text[] = { - nullptr, - "#DEM3\\DEM3N002#Doctor Leonard McCoy, glad that the cave provides some shelter from the breeze.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM3N002); } void Room::demon3LookAtRedshirt() { if (_vm->_awayMission.redshirtDead) { - const char *text[] = { - nullptr, - "#DEM3\\DEM3N017#Ensign Everts lies dead, crushed by the boulder.", - "" - }; - showRoomSpecificText(text); - // NOTE: there's an alternate string that isn't used? - // "#DEM3\\DEM3N018#The crushed body of Ensign Everts reminds you of your poor command judgement.", + showText(TX_DEM3N017); + // NOTE: there's an alternate string that isn't used? (TX_DEM3N018) } else { - const char *text[] = { - nullptr, - "#DEM3\\DEM3N003#Ensign Everts, wary of more ambushes.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM3N003); } } void Room::demon3LookAnywhere() { - const char *text[] = { - nullptr, - "#DEM3\\DEM3N010#A cavern, deep in Mount Idyll.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM3N010); } void Room::demon3LookAtMiner() { if (_vm->_awayMission.demon.healedMiner) { - const char *text[] = { - nullptr, - "#DEM3\\DEM3N000#Brother Kandrey is barely conscious, and is lying still, trying to regain his strength.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM3N000); } else { - const char *text[] = { - nullptr, - "#DEM3\\DEM3N006#One of the Acolytes, who was trapped by the the rockfall.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM3N006); } } void Room::demon3LookAtBoulder1() { - const char *text[] = { - nullptr, - "#DEM3\\DEM3N011#A huge boulder sits upon a large pile of rubble.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM3N011); } void Room::demon3LookAtBoulder2() { - const char *text[] = { - nullptr, - "#DEM3\\DEM3N013#A large pile of rubble blocks what appears to be a large metallic structure.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM3N013); } void Room::demon3LookAtBoulder3() { - const char *text[] = { - nullptr, - "#DEM3\\DEM3N013#A large pile of rubble blocks what appears to be a large metallic structure.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM3N013); } void Room::demon3LookAtBoulder4() { - const char *text[] = { - nullptr, - "#DEM3\\DEM3N020#You notice what appears to be a man's arm sticking out from beneath the rubble.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM3N020); } void Room::demon3LookAtStructure() { - const char *text[] = { - nullptr, - "#DEM3\\DEM3N016#A structure built into the surrounding rock. It must have been buried here for millennia.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM3N016); } void Room::demon3LookAtDoor() { if (_vm->_awayMission.demon.doorOpened) { - const char *text[] = { - nullptr, - "#DEM3\\DEM3N014#A long tunnel descends into the mountain.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM3N014); } else { - const char *text[] = { - nullptr, - "#DEM3\\DEM3N012#A large metallic door is set in the structure.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM3N012); } } void Room::demon3LookAtPanel() { - const char *text[] = { - nullptr, - "#DEM3\\DEM3N019#This looks like some of the hand security panels on the Enterprise.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM3N019); } void Room::demon3LookAtLight() { - const char *text[] = { - nullptr, - "#DEM3\\DEM3N015#A pulsing red light is set in the structure above the door.", - "" - }; - showRoomSpecificText(text); + showText(TX_DEM3N015); } } diff --git a/engines/startrek/text.h b/engines/startrek/text.h new file mode 100644 index 0000000000..5dfd6e2938 --- /dev/null +++ b/engines/startrek/text.h @@ -0,0 +1,471 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#ifndef STARTREK_TEXT_H +#define STARTREK_TEXT_H + +namespace StarTrek { + +enum GameStringIDs { + TX_NULL, + TX_BLANK, + TX_SPEAKER_KIRK, + TX_SPEAKER_SPOCK, + TX_SPEAKER_MCCOY, + TX_SPEAKER_UHURA, + TX_SPEAKER_EVERTS, + + TX_SPEAKER_ANGIVEN, + TX_SPEAKER_SIGN, + TX_DEM0_016, + TX_DEM0_039, + TX_DEM0_017, + TX_DEM0_015, + TX_DEM0_013, + TX_DEM0_040, + TX_DEM0_036, + TX_DEM0_006, + TX_DEM0_008, + TX_DEM0_003, + TX_DEM0_038, + TX_DEM0_032, + TX_DEM0_033, + TX_DEM0_002, + TX_DEM0_005, + TX_DEM0_031, + TX_DEM0_010, + TX_DEM0_012, + TX_DEM0_035, + TX_DEM0_037, + TX_DEM0_034, + TX_DEM0N004, + TX_DEM0N008, + TX_DEM0N000, + TX_DEM0N006, + TX_DEM0N001, + TX_DEM0N007, + TX_DEM0N010, + TX_DEM0N009, + TX_DEM0N005, + TX_DEM0N002, + TX_DEM0N003, + TX_DEM0_019, + TX_DEM0_014, + TX_DEM0_011, + TX_DEM0_023, + TX_DEM0_029, + TX_DEM0_041, + TX_DEM0_043, + TX_DEM0_026, + TX_DEM0_042, + TX_DEM0_025, + TX_DEM0_007, + TX_DEM0_044, + TX_DEM0_009, + TX_DEM0_027, + TX_DEM0_004, + TX_DEM0_024, + TX_DEM0_030, + TX_DEM0_001, + TX_DEM0_022, + TX_DEM0_018, + TX_DEM0_021, + TX_DEM0_028, + TX_DEM0_020, + TX_DEM0C001, // "C" = "Custom" (no ID originally assigned) + + + TX_SPEAKER_KLINGON, + TX_DEM1_011, + TX_DEM1N020, + TX_DEM1_025, + TX_DEM1_F23, + TX_DEM1U077, + TX_DEM1_003, + TX_DEM1U078, + TX_DEM1_002, + TX_DEM1_020, + TX_DEM1_004, + TX_DEM1_021, + TX_DEM1_007, + TX_DEM1_008, + TX_DEM1_005, + TX_DEM1_006, + TX_DEM1_009, + TX_DEM1N018, + TX_DEM1N010, + TX_DEM1N019, + TX_DEM1N009, + TX_DEM1N011, + TX_DEM1N021, + TX_DEM1N016, + TX_DEM1N023, + TX_DEM1N017, + TX_DEM1N012, + TX_DEM1N015, + TX_DEM1N013, + TX_DEM1N014, + TX_DEM1N003, + TX_DEM1N001, + TX_DEM1N008, + TX_DEM1N002, + TX_DEM1N000, + TX_DEM1_018, + TX_DEM1N006, + TX_DEM1_012, + TX_DEM1_017, + TX_DEM1_019, + TX_DEM1_016, + TX_DEM1N005, + TX_DEM1N007, + TX_DEM1N004, + TX_DEM1_001, + TX_DEM1_022, + TX_DEM1_013, + TX_DEM1_024, + TX_DEM1_014, + TX_DEM1_015, + TX_DEM1_023, + TX_DEM1_026, + + + TX_DEM2N009, + TX_DEM2N007, + TX_DEM2N008, + TX_DEM2N012, + TX_DEM2N005, + TX_DEM2N010, + TX_DEM2N006, + TX_DEM2N011, + TX_DEM2_011, + TX_DEM2_008, + TX_DEM2_007, + TX_DEM2_006, + TX_DEM2_005, + TX_DEM2_013, + TX_DEM2_009, + TX_DEM2_010, + TX_DEM2_012, + TX_DEM2_014, + TX_DEM2N013, + TX_DEM2N002, + TX_DEM2N004, + TX_DEM2N003, + TX_DEM2N000, + TX_DEM2_001, + TX_DEM2_015, + TX_DEM2_017, + TX_DEM2_016, + TX_DEM2_019, + TX_DEM2_002, + TX_DEM2_020, + TX_DEM2_004, + TX_DEM2_018, + TX_DEM2_003, + + + TX_DEM3_013, + TX_DEM3_007, + TX_DEM3_006, + TX_DEM3_008, + TX_DEM3_009, + TX_DEM3_031, + TX_DEM3_030, + TX_DEM3_A32, + TX_DEM3_016, + TX_DEM3_005, + TX_DEM3_015, + TX_DEM3_014, + TX_DEM3N017, + TX_DEM3N010, + TX_DEM3N018, + TX_DEM3N011, + TX_DEM3N013, + TX_DEM3N020, + TX_DEM3N016, + TX_DEM3N012, + TX_DEM3N014, + TX_DEM3N019, + TX_DEM3N015, + TX_DEM3N004, + TX_DEM3N001, + TX_DEM3N002, + TX_DEM3N003, + TX_DEM3N006, + TX_DEM3N000, + TX_DEM3_002, + TX_DEM3_029, + TX_DEM3_026, + TX_DEM3_028, + TX_DEM3_025, + TX_DEM3_003, + TX_DEM3_024, + TX_DEM3_036, + TX_DEM3_004, + TX_DEM3_001, + TX_DEM3_020, + TX_DEM3_010, + TX_DEM3_023, + TX_DEM3_021, + TX_DEM3_022, + TX_DEM3_017, + TX_DEM3N005, + TX_DEM3_033, + TX_DEM3_035, + TX_DEM3_034, + TX_DEM3_B32, + TX_DEM3_018, + TX_DEM3_012, + TX_DEM3_027, + TX_DEM3N009, + TX_DEM3_011, + TX_DEM3N007, + TX_DEM3N008, + TX_DEM3_019, + TX_DEM3_F21, + + + TX_END +}; + +const char * const g_gameStrings[] = { + nullptr, + "", + "Capt. Kirk", + "Mr. Spock", + "Dr. McCoy", + "Lt. Uhura", + "Ensign Everts", + + "Prel. Angiven", + "Sign", + "#DEM0\\DEM0_016#Captain, the flora on this planet is very interesting. I wonder how useful it may be for medicinal purposes.", + "#DEM0\\DEM0_039#Aw, Captain, please don't melt the snow. I've never seen it before.", + "#DEM0\\DEM0_017#Quite the vandal aren't we, Jim?", + "#DEM0\\DEM0_015#Burning down their house is not the best way to gain their confidence Jim!", + "#DEM0\\DEM0_013#Captain, Doctor McCoy is correct.", + "#DEM0\\DEM0_040#Is he always this trigger happy on ground missions?", + "#DEM0\\DEM0_036#This is so much better, gentlefolk. We are honored at your presence and hope you will find peace here in our haven.", + "#DEM0\\DEM0_006#I'm Captain James T. Kirk of the U.S.S. Enterprise. We have received word that alien lifeforms are creating problems at your mining facilities at Idyll Mountain. Tell me more.", + "#DEM0\\DEM0_008#Most High Prelate Angiven, I am honored to meet you. I consider it my divine duty to assist you in any possible way with the spawn of the devil.", + "#DEM0\\DEM0_003#Been seeing ghosts and bogeymen eh? I find that a little hard to believe.", + "#DEM0\\DEM0_038#Certainly, Captain Kirk. Not aliens, per se -- we have encountered what we believe are demons at Idyll Mountain, creatures surely emerging from the very gates of Hell. Our God would not test us thus without reason, so we believe your might and insight are our God's method to help us discover what is going on.", + "#DEM0\\DEM0_032#Captain Kirk. I had no idea we were blessed with one of our order in the ranks of Starfleet. We believe we have located the very Gates of Hell below Idyll Mountain.", + "#DEM0\\DEM0_033#Starfleet recognizes our freedom to worship and believe as we see fit, Captain. I am surprised that you do not share that feeling. Rest assured that Starfleet Command will be informed of your rudeness.", + "#DEM0\\DEM0_002#Aside from seeing demons, has any hard data been collected? Any evidence I could see?", + "#DEM0\\DEM0_005#Demons? Gates of Hell? This is the 23rd Century!", + "#DEM0\\DEM0_031#A skeptic would consider everything merely anecdotal or unproven. My people will gladly tell you their own stories, so you need not hear it secondhand through me.", + "#DEM0\\DEM0_010#What can you tell me about the mine itself?", + "#DEM0\\DEM0_012#You're wasting the time of a starship capable of destroying this planet with campfire stories? No wonder you were dumped out here in the middle of nowhere.", + "#DEM0\\DEM0_035#The area is exceptionally stable tectonically, and easy for our machinery to work in, praise God. We've mined for hafnium and a variety of useful trace elements. The deeper we dig, however, the more anomalous the variety of minerals seems to be. Our Ignaciate, Brother Stephen, has his own theories about why this might be. Either way, the anomalies inspired Brother Kandrey to conduct studies inside the mine. Yesterday, he reported discovering a strange door -- a gate to Hell, surely, for the demons caused a cave-in immediately. Kandrey was trapped, unconscious, and the demons prevent us from rescuing him. We can only hope he is still alive.", + "#DEM0\\DEM0_037#We need your help, Kirk. You may have no respect for our beliefs, but I hope you will look beyond that. Godspeed.", + "#DEM0\\DEM0_034#Thank you for your courtesy, Kirk. May you receive the guidance and protection of our God as you complete this divine mission.", + "#DEM0\\DEM0N004#High Prelate Angiven waits patiently for you to decide what you will do next.", + "#DEM0\\DEM0N008#Some colonists.", + "#DEM0\\DEM0N000#A beautiful, snow covered scene with a path leading off to Mount Idyll.", + "#DEM0\\DEM0N006#On the other side of the trees is Idyll Mountain. A tall, forbidding place. You have a vague feeling of danger.", + "#DEM0\\DEM0N001#A quickly constructed spartan shelter, primarily used by fledgling colonies.", + "#DEM0\\DEM0N007#Remnants of a recent snowfall cover the ground.", + "#DEM0\\DEM0N010#Various bushes and shrubs grow along the edge of the forest.", + "#DEM0\\DEM0N009#Spock raises an eyebrow.", + "#DEM0\\DEM0N005#James Tiberius Kirk, Captain of the Enterprise. He's always happy to run an errand of mercy.", + "#DEM0\\DEM0N002#Dr. Leonard McCoy, the finest doctor in Starfleet, wishes that he were on a warmer planet.", + "#DEM0\\DEM0N003#Ensign Everts, who has never been this close to snow before in his life, gazes with child-like fascination at the ground.", + "#DEM0\\DEM0_019#I don't know if the problem is real, the result of a new illness, or mass hysteria. But at the very least, there's an injured miner who needs my help.", + "#DEM0\\DEM0_014#Captain, demons and supernatural creatures are, almost by definition, illogical. Yet it is evident these people believe what they have seen. Barring illness or mass hysteria, I agree that a real problem seems to exist.", + "#DEM0\\DEM0_011#You look rather cold, Bones.", + "#DEM0\\DEM0_023#I'm not cold, I'm freezing! And that damn transporter just had to set me down in the middle of a snow drift!", + "#DEM0\\DEM0_029#A centimeter of snow does not technically constitute a drift, Doctor.", + "#DEM0\\DEM0_041#And doctors say that patients complain too much!", + "#DEM0\\DEM0_043#I've never seen snow like this before. This is great!", + "#DEM0\\DEM0_026#You mean you've never built a snowman, ensign?", + "#DEM0\\DEM0_042#I've never even thrown a snowball. Do you think anyone would mind?", + "#DEM0\\DEM0_025#Well...", + "#DEM0\\DEM0_007#Later Ensign. We have work to do.", + "#DEM0\\DEM0_044#Of course, sir.", + "#DEM0\\DEM0_009#This planet's as beautiful as everyone says it is.", + "#DEM0\\DEM0_027#The trees. The fresh air. The freezing cold...", + "#DEM0\\DEM0_004#C'mon Bones, the cold will improve your circulation.", + "#DEM0\\DEM0_024#Some people get too much circulation!", + "#DEM0\\DEM0_030#They are already gathered in the chapel, and will cooperate in any way with you. First door on my right.", + "#DEM0\\DEM0_001#Doctor, you need to investigate the possibility of disease, mental or physical, among these people, before we go chasing up the mountains. Prelate Angiven, may we see those who have encountered the demons?", + "#DEM0\\DEM0_022#The man's in perfect health.", + "#DEM0\\DEM0_018#His blood pressure's up a bit, but he believes he's telling the truth.", + "#DEM0\\DEM0_021#Jim, I am not picking up any unusual life here, just native lifeforms and the settlers. The colonists are all human, except for the one Tellarite. If there are demons here, they don't register on my tricorder.", + "#DEM0\\DEM0_028#Captain, reading the rocks in this area, I find that this locality may have been disturbed in the distant past. Recent disturbances created by the colonists' construction and mining prevent me from discovering anything further.", + "#DEM0\\DEM0_020#Jim! Are you out of your mind?", + "All mining equipment use this road.", + + + "Klingon", + "#DEM1\\DEM1_011#The fire fight is over, Jim. I think you can put that away now.", + "#DEM1\\DEM1N020#You see a small explosion, and the Klingon's hand falls to the ground with a dull thud.", + "#DEM1\\DEM1_025#I guess they don't make Klingons like they used to, Sir.", + "#DEM1\\DEM1_F23#Federation Scum!", + "#DEM1\\DEM1U077#Captain we registered Phaser fire and an unknown energy beam. Is everyone OK?", + "#DEM1\\DEM1_003#We're fine. Did you register any Disruptor fire?", + "#DEM1\\DEM1U078#No, Captain. Why, are Klingons down there?", + "#DEM1\\DEM1_002#No just an idea, Kirk out.", + "#DEM1\\DEM1_020#Fascinating. I begin to suspect that we have stumbled upon something that the colonists would never have uncovered.", + "#DEM1\\DEM1_004#What is it, Spock?", + "#DEM1\\DEM1_021#I wish to gather further data before making a definite conclusion, Captain.", + "#DEM1\\DEM1_007#Khytellian tulips are a perennial flower that survive in almost any climate.", + "#DEM1\\DEM1_008#The Brandzite pod is similar to terran milkweed except that the silk pods are in bright iridecent colors.", + "#DEM1\\DEM1_005#Doctis Cattails are similar to their terran name sake except that they are known to cause hives if in contact with flesh for any amount of time.", + "#DEM1\\DEM1_006#Gindorian ferns are regarded as an intergalactic weed, Captain.", + "#DEM1\\DEM1_009#He's only stunned. He'll be back up in a few seconds.", + "#DEM1\\DEM1N018#These are very beautiful Doctis Cattails.", + "#DEM1\\DEM1N010#A large patch of Khytellian Tulips.", + "#DEM1\\DEM1N019#These Brandzite Pods add a nice touch to the local flora.", + "#DEM1\\DEM1N009#A Gindorian Fern.", + "#DEM1\\DEM1N011#A small stream flows down towards the forest.", + "#DEM1\\DEM1N021#You see the mine entrance ahead.", + "#DEM1\\DEM1N016#Mt. Idyll rises above you.", + "#DEM1\\DEM1N023#It's the Klingon's detached hand!", + "#DEM1\\DEM1N017#The path is surrounded by some beautiful shrubbery.", + "#DEM1\\DEM1N012#Captain Kirk is unconscious.", + "#DEM1\\DEM1N015#Mr. Spock is unconscious.", + "#DEM1\\DEM1N013#Dr. McCoy is unconscious.", + "#DEM1\\DEM1N014#Ensign Everts is unconscious.", + "#DEM1\\DEM1N003#James Kirk, filled with a premonition of more dangers yet to come.", + "#DEM1\\DEM1N001#Dr. McCoy, still hoping the cold winds that whip around Mount Idyll will soon die down.", + "#DEM1\\DEM1N008#Your Vulcan science officer seems to be lost in thought, but remains alert.", + "#DEM1\\DEM1N002#Ensign Everts seems to be rattled by the attack of the Klingons.", + "#DEM1\\DEM1N000#Captain Kirk is fatally shot by a Klingon, game over.", + "#DEM1\\DEM1_018#This is not a Klingon, Captain, not a real one. It is an organic construct -- an android-like robot. It looks like a Klingon, but the appearance is entirely superficial. There is something different about this particular construct. Come here, Captain, look at the hand.It seems to have been separated from the body. There is a wiring circuit in the middle of the palm.", + "#DEM1\\DEM1N006#You find nothing new.", + "#DEM1\\DEM1_012#This is definitely not a real klingon Jim.", + "#DEM1\\DEM1_017#This is a detached hand with some kind of circuitry in the palm, Captain.", + "#DEM1\\DEM1_019#This is not a Klingon, Captain, not a real one. It is an organic construct -- an android-like robot. It looks like a Klingon, but the appearance is entirely superficial.", + "#DEM1\\DEM1_016#The circuit was damaged. It appears reparable, but some specialized equipment will be required.", + "#DEM1\\DEM1N005#You already took the hand from the Klingon.", + "#DEM1\\DEM1N007#You take the Klingon's detached hand.", + "#DEM1\\DEM1N004#They look like Klingons.", + "#DEM1\\DEM1_001#We were caught flat footed there. I don't want any more surprises to catch us off guard.", + "#DEM1\\DEM1_022#Captain, I detect a recent avalanche, approximately 6.2 kilometers away, that occurred within the last three days. The mountain may be quite dangerous.", + "#DEM1\\DEM1_013#Demons, Klingons, avalanches... What's next, the Wicked Witch of the West?", + "#DEM1\\DEM1_024#That is not logical, doctor.", + "#DEM1\\DEM1_014#It wasn't supposed to be logical, you green blooded Vulcan! Why does everything have to be so damned logical?", + "#DEM1\\DEM1_015#Well, we've seen Klingons. Now all we need is a few Romulans...", + "#DEM1\\DEM1_023#Control your thoughts, Doctor. There is a high probability that something here is using our own memories against us.", + "#DEM1\\DEM1_026#I guess this isn't such a great planet after all.", + + + "#DEM2\\DEM2N009#Mine entrance.", + "#DEM2\\DEM2N007#Idyll Mountain.", + "#DEM2\\DEM2N008#Idyll Mountain.", + "#DEM2\\DEM2N012#Various types of berries grow amongst the bushes.", + "#DEM2\\DEM2N005#A Gindorian fern.", + "#DEM2\\DEM2N010#Phequedian moss grows on the cave wall.", + "#DEM2\\DEM2N006#Feeble lights illuminate the mine tunnel.", + "#DEM2\\DEM2N011#The mine entrance goes deep into Mount Idyll.", + "#DEM2\\DEM2_011#Jim, you usually pick food and then cook it.", + "#DEM2\\DEM2_008#These seem to be Laraxian berries, Captain. They have several medicinal uses, but Dr. McCoy would know more.", + "#DEM2\\DEM2_007#The Phequedine moss extracts nourishment from hafnium, Captain.", + "#DEM2\\DEM2_006#Gindorian ferns are regarded as an intergalactic weed, Captain.", + "#DEM2\\DEM2_005#Captain, I'm having trouble getting reliable readings from inside the mountain. Unusual crystalline structures within the ore may be at fault, though I cannot say for certain.", + "#DEM2\\DEM2_013#These are the Laraxian Berries we used to cure Brother Chub.", + "#DEM2\\DEM2_009#Jim, these are Laraxian Berries that we used to make the Hypo-Dytoxin.", + "#DEM2\\DEM2_010#Jim, these are the berries we need to synthesize the Hypo-Dytoxin. We must get these to Brother Stephen quickly.", + "#DEM2\\DEM2_012#These are Laraxian Berries. From what I remember, certain chemical compounds in the berry can be used to treat Nugaireyn infections.", + "#DEM2\\DEM2_014#We don't need any more berries, Jim.", + "#DEM2\\DEM2N013#You have retrieved a sample of berries.", + "#DEM2\\DEM2N002#James T. Kirk. Always wondering what the next surprise will be.", + "#DEM2\\DEM2N004#Spock. Perhaps the most brilliant mind in Starfleet, pondering a most peculiar mystery.", + "#DEM2\\DEM2N003#Leonard McCoy. Hoping that the cave will be warmer than outside.", + "#DEM2\\DEM2N000#Ensign Everts. Keeping a sharp eye out for anything dangerous.", + "#DEM2\\DEM2_001#The answer to this mystery lies ahead of us, gentlemen.", + "#DEM2\\DEM2_015#Does your tricorder say the cave is warmer, Spock...", + "#DEM2\\DEM2_017#It is not logical for me to use my tricorder to determine the cave's temperature, doctor. I do not see what purpose it would serve.", + "#DEM2\\DEM2_016#Spock, everybody talks about the weather!", + "#DEM2\\DEM2_019#I'm sorry I let you down with those Klingons back there. I should have been paying more attention.", + "#DEM2\\DEM2_002#Just don't make that mistake again, Ensign.", + "#DEM2\\DEM2_020#Those Klingons give me the willies. They always have. My sister was wounded by them in the Chozon ambush.", + "#DEM2\\DEM2_004#We've all had our share of conflict with Klingons, Ensign. The Organians told me that one day Humans and Klingons will become good friends. I wonder if I'll ever live to see that day.", + "#DEM2\\DEM2_018#Whoever was trying to stop us may not stop with those Klingons, Captain. I recommend extreme caution.", + "#DEM2\\DEM2_003#The thought had occurred to me, Mr. Spock, but thank you for mentioning it.", + + + "#DEM3\\DEM3_013#He's already dead, Jim. Isn't that good enough for you?", + "#DEM3\\DEM3_007#Captain, the stun setting would be very ineffective on these boulders.", + "#DEM3\\DEM3_006#Captain, the structure is extremely unstable. I would not recommend disturbing the lower section before the upper sections have been cleared.", + "#DEM3\\DEM3_008#I think Doctor McCoy would be better suited to deal with this.", + "#DEM3\\DEM3_009#It appears to be a security lock designed to open the door when the correct hand print is registered.", + "#DEM3\\DEM3_031#Sir, it may be dangerous. Let me try it.", + "#DEM3\\DEM3_030#Sir, I think we should clear the rest of the rocks before we check out the device.", + "#DEM3\\DEM3_A32#Aieeee!", + "#DEM3\\DEM3_016#This is incredible, Jim. I'm picking up faint lifesign readings behind this door!", + "#DEM3\\DEM3_005#Captain, I would strongly recommend clearing all the debris first.", + "#DEM3\\DEM3_015#I've done all I can. He just needs rest now.", + "#DEM3\\DEM3_014#I'm sorry, Jim. Ensign Everts is beyond my help.", + "#DEM3\\DEM3N017#Ensign Everts lies dead, crushed by the boulder.", + "#DEM3\\DEM3N010#A cavern, deep in Mount Idyll.", + "#DEM3\\DEM3N018#The crushed body of Ensign Everts reminds you of your poor command judgement.", + "#DEM3\\DEM3N011#A huge boulder sits upon a large pile of rubble.", + "#DEM3\\DEM3N013#A large pile of rubble blocks what appears to be a large metallic structure.", + "#DEM3\\DEM3N020#You notice what appears to be a man's arm sticking out from beneath the rubble.", + "#DEM3\\DEM3N016#A structure built into the surrounding rock. It must have been buried here for millennia.", + "#DEM3\\DEM3N012#A large metallic door is set in the structure.", + "#DEM3\\DEM3N014#A long tunnel descends into the mountain.", + "#DEM3\\DEM3N019#This looks like some of the hand security panels on the Enterprise.", + "#DEM3\\DEM3N015#A pulsing red light is set in the structure above the door.", + "#DEM3\\DEM3N004#James T. Kirk. Captain of the Enterprise.", + "#DEM3\\DEM3N001#Commander Spock; curious about what lies ahead.", + "#DEM3\\DEM3N002#Doctor Leonard McCoy, glad that the cave provides some shelter from the breeze.", + "#DEM3\\DEM3N003#Ensign Everts, wary of more ambushes.", + "#DEM3\\DEM3N006#One of the Acolytes, who was trapped by the the rockfall.", + "#DEM3\\DEM3N000#Brother Kandrey is barely conscious, and is lying still, trying to regain his strength.", + "#DEM3\\DEM3_002#A gateway to an alien race. The wonders of the galaxy are endless, aren't they, Mr. Spock?", + "#DEM3\\DEM3_029#Indeed, Captain.", + "#DEM3\\DEM3_026#They can also be damned cold.", + "#DEM3\\DEM3_028#I recommend as thorough an analysis of this area as possible.", + "#DEM3\\DEM3_025#Jim, the next time you need medical help on a snowball...", + "#DEM3\\DEM3_003#Bones..", + "#DEM3\\DEM3_024#I'll probably end up coming along.", + "#DEM3\\DEM3_036#No sign of demons, Klingons, or other hostiles, Captain. I promise I'll let you know the instant something appears.", + "#DEM3\\DEM3_004#Don't be too anxious, Ensign. We may want to talk with them.", + "#DEM3\\DEM3_001#Assume firing positions.", + "#DEM3\\DEM3_020#I'm picking up weak vital signs. If we don't dig him out soon, we're going to lose him!", + "#DEM3\\DEM3_010#Captain, there are several weak points in the cave-in's structure. Careful use of our phasers, from the top down, should be able to clear it.", + "#DEM3\\DEM3_023#This man is badly hurt, and suffering from shock and exposure as well.", + "#DEM3\\DEM3_021#It was a near thing, but he'll live.", + "#DEM3\\DEM3_022#The miner is dead.", + "#DEM3\\DEM3_017#Dammit, Jim, I'm a doctor, not a bellhop. This man's too hurt to be moved.", + "#DEM3\\DEM3N005#Nothing happens.", + "#DEM3\\DEM3_033#I think I was shocked, sir.", + "#DEM3\\DEM3_035#That was definitely a mild shock.", + "#DEM3\\DEM3_034#Ouch, that hurt.", + "#DEM3\\DEM3_B32#Aieeeee.", + "#DEM3\\DEM3_018#He's dead Jim.", + "#DEM3\\DEM3_012#Fascinating, Captain. This door is made of an unknown material. It is clearly built by an alien race we have no knowledge of.", + "#DEM3\\DEM3_027#Fascinating... I'm registering low-intensity shielding unlike anything we've encountered before. That kept this door -- and whatever is behind it -- hidden from the ship's sensors and earlier tricorder readings.", + "#DEM3\\DEM3N009#There is no apparent effect.", + "#DEM3\\DEM3_011#Captain, this course of action is ineffectual.", + "#DEM3\\DEM3N007#The fit is perfect, but something seems to be shorting out.", + "#DEM3\\DEM3N008#The hand's circuitry triggers a connection, and the door opens.", + "#DEM3\\DEM3_019#He's dead, Jim...", + "#DEM3\\DEM3_F21#Oh, thank you, kind souls, for saving my life. Let me rest here for a little before returning to report this miracle to Prelate Angiven.", +}; + +} + +#endif |