From 55ab34b981cf58e3e650926713bf72729adaa311 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sun, 24 May 2015 15:17:05 -0400 Subject: SHERLOCK: Fully implemented RT opcodes array --- engines/sherlock/talk.cpp | 100 ++++++++++++++++++++++++++++++++++++++++++++- engines/sherlock/talk.h | 101 ++++++++++++++++++++++++++++++---------------- 2 files changed, 165 insertions(+), 36 deletions(-) (limited to 'engines/sherlock') diff --git a/engines/sherlock/talk.cpp b/engines/sherlock/talk.cpp index 7379d04b5f..bc473f755f 100644 --- a/engines/sherlock/talk.cpp +++ b/engines/sherlock/talk.cpp @@ -62,13 +62,109 @@ const byte SCALPEL_OPCODES[] = { 158, // OP_REMOVE_ITEM_FROM_INVENTORY 159, // OP_ENABLE_END_KEY 160, // OP_DISABLE_END_KEY - 161 // OP_CARRIAGE_RETURN + 161, // OP_CARRIAGE_RETURN + 0, // OP_MOUSE_ON_OFF + 0, // OP_SET_WALK_CONTROL + 0, // OP_SET_TALK_SEQUENCE + 0, // OP_PLAY_SONG + 0, // OP_WALK_HOLMES_AND_NPC_TO_CANIM + 0, // OP_SET_NPC_PATH_DEST + 0, // OP_NEXT_SONG + 0, // OP_SET_NPC_PATH_PAUSE + 0, // OP_PASSWORD + 0, // OP_SET_SCENE_ENTRY_FLAG + 0, // OP_WALK_NPC_TO_CANIM + 0, // OP_WALK_HOLMES_AND_NPC_TO_COORDS + 0, // OP_WALK_HOLMES_AND_NPC_TO_COORDS + 0, // OP_SET_NPC_TALK_FILE + 0, // OP_TURN_NPC_OFF + 0, // OP_TURN_NPC_ON + 0, // OP_NPC_DESC_ON_OFF + 0, // OP_NPC_PATH_PAUSE_TAKING_NOTES + 0, // OP_NPC_PATH_PAUSE_LOOKING_HOLMES + 0, // OP_ENABLE_TALK_INTERRUPTS + 0, // OP_DISABLE_TALK_INTERRUPTS + 0, // OP_SET_NPC_INFO_LINE + 0, // OP_SET_NPC_POSITION + 0, // OP_NPC_PATH_LABEL + 0, // OP_PATH_GOTO_LABEL + 0, // OP_PATH_IF_FLAG_GOTO_LABEL + 0, // OP_NPC_WALK_GRAPHICS + 0, // OP_NPC_VERB + 0, // OP_NPC_VERB_CANIM + 0, // OP_NPC_VERB_SCRIPT + 0, // OP_RESTORE_PEOPLE_SEQUENCE + 0, // OP_NPC_VERB_TARGET + 0 // OP_TURN_SOUNDS_OFF }; const byte TATTOO_OPCODES[] = { 170, // OP_SWITCH_SPEAKER 171, // OP_RUN_CANIMATION - 0 // TODO reset of opcodes + 0, // OP_ASSIGN_PORTRAIT_LOCATION + 173, // OP_PAUSE + 0, // OP_REMOVE_PORTRAIT + 0, // OP_CLEAR_WINDOW + 176, // OP_ADJUST_OBJ_SEQUENCE + 177, // OP_WALK_TO_COORDS + 178, // OP_PAUSE_WITHOUT_CONTROL + 179, // OP_BANISH_WINDOW + 0, // OP_SUMMON_WINDOW + 181, // OP_SET_FLAG + 0, // OP_SFX_COMMAND + 183, // OP_TOGGLE_OBJECT + 184, // OP_STEALTH_MODE_ACTIVE + 0, // OP_IF_STATEMENT + 0, // OP_ELSE_STATEMENT + 0, // OP_END_IF_STATEMENT + 188, // OP_STEALTH_MODE_DEACTIVATE + 189, // OP_TURN_HOLMES_OFF + 190, // OP_TURN_HOLMES_ON + 191, // OP_GOTO_SCENE + 0, // OP_PLAY_PROLOGUE + 193, // OP_ADD_ITEM_TO_INVENTORY + 194, // OP_SET_OBJECT + 172, // OP_CALL_TALK_FILE + 0, // OP_MOVE_MOUSE + 0, // OP_DISPLAY_INFO_LINE + 0, // OP_CLEAR_INFO_LINE + 199, // OP_WALK_TO_CANIMATION + 200, // OP_REMOVE_ITEM_FROM_INVENTORY + 201, // OP_ENABLE_END_KEY + 202, // OP_DISABLE_END_KEY + 0, // OP_CARRIAGE_RETURN + 174, // OP_MOUSE_ON_OFF + 175, // OP_SET_WALK_CONTROL + 180, // OP_SET_TALK_SEQUENCE + 182, // OP_PLAY_SONG + 187, // OP_WALK_HOLMES_AND_NPC_TO_CANIM + 192, // OP_SET_NPC_PATH_DEST + 195, // OP_NEXT_SONG + 196, // OP_SET_NPC_PATH_PAUSE + 197, // OP_PASSWORD + 198, // OP_SET_SCENE_ENTRY_FLAG + 185, // OP_WALK_NPC_TO_CANIM + 204, // OP_WALK_HOLMES_AND_NPC_TO_COORDS + 205, // OP_SET_NPC_TALK_FILE + 206, // OP_TURN_NPC_OFF + 207, // OP_TURN_NPC_ON + 208, // OP_NPC_DESC_ON_OFF + 209, // OP_NPC_PATH_PAUSE_TAKING_NOTES + 210, // OP_NPC_PATH_PAUSE_LOOKING_HOLMES + 211, // OP_ENABLE_TALK_INTERRUPTS + 212, // OP_DISABLE_TALK_INTERRUPTS + 213, // OP_SET_NPC_INFO_LINE + 214, // OP_SET_NPC_POSITION + 215, // OP_NPC_PATH_LABEL + 216, // OP_PATH_GOTO_LABEL + 217, // OP_PATH_IF_FLAG_GOTO_LABEL + 218, // OP_NPC_WALK_GRAPHICS + 220, // OP_NPC_VERB + 221, // OP_NPC_VERB_CANIM + 222, // OP_NPC_VERB_SCRIPT + 224, // OP_RESTORE_PEOPLE_SEQUENCE + 226, // OP_NPC_VERB_TARGET + 227 // OP_TURN_SOUNDS_OFF }; /*----------------------------------------------------------------*/ diff --git a/engines/sherlock/talk.h b/engines/sherlock/talk.h index bead67983b..b30b4ad714 100644 --- a/engines/sherlock/talk.h +++ b/engines/sherlock/talk.h @@ -36,40 +36,73 @@ namespace Sherlock { #define MAX_TALK_FILES 500 enum { - OP_SWITCH_SPEAKER = 128, - OP_RUN_CANIMATION = 129, - OP_ASSIGN_PORTRAIT_LOCATION = 130, - OP_PAUSE = 131, - OP_REMOVE_PORTRAIT = 132, - OP_CLEAR_WINDOW = 133, - OP_ADJUST_OBJ_SEQUENCE = 134, - OP_WALK_TO_COORDS = 135, - OP_PAUSE_WITHOUT_CONTROL = 136, - OP_BANISH_WINDOW = 137, - OP_SUMMON_WINDOW = 138, - OP_SET_FLAG = 139, - OP_SFX_COMMAND = 140, - OP_TOGGLE_OBJECT = 141, - OP_STEALTH_MODE_ACTIVE = 142, - OP_IF_STATEMENT = 143, - OP_ELSE_STATEMENT = 144, - OP_END_IF_STATEMENT = 145, - OP_STEALTH_MODE_DEACTIVATE = 146, - OP_TURN_HOLMES_OFF = 147, - OP_TURN_HOLMES_ON = 148, - OP_GOTO_SCENE = 149, - OP_PLAY_PROLOGUE = 150, - OP_ADD_ITEM_TO_INVENTORY = 151, - OP_SET_OBJECT = 152, - OP_CALL_TALK_FILE = 153, - OP_MOVE_MOUSE = 154, - OP_DISPLAY_INFO_LINE = 155, - OP_CLEAR_INFO_LINE = 156, - OP_WALK_TO_CANIMATION = 157, - OP_REMOVE_ITEM_FROM_INVENTORY = 158, - OP_ENABLE_END_KEY = 159, - OP_DISABLE_END_KEY = 160, - OP_CARRIAGE_RETURN = 161 + OP_SWITCH_SPEAKER = 0, + OP_RUN_CANIMATION = 1, + OP_ASSIGN_PORTRAIT_LOCATION = 2, + OP_PAUSE = 3, + OP_REMOVE_PORTRAIT = 4, + OP_CLEAR_WINDOW = 5, + OP_ADJUST_OBJ_SEQUENCE = 6, + OP_WALK_TO_COORDS = 7, + OP_PAUSE_WITHOUT_CONTROL = 8, + OP_BANISH_WINDOW = 9, + OP_SUMMON_WINDOW = 10, + OP_SET_FLAG = 11, + OP_SFX_COMMAND = 12, + OP_TOGGLE_OBJECT = 13, + OP_STEALTH_MODE_ACTIVE = 14, + OP_IF_STATEMENT = 15, + OP_ELSE_STATEMENT = 16, + OP_END_IF_STATEMENT = 17, + OP_STEALTH_MODE_DEACTIVATE = 18, + OP_TURN_HOLMES_OFF = 19, + OP_TURN_HOLMES_ON = 20, + OP_GOTO_SCENE = 21, + OP_PLAY_PROLOGUE = 22, + OP_ADD_ITEM_TO_INVENTORY = 23, + OP_SET_OBJECT = 24, + OP_CALL_TALK_FILE = 25, + OP_MOVE_MOUSE = 26, + OP_DISPLAY_INFO_LINE = 27, + OP_CLEAR_INFO_LINE = 28, + OP_WALK_TO_CANIMATION = 29, + OP_REMOVE_ITEM_FROM_INVENTORY = 30, + OP_ENABLE_END_KEY = 31, + OP_DISABLE_END_KEY = 32, + OP_CARRIAGE_RETURN = 33, + + OP_MOUSE_OFF_ON = 34, + OP_SET_WALK_CONTROL = 35, + OP_SET_TALK_SEQUENCE = 36, + OP_PLAY_SONG = 37, + OP_WALK_HOLMES_AND_NPC_TO_CANIM = 38, + OP_SET_NPC_PATH_DEST = 39, + OP_NEXT_SONG = 40, + OP_SET_NPC_PATH_PAUSE = 41, + OP_NEED_PASSWORD = 42, + OP_SET_SCENE_ENTRY_FLAG = 43, + OP_WALK_NPC_TO_CANIM = 44, + OP_WALK_HOLMES_AND_NPC_TO_COORDS = 45, + OP_SET_NPC_TALK_FILE = 46, + OP_TURN_NPC_OFF = 47, + OP_TURN_NPC_ON = 48, + OP_NPC_DESC_ON_OFF = 49, + OP_NPC_PATH_PAUSE_TAKING_NOTES = 50, + OP_NPC_PATH_PAUSE_LOOKING_HOLMES = 51, + OP_ENABLE_TALK_INTERRUPTS = 52, + OP_DISABLE_TALK_INTERRUPTS = 53, + OP_SET_NPC_INFO_LINE = 54, + OP_SET_NPC_POSITION = 54, + OP_NPC_PATH_LABEL = 55, + OP_PATH_GOTO_LABEL = 56, + OP_PATH_IF_FLAG_GOTO_LABEL = 57, + OP_NPC_WALK_GRAPHICS = 58, + OP_NPC_VERB = 59, + OP_NPC_VERB_CANIM = 60, + OP_NPC_VERB_SCRIPT = 61, + OP_RESTORE_PEOPLE_SEQUENCE = 62, + OP_NPC_VERB_TARGET = 63, + OP_TURN_SOUNDS_OFF = 64 }; -- cgit v1.2.3