Permalink
Browse files

STARTREK: TUG0 (first room of mission 2)

  • Loading branch information...
Drenn1 authored and sev- committed Jun 7, 2018
1 parent ed7d22c commit ad76c744afc777c2e602fb2f3646ef7b93925db2
@@ -94,6 +94,19 @@ struct AwayMission {
bool foundAlienRoom; // 0x57
int16 missionScore; // 0x58
} demon;

// Hijacked
struct {
int16 missionScore; // 0x29
int16 field2b; // 0x2b
int16 field2d; // 0x2d;
bool engineerConscious; // 0x30
bool gotTransmogrifier; // 0x43
bool transporterRepaired; // 0x44
bool spockExaminedTransporter; // 0x45
bool usedTransmogrifierOnTransporter; // 0x46
bool haveBomb; // 0x49
} tug;
};
};
// Size: 0x129 bytes
@@ -26,6 +26,7 @@ MODULE_OBJS = \
rooms/demon4.o \
rooms/demon5.o \
rooms/demon6.o \
rooms/tug0.o \



@@ -65,6 +65,10 @@ Room::Room(StarTrekEngine *vm, const Common::String &name) : _vm(vm) {
_roomActionList = demon6ActionList;
_numRoomActions = sizeof(demon6ActionList) / sizeof(RoomAction);
}
else if (name == "TUG0") {
_roomActionList = tug0ActionList;
_numRoomActions = sizeof(tug0ActionList) / sizeof(RoomAction);
}
else {
warning("Room \"%s\" unimplemented", name.c_str());
_numRoomActions = 0;
@@ -471,6 +471,70 @@ class Room {
void demon6KirkReachedCase();
int demon6ShowCase(int visible);

// TUG0
void tug0Tick1();
void tug0LookAtEngineer();
void tug0GetEngineer();
void tug0LookAtControls();
void tug0UseSpockOnControls();
void tug0SpockReachedControlsToExamine();
void tug0SpockExaminedControls();
void tug0UseTransmogrifierWithoutBitOnControls();
void tug0UseTransmogrifierWithBitOnControls();
void tug0SpockReachedControlsWithTransmogrifier();
void tug0SpockFinishedUsingTransmogrifier();
void tug0TransporterScreenFullyLit();
void tug0UseWireScrapsOnControls();
void tug0UseWireOnControls();
void tug0SpockReachedControlsWithWire();
void tug0SpockFinishedUsingWire();
void tug0UseMedkitOnEngineer();
void tug0MccoyReachedEngineer();
void tug0MccoyHealedEngineer();
void tug0EngineerGotUp();
void tug0GetTransmogrifier();
void tug0KirkReachedToolbox();
void tug0KirkGotTransmogrifier();
void tug0LookAtToolbox();
void tug0UsePhaserOnWelder();
void tug0UseWelderOnWireScraps();
void tug0UseWelderOnMetalScraps();
void tug0UseCombBitOnTransmogrifier();
void tug0UseTransporter();
void tug0SpockReachedControlsToTransport();
void tug0SpockPreparedTransporter();
void tug0SpockReachedTransporter();
void tug0FinishedTransporting();
void tug0UseBombOnTransporter();
void tug0KirkReachedTransporter();
void tug0KirkPlacedBomb();
void tug0SpockReachedControlsForBomb();
void tug0SpockBeginsBeamingBomb();
void tug0SpockFinishesBeamingBomb();
void tug0BombExploded();
void tug0UseMTricorderOnControls();
void tug0UseSTricorderOnControls();
void tug0UseMTricorderOnEngineer();
void tug0MccoyReachedEngineerToScan();
void tug0MccoyFinishedScanningEngineer();
void tug0UseSTricorderOnEngineer();
void tug0WalkToDoor();
void tug0LookAtKirk();
void tug0LookAtSpock();
void tug0LookAtMccoy();
void tug0LookAtRedshirt();
void tug0LookAtTransporter();
void tug0LookAtDoor();
void tug0TalkToKirk();
void tug0TalkToMccoy();
void tug0TalkToSpock();
void tug0TalkToRedshirt();
void tug0TalkToEngineer();
void tug0UseCommunicator();
void tug0LookAnywhere();
void tug0UseSTricorderAnywhere();
void tug0UseMTricorderAnywhere();

private:
// Room-specific variables. This is memset'ed to 0 when the room is initialized.
union {
@@ -513,6 +513,82 @@ RoomAction demon6ActionList[] = {
{ Action(ACTION_FINISHED_WALKING, 5, 0, 0), &Room::demon6KirkReachedCase },
};


RoomAction tug0ActionList[] = {
{ Action(ACTION_TICK, 1, 0, 0), &Room::tug0Tick1 },
{ Action(ACTION_LOOK, 8, 0, 0), &Room::tug0LookAtEngineer },
{ Action(ACTION_GET, 8, 0, 0), &Room::tug0GetEngineer },

{ Action(ACTION_LOOK, 11, 0, 0), &Room::tug0LookAtControls },
{ Action(ACTION_LOOK, 0x21, 0, 0), &Room::tug0LookAtControls },
{ Action(ACTION_USE, OBJECT_SPOCK, 0x21, 0), &Room::tug0UseSpockOnControls },
{ Action(ACTION_FINISHED_WALKING, 16, 0, 0), &Room::tug0SpockReachedControlsToExamine },
{ Action(ACTION_FINISHED_ANIMATION, 17, 0, 0), &Room::tug0SpockExaminedControls },
{ Action(ACTION_USE, OBJECT_IRT, 0x21, 0), &Room::tug0UseTransmogrifierWithoutBitOnControls },
{ Action(ACTION_USE, OBJECT_IRTWB, 0x21, 0), &Room::tug0UseTransmogrifierWithBitOnControls },
{ Action(ACTION_FINISHED_WALKING, 6, 0, 0), &Room::tug0SpockReachedControlsWithTransmogrifier },
{ Action(ACTION_FINISHED_ANIMATION, 7, 0, 0), &Room::tug0SpockFinishedUsingTransmogrifier },
{ Action(ACTION_FINISHED_ANIMATION, 22, 0, 0), &Room::tug0TransporterScreenFullyLit },
{ Action(ACTION_USE, OBJECT_IWIRSCRP, 0x21, 0), &Room::tug0UseWireScrapsOnControls },
{ Action(ACTION_USE, OBJECT_IWIRING, 0x21, 0), &Room::tug0UseWireOnControls },
{ Action(ACTION_FINISHED_WALKING, 8, 0, 0), &Room::tug0SpockReachedControlsWithWire },
{ Action(ACTION_FINISHED_ANIMATION, 9, 0, 0), &Room::tug0SpockFinishedUsingWire },
{ Action(ACTION_USE, OBJECT_IMEDKIT, 8, 0), &Room::tug0UseMedkitOnEngineer },
{ Action(ACTION_FINISHED_WALKING, 2, 0, 0), &Room::tug0MccoyReachedEngineer },
{ Action(ACTION_FINISHED_ANIMATION, 13, 0, 0), &Room::tug0MccoyHealedEngineer },
{ Action(ACTION_FINISHED_ANIMATION, 1, 0, 0), &Room::tug0EngineerGotUp },
{ Action(ACTION_GET, 9, 0, 0), &Room::tug0GetTransmogrifier },
{ Action(ACTION_FINISHED_WALKING, 3, 0, 0), &Room::tug0KirkReachedToolbox },
{ Action(ACTION_FINISHED_ANIMATION, 4, 0, 0), &Room::tug0KirkGotTransmogrifier },
{ Action(ACTION_LOOK, 9, 0, 0), &Room::tug0LookAtToolbox },

{ Action(ACTION_USE, OBJECT_IPHASERS, OBJECT_IPWE, 0), &Room::tug0UsePhaserOnWelder },
{ Action(ACTION_USE, OBJECT_IPHASERK, OBJECT_IPWE, 0), &Room::tug0UsePhaserOnWelder },
{ Action(ACTION_USE, OBJECT_IPWE, OBJECT_IWIRSCRP, 0), &Room::tug0UseWelderOnWireScraps },
{ Action(ACTION_USE, OBJECT_IPWE, OBJECT_IJNKMETL, 0), &Room::tug0UseWelderOnMetalScraps },
{ Action(ACTION_USE, OBJECT_ICOMBBIT, OBJECT_IRT, 0), &Room::tug0UseCombBitOnTransmogrifier },

{ Action(ACTION_USE, OBJECT_SPOCK, 11, 0), &Room::tug0UseTransporter },
{ Action(ACTION_USE, OBJECT_KIRK, 0x22, 0), &Room::tug0UseTransporter },
{ Action(ACTION_FINISHED_WALKING, 14, 0, 0), &Room::tug0SpockReachedControlsToTransport },
{ Action(ACTION_FINISHED_ANIMATION, 18, 0, 0), &Room::tug0SpockPreparedTransporter },
{ Action(ACTION_FINISHED_WALKING, 20, 0, 0), &Room::tug0SpockReachedTransporter },
{ Action(ACTION_FINISHED_ANIMATION, 21, 0, 0), &Room::tug0FinishedTransporting },

{ Action(ACTION_USE, OBJECT_IBOMB, 0x22, 0), &Room::tug0UseBombOnTransporter },
{ Action(ACTION_FINISHED_WALKING, 5, 0, 0), &Room::tug0KirkReachedTransporter },
{ Action(ACTION_FINISHED_ANIMATION, 10, 0, 0), &Room::tug0KirkPlacedBomb },
{ Action(ACTION_FINISHED_WALKING, 15, 0, 0), &Room::tug0SpockReachedControlsForBomb },
{ Action(ACTION_FINISHED_ANIMATION, 19, 0, 0), &Room::tug0SpockBeginsBeamingBomb },
{ Action(ACTION_FINISHED_ANIMATION, 12, 0, 0), &Room::tug0SpockFinishesBeamingBomb },
{ Action(ACTION_TIMER_EXPIRED, 0, 0, 0), &Room::tug0BombExploded },

{ Action(ACTION_USE, OBJECT_MCCOY, 0x21, 0), &Room::tug0UseMTricorderOnControls },
{ Action(ACTION_USE, OBJECT_IMTRICOR, 0x21, 0), &Room::tug0UseMTricorderOnControls },
{ Action(ACTION_USE, OBJECT_ISTRICOR, 0x21, 0), &Room::tug0UseSTricorderOnControls },
{ Action(ACTION_USE, OBJECT_IMTRICOR, 8, 0), &Room::tug0UseMTricorderOnEngineer },
{ Action(ACTION_FINISHED_WALKING, 24, 0, 0), &Room::tug0MccoyReachedEngineerToScan },
{ Action(ACTION_FINISHED_ANIMATION, 25, 0, 0), &Room::tug0MccoyFinishedScanningEngineer },
{ Action(ACTION_USE, OBJECT_SPOCK, 8, 0), &Room::tug0UseSTricorderOnEngineer },
{ Action(ACTION_USE, OBJECT_ISTRICOR, 8, 0), &Room::tug0UseSTricorderOnEngineer },
{ Action(ACTION_WALK, 0x23, 0, 0), &Room::tug0WalkToDoor },
{ Action(ACTION_LOOK, OBJECT_KIRK, 0, 0), &Room::tug0LookAtKirk },
{ Action(ACTION_LOOK, OBJECT_SPOCK, 0, 0), &Room::tug0LookAtSpock },
{ Action(ACTION_LOOK, OBJECT_MCCOY, 0, 0), &Room::tug0LookAtMccoy },
{ Action(ACTION_LOOK, OBJECT_REDSHIRT, 0, 0), &Room::tug0LookAtRedshirt },
{ Action(ACTION_LOOK, 0x22, 0, 0), &Room::tug0LookAtTransporter },
{ Action(ACTION_LOOK, 0x23, 0, 0), &Room::tug0LookAtDoor },
{ Action(ACTION_TALK, OBJECT_KIRK, 0, 0), &Room::tug0TalkToKirk },
{ Action(ACTION_TALK, OBJECT_MCCOY, 0, 0), &Room::tug0TalkToMccoy },
{ Action(ACTION_TALK, OBJECT_SPOCK, 0, 0), &Room::tug0TalkToSpock },
{ Action(ACTION_TALK, OBJECT_REDSHIRT, 0, 0), &Room::tug0TalkToRedshirt },
{ Action(ACTION_TALK, 8, 0, 0), &Room::tug0TalkToEngineer },
{ Action(ACTION_USE, OBJECT_ICOMM, 0, 0), &Room::tug0UseCommunicator },
{ Action(ACTION_LOOK, -1, 0, 0), &Room::tug0LookAnywhere },
{ Action(ACTION_USE, OBJECT_ISTRICOR, -1, 0), &Room::tug0UseSTricorderAnywhere },
{ Action(ACTION_USE, OBJECT_IMTRICOR, -1, 0), &Room::tug0UseMTricorderAnywhere },
};

}

#endif
Oops, something went wrong.

0 comments on commit ad76c74

Please sign in to comment.