Permalink
Browse files

STARTREK: TRIAL1

  • Loading branch information...
Drenn1 authored and sev- committed Jul 7, 2018
1 parent 0f3efc0 commit 3cccf651791fee66e7ad1d6fd1f9927d73d26b06
@@ -264,9 +264,22 @@ struct AwayMission {
} feather;

struct {
int16 field29; // 0x29
int16 missionScore; // 0x29
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;
};
};
@@ -466,6 +466,10 @@ void Room::playVoc(Common::String filename) {
_vm->_sound->playVoc(filename);
}

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

void Room::spockScan(int direction, TextRef text, bool changeDirection) {
const char *dirs = "nsew";
Common::String anim = "sscan_";
@@ -133,6 +133,7 @@ class Room {
void endMission(int16 score, int16 arg2, int16 arg3); // Cmd 0x11
void showGameOverMenu(); // Cmd 0x12
void playVoc(Common::String filename); // Cmd 0x15
void stopAllVocSounds(); // Cmd 0x17

// Helper functions for repetitive stuff.

@@ -1755,6 +1756,89 @@ class Room {

// 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();
@@ -197,10 +197,10 @@ void Room::trial0ReachedRoomCenter() {
playMidiMusicTracks(2, -1);
showText(TX_SPEAKER_VLICT, TX_TRI0_049);
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?
endMission(_vm->_awayMission.trial.field29, _vm->_awayMission.trial.field2b, 0);
endMission(_vm->_awayMission.trial.missionScore, _vm->_awayMission.trial.field2b, 0);
}
}

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

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

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

Oops, something went wrong.

0 comments on commit 3cccf65

Please sign in to comment.