/* 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_ROOM_H #define STARTREK_ROOM_H #include "common/rect.h" #include "common/ptr.h" #include "common/str.h" #include "common/hashmap.h" #include "startrek/action.h" #include "startrek/awaymission.h" #include "startrek/fixedint.h" #include "startrek/object.h" #include "startrek/soundeffects.h" #include "startrek/text.h" using Common::SharedPtr; namespace StarTrek { class StarTrekEngine; class Room; #include "common/pack-start.h" // START STRUCT PACKING // Per-room action functions struct RoomAction { const Action action; void (Room::*funcPtr)(); }; #include "common/pack-end.h" // END STRUCT PACKING // Offsets of data in RDF files const int RDF_BAN_DATA_START = 0x1e; const int RDF_BAN_DATA_END = 0x20; const int RDF_WARP_ROOM_INDICES = 0x22; const int RDF_ROOM_ENTRY_POSITIONS = 0x2a; const int RDF_BEAM_IN_POSITIONS = 0xaa; const int RDF_SPAWN_POSITIONS = 0xba; #define COMMON_MESSAGE_OFFSET 1000 #define FOLLOWUP_MESSAGE_OFFSET 600 #define SCOTTY_MESSAGE_OFFSET 500 class Room { public: Room(StarTrekEngine *vm, const Common::String &name); ~Room(); friend class Console; uint16 readRdfWord(int offset); /** * Scale-related stuff; at the "min Y" position or below, the crewmembers have * "minimum" scale; that value rises to the "max scale" value by the time they reach * the "max Y" value. */ uint16 getMaxY() { return readRdfWord(0x06); } uint16 getMinY() { return readRdfWord(0x08); } Fixed8 getMinScale() { return Fixed8::fromRaw(readRdfWord(0x0a)); } Fixed8 getMaxScale() { return Fixed8::fromRaw(readRdfWord(0x0c)); } int16 getBanDataStart() { return readRdfWord(RDF_BAN_DATA_START); } int16 getBanDataEnd() { return readRdfWord(RDF_BAN_DATA_END); } /** * Check if a particular action is defined for this room. */ bool actionHasCode(const Action &action); bool actionHasCode(byte type, byte b1, byte b2, byte b3); /** * Execute a particular action for this room, if defined. */ bool handleAction(const Action &action); bool handleAction(byte type, byte b1, byte b2, byte b3); /** * Same as above, but if any byte in the action is -1 (0xff), it matches any value. */ bool handleActionWithBitmask(const Action &action); bool handleActionWithBitmask(byte type, byte b1, byte b2, byte b3); uint16 getFirstHotspot() { return readRdfWord(0x12); } uint16 getHotspotEnd() { return readRdfWord(0x14); } // Warp-related stuff uint16 getFirstWarpPolygonOffset() { return readRdfWord(0x16); } uint16 getWarpPolygonEndOffset() { return readRdfWord(0x18); } uint16 getFirstDoorPolygonOffset() { return readRdfWord(0x1a); } uint16 getDoorPolygonEndOffset() { return readRdfWord(0x1c); } /** * Get the point at which a crewman beams in to this room (not properly defined for * all rooms). */ Common::Point getBeamInPosition(int crewmanIndex); /** * This is analagous to above, but instead of beaming in, they just appear in a spot. * Used sparingly, ie. in feather's serpent when appearing in cave after Quetzecoatl * warps the crew. */ Common::Point getSpawnPosition(int crewmanIndex); /** * Returns true if the given position is contained in a polygon. * * The data passed contains the following words in this order: * * Index of polygon (unused here) * * Number of vertices in polygon * * For each vertex: x and y coordinates. */ bool isPointInPolygon(int offset, int16 x, int16 y); byte *_rdfData; private: uint16 _rdfSize; StarTrekEngine *_vm; AwayMission *_awayMission; const RoomAction *_roomActionList; int _numRoomActions; Common::HashMap _lookMessages; Common::HashMap _lookWithTalkerMessages; Common::HashMap _talkMessages; void loadRoomMessages(); void loadOtherRoomMessages(); void loadRoomMessage(const char *text); Common::String patchRoomMessage(const char *text); int findFunctionPointer(int action, void (Room::*funcPtr)()); // Interface for room-specific code /** * Cmd 0x00 */ void loadActorAnim(int actorIndex, Common::String anim, int16 x = -1, int16 y = -1, uint16 field66 = 0); /** * Cmd 0x00 */ void loadActorAnimC(int actorIndex, Common::String anim, int16 x, int16 y, void (Room::*funcPtr)()); /** * Cmd 0x01 */ void loadActorStandAnim(int actorIndex); /** * Cmd 0x02 * This is exactly the same as "loadActorAnim", but the game calls it at different times? */ void loadActorAnim2(int actorIndex, Common::String anim, int16 x = -1, int16 y = -1, uint16 field66 = 0); /** * Cmd 0x03 */ int showRoomSpecificText(const char **textAddr); int showMultipleTexts(const TextRef *text, bool fromRDF = false, bool lookWithTalker = false); int showDescription(TextRef text, bool fromRDF = false, bool lookWithTalker = false); int showText(TextRef speaker, TextRef text, bool fromRDF = false, bool lookWithTalker = false); /** * Cmd 0x04 */ void giveItem(int item); // Command 0x05: "demon4ShowSunPuzzle" /** * Cmd 0x06 */ void loadRoomIndex(int roomIndex, int spawnIndex); /** * Cmd 0x07 */ void loseItem(int item); /** * Cmd 0x08 */ void walkCrewman(int actorIndex, int16 destX, int16 destY, uint16 finishedAnimActionParam = 0); void walkCrewmanC(int actorIndex, int16 destX, int16 destY, void (Room::*funcPtr)()); // Cmd 0x08 public: /** * Cmd 0x09: Loads a pair of .map and .iw files to change the room's collisions and pathfinding. */ void loadMapFile(const Common::String &name); private: /** * Cmd 0x0a */ void showBitmapFor5Ticks(const Common::String &bmpName, int priority); /** * Cmd 0x0b */ bool haveItem(int item); // Command 0x0c: "demon6ShowCase" /** * Cmd 0x0d */ Common::Point getActorPos(int actorIndex); /** * Cmd 0x0e: Returns a word in range [start, end] (that's inclusive). */ int16 getRandomWordInRange(int start, int end); /** * Cmd 0x0f */ void playSoundEffectIndex(int soundEffect); /** * Cmd 0x10 */ void playMidiMusicTracks(int startTrack, int loopTrack = -1); /** * Cmd 0x11 */ void endMission(int16 score, int16 arg2, int16 arg3); /** * Cmd 0x12 */ void showGameOverMenu(); /** * Cmd 0x13: Text input used in "Than Old Devil Moon" (SINS mission) * Takes a list of codes (ending with nullptr) and returns the index of the matched * code (plus one), or 0 if no code was matched. */ int showCodeInputBox(const char * const *codes); /** * Cmd 0x14: Show a map of the republic for mission 7 */ void showRepublicMap(int16 arg0, int16 arg2); /** * Cmd 0x15 */ void playVoc(Common::String filename); /** * Cmd 0x17 */ void stopAllVocSounds(); // Helper functions for repetitive stuff. Common::String getCrewmanAnimFilename(int object, const Common::String &str); /** * If "changeDirection" is true, they remain facing that direction even after their * animation is finished. The game is inconsistent about doing this. */ void spockScan(int direction, TextRef text, bool changeDirection = false, bool fromRDF = false); void mccoyScan(int direction, TextRef text, bool changeDirection = false, bool fromRDF = false); // Room-specific code public: // DEMON0 void demon0Tick1(); void demon0Tick2(); void demon0Tick60(); void demon0Tick100(); void demon0Tick140(); void demon0TouchedWarp0(); void demon0WalkToBottomDoor(); void demon0TouchedHotspot1(); void demon0ReachedBottomDoor(); void demon0WalkToTopDoor(); void demon0TouchedHotspot0(); void demon0ReachedTopDoor(); void demon0TalkToPrelate(); void demon0LookAtPrelate(); void demon0UsePhaserOnSnow(); void demon0UsePhaserOnSign(); void demon0UsePhaserOnShelter(); void demon0UsePhaserOnPrelate(); void demon0LookAtSign(); void demon0LookAtTrees(); void demon0LookAtSnow(); void demon0LookAnywhere(); void demon0LookAtBushes(); void demon0LookAtKirk(); void demon0LookAtMcCoy(); void demon0LookAtRedShirt(); void demon0LookAtSpock(); void demon0LookAtShelter(); void demon0TalkToKirk(); void demon0TalkToRedshirt(); void demon0TalkToMcCoy(); void demon0TalkToSpock(); void demon0AskPrelateAboutSightings(); void demon0UseSTricorderAnywhere(); void demon0UseMTricorderAnywhere(); void demon0UseMTricorderOnPrelate(); void demon0BadResponse(); // DEMON1 void demon1Tick1(); void demon1WalkToCave(); void demon1TouchedTopWarp(); void demon1TouchedBottomWarp(); void demon1Timer2Expired(); void demon1Timer0Expired(); void demon1Timer3Expired(); void demon1Timer1Expired(); void demon1KlingonFinishedAimingWeapon(); void demon1KirkShot(); void demon1UsePhaserOnAnything(); void demon1UsePhaserOnKlingon1(); void demon1ShootKlingon1(); void demon1KlingonDropsHand(); void demon1UsePhaserOnKlingon2(); void demon1ShootKlingon2(); void demon1UsePhaserOnKlingon3(); void demon1ShootKlingon3(); void demon1AllKlingonsDead(); void demon1Timer5Expired(); void demon1UseMTricorderOnKlingon(); void demon1UseSTricorderOnTulips(); void demon1UseSTricorderOnPods(); void demon1UseSTricorderOnCattails(); void demon1UseSTricorderOnFerns(); void demon1UseSTricorderOnHand(); void demon1UseSTricorderOnKlingon1(); void demon1UseSTricorderOnKlingon2Or3(); void demon1UseMTricorderOnKirk(); void demon1UseMTricorderOnSpock(); void demon1UseMTricorderOnRedshirt(); void demon1UseMTricorderOnCrewman(); void demon1GetHand(); void demon1ReachedHand(); void demon1PickedUpHand(); void demon1FinishedGettingHand(); void demon1LookAtKlingon(); void demon1LookAtCattails(); void demon1LookAtTulips(); void demon1LookAtPods(); void demon1LookAtFerns(); void demon1LookAtStream(); void demon1LookAtMine(); void demon1LookAtMountain(); void demon1LookAtHand(); void demon1LookAnywhere(); void demon1LookAtKirk(); void demon1LookAtSpock(); void demon1LookAtMcCoy(); void demon1LookAtRedshirt(); void demon1TalkToKirk(); void demon1TalkToSpock(); void demon1TalkToMcCoy(); void demon1TalkToRedshirt(); void demon1TalkToUnconsciousCrewman(); // DEMON2 void demon2Tick1(); void demon2WalkToCave(); void demon2ReachedCave(); void demon2TouchedWarp1(); void demon2LookAtCave(); void demon2LookAtMountain(); void demon2LookAtBerries(); void demon2LookAtFern(); void demon2LookAtMoss(); void demon2LookAtLights(); void demon2LookAtAnything(); void demon2LookAtKirk(); void demon2LookAtSpock(); void demon2LookAtMcCoy(); void demon2LookAtRedshirt(); void demon2TalkToKirk(); void demon2TalkToSpock(); void demon2TalkToMcCoy(); void demon2TalkToRedshirt(); void demon2UsePhaserOnBerries(); void demon2UseSTricorderOnBerries(); void demon2UseSTricorderOnMoss(); void demon2UseSTricorderOnFern(); void demon2UseSTricorderOnCave(); void demon2UseMTricorderOnBerries(); void demon2GetBerries(); void demon2ReachedBerries(); void demon2PickedUpBerries(); // DEMON3 void demon3Tick1(); void demon3Timer0Expired(); void demon3Timer1Expired(); void demon3Timer3Expired(); void demon3FinishedAnimation1(); void demon3FinishedAnimation2(); void demon3FinishedWalking5(); void demon3McCoyInFiringPosition(); void demon3SpockInFiringPosition(); void demon3RedShirtInFiringPosition(); void demon3KirkInFiringPosition(); void demon3CrewmanInFiringPosition(); void demon3PullOutPhaserAndFireAtBoulder(); void demon3FireAtBoulder(); void demon3UsePhaserOnRedshirt(); void demon3UseStunPhaserOnBoulder(); void demon3UsePhaserOnBoulder1(); void demon3UsePhaserOnBoulder2(); void demon3UsePhaserOnBoulder3(); void demon3UsePhaserOnBoulder4(); void demon3BoulderCommon(); void demon3UseSTricorderOnMiner(); void demon3UseSTricorderOnPanel(); void demon3UseSTricorderOnBoulder(); void demon3UseMTricorderOnBoulder(); void demon3UseCrewmanOnPanel(); void demon3UseRedshirtOnPanel(); void demon3RedshirtReachedPanel(); void demon3RedshirtUsedPanel(); void demon3RedshirtElectrocuted(); void demon3UseSTricorderOnDoor(); void demon3UseSTricorderOnAnything(); void demon3UseMTricorderOnDoor(); void demon3UsePhaserOnDoor(); void demon3UseHandOnPanel(); void demon3KirkReachedHandPanel(); void demon3KirkUsedHandPanel(); void demon3UseMTricorderOnMiner(); void demon3UseMedkitOnMiner(); void demon3McCoyReachedMiner(); void demon3McCoyFinishedHealingMiner(); void demon3GetMiner(); void demon3TalkToMiner(); void demon3TalkToKirk(); void demon3TalkToSpock(); void demon3TalkToMccoy(); void demon3TalkToRedshirt(); void demon3LookAtKirk(); void demon3LookAtSpock(); void demon3LookAtMccoy(); void demon3LookAtRedshirt(); void demon3LookAnywhere(); void demon3LookAtMiner(); void demon3LookAtBoulder1(); void demon3LookAtBoulder2(); void demon3LookAtBoulder3(); void demon3LookAtBoulder4(); void demon3LookAtStructure(); void demon3LookAtDoor(); void demon3LookAtPanel(); void demon3LookAtLight(); // DEMON4 void demon4Tick1(); void demon4FinishedAnimation1(); void demon4FinishedAnimation2(); void demon4FinishedAnimation3(); void demon4Timer0Expired(); void demon4Timer1Expired(); void demon4CrewmanReachedBeamoutPosition(); void demon4Timer2Expired(); void demon4Timer3Expired(); void demon4Timer4Expired(); void demon4Timer5Expired(); void demon4Timer6Expired(); void demon4UsePhaserOnNauian(); void demon4UseMetalOnSecurityEquipment(); void demon4KirkReachedSecurityEquipment(); void demon4KirkFinishedUsingSecurityEquipment(); void demon4UseMetalOnNauian(); void demon4KirkReachedNauian(); void demon4UseSkullOnNauian(); void demon4KirkReachedNauianWithSkull(); void demon4UsePhaserOnPanel(); void demon4UsePhaserOnPattern(); void demon4UsePhaserOnMccoy(); void demon4TalkToNauian(); void demon4LookAtPattern(); void demon4LookAtAlien(); void demon4LookAnywhere(); void demon4LookAtSecurityEquipment(); void demon4LookAtFloor(); void demon4LookAtKirk(); void demon4LookAtMccoy(); void demon4LookAtSpock(); void demon4LookAtRedshirt(); void demon4LookAtChamber(); void demon4LookAtPanel(); void demon4UseKirkOnPanel(); void demon4UseSpockOnPanel(); void demon4UseMccoyOnPanel(); void demon4UseRedshirtOnPanel(); void demon4UseCrewmanOnPanel(); void demon4CrewmanReachedPanel(); bool demon4ShowSunPuzzle(); void demon4TalkToKirk(); void demon4TalkToMccoy(); void demon4TalkToSpock(); void demon4TalkToRedshirt(); void demon4UseSTricorderOnChamber(); void demon4UseSTricorderOnPattern(); void demon4UseMTricorderOnPattern(); void demon4UseSTricorderOnPanel(); void demon4UseMTricorderOnPanel(); void demon4UseSTricorderOnAnything(); void demon4UseMTricorderOnAnything(); void demon4UseSTricorderOnNauian(); void demon4UseMTricorderOnNauian(); void demon4UseSTricorderOnSecurityEquipment(); void demon4UseMTricorderOnSecurityEquipment(); // DEMON5 void demon5Tick1(); void demon5WalkToDoor(); void demon5TouchedDoorOpenTrigger(); void demon5DoorOpenedOrReachedDoor(); void demon5UseSTricorderOnCrate(); void demon5UsePhaserOnAnything(); void demon5UseHandOnStephen(); void demon5UseBerryOnStephen(); void demon5UseHypoDytoxinOnChub(); void demon5MccoyReachedChub(); void demon5MccoyHealedChub(); void demon5UseHypoDytoxinOnAnything(); void demon5UseBerryOnChub(); void demon5LookAtRoberts(); void demon5LookAtGrisnash(); void demon5LookAtStephen(); void demon5LookAtKirk(); void demon5LookAtSpock(); void demon5LookAtMccoy(); void demon5LookAtRedshirt(); void demon5LookAtMountain(); void demon5LookAtCrate(); void demon5LookAnywhere(); void demon5LookAtChub(); void demon5TalkToRoberts(); void demon5TalkToChub(); void demon5TalkToGrisnash(); void demon5TalkToStephen(); void demon5TalkToKirk(); void demon5TalkToSpock(); void demon5TalkToRedshirt(); void demon5TalkToMccoy(); void demon5UseMTricorderOnRoberts(); void demon5UseMTricorderOnChub(); void demon5UseMTricorderOnGrisnash(); void demon5UseMTricorderOnStephen(); void demon5CheckCompletedStudy(); void demon5GetCrate(); // DEMON6 void demon6Tick1(); void demon6Tick30(); void demon6SpockReachedComputer(); void demon6WalkToDoor(); void demon6TouchedDoorOpenTrigger(); void demon6DoorOpenedOrReachedDoor(); void demon6UsePhaserOnStephen(); void demon6UsePhaserOnCase(); void demon6LookAtWorkspace(); void demon6LookAtCase(); void demon6LookAtTable(); void demon6LookAtMineral(); void demon6LookAtShells(); void demon6LookAtSkull(); void demon6LookAtMetal(); void demon6LookAtMeteor(); void demon6LookAtMountain(); void demon6LookAtSynthesizer(); void demon6LookAtKirk(); void demon6LookAtSpock(); void demon6LookAtMccoy(); void demon6LookAtRedshirt(); void demon6LookAtComputer(); void demon6LookAnywhere(); void demon6LookAtStephen(); void demon6TalkToMccoy(); void demon6TalkToSpock(); void demon6TalkToKirk(); void demon6TalkToRedshirt(); void demon6TalkToStephen(); void demon6StephenIsInsulted(); void demon6StephenDescribesItemsInCase(); void demon6UseBerryOnStephen(); void demon6UseBerryOnSynthesizer(); void demon6MccoyReachedSynthesizer(); void demon6FinishedMakingHypoDytoxin(); void demon6UseHandOnWorkspace(); void demon6SpockReachedWorkspace(); void demon6SpockFinishedRepairingHand(); void demon6UseAnythingOnWorkspace(); void demon6UseCrewmanOnCase(); void demon6UseKirkOnComputer(); void demon6UseMccoyOnComputer(); void demon6UseRedshirtOnComputer(); void demon6UseSpockOnComputer(); void demon6UseMineralOnStephen(); void demon6UseShellsOnStephen(); void demon6UseMeteorOnStephen(); void demon6UseSkullOnStephen(); void demon6UseMetalOnStephen(); void demon6ReturnItemToStephen(int item); void demon6UseHandOnStephen(); void demon6UseMTricoderOnStephen(); void demon6UseSTricoderOnTable(); void demon6UseSTricoderOnComputer(); void demon6UseSTricoderOnMineral(); void demon6UseSTricoderOnShells(); void demon6UseSTricoderOnSkull(); void demon6UseSTricoderOnMetal(); void demon6UseSTricoderOnMeteor(); void demon6UseSTricoderOnCase(); void demon6UseSTricoderOnSynthesizer(); void demon6GetCase(); void demon6KirkReachedCase(); int demon6ShowCase(int visible); int demon6ShowCaseProcessInput(Sprite *sprites, Sprite *buttonSprite, int visible); int demon6ShowCaseProcessSelection(Sprite *sprites, Sprite *clickedSprite, 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(); // TUG1 void tug1Tick1(); void tug1UseSTricorderOnAnything(); void tug1LookAtBridgeDoor(); void tug1UseSTricorderOnBridgeDoor(); void tug1UsePhaserOnBridgeDoor(); void tug1KirkReachedFiringPosition(); void tug1KirkPulledOutPhaser(); void tug1KirkFinishedFiringPhaser(); void tug1TalkToSpock(); void tug1UseSTricorderOnJunkPile(); void tug1LookAtJunkPile(); void tug1GetJunkPile(); void tug1KirkReachedJunkPile(); void tug1KirkFinishedTakingJunkPile(); void tug1UsePhaserOnWelder(); void tug1UseWelderOnWireScraps(); void tug1UseWelderOnMetalScraps(); void tug1UseCombBitOnTransmogrifier(); void tug1UsePhaserWelderOnBridgeDoor(); void tug1UsePhaserWelderOnBridgeDoorInLeftSpot(); void tug1KirkReachedBridgeDoorWithWelder(); void tug1KirkFinishedUsingWelder(); void tug1KirkReachedBridgeDoorWithWelderInLeftSpot(); void tug1KirkFinishedUsingWelderInLeftSpot(); void tug1LookAnywhere(); void tug1LookAtMccoy(); void tug1LookAtSpock(); void tug1LookAtRedshirt(); void tug1TalkToMccoy(); void tug1TalkToRedshirt(); void tug1LookAtTerminal(); void tug1LookAtDebris(); void tug1LookAtBrigDoor(); void tug1UseSTricorderOnBrigDoor(); void tug1TalkToKirk(); void tug1UseCommunicator(); void tug1WalkToBridgeDoor(); void tug1KirkReachedBridgeDoor(); void tug1BridgeDoorOpened(); void tug1WalkToBrigDoor(); void tug1UseMTricorderAnywhere(); void tug1UseMTricorderOnBridgeDoor(); void tug1UseMTricorderOnBrigDoor(); void tug1UseSpockOnBridgeDoor(); void tug1UseRedshirtOnBridgeDoor(); void tug1UseMedkitOnBridgeDoor(); // TUG2 void tug2Tick1(); void tug2Tick60(); void tug2LookAtButton(); void tug2LookAtMccoy(); void tug2LookAtSpock(); void tug2LookAtRedshirt(); void tug2GetBomb(); void tug2KirkReachedBomb(); void tug2KirkGotBomb(); void tug2LookAtBomb(); void tug2LookAtGuard1(); void tug2LookAtGuard2(); void tug2LookAtWires(); void tug2UseSTricorderOnButton(); void tug2UseMccoyOnWires(); void tug2UseMccoyOnBomb(); void tug2UseRedshirtOnWires(); void tug2RedshirtReachedWires(); void tug2RedshirtDefusedBomb(); void tug2RedshirtReturnedToPosition(); void tug2UseKirkOnWires(); void tug2KirkReachedWires(); void tug2UseSpockOnWires(); void tug2SpockReachedWires(); void tug2SpockReturnedToPosition(); void tug2GetWires(); void tug2KirkReachedWiresToGet(); void tug2KirkGotWires(); void tug2UseKirkOnButton(); void tug2KirkReachedButton(); void tug2UseSpockOnButton(); void tug2SpockReachedButton(); void tug2UseMccoyOnButton(); void tug2MccoyReachedButton(); void tug2UseRedshirtOnButton(); void tug2RedshirtReachedButton(); void tug2TurnedOffForceField(); void tug2PrisonersDead(); void tug2PrisonersReleased(); void tug2UsePhaserOnBrig(); void tug2ElasiReadyPhaser(); void tug2CheckEndFirefight(); void tug2UseStunPhaserOnGuard1(); void tug2KirkShootGuard1(); void tug2UseStunPhaserOnGuard2(); void tug2KirkShootGuard2(); void tug2UseKillPhaserOnGuard1(); void tug2KirkKillGuard1(); void tug2UseKillPhaserOnGuard2(); void tug2KirkKillGuard2(); void tug2UsePhaserOnWelder(); void tug2UseWelderOnWireScraps(); void tug2UseWelderOnMetalScraps(); void tug2UseCombBitOnTransmogrifier(); void tug2ShotByElasi(); void tug2WalkToDoor(); void tug2LookAtDoor(); void tug2LookAtKirk(); void tug2TalkToKirk(); void tug2TalkToMccoy(); void tug2TalkToRedshirt(); void tug2TalkToSpock(); void tug2UseCommunicator(); void tug2DetermineElasiShooter(); void tug2Timer0Expired(); void tug2GuardShootsCrewman(); void tug2Timer2Expired(); void tug2UseSTricorderOnBomb(); void tug2UseMTricorderOnGuard1(); void tug2UseMTricorderOnGuard2(); void tug2TalkToGuard1(); void tug2TalkToGuard2(); void tug2UseMedkitOnBomb(); void tug2UseMedkitOnGuard1(); void tug2UseMedkitOnGuard2(); void tug2LookAnywhere(); void tug2TalkToBrig(); void tug2UseMTricorderOnBrig(); void tug2UseMTricorderOnOpenBrig(); void tug2UsePhaserAnywhere(); // TUG3 void tug3Tick1(); void tug3Tick40(); void tug3LookAnywhere(); void tug3ElasiSurrendered(); void tug3UsePhaserAnywhere(); void tug3ElasiDrawPhasers(); void tug3UseStunPhaserOnElasi1(); void tug3UseStunPhaserOnElasi2(); void tug3UseStunPhaserOnElasi3(); void tug3UseStunPhaserOnElasi4(); void tug3UseKillPhaserOnElasi1(); void tug3UseKillPhaserOnElasi2(); void tug3UseKillPhaserOnElasi3(); void tug3UseKillPhaserOnElasi4(); void tug3ElasiStunnedOrKilled(); void tug3TalkToElasi1(); void tug3Elasi1DrewPhaser(); void tug3Elasi1ShotConsole(); void tug3Elasi1DrewPhaser2(); void tug3Elasi1ShotConsoleAndSurrenders(); void tug3LookAtMccoy(); void tug3LookAtSpock(); void tug3LookAtRedshirt(); void tug3LookAtElasi1(); void tug3LookAtElasi2(); void tug3LookAtElasi3(); void tug3LookAtElasi4(); void tug3TalkToMccoy(); void tug3TalkToSpock(); void tug3TalkToRedshirt(); void tug3UseCommunicator(); void tug3Timer0Expired(); void tug3AllCrewmenDead(); void tug3Timer1Expired(); void tug3EndMission(); void tug3SecurityTeamBeamedIn(); // LOVE0 void love0Tick1(); void love0Tick10(); void love0WalkToDoor2(); void love0OpenDoor2(); void love0ReachedDoor2(); void love0WalkToDoor1(); void love0OpenDoor1(); void love0ReachedDoor1(); void love0LookAtConsole(); void love0LookAtViewscreen(); void love0LookAnywhere(); void love0LookAtDoor1(); void love0LookAtDoor2(); void love0LookAtKirk(); void love0LookAtMccoy(); void love0LookAtSpock(); void love0LookAtRedshirt(); void love0TalkToKirk(); void love0TalkToMccoy(); void love0TalkToSpock(); void love0TalkToRedshirt(); void love0UseMTricorderAnywhere(); void love0UseSTricorderOnConsole(); void love0UseSTricorderAnywhere(); void love0UseKirkOnConsole(); void love0UseRedshirtOnConsole(); void love0UseSpockOnConsole(); void love0SpockReachedConsole(); void love0SpockAccessedConsole(); void love0UseMccoyOnConsole(); void love0MccoyReachedConsole(); void love0MccoyAccessedConsole(); void love0InteractWithConsole(); void love0GetDoorOrConsole(); // LOVE1 void love1Tick1(); void love1WalkToDoor3(); void love1OpenDoor3(); void love1ReachedDoor3(); void love1WalkToDoor1(); void love1OpenDoor1(); void love1ReachedDoor1(); void love1WalkToDoor2(); void love1OpenDoor2(); void love1ReachedDoor2(); void love1LookAtLaser(); void love1LookAtKirk(); void love1LookAtSpock(); void love1LookAtMccoy(); void love1LookAtRedshirt(); void love1LookAnywhere(); void love1LookAtNozzle(); void love1LookAtLadder(); void love1LookAtDoor1Or2(); void love1LookAtDoor3(); void love1LookAtDistillator(); void love1LookAtChamber(); void love1LookAtReplicator(); void love1LookAtFreezer(); void love1LookAtDishes(); void love1TalkToKirk(); void love1TalkToSpock(); void love1TalkToMccoy(); void love1TalkToRedshirt(); void love1UseMTricorderOnDishes(); void love1UseMTricorderAnywhere(); void love1UseSTricorderOnReplicator(); void love1UseSTricorderOnLaser(); void love1UseSTricorderOnFreezer(); void love1UseSTricorderAnywhere(); void love1UseSTricorderOnDishes(); void love1UseSTricorderOnDistillator(); void love1GetFreezer(); void love1KirkReachedFreezer(); void love1KirkGotVirusCulture(); void love1GetFromChamber(); void love1KirkReachedChamber(); void love1KirkGotCureSample(); void love1GetFromNozzle(); void love1KirkReachedNozzleToGet(); void love1KirkGotBottleFromNozzle(); void love1UseN2OOnNozzle(); void love1UseH2OOnNozzle(); void love1UseNH3OnNozzle(); void love1UseRLGOnNozzle(); void love1KirkReachedNozzleToPut(); void love1KirkPutBottleInNozzle(); void love1UseAnthingOnNozzle(); void love1UseSpockOnReplicator(); void love1UseRedshirtOnReplicator(); void love1UseMccoyOnReplicator(); void love1MccoyReachedReplicator(); void love1MccoyUsedReplicator(); void love1ChamberClosed(); void love1ChamberOpened(); void love1UseAnythingOnChamber(); void love1UseDishesOnChamber(); void love1KirkReachedChamberToPut(); void love1ChamberOpenedForDish(); void love1KirkPutDishInChamber(); void love1UseInsulationOnDistillator(); void love1KirkReachedDistillator(); void love1KirkGotPolyberylcarbonate(); void love1UseKirkOnFreezer(); void love1UseRedshirtOnFreezer(); void love1UseSpockOnFreezer(); void love1UseMccoyOnFreezer(); void love1CrewmanReachedFreezer(); void love1CrewmanOpenedOrClosedFreezer(); void love1UseAnythingOnFreezer(); void love1ReachedFreezerWithArbitraryItem(); void love1FinishedUsingArbitraryItemOnFreezer(); void love1UseAnythingOnReplicator(); void love1ReachedReplicatorWithArbitraryItem(); void love1FinishedUsingArbitraryItemOnReplicator(); void love1UseAnythingOnDistillator(); void love1ReachedDistillatorWithArbitraryItem(); void love1FinishedUsingArbitraryItemOnDistillator(); void love1UseKirkOnLadder(); void love1UseSpockOnLadder(); void love1UseMccoyOnLadder(); void love1UseRedshirtOnLadder(); void love1CrewmanReachedLadder(); void love1CrewmanDiedFromPhaser(); void love1TouchedHotspot0(); // LOVE2 void love2Tick1(); void love2TouchedWarp1(); void love2Timer3Expired(); void love2WalkToDoor(); void love2TouchedHotspot0(); void love2DoorReachedOrOpened(); void love2LookAtCabinet(); void love2LookAtDoor(); void love2LookAtSynthesizer(); void love2LookAtAnywhere(); void love2LookAtAntigrav(); void love2LookAtMccoy(); void love2LookAtSpock(); void love2LookAtRedshirt(); void love2LookAtKirk(); void love2LookAtArdak(); void love2LookAtChamber(); void love2LookAtCan1(); void love2LookAtCan2(); void love2TalkToKirk(); void love2TalkToSpock(); void love2TalkToMccoy(); void love2TalkToRedshirt(); void love2UseMTricorderAnywhere(); void love2UseSTricorderAnywhere(); void love2UseKirkOnCabinet(); void love2UseSpockOnCabinet(); void love2UseMccoyOnCabinet(); void love2UseRedshirtOnCabinet(); void love2CrewmanReachedCabinet(); void love2CrewmanAccessedCabinet(); void love2CrewmanOpenedOrClosedCabinet(); void love2UseWrenchOnGasFeed(); void love2ReachedGasFeed(); void love2ChangedGasFeed(); void love2UseO2GasOnCanisterSlot(); void love2UseH2GasOnCanisterSlot(); void love2UseN2GasOnCanisterSlot(); void love2ReachedCanisterSlot(); void love2PutCanisterInSlot1(); void love2PutCanisterInSlot2(); void love2UseAntigravOnCanister1(); void love2ReachedCanisterSlot1ToGet(); void love2TookCanister1(); void love2UseAntigravOnCanister2(); void love2ReachedCanisterSlot2ToGet(); void love2TookCanister2(); void love2UseKirkOnSynthesizer(); void love2UseSpockOnSynthesizer(); void love2UseMccoyOnSynthesizer(); void love2UseRedshirtOnSynthesizer(); void love2CrewmanReachedSynthesizer(); void love2CrewmanUsedSynthesizer(); void love2SpockReachedGasFeeds(); void love2SpockEnabledGasFeeds(); void love2UseSynthesizer(); void love2SynthesizerDoorClosed(); void love2SynthesizerFinished(); void love2ClosedSynthesizerDoorMakingRLG(); void love2ClosedSynthesizerDoorMakingCure(); void love2CureStartedSynthesizing(); void love2CureSynthesized(); void love2UsePolyberylcarbonateOnSynthesizerDoor(); void love2KirkReachedSynthesizerWithPolyberylcarbonate(); void love2SynthesizerDoorOpenedWithPolyberylcarbonate(); void love2PutPolyberylcarbonateInSynthesizer(); void love2UseVirusSampleOnSynthesizerDoor(); void love2KirkReachedSynthesizerWithVirusSample(); void love2SynthesizerDoorOpenedWithVirusSample(); void love2PutVirusSampleInSynthesizer(); void love2UseCureSampleOnSynthesizerDoor(); void love2KirkReachedSynthesizerWithCureSample(); void love2SynthesizerDoorOpenedWithCureSample(); void love2PutCureSampleInSynthesizer(); void love2UseAnythingOnSynthesizerDoor(); void love2UseAnythingOnSynthesizer(); void love2GetCanister(); void love2GetAntigrav(); void love2ReachedAntigrav(); void love2GotAntigrav(); void love2GetPolyberylcarbonate(); void love2ReachedPolyberylcarbonate(); void love2GotPolyberylcarbonate(); void love2GetDishes(); void love2ReachedDishes(); void love2GotDishes(); void love2GetSample(); void love2ReachedSample(); void love2GotSample(); void love2GetSynthesizerOutput(); void love2ReachedSynthesizerOutput(); void love2GotSynthesizerOutput(); void love2GetCure(); void love2ReachedCure(); void love2GotCure(); // LOVE3 void love3Tick1(); void love3Tick80(); void love3TouchedWarp1(); void love3Timer3Expired(); void love3LookAtServicePanel(); void love3LookAtMonitor(); void love3LookAtWrench(); void love3LookAtKirk(); void love3LookAtMccoy(); void love3LookAtSpock(); void love3LookAtRedshirt(); void love3LookAnywhere(); void love3LookAtShaft(); void love3LookAtGrate(); void love3LookAtPanel(); void love3LookAtGasTank(); void love3LookAtTurbines(); void love3TalkToKirk(); void love3TalkToSpock(); void love3TalkToMccoy(); void love3TalkToRedshirt(); void love3UseMTricorderAnywhere(); void love3UseSTricorderOnTurbines(); void love3UseSTricorderOnInsulation(); void love3UseSTricorderAnywhere(); void love3UseKirkOnServicePanel(); void love3UseSpockOnServicePanel(); void love3UseMccoyOnServicePanel(); void love3UseRedshirtOnServicePanel(); void love3CrewmanReachedServicePanel(); void love3OpenedOrClosedServicePanel(); void love3UseWrenchOnGasTank(); void love3ReachedGasTankToUnscrew(); void love3ScrewedOrUnscrewedGasTank(); void love3UseWrenchOnO2OrH2Gas(); void love3UseWrenchOnN2Gas(); void love3ReachedGasTankToPutDown(); void love3PutN2TankBack(); void love3UseWrenchOnEngineeringPanel(); void love3ReachedEngineeringPanel(); void love3OpenedEngineeringPanel(); void love3UseWrenchOnMonitor(); void love3UseWaterOnMonitor(); void love3ReachedMonitorToUseWater(); void love3PouredWaterOnMonitor(); void love3UseCrewmanOnEngineeringPanelOrGrate(); void love3UseWrenchOnGrate(); void love3ReachedGateWithWrench(); void love3OpenedOrClosedGrate(); void love3UseCrewmanOnShaft(); void love3UseWaterOnShaft(); void love3ReachedShaftUsingWater(); void love3PouredWaterDownShaft(); void love3UseNitrousOxideOnShaft(); void love3ReachedShaftUsingNitrousOxide(); void love3PouredNitrousOxideDownShaft(); void love3UseAmmoniaOnShaft(); void love3ReachedShaftUsingAmmonia(); void love3PouredAmmoniaDownShaft(); void love3UseRomulanLaughingGasOnShaft(); void love3ReachedShaftUsingRomulanLaughingGas(); void love3PouredRomulanLaughingGasDownShaft(); void love3GetWrench(); void love3ReachedWrenchToGet(); void love3PickedUpWrench(); void love3GetGasTank(); void love3ReachedGasTankToGet(); void love3UseAntigravOnGasTank(); void love3ReachedGasTankUsingAntigrav(); void love3PickedUpGasTank(); void love3GetInsulation(); void love3ReachedInsulationToGet(); void love3PickedUpInsulation(); // LOVE4 void love4Tick1(); void love4Tick10(); void love4WalkToDoor(); void love4TouchedHotspot0(); void love4DoorOpenedOrReached(); void love4UseKirkOnLadder(); void love4ReachedLadder(); void love4UseStunPhaserOnRomulan(); void love4LookAnywhere(); void love4LookAtLadder(); void love4LookAtDoor(); void love4LookAtKirk(); void love4LookAtMccoy(); void love4LookAtSpock(); void love4LookAtRedshirt(); void love4LookAtRomulan(); void love4TalkToKirk(); void love4TalkToMccoy(); void love4TalkToRedshirt(); void love4TalkToSpock(); void love4TalkToRomulan(); void love4UseMTricorderOnRomulan(); void love4UseMTricorderAnywhere(); void love4UseSTricorderAnywhere(); void love4UseCureOnRomulan(); void love4MccoyReachedRomulan4(); void love4MccoyCuredRomulan4(); void love4MccoyReachedRomulan3(); void love4MccoyCuredRomulan3(); void love4MccoyReachedRomulan2(); void love4MccoyCuredRomulan2(); void love4MccoyReachedRomulan1(); void love4MccoyCuredRomulan1(); void love4UseWaterOnRomulan(); void love4UseMedkitOnRomulan(); void love4UseCureSampleOnRomulan(); void love4UseAnythingOnRomulan(); // LOVE5 void love5Tick1(); void love5TouchedWarp1(); void love5Timer4Expired(); void love5UseStunPhaserOnPreax(); void love5LookAtKirk(); void love5LookAtSpock(); void love5LookAtMccoy(); void love5LookAtRedshirt(); void love5LookAnywhere(); void love5LookAtDevice(); void love5LookAtConsole(); void love5LookAtDrMarcus(); void love5LookAtDrCheever(); void love5LookAtPreax(); void love5TalkToPreax(); void love5MccoyReachedSpockToCure(); void love5MccoyCuredSpock(); void love5EndMission(); void love5CrewmanReachedBeamoutPosition(); void love5TalkToDrMarcus(); void love5TalkToDrCheever(); void love5TalkToKirk(); void love5TalkToSpock(); void love5TalkToMccoy(); void love5TalkToRedshirt(); void love5UseSTricorderAnywhere(); void love5UseSTricorderOnDevice(); void love5UseMTricorderOnMarcusOrCheever(); void love5UseMTricorderOnPreax(); void love5UseMedkitOnPreax(); void love5UseWaterOnPreax(); void love5UseCureSampleOnPreax(); void love5UseCureOnPreax(); void love5ReachedPreaxUsingCure(); void love5CuredPreax(); void love5UseAnythingOnPreax(); void love5UseKirkOnMarcusOrCheever(); void love5KirkReachedCheever(); void love5KirkUntiedCheever(); void love5KirkReachedMarcus(); void love5KirkUntiedMarcus(); void love5MarcusStoodUp(); // LOVEA (common code) void loveaTimer0Expired(); void loveaTimer1Expired(); void loveaUseMedkitOnSpock(); void loveaUseCureSampleOnSpock(); void loveaUseCureOnSpock(); void loveaSpockOrMccoyInPositionToUseCure(); void loveaFinishedCuringSpock(); void loveaTimer2Expired(); void loveaUseMTricorderOnSpock(); void loveaUseMTricorderOnHuman(); void loveaUseRomulanLaughingGas(); void loveaUseHumanLaughingGas(); void loveaUseAmmonia(); void loveaUseCommunicator(); // MUDD0 void mudd0Tick1(); void mudd0Tick50(); void mudd0Tick60(); void mudd0UsePhaserOnMudd(); void mudd0UseCommunicator(); void mudd0LookAtFoodBox(); void mudd0LookAtComponentBox(); void mudd0LookAnywhere(); void mudd0LookAtMemoryDiskBox(); void mudd0LookAtDegrimerBox(); void mudd0LookAtLense(); void mudd0UseSTricorderAnywhere(); void mudd0UseMTricorderAnywhere(); void mudd0UseSTricorderOnMemoryDiskBox(); void mudd0UseSTricorderOnDegrimerBox(); void mudd0UseMTricorderOnLense(); void mudd0GetLense(); void mudd0GetMemoryDisk(); void mudd0GetDegrimer(); void mudd0PickedUpLense(); void mudd0PickedUpItem(); void mudd0WalkToSouthDoor(); void mudd0TouchedHotspot1(); void mudd0WalkToNorthDoor(); void mudd0TouchedHotspot0(); void mudd0UseMedkit(); void mudd0LookAtKirk(); void mudd0LookAtSpock(); void mudd0LookAtMccoy(); void mudd0LookAtRedshirt(); void mudd0LookAtMudd(); void mudd0TalkToKirk(); void mudd0TalkToSpock(); void mudd0TalkToMccoy(); void mudd0TalkToRedshirt(); void mudd0TalkToMudd(); // MUDD1 void mudd1Tick1(); void mudd1Timer1Expired(); void mudd1UseCommunicator(); void mudd1UseSpockOnBlueButton(); void mudd1SpockReachedBlueButton(); void mudd1SpockPressedBlueButton(); void mudd1CraneFinishedMoving(); void mudd1UseSpockOnYellowButton(); void mudd1SpockReachedYellowButton(); void mudd1SpockPressedYellowButton(); void mudd1UseSpockOnRedButton(); void mudd1SpockReachedRedButton(); void mudd1SpockPressedRedButton(); void mudd1GetTorpedo(); void mudd1UseSTricorderOnTorpedo(); void mudd1UseSTricorderOnTorpedoLauncher(); void mudd1UseSTricorderOnButton(); void mudd1UseSTricorderOnCrane(); void mudd1UseMedkitAnywhere(); void mudd1LookAnywhere(); void mudd1LookAtTorpedo(); void mudd1LookAtFallenTorpedo(); void mudd1LookAtTorpedoLauncher(); void mudd1LookAtKirk(); void mudd1LookAtSpock(); void mudd1LookAtMccoy(); void mudd1LookAtRedshirt(); void mudd1LookAtCrane(); void mudd1LookAtRedButton(); void mudd1LookAtBlueButton(); void mudd1LookAtYellowButton(); void mudd1TalkToKirk(); void mudd1TalkToSpock(); void mudd1TalkToMccoy(); void mudd1TalkToRedshirt(); void mudd1WalkToSouthDoor(); void mudd1TouchedHotspot2(); void mudd1WalkToNorthDoor(); void mudd1TouchedHotspot1(); void mudd1WalkToWestDoor(); void mudd1TouchedHotspot0(); // MUDD2 void mudd2WalkToNorthDoor(); void mudd2TouchedHotspot0(); void mudd2WalkToSouthDoor(); void mudd2TouchedHotspot1(); void mudd2Tick1(); void mudd2Timer1Expired(); void mudd2UseSTricorderAnywhere(); void mudd2UseSpockOnCapsules(); void mudd2GetCapsules(); void mudd2MccoyReachedCapsules(); void mudd2MccoyPickedUpCapsules(); void mudd2UseCommunicator(); void mudd2LookAtCapsules(); void mudd2UseMTricorderOnCapsules(); void mudd2UseCapsuleOnControlPanel(); void mudd2MccoyReachedControlPanel(); void mudd2MccoyPutCapsuleInControlPanel(); void mudd2UseKirkOnBed(); void mudd2KirkReachedBed(); void mudd2MuddNoticedKirk(); void mudd2MuddDroppedCapsule(); void mudd2UsePhaserOnMudd(); void mudd2UseSpockOnMudd(); void mudd2SpockReachedMudd(); void mudd2SpockPinchedMudd(); void mudd2UseKirkOnMudd(); void mudd2UseRedshirtOnMudd(); void mudd2RedshirtReachedMudd(); void mudd2Timer2Expired(); void mudd2MuddFinishedPushingRedshirt(); void mudd2RedshirtPushedAway(); void mudd2UseMTricorderOnMudd(); void mudd2UseMedkitOnMudd(); void mudd2MccoyReachedMudd(); void mudd2MccoyCuredMudd(); void mudd2LookAtKirk(); void mudd2LookAtSpock(); void mudd2LookAtMccoy(); void mudd2LookAtRedshirt(); void mudd2LookAtMudd(); void mudd2LookAtControlPanel(); void mudd2LookAtBed(); void mudd2TalkToKirk(); void mudd2TalkToSpock(); void mudd2TalkToMccoy(); void mudd2TalkToRedshirt(); void mudd2TalkToMudd(); // MUDD3 void mudd3Tick1(); void mudd3UseCommunicator(); void mudd3LookAtScreen(); void mudd3UseSTricorderOnScreen(); void mudd3UseKirkOnScreen(); void mudd3UseSpockOnSphere(); void mudd3Timer3Expired(); void mudd3UseMccoyOnSphere(); void mudd3UseRedshirtOnSphere(); void mudd3UseMTricorderOnSphere(); void mudd3UseSTricorderOnSphere(); void mudd3ReadyToHookUpTricorders(); void mudd3Timer1Expired(); void mudd3Timer2Expired(); void mudd3Timer4Expired(); void mudd3UseMemoryDiskOnSphere(); void mudd3GetRepairTool(); void mudd3ReachedRepairTool(); void mudd3PickedUpRepairTool(); void mudd3LookAtSphere(); void mudd3WalkToNorthDoor(); void mudd3TouchedHotspot0(); void mudd3WalkToEastDoor(); void mudd3TouchedHotspot1(); void mudd3LookAtKirk(); void mudd3LookAtSpock(); void mudd3LookAtMccoy(); void mudd3LookAtRedshirt(); void mudd3LookAtMudd(); void mudd3TalkToKirk(); void mudd3TalkToSpock(); void mudd3TalkToMccoy(); void mudd3TalkToRedshirt(); void mudd3TalkToMudd(); void mudd3UseMedkit(); // MUDD4 void mudd4Tick1(); void mudd4UseCommunicator(); void mudd4Timer2Expired(); void mudd4Timer3Expired(); void mudd4UseSpockOnLeftConsole(); void mudd4UseSpockOnRightConsole(); void mudd4UseSpockOnConsole(); void mudd4SpockReachedChair(); void mudd4SpockSatInChair(); void mudd4ShowLeftConsoleMenu(); void mudd4SpockUsedSensors(); void mudd4SpockUsedEngineering(); void mudd4SpockUsedNavigation(); void mudd4FinishedWalking3(); void mudd4UseKirkOnRightConsole(); void mudd4UseKirkOnLeftConsole(); void mudd4UseKirkOnConsole(); void mudd4KirkReachedRightConsole(); void mudd4KirkSatInChair(); void mudd4ShowRightConsoleMenu(); void mudd4KirkUsedViewScreen(); void mudd4Timer1Expired(); void mudd4KirkUsedCommunications(); void mudd4TalkWithMuddAtMissionEnd(); void mudd4KirkReachedPositionToTalkToMudd(); void mudd4UseMccoyOnConsole(); void mudd4UseRedshirtOnConsole(); void mudd4UseSTricorderOnRepairTool(); void mudd4UseSTricorderOnConsole(); void mudd4UseSTricorderOnViewscreen(); void mudd4UseMedkit(); void mudd4GetRepairTool(); void mudd4ReachedRepairTool(); void mudd4PickedUpRepairTool(); void mudd4LookAtConsole(); void mudd4LookAtViewscreen(); void mudd4LookAtKirk(); void mudd4LookAtSpock(); void mudd4LookAtMccoy(); void mudd4LookAtRedshirt(); void mudd4LookAtRepairTool(); void mudd4TalkToKirk(); void mudd4TalkToSpock(); void mudd4TalkToMccoy(); void mudd4TalkToRedshirt(); void mudd4WalkToEastDoor(); void mudd4WalkToWestDoor(); void mudd4TouchedHotspot0(); // MUDD5 void mudd5Tick1(); void mudd5Timer1Expired(); void mudd5Timer2Expired(); void mudd5UseCommunicator(); void mudd5UseSTricorderAnywhere(); void mudd5UseSTricorderOnEngine(); void mudd5UseSTricorderOnCrane(); void mudd5UseSTricorderOnHatch(); void mudd5UseSTricorderOnLifeSupportGenerator(); void mudd5UseStunPhaserOnHatch(); void mudd5UseKillPhaserOnHatch(); void mudd5UseAnythingOnLifeSupportGenerator(); void mudd5UseDooverOnLifeSupportGenerator(); void mudd5KirkReachedLifeSupportGenerator(); void mudd5KirkTimer4Expired(); void mudd5KirkRepairedLifeSupportGenerator(); void mudd5KirkTimer3Expired(); void mudd5LookAtHatch(); void mudd5LookAtLifeSupportGenerator(); void mudd5TouchedHotspot0(); void mudd5WalkToDoor(); void mudd5LookAtKirk(); void mudd5LookAtSpock(); void mudd5LookAtMccoy(); void mudd5LookAtRedshirt(); void mudd5LookAtDoor(); void mudd5LookAtCrane(); void mudd5LookAtEngine(); void mudd5TalkToKirk(); void mudd5TalkToSpock(); void mudd5TalkToMccoy(); void mudd5TalkToRedshirt(); void mudd5UseMedkit(); // MUDDA void muddaUseLenseOnDegrimer(); void muddaUseAlienDevice(); void muddaFiredAlienDevice(); void muddaUseDegrimer(); void muddaTick(); // FEATHER0 void feather0Tick1(); void feather0Tick60(); void feather0TalkToQuetzecoatl(); void feather0Timer0Expired(); void feather0Timer1Expired(); void feather0UsePhaserOnQuetzecoatl(); void feather0UsePhaserOnMccoy(); void feather0UseMedkit(); void feather0LookAtQuetzecoatl(); void feather0LookAtMoon(); void feather0LookAtLog(); void feather0LookAtHut(); void feather0LookAnywhere(); void feather0LookAtEyes(); void feather0LookAtTree(); void feather0LookAtMccoy(); void feather0LookAtSpock(); void feather0LookAtRedshirt(); void feather0TalkToMccoy(); void feather0TalkToSpock(); void feather0TalkToRedshirt(); void feather0UseSTricorderOnQuetzecoatl(); void feather0UseSTricorderAnywhere(); void feather0UseMTricorderOnQuetzecoatl(); // FEATHER1 void feather1Tick1(); void feather1Tick45(); void feather1Tick85(); void feather1Tick95(); void feather1QuetzecoatlDisappeared(); void feather1GetRightVine(); void feather1GetLeftVine(); void feather1GetRocks(); void feather1ReachedRocks(); void feather1PickedUpRocks(); void feather1GetSnake(); void feather1ReachedSnake(); void feather1Timer1Expired(); void feather1Timer2Expired(); void feather1PickedUpSnake(); void feather1Timer0Expired(); void feather1UseCommunicator(); void feather1UseRockOnHole(); void feather1ReachedHole(); void feather1Timer3Expired(); void feather1PutRockInHole(); void feather1UseSnakeOnLeftVine(); void feather1UseSnakeOnSpock(); void feather1UseSnakeOnKirk(); void feather1UseSnakeOnMccoy(); void feather1UseSnakeOnRedshirt(); void feather1UseRockOnSnake(); void feather1UseSpockOnSnake(); void feather1UseMccoyOnSnake(); void feather1UseRedshirtOnSnake(); void feather1UseSpockOnHole(); void feather1UseMccoyOnHole(); void feather1UseRedshirtOnHole(); void feather1UseRockOnMoss(); void feather1UseRockOnSpock(); void feather1UseRockOnMccoy(); void feather1UseRockOnRedshirt(); void feather1UseSpockOnMoss(); void feather1UseMccoyOnMoss(); void feather1UseRedshirtOnMoss(); void feather1UseRockOnLeftVine(); void feather1ReadyToThrowRock1(); void feather1ThrewRock1(); void feather1ReadyToThrowRock2(); void feather1ThrewRock2(); void feather1UseSpockOnVine(); void feather1UseMccoyOnVine(); void feather1UseRedshirtOnVine(); void feather1UseKirkOnVine(); void feather1CrewmanClimbVine(); void feather1ReachedVineToClimbUp(); void feather1ClimbedUpVine(); void feather1ReachedVineToClimbDown(); void feather1ClimbedDownVine(); void feather1UsePhaser(); void feather1UseSTricorderOnRightVine(); void feather1UseSTricorderOnSnake(); void feather1UseSTricorderOnMoss(); void feather1UseSTricorderOnHole(); void feather1UseSTricorderAnywhere(); void feather1UseSTricorderOnRocks(); void feather1UseMTricorderOnVine(); void feather1UseMTricorderOnMoss(); void feather1UseMTricorderOnHole(); void feather1UseMTricorderOnSnake(); void feather1UseMedkit(); void feather1TalkToMccoy(); void feather1TalkToSpock(); void feather1TalkToRedshirt(); void feather1WalkToExit(); void feather1LookAnywhere(); void feather1LookAtSnake(); void feather1LookAtRightVine(); void feather1LookAtHole(); void feather1LookAtMoss(); void feather1LookAtRocks(); void feather1LookAtLight(); void feather1LookAtEyes(); void feather1LookAtKirk(); void feather1LookAtSpock(); void feather1LookAtMccoy(); void feather1LookAtRedshirt(); void feather1LookAtLeftVine(); // FEATHER2 void feather2Tick1(); void feather2UseCommunicator(); void feather2UsePhaser(); void feather2UseSTricorderAnywhere(); void feather2UseMTricorderAnywhere(); void feather2TalkToMccoy(); void feather2TalkToSpock(); void feather2TalkToRedshirt(); void feather2LookAtVines(); void feather2UseMedkit(); void feather2WalkToLeftExit(); void feather2LookAtEyes(); void feather2LookAtBigTree(); void feather2LookAtTrees(); void feather2LookAnywhere(); void feather2LookAtKirk(); void feather2LookAtSpock(); void feather2LookAtMccoy(); void feather2LookAtRedshirt(); // FEATHER3 void feather3Tick1(); void feather3Tick40(); void feather3TouchedHotspot0(); void feather3UseSpockOnTlaoxac(); void feather3UseMccoyOnTlaoxac(); void feather3UseRedshirtOnTlaoxac(); void feather3UseCrewmanOnLeftExit(); void feather3UseCommunicator(); void feather3UseSnakeOnKirk(); void feather3UseSnakeOnSpock(); void feather3UseSnakeOnRedshirt(); void feather3KirkReachedRedshirtWithSnake(); void feather3UseSnakeOnMccoy(); void feather3UseSnakeOnTlaoxac(); void feather3UseKnifeOnSpock(); void feather3UseKnifeOnMccoy(); void feather3UseKnifeOnRedshirt(); void feather3UseRockOnTlaoxac(); void feather3KirkReachedPositionToThrowRock(); void feather3Timer4Expired(); void feather3Timer2Expired(); void feather3Timer3Expired(); void feather3TlaoxacKnockedOutFromRockThrow(); void feather3UsePhaser(); void feather3TalkToMccoy(); void feather3TalkToSpock(); void feather3TalkToRedshirt(); void feather3TalkToTlaoxac(); void feather3TlaoxacKilledRedshirt(); void feather3UseMTricorderOnTlaoxac(); void feather3UseMedkitOnTlaoxac(); void feather3UseMedkitOnRedshirt(); void feather3UseMedkitAnywhere(); void feather3UseMTricorderOnLight(); void feather3UseSTricorderOnLight(); void feather3UseSTricorderAnywhere(); void feather3GetKnife(); void feather3ReachedKnife(); void feather3Timer1Expired(); void feather3PickedUpKnife(); void feather3LookAtSpock(); void feather3LookAtRedshirt(); void feather3LookAtTlaoxac(); void feather3LookAtLight(); void feather3LookAtMccoy(); void feather3LookAtKnife(); // FEATHER4 void feather4Tick1(); void feather4UseCommunicator(); void feather4UsePhaser(); void feather4UseSTricorderOnLight(); void feather4UseSTricorderOnMushroom(); void feather4UseSTricorderOnFern(); void feather4UseSTricorderAnywhere(); void feather4UseMTricorderOnLight(); void feather4UseMTricorderOnMushroom(); void feather4UseMTricorderAnywhere(); void feather4UseMedkitAnywhere(); void feather4TalkToMccoy(); void feather4TalkToSpock(); void feather4TalkToRedshirt(); void feather4LookAtEyes(); void feather4LookAnywhere(); void feather4LookAtMushroom(); void feather4LookAtFern(); void feather4LookAtLight(); void feather4LookAtKirk(); void feather4LookAtSpock(); void feather4LookAtMccoy(); void feather4LookAtRedshirt(); // FEATHER5 void feather5Tick1(); void feather5TouchedHotspot0(); void feather5UseSpockOnFern(); void feather5UseMccoyOnFern(); void feather5UseRedshirtOnFern(); void feather5UseRedshirtOnLeftExit(); void feather5RedshirtReachedLog(); void feather5RedshirtDeathFinished(); void feather5UseSpockOnLeftExit(); void feather5UseMccoyOnLeftExit(); void feather5UseSnakeOnKirk(); void feather5UseSnakeOnSpock(); void feather5UseSnakeOnMccoy(); void feather5UseSnakeOnRedshirt(); void feather5UseSnakeOnWater(); void feather5UseKnifeOnKirk(); void feather5UseKnifeOnSpock(); void feather5UseKnifeOnMccoy(); void feather5UseKnifeOnRedshirt(); void feather5UseKnifeOnWater(); void feather5UseKnifeOnMonster(); void feather5GetFern(); void feather5UseKnifeOnFern(); void feather5ReachedFern(); void feather5PickedUpFern(); void feather5UseFernOnMonster(); void feather5ReachedPositionToUseFern(); void feather5DoneThrowingFern(); void feather5FernFellIntoWater(); void feather5Timer1Expired(); void feather5UseRockOnSpock(); void feather5UseRockOnMccoy(); void feather5UseRockOnRedshirt(); void feather5UseCrewmanOnThrownFern(); void feather5UseSpockOnMonster(); void feather5UseMccoyOnMonster(); void feather5UseRedshirtOnMonster(); void feather5UsePhaser(); void feather5LookAnywhere(); void feather5LookAtLog(); void feather5LookAtWater(); void feather5LookAtFern(); void feather5LookAtInsects(); void feather5LookAtCave(); void feather5LookAtMonster(); void feather5LookAtSpock(); void feather5LookAtKirk(); void feather5LookAtMccoy(); void feather5LookAtRedshirt(); void feather5TalkToMccoy(); void feather5TalkToSpock(); void feather5TalkToRedshirt(); void feather5UseMTricorderOnWater(); void feather5UseMTricorderOnMonster(); void feather5UseSTricorderOnMonster(); void feather5UseSTricorderAnywhere(); void feather5UseSTricorderOnWater(); void feather5UseSTricorderOnFern(); void feather5UseMedkitAnywhere(); // FEATHER6 void feather6Tick1(); void feather6TouchedHotspot0(); void feather6UseSpockOnCrystals(); void feather6UseMccoyOnCrystals(); void feather6UseRedshirtOnCrystals(); void feather6UseRockOnStalactites(); void feather6ReachedPositionToThrowRock(); void feather6DoneThrowingRock(); void feather6KirkDiedFromStalactites(); void feather6UseRockOnCrystals(); void feather6ReachedCrystalsWithRock(); void feather6Tick(); void feather6HitCrystalsWithRockFirstTime(); void feather6HitCrystalsWithRockSecondTime(); void feather6UseRockOnStalagmites(); void feather6UseRockAnywhere(); void feather6UseKnifeOnStalagmites(); void feather6UseKnifeAnywhere(); void feather6UseKnifeOnMccoy(); void feather6UseKnifeOnSpock(); void feather6UseKnifeOnRedshirt(); void feather6UseCrystalAnywhere(); void feather6UseSnakeAnywhere(); void feather6UseMedkitAnywhere(); void feather6UsePhaser(); void feather6LookAtEastExit(); void feather6LookAnywhere(); void feather6LookAtRocks(); void feather6LookAtStalagmites(); void feather6LookAtCrystals(); void feather6LookAtKirk(); void feather6LookAtSpock(); void feather6LookAtMccoy(); void feather6LookAtRedshirt(); void feather6LookAtStalactites(); void feather6TalkToMccoy(); void feather6TalkToRedshirt(); void feather6TalkToSpock(); void feather6UseMTricorderOnEastExit(); void feather6UseMTricorderOnRocks(); void feather6UseSTricorderOnEastExit(); void feather6UseSTricorderAnywhere(); void feather6UseSTricorderOnRocks(); void feather6UseSTricorderOnCrystals(); void feather6UseSTricorderOnStalactites(); void feather6UseSTricorderOnStalagmites(); void feather6GetCrystals(); void feather6UseKnifeOnCrystals(); void feather6ReachedCrystalsWithKnife(); void feather6DoneCuttingCrystals(); void feather6Timer4Expired(); // FEATHER7 void feather7Tick1(); void feather7Tick40(); void feather7KirkReachedSeat(); void feather7SpockReachedSeat(); void feather7MccoyReachedSeat(); void feather7QuetzecoatlReachedSeat(); void feather7KirkSatDown(); void feather7ReadyToBeamOut(); // TRIAL0 void trial0Tick1(); void trial0Tick40(); void trial0Timer0Expired(); void trial0WalkToRoomCenter(); void trial0ReachedRoomCenter(); void trial0LookAtWindow(); void trial0LookAtVlict(); void trial0LookAtGuard(); void trial0LookAtBench(); void trial0LookAtSeal(); void trial0LookAtKirk(); void trial0LookAtSpock(); void trial0LookAtMccoy(); void trial0LookAtRedshirt(); void trial0LookAtQuetzecoatl(); void trial0TalkToVlict(); void trial0TalkToGuard(); void trial0TalkToQuetzecoatl(); void trial0TalkToMccoy(); void trial0TalkToSpock(); void trial0TalkToRedshirt(); void trial0UsePhaserOrRock(); void trial0UseSnakeOnVlict(); void trial0UseSnakeOnGuard(); void trial0UseMTricorderOnQuetzecoatl(); void trial0UseMTricorderOnVlict(); void trial0UseMTricorderAnywhere(); void trial0UseSTricorderOnWindow(); void trial0UseSTricorderAnywhere(); void trial0UseCommunicator(); void trial0UseCrewmanOnKlingon(); void trial0UseMccoyOnVlict(); void trial0UseMccoyOnGuard(); void trial0UseMedkitAnywhere(); // TRIAL1 void trial1Tick1(); void trial1Tick50(); void trial1DoorOpened(); void trial1TouchedHotspot0(); void trial1KirkDied(); void trial1TouchedHotspot1(); void trial1GetRod(); void trial1ReachedRod(); void trial1PickedUpRod(); void trial1LookAtKirk(); void trial1LookAtSpock(); void trial1LookAtMccoy(); void trial1LookAtRedshirt(); void trial1LookAtWall(); void trial1LookAtFloor(); void trial1LookAtRods(); void trial1LookAtDoor(); void trial1LookAtLock(); void trial1LookAtEntity(); void trial1LookAtMoltenRock(); void trial1TalkToKirk(); void trial1TalkToSpock(); void trial1TalkToMccoy(); void trial1TalkToRedshirt(); void trial1TalkToEntity(); void trial1UsePhaserOnCrewman(); void trial1UsePhaserOnEntity(); void trial1UsePhaserOnWall(); void trial1UseStunPhaserOnFloor(); void trial1ReachedFloorToUseStunPhaser(); void trial1DoneShootingFloorWithStunPhaser(); void trial1UseKillPhaserOnFloor(); void trial1ReachedFloorToUseKillPhaser(); void trial1DoneShootingFloorWithKillPhaser(); void trial1UsePhaserOnRod(); void trial1UsePhaserOnDoor(); void trial1UsePhaserOnLock(); void trial1UseMTricorderOnKirk(); void trial1UseMTricorderOnSpock(); void trial1UseMTricorderOnMccoy(); void trial1UseMTricorderOnRedshirt(); void trial1UseMTricorderOnEntity(); void trial1UseSTricorderOnWall(); void trial1UseSTricorderOnEntity(); void trial1UseSTricorderOnRods(); void trial1UseSTricorderOnFloor(); void trial1UseSTricorderOnDoor(); void trial1UseSTricorderOnLock(); void trial1UseCommunicator(); void trial1UseMccoyOnEntity(); void trial1UseMccoyOnLock(); void trial1UseMccoyOnFloor(); void trial1UseSpockOnEntity(); void trial1UseSpockOnLock(); void trial1SpockReachedKeypad(); void trial1SpockUsedKeypad(); void trial1SpockReachedKeypadWithExtraProgram(); void trial1SpockUsedKeypadWithExtraProgram(); void trial1UseSpockOnFloor(); void trial1UseRedshirtOnEntity(); void trial1UseRedshirtOnLock(); void trial1RedshirtReachedKeypad(); void trial1RedshirtUsedKeypad(); void trial1RedshirtReachedKeypadWithExtraProgram(); void trial1RedshirtUsedKeypadWithExtraProgram(); void trial1UseRedshirtOnFloor(); void trial1UseRodOnMccoy(); void trial1UseRodOnSpock(); void trial1UseRodOnRedshirt(); void trial1UseRodOnFloorOrWall(); void trial1UseWoodRodOnEntity(); void trial1ReachedPositionToThrowWoodRod(); void trial1DoneThrowingWoodRod(); void trial1UseWoodRodOnLock(); void trial1UseWoodRodOnMoltenRock(); void trial1ReachedMoltenRock(); void trial1DoneCoatingWoodRod(); void trial1UseIronRodOnEntity(); void trial1ReachedPositionToThrowIronRod(); void trial1DoneThrowingIronRod(); void trial1UseIronRodOnLock(); void trial1GetThrownIronRod(); void trial1WalkToDoor(); void trial1UseMedkit(); // TRIAL2 void trial2Tick1(); void trial2Tick60(); void trial2TouchedHotspot0(); void trial2LookAtKirk(); void trial2LookAtSpock(); void trial2LookAtMccoy(); void trial2LookAtRedshirt(); void trial2LookAtInsignia(); void trial2LookAtGlob(); void trial2LookAtWall(); void trial2LookAtDoor(); void trial2TalkToKirk(); void trial2TalkToSpock(); void trial2TalkToMccoy(); void trial2TalkToRedshirt(); void trial2TalkToGlob(); void trial2UsePhaserOnWall(); void trial2UsePhaserOnGlob(int object, bool phaserOnKill); void trial2ReachedPositionToShootGlob(); void trial2DrewPhaserToShootGlob(); void trial2GlobDoneExploding(); void trial2GlobDoneSplitting(); void trial2KirkDied(); void trial2UseStunPhaserOnGlob(); void trial2UseKillPhaserOnGlob(); void trial2UseStunPhaserOnSplitGlob1(); void trial2UseKillPhaserOnSplitGlob1(); void trial2UseStunPhaserOnSplitGlob2(); void trial2UseKillPhaserOnSplitGlob2(); void trial2UseMTricorderOnKirk(); void trial2UseMTricorderOnSpock(); void trial2UseMTricorderOnMccoy(); void trial2UseMTricorderOnRedshirt(); void trial2UseMTricorderOnGlob(); void trial2UseSTricorderOnWall(); void trial2UseSTricorderAnywhere(); void trial2UseSTricorderOnGlob(); void trial2UseCommunicator(); void trial2UseMccoyOnGlob(); void trial2UseMccoyOnWall(); void trial2UseSpockOnGlob(); void trial2UseSpockOnWall(); void trial2UseRedshirtOnGlob(); void trial2UseRedshirtOnWall(); void trial2WalkToDoor(); void trial2UseMedkitAnywhere(); // TRIAL3 void trial3Tick1(); void trial3Tick30(); void trial3Klingon1BeamedIn(); void trial3Klingon2BeamedIn(); void trial3Klingon3BeamedIn(); void trial3KlingonShootsSomeone1(); void trial3Klingon1DoneShooting(); void trial3Klingon2DoneShooting(); void trial3Klingon3DoneShooting(); void trial3KlingonShootsSomeone2(); void trial3RedshirtDoneDying(); void trial3KirkDoneDying(); void trial3Klingon1Shot(); void trial3Klingon2Shot(); void trial3Klingon3Shot(); void trial3CheckShowUhuraText(); void trial3CrewmanBeamedOut(); void trial3Tick90(); void trial3TouchedHotspot3(); void trial3KirkExploded(); void trial3LookAtKirk(); void trial3LookAtSpock(); void trial3LookAtMccoy(); void trial3LookAtRedshirt(); void trial3LookAtExit(); void trial3LookAtWall(); void trial3TalkToKirk(); void trial3TalkToSpock(); void trial3TalkToMccoy(); void trial3TalkToRedshirt(); void trial3UsePhaserOnWall(); void trial3UseStunPhaserOnKlingon1(); void trial3ReadyToShootKlingon1OnStun(); void trial3UseKillPhaserOnKlingon1(); void trial3ReadyToShootKlingon1OnKill(); void trial3UsePhaserAnywhere(); void trial3UseMTricorderOnKirk(); void trial3UseMTricorderOnSpock(); void trial3UseMTricorderOnMccoy(); void trial3UseMTricorderOnRedshirt(); void trial3UseMTricorderOnExit(); void trial3UseSTricorderOnWall(); void trial3UseSTricorderOnExit(); void trial3UseMTricorderOnKlingon(); void trial3UseCommunicator(); void trial3BeamToVlict(); void trial3UseMccoyOnWall(); void trial3UseMccoyOnExit(); void trial3UseSpockOnWall(); void trial3UseSpockOnExit(); void trial3UseRedshirtOnExit(); void trial3UseRedshirtOnWall(); void trial3WalkToExit(); void trial3UseMedkitAnywhere(); // TRIAL4 void trial4Tick1(); void trial4Tick60(); // TRIAL5 void trial5Tick1(); void trial5Tick60(); void trial5VlictAppeared(); void trial5WalkToInterface(); void trial5ReachedInterface(); void trial5GetGem(int16 item, int16 object); void trial5ReachedGem(); void trial5PickedUpGem(); void trial5GetRedGem1(); void trial5GetRedGem2(); void trial5GetRedGem3(); void trial5GetGreenGem1(); void trial5GetGreenGem2(); void trial5GetGreenGem3(); void trial5GetBlueGem1(); void trial5GetBlueGem2(); void trial5GetBlueGem3(); void trial5LookAtKirk(); void trial5LookAtSpock(); void trial5LookAtMccoy(); void trial5LookAtRedshirt(); void trial5LookAtBeam(); void trial5LookAtInterface(); void trial5UseSTricorderOnInterface(); void trial5UseMTricorderOnInterface(); void trial5LookAtRedGem1(); void trial5LookAtRedGem2(); void trial5LookAtRedGem3(); void trial5LookAtGreenGem1(); void trial5LookAtGreenGem2(); void trial5LookAtGreenGem3(); void trial5LookAtBlueGem1(); void trial5LookAtBlueGem2(); void trial5LookAtBlueGem3(); void trial5LookAtHole(); void trial5TalkToKirk(); void trial5TalkToSpock(); void trial5TalkToMccoy(); void trial5TalkToRedshirt(); void trial5UsePhaser(); void trial5UseMTricorderAnywhere(); void trial5UseSTricorderAnywhere(); void trial5UseCommunicator(); void trial5UseGemOnHole(int16 item, int16 object, int16 hole); void trial5ReachedHoleToPutGem(); void trial5ActivateLightOfWar(); void trial5ActivateLightOfKnowledge(); void trial5ActivateLightOfTravel(); void trial5RestrictedCombination1(); void trial5RestrictedCombination2(); void trial5DestinationNoLongerExists(); void trial5CrewmanBeamedOut(); void trial5UseRedGem1OnHole1(); void trial5UseRedGem2OnHole1(); void trial5UseRedGem3OnHole1(); void trial5UseGreenGem1OnHole1(); void trial5UseGreenGem2OnHole1(); void trial5UseGreenGem3OnHole1(); void trial5UseBlueGem1OnHole1(); void trial5UseBlueGem2OnHole1(); void trial5UseBlueGem3OnHole1(); void trial5UseRedGem1OnHole2(); void trial5UseRedGem2OnHole2(); void trial5UseRedGem3OnHole2(); void trial5UseGreenGem1OnHole2(); void trial5UseGreenGem2OnHole2(); void trial5UseGreenGem3OnHole2(); void trial5UseBlueGem1OnHole2(); void trial5UseBlueGem2OnHole2(); void trial5UseBlueGem3OnHole2(); void trial5UseRedGem1OnHole3(); void trial5UseRedGem2OnHole3(); void trial5UseRedGem3OnHole3(); void trial5UseGreenGem1OnHole3(); void trial5UseGreenGem2OnHole3(); void trial5UseGreenGem3OnHole3(); void trial5UseBlueGem1OnHole3(); void trial5UseBlueGem2OnHole3(); void trial5UseBlueGem3OnHole3(); void trial5UseMedkitAnywhere(); // SINS0 void sins0Tick1(); void sins0LookAnywhere(); void sins0LookAtOpenDoor(); void sins0LookAtClosedDoor(); void sins0TalkToSpock(); void sins0TalkToMccoy(); void sins0TalkToRedshirt(); void sins0LookAtGround(); void sins0GetRock(); void sins0PickedUpRock(); void sins0UseSTricorderAnywhere(); void sins0UseSTricorderOnGround(); void sins0UseSTricorderOnPlanet(); void sins0Tick40(); void sins0LookAtStatue(); void sins0LookAtPlanet(); void sins0LookAtSky(); void sins0LookAtKirk(); void sins0LookAtSpock(); void sins0LookAtMccoy(); void sins0LookAtRedshirt(); void sins0UseSTricorderOnClosedDoor(); void sins0UseSTricorderOnStatue(); void sins0UseMedkitOnCrewman(); void sins0UseMTricorderOnCrewman(); void sins0UseCommunicator(); void sins0WalkToDoor(); // SINS1 void sins1Tick1(); void sins1LookAnywhere(); void sins1LookAtLock(); void sins1LookAtDoor(); void sins1LookAtPanel(); void sins1LookAtKeypad(); void sins1UseSTricorderOnPanel(); void sins1UseSTricorderOnKeypad(); void sins1UseSTricorderOnLock(); void sins1UseSTricorderOnDoor(); void sins1UseSTricorderAnywhere(); void sins1UseSTricorderOnLens(); void sins1UseRockOnDoor(); void sins1UseRedshirtOnKeypad(); void sins1UseMccoyOnKeypad(); void sins1UseKirkOnKeypad(); void sins1UseSpockOnKeypad(); void sins1SpockReachedKeypad(); void sins1EnteredCorrectCode(); void sins1DoorDoneOpening(); void sins1EnteredIncorrectCode(); void sins1EnteredSacredSofNumber(); void sins1UsePhaserOnDoor(); void sins1DoorUsedLaser(); void sins1Tick40(); void sins1TalkToKirk(); void sins1TalkToSpock(); void sins1TalkToMccoy(); void sins1TalkToRedshirt(); void sins1LookAtKirk(); void sins1LookAtSpock(); void sins1LookAtMccoy(); void sins1LookAtRedshirt(); void sins1LookAtLens(); void sins1UseCommunicator(); void sins1UseMedkitOnCrewman(); void sins1UseMTricorderOnCrewman(); void sins1WalkToDoor(); // SINS2 void sins2Tick1(); void sins2UsePhaserOnDoor(); void sins2UseSTricorderAnywhere(); void sins2UseKirkOnTerminal(); void sins2UseSpockOnTerminal(); void sins2SpockReachedTerminal(); void sins2SpockUsedTerminal(); void sins2UseMccoyOnTerminal(); void sins2UseRedshirtOnTerminal(); void sins2UseSTricorderOnTerminal(); void sins2UseSTricorderOnKeypad(); void sins2UseSTricorderOnDoor(); void sins2UseKirkOnKeypad(); void sins2UseSpockOnKeypad(); void sins2SpockReachedKeypad(); void sins2EnteredCorrectCode(); void sins2EnteredIncorrectCode(); void sins2DoorFinishedOpening(); void sins2Tick40(); void sins2LookAnywhere(); void sins2LookAtOpenDoor(); void sins2LookAtTerminal(); void sins2LookAtKeypad(); void sins2LookAtKirk(); void sins2LookAtSpock(); void sins2LookAtMccoy(); void sins2LookAtRedshirt(); void sins2TalkToKirk(); void sins2TalkToSpock(); void sins2TalkToMccoy(); void sins2TalkToRedshirt(); void sins2LookAtDoor(); void sins2UseSpockOnDoor(); void sins2UseCommunicator(); void sins2UseMedkitOnCrewman(); void sins2UseMTricorderOnCrewman(); void sins2UseMccoyOnKeypad(); void sins2UseRedshirtOnKeypad(); void sins2WalkToDoor(); // SINS3 void sins3Tick1(); void sins3UseSTricorderOnBox(); void sins3UseSTricorderOnMonitor(); void sins3UseSTricorderAnywhere(); void sins3UseSTricorderOnDrill(); void sins3UseSTricorderOnPanel(); void sins3LookAtDrill(); void sins3LookAtPanel(); void sins3LookAtMonitor(); void sins3LookAnywhere(); void sins3UseSTricorderOnWall(); void sins3LookAtBox(); void sins3UseKirkOnBox(); void sins3KirkReachedBox(); void sins3Timer0Expired(); void sins3UseSpockOnBox(); void sins3SpockReachedBox(); void sins3UseMccoyOnBox(); void sins3MccoyReachedBox(); void sins3UseRedshirtOnBox(); void sins3RedshirtReachedBox(); void sins3BoxOpened(); void sins3GetBox(); void sins3KirkReachedBoxToGet(); void sins3KirkGotBoxContents(); void sins3Tick30(); void sins3Tick60(); void sins3UseKirkOnPanel(); void sins3UseSpockOnPanel(); void sins3SpockReachedPanel(); void sins3UseRockOnWall(); void sins3KirkReachedWall(); void sins3KirkPutRockOnWall(); void sins3KirkBackedAwayFromWall(); void sins3UsedLowPowerLaserOnRock(); void sins3MadeHoleInRock(); void sins3CreatedTemplateInRock(); void sins3RockTurnedIntoIDCard(); void sins3RockVaporized(); void sins3UseDrillAnywhere(); void sins3GetIDCard(); void sins3ReachedIDCard(); void sins3PickedUpIDCard(); void sins3LookAtItemBeingDrilled(); void sins3LookAtKirk(); void sins3LookAtSpock(); void sins3LookAtMccoy(); void sins3LookAtRedshirt(); void sins3TalkToKirk(); void sins3TalkToSpock(); void sins3TalkToMccoy(); void sins3TalkToRedshirt(); void sins3UseCommunicator(); void sins3UseSpockOnDrill(); void sins3UseMccoyOnDrill(); void sins3UseRedshirtOnDrill(); void sins3WalkToDoor(); void sins3UseMedkitOnCrewman(); void sins3UseMTricorderOnCrewman(); // SINS4 void sins4Tick1(); void sins4UseSTricorderOnPanel(); void sins4UseSpockOnPanel(); void sins4UsePhaserOnNorthDoor(); void sins4UsePhaserOnPanel(); void sins4UseIDCardOnPanel(); void sins4KirkReachedPanel(); void sins4KirkPutCardInPanel(); void sins4UseRockOnPanel(); void sins4KirkReachedPanelWithRock(); void sins4KirkUsedRockOnPanel(); void sins4LookAtWestDoor(); void sins4LookAtEastDoor(); void sins4LookAnywhere(); void sins4LookAtPanel(); void sins4Tick40(); void sins4LookAtKirk(); void sins4LookAtSpock(); void sins4LookAtMccoy(); void sins4LookAtRedshirt(); void sins4LookAtLight(); void sins4LookAtBeam(); void sins4LookAtOpenNorthDoor(); void sins4LookAtClosedNorthDoor(); void sins4TalkToKirk(); void sins4TalkToSpock(); void sins4TalkToMccoy(); void sins4TalkToRedshirt(); void sins4UseSTricorderOnNorthDoor(); void sins4UseSTricorderAnywhere(); void sins4UseCommunicator(); void sins4UseMccoyOnNorthDoor(); void sins4UseRedshirtOnNorthDoor(); void sins4UseSpockOnNorthDoor(); void sins4UseMccoyOnPanel(); void sins4UseRedshirtOnPanel(); void sins4WalkToNorthDoor(); void sins4WalkToWestDoor(); void sins4WalkToEastDoor(); void sins4UseMedkitOnCrewman(); void sins4UseMTricorderOnCrewman(); // SINS5 void sins5Tick1(); void sins5UseSTricorderAnywhere(); void sins5UseSTricorderOnRightComputer(); void sins5UseSTricorderOnLeftComputer(); void sins5UseSTricorderOnMiddleComputer(); void sins5UseKirkOnRightComputer(); void sins5UseKirkOnLeftComputer(); void sins5UseKirkOnMiddleComputer(); void sins5UseMccoyOnComputer(); void sins5UseRedshirtOnComputer(); void sins5UseSpockOnMiddleComputer(); void sins5UseSpockOnRightComputer(); void sins5SpockReachedRightComputer(); void sins5SpockUsedRightComputer(); void sins5UseSpockOnLeftComputer(); void sins5SpockReachedLeftComputer(); void sins5SpockUsedLeftComputer(); void sins5CrewmanReadyToBeamOut(); void sins5Tick20(); void sins5CheckGatheredAllClues(); void sins5UseWireOnComputer(); void sins5KirkOrSpockInPositionToUseWire(); void sins5WireConnected(); void sins5UseStunPhaserOnComputer(); void sins5UseKillPhaserOnLeftComputer(); void sins5ReachedPositionToShootLeftComputer(); void sins5DrewPhaserToShootLeftComputer(); void sins5Timer0Expired(); void sins5UseKillPhaserOnMiddleComputer(); void sins5ReachedPositionToShootMiddleComputer(); void sins5DrewPhaserToShootMiddleComputer(); void sins5Timer1Expired(); void sins5UseKillPhaserOnRightComputer(); void sins5ReachedPositionToShootRightComputer(); void sins5DrewPhaserToShootRightComputer(); void sins5Timer2Expired(); void sins5ComputerLaunchesMissiles(); void sins5Timer3Expired(); void sins5LookAnywhere(); void sins5LookAtKirk(); void sins5LookAtSpock(); void sins5LookAtMccoy(); void sins5LookAtRedshirt(); void sins5LookAtLight(); void sins5LookAtLeftComputer(); void sins5LookAtMiddleComputer(); void sins5LookAtRightComputer(); void sins5LookAtMissile(); void sins5LookAtNorthDoor(); void sins5UseMedkitOnCrewman(); void sins5UseMTricorderAnywhere(); void sins5TalkToKirk(); void sins5TalkToSpock(); void sins5TalkToMccoy(); void sins5TalkToRedshirt(); void sins5UseSTricorderOnMissile(); void sins5UseSTricorderOnNorthDoor(); void sins5UseMTricorderOnCrewman(); // VENG0 void veng0Tick1(); void veng0Tick10(); void veng0Tick50(); void veng0TouchedDoor(); void veng0UseSTricorderOnComputerBank(); void veng0UseSTricorderOnChair(); void veng0UseSTricorderAnywhere(); void veng0UseMccoyOnBeam(); void veng0UseSTricorderOnBeam(); void veng0UseRedshirtOnBeam(); void veng0UseSpockOnConsole(); void veng0UseRedshirtOnConsole(); void veng0UsePhaserOnBeam(); void veng0UseMccoyOnDeadCrewman(); void veng0UseSawOnBeam(); void veng0KirkReachedSaw(); void veng0Timer0Expired(); void veng0DoneCuttingBeam(); void veng0GetBeam(); void veng0TalkToKirk(); void veng0TalkToMccoy(); void veng0TalkToSpock(); void veng0TalkToRedshirt(); void veng0LookAtPatterson(); void veng0LookAtDeadCrewman2(); void veng0LookAtComputerBank(); void veng0LookAtChair(); void veng0LookAtKirk(); void veng0LookAtSpock(); void veng0LookAtMccoy(); void veng0LookAtRedshirt(); void veng0LookAtViewscreen(); void veng0LookAtHelmConsole(); void veng0LookAtNavConsole(); void veng0LookAtBeam(); void veng0LookAnywhere(); void veng0LookAtDeadCrewman1(); void veng0UseMccoyOnLivingCrewman(); void veng0MccoyReachedCrewman(); void veng0MccoyScannedCrewman(); // VENG1 void veng1Tick1(); void veng1WalkToDoor(); void veng1TouchedHotspot0(); void veng1ReachedDoor(); void veng1TouchedTurbolift(); void veng1LookAtDeadGuy(); void veng1UseSTricorderOnVent(); void veng1LookAtPanel(); void veng1LookAtDoor(); void veng1LookAtSaw(); void veng1LookAtDebris(); void veng1LookAtKirk(); void veng1LookAtMccoy(); void veng1LookAtSpock(); void veng1LookAtRedshirt(); void veng1LookAnywhere(); void veng1TalkToKirk(); void veng1TalkToSpock(); void veng1TalkToMccoy(); void veng1TalkToRedshirt(); void veng1UsePhaserOnDoor(); void veng1UsePhaserOnPanel(); void veng1UseSTricorderOnSaw(); void veng1UseSTricorderOnDoor(); void veng1UseSTricorderOnPanel(); void veng1GetPanel(); void veng1KirkReachedPanel(); void veng1KirkAccessedPanel(); void veng1UseSawOnPanel(); void veng1UseSawOnDoor(); void veng1UseDrillOnDebris(); void veng1UseSawOnDebris(); void veng1UseDrillOnPanel(); void veng1KirkReachedPanelToDrill(); void veng1KirkDoneDrillingPanel(); void veng1UseHypoOnDebris(); void veng1KirkReachedDebris(); void veng1KirkUsedHypoOnDebris(); void veng1GetSaw(); void veng1ReachedSaw(); void veng1PickedUpSaw(); void veng1GetDebris(); void veng1ReachedDebrisToGet(); void veng1TriedToGetDebris(); // VENG2 void veng2Tick1(); void veng2Timer0Expired(); void veng2ElasiShipDecloaked(); void veng2Timer2Expired(); void veng2TouchedDoor(); void veng2LookAtViewscreen(); void veng2LookAtMiddleConsole(); void veng2LookAtDamageDisplay(); void veng2LookAtSTricorder(); void veng2LookAtMTricorder(); void veng2LookAtTorpedoButton(); void veng2LookAtTorpedoControl(); void veng2LookAtImpulseConsole(); void veng2LookAtMainComputer(); void veng2LookAtRecordDeck(); void veng2LookAtDeckIOConsole(); void veng2LookAtKirk(); void veng2LookAtSpock(); void veng2LookAtMccoy(); void veng2LookAtRedshirt(); void veng2LookAnywhere(); void veng2TalkToKirk(); void veng2TalkToSpock(); void veng2TalkToMccoy(); void veng2TalkToRedshirt(); void veng2UseTechJournalOnDeckIOConsole(); void veng2ReachedDeckIOWithTechJournal(); void veng2DoneReadingTechJournal(); void veng2UseLogOnDeckIOConsole(); void veng2ReachedDeckIOWithLog(); void veng2LoadedLog(); void veng2UseCommunicator(); void veng2UseKirkOnTorpedoButton(); void veng2UseKirkReachedTorpedoButton(); void veng2KirkFiredTorpedo(); void veng2TorpedoStruckElasiShip(); void veng2ElasiRetreated(); void veng2CrewmanInPositionToBeamOut(); void veng2UseSTricorderOnTorpedoButton(); void veng2UseSTricorderOnMiddleConsole(); void veng2UseSTricorderOnTorpedoControl(); void veng2UseImpulseConsole(); void veng2SpockReachedImpulseConsole(); void veng2SpockUsedImpulseConsole(); void veng2UseMainComputer(); void veng2UseSTricorderOnMainComputer(); void veng2SpockReachedMainComputerToPutTricorder(); void veng2AttachedSTricorderToComputer(); void veng2UseMTricorderOnMainComputer(); void veng2MccoyReachedMainComputerToPutTricorder(); void veng2AttachedMTricorderToComputer(); void veng2BothTricordersPluggedIn(); void veng2UseSTricorderOnDeckIOConsole(); void veng2UseSTricorderOnImpulseConsole(); void veng2UseFusionPackOnMainComputer(); void veng2GetLogDeck(); void veng2ReachedLogDeck(); void veng2PickedUpLogDeck(); void veng2GetSTricorder(); void veng2ReachedSTricorderToGet(); void veng2PickedUpSTricorder(); void veng2GetMTricorder(); void veng2ReachedMTricorderToGet(); void veng2PickedUpMTricorder(); // VENG3 void veng3Tick1(); void veng3Tick15(); void veng3TouchedTurbolift2(); void veng3TouchedTurbolift1(); void veng3WalkToDoor(); void veng3ReachedTurbolift2(); void veng3Turbolift2Opened(); void veng3WalkToSickbayDoor(); void veng3ReachedSickbayDoor(); void veng3SickbayDoorOpened(); void veng3LookAtSupportBeam(); void veng3LookAtDebris(); void veng3LookAtTurbolift2Door(); void veng3LookAtSickbayDoor(); void veng3LookAtCable(); void veng3LookAtDeadGuy(); void veng3LookAtKirk(); void veng3LookAtMccoy(); void veng3LookAtSpock(); void veng3LookAtRedshirt(); void veng3LookAnywhere(); void veng3UseStunPhaserOnDebris(); void veng3UseKillPhaserOnDebris(); void veng3ReachedPositionToShootDebris(); void veng3DrewPhaserToShootDebris(); void veng3DebrisVaporized(); void veng3DebrisFellAgain(); void veng3UseSpockOnDebris(); void veng3UseRedshirtOnDebris(); void veng3UseMccoyOnDebris(); void veng3UseBeamOnDebris(); void veng3ReachedPositionToPlaceBeam(); void veng3PlacedBeam(); void veng3UseSTricorderOnDebris(); void veng3UseMolecularSawOnDebris(); void veng3TalkToKirk(); void veng3TalkToSpock(); void veng3TalkToMccoy(); void veng3TalkToRedshirt(); void veng3GetDebris(); void veng3GetCable(); void veng3ReachedCable(); void veng3PickedUpCable(); // VENG4 void veng4Tick1(); void veng4TalkToKirk(); void veng4TalkToMccoy(); void veng4TalkToSpock(); void veng4TalkToRedshirt(); void veng4UseMccoyOnDeadGuy(); void veng4UseHypoOnBrittany(); void veng4UseMedkitOnBrittany(); void veng4UseMTricorderOnBrittany(); void veng4UseMccoyOnBrittany(); void veng4MccoyReachedBrittany(); void veng4UsedMedkitOnBrittany(); void veng4MccoyScannedBrittany(); void veng4TalkToBrittany(); void veng4LookAtDeadGuy(); void veng4LookAtRightBedReadings(); void veng4LookAtDoorHotspot(); void veng4LookAtKirk(); void veng4LookAtSpock(); void veng4LookAtMccoy(); void veng4LookAtRedshirt(); void veng4LookAtLeftBed(); void veng4LookAtLeftBedReadings(); void veng4LookAtBrittany(); void veng4LookAtDrill(); void veng4LookAtHypoOnTable(); void veng4LookAtDoorObject(); void veng4LookAnywhere(); void veng4GetHypo(); void veng4ReachedHypo(); void veng4PickedUpHypo(); void veng4GetDrill(); void veng4ReachedDrill(); void veng4PickedUpDrill(); void veng4TouchedHotspot0(); void veng4WalkToDoor(); // VENG5 void veng5Tick1(); void veng5Tick45(); void veng5WalkToDoor(); void veng5ReachedDoor(); void veng5DoorOpened(); void veng5TouchedTurboliftDoor(); void veng5LookAtDoor(); void veng5LookAtLadder(); void veng5LookAtDeadGuy(); void veng5LookAtPowerPack(); void veng5LookAtDebris(); void veng5LookAtKirk(); void veng5LookAtSpock(); void veng5LookAtMccoy(); void veng5LookAtRedshirt(); void veng5LookAnywhere(); void veng5UsePhaserOnPowerPack(); void veng5UseStunPhaserOnDebris(); void veng5UseKillPhaserOnDebris(); void veng5ReachedPositionToShootDebris(); void veng5DrewPhaser(); void veng5VaporizedDebris(); void veng5UseMTricorderOnDebris(); void veng5UseSTricorderOnDebris(); void veng5UseMTricorderOnPowerPack(); void veng5UseSTricorderOnPowerPack(); void veng5TalkToKirk(); void veng5TalkToMccoy(); void veng5TalkToSpock(); void veng5TalkToRedshirt(); void veng5TouchedHotspot0(); void veng5GetPowerPack(); void veng5ReachedPowerPack(); void veng5PickedUpPowerPack(); // VENG6 void veng6Tick1(); void veng6WalkToDoor(); void veng6ReachedDoor(); void veng6DoorOpened(); void veng6LookAtLeftPort(); void veng6LookAtRightPort(); void veng6LookAtDoor(); void veng6LookAtOilCanister(); void veng6LookAtCabinet(); void veng6LookAtCable(); void veng6LookAtRightConsole(); void veng6LookAtImpulseEngines(); void veng6LookAtLeftConsole(); void veng6LookAtJunctionBox(); void veng6LookAtJournal(); void veng6LookAtKirk(); void veng6LookAtSpock(); void veng6LookAtMccoy(); void veng6LookAtRedshirt(); void veng6LookAtDeadGuy(); void veng6LookAnywhere(); void veng6TalkToKirk(); void veng6TalkToSpock(); void veng6TalkToMccoy(); void veng6TalkToRedshirt(); void veng6UseCable1OnLeftPort(); void veng6UseCable2OnLeftPort(); void veng6UseCableOnLeftPort(byte cable); void veng6KirkOrSpockReachedLeftPort(); void veng6AttachedLeftCable(); void veng6UseCable1OnRightPort(); void veng6UseCable2OnRightPort(); void veng6UseCableOnRightPort(byte cable); void veng6KirkOrSpockReachedRightPort(); void veng6AttachedRightCable(); void veng6UseCrewmanOnJunctionBox(); void veng6SpockReachedJunctionBox(); void veng6SpockAdjustedJunctionBox(); void veng6UseHypoOnOilCanister(); void veng6ReachedOilCanister(); void veng6FilledHypoWithOil(); void veng6UseCabinet(); void veng6ReachedCabinet(); void veng6OpenedOrClosedCabinet(); void veng6UseSTricorderOnImpulseEngines(); void veng6UseSTricorderOnRightConsole(); void veng6UseSTricorderOnJunctionBox(); void veng6UsePowerPackOnLeftConsole(); void veng6GetJunctionBox(); void veng6GetOilCanister(); void veng6GetEngineeringJournal(); void veng6ReachedEngineeringJournal(); void veng6TookEngineeringJournal(); // VENG7 void veng7Tick1(); void veng7WalkToDoor(); void veng7ReachedDoor(); void veng7DoorOpened(); void veng7TouchedTurboliftDoor(); void veng7LookAtCollapsedSection(); void veng7LookAtDeadGuy(); void veng7LookAtDoor(); void veng7LookAtCable(); void veng7LookAtKirk(); void veng7LookAtSpock(); void veng7LookAtMccoy(); void veng7LookAtRedshirt(); void veng7LookAnywhere(); void veng7TalkToKirk(); void veng7TalkToSpock(); void veng7TalkToMccoy(); void veng7TalkToRedshirt(); void veng7UseSTricorderOnCollapsedSection(); void veng7TouchedHotspot0(); void veng7GetCable(); void veng7ReachedCable(); void veng7PickedUpCable(); // VENG8 void veng8Tick1(); void veng8WalkToDoor(); void veng8ReachedDoor(); void veng8DoorOpened(); void veng8Timer0Expired(); void veng8SparkAnim1Done(); void veng8Timer1Expired(); void veng8SparkAnim2Done(); void veng8LookAtPowerPack(); void veng8LookAtDoor(); void veng8LookAtPowerCircuits(); void veng8LookAtControls(); void veng8LookAtDeadGuy(); void veng8LookAtSlider(); void veng8LookAtKirk(); void veng8LookAtSpock(); void veng8LookAtMccoy(); void veng8LookAtRedshirt(); void veng8LookAtTransporter(); void veng8LookAnywhere(); void veng8TalkToKirk(); void veng8TalkToSpock(); void veng8TalkToMccoy(); void veng8TalkToRedshirt(); void veng8UseKirkOnControls(); void veng8UseSpockOnControls(); void veng8SpockReachedControls(); void veng8SpockUsedControls(); void veng8UsePowerPackOnPowerCircuit(); void veng8SpockReachedPowerCircuit(); void veng8SpockConnectedPowerPack(); void veng8TransporterPoweredUp(); void veng8UseKirkOnSlider(); void veng8UseSpockOnSlider(); void veng8SpockReachedSlider(); void veng8RedshirtReachedTransporter(); void veng8SpockPulledSliderToBeamOut(); void veng8RedshirtBeamedOut(); void veng8SpockPulledSliderToBeamIn(); void veng8RedshirtBeamedIn(); void veng8UseSTricorderOnConsole(); // VENGA (common code) void vengaTick(); void vengaElasiBeamOver(); void vengaUsePhaserAnywhere(); void vengaLookAtHypo(); void vengaUseCommunicator(); void vengaUseMccoyOnDeadGuy(); public: // Room-specific variables. This is memset'ed to 0 when the room is initialized. // NOTE: Any changes here must be reflected in the corresponding serializer functions. union { struct { // demon0 byte bottomDoorCounter; // 0xca byte topDoorCounter; // 0xcb bool movingToTopDoor; // 0xcc bool movingToBottomDoor; // 0xcd // demon1 byte klingonShot[3]; // 0xca int16 numKlingonsKilled; byte attackIndex; bool kirkShooting; char d6[10]; // demon3 bool shootingBoulder; // 0xca bool boulder1Shot; // 0xcb byte boulderBeingShot; // 0xcc bool kirkInPosition; // 0xcd bool redshirtInPosition; // 0xce bool spockInPosition; // 0xcf bool mccoyInPosition; // 0xd0 bool inFiringPosition; // 0xd1 bool kirkPhaserOut; // 0xd3 char boulderAnim[10]; // 0xd4 int16 usedPhaserOnDoor; // 0xd6 // demon4 bool triedToShootNauian; // 0xca bool nauianEmerged; // 0xcb bool disabledSecurity; // 0xcc bool cd; // 0xcd byte crewReadyToBeamOut; // 0xce int16 crewmanUsingPanel; // 0xcf // demon5 bool scannedRoberts; // 0xca bool scannedChub; // 0xcb bool scannedGrisnash; // 0xcc bool scannedStephen; // 0xcd byte numScanned; // 0xce byte numTalkedTo; // 0xcf bool talkedToRoberts; // 0xd0 bool talkedToChub; // 0xd1 bool talkedToGrisnash; // 0xd2 bool talkedToStephen; // 0xd3 // demon6 bool insultedStephenRecently; // 0xca bool stephenInRoom; // 0xcb bool caseOpened; // 0xcd // common bool movingToDoor; byte doorCounter; void saveLoadWithSerializer(Common::Serializer &ser) { // demon0 ser.syncAsByte(bottomDoorCounter); ser.syncAsByte(topDoorCounter); ser.syncAsByte(movingToTopDoor); ser.syncAsByte(movingToBottomDoor); // demon1 ser.syncBytes((byte *)klingonShot, 3); ser.syncAsSint16LE(numKlingonsKilled); ser.syncAsByte(attackIndex); ser.syncAsByte(kirkShooting); ser.syncBytes((byte *)d6, 10); // demon3 ser.syncAsByte(shootingBoulder); ser.syncAsByte(boulder1Shot); ser.syncAsByte(boulderBeingShot); ser.syncAsByte(kirkInPosition); ser.syncAsByte(redshirtInPosition); ser.syncAsByte(spockInPosition); ser.syncAsByte(mccoyInPosition); ser.syncAsByte(inFiringPosition); ser.syncAsByte(kirkPhaserOut); ser.syncBytes((byte *)boulderAnim, 10); ser.syncAsSint16LE(usedPhaserOnDoor); // demon4 ser.syncAsByte(triedToShootNauian); ser.syncAsByte(nauianEmerged); ser.syncAsByte(disabledSecurity); ser.syncAsByte(cd); ser.syncAsByte(crewReadyToBeamOut); ser.syncAsSint16LE(crewmanUsingPanel); // demon5 ser.syncAsByte(scannedRoberts); ser.syncAsByte(scannedChub); ser.syncAsByte(scannedGrisnash); ser.syncAsByte(scannedStephen); ser.syncAsByte(numScanned); ser.syncAsByte(numTalkedTo); ser.syncAsByte(talkedToRoberts); ser.syncAsByte(talkedToChub); ser.syncAsByte(talkedToGrisnash); ser.syncAsByte(talkedToStephen); // demon6 ser.syncAsByte(insultedStephenRecently); ser.syncAsByte(stephenInRoom); ser.syncAsByte(caseOpened); // common ser.syncAsByte(movingToDoor); ser.syncAsByte(doorCounter); } } demon; struct { // tug2 byte shootingObject; // 0x1ec1 byte shootingTarget; bool elasiPhaserOnKill; bool shootKirkOverride; // 0x1ec4 void saveLoadWithSerializer(Common::Serializer &ser) { // tug2 ser.syncAsByte(shootingObject); ser.syncAsByte(shootingTarget); ser.syncAsByte(elasiPhaserOnKill); ser.syncAsByte(shootKirkOverride); } } tug; struct { // love0 bool heardSummaryOfVirus; // 0xda // love1 TextRef dyingSpeaker; // 0xcf int16 crewmanUsingFreezerRetX; // 0xd1 int16 crewmanUsingFreezerRetY; // 0xd3 int16 crewmanUsingDevice; // 0xd9 int16 itemInNozzle; // 0xdd char bottleAnimation[10]; // 0xdf // love2 byte canisterType; // 0xca byte cb; // 0xcb int16 canisterItem; // 0xce char canisterAnim[10]; // 0xd0 int16 chamberObject; // 0xd2 char chamberInputAnim[10]; // 0xd6 char chamberOutputAnim[10]; // 0xd8 // love3 byte activeCrewman; // love4 bool gaveWaterToRomulans; // 0xca // love5 byte numCrewmenReadyToBeamOut; // 0xcb // common byte walkingToDoor; byte doorOpenCounter; byte spockAndMccoyReadyToUseCure; byte cmnXPosToCureSpock; byte cmnYPosToCureSpock; void saveLoadWithSerializer(Common::Serializer &ser) { // love0 ser.syncAsByte(heardSummaryOfVirus); uint16 tmp = 0; uint32 tmp2 = 0; byte tmp3[10]; ser.syncAsSint16LE(tmp); // consoleCrewman ser.syncBytes((byte *)tmp3, 10); // consoleAnimation ser.syncAsSint32LE(tmp2); // consoleSpeaker ser.syncAsSint32LE(tmp2); // consoleText // love1 ser.syncAsSint32LE(dyingSpeaker); ser.syncAsSint16LE(crewmanUsingFreezerRetX); ser.syncAsSint16LE(crewmanUsingFreezerRetY); ser.syncAsSint16LE(crewmanUsingDevice); ser.syncAsSint16LE(itemInNozzle); ser.syncBytes((byte *)bottleAnimation, 10); // love2 ser.syncAsByte(canisterType); ser.syncAsByte(cb); ser.syncAsSint16LE(canisterItem); ser.syncBytes((byte *)canisterAnim, 10); ser.syncAsSint16LE(chamberObject); ser.syncBytes((byte *)chamberInputAnim, 10); ser.syncBytes((byte *)chamberOutputAnim, 10); // love3 ser.syncAsByte(activeCrewman); // love4 ser.syncAsByte(gaveWaterToRomulans); // love5 ser.syncAsByte(numCrewmenReadyToBeamOut); // common ser.syncAsByte(walkingToDoor); ser.syncAsByte(doorOpenCounter); ser.syncAsByte(spockAndMccoyReadyToUseCure); ser.syncAsByte(cmnXPosToCureSpock); ser.syncAsByte(cmnYPosToCureSpock); } } love; struct { // mudd3 bool suggestedUsingTricorders; // 0xca bool tricordersUnavailable; // 0xcb // mudd4 bool usingLeftConsole; // 0xca bool kirkUsingRightConsole; // 0xcb // common byte walkingToDoor; void saveLoadWithSerializer(Common::Serializer &ser) { // mudd3 ser.syncAsByte(suggestedUsingTricorders); ser.syncAsByte(tricordersUnavailable); // mudd4 ser.syncAsByte(usingLeftConsole); ser.syncAsByte(kirkUsingRightConsole); // common ser.syncAsByte(walkingToDoor); } } mudd; struct { // feather1 byte snakeInHole; // 0xca bool scannedSnake; // 0xcb byte crewEscaped[4]; // 0xcc byte crewmanClimbingVine; // feather2 bool showedSnakeToTlaoxac; // 0xca bool tlaoxacUnconscious; // 0xcb // feather6 bool usedRockOnCrystalsOnce; // feather7 bool insultedQuetzecoatl; void saveLoadWithSerializer(Common::Serializer &ser) { // feather1 ser.syncAsByte(snakeInHole); ser.syncAsByte(scannedSnake); ser.syncBytes(crewEscaped, 4); ser.syncAsByte(crewmanClimbingVine); // feather2 ser.syncAsByte(showedSnakeToTlaoxac); ser.syncAsByte(tlaoxacUnconscious); // feather6 ser.syncAsByte(usedRockOnCrystalsOnce); // feather7 ser.syncAsByte(insultedQuetzecoatl); } } feather; struct { // trial2 byte globBeingShot; bool phaserOnKill; // trial5 int16 itemToUse; // 0x1386 int16 objectToUse; // 0x1388 int16 hole; void saveLoadWithSerializer(Common::Serializer &ser) { // trial2 ser.syncAsByte(globBeingShot); ser.syncAsByte(phaserOnKill); // trial5 ser.syncAsSint16LE(itemToUse); ser.syncAsSint16LE(objectToUse); ser.syncAsSint16LE(hole); } } trial; struct { // sins5 byte numCrewmenInPositionForWire; // 0xca byte numCrewmenReadyToBeamOut; // 0xcb void saveLoadWithSerializer(Common::Serializer &ser) { ser.syncAsByte(numCrewmenInPositionForWire); ser.syncAsByte(numCrewmenReadyToBeamOut); } } sins; struct { // veng1 byte doorOpenCounter; // 0xca // veng2 byte numCrewmenReadyToBeamOut; // 0xca // veng4 bool usingMedkitOnBrittany; // veng6 byte kirkAndSpockReadyToAttachLeftCable; // 0xca byte kirkAndSpockReadyToAttachRightCable; // 0xcb byte cableInUse; // 0xcc // venga (common) bool walkingToDoor; // 0xcb (veng1), 0xca (veng4) void saveLoadWithSerializer(Common::Serializer &ser) { // veng1 ser.syncAsByte(doorOpenCounter); // veng2 ser.syncAsByte(numCrewmenReadyToBeamOut); // veng4 ser.syncAsByte(usingMedkitOnBrittany); // veng6 ser.syncAsByte(kirkAndSpockReadyToAttachLeftCable); ser.syncAsByte(kirkAndSpockReadyToAttachRightCable); ser.syncAsByte(cableInUse); // venga (common) ser.syncAsByte(walkingToDoor); } } veng; } _roomVar; }; } // End of namespace StarTrek #endif