Permalink
Browse files

STARTREK: FEATHER7

  • Loading branch information...
Drenn1 authored and sev- committed Jul 6, 2018
1 parent 0c41f30 commit 092cf422cab8aaf21adf742bf4f0b8154f82b113
@@ -161,7 +161,7 @@ Room::Room(StarTrekEngine *vm, const Common::String &name) : _vm(vm) {
}
else if (name == "FEATHER7") {
_roomActionList = feather7ActionList;
_numRoomActions = sizeof(feather7ActionList) / sizeof(RoomAction);
_numRoomActions = feather7NumActions;
}
else {
warning("Room \"%s\" unimplemented", name.c_str());
@@ -1708,6 +1708,13 @@ class Room {

// FEATHER7
void feather7Tick1();
void feather7Tick40();
void feather7KirkReachedSeat();
void feather7SpockReachedSeat();
void feather7MccoyReachedSeat();
void feather7QuetzecoatlReachedSeat();
void feather7KirkSatDown();
void feather7ReadyToBeamOut();

private:
// Room-specific variables. This is memset'ed to 0 when the room is initialized.
@@ -1841,6 +1848,9 @@ class Room {

// feather6
bool usedRockOnCrystalsOnce;

// feather7
bool insultedQuetzecoatl;
} feather;


@@ -22,14 +22,143 @@

#include "startrek/room.h"

#define OBJECT_8 8

#define HOTSPOT_20 0x20
#define OBJECT_QUETZECOATL 8

namespace StarTrek {

extern const RoomAction feather7ActionList[] = {
{ {ACTION_TICK, 1, 0, 0}, &Room::feather7Tick1 },
{ {ACTION_TICK, 40, 0, 0}, &Room::feather7Tick40 },
{ {ACTION_DONE_WALK, 1, 0, 0}, &Room::feather7KirkReachedSeat },
{ {ACTION_DONE_WALK, 2, 0, 0}, &Room::feather7SpockReachedSeat },
{ {ACTION_DONE_WALK, 3, 0, 0}, &Room::feather7MccoyReachedSeat },
{ {ACTION_DONE_ANIM, 4, 0, 0}, &Room::feather7QuetzecoatlReachedSeat },
{ {ACTION_DONE_ANIM, 1, 0, 0}, &Room::feather7KirkSatDown },
{ {ACTION_DONE_ANIM, 2, 0, 0}, &Room::feather7ReadyToBeamOut },
};

extern const int feather7NumActions = sizeof(feather7ActionList) / sizeof(RoomAction);


void Room::feather7Tick1() {
playVoc("FEA7LOOP");
playMidiMusicTracks(33);
_vm->_awayMission.disableInput = 2;
loadActorAnim(OBJECT_QUETZECOATL, "s5r7qn", 0x106, 0x98);
}

void Room::feather7Tick40() {
if (_vm->_awayMission.feather.diedFromStalactites)
showText(TX_SPEAKER_QUETZECOATL, TX_FEA7_017);

showText(TX_SPEAKER_QUETZECOATL, TX_FEA7_022);

if (_vm->_awayMission.redshirtDead)
showText(TX_SPEAKER_QUETZECOATL, TX_FEA7_021);

// BUGFIX: Show this even if redshirt isn't dead (he wishes you wouldn't have knocked
// out Tlaoxac)
if (_vm->_awayMission.feather.knockedOutTlaoxac)
showText(TX_SPEAKER_QUETZECOATL, TX_FEA7_023);

showText(TX_SPEAKER_QUETZECOATL, TX_FEA7_027);

walkCrewmanC(OBJECT_KIRK, 0x6c, 0x93, &Room::feather7KirkReachedSeat);
walkCrewmanC(OBJECT_SPOCK, 0xbb, 0x8c, &Room::feather7SpockReachedSeat);
walkCrewmanC(OBJECT_MCCOY, 0x8d, 0x8c, &Room::feather7MccoyReachedSeat);
loadActorAnimC(OBJECT_QUETZECOATL, "s5r7qw", -1, -1, &Room::feather7QuetzecoatlReachedSeat);
}

void Room::feather7KirkReachedSeat() {
loadActorAnimC(OBJECT_KIRK, "s5r7ks", -1, -1, &Room::feather7KirkSatDown);
}

void Room::feather7SpockReachedSeat() {
loadActorAnim2(OBJECT_SPOCK, "s5r7ss");
}

void Room::feather7MccoyReachedSeat() {
loadActorAnim2(OBJECT_MCCOY, "s5r7ms");
}

void Room::feather7QuetzecoatlReachedSeat() {
loadActorAnim2(OBJECT_QUETZECOATL, "s5r7qn", 0x97, 0x98);
}

void Room::feather7KirkSatDown() {
const TextRef choices1[] = {
TX_SPEAKER_KIRK,
TX_FEA7_005, TX_FEA7_006, TX_FEA7_010,
TX_BLANK
};
int choice = showText(choices1);

if (choice == 0) {
_roomVar.feather.insultedQuetzecoatl = true;
showText(TX_SPEAKER_QUETZECOATL, TX_FEA7_020);
} else if (choice == 1)
showText(TX_SPEAKER_QUETZECOATL, TX_FEA7_019);
else
showText(TX_SPEAKER_QUETZECOATL, TX_FEA7_016);

showText(TX_SPEAKER_QUETZECOATL, TX_FEA7_029);

const TextRef choices2[] = {
TX_SPEAKER_KIRK,
TX_FEA7_007, TX_FEA7_004, TX_FEA7_012,
TX_BLANK
};
choice = showText(choices2);

if (choice == 0) {
_roomVar.feather.insultedQuetzecoatl = true;
showText(TX_SPEAKER_QUETZECOATL, TX_FEA7_030);
} else if (choice == 1)
showText(TX_SPEAKER_QUETZECOATL, TX_FEA7_018);
else {
_roomVar.feather.insultedQuetzecoatl = true;
showText(TX_SPEAKER_QUETZECOATL, TX_FEA7_026);
}

showText(TX_SPEAKER_SPOCK, TX_FEA7_014);
showText(TX_SPEAKER_QUETZECOATL, TX_FEA7_024);

const TextRef choices3[] = {
TX_SPEAKER_KIRK,
TX_FEA7_008, TX_FEA7_009, TX_FEA7_011,
TX_BLANK
};
choice = showText(choices3);

if (choice == 0) {
_roomVar.feather.insultedQuetzecoatl = true;
showText(TX_SPEAKER_QUETZECOATL, TX_FEA7_025);
} else if (choice == 1)
showText(TX_SPEAKER_QUETZECOATL, TX_FEA7_028);

showText(TX_SPEAKER_QUETZECOATL, TX_FEA7_015);
showText(TX_SPEAKER_MCCOY, TX_FEA7_013);
showText(TX_SPEAKER_KIRK, TX_FEA7_003);

loadActorAnimC(OBJECT_KIRK, "s5r7ku", -1, -1, &Room::feather7ReadyToBeamOut);
loadActorAnim2(OBJECT_SPOCK, "s5r7su");
loadActorAnim2(OBJECT_MCCOY, "s5r7mu");
}

void Room::feather7ReadyToBeamOut() {
if (_vm->_awayMission.redshirtDead)
showText(TX_SPEAKER_KIRK, TX_FEA7_002);
else {
_vm->_awayMission.feather.missionScore += 1;
showText(TX_SPEAKER_KIRK, TX_FEA7_001);
}

if (!_roomVar.feather.insultedQuetzecoatl)
_vm->_awayMission.feather.missionScore += 2;
_vm->_awayMission.feather.missionScore += 4;

loadActorAnim2(OBJECT_QUETZECOATL, "s5r7qt");
endMission(_vm->_awayMission.feather.missionScore, 0x13, 0);
}

}
@@ -1782,12 +1782,8 @@ RoomAction feather0ActionList[] = {

extern const RoomAction feather1ActionList[], feather2ActionList[], feather3ActionList[], feather4ActionList[];
extern const int feather1NumActions, feather2NumActions, feather3NumActions, feather4NumActions;
extern const RoomAction feather5ActionList[], feather6ActionList[];
extern const int feather5NumActions, feather6NumActions;

RoomAction feather7ActionList[] = {
{ {ACTION_TICK, 1, 0, 0}, &Room::feather7Tick1 },
};
extern const RoomAction feather5ActionList[], feather6ActionList[], feather7ActionList[];
extern const int feather5NumActions, feather6NumActions, feather7NumActions;

}

@@ -1952,6 +1952,38 @@ enum GameStringIDs {
TX_FEA6N029, // UNUSED


TX_FEA7_001,
TX_FEA7_002,
TX_FEA7_003,
TX_FEA7_004,
TX_FEA7_005,
TX_FEA7_006,
TX_FEA7_007,
TX_FEA7_008,
TX_FEA7_009,
TX_FEA7_010,
TX_FEA7_011,
TX_FEA7_012,
TX_FEA7_013,
TX_FEA7_014,
TX_FEA7_015,
TX_FEA7_016,
TX_FEA7_017,
TX_FEA7_018,
TX_FEA7_019,
TX_FEA7_020,
TX_FEA7_021,
TX_FEA7_022,
TX_FEA7_023,
TX_FEA7_024,
TX_FEA7_025,
TX_FEA7_026,
TX_FEA7_027,
TX_FEA7_028,
TX_FEA7_029,
TX_FEA7_030,


TX_SIN3_012,


@@ -3837,6 +3869,38 @@ const char * const g_gameStrings[] = {
"#FEA6\\FEA6N029#You scratch your initials. No dilithium crystals were found.",


"#FEA7\\FEA7_001#Scotty, five to beam up.",
"#FEA7\\FEA7_002#Scotty, four to beam up.",
"#FEA7\\FEA7_003#You've got to do it, Bones! If the Klingons realize he's no longer a threat to them, perhaps we can avoid a war!",
"#FEA7\\FEA7_004#Absolutely. Your best intentions were changed by the imperfect humans that you left in charge after you departed. Such is the way of our race, I'm afraid.",
"#FEA7\\FEA7_005#I've had it up to here with so-called superior beings terrorizing my crew because we're so 'primitive'. Maybe you should see how primitive you are before you go around testing others.",
"#FEA7\\FEA7_006#One thing first. If you're so peaceful, how come the Aztecs were so violent and agressive?",
"#FEA7\\FEA7_007#The Federation is not in the business of lying, mister.",
"#FEA7\\FEA7_008#We're a technologically advanced starfaring race, what do you think? That we wouldn't have made progress in medicine?",
"#FEA7\\FEA7_009#With Dr. McCoy, I sometimes wonder, but yes, I would say we have made considerable advances.",
"#FEA7\\FEA7_010#Yes, I guess we do. Go on.",
"#FEA7\\FEA7_011#Yes, why do you ask?",
"#FEA7\\FEA7_012#You messed up in a big way. Perhaps you should try following the Prime Directive. It changed our lives.",
"#FEA7\\FEA7_013#Jim, I'll try, but the physiology is completely alien...",
"#FEA7\\FEA7_014#You show great wisdom, sir. But your statement implies that you wish to change your condition.",
"#FEA7\\FEA7_015#At the top of my spine is a gland not found in your species. This is the seat of my power. I wish you to remove it, thereby making me a mortal.",
"#FEA7\\FEA7_016#First, I have one question...",
"#FEA7\\FEA7_017#I am sorry you had to go through this ordeal. It was not meant for you to die.",
"#FEA7\\FEA7_018#I sense truth in this. Perhaps this is what happened to my children on the Klingon world of Hrakkour, which would explain why they are searching for me. I have clearly abused the power that was given me long ago.",
"#FEA7\\FEA7_019#I tried to teach them the concept of self-sacrifice. It would appear they did not completely understand my teachings.",
"#FEA7\\FEA7_020#I was not aware you had been tested before. My apologies.",
"#FEA7\\FEA7_021#I was particularly impressed by the sacrifice made by Lt. Stragey. Of course, I gave him back his life. He is now safely aboard your vessel.",
"#FEA7\\FEA7_022#I watched as you worked through the problems I set in your path. you are a valiant, intelligent species.",
"#FEA7\\FEA7_023#I would have been more impressed had you found a less violent solution. My children are dear to me. Even so, few choices remain to me.",
"#FEA7\\FEA7_024#Indeed. If my mission of peace was overthrown, then I am no longer worthy of my power. Tell me, has your species made progress in the medical arts?",
"#FEA7\\FEA7_025#Of course, how foolish of me. Still, there are cultures where medical knowledge is considered a sign of weakness. Warrior cultures, where nothing matters but physical strength. Survival of the foolish.",
"#FEA7\\FEA7_026#Ours is an intensely curious race, Captain. My brothers and I have raised children on a thousand worlds, loved them, watched them grow, only to see them become separated from us by the passage of time. It is sad and lonely process, one which I shall not repeat again. I am no longer worthy of my gift.",
"#FEA7\\FEA7_027#Please sit down. We have much to discuss.",
"#FEA7\\FEA7_028#Then I shall ask to make use of your advances.",
"#FEA7\\FEA7_029#You are clearly not the liars I thought you to be. Were you telling me the truth about my disciples? That they became ruthless savages?",
"#FEA7\\FEA7_030#Your harshness is unwarranted, but I sense truth in this. Perhaps this is what happened to my children on the Klingon world of Hrakkour, which would explain why they are searching for me. I have clearly abused the power that was given me long ago.",


"#SIN3\\SIN3_012#Can't say I like the decor.",


0 comments on commit 092cf42

Please sign in to comment.