Skip to content

Commit

Permalink
STARTREK: Reorganize includes in room.h
Browse files Browse the repository at this point in the history
This should avoid the costly rebuild of everything in the 'rooms/'
folder, at least sometimes...
  • Loading branch information
Stewmath authored and sev- committed Aug 9, 2018
1 parent 42b2281 commit 8970909
Show file tree
Hide file tree
Showing 44 changed files with 1,856 additions and 1,816 deletions.
2 changes: 1 addition & 1 deletion engines/startrek/awaymission.h
Expand Up @@ -180,7 +180,7 @@ struct AwayMission {

// 1: Decided to shoot them
// 2: Talked, and they surrendered immediately
// 3: They deorbited the ship (and perhps surrendered after)
// 3: They deorbited the ship (and perhaps surrendered after)
byte bridgeWinMethod; // 0x5e

bool talkedToBrigCrewman; // 0x5f
Expand Down
6 changes: 5 additions & 1 deletion engines/startrek/room.cpp
Expand Up @@ -45,7 +45,7 @@

namespace StarTrek {

Room::Room(StarTrekEngine *vm, const Common::String &name) : _vm(vm) {
Room::Room(StarTrekEngine *vm, const Common::String &name) : _vm(vm), _awayMission(&vm->_awayMission) {
SharedPtr<FileStream> rdfFile = _vm->loadFile(name + ".RDF");

int size = rdfFile->size();
Expand Down Expand Up @@ -502,6 +502,10 @@ void Room::stopAllVocSounds() {
_vm->_sound->stopAllVocSounds();
}

Common::String Room::getCrewmanAnimFilename(int object, const Common::String &str) {
return _vm->getCrewmanAnimFilename(object, str);
}

void Room::spockScan(int direction, TextRef text, bool changeDirection) {
const char *dirs = "nsew";
Common::String anim = "sscan_";
Expand Down
8 changes: 7 additions & 1 deletion engines/startrek/room.h
Expand Up @@ -27,8 +27,11 @@
#include "common/ptr.h"
#include "common/str.h"

#include "startrek/action.h"
#include "startrek/awaymission.h"
#include "startrek/fixedint.h"
#include "startrek/startrek.h"
#include "startrek/object.h"
#include "startrek/soundeffects.h"
#include "startrek/text.h"

using Common::SharedPtr;
Expand Down Expand Up @@ -141,6 +144,7 @@ class Room {

private:
StarTrekEngine *_vm;
AwayMission *_awayMission;

const RoomAction *_roomActionList;
int _numRoomActions;
Expand Down Expand Up @@ -252,6 +256,8 @@ class Room {

// 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.
Expand Down
52 changes: 26 additions & 26 deletions engines/startrek/rooms/demon0.cpp
Expand Up @@ -31,42 +31,42 @@ void Room::demon0Tick1() {
}

void Room::demon0Tick2() {
if (_vm->_awayMission.demon.talkedToPrelate)
if (_awayMission->demon.talkedToPrelate)
return;
loadActorAnim(8, "prel", 120, 190, 0);
}

void Room::demon0Tick60() {
if (_vm->_awayMission.demon.talkedToPrelate)
if (_awayMission->demon.talkedToPrelate)
return;
loadActorAnim2(8, "prelclap", 120, 190, 0);
}

void Room::demon0Tick100() {
if (_vm->_awayMission.demon.talkedToPrelate || _vm->_awayMission.demon.prelateWelcomedCrew)
if (_awayMission->demon.talkedToPrelate || _awayMission->demon.prelateWelcomedCrew)
return;
_vm->_awayMission.demon.prelateWelcomedCrew = true;
_awayMission->demon.prelateWelcomedCrew = true;
showText(TX_SPEAKER_ANGIVEN, TX_DEM0_036);
}

void Room::demon0Tick140() {
if (_vm->_awayMission.demon.mccoyMentionedFlora)
if (_awayMission->demon.mccoyMentionedFlora)
return;

showText(TX_SPEAKER_MCCOY, TX_DEM0_016);

_vm->_awayMission.demon.mccoyMentionedFlora = true;
_awayMission->demon.mccoyMentionedFlora = true;
}

void Room::demon0TouchedWarp0() {
_vm->_awayMission.demon.enteredFrom = 1;
_vm->_awayMission.rdfStillDoDefaultAction = true;
_awayMission->demon.enteredFrom = 1;
_awayMission->rdfStillDoDefaultAction = true;
}

void Room::demon0WalkToBottomDoor() {
_vm->_awayMission.disableInput = 1;
_awayMission->disableInput = 1;
_roomVar.demon.movingToBottomDoor = true;
_vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_E;
_awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_E;
walkCrewman(OBJECT_KIRK, 243, 158, 1);
}

Expand All @@ -84,9 +84,9 @@ void Room::demon0ReachedBottomDoor() {
}

void Room::demon0WalkToTopDoor() {
_vm->_awayMission.disableInput = 1;
_awayMission->disableInput = 1;
_roomVar.demon.movingToTopDoor = true;
_vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_E;
_awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_E;
walkCrewman(OBJECT_KIRK, 157, 134, 2);
}

Expand Down Expand Up @@ -154,11 +154,11 @@ void Room::demon0TalkToPrelate() {
TX_BLANK
};

if (_vm->_awayMission.demon.talkedToPrelate)
if (_awayMission->demon.talkedToPrelate)
return;

_vm->_awayMission.demon.missionScore += 3;
_vm->_awayMission.demon.talkedToPrelate = true;
_awayMission->demon.missionScore += 3;
_awayMission->demon.talkedToPrelate = true;

const int *response = nullptr;

Expand Down Expand Up @@ -187,7 +187,7 @@ void Room::demon0TalkToPrelate() {

showText(thirdResponse);

if (_vm->_awayMission.demon.wasRudeToPrelate)
if (_awayMission->demon.wasRudeToPrelate)
showText(badConclusion);
else
showText(goodConclusion);
Expand All @@ -209,7 +209,7 @@ void Room::demon0UsePhaserOnSign() {
void Room::demon0UsePhaserOnShelter() {
showText(TX_SPEAKER_MCCOY, TX_DEM0_015);
showText(TX_SPEAKER_SPOCK, TX_DEM0_013);
if (!_vm->_awayMission.redshirtDead)
if (!_awayMission->redshirtDead)
showText(TX_SPEAKER_EVERTS, TX_DEM0_040);
}

Expand Down Expand Up @@ -274,15 +274,15 @@ void Room::demon0TalkToRedshirt() {
}

void Room::demon0TalkToMcCoy() {
if (_vm->_awayMission.demon.talkedToPrelate) {
if (_awayMission->demon.talkedToPrelate) {
showText(TX_SPEAKER_KIRK, TX_DEM0_011);
showText(TX_SPEAKER_MCCOY, TX_DEM0_023);
showText(TX_SPEAKER_SPOCK, TX_DEM0_029);
if (!_vm->_awayMission.redshirtDead)
if (!_awayMission->redshirtDead)
showText(TX_SPEAKER_EVERTS, TX_DEM0_041);
} else {
showText(TX_SPEAKER_MCCOY, TX_DEM0_019);
if (!_vm->_awayMission.demon.askedPrelateAboutSightings) {
if (!_awayMission->demon.askedPrelateAboutSightings) {
demon0AskPrelateAboutSightings();
}
}
Expand All @@ -291,15 +291,15 @@ void Room::demon0TalkToMcCoy() {
void Room::demon0TalkToSpock() {
showText(TX_SPEAKER_SPOCK, TX_DEM0_014);

if (!_vm->_awayMission.demon.talkedToPrelate && !_vm->_awayMission.demon.askedPrelateAboutSightings)
if (!_awayMission->demon.talkedToPrelate && !_awayMission->demon.askedPrelateAboutSightings)
demon0AskPrelateAboutSightings();
}

void Room::demon0AskPrelateAboutSightings() {
showText(TX_SPEAKER_KIRK, TX_DEM0_001);
showText(TX_SPEAKER_ANGIVEN, TX_DEM0_030);

_vm->_awayMission.demon.askedPrelateAboutSightings = true;
_awayMission->demon.askedPrelateAboutSightings = true;
}

void Room::demon0UseSTricorderAnywhere() {
Expand All @@ -318,19 +318,19 @@ void Room::demon0UseMTricorderOnPrelate() {
loadActorAnim2(OBJECT_MCCOY, "mscans", -1, -1, 0);
playSoundEffectIndex(0x04);

if (_vm->_awayMission.demon.talkedToPrelate)
if (_awayMission->demon.talkedToPrelate)
showText(TX_SPEAKER_MCCOY, TX_DEM0_018);
else
showText(TX_SPEAKER_MCCOY, TX_DEM0_022);
}

// Helper functions
void Room::demon0BadResponse() {
if (_vm->_awayMission.demon.wasRudeToPrelate)
if (_awayMission->demon.wasRudeToPrelate)
return;

_vm->_awayMission.demon.missionScore -= 3;
_vm->_awayMission.demon.wasRudeToPrelate = true;
_awayMission->demon.missionScore -= 3;
_awayMission->demon.wasRudeToPrelate = true;

showText(TX_SPEAKER_ANGIVEN, TX_DEM0_033);
}
Expand Down

0 comments on commit 8970909

Please sign in to comment.