mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-11 05:36:12 +00:00
GLK: COMPREHEND: Added VAR_GTE opcodes
This commit is contained in:
parent
7451fc50d3
commit
9e4d151b8a
@ -53,6 +53,8 @@ DebuggerDumper::DebuggerDumper() : _game(nullptr) {
|
||||
_opcodes[OPCODE_OR] = "or";
|
||||
_opcodes[OPCODE_IN_ROOM] = "in_room";
|
||||
_opcodes[OPCODE_VAR_EQ] = "var_eq";
|
||||
_opcodes[OPCODE_VAR_GTE1] = "var_gte1";
|
||||
_opcodes[OPCODE_VAR_GTE2] = "var_gte2";
|
||||
_opcodes[OPCODE_CURRENT_OBJECT_NOT_VALID] = "current_object_not_valid";
|
||||
_opcodes[OPCODE_INVENTORY_FULL] = "inventory_full";
|
||||
_opcodes[OPCODE_OBJECT_PRESENT] = "object_present";
|
||||
|
@ -630,6 +630,18 @@ void ComprehendGame::eval_instruction(FunctionState *func_state,
|
||||
_variables[instr->_operand[1]]);
|
||||
break;
|
||||
|
||||
case OPCODE_VAR_GTE1:
|
||||
func_set_test_result(func_state,
|
||||
_variables[0] >=
|
||||
_variables[instr->_operand[0]]);
|
||||
break;
|
||||
|
||||
case OPCODE_VAR_GTE2:
|
||||
func_set_test_result(func_state,
|
||||
_variables[instr->_operand[0]] >=
|
||||
_variables[instr->_operand[1]]);
|
||||
break;
|
||||
|
||||
case OPCODE_TURN_TICK:
|
||||
_variables[VAR_TURN_COUNT]++;
|
||||
break;
|
||||
|
@ -55,6 +55,8 @@ enum {
|
||||
OPCODE_OR,
|
||||
OPCODE_IN_ROOM,
|
||||
OPCODE_VAR_EQ,
|
||||
OPCODE_VAR_GTE1,
|
||||
OPCODE_VAR_GTE2,
|
||||
OPCODE_CURRENT_OBJECT_TAKEABLE,
|
||||
OPCODE_OBJECT_PRESENT,
|
||||
OPCODE_ELSE,
|
||||
|
@ -46,6 +46,7 @@ void OpcodeMap::loadVersion1() {
|
||||
_opcodeMap[0x06] = OPCODE_VAR_EQ;
|
||||
_opcodeMap[0x08] = OPCODE_CURRENT_OBJECT_TAKEABLE;
|
||||
_opcodeMap[0x09] = OPCODE_OBJECT_PRESENT;
|
||||
_opcodeMap[0x0a] = OPCODE_VAR_GTE2;
|
||||
_opcodeMap[0x0c] = OPCODE_ELSE;
|
||||
_opcodeMap[0x0e] = OPCODE_OBJECT_IN_ROOM;
|
||||
_opcodeMap[0x14] = OPCODE_CURRENT_OBJECT_NOT_VALID;
|
||||
@ -55,6 +56,7 @@ void OpcodeMap::loadVersion1() {
|
||||
_opcodeMap[0x20] = OPCODE_HAVE_CURRENT_OBJECT;
|
||||
_opcodeMap[0x21] = OPCODE_OBJECT_IS_NOT_NOWHERE;
|
||||
_opcodeMap[0x24] = OPCODE_CURRENT_OBJECT_PRESENT;
|
||||
_opcodeMap[0x2d] = OPCODE_VAR_GTE1;
|
||||
_opcodeMap[0x31] = OPCODE_TEST_ROOM_FLAG;
|
||||
_opcodeMap[0x41] = OPCODE_NOT_HAVE_OBJECT;
|
||||
_opcodeMap[0x45] = OPCODE_NOT_IN_ROOM;
|
||||
@ -106,6 +108,7 @@ void OpcodeMap::loadVersion2() {
|
||||
_opcodeMap[0x06] = OPCODE_VAR_EQ;
|
||||
_opcodeMap[0x08] = OPCODE_CURRENT_IS_OBJECT;
|
||||
_opcodeMap[0x09] = OPCODE_OBJECT_PRESENT;
|
||||
_opcodeMap[0x0a] = OPCODE_VAR_GTE2;
|
||||
_opcodeMap[0x0c] = OPCODE_ELSE;
|
||||
_opcodeMap[0x11] = OPCODE_OBJECT_IS_NOWHERE;
|
||||
_opcodeMap[0x14] = OPCODE_CURRENT_OBJECT_NOT_VALID;
|
||||
|
Loading…
x
Reference in New Issue
Block a user