[Scummvm-git-logs] scummvm master -> a0a46b7c1073597aefbfeeebb62cf2e9d97ce689
dreammaster
paulfgilbert at gmail.com
Sat Nov 7 18:32:15 UTC 2020
This automated email contains information about 4 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
ec6fb9353a GLK: COMPREHEND: Fix drawing too bright rooms
b1b907b96b GLK: COMPREHEND: Renaming of computer printing method
ce1bdb3251 GLK: COMPREHEND: Remaining handleSpecialOpcode cases
a0a46b7c10 GLK: COMPREHEND: Added computerConsole method
Commit: ec6fb9353a1c24ebb0cc49980333059ab5e1c376
https://github.com/scummvm/scummvm/commit/ec6fb9353a1c24ebb0cc49980333059ab5e1c376
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-11-07T10:32:00-08:00
Commit Message:
GLK: COMPREHEND: Fix drawing too bright rooms
Changed paths:
engines/glk/comprehend/game.cpp
diff --git a/engines/glk/comprehend/game.cpp b/engines/glk/comprehend/game.cpp
index b851eb9fc7..0252a4daf8 100644
--- a/engines/glk/comprehend/game.cpp
+++ b/engines/glk/comprehend/game.cpp
@@ -399,7 +399,7 @@ void ComprehendGame::update_graphics() {
case ROOM_IS_TOO_BRIGHT:
if (_updateFlags & UPDATE_GRAPHICS)
- g_comprehend->clearScreen(false);
+ g_comprehend->clearScreen(true);
break;
default:
Commit: b1b907b96b4a2fca1a8294c3652d0aa808d09155
https://github.com/scummvm/scummvm/commit/b1b907b96b4a2fca1a8294c3652d0aa808d09155
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-11-07T10:32:00-08:00
Commit Message:
GLK: COMPREHEND: Renaming of computer printing method
Changed paths:
engines/glk/comprehend/game_oo.cpp
engines/glk/comprehend/game_oo.h
diff --git a/engines/glk/comprehend/game_oo.cpp b/engines/glk/comprehend/game_oo.cpp
index d8aacc8168..6a29688742 100644
--- a/engines/glk/comprehend/game_oo.cpp
+++ b/engines/glk/comprehend/game_oo.cpp
@@ -53,7 +53,7 @@ static const GameStrings OO_STRINGS = {
OOToposGame::OOToposGame() : ComprehendGameV2(), _restartMode(RESTART_IMMEDIATE),
_wearingGoggles(false), _lightOn(false), _stringVal1(0), _stringVal2(0),
- _addStringFlag(true), _shipNotWorking(false) {
+ _printComputerMsg(true), _shipNotWorking(false) {
_gameDataFile = "g0";
// Extra strings are (annoyingly) stored in the game binary
@@ -242,19 +242,19 @@ void OOToposGame::checkShipWorking() {
if (!_flags[idx]) {
if (!_stringVal2) {
// The following components are not installed
- console_cond_println(_strings2[132].c_str());
+ printComputerMsg(_strings2[132].c_str());
_stringVal2 = 1;
}
// Power Cylinder
- console_cond_println(_strings[_stringVal1].c_str());
+ printComputerMsg(_strings[_stringVal1].c_str());
}
}
_shipNotWorking = _stringVal2 != 0;
if (!_shipNotWorking)
// The ship is in working order
- console_cond_println(_strings2[153].c_str());
+ printComputerMsg(_strings2[153].c_str());
}
void OOToposGame::checkShipFuel() {
@@ -276,7 +276,7 @@ void OOToposGame::checkShipFuel() {
// Computer: "Our current evaluation...
Instruction strReplace(0xC9, 0x4B);
execute_opcode(&strReplace, nullptr, nullptr);
- console_cond_println(_strings2[146].c_str());
+ printComputerMsg(_strings2[146].c_str());
FunctionState funcState;
Instruction test(2, 75, 76);
@@ -285,17 +285,17 @@ void OOToposGame::checkShipFuel() {
if (funcState._testResult) {
// Computer: "We should now have enough
_flags[OO_FLAG_SUFFICIENT_FUEL] = true;
- console_cond_println(_strings2[151].c_str());
+ printComputerMsg(_strings2[151].c_str());
} else {
_flags[OO_FLAG_SUFFICIENT_FUEL] = false;
}
}
void OOToposGame::shipDepartCheck() {
- _addStringFlag = false;
+ _printComputerMsg = false;
checkShipWorking();
checkShipFuel();
- _addStringFlag = true;
+ _printComputerMsg = true;
if (!_shipNotWorking && _flags[OO_FLAG_SUFFICIENT_FUEL]) {
Item *item = get_item(ITEM_SERUM_VIAL - 1);
@@ -318,11 +318,10 @@ void OOToposGame::shipDepartCheck() {
}
}
-void OOToposGame::console_cond_println(const char *str) {
- if (_addStringFlag)
+void OOToposGame::printComputerMsg(const char *str) {
+ if (_printComputerMsg)
console_println(str);
}
-
} // namespace Comprehend
} // namespace Glk
diff --git a/engines/glk/comprehend/game_oo.h b/engines/glk/comprehend/game_oo.h
index f76fc5cef5..429fa068fa 100644
--- a/engines/glk/comprehend/game_oo.h
+++ b/engines/glk/comprehend/game_oo.h
@@ -35,7 +35,7 @@ private:
RestartMode _restartMode;
bool _wearingGoggles, _lightOn;
int _stringVal1, _stringVal2;
- bool _addStringFlag, _shipNotWorking;
+ bool _printComputerMsg, _shipNotWorking;
void randomizeGuardLocation();
void computerResponse();
@@ -59,7 +59,7 @@ private:
* A wrapped version of console_println that only prints the passed string
* if the _addStringFlag is set
*/
- void console_cond_println(const char *str);
+ void printComputerMsg(const char *str);
public:
OOToposGame();
~OOToposGame() override {}
Commit: ce1bdb32517349b03e8e904bb9089970b97921c2
https://github.com/scummvm/scummvm/commit/ce1bdb32517349b03e8e904bb9089970b97921c2
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-11-07T10:32:00-08:00
Commit Message:
GLK: COMPREHEND: Remaining handleSpecialOpcode cases
Changed paths:
engines/glk/comprehend/game_oo.cpp
diff --git a/engines/glk/comprehend/game_oo.cpp b/engines/glk/comprehend/game_oo.cpp
index 6a29688742..e9dd64760b 100644
--- a/engines/glk/comprehend/game_oo.cpp
+++ b/engines/glk/comprehend/game_oo.cpp
@@ -189,10 +189,15 @@ void OOToposGame::handleSpecialOpcode(uint8 operand) {
break;
case 9:
- error("TODO: Special 9");
+ // Checks the ship fuel
+ checkShipFuel();
+ randomizeGuardLocation();
+ break;
case 10:
- error("TODO: Special 10");
+ // Checks whether the ship is working
+ checkShipWorking();
+ break;
default:
break;
Commit: a0a46b7c1073597aefbfeeebb62cf2e9d97ce689
https://github.com/scummvm/scummvm/commit/a0a46b7c1073597aefbfeeebb62cf2e9d97ce689
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-11-07T10:32:00-08:00
Commit Message:
GLK: COMPREHEND: Added computerConsole method
Changed paths:
engines/glk/comprehend/game_oo.cpp
engines/glk/comprehend/game_oo.h
diff --git a/engines/glk/comprehend/game_oo.cpp b/engines/glk/comprehend/game_oo.cpp
index e9dd64760b..b1f68fb565 100644
--- a/engines/glk/comprehend/game_oo.cpp
+++ b/engines/glk/comprehend/game_oo.cpp
@@ -34,11 +34,16 @@ enum OOToposRoomFlag {
};
enum OOToposFlag {
+ OO_FLAG_9 = 9,
OO_FLAG_22 = 22,
OO_BRIGHT_ROOM = 25,
OO_FLAG_WEARING_GOGGLES = 27,
OO_FLAG_FLASHLIGHT_ON = 39,
+ OO_FLAG_43 = 43,
+ OO_FLAG_44 = 44,
OO_FLAG_SUFFICIENT_FUEL = 51,
+ OO_FLAG_58 = 58,
+ OO_FLAG_59 = 59,
OO_FLAG_READY_TO_DEPART = 60,
OO_TRACTOR_BEAM = 71
};
@@ -89,8 +94,7 @@ void OOToposGame::beforeGame() {
g_comprehend->glk_window_clear(g_comprehend->_bottomWindow);
}
-int OOToposGame::roomIsSpecial(unsigned room_index,
- unsigned *roomDescString) {
+int OOToposGame::roomIsSpecial(unsigned room_index, unsigned *roomDescString) {
Room *room = &_rooms[room_index];
// Is the room dark
@@ -134,6 +138,9 @@ void OOToposGame::beforeTurn() {
_wearingGoggles = _flags[OO_FLAG_WEARING_GOGGLES];
_updateFlags |= UPDATE_GRAPHICS | UPDATE_ROOM_DESC;
}
+
+ // Handle the computer console if in front of it
+ computerConsole();
}
bool OOToposGame::afterTurn() {
@@ -230,6 +237,34 @@ void OOToposGame::randomizeGuardLocation() {
}
}
+void OOToposGame::computerConsole() {
+ if (_currentRoom == 57) {
+ if (!_flags[OO_FLAG_9]) {
+ // Mission Code:
+ console_println("281");
+ } else if (!_flags[OO_FLAG_58]) {
+ // Welcome back! I was wondering if you would be returning
+ console_println("283");
+ _flags[OO_FLAG_58] = true;
+ _printComputerMsg = true;
+ checkShipWorking();
+ } else if (_flags[OO_FLAG_59]) {
+ checkShipDepart();
+ } else if (_flags[OO_FLAG_43]) {
+ // We can reach Mealy Sukas with the fuel we have left
+ console_println("28E");
+ _flags[OO_FLAG_59] = true;
+
+ if (_flags[OO_FLAG_44])
+ // The currency on Mealy Sukas is the 'frod'
+ console_println("290");
+ else
+ // Without evaluation data as to the current fuel prices
+ console_println("28F");
+ }
+ }
+}
+
void OOToposGame::computerResponse() {
console_println(_strings2[145].c_str());
if (_flags[43])
@@ -296,7 +331,7 @@ void OOToposGame::checkShipFuel() {
}
}
-void OOToposGame::shipDepartCheck() {
+void OOToposGame::checkShipDepart() {
_printComputerMsg = false;
checkShipWorking();
checkShipFuel();
diff --git a/engines/glk/comprehend/game_oo.h b/engines/glk/comprehend/game_oo.h
index 429fa068fa..dbe0fa0423 100644
--- a/engines/glk/comprehend/game_oo.h
+++ b/engines/glk/comprehend/game_oo.h
@@ -37,7 +37,19 @@ private:
int _stringVal1, _stringVal2;
bool _printComputerMsg, _shipNotWorking;
+ /**
+ * Randomizes a guard to different locations
+ */
void randomizeGuardLocation();
+
+ /**
+ * Handles the computer console
+ */
+ void computerConsole();
+
+ /**
+ * Handles displaying a cmputer response
+ */
void computerResponse();
/**
@@ -53,7 +65,7 @@ private:
/**
* Checks whether the ship can depart, printing out the computer's response
*/
- void shipDepartCheck();
+ void checkShipDepart();
/**
* A wrapped version of console_println that only prints the passed string
More information about the Scummvm-git-logs
mailing list