[Scummvm-git-logs] scummvm master -> 580c49ba42b13dcd6b02584ac878b2c67e20c428
dreammaster
paulfgilbert at gmail.com
Thu Jun 18 03:12:44 UTC 2020
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
3ceb244c1a GLK: COMPREHEND: Also print dumped scripts to console
551a4fca06 GLK: COMPREHEND: Use warning for missing opcodes
580c49ba42 GLK: COMPREHEND: Implement movement opcode
Commit: 3ceb244c1a927e5879d2c5057af2155a446030c2
https://github.com/scummvm/scummvm/commit/3ceb244c1a927e5879d2c5057af2155a446030c2
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-06-17T20:12:29-07:00
Commit Message:
GLK: COMPREHEND: Also print dumped scripts to console
Changed paths:
engines/glk/comprehend/debugger.cpp
diff --git a/engines/glk/comprehend/debugger.cpp b/engines/glk/comprehend/debugger.cpp
index 000a2b237e..78a5b595ff 100644
--- a/engines/glk/comprehend/debugger.cpp
+++ b/engines/glk/comprehend/debugger.cpp
@@ -49,6 +49,7 @@ void Debugger::print(const char *fmt, ...) {
va_end(argp);
debugPrintf("%s", msg.c_str());
+ debugN("%s", msg.c_str());
}
bool Debugger::cmdDump(int argc, const char **argv) {
Commit: 551a4fca06a8289fe6c66d5f8e6e5d9d746bc4d9
https://github.com/scummvm/scummvm/commit/551a4fca06a8289fe6c66d5f8e6e5d9d746bc4d9
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-06-17T20:12:29-07:00
Commit Message:
GLK: COMPREHEND: Use warning for missing opcodes
Changed paths:
engines/glk/comprehend/game.cpp
diff --git a/engines/glk/comprehend/game.cpp b/engines/glk/comprehend/game.cpp
index c626252e1b..4d30438df5 100644
--- a/engines/glk/comprehend/game.cpp
+++ b/engines/glk/comprehend/game.cpp
@@ -1006,13 +1006,10 @@ void ComprehendGame::eval_instruction(FunctionState *func_state,
default:
if (instr->_opcode & 0x80) {
- debugC(kDebugScripts,
- "Unhandled command opcode %.2x",
- instr->_opcode);
+ warning("Unhandled command opcode %.2x", instr->_opcode);
} else {
- debugC(kDebugScripts,
- "Unhandled test opcode %.2x - returning false",
- instr->_opcode);
+ warning("Unhandled test opcode %.2x - returning false",
+ instr->_opcode);
func_set_test_result(func_state, false);
}
break;
Commit: 580c49ba42b13dcd6b02584ac878b2c67e20c428
https://github.com/scummvm/scummvm/commit/580c49ba42b13dcd6b02584ac878b2c67e20c428
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-06-17T20:12:29-07:00
Commit Message:
GLK: COMPREHEND: Implement movement opcode
Changed paths:
engines/glk/comprehend/debugger_dumper.cpp
engines/glk/comprehend/game.cpp
engines/glk/comprehend/game.h
engines/glk/comprehend/game_data.h
engines/glk/comprehend/opcode_map.cpp
diff --git a/engines/glk/comprehend/debugger_dumper.cpp b/engines/glk/comprehend/debugger_dumper.cpp
index 53f3bd504f..b596041f4c 100644
--- a/engines/glk/comprehend/debugger_dumper.cpp
+++ b/engines/glk/comprehend/debugger_dumper.cpp
@@ -77,7 +77,7 @@ DebuggerDumper::DebuggerDumper() : _game(nullptr) {
_opcodes[OPCODE_VAR_SUB] = "var_sub";
_opcodes[OPCODE_SET_OBJECT_DESCRIPTION] = "set_object_description";
_opcodes[OPCODE_SET_OBJECT_LONG_DESCRIPTION] = "set_object_long_description";
- _opcodes[OPCODE_MOVE] = "move";
+ _opcodes[OPCODE_MOVE_DEFAULT] = "move_default";
_opcodes[OPCODE_PRINT] = "print";
_opcodes[OPCODE_REMOVE_OBJECT] = "remove_object";
_opcodes[OPCODE_SET_FLAG] = "set_flag";
@@ -89,7 +89,7 @@ DebuggerDumper::DebuggerDumper() : _game(nullptr) {
_opcodes[OPCODE_SET_ROOM_GRAPHIC] = "set_room_graphic";
_opcodes[OPCODE_SET_OBJECT_GRAPHIC] = "set_object_graphic";
_opcodes[OPCODE_REMOVE_CURRENT_OBJECT] = "remove_current_object";
- _opcodes[OPCODE_DO_VERB] = "do_verb";
+ _opcodes[OPCODE_MOVE_DIR] = "move_dir";
_opcodes[OPCODE_VAR_INC] = "var_inc";
_opcodes[OPCODE_VAR_DEC] = "var_dec";
_opcodes[OPCODE_MOVE_CURRENT_OBJECT_TO_ROOM] = "move_current_object_to_room";
diff --git a/engines/glk/comprehend/game.cpp b/engines/glk/comprehend/game.cpp
index 4d30438df5..e8860c8361 100644
--- a/engines/glk/comprehend/game.cpp
+++ b/engines/glk/comprehend/game.cpp
@@ -596,7 +596,7 @@ void ComprehendGame::eval_instruction(FunctionState *func_state,
move_to(instr->_operand[0]);
break;
- case OPCODE_MOVE:
+ case OPCODE_MOVE_DEFAULT:
/* Move in the direction dictated by the current verb */
if (verb->_index - 1 >= NR_DIRECTIONS)
error("Bad verb %d:%d in move",
@@ -1000,10 +1000,14 @@ void ComprehendGame::eval_instruction(FunctionState *func_state,
break;
case OPCODE_SPECIAL:
- /* Game specific opcode */
+ // Game specific opcode
handleSpecialOpcode(instr->_operand[0]);
break;
+ case OPCODE_MOVE_DIR:
+ doMovementVerb(instr->_operand[0]);
+ break;
+
default:
if (instr->_opcode & 0x80) {
warning("Unhandled command opcode %.2x", instr->_opcode);
@@ -1237,5 +1241,16 @@ uint ComprehendGame::getRandomNumber(uint max) const {
return g_comprehend->getRandomNumber(max);
}
+void ComprehendGame::doMovementVerb(uint verbNum) {
+ assert(verbNum >= 1 && verbNum <= NR_DIRECTIONS);
+ Room *room = get_room(_currentRoom);
+ byte newRoom = room->_direction[verbNum - 1];
+
+ if (newRoom)
+ move_to(newRoom);
+ else
+ console_println(_strings[0].c_str());
+}
+
} // namespace Comprehend
} // namespace Glk
diff --git a/engines/glk/comprehend/game.h b/engines/glk/comprehend/game.h
index e077adb23f..931a07dc83 100644
--- a/engines/glk/comprehend/game.h
+++ b/engines/glk/comprehend/game.h
@@ -60,6 +60,7 @@ private:
void doBeforeTurn();
void doAfterTurn();
void read_input();
+ void doMovementVerb(uint verbNum);
protected:
void game_save();
diff --git a/engines/glk/comprehend/game_data.h b/engines/glk/comprehend/game_data.h
index be1af9ea9e..eef6de0970 100644
--- a/engines/glk/comprehend/game_data.h
+++ b/engines/glk/comprehend/game_data.h
@@ -90,7 +90,7 @@ enum {
OPCODE_VAR_SUB,
OPCODE_SET_OBJECT_DESCRIPTION,
OPCODE_SET_OBJECT_LONG_DESCRIPTION,
- OPCODE_MOVE,
+ OPCODE_MOVE_DEFAULT,
OPCODE_MOVE_DIRECTION,
OPCODE_PRINT,
OPCODE_REMOVE_OBJECT,
@@ -106,7 +106,7 @@ enum {
OPCODE_SET_ROOM_GRAPHIC,
OPCODE_SET_OBJECT_GRAPHIC,
OPCODE_REMOVE_CURRENT_OBJECT,
- OPCODE_DO_VERB,
+ OPCODE_MOVE_DIR,
OPCODE_VAR_INC,
OPCODE_VAR_DEC,
OPCODE_MOVE_CURRENT_OBJECT_TO_ROOM,
diff --git a/engines/glk/comprehend/opcode_map.cpp b/engines/glk/comprehend/opcode_map.cpp
index c327ef63fe..9d9e1137a4 100644
--- a/engines/glk/comprehend/opcode_map.cpp
+++ b/engines/glk/comprehend/opcode_map.cpp
@@ -78,7 +78,7 @@ void OpcodeMap::loadVersion1() {
_opcodeMap[0x89] = OPCODE_MOVE_OBJECT_TO_CURRENT_ROOM;
_opcodeMap[0x8a] = OPCODE_VAR_SUB;
_opcodeMap[0x8b] = OPCODE_SET_OBJECT_DESCRIPTION;
- _opcodeMap[0x8c] = OPCODE_MOVE;
+ _opcodeMap[0x8c] = OPCODE_MOVE_DEFAULT;
_opcodeMap[0x8e] = OPCODE_PRINT;
_opcodeMap[0x95] = OPCODE_REMOVE_OBJECT;
_opcodeMap[0x99] = OPCODE_SET_FLAG;
@@ -91,7 +91,7 @@ void OpcodeMap::loadVersion1() {
_opcodeMap[0xa4] = OPCODE_DROP_CURRENT_OBJECT;
_opcodeMap[0xa2] = OPCODE_SET_ROOM_GRAPHIC;
_opcodeMap[0xb0] = OPCODE_REMOVE_CURRENT_OBJECT;
- _opcodeMap[0xb1] = OPCODE_DO_VERB;
+ _opcodeMap[0xb1] = OPCODE_MOVE_DIR;
_opcodeMap[0xb9] = OPCODE_SET_STRING_REPLACEMENT;
_opcodeMap[0xbd] = OPCODE_VAR_INC;
_opcodeMap[0xc1] = OPCODE_VAR_DEC;
@@ -136,7 +136,7 @@ void OpcodeMap::loadVersion2() {
_opcodeMap[0x89] = OPCODE_SPECIAL;
_opcodeMap[0x8a] = OPCODE_VAR_SUB;
_opcodeMap[0x8b] = OPCODE_SET_OBJECT_DESCRIPTION;
- _opcodeMap[0x8c] = OPCODE_MOVE;
+ _opcodeMap[0x8c] = OPCODE_MOVE_DEFAULT;
_opcodeMap[0x8e] = OPCODE_PRINT;
_opcodeMap[0x8f] = OPCODE_SET_OBJECT_LONG_DESCRIPTION;
_opcodeMap[0x90] = OPCODE_WAIT_KEY;
@@ -148,7 +148,7 @@ void OpcodeMap::loadVersion2() {
_opcodeMap[0x9e] = OPCODE_INVENTORY_ROOM;
_opcodeMap[0xa0] = OPCODE_TAKE_CURRENT_OBJECT;
_opcodeMap[0xa2] = OPCODE_SET_OBJECT_GRAPHIC;
- _opcodeMap[0xb1] = OPCODE_DO_VERB;
+ _opcodeMap[0xb1] = OPCODE_MOVE_DIR;
_opcodeMap[0xb5] = OPCODE_DESCRIBE_CURRENT_OBJECT;
_opcodeMap[0xc1] = OPCODE_VAR_DEC;
_opcodeMap[0xc2] = OPCODE_SET_ROOM_GRAPHIC;
More information about the Scummvm-git-logs
mailing list