[Scummvm-git-logs] scummvm startrek-rebased -> 2c2a8391ee46afe4d1a4f1be13d7a6988d3945d9
Drenn1
stewartmatthew6 at gmail.com
Mon May 27 22:29:12 CEST 2019
This automated email contains information about 6 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
109c10794e STARTREK: VENG8
0b75c01adf STARTREK: VENG8 text changes
5673a5a9b7 STARTREK: Common code for VENG mission
b9ca6d2cb6 STARTREK: Saving for VENG mission
2a6ee10182 STARTREK: Bugfix to map preview of republic
2c2a8391ee STARTREK: Fixes to drawR3Shape; red planet renders
Commit: 109c10794e018e9f677e33aa26c42375fa37bfc3
https://github.com/scummvm/scummvm/commit/109c10794e018e9f677e33aa26c42375fa37bfc3
Author: Matthew Stewart (stewartmatthew6 at gmail.com)
Date: 2019-02-02T12:17:14-05:00
Commit Message:
STARTREK: VENG8
Changed paths:
engines/startrek/awaymission.h
engines/startrek/room.h
engines/startrek/rooms/veng8.cpp
engines/startrek/text.cpp
engines/startrek/text.h
diff --git a/engines/startrek/awaymission.h b/engines/startrek/awaymission.h
index 8785979..1b3df61 100644
--- a/engines/startrek/awaymission.h
+++ b/engines/startrek/awaymission.h
@@ -690,7 +690,9 @@ struct AwayMission {
bool readEngineeringJournal; // 0x61
bool tookEngineeringJournal; // 0x62
bool engineeringCabinetOpen; // 0x63
+ bool setTransporterCoordinates; // 0x65
bool examinedTorpedoControl; // 0x66
+ bool powerPackPluggedIntoTransporter; // 0x67
bool field68; // 0x68
bool getPointsForHealingBrittany; // 0x69
bool readAllLogs; // 0x6a
diff --git a/engines/startrek/room.h b/engines/startrek/room.h
index b6a7d5d..7eaef47 100644
--- a/engines/startrek/room.h
+++ b/engines/startrek/room.h
@@ -2798,6 +2798,46 @@ public:
// 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 vengaUseMccoyOnDeadGuy();
diff --git a/engines/startrek/rooms/veng8.cpp b/engines/startrek/rooms/veng8.cpp
index d8ad9e0..ac002c0 100644
--- a/engines/startrek/rooms/veng8.cpp
+++ b/engines/startrek/rooms/veng8.cpp
@@ -22,20 +22,356 @@
#include "startrek/room.h"
-#define OBJECT_DOOR 8
+#define OBJECT_DEAD_GUY 8 // Unused
+#define OBJECT_POWER_PACK 9
+#define OBJECT_CABLES 10
+#define OBJECT_DOOR 11
+#define OBJECT_CONSOLE_LEFT 12
+#define OBJECT_SPARKS_1 13
+#define OBJECT_SPARKS_2 14
+#define OBJECT_CONTROLS 15
+#define OBJECT_SLIDER 16
-#define HOTSPOT_20 0x20
+#define HOTSPOT_SLIDER 0x20
+#define HOTSPOT_CONTROLS 0x21
+#define HOTSPOT_POWER_CIRCUIT 0x22
+#define HOTSPOT_DOOR 0x23
+#define HOTSPOT_TRANSPORTER 0x24
namespace StarTrek {
extern const RoomAction veng8ActionList[] = {
{ {ACTION_TICK, 1, 0, 0}, &Room::veng8Tick1 },
+
+ { {ACTION_WALK, OBJECT_DOOR, 0, 0}, &Room::veng8WalkToDoor },
+ { {ACTION_WALK, HOTSPOT_DOOR, 0, 0}, &Room::veng8WalkToDoor },
+ { {ACTION_DONE_WALK, 8, 0, 0}, &Room::veng8ReachedDoor },
+ { {ACTION_DONE_ANIM, 7, 0, 0}, &Room::veng8DoorOpened },
+ { {ACTION_TIMER_EXPIRED, 0, 0, 0}, &Room::veng8Timer0Expired },
+ { {ACTION_DONE_ANIM, 11, 0, 0}, &Room::veng8SparkAnim1Done },
+ { {ACTION_TIMER_EXPIRED, 1, 0, 0}, &Room::veng8Timer1Expired },
+ { {ACTION_DONE_ANIM, 12, 0, 0}, &Room::veng8SparkAnim2Done },
+
+ { {ACTION_LOOK, OBJECT_POWER_PACK, 0, 0}, &Room::veng8LookAtPowerPack },
+ { {ACTION_LOOK, OBJECT_DOOR, 0, 0}, &Room::veng8LookAtDoor },
+ { {ACTION_LOOK, HOTSPOT_DOOR, 0, 0}, &Room::veng8LookAtDoor },
+ { {ACTION_LOOK, HOTSPOT_POWER_CIRCUIT, 0, 0}, &Room::veng8LookAtPowerCircuits },
+ { {ACTION_LOOK, OBJECT_CONTROLS, 0, 0}, &Room::veng8LookAtControls },
+ { {ACTION_LOOK, HOTSPOT_CONTROLS, 0, 0}, &Room::veng8LookAtControls },
+ { {ACTION_LOOK, OBJECT_DEAD_GUY, 0, 0}, &Room::veng8LookAtDeadGuy },
+ { {ACTION_LOOK, OBJECT_SLIDER, 0, 0}, &Room::veng8LookAtSlider },
+ { {ACTION_LOOK, HOTSPOT_SLIDER, 0, 0}, &Room::veng8LookAtSlider },
+ { {ACTION_LOOK, OBJECT_KIRK, 0, 0}, &Room::veng8LookAtKirk },
+ { {ACTION_LOOK, OBJECT_SPOCK, 0, 0}, &Room::veng8LookAtSpock },
+ { {ACTION_LOOK, OBJECT_MCCOY, 0, 0}, &Room::veng8LookAtMccoy },
+ { {ACTION_LOOK, OBJECT_REDSHIRT, 0, 0}, &Room::veng8LookAtRedshirt },
+ { {ACTION_LOOK, HOTSPOT_TRANSPORTER, 0, 0}, &Room::veng8LookAtTransporter },
+ { {ACTION_LOOK, 0xff, 0, 0}, &Room::veng8LookAnywhere },
+ { {ACTION_TALK, OBJECT_KIRK, 0, 0}, &Room::veng8TalkToKirk },
+ { {ACTION_TALK, OBJECT_SPOCK, 0, 0}, &Room::veng8TalkToSpock },
+ { {ACTION_TALK, OBJECT_MCCOY, 0, 0}, &Room::veng8TalkToMccoy },
+ { {ACTION_TALK, OBJECT_REDSHIRT, 0, 0}, &Room::veng8TalkToRedshirt },
+
+ { {ACTION_USE, OBJECT_KIRK, OBJECT_CONTROLS, 0}, &Room::veng8UseKirkOnControls },
+ { {ACTION_USE, OBJECT_KIRK, HOTSPOT_CONTROLS, 0}, &Room::veng8UseKirkOnControls },
+ { {ACTION_USE, OBJECT_SPOCK, OBJECT_CONTROLS, 0}, &Room::veng8UseSpockOnControls },
+ { {ACTION_USE, OBJECT_SPOCK, HOTSPOT_CONTROLS, 0}, &Room::veng8UseSpockOnControls },
+ { {ACTION_DONE_WALK, 13, 0, 0}, &Room::veng8SpockReachedControls },
+ { {ACTION_DONE_ANIM, 14, 0, 0}, &Room::veng8SpockUsedControls },
+
+ { {ACTION_USE, OBJECT_IFUSION, HOTSPOT_POWER_CIRCUIT, 0}, &Room::veng8UsePowerPackOnPowerCircuit },
+ { {ACTION_DONE_WALK, 9, 0, 0}, &Room::veng8SpockReachedPowerCircuit },
+ { {ACTION_DONE_ANIM, 10, 0, 0}, &Room::veng8SpockConnectedPowerPack },
+ { {ACTION_DONE_ANIM, 15, 0, 0}, &Room::veng8TransporterPoweredUp },
+
+ { {ACTION_USE, OBJECT_KIRK, OBJECT_SLIDER, 0}, &Room::veng8UseKirkOnSlider },
+ { {ACTION_USE, OBJECT_KIRK, HOTSPOT_SLIDER, 0}, &Room::veng8UseKirkOnSlider },
+ { {ACTION_USE, OBJECT_SPOCK, OBJECT_SLIDER, 0}, &Room::veng8UseSpockOnSlider },
+ { {ACTION_USE, OBJECT_SPOCK, HOTSPOT_SLIDER, 0}, &Room::veng8UseSpockOnSlider },
+ { {ACTION_DONE_WALK, 16, 0, 0}, &Room::veng8SpockReachedSlider },
+ { {ACTION_DONE_WALK, 1, 0, 0}, &Room::veng8RedshirtReachedTransporter },
+ { {ACTION_DONE_WALK, 4, 0, 0}, &Room::veng8RedshirtReachedTransporter },
+ { {ACTION_DONE_ANIM, 5, 0, 0}, &Room::veng8SpockPulledSliderToBeamOut },
+ { {ACTION_DONE_ANIM, 2, 0, 0}, &Room::veng8RedshirtBeamedOut },
+ { {ACTION_DONE_ANIM, 6, 0, 0}, &Room::veng8SpockPulledSliderToBeamIn },
+ { {ACTION_DONE_ANIM, 3, 0, 0}, &Room::veng8RedshirtBeamedIn },
+
+ { {ACTION_USE, OBJECT_ISTRICOR, OBJECT_CONTROLS, 0}, &Room::veng8UseSTricorderOnConsole },
+ { {ACTION_USE, OBJECT_ISTRICOR, OBJECT_SLIDER, 0}, &Room::veng8UseSTricorderOnConsole },
+ { {ACTION_USE, OBJECT_ISTRICOR, HOTSPOT_CONTROLS, 0}, &Room::veng8UseSTricorderOnConsole },
+ { {ACTION_USE, OBJECT_ISTRICOR, HOTSPOT_SLIDER, 0}, &Room::veng8UseSTricorderOnConsole },
};
extern const int veng8NumActions = ARRAYSIZE(veng8ActionList);
void Room::veng8Tick1() {
+ playVoc("VEN8LOOP");
+
+ if (_awayMission->veng.powerPackPluggedIntoTransporter) {
+ loadActorAnim(OBJECT_POWER_PACK, "s7r8pp", 0x10d, 0xa2);
+ loadActorAnim(OBJECT_CABLES, "s7r8pl", 0x101, 0x97);
+ loadActorAnim(OBJECT_CONSOLE_LEFT, "s7r8t2", 0x3c, 0x9f);
+ loadActorAnim(OBJECT_CONTROLS, "s7r8q1", 0x35, 0xa0);
+ loadActorAnim(OBJECT_SLIDER, "s7r8q2", 0x44, 0xa0);
+ }
+
+ loadActorAnim(OBJECT_DOOR, "s7r8d1c", 0x12c, 0xac);
+ _awayMission->timers[0] = 47;
+ _awayMission->timers[1] = 14;
+}
+
+void Room::veng8WalkToDoor() {
+ walkCrewmanC(OBJECT_KIRK, 0x117, 0xb6, &Room::veng8ReachedDoor);
+}
+
+void Room::veng8ReachedDoor() {
+ _awayMission->disableInput = true;
+ playSoundEffectIndex(SND_DOOR1);
+ loadActorAnimC(OBJECT_DOOR, "s7r8d1", 0x12c, 0xac, &Room::veng8DoorOpened);
+}
+
+void Room::veng8DoorOpened() {
+ walkCrewman(OBJECT_KIRK, 0x134, 0xb6);
+}
+
+void Room::veng8Timer0Expired() { // Create sparks from a console in the ceiling
+ loadActorAnimC(OBJECT_SPARKS_1, "s7r8s1", 0, 0, &Room::veng8SparkAnim1Done);
+}
+
+void Room::veng8SparkAnim1Done() { // Create sparks every 128 ticks
+ _awayMission->timers[0] = 128;
+}
+
+void Room::veng8Timer1Expired() { // Should create sparks, but they're not visible anywhere?
+ loadActorAnimC(OBJECT_SPARKS_2, "s7r8s2", 0, 0, &Room::veng8SparkAnim2Done);
+}
+
+void Room::veng8SparkAnim2Done() {
+ _awayMission->timers[1] = 32;
+}
+
+void Room::veng8LookAtPowerPack() {
+ showText(TX_VEN8N004);
+}
+
+void Room::veng8LookAtDoor() {
+ showText(TX_VEN8N009);
+}
+
+void Room::veng8LookAtPowerCircuits() {
+ showText(TX_VEN8N006);
+}
+
+void Room::veng8LookAtControls() {
+ showText(TX_VEN8N007);
+}
+
+void Room::veng8LookAtDeadGuy() {
+ showText(TX_VEN8N003); // Unused, since the dead guy object isn't drawn
+}
+
+void Room::veng8LookAtSlider() {
+ showText(TX_VEN8N008);
+}
+
+void Room::veng8LookAtKirk() {
+ showText(TX_VEN8N001);
+}
+
+void Room::veng8LookAtSpock() {
+ // NOTE: Potential alternative is VEN8N011
+ showText(TX_VEN5N002);
+}
+
+void Room::veng8LookAtMccoy() {
+ // NOTE: Potential alternative is VEN8N002 (though it doesn't fit very well with this
+ // room, so perhaps the circumstances of this room changed in development)
+ showText(TX_VEN5N004);
+}
+
+void Room::veng8LookAtRedshirt() {
+ showText(TX_VEN8N000);
+}
+
+void Room::veng8LookAtTransporter() {
+ showText(TX_VEN8N010);
+}
+
+void Room::veng8LookAnywhere() {
+ showText(TX_VEN8N005);
+}
+
+void Room::veng8TalkToKirk() {
+ if (_awayMission->veng.torpedoLoaded)
+ showText(TX_SPEAKER_KIRK, TX_VEN8_002);
+ else if (_awayMission->veng.countdownStarted)
+ showText(TX_SPEAKER_KIRK, TX_VEN8_005);
+ else
+ showText(TX_SPEAKER_KIRK, TX_VEN8_006);
+}
+
+void Room::veng8TalkToSpock() {
+ if (_awayMission->veng.torpedoLoaded)
+ showText(TX_SPEAKER_SPOCK, TX_VEN8_032);
+ else if (_awayMission->veng.countdownStarted)
+ showText(TX_SPEAKER_SPOCK, TX_VEN8_029);
+ else
+ showText(TX_SPEAKER_SPOCK, TX_VEN8_028);
+}
+
+void Room::veng8TalkToMccoy() {
+ if (_awayMission->veng.torpedoLoaded) {
+ showText(TX_SPEAKER_MCCOY, TX_VEN8_020);
+ showText(TX_SPEAKER_KIRK, TX_VEN8_001);
+ } else if (_awayMission->veng.countdownStarted)
+ showText(TX_SPEAKER_MCCOY, TX_VEN8_021);
+ else
+ showText(TX_SPEAKER_MCCOY, TX_VEN8_018);
+}
+
+void Room::veng8TalkToRedshirt() {
+ if (_awayMission->veng.torpedoLoaded) {
+ showText(TX_SPEAKER_KIJE, TX_VEN8_034);
+ showText(TX_SPEAKER_MCCOY, TX_VEN8_023);
+ showText(TX_SPEAKER_KIJE, TX_VEN8_036);
+ } else if (_awayMission->veng.countdownStarted)
+ showText(TX_SPEAKER_KIJE, TX_VEN8_041);
+ else
+ showText(TX_SPEAKER_KIJE, TX_VEN8_040);
+}
+
+void Room::veng8UseKirkOnControls() {
+ showText(TX_SPEAKER_KIRK, TX_VEN8_003);
+ veng8UseSpockOnControls();
+}
+
+void Room::veng8UseSpockOnControls() {
+ _awayMission->disableInput = true;
+ walkCrewmanC(OBJECT_SPOCK, 0x37, 0xc4, &Room::veng8SpockReachedControls);
+}
+
+void Room::veng8SpockReachedControls() {
+ loadActorAnimC(OBJECT_SPOCK, "susemn", -1, -1, &Room::veng8SpockUsedControls);
+}
+
+void Room::veng8SpockUsedControls() {
+ _awayMission->disableInput = false;
+
+ if (!_awayMission->veng.powerPackPluggedIntoTransporter && !_awayMission->veng.impulseEnginesOn)
+ showText(TX_SPEAKER_SPOCK, TX_VEN8_026);
+ else if (!_awayMission->veng.powerPackPluggedIntoTransporter && _awayMission->veng.poweredSystem != 3)
+ showText(TX_SPEAKER_SPOCK, TX_VEN8_014);
+ else if (!_awayMission->veng.examinedTorpedoControl)
+ showText(TX_SPEAKER_SPOCK, TX_VEN8_030);
+ else {
+ showText(TX_SPEAKER_SPOCK, TX_VEN8_031);
+ _awayMission->veng.setTransporterCoordinates = true;
+ }
+}
+
+void Room::veng8UsePowerPackOnPowerCircuit() {
+ if (!_awayMission->veng.powerPackPluggedIntoTransporter) {
+ _awayMission->disableInput = true;
+ showText(TX_SPEAKER_KIRK, TX_VEN8_011);
+ showText(TX_SPEAKER_SPOCK, TX_VEN8_033);
+ showText(TX_SPEAKER_KIRK, TX_VEN8_009);
+ walkCrewmanC(OBJECT_SPOCK, 0xfa, 0xa4, &Room::veng8SpockReachedPowerCircuit);
+ }
+}
+
+void Room::veng8SpockReachedPowerCircuit() {
+ loadActorAnimC(OBJECT_SPOCK, "susemn", -1, -1, &Room::veng8SpockConnectedPowerPack);
+}
+
+void Room::veng8SpockConnectedPowerPack() {
+ playVoc("MTHTRNSP");
+
+ loadActorAnim(OBJECT_POWER_PACK, "s7r8pp", 0x10d, 0xa2);
+ loadActorAnim(OBJECT_CABLES, "s7r8pl", 0x101, 0x97);
+ loadActorAnimC(OBJECT_CONSOLE_LEFT, "s7r8t1", 0x3c, 0x9f, &Room::veng8TransporterPoweredUp);
+
+ walkCrewman(OBJECT_SPOCK, 0xd4, 0xb2);
+ _awayMission->veng.powerPackPluggedIntoTransporter = true;
+ loseItem(OBJECT_IFUSION);
+ _awayMission->disableInput = false;
+}
+
+void Room::veng8TransporterPoweredUp() {
+ loadActorAnim(OBJECT_CONTROLS, "s7r8q1", 0x35, 0xa0);
+ loadActorAnim(OBJECT_SLIDER, "s7r8q2", 0x44, 0xa0);
+}
+
+void Room::veng8UseKirkOnSlider() {
+ showText(TX_SPEAKER_KIRK, TX_VEN8_004);
+ veng8UseSpockOnSlider();
+}
+
+void Room::veng8UseSpockOnSlider() {
+ _awayMission->disableInput = true;
+ walkCrewmanC(OBJECT_SPOCK, 0x37, 0xc4, &Room::veng8SpockReachedSlider);
+ _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_N;
+}
+
+void Room::veng8SpockReachedSlider() {
+ _awayMission->disableInput = false;
+
+ if (!_awayMission->veng.powerPackPluggedIntoTransporter && !_awayMission->veng.impulseEnginesOn)
+ showText(TX_SPEAKER_SPOCK, TX_VEN8_027);
+ else if (!_awayMission->veng.powerPackPluggedIntoTransporter && _awayMission->veng.poweredSystem != 3)
+ showText(TX_SPEAKER_SPOCK, TX_VEN8_015);
+ else if (!_awayMission->veng.setTransporterCoordinates) {
+ walkCrewman(OBJECT_SPOCK, 0x98, 0xb6);
+ showText(TX_SPEAKER_SPOCK, TX_VEN8_013);
+ } else if (_awayMission->veng.torpedoLoaded)
+ showText(TX_SPEAKER_KIJE, TX_VEN8_042);
+ else {
+ _awayMission->disableInput = true;
+ showText(TX_SPEAKER_KIRK, TX_VEN8_010);
+ showText(TX_SPEAKER_KIJE, TX_VEN8_035);
+ walkCrewmanC(OBJECT_REDSHIRT, 0xc8, 0x7f, &Room::veng8RedshirtReachedTransporter);
+ _awayMission->crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_S;
+ }
+}
+
+void Room::veng8RedshirtReachedTransporter() {
+ showText(TX_SPEAKER_KIRK, TX_VEN8_009);
+ loadActorAnimC(OBJECT_SPOCK, "susehn", -1, -1, &Room::veng8SpockPulledSliderToBeamOut);
+ playSoundEffectIndex(SND_TRANSENE);
+}
+
+void Room::veng8SpockPulledSliderToBeamOut() {
+ loadActorAnimC(OBJECT_REDSHIRT, "rteled", -1, -1, &Room::veng8RedshirtBeamedOut);
+ playSoundEffectIndex(SND_TRANSDEM);
+ _awayMission->redshirtDead = true;
+}
+
+void Room::veng8RedshirtBeamedOut() {
+ loadActorStandAnim(OBJECT_REDSHIRT);
+ showText(TX_SPEAKER_KIJE, TX_VEN8_037);
+ showText(TX_SPEAKER_KIRK, TX_VEN8_012);
+ showText(TX_SPEAKER_KIJE, TX_VEN8_039);
+ showText(TX_SPEAKER_KIRK, TX_VEN8_008);
+ showText(TX_SPEAKER_KIJE, TX_VEN8_038);
+ showText(TX_SPEAKER_KIRK, TX_VEN8_007);
+ loadActorAnimC(OBJECT_SPOCK, "susehn", -1, -1, &Room::veng8SpockPulledSliderToBeamIn);
+ playSoundEffectIndex(SND_TRANSENE);
+}
+
+void Room::veng8SpockPulledSliderToBeamIn() {
+ _awayMission->redshirtDead = false;
+ loadActorAnimC(OBJECT_REDSHIRT, "rtele", 0xc8, 0x81, &Room::veng8RedshirtBeamedIn);
+ playSoundEffectIndex(SND_TRANSMAT);
+}
+
+void Room::veng8RedshirtBeamedIn() {
+ walkCrewman(OBJECT_REDSHIRT, 0xba, 0xb2);
+ _awayMission->disableInput = false;
+ _awayMission->veng.torpedoLoaded = true;
+}
+
+void Room::veng8UseSTricorderOnConsole() {
+ spockScan(DIR_S, TX_VEN8_025);
}
}
diff --git a/engines/startrek/text.cpp b/engines/startrek/text.cpp
index c30532e..d3f4d1c 100644
--- a/engines/startrek/text.cpp
+++ b/engines/startrek/text.cpp
@@ -3119,6 +3119,57 @@ extern const char *const g_gameStrings[] = {
"#VEN7\\VEN7N009#You pick up a length of cable.",
+ "#VEN8\\VEN8_001#Let's get back to auxiliary control and give them our... information.",
+ "#VEN8\\VEN8_002#Now, let's give the Elasi something to remember us by.",
+ "#VEN8\\VEN8_003#Spock, please check out the transporter.",
+ "#VEN8\\VEN8_004#Spock, please check out the transporter.",
+ "#VEN8\\VEN8_005#This is it. We know what we have to do.",
+ "#VEN8\\VEN8_006#This room's in pretty good condition compared to the rest of the ship.",
+ "#VEN8\\VEN8_007#Beam him back, Spock.",
+ "#VEN8\\VEN8_008#Do it, Ensign. We'll just have to gamble that the system doesn't jam again.",
+ "#VEN8\\VEN8_009#Do it, Spock.",
+ "#VEN8\\VEN8_010#Ensign Kije, I want you to beam into the torpedo bay and unjam the loading mechanism. If you don't succeed, we'll all be on permanent shoreleave in an Elasi jail.",
+ "#VEN8\\VEN8_011#Spock, would it be possible to connect the fusion power pack directly into the transporter power circuits?",
+ "#VEN8\\VEN8_012#What's causing the malfunction in the loading mechanism?",
+ "#VEN8\\VEN8_013#Captain, there are no coordinates set for the transporter.",
+ "#VEN8\\VEN8_014#Captain, there is no power allocated to the transporter.",
+ "#VEN8\\VEN8_015#Captain, there is no power allocated to the transporter.",
+ "#VEN8\\VEN8_016#Don't look at me, Jim. You know how much I hate that thing.",
+ "#VEN8\\VEN8_018#Oh, great, my favorite place in the ship. Wouldn't you know it would be in the best shape.",
+ "#VEN8\\VEN8_020#Shall we give the Elasi our transmission, Jim?",
+ "#VEN8\\VEN8_021#We don't have much time!",
+ "#VEN8\\VEN8_023#No, you did \"well\", ensign.",
+ "#VEN8\\VEN8_024#I recommend I stay behind, Captain. If there is a problem with the transporter, I am the most qualified to repair it.",
+ "#VEN8\\VEN8_025#Surprisingly, the transporter controls have escaped damage.",
+ "#VEN8\\VEN8_026#The impulse engines are not generating any power for this system.",
+ "#VEN8\\VEN8_027#The impulse engines are not generating any power for this system.",
+ "#VEN8\\VEN8_028#The transporter pads seem intact, Captain.",
+ "#VEN8\\VEN8_029#This is the only access to the torpedo bay, Captain.",
+ "#VEN8\\VEN8_030#This unit is fully functional. But I do not see the logic in using it at this time, Captain. The Enterprise is out of range for transport.",
+ "#VEN8\\VEN8_031#Transporter systems are operational, Captain. Coordinates have been set to the Photon Torpedo Loading bay.",
+ "#VEN8\\VEN8_032#A very efficient job, Captain.",
+ "#VEN8\\VEN8_033#Fascinating. It can be done. However, the transporter will only be able to transport a single person.",
+ "#VEN8\\VEN8_034#I did good, didn't I sir?",
+ "#VEN8\\VEN8_035#I'll do my best, Sir.",
+ "#VEN8\\VEN8_036#I'm a security officer, not a grammarian.",
+ "#VEN8\\VEN8_037#I've reached the torpedo loading bay, Captain. Its not too badly damaged, fortunately.",
+ "#VEN8\\VEN8_038#The door's open, Captain. I'm ready to transport back.",
+ "#VEN8\\VEN8_039#The inner loading door is stuck in the closed position. I can force it open, but when the loading cycle is begun, the room will lose pressure. We won't be able to beam back here again.",
+ "#VEN8\\VEN8_040#I have a bad feeling about this place.",
+ "#VEN8\\VEN8_041#Ready for your orders, sir.",
+ "#VEN8\\VEN8_042#There is no need to go back to the torpedo bay, Captain. I can assure you that it is unjammed.",
+ "#VEN8\\VEN8N000#Kije is eager to perform his duties.",
+ "#VEN8\\VEN8N001#Kirk is extremely worried.",
+ "#VEN8\\VEN8N003#The former transporter chief of the U.S.S. Republic.",
+ "#VEN8\\VEN8N004#The Fusion power pack is rigged into the transporter power circuits.",
+ "#VEN8\\VEN8N005#The transporter room appears to have escaped serious damage.",
+ "#VEN8\\VEN8N006#These are the power conduits for the transporter system.",
+ "#VEN8\\VEN8N007#These controls set the coordinates for the transporter.",
+ "#VEN8\\VEN8N008#These sliders activate the transporter systems.",
+ "#VEN8\\VEN8N009#This door leads back to the corridor and turbolift 2.",
+ "#VEN8\\VEN8N010#This is the transporter chamber. The pads do not seem to be damaged.",
+
+
"#VENA\\VENA_F32#The landing party has been taken captive by the Elasi, and you know Starfleet does not negotiate with terrorists. As you look forward to a long captivity you wonder who will take command of the Enterprise. Better luck next time.",
"#VENA\\VENA_F34#Captain, it would be unwise to use your phaser considering the already extensive damage sustained by the Republic.",
"#VENA\\VENA_F40#The Elasi fire photon torpedoes. The Republic has been destroyed.",
diff --git a/engines/startrek/text.h b/engines/startrek/text.h
index cf0efa0..1d19c55 100644
--- a/engines/startrek/text.h
+++ b/engines/startrek/text.h
@@ -3249,6 +3249,62 @@ enum GameStringIDs {
TX_VEN7N009,
+ TX_VEN8_001,
+ TX_VEN8_002,
+ TX_VEN8_003,
+ TX_VEN8_004,
+ TX_VEN8_005,
+ TX_VEN8_006,
+ TX_VEN8_007,
+ TX_VEN8_008,
+ TX_VEN8_009,
+ TX_VEN8_010,
+ TX_VEN8_011,
+ TX_VEN8_012,
+ TX_VEN8_013,
+ TX_VEN8_014,
+ TX_VEN8_015,
+ TX_VEN8_016, // UNUSED
+ // UNUSED
+ TX_VEN8_018,
+ // UNUSED
+ TX_VEN8_020,
+ TX_VEN8_021,
+ // UNUSED
+ TX_VEN8_023,
+ TX_VEN8_024, // UNUSED
+ TX_VEN8_025,
+ TX_VEN8_026,
+ TX_VEN8_027,
+ TX_VEN8_028,
+ TX_VEN8_029,
+ TX_VEN8_030,
+ TX_VEN8_031,
+ TX_VEN8_032,
+ TX_VEN8_033,
+ TX_VEN8_034,
+ TX_VEN8_035,
+ TX_VEN8_036,
+ TX_VEN8_037,
+ TX_VEN8_038,
+ TX_VEN8_039,
+ TX_VEN8_040,
+ TX_VEN8_041,
+ TX_VEN8_042,
+ TX_VEN8N000,
+ TX_VEN8N001,
+ // UNUSED
+ TX_VEN8N003,
+ TX_VEN8N004,
+ TX_VEN8N005,
+ TX_VEN8N006,
+ TX_VEN8N007,
+ TX_VEN8N008,
+ TX_VEN8N009,
+ TX_VEN8N010,
+ // UNUSED (N011)
+
+
TX_VENA_F32,
TX_VENA_F34,
TX_VENA_F40,
Commit: 0b75c01adfff30fb1252014fd5f3ffd60d90897a
https://github.com/scummvm/scummvm/commit/0b75c01adfff30fb1252014fd5f3ffd60d90897a
Author: Matthew Stewart (stewartmatthew6 at gmail.com)
Date: 2019-02-02T12:17:14-05:00
Commit Message:
STARTREK: VENG8 text changes
Changed paths:
engines/startrek/text.cpp
diff --git a/engines/startrek/text.cpp b/engines/startrek/text.cpp
index d3f4d1c..5ec0d31 100644
--- a/engines/startrek/text.cpp
+++ b/engines/startrek/text.cpp
@@ -3152,7 +3152,7 @@ extern const char *const g_gameStrings[] = {
"#VEN8\\VEN8_034#I did good, didn't I sir?",
"#VEN8\\VEN8_035#I'll do my best, Sir.",
"#VEN8\\VEN8_036#I'm a security officer, not a grammarian.",
- "#VEN8\\VEN8_037#I've reached the torpedo loading bay, Captain. Its not too badly damaged, fortunately.",
+ "#VEN8\\VEN8_037#I've reached the torpedo loading bay, Captain. It's not too badly damaged, fortunately.", // TYPO
"#VEN8\\VEN8_038#The door's open, Captain. I'm ready to transport back.",
"#VEN8\\VEN8_039#The inner loading door is stuck in the closed position. I can force it open, but when the loading cycle is begun, the room will lose pressure. We won't be able to beam back here again.",
"#VEN8\\VEN8_040#I have a bad feeling about this place.",
Commit: 5673a5a9b748dfd433842845f1aba1648eeccc98
https://github.com/scummvm/scummvm/commit/5673a5a9b748dfd433842845f1aba1648eeccc98
Author: Matthew Stewart (stewartmatthew6 at gmail.com)
Date: 2019-02-02T12:17:14-05:00
Commit Message:
STARTREK: Common code for VENG mission
Changed paths:
engines/startrek/awaymission.h
engines/startrek/room.h
engines/startrek/rooms/veng0.cpp
engines/startrek/rooms/veng1.cpp
engines/startrek/rooms/veng2.cpp
engines/startrek/rooms/veng3.cpp
engines/startrek/rooms/veng4.cpp
engines/startrek/rooms/veng5.cpp
engines/startrek/rooms/veng6.cpp
engines/startrek/rooms/veng7.cpp
engines/startrek/rooms/veng8.cpp
engines/startrek/rooms/venga.cpp
diff --git a/engines/startrek/awaymission.h b/engines/startrek/awaymission.h
index 1b3df61..0375827 100644
--- a/engines/startrek/awaymission.h
+++ b/engines/startrek/awaymission.h
@@ -636,7 +636,7 @@ struct AwayMission {
// 2: beam taken
byte beamState; // 0x35
- bool field36; // 0x36
+ bool enterpriseLeftForDistressCall; // 0x36
bool openedPanel; // 0x37
bool clearedPanelDebris; // 0x38
bool removedPanelDebris; // 0x39
@@ -665,10 +665,24 @@ struct AwayMission {
bool scannedMainComputer; // 0x46
bool elasiHailedRepublic; // 0x47
bool tookRecordDeckFromAuxilaryControl; // 0x48
- int16 field49; // 0x49
- int16 field4b; // 0x4b
- int16 field4d; // 0x4d
- int16 field51; // 0x51
+
+ // Counter used when shields are down and Elasi are present
+ int16 counterUntilElasiBoardWithShieldsDown; // 0x49
+
+ // Counter used after talking with Elasi and they give you time to recover the
+ // data
+ int16 counterUntilElasiAttack; // 0x4b
+
+ // Counter used after telling Elasi you'll turn off shields (initial warning)
+ int16 counterUntilElasiNagToDisableShields; // 0x4d
+
+ // Counter used after telling Elasi you'll turn off shields (they destroy the
+ // ship this time)
+ int16 counterUntilElasiDestroyShip; // 0x4f
+
+ // Counter used after telling Elasi to beam over
+ int16 counterUntilElasiBoardWithInvitation; // 0x51
+
bool putSupportBeamInSickbayHallway; // 0x53
bool clearedDebris; // 0x54
bool lookedAtTurbolift2Door; // 0x55
diff --git a/engines/startrek/room.h b/engines/startrek/room.h
index 7eaef47..6f84fab 100644
--- a/engines/startrek/room.h
+++ b/engines/startrek/room.h
@@ -2476,7 +2476,6 @@ public:
void veng0UseMccoyOnLivingCrewman();
void veng0MccoyReachedCrewman();
void veng0MccoyScannedCrewman();
- // TODO: common code
// VENG1
void veng1Tick1();
@@ -2523,7 +2522,6 @@ public:
void veng1GetDebris();
void veng1ReachedDebrisToGet();
void veng1TriedToGetDebris();
- // TODO: common code
// VENG2
void veng2Tick1();
@@ -2590,7 +2588,6 @@ public:
void veng2GetMTricorder();
void veng2ReachedMTricorderToGet();
void veng2PickedUpMTricorder();
- // TODO: common code
// VENG3
void veng3Tick1();
@@ -2636,7 +2633,6 @@ public:
void veng3GetCable();
void veng3ReachedCable();
void veng3PickedUpCable();
- // TODO: Common code
// VENG4
void veng4Tick1();
@@ -2664,7 +2660,7 @@ public:
void veng4LookAtLeftBedReadings();
void veng4LookAtBrittany();
void veng4LookAtDrill();
- void veng4LookAtHypo();
+ void veng4LookAtHypoOnTable();
void veng4LookAtDoorObject();
void veng4LookAnywhere();
void veng4GetHypo();
@@ -2675,7 +2671,6 @@ public:
void veng4PickedUpDrill();
void veng4TouchedHotspot0();
void veng4WalkToDoor();
- // TODO: common code
// VENG5
void veng5Tick1();
@@ -2712,7 +2707,6 @@ public:
void veng5GetPowerPack();
void veng5ReachedPowerPack();
void veng5PickedUpPowerPack();
- // TODO: common code
// VENG6
void veng6Tick1();
@@ -2768,7 +2762,6 @@ public:
void veng6GetEngineeringJournal();
void veng6ReachedEngineeringJournal();
void veng6TookEngineeringJournal();
- // TODO: common code
// VENG7
void veng7Tick1();
@@ -2794,7 +2787,6 @@ public:
void veng7GetCable();
void veng7ReachedCable();
void veng7PickedUpCable();
- // TODO: common code
// VENG8
void veng8Tick1();
@@ -2840,6 +2832,11 @@ public:
void veng8UseSTricorderOnConsole();
// VENGA (common code)
+ void vengaTick();
+ void vengaElasiBeamOver();
+ void vengaUsePhaserAnywhere();
+ void vengaLookAtHypo();
+ void vengaUseCommunicator();
void vengaUseMccoyOnDeadGuy();
public:
diff --git a/engines/startrek/rooms/veng0.cpp b/engines/startrek/rooms/veng0.cpp
index 0e7b544..fe5ae7f 100644
--- a/engines/startrek/rooms/veng0.cpp
+++ b/engines/startrek/rooms/veng0.cpp
@@ -97,6 +97,13 @@ extern const RoomAction veng0ActionList[] = {
{ {ACTION_USE, OBJECT_MCCOY, HOTSPOT_CREWMAN_1, 0}, &Room::veng0UseMccoyOnLivingCrewman },
{ {ACTION_DONE_WALK, 3, 0, 0}, &Room::veng0MccoyReachedCrewman },
{ {ACTION_DONE_ANIM, 1, 0, 0}, &Room::veng0MccoyScannedCrewman },
+
+ // Common code
+ { {ACTION_TICK, 0xff, 0xff, 0xff}, &Room::vengaTick },
+ { {ACTION_USE, OBJECT_IPHASERS, 0xff, 0}, &Room::vengaUsePhaserAnywhere },
+ { {ACTION_USE, OBJECT_IPHASERK, 0xff, 0}, &Room::vengaUsePhaserAnywhere },
+ { {ACTION_LOOK, OBJECT_IHYPO, 0, 0}, &Room::vengaLookAtHypo },
+ { {ACTION_USE, OBJECT_ICOMM, OBJECT_KIRK, 0}, &Room::vengaUseCommunicator },
};
extern const int veng0NumActions = ARRAYSIZE(veng0ActionList);
@@ -138,7 +145,7 @@ void Room::veng0Tick50() {
showText(TX_SPEAKER_KIRK, TX_VEN0_011);
showText(TX_SPEAKER_KIRK, TX_VEN0_010);
showText(TX_SPEAKER_MCCOY, TX_VEN0_017);
- _awayMission->veng.field36 = true;
+ _awayMission->veng.enterpriseLeftForDistressCall = true;
}
}
diff --git a/engines/startrek/rooms/veng1.cpp b/engines/startrek/rooms/veng1.cpp
index e683458..a90a396 100644
--- a/engines/startrek/rooms/veng1.cpp
+++ b/engines/startrek/rooms/veng1.cpp
@@ -117,6 +117,11 @@ extern const RoomAction veng1ActionList[] = {
{ {ACTION_DONE_ANIM, 12, 0, 0}, &Room::veng1TriedToGetDebris },
// Common code
+ { {ACTION_TICK, 0xff, 0xff, 0xff}, &Room::vengaTick },
+ { {ACTION_USE, OBJECT_IPHASERS, 0xff, 0}, &Room::vengaUsePhaserAnywhere },
+ { {ACTION_USE, OBJECT_IPHASERK, 0xff, 0}, &Room::vengaUsePhaserAnywhere },
+ { {ACTION_LOOK, OBJECT_IHYPO, 0, 0}, &Room::vengaLookAtHypo },
+ { {ACTION_USE, OBJECT_ICOMM, OBJECT_KIRK, 0}, &Room::vengaUseCommunicator },
{ {ACTION_USE, OBJECT_IMEDKIT, OBJECT_DEAD_GUY, 0}, &Room::vengaUseMccoyOnDeadGuy },
{ {ACTION_USE, OBJECT_IMTRICOR, OBJECT_DEAD_GUY, 0}, &Room::vengaUseMccoyOnDeadGuy },
{ {ACTION_USE, OBJECT_MCCOY, OBJECT_DEAD_GUY, 0}, &Room::vengaUseMccoyOnDeadGuy },
diff --git a/engines/startrek/rooms/veng2.cpp b/engines/startrek/rooms/veng2.cpp
index c00c346..139142d 100644
--- a/engines/startrek/rooms/veng2.cpp
+++ b/engines/startrek/rooms/veng2.cpp
@@ -169,6 +169,12 @@ extern const RoomAction veng2ActionList[] = {
{ {ACTION_DONE_WALK, 16, 0, 0}, &Room::veng2ReachedMTricorderToGet },
{ {ACTION_DONE_ANIM, 17, 0, 0}, &Room::veng2PickedUpMTricorder },
+ // Common code
+ { {ACTION_TICK, 0xff, 0xff, 0xff}, &Room::vengaTick },
+ { {ACTION_USE, OBJECT_IPHASERS, 0xff, 0}, &Room::vengaUsePhaserAnywhere },
+ { {ACTION_USE, OBJECT_IPHASERK, 0xff, 0}, &Room::vengaUsePhaserAnywhere },
+ { {ACTION_LOOK, OBJECT_IHYPO, 0, 0}, &Room::vengaLookAtHypo },
+
// ENHANCEMENTs
{ {ACTION_USE, OBJECT_KIRK, HOTSPOT_TORPEDO_CONTROL, 0}, &Room::veng2UseKirkOnTorpedoButton },
// TODO: uncomment
@@ -256,7 +262,7 @@ void Room::veng2ElasiShipDecloaked() {
showText(TX_SPEAKER_MCCOY, TX_VEN2_042);
if (_awayMission->veng.poweredSystem != 2) {
showText(TX_SPEAKER_SPOCK, TX_VEN2_032);
- _awayMission->veng.field49 = 1800;
+ _awayMission->veng.counterUntilElasiBoardWithShieldsDown = 1800;
} else
veng2Timer2Expired();
}
@@ -300,7 +306,7 @@ void Room::veng2Timer2Expired() { // Elasi hail the Enterprise if they haven't a
showText(TX_SPEAKER_KIRK, TX_VEN2_022);
loadActorAnim2(OBJECT_VIEWSCREEN, "s7r2u2", VIEWSCREEN_X, VIEWSCREEN_Y);
- _awayMission->veng.field4b = 27000;
+ _awayMission->veng.counterUntilElasiAttack = 27000;
_awayMission->veng.countdownStarted = true;
}
@@ -531,7 +537,7 @@ void Room::veng2UseCommunicator() {
showText(TX_SPEAKER_ELASI_CAPTAIN, TX_VEN2_114);
showText(TX_SPEAKER_KIRK, TX_VEN2_025);
loadActorAnim2(OBJECT_VIEWSCREEN, "s7r2u2", VIEWSCREEN_X, VIEWSCREEN_Y);
- _awayMission->veng.field4d = 1800;
+ _awayMission->veng.counterUntilElasiNagToDisableShields = 1800;
_awayMission->veng.toldElasiToBeamOver = true;
}
}
@@ -689,11 +695,11 @@ powerWeapons:
if (_awayMission->veng.toldElasiToBeamOver) {
showText(TX_SPEAKER_SPOCK, TX_VEN2_052);
_awayMission->veng.elasiShieldsDown = true;
- _awayMission->veng.field51 = 900;
+ _awayMission->veng.counterUntilElasiBoardWithInvitation = 900;
}
if (_awayMission->veng.elasiShipDecloaked && !_awayMission->veng.elasiHailedRepublic) {
showText(TX_SPEAKER_SPOCK, TX_VEN2_033);
- _awayMission->veng.field49 = 1800;
+ _awayMission->veng.counterUntilElasiBoardWithShieldsDown = 1800;
}
} else if (_awayMission->veng.countdownStarted)
showText(TX_SPEAKER_SPOCK, TX_VEN2_035);
@@ -731,7 +737,7 @@ powerWeapons:
showText(TX_SPEAKER_KIJE, TX_VEN2_087);
if (_awayMission->veng.elasiShipDecloaked && !_awayMission->veng.elasiHailedRepublic) {
showText(TX_SPEAKER_SPOCK, TX_VEN2_071);
- _awayMission->veng.field49 = 1800;
+ _awayMission->veng.counterUntilElasiBoardWithShieldsDown = 1800;
}
}
}
diff --git a/engines/startrek/rooms/veng3.cpp b/engines/startrek/rooms/veng3.cpp
index 969a8a1..8c71086 100644
--- a/engines/startrek/rooms/veng3.cpp
+++ b/engines/startrek/rooms/veng3.cpp
@@ -92,6 +92,11 @@ extern const RoomAction veng3ActionList[] = {
{ {ACTION_DONE_ANIM, 12, 0, 0}, &Room::veng3PickedUpCable },
// Common code
+ { {ACTION_TICK, 0xff, 0xff, 0xff}, &Room::vengaTick },
+ { {ACTION_USE, OBJECT_IPHASERS, 0xff, 0}, &Room::vengaUsePhaserAnywhere },
+ { {ACTION_USE, OBJECT_IPHASERK, 0xff, 0}, &Room::vengaUsePhaserAnywhere },
+ { {ACTION_LOOK, OBJECT_IHYPO, 0, 0}, &Room::vengaLookAtHypo },
+ { {ACTION_USE, OBJECT_ICOMM, OBJECT_KIRK, 0}, &Room::vengaUseCommunicator },
{ {ACTION_USE, OBJECT_IMEDKIT, OBJECT_DEAD_GUY, 0}, &Room::vengaUseMccoyOnDeadGuy },
{ {ACTION_USE, OBJECT_IMTRICOR, OBJECT_DEAD_GUY, 0}, &Room::vengaUseMccoyOnDeadGuy },
{ {ACTION_USE, OBJECT_MCCOY, OBJECT_DEAD_GUY, 0}, &Room::vengaUseMccoyOnDeadGuy },
diff --git a/engines/startrek/rooms/veng4.cpp b/engines/startrek/rooms/veng4.cpp
index 2c3f8f2..b98ffcb 100644
--- a/engines/startrek/rooms/veng4.cpp
+++ b/engines/startrek/rooms/veng4.cpp
@@ -70,8 +70,8 @@ extern const RoomAction veng4ActionList[] = {
{ {ACTION_USE, OBJECT_ISTRICOR, OBJECT_DRILL, 0}, &Room::veng4LookAtDrill },
{ {ACTION_LOOK, OBJECT_DRILL, 0, 0}, &Room::veng4LookAtDrill },
- { {ACTION_USE, OBJECT_ISTRICOR, OBJECT_HYPO, 0}, &Room::veng4LookAtHypo },
- { {ACTION_LOOK, OBJECT_HYPO, 0, 0}, &Room::veng4LookAtHypo },
+ { {ACTION_USE, OBJECT_ISTRICOR, OBJECT_HYPO, 0}, &Room::veng4LookAtHypoOnTable },
+ { {ACTION_LOOK, OBJECT_HYPO, 0, 0}, &Room::veng4LookAtHypoOnTable },
{ {ACTION_LOOK, OBJECT_DOOR, 0, 0}, &Room::veng4LookAtDoorObject },
{ {ACTION_LOOK, 0xff, 0, 0}, &Room::veng4LookAnywhere },
@@ -87,6 +87,13 @@ extern const RoomAction veng4ActionList[] = {
{ {ACTION_WALK, OBJECT_DOOR, 0, 0}, &Room::veng4WalkToDoor },
{ {ACTION_WALK, HOTSPOT_DOOR, 0, 0}, &Room::veng4WalkToDoor },
+ // Common code
+ { {ACTION_TICK, 0xff, 0xff, 0xff}, &Room::vengaTick },
+ { {ACTION_USE, OBJECT_IPHASERS, 0xff, 0}, &Room::vengaUsePhaserAnywhere },
+ { {ACTION_USE, OBJECT_IPHASERK, 0xff, 0}, &Room::vengaUsePhaserAnywhere },
+ { {ACTION_LOOK, OBJECT_IHYPO, 0, 0}, &Room::vengaLookAtHypo },
+ { {ACTION_USE, OBJECT_ICOMM, OBJECT_KIRK, 0}, &Room::vengaUseCommunicator },
+
// ENHANCEMENT (let object count for the "look" action, not just the hotspot)
{ {ACTION_LOOK, OBJECT_LEFT_READINGS, 0, 0}, &Room::veng4LookAtLeftBedReadings },
};
@@ -288,7 +295,7 @@ void Room::veng4LookAtDrill() {
showText(TX_VEN4N012);
}
-void Room::veng4LookAtHypo() {
+void Room::veng4LookAtHypoOnTable() {
showText(TX_VEN4N010);
}
diff --git a/engines/startrek/rooms/veng5.cpp b/engines/startrek/rooms/veng5.cpp
index 52bf7ea..23a7cd2 100644
--- a/engines/startrek/rooms/veng5.cpp
+++ b/engines/startrek/rooms/veng5.cpp
@@ -78,6 +78,11 @@ extern const RoomAction veng5ActionList[] = {
{ {ACTION_DONE_ANIM, 7, 0, 0}, &Room::veng5PickedUpPowerPack },
// Common code
+ { {ACTION_TICK, 0xff, 0xff, 0xff}, &Room::vengaTick },
+ { {ACTION_USE, OBJECT_IPHASERS, 0xff, 0}, &Room::vengaUsePhaserAnywhere },
+ { {ACTION_USE, OBJECT_IPHASERK, 0xff, 0}, &Room::vengaUsePhaserAnywhere },
+ { {ACTION_LOOK, OBJECT_IHYPO, 0, 0}, &Room::vengaLookAtHypo },
+ { {ACTION_USE, OBJECT_ICOMM, OBJECT_KIRK, 0}, &Room::vengaUseCommunicator },
{ {ACTION_USE, OBJECT_IMEDKIT, OBJECT_DEAD_GUY, 0}, &Room::vengaUseMccoyOnDeadGuy },
{ {ACTION_USE, OBJECT_IMTRICOR, OBJECT_DEAD_GUY, 0}, &Room::vengaUseMccoyOnDeadGuy },
{ {ACTION_USE, OBJECT_MCCOY, OBJECT_DEAD_GUY, 0}, &Room::vengaUseMccoyOnDeadGuy },
diff --git a/engines/startrek/rooms/veng6.cpp b/engines/startrek/rooms/veng6.cpp
index e822742..b7bb549 100644
--- a/engines/startrek/rooms/veng6.cpp
+++ b/engines/startrek/rooms/veng6.cpp
@@ -118,6 +118,11 @@ extern const RoomAction veng6ActionList[] = {
{ {ACTION_DONE_ANIM, 12, 0, 0}, &Room::veng6TookEngineeringJournal },
// Common code
+ { {ACTION_TICK, 0xff, 0xff, 0xff}, &Room::vengaTick },
+ { {ACTION_USE, OBJECT_IPHASERS, 0xff, 0}, &Room::vengaUsePhaserAnywhere },
+ { {ACTION_USE, OBJECT_IPHASERK, 0xff, 0}, &Room::vengaUsePhaserAnywhere },
+ { {ACTION_LOOK, OBJECT_IHYPO, 0, 0}, &Room::vengaLookAtHypo },
+ { {ACTION_USE, OBJECT_ICOMM, OBJECT_KIRK, 0}, &Room::vengaUseCommunicator },
{ {ACTION_USE, OBJECT_IMEDKIT, OBJECT_DEAD_GUY, 0}, &Room::vengaUseMccoyOnDeadGuy },
{ {ACTION_USE, OBJECT_IMTRICOR, OBJECT_DEAD_GUY, 0}, &Room::vengaUseMccoyOnDeadGuy },
{ {ACTION_USE, OBJECT_MCCOY, OBJECT_DEAD_GUY, 0}, &Room::vengaUseMccoyOnDeadGuy },
diff --git a/engines/startrek/rooms/veng7.cpp b/engines/startrek/rooms/veng7.cpp
index 3ba673e..3dafb08 100644
--- a/engines/startrek/rooms/veng7.cpp
+++ b/engines/startrek/rooms/veng7.cpp
@@ -63,6 +63,11 @@ extern const RoomAction veng7ActionList[] = {
{ {ACTION_DONE_ANIM, 4, 0, 0}, &Room::veng7PickedUpCable },
// Common code
+ { {ACTION_TICK, 0xff, 0xff, 0xff}, &Room::vengaTick },
+ { {ACTION_USE, OBJECT_IPHASERS, 0xff, 0}, &Room::vengaUsePhaserAnywhere },
+ { {ACTION_USE, OBJECT_IPHASERK, 0xff, 0}, &Room::vengaUsePhaserAnywhere },
+ { {ACTION_LOOK, OBJECT_IHYPO, 0, 0}, &Room::vengaLookAtHypo },
+ { {ACTION_USE, OBJECT_ICOMM, OBJECT_KIRK, 0}, &Room::vengaUseCommunicator },
{ {ACTION_USE, OBJECT_IMEDKIT, OBJECT_DEAD_GUY, 0}, &Room::vengaUseMccoyOnDeadGuy },
{ {ACTION_USE, OBJECT_IMTRICOR, OBJECT_DEAD_GUY, 0}, &Room::vengaUseMccoyOnDeadGuy },
{ {ACTION_USE, OBJECT_MCCOY, OBJECT_DEAD_GUY, 0}, &Room::vengaUseMccoyOnDeadGuy },
diff --git a/engines/startrek/rooms/veng8.cpp b/engines/startrek/rooms/veng8.cpp
index ac002c0..0712bdf 100644
--- a/engines/startrek/rooms/veng8.cpp
+++ b/engines/startrek/rooms/veng8.cpp
@@ -100,6 +100,13 @@ extern const RoomAction veng8ActionList[] = {
{ {ACTION_USE, OBJECT_ISTRICOR, OBJECT_SLIDER, 0}, &Room::veng8UseSTricorderOnConsole },
{ {ACTION_USE, OBJECT_ISTRICOR, HOTSPOT_CONTROLS, 0}, &Room::veng8UseSTricorderOnConsole },
{ {ACTION_USE, OBJECT_ISTRICOR, HOTSPOT_SLIDER, 0}, &Room::veng8UseSTricorderOnConsole },
+
+ // Common code
+ { {ACTION_TICK, 0xff, 0xff, 0xff}, &Room::vengaTick },
+ { {ACTION_USE, OBJECT_IPHASERS, 0xff, 0}, &Room::vengaUsePhaserAnywhere },
+ { {ACTION_USE, OBJECT_IPHASERK, 0xff, 0}, &Room::vengaUsePhaserAnywhere },
+ { {ACTION_LOOK, OBJECT_IHYPO, 0, 0}, &Room::vengaLookAtHypo },
+ { {ACTION_USE, OBJECT_ICOMM, OBJECT_KIRK, 0}, &Room::vengaUseCommunicator },
};
extern const int veng8NumActions = ARRAYSIZE(veng8ActionList);
diff --git a/engines/startrek/rooms/venga.cpp b/engines/startrek/rooms/venga.cpp
index 0110331..5922d52 100644
--- a/engines/startrek/rooms/venga.cpp
+++ b/engines/startrek/rooms/venga.cpp
@@ -24,6 +24,84 @@
namespace StarTrek {
+void Room::vengaTick() {
+ if (_awayMission->veng.counterUntilElasiBoardWithShieldsDown != 0) {
+ _awayMission->veng.counterUntilElasiBoardWithShieldsDown--;
+ if (_awayMission->veng.counterUntilElasiBoardWithShieldsDown == 0 && _awayMission->veng.poweredSystem != 2) {
+ vengaElasiBeamOver();
+ return;
+ }
+ }
+
+ if (_awayMission->veng.counterUntilElasiAttack != 0) {
+ _awayMission->veng.counterUntilElasiAttack--;
+ if (_awayMission->veng.counterUntilElasiAttack == 0 && !_awayMission->veng.toldElasiToBeamOver) {
+ // BUG: Message should say that they destroyed the ship, since shields are
+ // probably up right now...
+ vengaElasiBeamOver();
+ return;
+ }
+ }
+
+ if (_awayMission->veng.counterUntilElasiNagToDisableShields != 0) {
+ _awayMission->veng.counterUntilElasiNagToDisableShields--;
+ if (_awayMission->veng.counterUntilElasiNagToDisableShields == 0 && !_awayMission->veng.firedTorpedo) {
+ // Elasi tells you to lower your shields already.
+ // BUG: Should add a check to above condition that shields aren't down
+ // already?
+ showText(TX_SPEAKER_ELASI_CAPTAIN, TX_VEN2_098);
+ _awayMission->veng.counterUntilElasiDestroyShip = 2700;
+ }
+ }
+
+ if (_awayMission->veng.counterUntilElasiDestroyShip != 0) {
+ _awayMission->veng.counterUntilElasiDestroyShip--;
+ if (_awayMission->veng.counterUntilElasiDestroyShip == 0 && !_awayMission->veng.firedTorpedo) {
+ // Elasi fire torpedoes at you since you wouldn't lower your shields.
+ showText(TX_VENA_F40);
+ showGameOverMenu();
+ return;
+ }
+ }
+
+ if (_awayMission->veng.counterUntilElasiBoardWithInvitation != 0) {
+ _awayMission->veng.counterUntilElasiBoardWithInvitation--;
+ if (_awayMission->veng.counterUntilElasiBoardWithInvitation == 0 && !_awayMission->veng.firedTorpedo) {
+ vengaElasiBeamOver();
+ return;
+ }
+ }
+}
+
+void Room::vengaElasiBeamOver() {
+ showText(TX_VENA_F32);
+ showGameOverMenu();
+}
+
+void Room::vengaUsePhaserAnywhere() {
+ showText(TX_SPEAKER_SPOCK, TX_VENA_F34);
+}
+
+void Room::vengaLookAtHypo() {
+ if (_awayMission->veng.oilInHypo)
+ showText(TX_VEN4N007);
+ else
+ showText(TX_VEN4N010);
+}
+
+void Room::vengaUseCommunicator() {
+ // Use communicator in any room except VENG2
+ if (!_awayMission->veng.enterpriseLeftForDistressCall) {
+ showText(TX_SPEAKER_KIRK, TX_MUD4_018);
+ showText(TX_SPEAKER_UHURA, TX_BRIDU146);
+ } else if (!_awayMission->veng.elasiShipDecloaked) {
+ showText(TX_SPEAKER_KIRK, TX_MUD4_018);
+ showText(TX_SPEAKER_UHURA, TX_VEN2U093);
+ showText(TX_SPEAKER_KIRK, TX_VEN2_028);
+ } else
+ showText(TX_SPEAKER_SPOCK, TX_VEN2_066);
+}
+
void Room::vengaUseMccoyOnDeadGuy() {
int val = getRandomWordInRange(0, 5);
Commit: b9ca6d2cb6a668c8ee54c9ea4632231efa66511b
https://github.com/scummvm/scummvm/commit/b9ca6d2cb6a668c8ee54c9ea4632231efa66511b
Author: Matthew Stewart (stewartmatthew6 at gmail.com)
Date: 2019-02-02T12:17:14-05:00
Commit Message:
STARTREK: Saving for VENG mission
Changed paths:
engines/startrek/awaymission.h
engines/startrek/room.h
engines/startrek/rooms/venga.cpp
engines/startrek/saveload.cpp
diff --git a/engines/startrek/awaymission.h b/engines/startrek/awaymission.h
index 0375827..7db9ef8 100644
--- a/engines/startrek/awaymission.h
+++ b/engines/startrek/awaymission.h
@@ -712,6 +712,67 @@ struct AwayMission {
bool readAllLogs; // 0x6a
bool field6b; // 0x6b
bool field6c; // 0x6c
+
+ void saveLoadWithSerializer(Common::Serializer &ser) {
+ ser.syncAsByte(usedMedkitOnBrittany);
+ ser.syncAsByte(talkedToBrittany);
+ ser.syncAsByte(brittanyDead);
+ ser.syncAsByte(lookedAtBrittany);
+ ser.syncAsByte(enteredRoom0FirstTime);
+ ser.syncAsSint16LE(missionScore);
+ ser.syncAsByte(bridgeCrewmanDead);
+ ser.syncAsByte(scannedCaptainsChair);
+ ser.syncAsByte(scannedComputerBank);
+ ser.syncAsByte(impulseEnginesOn);
+ ser.syncAsByte(beamState);
+ ser.syncAsByte(enterpriseLeftForDistressCall);
+ ser.syncAsByte(openedPanel);
+ ser.syncAsByte(clearedPanelDebris);
+ ser.syncAsByte(removedPanelDebris);
+ ser.syncAsByte(oilInHypo);
+ ser.syncAsByte(loosenedDebrisWithOil);
+ ser.syncAsByte(poweredSystem);
+ ser.syncAsByte(tricordersPluggedIntoComputer);
+ ser.syncAsByte(captainsLogIndex);
+ ser.syncAsByte(elasiShieldsDown);
+ ser.syncAsByte(torpedoLoaded);
+ ser.syncAsByte(firedTorpedo);
+ ser.syncAsByte(elasiShipDecloaked);
+ ser.syncAsByte(countdownStarted);
+ ser.syncAsByte(toldElasiToBeamOver);
+ ser.syncAsByte(scannedMainComputer);
+ ser.syncAsByte(elasiHailedRepublic);
+ ser.syncAsByte(tookRecordDeckFromAuxilaryControl);
+ ser.syncAsSint16LE(counterUntilElasiBoardWithShieldsDown);
+ ser.syncAsSint16LE(counterUntilElasiAttack);
+ ser.syncAsSint16LE(counterUntilElasiNagToDisableShields);
+ ser.syncAsSint16LE(counterUntilElasiDestroyShip);
+ ser.syncAsSint16LE(counterUntilElasiBoardWithInvitation);
+ ser.syncAsByte(clearedDebris);
+ ser.syncAsByte(lookedAtTurbolift2Door);
+ ser.syncAsByte(kirkShouldSuggestReestablishingPower);
+ ser.syncAsByte(tookHypoFromSickbay);
+ ser.syncAsByte(tookDrillFromSickbay);
+ ser.syncAsByte(clearedDebrisInRoom5);
+ ser.syncAsByte(havePowerPack);
+ ser.syncAsByte(enteredRoom5FirstTime);
+ ser.syncAsByte(askedSpockAboutFire);
+ ser.syncAsByte(junctionCablesConnected);
+ ser.syncAsByte(tookCableFromTransporterRoomHallway);
+ ser.syncAsByte(tookCableFromSickbayHallway);
+ ser.syncAsByte(tookMolecularSaw);
+ ser.syncAsByte(readEngineeringJournal);
+ ser.syncAsByte(tookEngineeringJournal);
+ ser.syncAsByte(engineeringCabinetOpen);
+ ser.syncAsByte(setTransporterCoordinates);
+ ser.syncAsByte(examinedTorpedoControl);
+ ser.syncAsByte(powerPackPluggedIntoTransporter);
+ ser.syncAsByte(field68);
+ ser.syncAsByte(getPointsForHealingBrittany);
+ ser.syncAsByte(readAllLogs);
+ ser.syncAsByte(field6b);
+ ser.syncAsByte(field6c);
+ }
} veng;
};
};
diff --git a/engines/startrek/room.h b/engines/startrek/room.h
index 6f84fab..a6b6c3e 100644
--- a/engines/startrek/room.h
+++ b/engines/startrek/room.h
@@ -3169,6 +3169,25 @@ public:
// 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;
diff --git a/engines/startrek/rooms/venga.cpp b/engines/startrek/rooms/venga.cpp
index 5922d52..99be145 100644
--- a/engines/startrek/rooms/venga.cpp
+++ b/engines/startrek/rooms/venga.cpp
@@ -28,6 +28,8 @@ void Room::vengaTick() {
if (_awayMission->veng.counterUntilElasiBoardWithShieldsDown != 0) {
_awayMission->veng.counterUntilElasiBoardWithShieldsDown--;
if (_awayMission->veng.counterUntilElasiBoardWithShieldsDown == 0 && _awayMission->veng.poweredSystem != 2) {
+ // BUG: Should check you're now lowering the shields in the next phase (this
+ // is only meant for when they initially appear with your shields down)
vengaElasiBeamOver();
return;
}
diff --git a/engines/startrek/saveload.cpp b/engines/startrek/saveload.cpp
index 52bb7cb..f17d2f2 100644
--- a/engines/startrek/saveload.cpp
+++ b/engines/startrek/saveload.cpp
@@ -323,6 +323,9 @@ bool StarTrekEngine::saveOrLoadGameData(Common::SeekableReadStream *in, Common::
} else if (_missionName == "SINS") {
_awayMission.sins.saveLoadWithSerializer(ser);
_room->_roomVar.sins.saveLoadWithSerializer(ser);
+ } else if (_missionName == "VENG") {
+ _awayMission.veng.saveLoadWithSerializer(ser);
+ _room->_roomVar.veng.saveLoadWithSerializer(ser);
}
// The action queue
Commit: 2a6ee10182c6ff458ed56b7d01406f244c5b588a
https://github.com/scummvm/scummvm/commit/2a6ee10182c6ff458ed56b7d01406f244c5b588a
Author: Matthew Stewart (stewartmatthew6 at gmail.com)
Date: 2019-02-02T12:17:14-05:00
Commit Message:
STARTREK: Bugfix to map preview of republic
Changed paths:
engines/startrek/awaymission.h
engines/startrek/menu.cpp
diff --git a/engines/startrek/awaymission.h b/engines/startrek/awaymission.h
index 7db9ef8..9c4d591 100644
--- a/engines/startrek/awaymission.h
+++ b/engines/startrek/awaymission.h
@@ -629,6 +629,7 @@ struct AwayMission {
bool bridgeCrewmanDead; // 0x30
bool scannedCaptainsChair; // 0x31
bool scannedComputerBank; // 0x32
+ bool showedRepublicMapFirstTime; // 0x33
bool impulseEnginesOn; // 0x34
// 0: beam still in place
diff --git a/engines/startrek/menu.cpp b/engines/startrek/menu.cpp
index 0ef1659..7142ebe 100644
--- a/engines/startrek/menu.cpp
+++ b/engines/startrek/menu.cpp
@@ -1020,7 +1020,7 @@ void StarTrekEngine::showRepublicMap(int16 arg0, int16 turbolift) {
actorFunc1();
_gfx->pushSprites();
- if (!_awayMission.veng.scannedComputerBank) {
+ if (!_awayMission.veng.showedRepublicMapFirstTime) {
_gfx->setBackgroundImage(_gfx->loadBitmap("veng9b"));
_gfx->copyBackgroundScreen();
_system->updateScreen();
@@ -1067,7 +1067,13 @@ void StarTrekEngine::showRepublicMap(int16 arg0, int16 turbolift) {
}
}
- _awayMission.veng.scannedComputerBank = true; // FIXME?
+ // BUGFIX: Original game used variable "scannedComputerBank" (0x32) instead of
+ // "showedRepublicMapFirstTime" (0x33), which is used elsewhere. Byte 0x33 is
+ // otherwise unused, so maybe this is a weird off-by-1 error.
+ // The effective result is that scanning the computer bank would cause the preview
+ // of the map screen to not appear.
+ _awayMission.veng.showedRepublicMapFirstTime = true;
+
_gfx->fadeoutScreen();
}
Commit: 2c2a8391ee46afe4d1a4f1be13d7a6988d3945d9
https://github.com/scummvm/scummvm/commit/2c2a8391ee46afe4d1a4f1be13d7a6988d3945d9
Author: Matthew Stewart (stewartmatthew6 at gmail.com)
Date: 2019-02-23T20:41:14-05:00
Commit Message:
STARTREK: Fixes to drawR3Shape; red planet renders
Changed paths:
engines/startrek/space.cpp
engines/startrek/space.h
engines/startrek/startrek.cpp
diff --git a/engines/startrek/space.cpp b/engines/startrek/space.cpp
index ec1c89d..781993f 100644
--- a/engines/startrek/space.cpp
+++ b/engines/startrek/space.cpp
@@ -325,13 +325,13 @@ void StarTrekEngine::drawR3Shape(R3 *r3) {
int16 index1 = i;
int16 index2 = (i + 1) & 3;
- if (thing[index1 + 1] > thing[index2 + 1]) {
+ if (thing[index1 * 2 + 1] > thing[index2 * 2 + 1]) {
index1 = index2;
index2 = i;
}
- int16 top = ceil(thing[index1 + 1]);
- int16 bottom = floor(thing[index2 + 1]);
+ int16 top = ceil(thing[index1 * 2 + 1]);
+ int16 bottom = floor(thing[index2 * 2 + 1]);
if (top > bottom)
continue;
@@ -350,29 +350,29 @@ void StarTrekEngine::drawR3Shape(R3 *r3) {
shpImageBottom = bottom;
double dbl3f4;
- if (thing[index2 + 1] == thing[index1 + 1])
+ if (thing[index2 * 2 + 1] == thing[index1 * 2 + 1])
dbl3f4 = 0.0;
else
- dbl3f4 = (thing[index2] - thing[index1]) / (thing[index2 + 1] - thing[index1 + 1]);
+ dbl3f4 = (thing[index2 * 2] - thing[index1 * 2]) / (thing[index2 * 2 + 1] - thing[index1 * 2 + 1]);
- int32 var3ec = (int32)(0x10000 * dbl3f4);
- int32 var3e8 = (int32)(((top - thing[index1 + 1]) * dbl3f4 + thing[index1]) * 0x10000);
+ int32 boundDiff = (int32)(0x10000 * dbl3f4); // var3ec
+ int32 boundBase = (int32)(((top - thing[index1 * 2 + 1]) * dbl3f4 + thing[index1 * 2]) * 0x10000); // var3e8
for (int y = top; y <= bottom; y++) {
- int16 var3f6 = var3e8 >> 16;
- int16 var3f8 = (var3e8 + 0xffff) >> 16;
+ int16 rightBound = boundBase >> 16; // var3f6
+ int16 leftBound = (boundBase + 0xffff) >> 16; // var3f8
- if (var3f8 < _starfieldRect.left)
- var3f8 = _starfieldRect.left;
- if (var3f8 < leftBounds[y])
- leftBounds[y] = var3f8;
+ if (leftBound < _starfieldRect.left)
+ leftBound = _starfieldRect.left;
+ if (leftBound < leftBounds[y])
+ leftBounds[y] = leftBound;
- if (var3f6 > _starfieldRect.right - 1)
- var3f6 = _starfieldRect.right - 1;
- if (var3f6 > rightBounds[y])
- rightBounds[y] = var3f6;
+ if (rightBound > _starfieldRect.right - 1)
+ rightBound = _starfieldRect.right - 1;
+ if (rightBound > rightBounds[y])
+ rightBounds[y] = rightBound;
- var3e8 += var3ec;
+ boundBase += boundDiff;
}
}
@@ -389,7 +389,6 @@ void StarTrekEngine::drawR3Shape(R3 *r3) {
break;
}
- debug("Top: %d, Bot: %d", shpImageTop, shpImageBottom);
if (shpImageTop <= shpImageBottom) {
bool var3fa = false;
if (r3->field1e == 2) {
@@ -406,8 +405,10 @@ void StarTrekEngine::drawR3Shape(R3 *r3) {
}
}
+ // Amount added to X/Y positions after each pixel is drawn
int16 xDiff = (int16)(dbl60 * 256);
int16 yDiff = (int16)(dbl58 * 256);
+
int16 var3f2 = (int16)(dbl50 * 256);
int16 var3f4 = (int16)(dbl48 * 256);
@@ -447,6 +448,7 @@ void StarTrekEngine::drawR3Shape(R3 *r3) {
for (int y = shpImageTop; y <= shpImageBottom; y++) {
int16 leftBound = leftBounds[y];
int16 rowWidth = rightBounds[y] - leftBound;
+
int16 srcX = leftBound * xDiff + var3f6;
int16 srcY = leftBound * yDiff + var3f8;
var3f6 += var3f2;
@@ -458,8 +460,6 @@ void StarTrekEngine::drawR3Shape(R3 *r3) {
if (rowWidth == 0)
continue;
- debug("Width: %d", rowWidth);
-
if (var3fa) {
srcX += 0x80;
srcY += 0x80;
@@ -473,7 +473,7 @@ void StarTrekEngine::drawR3Shape(R3 *r3) {
cx += xDiff;
bx += yDiff;
if (b == 0)
- *(di++) = 8; // FIXME: shouldn't assign anything, fix after done testing
+ di++;
else
*(di++) = b;
}
diff --git a/engines/startrek/space.h b/engines/startrek/space.h
index d5a05d4..075ea09 100644
--- a/engines/startrek/space.h
+++ b/engines/startrek/space.h
@@ -136,7 +136,7 @@ public:
*this = *this * m2;
}
- TMatrix<T> invert() {
+ TMatrix<T> invert() const {
TMatrix<T> ret;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
diff --git a/engines/startrek/startrek.cpp b/engines/startrek/startrek.cpp
index 0a3a89a..5d46dd9 100644
--- a/engines/startrek/startrek.cpp
+++ b/engines/startrek/startrek.cpp
@@ -124,7 +124,7 @@ Common::Error StarTrekEngine::run() {
initGraphics(SCREEN_WIDTH, SCREEN_HEIGHT, &format);
initializeEventsAndMouse();
- bool shouldPlayIntro = false;
+ bool shouldPlayIntro = true;
bool loadedSave = false;
if (ConfMan.hasKey("save_slot")) {
More information about the Scummvm-git-logs
mailing list