SHERLOCK: Use script opcode constants in journal loading
This commit is contained in:
parent
821040deaa
commit
56f8d54e51
3 changed files with 58 additions and 60 deletions
|
@ -346,48 +346,48 @@ int Journal::loadJournalFile(bool alreadyLoaded) {
|
||||||
} else {
|
} else {
|
||||||
// Control code, so move past it and any parameters
|
// Control code, so move past it and any parameters
|
||||||
switch (c) {
|
switch (c) {
|
||||||
case 129: // Run canim
|
case RUN_CANIMATION:
|
||||||
case 130: // Assign side
|
case ASSIGN_PORTRAIT_LOCATION:
|
||||||
case 131: // Pause with control
|
case PAUSE:
|
||||||
case 136: // Pause without control
|
case PAUSE_WITHOUT_CONTROL:
|
||||||
case 157: // Walk to canimation
|
case WALK_TO_CANIMATION:
|
||||||
// These commands have a single parameter
|
// These commands have a single parameter
|
||||||
++replyP;
|
++replyP;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 134: // Change sequence
|
case ADJUST_OBJ_SEQUENCE:
|
||||||
replyP += ((byte)replyP[0] & 127) + (byte)replyP[1] + 2;
|
replyP += ((byte)replyP[0] & 127) + (byte)replyP[1] + 2;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 135: // Walk to co-ords
|
case WALK_TO_COORDS:
|
||||||
case 154: // Move mouse
|
case MOVE_MOUSE:
|
||||||
replyP += 4;
|
replyP += 4;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 139: // Set flag
|
case SET_FLAG:
|
||||||
case 143: // If statement
|
case IF_STATEMENT:
|
||||||
replyP += 2;
|
replyP += 2;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 140: // Play voice file
|
case SFX_COMMAND:
|
||||||
case 150: // Play prologue
|
case PLAY_PROLOGUE:
|
||||||
case 153: // Call talk file
|
case CALL_TALK_FILE:
|
||||||
replyP += 8;
|
replyP += 8;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 141: // Toggle object
|
case TOGGLE_OBJECT:
|
||||||
case 151: // Put item in inventory
|
case ADD_ITEM_TO_INVENTORY:
|
||||||
case 152: // Set object
|
case SET_OBJECT:
|
||||||
case 155: // Info line
|
case DISPLAY_INFO_LINE:
|
||||||
case 158: // Delete item from inventory
|
case REMOVE_ITEM_FROM_INVENTORY:
|
||||||
replyP += ((byte)*replyP & 127) + 1;
|
replyP += ((byte)*replyP & 127) + 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 149: // Goto scene
|
case GOTO_SCENE:
|
||||||
replyP += 5;
|
replyP += 5;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 161: // End of line
|
case CARRIAGE_RETURN:
|
||||||
journalString += "\n";
|
journalString += "\n";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -26,45 +26,6 @@
|
||||||
|
|
||||||
namespace Sherlock {
|
namespace Sherlock {
|
||||||
|
|
||||||
enum {
|
|
||||||
SWITCH_SPEAKER = 128,
|
|
||||||
RUN_CANIMATION = 129,
|
|
||||||
ASSIGN_PORTRAIT_LOCATION = 130,
|
|
||||||
PAUSE = 131,
|
|
||||||
REMOVE_PORTRAIT = 132,
|
|
||||||
CLEAR_WINDOW = 133,
|
|
||||||
ADJUST_OBJ_SEQUENCE = 134,
|
|
||||||
WALK_TO_COORDS = 135,
|
|
||||||
PAUSE_WITHOUT_CONTROL = 136,
|
|
||||||
BANISH_WINDOW = 137,
|
|
||||||
SUMMON_WINDOW = 138,
|
|
||||||
SET_FLAG = 139,
|
|
||||||
SFX_COMMAND = 140,
|
|
||||||
TOGGLE_OBJECT = 141,
|
|
||||||
STEALTH_MODE_ACTIVE = 142,
|
|
||||||
IF_STATEMENT = 143,
|
|
||||||
ELSE_STATEMENT = 144,
|
|
||||||
END_IF_STATEMENT = 145,
|
|
||||||
STEALTH_MODE_DEACTIVATE = 146,
|
|
||||||
TURN_HOLMES_OFF = 147,
|
|
||||||
TURN_HOLMES_ON = 148,
|
|
||||||
GOTO_SCENE = 149,
|
|
||||||
PLAY_PROLOGUE = 150,
|
|
||||||
ADD_ITEM_TO_INVENTORY = 151,
|
|
||||||
SET_OBJECT = 152,
|
|
||||||
CALL_TALK_FILE = 153,
|
|
||||||
MOVE_MOUSE = 154,
|
|
||||||
DISPLAY_INFO_LINE = 155,
|
|
||||||
CLEAR_INFO_LINE = 156,
|
|
||||||
WALK_TO_CANIMATION = 157,
|
|
||||||
REMOVE_ITEM_FROM_INVENTORY = 158,
|
|
||||||
ENABLE_END_KEY = 159,
|
|
||||||
DISABLE_END_KEY = 160,
|
|
||||||
COMMAND_161 = 161
|
|
||||||
};
|
|
||||||
|
|
||||||
/*----------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load the data for a single statement within a talk file
|
* Load the data for a single statement within a talk file
|
||||||
*/
|
*/
|
||||||
|
@ -1621,7 +1582,7 @@ void Talk::doScript(const Common::String &script) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Open window if it wasn't already open, and text has already been printed
|
// Open window if it wasn't already open, and text has already been printed
|
||||||
if ((openTalkWindow && wait) || (openTalkWindow && (byte)str[0] >= 128 && (byte)str[0] != COMMAND_161)) {
|
if ((openTalkWindow && wait) || (openTalkWindow && (byte)str[0] >= 128 && (byte)str[0] != CARRIAGE_RETURN)) {
|
||||||
if (!ui._windowStyle) {
|
if (!ui._windowStyle) {
|
||||||
screen.slamRect(Common::Rect(0, CONTROLS_Y, SHERLOCK_SCREEN_WIDTH, SHERLOCK_SCREEN_HEIGHT));
|
screen.slamRect(Common::Rect(0, CONTROLS_Y, SHERLOCK_SCREEN_WIDTH, SHERLOCK_SCREEN_HEIGHT));
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -35,6 +35,43 @@ namespace Sherlock {
|
||||||
#define MAX_TALK_SEQUENCES 11
|
#define MAX_TALK_SEQUENCES 11
|
||||||
#define MAX_TALK_FILES 500
|
#define MAX_TALK_FILES 500
|
||||||
|
|
||||||
|
enum {
|
||||||
|
SWITCH_SPEAKER = 128,
|
||||||
|
RUN_CANIMATION = 129,
|
||||||
|
ASSIGN_PORTRAIT_LOCATION = 130,
|
||||||
|
PAUSE = 131,
|
||||||
|
REMOVE_PORTRAIT = 132,
|
||||||
|
CLEAR_WINDOW = 133,
|
||||||
|
ADJUST_OBJ_SEQUENCE = 134,
|
||||||
|
WALK_TO_COORDS = 135,
|
||||||
|
PAUSE_WITHOUT_CONTROL = 136,
|
||||||
|
BANISH_WINDOW = 137,
|
||||||
|
SUMMON_WINDOW = 138,
|
||||||
|
SET_FLAG = 139,
|
||||||
|
SFX_COMMAND = 140,
|
||||||
|
TOGGLE_OBJECT = 141,
|
||||||
|
STEALTH_MODE_ACTIVE = 142,
|
||||||
|
IF_STATEMENT = 143,
|
||||||
|
ELSE_STATEMENT = 144,
|
||||||
|
END_IF_STATEMENT = 145,
|
||||||
|
STEALTH_MODE_DEACTIVATE = 146,
|
||||||
|
TURN_HOLMES_OFF = 147,
|
||||||
|
TURN_HOLMES_ON = 148,
|
||||||
|
GOTO_SCENE = 149,
|
||||||
|
PLAY_PROLOGUE = 150,
|
||||||
|
ADD_ITEM_TO_INVENTORY = 151,
|
||||||
|
SET_OBJECT = 152,
|
||||||
|
CALL_TALK_FILE = 153,
|
||||||
|
MOVE_MOUSE = 154,
|
||||||
|
DISPLAY_INFO_LINE = 155,
|
||||||
|
CLEAR_INFO_LINE = 156,
|
||||||
|
WALK_TO_CANIMATION = 157,
|
||||||
|
REMOVE_ITEM_FROM_INVENTORY = 158,
|
||||||
|
ENABLE_END_KEY = 159,
|
||||||
|
DISABLE_END_KEY = 160,
|
||||||
|
CARRIAGE_RETURN = 161
|
||||||
|
};
|
||||||
|
|
||||||
struct SequenceEntry {
|
struct SequenceEntry {
|
||||||
int _objNum;
|
int _objNum;
|
||||||
Common::Array<byte> _sequences;
|
Common::Array<byte> _sequences;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue