[Scummvm-git-logs] scummvm master -> f654d9ea4a04e26dab35361436b0336726ca8ade
bluegr
bluegr at gmail.com
Tue Dec 8 22:14:02 UTC 2020
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
f654d9ea4a STARTREK: More bridge related functionality
Commit: f654d9ea4a04e26dab35361436b0336726ca8ade
https://github.com/scummvm/scummvm/commit/f654d9ea4a04e26dab35361436b0336726ca8ade
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2020-12-09T00:13:23+02:00
Commit Message:
STARTREK: More bridge related functionality
Changed paths:
engines/startrek/bridge.cpp
engines/startrek/startrek.h
diff --git a/engines/startrek/bridge.cpp b/engines/startrek/bridge.cpp
index b23647b156..4950440d37 100644
--- a/engines/startrek/bridge.cpp
+++ b/engines/startrek/bridge.cpp
@@ -45,10 +45,10 @@ BridgeActorAndMenu bridgeActorsAndMenus[] = {
};
enum BridgeMenuEvent {
- kBridgeSpockTalk = 0,
+ kBridgeKirkCommand = 0,
kBridgeUnk1 = 1,
kBridgeUnk2 = 2,
- kBridgeUnk3 = 3,
+ kBridgeStarfieldFullScreen = 3,
kBridgeKirkCaptainsLog = 16,
kBridgeKirkTransporter = 17,
kBridgeKirkOptions = 18,
@@ -235,7 +235,7 @@ void StarTrekEngine::handleBridgeEvents() {
// TODO
break;
case Common::KEYCODE_n: // Main star navigational map
- // TODO
+ handleBridgeMenu(kBridgeChekovNavigation);
break;
case Common::KEYCODE_k: // Kirk's options
handleBridgeMenu(kBridgeKirkOptions);
@@ -298,15 +298,17 @@ void StarTrekEngine::handleBridgeEvents() {
void StarTrekEngine::handleBridgeMenu(int menuEvent) {
// TODO: Move these
- const char *kirkHeader = "KIRK";
- const char *spockHeader = "MR. SPOCK";
- const char *scottyHeader = "MR. SCOTT";
- const char *uhuraHeader = "LIEUTENANT UHURA";
- const char *suluHeader = "MR. SULU";
- const char *chekovHeader = "MR. CHEKOV";
+ const char *kirkHeader = "Captain Kirk";
+ const char *spockHeader = "Mr. Spock";
+ const char *scottyHeader = "Mr. Scott";
+ const char *uhuraHeader = "Lieutenant Uhura";
+ const char *suluHeader = "Mr. Sulu";
+ const char *chekovHeader = "Mr. Chekov";
const char *shieldsUpText = "#BRID\\B_332#Captain, the shields are up.";
const char *notInOrbitText = "#BRID\\B_350#We're not in orbit, Captain.";
+ const char *wrongDestinationText = "#BRID\\B_346#This isn't our destination.";
const char *transporterText = "#BRID\\C_060#Spock, come with me. Mr Scott, you have the conn.";
+ const char *transporterTextFeather = "#BRID\\C_006#Assemble a landing party. Unless we find this so-called criminal, we're going to war.";
const char *nothingToReportText = "#BRID\\B_155#Nothing to report, Captain.";
const char *raiseShieldsText = "#BRID\\B_340#Raising shields.";
const char *lowerShieldsText = "#BRID\\B_337#Lowering shields, Captain.";
@@ -322,8 +324,8 @@ void StarTrekEngine::handleBridgeMenu(int menuEvent) {
const char *ayeSirText = "#BRID\\BRID_S22#Aye Sir.";
switch (menuEvent) {
- case kBridgeSpockTalk:
- // TODO
+ case kBridgeKirkCommand:
+ showBridgeMenu("command", 60, 100);
break;
case kBridgeUnk1:
// TODO
@@ -331,7 +333,7 @@ void StarTrekEngine::handleBridgeMenu(int menuEvent) {
case kBridgeUnk2:
// TODO
break;
- case kBridgeUnk3:
+ case kBridgeStarfieldFullScreen:
// TODO
break;
case kBridgeKirkCaptainsLog: // Kirk, captain's log
@@ -340,15 +342,17 @@ void StarTrekEngine::handleBridgeMenu(int menuEvent) {
case kBridgeKirkTransporter: // Kirk, transporter
if (_enterpriseState.shields) {
showTextbox(suluHeader, shieldsUpText, 122, 116, 161, 0);
+ } else if (!_enterpriseState.inOrbit) {
+ showTextbox(suluHeader, notInOrbitText, 122, 116, 161, 0);
+ //} else if (false) {
+ // // TODO: Check if the destination is correct
+ // showTextbox(suluHeader, wrongDestinationText, 122, 116, 176, 0);
} else {
- if (!_enterpriseState.inOrbit) {
- showTextbox(suluHeader, notInOrbitText, 122, 116, 161, 0);
- } else {
- // TODO: Check if the destination is correct
- // TODO: Check for veng or feather missions and show extra text
+ if (_missionToLoad != "FEATHER")
showTextbox(kirkHeader, transporterText, 160, 130, 176, 0);
- runGameMode(GAMEMODE_BEAMDOWN, false);
- }
+ else
+ showTextbox(kirkHeader, transporterTextFeather, 160, 130, 176, 0);
+ runGameMode(GAMEMODE_BEAMDOWN, false);
}
break;
case kBridgeKirkOptions: // Kirk, options
@@ -374,16 +378,11 @@ void StarTrekEngine::handleBridgeMenu(int menuEvent) {
case kBridgeSuluOrbit: // Sulu, orbit
if (_enterpriseState.underAttack) {
showTextbox(suluHeader, underAttackText, 122, 116, 176, 0);
+ //} else if (false) {
+ // // TODO: Check if mission is over
+ // showTextbox(suluHeader, missionNotOverText, 122, 116, 44, 0);
} else {
- // TODO: Check if mission is over
- //showTextbox(suluHeader, missionNotOverText, 122, 116, 44, 0);
-
- if (_enterpriseState.inOrbit) {
- showTextbox(suluHeader, leaveOrbitText, 122, 116, 176, 0);
- } else {
- // TODO: Finish this
- _enterpriseState.inOrbit = true;
- }
+ orbitPlanet();
}
break;
case kBridgeSuluShields: // Sulu, shields
@@ -391,7 +390,18 @@ void StarTrekEngine::handleBridgeMenu(int menuEvent) {
showTextbox(suluHeader, _enterpriseState.shields ? raiseShieldsText : lowerShieldsText, 122, 116, 176, 0);
break;
case kBridgeChekovNavigation: // Chekov, navigation
- // TODO
+ if (_enterpriseState.underAttack) {
+ showTextbox(suluHeader, underAttackText, 122, 116, 176, 0);
+ //} else if (false) {
+ // // TODO: Check if mission is over
+ // showTextbox(suluHeader, missionNotOverText, 122, 116, 44, 0);
+ } else if (_enterpriseState.inOrbit) {
+ showTextbox(suluHeader, leaveOrbitText, 122, 116, 176, 0);
+ } else {
+ showStarMap();
+ // TODO: Check if destination is correct, and start a random encounter if it isn't
+ // TODO: Redraw sprites
+ }
break;
case kBridgeChekovWeapons: // Chekov, weapons
_enterpriseState.weapons = !_enterpriseState.weapons;
@@ -418,6 +428,23 @@ void StarTrekEngine::handleBridgeMenu(int menuEvent) {
}
}
+void StarTrekEngine::showStarMap() {
+ // TODO
+}
+
+void StarTrekEngine::orbitPlanet() {
+ const char *suluHeader = "Mr. Sulu";
+ const char *enteringOrbitText = "#BRID\\B_333#Entering standard orbit.";
+ const char *leavingOrbitText = "#BRID\\B_335#Leaving orbit.";
+
+ // TODO: Show starfield
+ // TODO: Warp to planet, if needed
+ // TODO: Update sprites
+
+ _enterpriseState.inOrbit = !_enterpriseState.inOrbit;
+ showTextbox(suluHeader, _enterpriseState.inOrbit ? enteringOrbitText : leavingOrbitText, 122, 116, 176, 0);
+}
+
void StarTrekEngine::captainsLog() {
// TODO: Show points for recently completed missions
const char *captainsLogHeader = "Captain's Log";
diff --git a/engines/startrek/startrek.h b/engines/startrek/startrek.h
index e70ff64190..5d84a926b9 100644
--- a/engines/startrek/startrek.h
+++ b/engines/startrek/startrek.h
@@ -565,6 +565,8 @@ public:
void showOptionsMenu(int x, int y);
void showBridgeMenu(Common::String menu, int x, int y);
void handleBridgeMenu(int menuEvent);
+ void showStarMap();
+ void orbitPlanet();
void captainsLog();
/**
More information about the Scummvm-git-logs
mailing list