Skip to content

Commit

Permalink
STARTREK: TRIAL1
Browse files Browse the repository at this point in the history
  • Loading branch information
Stewmath authored and sev- committed Aug 9, 2018
1 parent 0f3efc0 commit 3cccf65
Show file tree
Hide file tree
Showing 6 changed files with 973 additions and 5 deletions.
17 changes: 15 additions & 2 deletions engines/startrek/awaymission.h
Expand Up @@ -264,9 +264,22 @@ struct AwayMission {
} feather; } feather;


struct { struct {
int16 field29; // 0x29 int16 missionScore; // 0x29
int16 field2b; // 0x2b int16 field2b; // 0x2b
int16 missionScore; // 0x5f bool entityDefeated; // 0x31: Used iron rod on the energy being
bool doorOpen; // 0x32
bool scannedLock; // 0x33

// 0: Don't know the door code yet
// 2: Will just open the door when the keypad is used
// 5: Will activate the unknown program when the keypad is used
byte doorCodeBehaviour; // 0x34

bool forceFieldDown; // 0x5d
bool uhuraAnalyzedCode; // 0x5e
int16 field5f; // 0x5f
bool gotPointsForGettingRod; // 0x61
bool gotPointsForCoatingRodWithIron; // 0x62
} trial; } trial;
}; };
}; };
Expand Down
4 changes: 4 additions & 0 deletions engines/startrek/room.cpp
Expand Up @@ -466,6 +466,10 @@ void Room::playVoc(Common::String filename) {
_vm->_sound->playVoc(filename); _vm->_sound->playVoc(filename);
} }


void Room::stopAllVocSounds() {
_vm->_sound->stopAllVocSounds();
}

void Room::spockScan(int direction, TextRef text, bool changeDirection) { void Room::spockScan(int direction, TextRef text, bool changeDirection) {
const char *dirs = "nsew"; const char *dirs = "nsew";
Common::String anim = "sscan_"; Common::String anim = "sscan_";
Expand Down
84 changes: 84 additions & 0 deletions engines/startrek/room.h
Expand Up @@ -133,6 +133,7 @@ class Room {
void endMission(int16 score, int16 arg2, int16 arg3); // Cmd 0x11 void endMission(int16 score, int16 arg2, int16 arg3); // Cmd 0x11
void showGameOverMenu(); // Cmd 0x12 void showGameOverMenu(); // Cmd 0x12
void playVoc(Common::String filename); // Cmd 0x15 void playVoc(Common::String filename); // Cmd 0x15
void stopAllVocSounds(); // Cmd 0x17


// Helper functions for repetitive stuff. // Helper functions for repetitive stuff.


Expand Down Expand Up @@ -1755,6 +1756,89 @@ class Room {


// TRIAL1 // TRIAL1
void trial1Tick1(); 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 // TRIAL2
void trial2Tick1(); void trial2Tick1();
Expand Down
6 changes: 4 additions & 2 deletions engines/startrek/rooms/trial0.cpp
Expand Up @@ -197,10 +197,10 @@ void Room::trial0ReachedRoomCenter() {
playMidiMusicTracks(2, -1); playMidiMusicTracks(2, -1);
showText(TX_SPEAKER_VLICT, TX_TRI0_049); showText(TX_SPEAKER_VLICT, TX_TRI0_049);
showText(TX_SPEAKER_VLICT, TX_TRI0_044); showText(TX_SPEAKER_VLICT, TX_TRI0_044);
_vm->_awayMission.trial.missionScore = 0; _vm->_awayMission.trial.field5f = 0;


// FIXME: Are these parameters in the right order? // FIXME: Are these parameters in the right order?
endMission(_vm->_awayMission.trial.field29, _vm->_awayMission.trial.field2b, 0); endMission(_vm->_awayMission.trial.missionScore, _vm->_awayMission.trial.field2b, 0);
} }
} }


Expand Down Expand Up @@ -279,10 +279,12 @@ void Room::trial0UsePhaserOrRock() {
} }


void Room::trial0UseSnakeOnVlict() { void Room::trial0UseSnakeOnVlict() {
// Unused, since the snake item doesn't carry over to the courtroom
showText(TX_SPEAKER_VLICT, TX_TRI4_076); showText(TX_SPEAKER_VLICT, TX_TRI4_076);
} }


void Room::trial0UseSnakeOnGuard() { void Room::trial0UseSnakeOnGuard() {
// Unused, since the snake item doesn't carry over to the courtroom
showText(TX_SPEAKER_KLINGON_GUARD, TX_TRI0_F24); showText(TX_SPEAKER_KLINGON_GUARD, TX_TRI0_F24);
} }


Expand Down

0 comments on commit 3cccf65

Please sign in to comment.