aboutsummaryrefslogtreecommitdiff
path: root/engines/sherlock/talk.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2015-06-05 23:05:22 -0400
committerPaul Gilbert2015-06-05 23:05:22 -0400
commit566d4805ef2e0324cc06c6cae48cde1908858b13 (patch)
treeaf656b343634800f5a16db1fa7966a57f4684610 /engines/sherlock/talk.cpp
parent389d453f0e805e7b6b7eef8632889837fd5e3445 (diff)
downloadscummvm-rg350-566d4805ef2e0324cc06c6cae48cde1908858b13.tar.gz
scummvm-rg350-566d4805ef2e0324cc06c6cae48cde1908858b13.tar.bz2
scummvm-rg350-566d4805ef2e0324cc06c6cae48cde1908858b13.zip
SHERLOCK: Move the Talk descendant classes into their own files
Diffstat (limited to 'engines/sherlock/talk.cpp')
-rw-r--r--engines/sherlock/talk.cpp534
1 files changed, 4 insertions, 530 deletions
diff --git a/engines/sherlock/talk.cpp b/engines/sherlock/talk.cpp
index 607417b55a..93285e217c 100644
--- a/engines/sherlock/talk.cpp
+++ b/engines/sherlock/talk.cpp
@@ -23,153 +23,12 @@
#include "sherlock/talk.h"
#include "sherlock/sherlock.h"
#include "sherlock/screen.h"
+#include "sherlock/scalpel/scalpel_talk.h"
#include "sherlock/scalpel/scalpel_user_interface.h"
+#include "sherlock/tattoo/tattoo_talk.h"
namespace Sherlock {
-#define SPEAKER_REMOVE 0x80
-
-const byte SCALPEL_OPCODES[] = {
- 128, // OP_SWITCH_SPEAKER
- 129, // OP_RUN_CANIMATION
- 130, // OP_ASSIGN_PORTRAIT_LOCATION
- 131, // OP_PAUSE
- 132, // OP_REMOVE_PORTRAIT
- 133, // OP_CLEAR_WINDOW
- 134, // OP_ADJUST_OBJ_SEQUENCE
- 135, // OP_WALK_TO_COORDS
- 136, // OP_PAUSE_WITHOUT_CONTROL
- 137, // OP_BANISH_WINDOW
- 138, // OP_SUMMON_WINDOW
- 139, // OP_SET_FLAG
- 140, // OP_SFX_COMMAND
- 141, // OP_TOGGLE_OBJECT
- 142, // OP_STEALTH_MODE_ACTIVE
- 143, // OP_IF_STATEMENT
- 144, // OP_ELSE_STATEMENT
- 145, // OP_END_IF_STATEMENT
- 146, // OP_STEALTH_MODE_DEACTIVATE
- 147, // OP_TURN_HOLMES_OFF
- 148, // OP_TURN_HOLMES_ON
- 149, // OP_GOTO_SCENE
- 150, // OP_PLAY_PROLOGUE
- 151, // OP_ADD_ITEM_TO_INVENTORY
- 152, // OP_SET_OBJECT
- 153, // OP_CALL_TALK_FILE
- 143, // OP_MOVE_MOUSE
- 155, // OP_DISPLAY_INFO_LINE
- 156, // OP_CLEAR_INFO_LINE
- 157, // OP_WALK_TO_CANIMATION
- 158, // OP_REMOVE_ITEM_FROM_INVENTORY
- 159, // OP_ENABLE_END_KEY
- 160, // OP_DISABLE_END_KEY
- 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, // 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
-};
-
-/*----------------------------------------------------------------*/
-
SequenceEntry::SequenceEntry() {
_objNum = 0;
_frameNumber = 0;
@@ -235,9 +94,9 @@ TalkSequence::TalkSequence() {
Talk *Talk::init(SherlockEngine *vm) {
if (vm->getGameID() == GType_SerratedScalpel)
- return new ScalpelTalk(vm);
+ return new Scalpel::ScalpelTalk(vm);
else
- return new TattooTalk(vm);
+ return new Tattoo::TattooTalk(vm);
}
Talk::Talk(SherlockEngine *vm) : _vm(vm) {
@@ -1783,389 +1642,4 @@ OpcodeReturn Talk::cmdWalkToCoords(const byte *&str) {
return RET_SUCCESS;
}
-/*----------------------------------------------------------------*/
-
-ScalpelTalk::ScalpelTalk(SherlockEngine *vm) : Talk(vm) {
- static OpcodeMethod OPCODE_METHODS[] = {
- (OpcodeMethod)&ScalpelTalk::cmdSwitchSpeaker,
- (OpcodeMethod)&ScalpelTalk::cmdRunCAnimation,
- (OpcodeMethod)&ScalpelTalk::cmdAssignPortraitLocation,
-
- (OpcodeMethod)&ScalpelTalk::cmdPause,
- (OpcodeMethod)&ScalpelTalk::cmdRemovePortrait,
- (OpcodeMethod)&ScalpelTalk::cmdClearWindow,
- (OpcodeMethod)&ScalpelTalk::cmdAdjustObjectSequence,
- (OpcodeMethod)&ScalpelTalk::cmdWalkToCoords,
- (OpcodeMethod)&ScalpelTalk::cmdPauseWithoutControl,
- (OpcodeMethod)&ScalpelTalk::cmdBanishWindow,
- (OpcodeMethod)&ScalpelTalk::cmdSummonWindow,
- (OpcodeMethod)&ScalpelTalk::cmdSetFlag,
- (OpcodeMethod)&ScalpelTalk::cmdSfxCommand,
-
- (OpcodeMethod)&ScalpelTalk::cmdToggleObject,
- (OpcodeMethod)&ScalpelTalk::cmdStealthModeActivate,
- (OpcodeMethod)&ScalpelTalk::cmdIf,
- (OpcodeMethod)&ScalpelTalk::cmdElse,
- nullptr,
- (OpcodeMethod)&ScalpelTalk::cmdStealthModeDeactivate,
- (OpcodeMethod)&ScalpelTalk::cmdHolmesOff,
- (OpcodeMethod)&ScalpelTalk::cmdHolmesOn,
- (OpcodeMethod)&ScalpelTalk::cmdGotoScene,
- (OpcodeMethod)&ScalpelTalk::cmdPlayPrologue,
-
- (OpcodeMethod)&ScalpelTalk::cmdAddItemToInventory,
- (OpcodeMethod)&ScalpelTalk::cmdSetObject,
- (OpcodeMethod)&ScalpelTalk::cmdCallTalkFile,
- (OpcodeMethod)&ScalpelTalk::cmdMoveMouse,
- (OpcodeMethod)&ScalpelTalk::cmdDisplayInfoLine,
- (OpcodeMethod)&ScalpelTalk::cmdClearInfoLine,
- (OpcodeMethod)&ScalpelTalk::cmdWalkToCAnimation,
- (OpcodeMethod)&ScalpelTalk::cmdRemoveItemFromInventory,
- (OpcodeMethod)&ScalpelTalk::cmdEnableEndKey,
- (OpcodeMethod)&ScalpelTalk::cmdDisableEndKey,
-
- (OpcodeMethod)&ScalpelTalk::cmdCarriageReturn,
- nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
- nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
- nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
- nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
- nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
- nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
- nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr
- };
-
- _opcodes = SCALPEL_OPCODES;
- _opcodeTable = OPCODE_METHODS;
-}
-
-OpcodeReturn ScalpelTalk::cmdAssignPortraitLocation(const byte *&str) {
- People &people = *_vm->_people;
-
- ++str;
- switch (str[0] & 15) {
- case 1:
- people._portraitSide = 20;
- break;
- case 2:
- people._portraitSide = 220;
- break;
- case 3:
- people._portraitSide = 120;
- break;
- default:
- break;
- }
-
- if (str[0] > 15)
- people._speakerFlip = true;
-
- return RET_SUCCESS;
-}
-
-OpcodeReturn ScalpelTalk::cmdClearInfoLine(const byte *&str) {
- UserInterface &ui = *_vm->_ui;
-
- ui._infoFlag = true;
- ui.clearInfo();
-
- return RET_SUCCESS;
-}
-
-OpcodeReturn ScalpelTalk::cmdClearWindow(const byte *&str) {
- UserInterface &ui = *_vm->_ui;
-
- ui.clearWindow();
- _yp = CONTROLS_Y + 12;
- _charCount = _line = 0;
-
- return RET_SUCCESS;
-}
-
-OpcodeReturn ScalpelTalk::cmdDisplayInfoLine(const byte *&str) {
- Screen &screen = *_vm->_screen;
- UserInterface &ui = *_vm->_ui;
- Common::String tempString;
-
- ++str;
- for (int idx = 0; idx < str[0]; ++idx)
- tempString += str[idx + 1];
- str += str[0];
-
- screen.print(Common::Point(0, INFO_LINE + 1), INFO_FOREGROUND, "%s", tempString.c_str());
- ui._menuCounter = 30;
-
- return RET_SUCCESS;
-}
-
-OpcodeReturn ScalpelTalk::cmdElse(const byte *&str) {
- // If this is encountered here, it means that a preceeding IF statement was found,
- // and evaluated to true. Now all the statements for the true block are finished,
- // so skip over the block of code that would have executed if the result was false
- _wait = 0;
- do {
- ++str;
- } while (str[0] && str[0] != _opcodes[OP_END_IF_STATEMENT]);
-
- return RET_SUCCESS;
-}
-
-OpcodeReturn ScalpelTalk::cmdIf(const byte *&str) {
- ++str;
- int flag = (str[0] - 1) * 256 + str[1] - 1 - (str[1] == 1 ? 1 : 0);
- ++str;
- _wait = 0;
-
- bool result = flag < 0x8000;
- if (_vm->readFlags(flag & 0x7fff) != result) {
- do {
- ++str;
- } while (str[0] && str[0] != _opcodes[OP_ELSE_STATEMENT] && str[0] != _opcodes[OP_END_IF_STATEMENT]);
-
- if (!str[0])
- _endStr = true;
- }
-
- return RET_SUCCESS;
-}
-
-OpcodeReturn ScalpelTalk::cmdMoveMouse(const byte *&str) {
- Events &events = *_vm->_events;
-
- ++str;
- events.moveMouse(Common::Point((str[0] - 1) * 256 + str[1] - 1, str[2]));
- if (_talkToAbort)
- return RET_EXIT;
- str += 3;
-
- return RET_SUCCESS;
-}
-
-OpcodeReturn ScalpelTalk::cmdPlayPrologue(const byte *&str) {
- Animation &anim = *_vm->_animation;
- Common::String tempString;
-
- ++str;
- for (int idx = 0; idx < 8 && str[idx] != '~'; ++idx)
- tempString += str[idx];
-
- anim.play(tempString, 1, 3, true, 4);
-
- return RET_SUCCESS;
-}
-
-OpcodeReturn ScalpelTalk::cmdRemovePortrait(const byte *&str) {
- People &people = *_vm->_people;
-
- if (_speaker >= 0 && _speaker < SPEAKER_REMOVE)
- people.clearTalking();
- pullSequence();
- if (_talkToAbort)
- return RET_EXIT;
-
- _speaker |= SPEAKER_REMOVE;
- return RET_SUCCESS;
-}
-
-OpcodeReturn ScalpelTalk::cmdSfxCommand(const byte *&str) {
- Sound &sound = *_vm->_sound;
- Common::String tempString;
-
- ++str;
- if (sound._voices) {
- for (int idx = 0; idx < 8 && str[idx] != '~'; ++idx)
- tempString += str[idx];
- sound.playSound(tempString, WAIT_RETURN_IMMEDIATELY);
-
- // Set voices to wait for more
- sound._voices = 2;
- sound._speechOn = (*sound._soundIsOn);
- }
-
- _wait = 1;
- str += 7;
-
- return RET_SUCCESS;
-}
-
-OpcodeReturn ScalpelTalk::cmdSummonWindow(const byte *&str) {
- Events &events = *_vm->_events;
- Screen &screen = *_vm->_screen;
-
- drawInterface();
- events._pressed = events._released = false;
- events.clearKeyboard();
- _noTextYet = false;
-
- if (_speaker != -1) {
- screen.buttonPrint(Common::Point(119, CONTROLS_Y), COMMAND_NULL, false, "Exit");
- screen.buttonPrint(Common::Point(159, CONTROLS_Y), COMMAND_NULL, false, "Up");
- screen.buttonPrint(Common::Point(200, CONTROLS_Y), COMMAND_NULL, false, "Down");
- }
-
- return RET_SUCCESS;
-}
-
-OpcodeReturn ScalpelTalk::cmdCarriageReturn(const byte *&str) {
- return RET_SUCCESS;
-}
-
-/*----------------------------------------------------------------*/
-
-TattooTalk::TattooTalk(SherlockEngine *vm) : Talk(vm) {
- static OpcodeMethod OPCODE_METHODS[] = {
- nullptr, nullptr,
- nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
- nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
- nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
- nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
- (OpcodeMethod)&TattooTalk::cmdSwitchSpeaker,
-
- (OpcodeMethod)&TattooTalk::cmdRunCAnimation,
- (OpcodeMethod)&TattooTalk::cmdCallTalkFile,
- (OpcodeMethod)&TattooTalk::cmdPause,
- (OpcodeMethod)&TattooTalk::cmdMouseOnOff,
- (OpcodeMethod)&TattooTalk::cmdSetWalkControl,
- (OpcodeMethod)&TattooTalk::cmdAdjustObjectSequence,
- (OpcodeMethod)&TattooTalk::cmdWalkToCoords,
- (OpcodeMethod)&TattooTalk::cmdPauseWithoutControl,
- (OpcodeMethod)&TattooTalk::cmdBanishWindow,
- (OpcodeMethod)&TattooTalk::cmdSetTalkSequence,
-
- (OpcodeMethod)&TattooTalk::cmdSetFlag,
- (OpcodeMethod)&TattooTalk::cmdPlaySong,
- (OpcodeMethod)&TattooTalk::cmdToggleObject,
- (OpcodeMethod)&TattooTalk::cmdStealthModeActivate,
- (OpcodeMethod)&TattooTalk::cmdWalkNPCToCAnimation,
- (OpcodeMethod)&TattooTalk::cmdWalkNPCToCoords,
- (OpcodeMethod)&TattooTalk::cmdWalkHomesAndNPCToCoords,
- (OpcodeMethod)&TattooTalk::cmdStealthModeDeactivate,
- (OpcodeMethod)&TattooTalk::cmdHolmesOff,
- (OpcodeMethod)&TattooTalk::cmdHolmesOn,
-
- (OpcodeMethod)&TattooTalk::cmdGotoScene,
- (OpcodeMethod)&TattooTalk::cmdSetNPCPathDest,
- (OpcodeMethod)&TattooTalk::cmdAddItemToInventory,
- (OpcodeMethod)&TattooTalk::cmdSetObject,
- (OpcodeMethod)&TattooTalk::cmdNextSong,
- (OpcodeMethod)&TattooTalk::cmdSetNPCPathPause,
- (OpcodeMethod)&TattooTalk::cmdPassword,
- (OpcodeMethod)&TattooTalk::cmdSetSceneEntryFlag,
- (OpcodeMethod)&TattooTalk::cmdWalkToCAnimation,
- (OpcodeMethod)&TattooTalk::cmdRemoveItemFromInventory,
-
- (OpcodeMethod)&TattooTalk::cmdEnableEndKey,
- (OpcodeMethod)&TattooTalk::cmdDisableEndKey,
- nullptr,
- (OpcodeMethod)&TattooTalk::cmdWalkHomesAndNPCToCoords,
- (OpcodeMethod)&TattooTalk::cmdSetNPCTalkFile,
- (OpcodeMethod)&TattooTalk::cmdSetNPCOff,
- (OpcodeMethod)&TattooTalk::cmdSetNPCOn,
- (OpcodeMethod)&TattooTalk::cmdSetNPCDescOnOff,
- (OpcodeMethod)&TattooTalk::cmdSetNPCPathPauseTakingNotes,
- (OpcodeMethod)&TattooTalk::cmdSetNPCPathPauseLookingHolmes,
-
- (OpcodeMethod)&TattooTalk::cmdTalkInterruptsEnable,
- (OpcodeMethod)&TattooTalk::cmdTalkInterruptsDisable,
- (OpcodeMethod)&TattooTalk::cmdSetNPCInfoLine,
- (OpcodeMethod)&TattooTalk::cmdSetNPCPosition,
- (OpcodeMethod)&TattooTalk::cmdNPCLabelSet,
- (OpcodeMethod)&TattooTalk::cmdNPCLabelGoto,
- (OpcodeMethod)&TattooTalk::cmdNPCLabelIfFlagGoto,
- (OpcodeMethod)&TattooTalk::cmdSetNPCWalkGraphics,
- nullptr,
- (OpcodeMethod)&TattooTalk::cmdSetNPCVerb,
-
- (OpcodeMethod)&TattooTalk::cmdSetNPCVerbCAnimation,
- (OpcodeMethod)&TattooTalk::cmdSetNPCVerbScript,
- nullptr,
- (OpcodeMethod)&TattooTalk::cmdRestorePeopleSequence,
- (OpcodeMethod)&TattooTalk::cmdSetNPCVerbTarget,
- (OpcodeMethod)&TattooTalk::cmdTurnSoundsOff
- };
-
- _opcodes = TATTOO_OPCODES;
- _opcodeTable = OPCODE_METHODS;
-}
-
-OpcodeReturn TattooTalk::cmdMouseOnOff(const byte *&str) {
- Events &events = *_vm->_events;
- bool mouseOn = *++str == 2;
- if (mouseOn)
- events.showCursor();
- else
- events.hideCursor();
- return RET_SUCCESS;
-}
-
-OpcodeReturn TattooTalk::cmdNextSong(const byte *&str) {
- Sound &sound = *_vm->_sound;
-
- // Get the name of the next song to play
- ++str;
- sound._nextSongName = "";
- for (int idx = 0; idx < 8; ++idx) {
- if (str[idx] != '~')
- sound._nextSongName += str[idx];
- else
- break;
- }
- str += 7;
-
- return RET_SUCCESS;
-}
-
-OpcodeReturn TattooTalk::cmdNPCLabelGoto(const byte *&str) { error("TODO: script opcode"); }
-OpcodeReturn TattooTalk::cmdNPCLabelIfFlagGoto(const byte *&str) { error("TODO: script opcode"); }
-OpcodeReturn TattooTalk::cmdNPCLabelSet(const byte *&str) { error("TODO: script opcode"); }
-OpcodeReturn TattooTalk::cmdPassword(const byte *&str) { error("TODO: script opcode"); }
-OpcodeReturn TattooTalk::cmdPlaySong(const byte *&str) { error("TODO: script opcode"); }
-OpcodeReturn TattooTalk::cmdRestorePeopleSequence(const byte *&str) { error("TODO: script opcode"); }
-OpcodeReturn TattooTalk::cmdSetNPCDescOnOff(const byte *&str) { error("TODO: script opcode"); }
-OpcodeReturn TattooTalk::cmdSetNPCInfoLine(const byte *&str) { error("TODO: script opcode"); }
-OpcodeReturn TattooTalk::cmdSetNPCOff(const byte *&str) { error("TODO: script opcode"); }
-OpcodeReturn TattooTalk::cmdSetNPCOn(const byte *&str) { error("TODO: script opcode"); }
-OpcodeReturn TattooTalk::cmdSetNPCPathDest(const byte *&str) { error("TODO: script opcode"); }
-OpcodeReturn TattooTalk::cmdSetNPCPathPause(const byte *&str) { error("TODO: script opcode"); }
-OpcodeReturn TattooTalk::cmdSetNPCPathPauseTakingNotes(const byte *&str) { error("TODO: script opcode"); }
-OpcodeReturn TattooTalk::cmdSetNPCPathPauseLookingHolmes(const byte *&str) { error("TODO: script opcode"); }
-OpcodeReturn TattooTalk::cmdSetNPCPosition(const byte *&str) { error("TODO: script opcode"); }
-OpcodeReturn TattooTalk::cmdSetNPCTalkFile(const byte *&str) { error("TODO: script opcode"); }
-OpcodeReturn TattooTalk::cmdSetNPCVerb(const byte *&str) { error("TODO: script opcode"); }
-OpcodeReturn TattooTalk::cmdSetNPCVerbCAnimation(const byte *&str) { error("TODO: script opcode"); }
-OpcodeReturn TattooTalk::cmdSetNPCVerbScript(const byte *&str) { error("TODO: script opcode"); }
-OpcodeReturn TattooTalk::cmdSetNPCVerbTarget(const byte *&str) { error("TODO: script opcode"); }
-
-OpcodeReturn TattooTalk::cmdSetNPCWalkGraphics(const byte *&str) {
- ++str;
- int npc = *str - 1;
- People &people = *_vm->_people;
- Person &person = people[npc];
-
- // Build up walk library name for the given NPC
- person._walkVGSName = "";
- for (int idx = 0; idx < 8; ++idx) {
- if (str[idx + 1] != '~')
- person._walkVGSName += str[idx + 1];
- else
- break;
- }
- person._walkVGSName += ".VGS";
-
- people._forceWalkReload = true;
- str += 8;
-
- return RET_SUCCESS;
-}
-
-OpcodeReturn TattooTalk::cmdSetSceneEntryFlag(const byte *&str) { error("TODO: script opcode"); }
-OpcodeReturn TattooTalk::cmdSetTalkSequence(const byte *&str) { error("TODO: script opcode"); }
-OpcodeReturn TattooTalk::cmdSetWalkControl(const byte *&str) { error("TODO: script opcode"); }
-OpcodeReturn TattooTalk::cmdTalkInterruptsDisable(const byte *&str) { error("TODO: script opcode"); }
-OpcodeReturn TattooTalk::cmdTalkInterruptsEnable(const byte *&str) { error("TODO: script opcode"); }
-OpcodeReturn TattooTalk::cmdTurnSoundsOff(const byte *&str) { error("TODO: script opcode"); }
-OpcodeReturn TattooTalk::cmdWalkHolmesAndNPCToCAnimation(const byte *&str) { error("TODO: script opcode"); }
-OpcodeReturn TattooTalk::cmdWalkNPCToCAnimation(const byte *&str) { error("TODO: script opcode"); }
-OpcodeReturn TattooTalk::cmdWalkNPCToCoords(const byte *&str) { error("TODO: script opcode"); }
-OpcodeReturn TattooTalk::cmdWalkHomesAndNPCToCoords(const byte *&str) { error("TODO: script opcode"); }
-
} // End of namespace Sherlock