[Scummvm-git-logs] scummvm master -> e14b23291870d9ef1520c4f6922a015e6fe2818b
AndywinXp
noreply at scummvm.org
Sun Feb 26 09:53:57 UTC 2023
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
e14b232918 SCUMM: Label v6+ subops
Commit: e14b23291870d9ef1520c4f6922a015e6fe2818b
https://github.com/scummvm/scummvm/commit/e14b23291870d9ef1520c4f6922a015e6fe2818b
Author: BLooperZ (blooperz at users.noreply.github.com)
Date: 2023-02-26T10:53:53+01:00
Commit Message:
SCUMM: Label v6+ subops
Changed paths:
engines/scumm/he/intern_he.h
engines/scumm/he/script_v100he.cpp
engines/scumm/he/script_v60he.cpp
engines/scumm/he/script_v70he.cpp
engines/scumm/he/script_v71he.cpp
engines/scumm/he/script_v72he.cpp
engines/scumm/he/script_v80he.cpp
engines/scumm/he/script_v90he.cpp
engines/scumm/script_v6.cpp
engines/scumm/script_v8.cpp
engines/scumm/scumm_v6.h
engines/scumm/scumm_v8.h
diff --git a/engines/scumm/he/intern_he.h b/engines/scumm/he/intern_he.h
index 96030d22f08..0c7a2e27ee8 100644
--- a/engines/scumm/he/intern_he.h
+++ b/engines/scumm/he/intern_he.h
@@ -47,6 +47,20 @@ class CUP_Player;
class ScummEngine_v60he : public ScummEngine_v6 {
protected:
+ enum SubOpType {
+ SO_ACTOR_DEFAULT_CLIPPED = 30,
+ SO_BACKGROUND_ON = 218,
+ SO_BACKGROUND_OFF = 219,
+ SO_ROOM_COPY_PALETTE = 220,
+ SO_ROOM_SAVEGAME_BY_NAME = 221,
+ SO_SOUND_START_VOLUME = 222,
+ SO_SOUND_VOLUME_RAMP = 223,
+ SO_SOUND_FREQUENCY = 224,
+ SO_TALKIE = 225,
+ SO_OBJECT_ORDER = 234,
+ SO_ROOM_PALETTE_IN_ROOM = 236,
+ SO_COLOR_LIST = 249,
+ };
public:
Common::SeekableReadStream *_hInFileTable[17];
@@ -134,6 +148,44 @@ protected:
HE_SND_PAN = 128
};
+ enum SubOpType {
+ SO_SOFT = 9,
+ SO_IMAGE_LOADED = 18,
+ SO_VARIABLE = 23,
+ SO_SOUND_VOLUME = 25,
+ SO_NOW = 56,
+ SO_PRELOAD_SCRIPT = 120,
+ SO_PRELOAD_SOUND = 121,
+ SO_PRELOAD_COSTUME = 122,
+ SO_PRELOAD_ROOM = 123,
+ SO_UNLOCK_IMAGE = 159,
+ SO_SOUND_ADD = 164,
+ SO_NUKE_IMAGE = 192,
+ SO_LOAD_IMAGE = 201,
+ SO_LOCK_IMAGE = 202,
+ SO_PRELOAD_IMAGE = 203,
+ SO_ROOM_LOADED = 226,
+ SO_COSTUME_LOADED = 227,
+ SO_SOUND_LOADED = 228,
+ SO_SCRIPT_LOADED = 229,
+ SO_SOUND_CHANNEL = 230,
+ SO_AT = 231,
+ SO_SOUND_START = 232,
+ SO_LOCK_FLOBJECT = 233,
+ SO_UNLOCK_FLOBJECT = 235,
+ SO_PRELOAD_FLUSH = 239,
+ SO_PAUSE_MESSAGE = 240,
+ SO_PAUSE_TITLE = 241,
+ SO_PAUSE_OPTION = 242,
+ SO_TITLE_BAR = 243,
+ SO_QUIT_QUIT = 244,
+ SO_SOUND_LOOPING = 245,
+ SO_START_SYSTEM = 250,
+ SO_START_SYSTEM_STRING = 251,
+ SO_RESTART_STRING = 252,
+ SO_RESTART_ARRAY = 253,
+ };
+
ResExtractor *_resExtractor;
byte *_heV7DiskOffsets;
@@ -204,6 +256,12 @@ class ScummEngine_v71he : public ScummEngine_v70he {
friend class Moonbase;
protected:
+ enum SubOpType {
+ SO_SET_POLYGON = 246,
+ SO_DELETE_POLYGON = 247,
+ SO_SET_POLYGON_LOCAL = 248,
+ };
+
bool _skipProcessActors;
public:
@@ -264,6 +322,35 @@ public:
class ScummEngine_v72he : public ScummEngine_v71he {
protected:
+ enum SubOpType {
+ SO_NONE = 1,
+ SO_BIT = 2, // SO_INT1
+ SO_NIBBLE = 3, // SO_INT4
+ SO_BYTE = 4, // SO_INT8
+ SO_INT = 5, // SO_INT16
+ SO_DWORD = 6, // SO_INT32
+ SO_STRING = 7,
+ SO_ARRAY = 8,
+ SO_SOUND_SIZE = 13,
+ SO_ROOM_SIZE = 14,
+ SO_IMAGE_SIZE = 15,
+ SO_COSTUME_SIZE = 16,
+ SO_SCRIPT_SIZE = 17,
+ SO_CONDITION = 21,
+ SO_FLUSH_OBJECT_DRAW_QUE = 22,
+ SO_TALK_CONDITION = 24,
+ SO_UPDATE_SCREEN = 26,
+ SO_PRIORITY = 43,
+ SO_AT_IMAGE = 62,
+ SO_IMAGE = 63,
+ SO_ACTOR_DEFAULT_CLIPPED = 64,
+ SO_ERASE = 68,
+ SO_COMPLEX_ARRAY_ASSIGNMENT = 126,
+ SO_COMPLEX_ARRAY_COPY_OPERATION = 127,
+ SO_RANGE_ARRAY_ASSIGNMENT = 128,
+ SO_FORMATTED_STRING = 194,
+ SO_UNDIM_ARRAY = 204,
+ };
#include "common/pack-start.h" // START STRUCT PACKING
@@ -396,6 +483,13 @@ protected:
class ScummEngine_v80he : public ScummEngine_v72he {
protected:
int32 _heSndResId, _curSndId, _sndPtrOffs, _sndTmrOffs, _sndDataSize;
+ enum SubOpType {
+ SO_CURSOR_IMAGE = 19,
+ SO_CURSOR_COLOR_IMAGE = 20,
+ SO_ADD = 27,
+ SO_ACTOR = 55,
+ SO_BUTTON = 60,
+ };
public:
ScummEngine_v80he(OSystem *syst, const DetectorResult &dr);
@@ -448,6 +542,55 @@ class ScummEngine_v90he : public ScummEngine_v80he {
protected:
FloodFillParameters _floodFillParams;
+ enum SubOpType {
+ SO_COORD_2D = 28,
+ SO_COORD_3D = 29,
+ SO_XPOS = 30,
+ SO_YPOS = 31,
+ SO_WIDTH = 32,
+ SO_HEIGHT = 33,
+ SO_STEP_DIST_X = 34,
+ SO_STEP_DIST_Y = 35,
+ SO_COUNT = 36,
+ SO_GROUP = 37,
+ SO_DRAW_XPOS = 38,
+ SO_DRAW_YPOS = 39,
+ SO_PROPERTY = 42,
+ SO_MOVE = 44,
+ SO_FIND = 45,
+ SO_GENERAL_CLIP_STATE = 46,
+ SO_GENERAL_CLIP_RECT = 47,
+ SO_DRAW = 48,
+ SO_LOAD = 49,
+ SO_SAVE = 50,
+ SO_CAPTURE = 51,
+ SO_STATE = 52,
+ SO_ANGLE = 53,
+ SO_SET_FLAGS = 54,
+ SO_INIT = 57,
+ SO_STEP_DIST = 77,
+ SO_ANIMATION = 82,
+ SO_PALETTE = 86,
+ SO_UPDATE = 124,
+ SO_CLASS = 125,
+ SO_SORT = 129,
+ SO_HISTOGRAM = 130,
+ SO_POLY_POLYGON = 131,
+ SO_CHANNEL = 132,
+ SO_RENDER_RECTANGLE = 133,
+ SO_RENDER_LINE = 134,
+ SO_RENDER_PIXEL = 135,
+ SO_RENDER_FLOOD_FILL = 136,
+ SO_RENDER_INTO_IMAGE = 137,
+ SO_NEW_GENERAL_PROPERTY = 139,
+ SO_MASK = 140,
+ SO_FONT_START = 141,
+ SO_FONT_CREATE = 142,
+ SO_FONT_RENDER = 143,
+ SO_CLOSE = 165,
+ SO_RENDER_ELLIPSE = 189,
+ SO_FONT_END = 196,
+ };
struct VideoParameters {
byte filename[260];
@@ -595,11 +738,213 @@ friend class AI;
friend class Moonbase;
friend class Net;
+// The following engine versions use sub opcodes from this version
+friend class ScummEngine_v71he;
+friend class ScummEngine_v72he;
+friend class ScummEngine_v90he;
+friend class ScummEngine_v80he;
+
protected:
ResType _heResType;
int32 _heResId;
byte _debugInputBuffer[256];
+ enum SubOpType {
+ // COMMON
+ SO_INIT = 0,
+ SO_ACTOR = 1,
+ SO_ANGLE = 2,
+ SO_ANIMATION = 3,
+ SO_ANIMATION_SPEED = 4,
+ SO_ARRAY = 5,
+ SO_AT = 6,
+ SO_AT_IMAGE = 7,
+ SO_BACKGROUND_OFF = 8,
+ SO_BACKGROUND_ON = 9,
+ SO_CAPTURE = 11,
+ SO_CENTER = 12,
+ SO_CHANNEL = 13,
+ SO_CHARSET_SET = 14, // SO_CHARSET
+ SO_CHARSET_COLOR = 15,
+ SO_CLASS = 16,
+ SO_CLIPPED = 18,
+ SO_CLOSE = 19,
+ SO_COLOR = 20,
+ SO_COLOR_LIST = 21,
+ SO_CONDITION = 22,
+ SO_COORD_2D = 23,
+ SO_COORD_3D = 24,
+ SO_COSTUME = 25,
+ SO_COUNT = 26,
+ SO_DEFAULT = 27,
+ SO_DELETE_POLYGON = 28,
+ SO_DRAW = 29,
+ SO_DRAW_XPOS = 30,
+ SO_DRAW_YPOS = 31,
+ SO_ERASE = 32,
+ SO_FIND = 33,
+ SO_FLOBJECT = 34,
+ SO_FORMATTED_STRING = 35,
+ SO_GENERAL_CLIP_RECT = 36,
+ SO_GENERAL_CLIP_STATE = 37,
+ SO_GROUP = 38,
+ SO_HEIGHT = 39,
+ SO_IMAGE = 40,
+ SO_BIT = 41, // SO_INT1
+ SO_INT = 42, // SO_INT16
+ SO_DWORD = 43, // SO_INT32
+ SO_NIBBLE = 44, // SO_INT4
+ SO_BYTE = 45, // SO_INT8
+ SO_LEFT = 46,
+ SO_LOAD = 47,
+ SO_MASK = 48,
+ SO_MOVE = 49,
+ SO_MUMBLE = 51,
+ SO_NAME = 52,
+ SO_NEW = 53,
+ SO_NEW_GENERAL_PROPERTY = 54,
+ SO_NOW = 55,
+ SO_OVERHEAD = 56,
+ SO_PALETTE = 57,
+ SO_POLY_TO_POLY = 58,
+ SO_PRIORITY = 59,
+ SO_PROPERTY = 60,
+ SO_RESTART = 61,
+ SO_ROOM = 62,
+ SO_ROOM_PALETTE = 63,
+ SO_SAVE = 64,
+ SO_SCALE = 65,
+ SO_SCRIPT = 66,
+ SO_SET_FLAGS = 67,
+ SO_SET_POLYGON = 68,
+ SO_SET_POLYGON_LOCAL = 69,
+ SO_SHADOW = 70,
+ SO_SOUND = 72,
+ SO_STATE = 73,
+ SO_STEP_DIST = 74,
+ SO_STEP_DIST_X = 75,
+ SO_STEP_DIST_Y = 76,
+ SO_STRING = 77,
+ SO_TALKIE = 78,
+ SO_TEXTSTRING = 79,
+ SO_TITLE_BAR = 80,
+ SO_TO = 81,
+ SO_UPDATE = 82,
+ SO_VARIABLE = 83,
+ SO_WIDTH = 84,
+ SO_XPOS = 85,
+ SO_YPOS = 86,
+ SO_ALWAYS_ZCLIP = 87,
+ SO_IMAGE_ZCLIP = 88,
+ SO_NEVER_ZCLIP = 89,
+ SO_BASEOP = 91,
+ SO_END = 92,
+
+ // ACTOR
+ SO_ACTOR_DEFAULT_CLIPPED = 128,
+ SO_ACTOR_INIT = 129,
+ SO_ACTOR_SOUNDS = 130,
+ SO_ACTOR_WIDTH = 131,
+ SO_ANIMATION_DEFAULT = 132,
+ SO_ELEVATION = 133,
+ SO_FOLLOW_BOXES = 134,
+ SO_IGNORE_BOXES = 135,
+ SO_ACTOR_IGNORE_TURNS_OFF = 136, // SO_IGNORE_TURNS_OFF
+ SO_ACTOR_IGNORE_TURNS_ON = 137, // SO_IGNORE_TURNS_ON
+ SO_INIT_ANIMATION = 138,
+ SO_STAND_ANIMATION = 139,
+ SO_TALK_ANIMATION = 140,
+ SO_TALK_COLOR = 141,
+ SO_TALK_CONDITION = 142,
+ SO_TEXT_OFFSET = 143,
+ SO_WALK_ANIMATION = 144,
+
+ // ARRAY
+ SO_ASSIGN_2DIM_LIST = 128,
+ SO_ASSIGN_INT_LIST = 129,
+ SO_COMPLEX_ARRAY_ASSIGNMENT = 130,
+ SO_COMPLEX_ARRAY_COPY_OPERATION = 131,
+ SO_COMPLEX_ARRAY_MATH_OPERATION = 132,
+ SO_RANGE_ARRAY_ASSIGNMENT = 133,
+ SO_SORT = 134,
+ SO_UNDIM_ARRAY = 135,
+
+ // HEAP
+ SO_CLEAR_HEAP = 128,
+ SO_PRELOAD_FLUSH = 129,
+ SO_LOCK = 132,
+ SO_NUKE = 133,
+ SO_OFF_HEAP = 134,
+ SO_ON_HEAP = 135,
+ SO_PRELOAD = 136,
+ SO_UNLOCK = 137,
+
+ // IMAGE
+ SO_FONT_CREATE = 128,
+ SO_FONT_END = 129,
+ SO_FONT_RENDER = 130,
+ SO_FONT_START = 131,
+ SO_HISTOGRAM = 132,
+ SO_RENDER_ELLIPSE = 133,
+ SO_RENDER_FLOOD_FILL = 134,
+ SO_RENDER_INTO_IMAGE = 135,
+ SO_RENDER_LINE = 136,
+ SO_RENDER_PIXEL = 137,
+ SO_RENDER_RECTANGLE = 138,
+
+ // CURSOR
+ SO_CURSOR_IMAGE = 128,
+ SO_CURSOR_COLOR_IMAGE = 129,
+ SO_CURSOR_COLOR_PAL_IMAGE = 130,
+ SO_CURSOR_HOTSPOT = 132,
+ SO_CURSOR_ON = 134,
+ SO_CURSOR_OFF = 135,
+ SO_CURSOR_SOFT_ON = 136,
+ SO_CURSOR_SOFT_OFF = 137,
+ SO_USERPUT_ON = 139,
+ SO_USERPUT_OFF = 140,
+ SO_USERPUT_SOFT_ON = 141,
+ SO_USERPUT_SOFT_OFF = 142,
+
+ // ROOM
+ SO_OBJECT_ORDER = 129,
+ SO_ROOM_COPY_PALETTE = 130,
+ SO_ROOM_FADE = 131,
+ SO_ROOM_INTENSITY = 132,
+ SO_ROOM_INTENSITY_RGB = 133,
+ SO_ROOM_NEW_PALETTE = 134,
+ SO_ROOM_PALETTE_IN_ROOM = 135,
+ SO_ROOM_SAVEGAME = 136,
+ SO_ROOM_SAVEGAME_BY_NAME = 137,
+ SO_ROOM_SCREEN = 138,
+ SO_ROOM_SCROLL = 139,
+
+ // SYSTEM
+ SO_FLUSH_OBJECT_DRAW_QUEUE = 128,
+ SO_PAUSE_TITLE = 131,
+ SO_QUIT = 132,
+ SO_QUIT_QUIT = 133,
+ SO_RESTART_STRING = 134,
+ SO_START_SYSTEM_STRING = 135,
+ SO_UPDATE_SCREEN = 136,
+
+ // SOUND
+ SO_SOUND_ADD = 128,
+ SO_SOUND_CHANNEL = 129,
+ SO_SOUND_FREQUENCY = 130,
+ SO_SOUND_LOOPING = 131,
+ SO_SOUND_MODIFY = 132,
+ SO_SOUND_PAN = 133,
+ SO_SOUND_START = 134,
+ SO_SOUND_SOFT = 135,
+ SO_SOUND_VOLUME = 136,
+
+ // WAIT
+ SO_WAIT_FOR_ACTOR = 128,
+ SO_WAIT_FOR_CAMERA = 129,
+ SO_WAIT_FOR_MESSAGE = 130,
+ SO_WAIT_FOR_SENTENCE = 131,
+ };
public:
Moonbase *_moonbase;
diff --git a/engines/scumm/he/script_v100he.cpp b/engines/scumm/he/script_v100he.cpp
index 5431f84c153..3dee0a18b3f 100644
--- a/engines/scumm/he/script_v100he.cpp
+++ b/engines/scumm/he/script_v100he.cpp
@@ -340,7 +340,7 @@ void ScummEngine_v100he::o100_actorOps() {
byte string[256];
byte subOp = fetchScriptByte();
- if (subOp == 129) {
+ if (subOp == SO_ACTOR_INIT) {
_curActor = pop();
return;
}
@@ -350,94 +350,94 @@ void ScummEngine_v100he::o100_actorOps() {
return;
switch (subOp) {
- case 0:
+ case SO_INIT:
// freddicove Ru Updated
// FIXME: check stack parameters
debug(0,"o100_actorOps: case 0 UNHANDLED");
break;
- case 3: // SO_ANIMATION
+ case SO_ANIMATION:
pop();
pop();
pop();
break;
- case 4: // SO_ANIMATION_SPEED
+ case SO_ANIMATION_SPEED:
a->setAnimSpeed(pop());
break;
- case 6: // SO_AT
+ case SO_AT:
j = pop();
i = pop();
a->putActor(i, j);
break;
- case 8: // SO_BACKGROUND_OFF
+ case SO_BACKGROUND_OFF:
a->_drawToBackBuf = false;
a->_needRedraw = true;
a->_needBgReset = true;
break;
- case 9: // SO_BACKGROUND_ON
+ case SO_BACKGROUND_ON:
a->drawActorToBackBuf(a->getPos().x, a->getPos().y);
break;
- case 14: // SO_CHARSET
+ case SO_CHARSET_SET:
a->_charset = pop();
break;
- case 18: // SO_CLIPPED
+ case SO_CLIPPED:
a->_clipOverride.bottom = pop();
a->_clipOverride.right = pop();
a->_clipOverride.top = pop();
a->_clipOverride.left = pop();
adjustRect(a->_clipOverride);
break;
- case 22: // SO_CONDITION
+ case SO_CONDITION:
k = getStackList(args, ARRAYSIZE(args));
for (i = 0; i < k; ++i) {
a->setUserCondition(args[i] & 0x7F, args[i] & 0x80);
}
break;
- case 25: // SO_COSTUME
+ case SO_COSTUME:
a->setActorCostume(pop());
break;
- case 27: // SO_DEFAULT
+ case SO_DEFAULT:
a->initActor(0);
break;
- case 32: // SO_ERASE
+ case SO_ERASE:
k = pop();
a->setHEFlag(1, k);
break;
- case 52: // SO_ACTOR_NAME
+ case SO_NAME:
copyScriptString(string, sizeof(string));
loadPtrToResource(rtActorName, a->_number, string);
break;
- case 53: // SO_ACTOR_NEW
+ case SO_NEW:
a->initActor(2);
break;
- case 57: // SO_PALETTE
+ case SO_PALETTE:
j = pop();
i = pop();
assertRange(0, i, 255, "palette slot");
a->remapActorPaletteColor(i, j);
a->_needRedraw = true;
break;
- case 59: // SO_PRIORITY
+ case SO_PRIORITY:
a->_layer = pop();
a->_needRedraw = true;
break;
- case 63: // SO_ROOM_PALETTE
+ case SO_ROOM_PALETTE:
a->_hePaletteNum = pop();
a->_needRedraw = true;
break;
- case 65: // SO_SCALE
+ case SO_SCALE:
i = pop();
a->setScale(i, i);
break;
- case 70: // SO_SHADOW
+ case SO_SHADOW:
a->_heXmapNum = pop();
a->_needRedraw = true;
break;
- case 74: // SO_STEP_DIST
+ case SO_STEP_DIST:
j = pop();
i = pop();
a->setActorWalkSpeed(i, j);
break;
- case 78: // SO_TALKIE
+ case SO_TALKIE:
{
copyScriptString(string, sizeof(string));
int slot = pop();
@@ -450,84 +450,84 @@ void ScummEngine_v100he::o100_actorOps() {
a->_heTalkQueue[slot].color = a->_talkColor;
}
break;
- case 83: // SO_ACTOR_VARIABLE
+ case SO_VARIABLE:
i = pop();
a->setAnimVar(pop(), i);
break;
- case 87: // SO_ALWAYS_ZCLIP
+ case SO_ALWAYS_ZCLIP:
a->_forceClip = pop();
break;
- case 89: // SO_NEVER_ZCLIP
+ case SO_NEVER_ZCLIP:
a->_forceClip = 0;
break;
- case 128: // SO_ACTOR_DEFAULT_CLIPPED
+ case SO_ACTOR_DEFAULT_CLIPPED:
_actorClipOverride.bottom = pop();
_actorClipOverride.right = pop();
_actorClipOverride.top = pop();
_actorClipOverride.left = pop();
adjustRect(_actorClipOverride);
break;
- case 130: // SO_SOUND
+ case SO_ACTOR_SOUNDS:
k = getStackList(args, ARRAYSIZE(args));
for (i = 0; i < k; i++)
a->_sound[i] = args[i];
break;
- case 131: // SO_ACTOR_WIDTH
+ case SO_ACTOR_WIDTH:
a->_width = pop();
break;
- case 132: // SO_ANIMATION_DEFAULT
+ case SO_ANIMATION_DEFAULT:
a->_initFrame = 1;
a->_walkFrame = 2;
a->_standFrame = 3;
a->_talkStartFrame = 4;
a->_talkStopFrame = 5;
break;
- case 133: // SO_ELEVATION
+ case SO_ELEVATION:
a->setElevation(pop());
break;
- case 134: // SO_FOLLOW_BOXES
+ case SO_FOLLOW_BOXES:
a->_ignoreBoxes = 0;
a->_forceClip = 0;
if (a->isInCurrentRoom())
a->putActor();
break;
- case 135: // SO_IGNORE_BOXES
+ case SO_IGNORE_BOXES:
a->_ignoreBoxes = 1;
a->_forceClip = 0;
if (a->isInCurrentRoom())
a->putActor();
break;
- case 136: // SO_ACTOR_IGNORE_TURNS_OFF
+ case SO_ACTOR_IGNORE_TURNS_OFF:
a->_ignoreTurns = false;
break;
- case 137: // SO_ACTOR_IGNORE_TURNS_ON
+ case SO_ACTOR_IGNORE_TURNS_ON:
a->_ignoreTurns = true;
break;
- case 138: // SO_INIT_ANIMATION
+ case SO_INIT_ANIMATION:
a->_initFrame = pop();
break;
- case 139: // SO_STAND_ANIMATION
+ case SO_STAND_ANIMATION:
a->_standFrame = pop();
break;
- case 140: // SO_TALK_ANIMATION
+ case SO_TALK_ANIMATION:
a->_talkStopFrame = pop();
a->_talkStartFrame = pop();
break;
- case 141: // SO_TALK_COLOR
+ case SO_TALK_COLOR:
a->_talkColor = pop();
break;
- case 142: // SO_TALK_CONDITION
+ case SO_TALK_CONDITION:
k = pop();
if (k == 0)
k = _rnd.getRandomNumberRng(1, 10);
a->_heNoTalkAnimation = 1;
a->setTalkCondition(k);
break;
- case 143: // SO_TEXT_OFFSET
+ case SO_TEXT_OFFSET:
a->_talkPosY = pop();
a->_talkPosX = pop();
break;
- case 144: // SO_WALK_ANIMATION
+ case SO_WALK_ANIMATION:
a->_walkFrame = pop();
break;
default:
@@ -548,20 +548,20 @@ void ScummEngine_v100he::o100_arrayOps() {
debug(9,"o100_arrayOps: array %d case %d", array, subOp);
switch (subOp) {
- case 35: // SO_FORMATTED_STRING
+ case SO_FORMATTED_STRING:
decodeScriptString(string);
len = resStrLen(string);
data = defineArray(array, kStringArray, 0, 0, 0, len);
memcpy(data, string, len);
break;
- case 77: // SO_STRING
+ case SO_STRING:
copyScriptString(string, sizeof(string));
len = resStrLen(string);
data = defineArray(array, kStringArray, 0, 0, 0, len);
memcpy(data, string, len);
break;
- case 128: // SO_ASSIGN_2DIM_LIST
+ case SO_ASSIGN_2DIM_LIST:
len = getStackList(list, ARRAYSIZE(list));
id = readVar(array);
if (id == 0)
@@ -571,7 +571,7 @@ void ScummEngine_v100he::o100_arrayOps() {
writeArray(array, c, len, list[len]);
}
break;
- case 129: // SO_ASSIGN_INT_LIST
+ case SO_ASSIGN_INT_LIST:
b = pop();
c = pop();
id = readVar(array);
@@ -582,7 +582,7 @@ void ScummEngine_v100he::o100_arrayOps() {
writeArray(array, 0, b + c, pop());
}
break;
- case 130: // SO_COMPLEX_ARRAY_ASSIGNMENT
+ case SO_COMPLEX_ARRAY_ASSIGNMENT:
len = getStackList(list, ARRAYSIZE(list));
dim1end = pop();
dim1start = pop();
@@ -606,7 +606,7 @@ void ScummEngine_v100he::o100_arrayOps() {
dim2start++;
}
break;
- case 131: // SO_COMPLEX_ARRAY_COPY_OPERATION
+ case SO_COMPLEX_ARRAY_COPY_OPERATION:
{
int a2_dim1end = pop();
int a2_dim1start = pop();
@@ -623,7 +623,7 @@ void ScummEngine_v100he::o100_arrayOps() {
copyArray(array, a1_dim2start, a1_dim2end, a1_dim1start, a1_dim1end, array2, a2_dim2start, a2_dim2end, a2_dim1start, a2_dim1end);
}
break;
- case 132: // SO_COMPLEX_ARRAY_MATH_OPERATION
+ case SO_COMPLEX_ARRAY_MATH_OPERATION:
{
// Used by room 2 script 2180 in Moonbase Commander (modify-line-of-sight)
int array2 = fetchScriptWord();
@@ -695,7 +695,7 @@ void ScummEngine_v100he::o100_arrayOps() {
}
break;
}
- case 133: // SO_RANGE_ARRAY_ASSIGNMENT
+ case SO_RANGE_ARRAY_ASSIGNMENT:
b = pop();
c = pop();
dim1end = pop();
@@ -770,22 +770,22 @@ void ScummEngine_v100he::o100_dim2dimArray() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 41: // SO_BIT_ARRAY
+ case SO_BIT:
data = kBitArray;
break;
- case 42: // SO_INT_ARRAY
+ case SO_INT:
data = kIntArray;
break;
- case 43:
+ case SO_DWORD:
data = kDwordArray;
break;
- case 44: // SO_NIBBLE_ARRAY
+ case SO_NIBBLE:
data = kNibbleArray;
break;
- case 45: // SO_BYTE_ARRAY
+ case SO_BYTE:
data = kByteArray;
break;
- case 77: // SO_STRING_ARRAY
+ case SO_STRING:
data = kStringArray;
break;
default:
@@ -803,25 +803,25 @@ void ScummEngine_v100he::o100_dimArray() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 41: // SO_BIT_ARRAY
+ case SO_BIT:
data = kBitArray;
break;
- case 42: // SO_INT_ARRAY
+ case SO_INT:
data = kIntArray;
break;
- case 43:
+ case SO_DWORD:
data = kDwordArray;
break;
- case 44: // SO_NIBBLE_ARRAY
+ case SO_NIBBLE:
data = kNibbleArray;
break;
- case 45: // SO_BYTE_ARRAY
+ case SO_BYTE:
data = kByteArray;
break;
- case 77: // SO_STRING_ARRAY
+ case SO_STRING:
data = kStringArray;
break;
- case 135: // SO_UNDIM_ARRAY
+ case SO_UNDIM_ARRAY:
nukeArray(fetchScriptWord());
return;
default:
@@ -844,13 +844,13 @@ void ScummEngine_v100he::o100_drawLine() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 1:
+ case SO_ACTOR:
drawLine(x1, y1, x, unk1, unk2, 2, id);
break;
- case 20:
+ case SO_COLOR:
drawLine(x1, y1, x, unk1, unk2, 1, id);
break;
- case 40:
+ case SO_IMAGE:
drawLine(x1, y1, x, unk1, unk2, 3, id);
break;
default:
@@ -864,17 +864,17 @@ void ScummEngine_v100he::o100_drawObject() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 6:
+ case SO_AT:
state = 1;
y = pop();
x = pop();
break;
- case 7:
+ case SO_AT_IMAGE:
state = pop();
y = pop();
x = pop();
break;
- case 40:
+ case SO_IMAGE:
state = pop();
if (state == 0)
state = 1;
@@ -904,7 +904,7 @@ void ScummEngine_v100he::o100_floodFill() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 0:
+ case SO_INIT:
_floodFillParams.reset();
_floodFillParams.box.left = 0;
_floodFillParams.box.top = 0;
@@ -912,24 +912,24 @@ void ScummEngine_v100he::o100_floodFill() {
_floodFillParams.box.bottom = 479;
adjustRect(_floodFillParams.box);
break;
- case 6:
+ case SO_AT:
_floodFillParams.y = pop();
_floodFillParams.x = pop();
break;
- case 18:
+ case SO_CLIPPED:
_floodFillParams.box.bottom = pop();
_floodFillParams.box.right = pop();
_floodFillParams.box.top = pop();
_floodFillParams.box.left = pop();
adjustRect(_floodFillParams.box);
break;
- case 20:
+ case SO_COLOR:
_floodFillParams.flags = pop();
break;
- case 67:
+ case SO_SET_FLAGS:
pop();
break;
- case 92:
+ case SO_END:
floodFill(&_floodFillParams, this);
break;
default:
@@ -944,10 +944,10 @@ void ScummEngine_v100he::o100_setSpriteGroupInfo() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 0: // SO_INIT
+ case SO_INIT:
_curSpriteGroupId = pop();
break;
- case 6: // SO_MOVE
+ case SO_AT:
value2 = pop();
value1 = pop();
if (!_curSpriteGroupId)
@@ -955,7 +955,7 @@ void ScummEngine_v100he::o100_setSpriteGroupInfo() {
_sprite->setGroupPosition(_curSpriteGroupId, value1, value2);
break;
- case 18: // SO_CLIPPED
+ case SO_CLIPPED:
value4 = pop();
value3 = pop();
value2 = pop();
@@ -965,7 +965,7 @@ void ScummEngine_v100he::o100_setSpriteGroupInfo() {
_sprite->setGroupBounds(_curSpriteGroupId, value1, value2, value3, value4);
break;
- case 38: // SO_GROUP
+ case SO_GROUP:
type = pop() - 1;
switch (type) {
case 0: // SPRGRPOP_MOVE
@@ -1028,14 +1028,14 @@ void ScummEngine_v100he::o100_setSpriteGroupInfo() {
error("o100_setSpriteGroupInfo subOp 38: Unknown case %d", subOp);
}
break;
- case 40: // SO_IMAGE
+ case SO_IMAGE:
value1 = pop();
if (!_curSpriteGroupId)
break;
_sprite->setGroupImage(_curSpriteGroupId, value1);
break;
- case 49: // SO_AT
+ case SO_MOVE:
value2 = pop();
value1 = pop();
if (!_curSpriteGroupId)
@@ -1043,28 +1043,28 @@ void ScummEngine_v100he::o100_setSpriteGroupInfo() {
_sprite->moveGroup(_curSpriteGroupId, value1, value2);
break;
- case 52: // SO_NAME
+ case SO_NAME:
copyScriptString(string, sizeof(string));
break;
- case 53: // SO_NEW
+ case SO_NEW:
if (!_curSpriteGroupId)
break;
_sprite->resetGroup(_curSpriteGroupId);
break;
- case 54: // SO_NEW_GENERAL_PROPERTY
+ case SO_NEW_GENERAL_PROPERTY:
// dummy case
pop();
pop();
break;
- case 59: // SO_PRIORITY
+ case SO_PRIORITY:
value1 = pop();
if (!_curSpriteGroupId)
break;
_sprite->setGroupPriority(_curSpriteGroupId, value1);
break;
- case 60: // SO_PROPERTY
+ case SO_PROPERTY:
type = pop();
value1 = pop();
if (!_curSpriteGroupId)
@@ -1087,7 +1087,7 @@ void ScummEngine_v100he::o100_setSpriteGroupInfo() {
error("o100_setSpriteGroupInfo subOp 60: Unknown case %d", subOp);
}
break;
- case 89: // SO_NEVER_ZCLIP
+ case SO_NEVER_ZCLIP:
if (!_curSpriteGroupId)
break;
@@ -1104,23 +1104,23 @@ void ScummEngine_v100he::o100_resourceRoutines() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 14:
+ case SO_CHARSET_SET:
_heResType = rtCharset;
_heResId = pop();
break;
- case 25:
+ case SO_COSTUME:
_heResType = rtCostume;
_heResId = pop();
break;
- case 34:
+ case SO_FLOBJECT:
_heResType = rtFlObject;
_heResId = pop();
break;
- case 40:
+ case SO_IMAGE:
_heResType = rtImage;
_heResId = pop();
break;
- case 47:
+ case SO_LOAD:
if (_heResType == rtFlObject) {
room = getObjectRoom(_heResId);
loadFlObject(_heResId, room);
@@ -1130,26 +1130,26 @@ void ScummEngine_v100he::o100_resourceRoutines() {
ensureResourceLoaded(_heResType, _heResId);
}
break;
- case 62:
+ case SO_ROOM:
_heResType = rtRoom;
_heResId = pop();
break;
- case 66:
+ case SO_SCRIPT:
_heResType = rtScript;
_heResId = pop();
break;
- case 72:
+ case SO_SOUND:
_heResType = rtSound;
_heResId = pop();
break;
- case 128:
+ case SO_CLEAR_HEAP:
// TODO: Clear Heap
warning("STUB: o100_resourceRoutines: clear Heap");
break;
- case 129:
+ case SO_PRELOAD_FLUSH:
// Dummy case
break;
- case 132:
+ case SO_LOCK:
if (_heResType == rtScript && _heResId >= _numGlobalScripts)
break;
@@ -1162,23 +1162,23 @@ void ScummEngine_v100he::o100_resourceRoutines() {
_res->lock(_heResType, _heResId);
}
break;
- case 133:
+ case SO_NUKE:
if (_heResType == rtCharset)
nukeCharset(_heResId);
else
_res->nukeResource(_heResType, _heResId);
break;
- case 134:
- case 135:
+ case SO_OFF_HEAP:
+ case SO_ON_HEAP:
// Heap related
break;
- case 136:
+ case SO_PRELOAD:
if (_heResType == rtScript && _heResId >= _numGlobalScripts)
break;
//queueLoadResource(_heResType, _heResId);
break;
- case 137:
+ case SO_UNLOCK:
if (_heResType == rtScript && _heResId >= _numGlobalScripts)
break;
@@ -1202,7 +1202,7 @@ void ScummEngine_v100he::o100_wizImageOps() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 0:
+ case SO_INIT:
_wizParams.img.resNum = pop();
_wizParams.processMode = 0;
_wizParams.processFlags = 0;
@@ -1213,21 +1213,21 @@ void ScummEngine_v100he::o100_wizImageOps() {
_wizParams.spriteId = 0;
_wizParams.spriteGroup = 0;
break;
- case 2:
+ case SO_ANGLE:
_wizParams.processFlags |= kWPFRotate;
_wizParams.angle = pop();
break;
- case 6:
- case 132:
+ case SO_AT:
+ case SO_CURSOR_HOTSPOT:
_wizParams.processFlags |= kWPFSetPos;
_wizParams.img.y1 = pop();
_wizParams.img.x1 = pop();
break;
- case 7:
+ case SO_AT_IMAGE:
_wizParams.processFlags |= kWPFMaskImg;
_wizParams.sourceImage = pop();
break;
- case 11:
+ case SO_CAPTURE:
_wizParams.processFlags |= kWPFClipBox | 0x100;
_wizParams.processMode = 2;
_wizParams.box.bottom = pop();
@@ -1237,7 +1237,7 @@ void ScummEngine_v100he::o100_wizImageOps() {
_wizParams.compType = pop();
adjustRect(_wizParams.box);
break;
- case 18:
+ case SO_CLIPPED:
_wizParams.processFlags |= kWPFClipBox;
_wizParams.box.bottom = pop();
_wizParams.box.right = pop();
@@ -1245,7 +1245,7 @@ void ScummEngine_v100he::o100_wizImageOps() {
_wizParams.box.left = pop();
adjustRect(_wizParams.box);
break;
- case 21:
+ case SO_COLOR_LIST:
b = pop();
a = pop();
_wizParams.processFlags |= kWPFRemapPalette;
@@ -1259,37 +1259,37 @@ void ScummEngine_v100he::o100_wizImageOps() {
++_wizParams.remapNum;
}
break;
- case 29:
+ case SO_DRAW:
_wizParams.processMode = 1;
break;
- case 36:
+ case SO_GENERAL_CLIP_RECT:
_wizParams.box.bottom = pop();
_wizParams.box.right = pop();
_wizParams.box.top = pop();
_wizParams.box.left = pop();
break;
- case 37:
+ case SO_GENERAL_CLIP_STATE:
// Dummy case
pop();
break;
- case 39:
+ case SO_HEIGHT:
_wizParams.processFlags |= kWPFUseDefImgHeight;
_wizParams.resDefImgH = pop();
break;
- case 47:
+ case SO_LOAD:
_wizParams.processFlags |= kWPFUseFile;
_wizParams.processMode = 3;
copyScriptString(_wizParams.filename, sizeof(_wizParams.filename));
break;
- case 53:
+ case SO_NEW:
_wizParams.processMode = 8;
break;
- case 54:
+ case SO_NEW_GENERAL_PROPERTY:
_wizParams.processFlags |= kWPFParams;
_wizParams.params1 = pop();
_wizParams.params2 = pop();
break;
- case 55:
+ case SO_NOW:
_wizParams.img.flags = pop();
_wizParams.img.state = pop();
_wizParams.img.y1 = pop();
@@ -1299,53 +1299,53 @@ void ScummEngine_v100he::o100_wizImageOps() {
_wizParams.img.resNum = pop();
_wiz->displayWizImage(&_wizParams.img);
break;
- case 57:
+ case SO_PALETTE:
_wizParams.processFlags |= kWPFPaletteNum;
_wizParams.img.palette = pop();
break;
- case 58:
+ case SO_POLY_TO_POLY:
_wizParams.processFlags |= 0x1000 | 0x100 | 0x2;
_wizParams.processMode = 7;
_wizParams.polygonId2 = pop();
_wizParams.polygonId1 = pop();
_wizParams.compType = pop();
break;
- case 64:
+ case SO_SAVE:
_wizParams.processFlags |= kWPFUseFile;
_wizParams.processMode = 4;
copyScriptString(_wizParams.filename, sizeof(_wizParams.filename));
_wizParams.fileWriteMode = pop();
break;
- case 65:
+ case SO_SCALE:
_wizParams.processFlags |= kWPFScaled;
_wizParams.scale = pop();
break;
- case 67:
+ case SO_SET_FLAGS:
_wizParams.processFlags |= kWPFNewFlags;
_wizParams.img.flags |= pop();
break;
- case 68:
+ case SO_SET_POLYGON:
_wizParams.processFlags |= kWPFNewFlags | kWPFSetPos | 2;
_wizParams.img.flags |= kWIFIsPolygon;
_wizParams.polygonId1 = _wizParams.img.y1 = _wizParams.img.x1 = pop();
break;
- case 70:
+ case SO_SHADOW:
_wizParams.processFlags |= kWPFShadow;
_wizParams.img.shadow = pop();
break;
- case 73:
+ case SO_STATE:
_wizParams.processFlags |= kWPFNewState;
_wizParams.img.state = pop();
break;
- case 84:
+ case SO_WIDTH:
_wizParams.processFlags |= kWPFUseDefImgWidth;
_wizParams.resDefImgW = pop();
break;
- case 92:
+ case SO_END:
if (_wizParams.img.resNum)
_wiz->processWizImage(&_wizParams);
break;
- case 128: // Font create
+ case SO_FONT_CREATE: // Font create
_wizParams.processMode = 15;
_wizParams.fontProperties.bgColor = pop();
_wizParams.fontProperties.fgColor = pop();
@@ -1353,19 +1353,19 @@ void ScummEngine_v100he::o100_wizImageOps() {
_wizParams.fontProperties.style = pop();
copyScriptString(_wizParams.fontProperties.fontName, sizeof(_wizParams.fontProperties.fontName));
break;
- case 129:
+ case SO_FONT_END:
_wizParams.processMode = 14;
break;
- case 130: // Font render
+ case SO_FONT_RENDER: // Font render
_wizParams.processMode = 16;
_wizParams.fontProperties.yPos = pop();
_wizParams.fontProperties.xPos = pop();
copyScriptString(_wizParams.fontProperties.string, sizeof(_wizParams.fontProperties.string));
break;
- case 131:
+ case SO_FONT_START:
_wizParams.processMode = 13;
break;
- case 133: // Render ellipse
+ case SO_RENDER_ELLIPSE: // Render ellipse
_wizParams.processMode = 17;
_wizParams.ellipseProperties.color = pop();
_wizParams.ellipseProperties.lod = pop();
@@ -1376,7 +1376,7 @@ void ScummEngine_v100he::o100_wizImageOps() {
_wizParams.ellipseProperties.py = pop();
_wizParams.ellipseProperties.px = pop();
break;
- case 134:
+ case SO_RENDER_FLOOD_FILL:
_wizParams.processFlags |= kWPFFillColor | kWPFClipBox2;
_wizParams.processMode = 12;
_wizParams.fillColor = pop();
@@ -1384,11 +1384,11 @@ void ScummEngine_v100he::o100_wizImageOps() {
_wizParams.box2.left = _wizParams.box2.right = pop();
adjustRect(_wizParams.box2);
break;
- case 135:
+ case SO_RENDER_INTO_IMAGE:
_wizParams.processFlags |= kWPFDstResNum;
_wizParams.dstResNum = pop();
break;
- case 136:
+ case SO_RENDER_LINE:
_wizParams.processFlags |= kWPFFillColor | kWPFClipBox2;
_wizParams.processMode = 10;
_wizParams.fillColor = pop();
@@ -1398,7 +1398,7 @@ void ScummEngine_v100he::o100_wizImageOps() {
_wizParams.box2.left = pop();
adjustRect(_wizParams.box2);
break;
- case 137:
+ case SO_RENDER_PIXEL:
_wizParams.processFlags |= kWPFFillColor | kWPFClipBox2;
_wizParams.processMode = 11;
_wizParams.fillColor = pop();
@@ -1406,7 +1406,7 @@ void ScummEngine_v100he::o100_wizImageOps() {
_wizParams.box2.left = _wizParams.box2.right = pop();
adjustRect(_wizParams.box2);
break;
- case 138:
+ case SO_RENDER_RECTANGLE:
_wizParams.processFlags |= kWPFFillColor | kWPFClipBox2;
_wizParams.processMode = 9;
_wizParams.fillColor = pop();
@@ -1427,22 +1427,22 @@ void ScummEngine_v100he::o100_dim2dim2Array() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 41: // SO_BIT_ARRAY
+ case SO_BIT:
data = kBitArray;
break;
- case 42: // SO_INT_ARRAY
+ case SO_INT:
data = kIntArray;
break;
- case 43:
+ case SO_DWORD:
data = kDwordArray;
break;
- case 44: // SO_NIBBLE_ARRAY
+ case SO_NIBBLE:
data = kNibbleArray;
break;
- case 45: // SO_BYTE_ARRAY
+ case SO_BYTE:
data = kByteArray;
break;
- case 77: // SO_STRING_ARRAY
+ case SO_STRING:
data = kStringArray;
break;
default:
@@ -1474,13 +1474,13 @@ void ScummEngine_v100he::o100_redim2dimArray() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 42:
+ case SO_INT:
redimArray(fetchScriptWord(), a, b, c, d, kIntArray);
break;
- case 43:
+ case SO_DWORD:
redimArray(fetchScriptWord(), a, b, c, d, kDwordArray);
break;
- case 45:
+ case SO_BYTE:
redimArray(fetchScriptWord(), a, b, c, d, kByteArray);
break;
default:
@@ -1494,10 +1494,10 @@ void ScummEngine_v100he::o100_paletteOps() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 0:
+ case SO_INIT:
_hePaletteNum = pop();
break;
- case 20:
+ case SO_COLOR:
e = pop();
d = pop();
c = pop();
@@ -1509,38 +1509,38 @@ void ScummEngine_v100he::o100_paletteOps() {
}
}
break;
- case 25:
+ case SO_COSTUME:
a = pop();
if (_hePaletteNum != 0) {
setHEPaletteFromCostume(_hePaletteNum, a);
}
break;
- case 40:
+ case SO_IMAGE:
b = pop();
a = pop();
if (_hePaletteNum != 0) {
setHEPaletteFromImage(_hePaletteNum, a, b);
}
break;
- case 53:
+ case SO_NEW:
if (_hePaletteNum != 0) {
restoreHEPalette(_hePaletteNum);
}
break;
- case 57:
+ case SO_PALETTE:
a = pop();
if (_hePaletteNum != 0) {
copyHEPalette(_hePaletteNum, a);
}
break;
- case 63:
+ case SO_ROOM_PALETTE:
b = pop();
a = pop();
if (_hePaletteNum != 0) {
setHEPaletteFromRoom(_hePaletteNum, a, b);
}
break;
- case 81:
+ case SO_TO:
c = pop();
b = pop();
a = pop();
@@ -1550,7 +1550,7 @@ void ScummEngine_v100he::o100_paletteOps() {
}
}
break;
- case 92:
+ case SO_END:
_hePaletteNum = 0;
break;
default:
@@ -1591,13 +1591,13 @@ void ScummEngine_v100he::o100_redimArray() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 42:
+ case SO_INT:
redimArray(fetchScriptWord(), 0, newX, 0, newY, kIntArray);
break;
- case 43:
+ case SO_DWORD:
redimArray(fetchScriptWord(), 0, newX, 0, newY, kDwordArray);
break;
- case 45:
+ case SO_BYTE:
redimArray(fetchScriptWord(), 0, newX, 0, newY, kByteArray);
break;
default:
@@ -1611,7 +1611,7 @@ void ScummEngine_v100he::o100_roomOps() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 63: // SO_ROOM_PALETTE
+ case SO_ROOM_PALETTE:
d = pop();
c = pop();
b = pop();
@@ -1619,13 +1619,13 @@ void ScummEngine_v100he::o100_roomOps() {
setPalColor(d, a, b, c);
break;
- case 129: // SO_OBJECT_ORDER
+ case SO_OBJECT_ORDER:
b = pop();
a = pop();
swapObjects(a, b);
break;
- case 130: // SO_ROOM_COPY_PALETTE
+ case SO_ROOM_COPY_PALETTE:
a = pop();
b = pop();
if (_game.features & GF_16BIT_COLOR)
@@ -1634,19 +1634,19 @@ void ScummEngine_v100he::o100_roomOps() {
copyPalColor(a, b);
break;
- case 131: // SO_ROOM_FADE
+ case SO_ROOM_FADE:
// Defaults to 1 but doesn't use fade effects
a = pop();
break;
- case 132: // SO_ROOM_INTENSITY
+ case SO_ROOM_INTENSITY:
c = pop();
b = pop();
a = pop();
darkenPalette(a, a, a, b, c);
break;
- case 133: // SO_RGB_ROOM_INTENSITY
+ case SO_ROOM_INTENSITY_RGB:
e = pop();
d = pop();
c = pop();
@@ -1655,24 +1655,24 @@ void ScummEngine_v100he::o100_roomOps() {
darkenPalette(a, b, c, d, e);
break;
- case 134: // SO_ROOM_NEW_PALETTE
+ case SO_ROOM_NEW_PALETTE:
a = pop();
setCurrentPalette(a);
break;
- case 135: // SO_ROOM_PALETTE_IN_ROOM
+ case SO_ROOM_PALETTE_IN_ROOM:
b = pop();
a = pop();
setRoomPalette(a, b);
break;
- case 136: // SO_ROOM_SAVEGAME
+ case SO_ROOM_SAVEGAME:
_saveTemporaryState = true;
_saveLoadSlot = pop();
_saveLoadFlag = pop();
break;
- case 137: // SO_ROOM_SAVEGAME_BY_NAME
+ case SO_ROOM_SAVEGAME_BY_NAME:
byte buffer[256];
copyScriptString((byte *)buffer, sizeof(buffer));
@@ -1685,13 +1685,13 @@ void ScummEngine_v100he::o100_roomOps() {
_saveTemporaryState = true;
break;
- case 138: // SO_ROOM_SCREEN
+ case SO_ROOM_SCREEN:
b = pop();
a = pop();
initScreens(a, _screenHeight);
break;
- case 139: // SO_ROOM_SCROLL
+ case SO_ROOM_SCROLL:
b = pop();
a = pop();
if (a < (_screenWidth / 2))
@@ -1718,7 +1718,7 @@ void ScummEngine_v100he::o100_setSystemMessage() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 80: // Set Window Caption
+ case SO_TITLE_BAR: // Set Window Caption
// TODO: The 'name' string can contain non-ASCII data. This can lead to
// problems, because the encoding used for "name" is not clear,
//
@@ -1727,7 +1727,7 @@ void ScummEngine_v100he::o100_setSystemMessage() {
// - Try to translate the text to UTF-32.
//_system->setWindowCaption(Common::U32String((const char *)name));
break;
- case 131: // Set Version
+ case SO_PAUSE_TITLE: // Set Version
debug(1,"o100_setSystemMessage: (%d) %s", subOp, name);
break;
default:
@@ -1742,57 +1742,57 @@ void ScummEngine_v100he::o100_soundOps() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 6: // SO_AT
+ case SO_AT:
_heSndFlags |= HE_SND_OFFSET;
_heSndOffset = pop();
break;
- case 47: // SO_LOAD
+ case SO_LOAD:
copyScriptString(filename, sizeof(filename));
_heSndSoundId = pop();
if (_heSndSoundId)
debug(0, "Load sound %d from file %s\n", _heSndSoundId, filename);
break;
- case 55: // SO_NOW
+ case SO_NOW:
_heSndFlags |= HE_SND_QUICK_START;
break;
- case 83: // SO_VARIABLE
+ case SO_VARIABLE:
value = pop();
var = pop();
_heSndSoundId = pop();
((SoundHE *)_sound)->setSoundVar(_heSndSoundId, var, value);
break;
- case 92: // SO_END
+ case SO_END:
_sound->addSoundToQueue(_heSndSoundId, _heSndOffset, _heSndChannel, _heSndFlags, _heSndSoundFreq, _heSndPan, _heSndVol);
break;
- case 128: // SO_SOUND_ADD
+ case SO_SOUND_ADD:
_heSndFlags |= HE_SND_APPEND;
break;
- case 129: // SO_SOUND_CHANNEL
+ case SO_SOUND_CHANNEL:
_heSndChannel = pop();
break;
- case 130: // SO_SOUND_FREQUENCY
+ case SO_SOUND_FREQUENCY:
_heSndFlags |= HE_SND_FREQUENCY;
_heSndSoundFreq = pop();
break;
- case 131: // SO_SOUND_LOOPING
+ case SO_SOUND_LOOPING:
_heSndFlags |= HE_SND_LOOP;
break;
- case 132: // SO_SOUND_MODIFY
- case 134: // SO_SOUND_START
+ case SO_SOUND_MODIFY:
+ case SO_SOUND_START:
_heSndSoundId = pop();
_heSndOffset = 0;
_heSndSoundFreq = 11025;
_heSndChannel = VAR(VAR_SOUND_CHANNEL);
_heSndFlags = 0;
break;
- case 133: // SO_SOUND_PAN
+ case SO_SOUND_PAN:
_heSndFlags |= HE_SND_PAN;
_heSndPan = pop();
break;
- case 135: // SO_SOUND_SOFT
+ case SO_SOUND_SOFT:
_heSndFlags |= HE_SND_SOFT_SOUND;
break;
- case 136: // SO_SOUND_VOLUME
+ case SO_SOUND_VOLUME:
_heSndFlags |= HE_SND_VOL;
_heSndVol = pop();
break;
@@ -1810,14 +1810,14 @@ void ScummEngine_v100he::o100_setSpriteInfo() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 0: // SO_INIT
+ case SO_INIT:
_curMaxSpriteId = pop();
_curSpriteId = pop();
if (_curSpriteId > _curMaxSpriteId)
SWAP(_curSpriteId, _curMaxSpriteId);
break;
- case 2: // SO_ANGLE
+ case SO_ANGLE:
args[0] = pop();
if (_curSpriteId > _curMaxSpriteId)
break;
@@ -1828,7 +1828,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() {
for (; spriteId <= _curMaxSpriteId; spriteId++)
_sprite->setSpriteAngle(spriteId, args[0]);
break;
- case 3: // SO_ANIMATION
+ case SO_ANIMATION:
args[0] = pop();
if (_curSpriteId > _curMaxSpriteId)
break;
@@ -1839,7 +1839,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() {
for (; spriteId <= _curMaxSpriteId; spriteId++)
_sprite->setSpriteFlagAutoAnim(spriteId, args[0]);
break;
- case 4: // SO_ANIMATION_SPEED
+ case SO_ANIMATION_SPEED:
args[0] = pop();
if (_curSpriteId > _curMaxSpriteId)
break;
@@ -1850,7 +1850,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() {
for (; spriteId <= _curMaxSpriteId; spriteId++)
_sprite->setSpriteAnimSpeed(spriteId, args[0]);
break;
- case 6: // SO_AT
+ case SO_AT:
args[1] = pop();
args[0] = pop();
if (_curSpriteId > _curMaxSpriteId)
@@ -1862,7 +1862,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() {
for (; spriteId <= _curMaxSpriteId; spriteId++)
_sprite->setSpritePosition(spriteId, args[0], args[1]);
break;
- case 7: // SO_AT_IMAGE
+ case SO_AT_IMAGE:
args[0] = pop();
if (_curSpriteId > _curMaxSpriteId)
break;
@@ -1873,7 +1873,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() {
for (; spriteId <= _curMaxSpriteId; spriteId++)
_sprite->setSpriteSourceImage(spriteId, args[0]);
break;
- case 16: // SO_CLASS
+ case SO_CLASS:
n = getStackList(args, ARRAYSIZE(args));
if (_curSpriteId != 0 && _curMaxSpriteId != 0 && n != 0) {
int *p = &args[n - 1];
@@ -1896,7 +1896,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() {
} while (--n);
}
break;
- case 32: // SO_ERASE
+ case SO_ERASE:
args[0] = pop();
if (_curSpriteId > _curMaxSpriteId)
break;
@@ -1907,7 +1907,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() {
for (; spriteId <= _curMaxSpriteId; spriteId++)
_sprite->setSpriteFlagEraseType(spriteId, args[0]);
break;
- case 38: // SO_GROUP
+ case SO_GROUP:
args[0] = pop();
if (_curSpriteId > _curMaxSpriteId)
break;
@@ -1918,7 +1918,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() {
for (; spriteId <= _curMaxSpriteId; spriteId++)
_sprite->setSpriteGroup(spriteId, args[0]);
break;
- case 40: // SO_IMAGE
+ case SO_IMAGE:
args[0] = pop();
if (_curSpriteId > _curMaxSpriteId)
break;
@@ -1929,7 +1929,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() {
for (; spriteId <= _curMaxSpriteId; spriteId++)
_sprite->setSpriteImage(spriteId, args[0]);
break;
- case 48: // SO_MASK
+ case SO_MASK:
args[0] = pop();
if (_curSpriteId > _curMaxSpriteId)
break;
@@ -1940,7 +1940,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() {
for (; spriteId <= _curMaxSpriteId; spriteId++)
_sprite->setSpriteMaskImage(spriteId, args[0]);
break;
- case 49: // SO_MOVE
+ case SO_MOVE:
args[1] = pop();
args[0] = pop();
if (_curSpriteId > _curMaxSpriteId)
@@ -1952,10 +1952,10 @@ void ScummEngine_v100he::o100_setSpriteInfo() {
for (; spriteId <= _curMaxSpriteId; spriteId++)
_sprite->moveSprite(spriteId, args[0], args[1]);
break;
- case 52: // SO_NAME
+ case SO_NAME:
copyScriptString(string, sizeof(string));
break;
- case 53: // SO_NEW
+ case SO_NEW:
if (_curSpriteId > _curMaxSpriteId)
break;
spriteId = _curSpriteId;
@@ -1965,7 +1965,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() {
for (; spriteId <= _curMaxSpriteId; spriteId++)
_sprite->resetSprite(spriteId);
break;
- case 54: // SO_NEW_GENERAL_PROPERTY
+ case SO_NEW_GENERAL_PROPERTY:
args[1] = pop();
args[0] = pop();
if (_curSpriteId > _curMaxSpriteId)
@@ -1977,7 +1977,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() {
for (; spriteId <= _curMaxSpriteId; spriteId++)
_sprite->setSpriteGeneralProperty(spriteId, args[0], args[1]);
break;
- case 57: // SO_PALETTE
+ case SO_PALETTE:
args[0] = pop();
if (_curSpriteId > _curMaxSpriteId)
break;
@@ -1988,7 +1988,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() {
for (; spriteId <= _curMaxSpriteId; spriteId++)
_sprite->setSpritePalette(spriteId, args[0]);
break;
- case 59: // SO_PRIORITY
+ case SO_PRIORITY:
args[0] = pop();
if (_curSpriteId > _curMaxSpriteId)
break;
@@ -1999,7 +1999,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() {
for (; spriteId <= _curMaxSpriteId; spriteId++)
_sprite->setSpritePriority(spriteId, args[0]);
break;
- case 60: // SO_PROPERTY
+ case SO_PROPERTY:
args[1] = pop();
args[0] = pop();
if (_curSpriteId > _curMaxSpriteId)
@@ -2030,10 +2030,10 @@ void ScummEngine_v100he::o100_setSpriteInfo() {
break;
}
break;
- case 61: // SO_RESTART
+ case SO_RESTART:
_sprite->resetTables(true);
break;
- case 65: // SO_SCALE
+ case SO_SCALE:
args[0] = pop();
if (_curSpriteId > _curMaxSpriteId)
break;
@@ -2044,7 +2044,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() {
for (; spriteId <= _curMaxSpriteId; spriteId++)
_sprite->setSpriteScale(spriteId, args[0]);
break;
- case 70: // SO_SHADOW
+ case SO_SHADOW:
args[0] = pop();
if (_curSpriteId > _curMaxSpriteId)
break;
@@ -2055,7 +2055,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() {
for (; spriteId <= _curMaxSpriteId; spriteId++)
_sprite->setSpriteShadow(spriteId, args[0]);
break;
- case 73: // SO_STATE
+ case SO_STATE:
args[0] = pop();
if (_curSpriteId > _curMaxSpriteId)
break;
@@ -2066,7 +2066,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() {
for (; spriteId <= _curMaxSpriteId; spriteId++)
_sprite->setSpriteImageState(spriteId, args[0]);
break;
- case 74: // SO_STEP_DIST
+ case SO_STEP_DIST:
args[1] = pop();
args[0] = pop();
if (_curSpriteId > _curMaxSpriteId)
@@ -2078,7 +2078,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() {
for (; spriteId <= _curMaxSpriteId; spriteId++)
_sprite->setSpriteDist(spriteId, args[0], args[1]);
break;
- case 75: // SO_STEP_DIST_X
+ case SO_STEP_DIST_X:
args[0] = pop();
if (_curSpriteId > _curMaxSpriteId)
break;
@@ -2091,7 +2091,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() {
_sprite->setSpriteDist(spriteId, args[0], tmp[1]);
}
break;
- case 76: // SO_STEP_DIST_Y
+ case SO_STEP_DIST_Y:
args[0] = pop();
if (_curSpriteId > _curMaxSpriteId)
break;
@@ -2104,7 +2104,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() {
_sprite->setSpriteDist(spriteId, tmp[0], args[0]);
}
break;
- case 82: // SO_UPDATE
+ case SO_UPDATE:
args[0] = pop();
if (_curSpriteId > _curMaxSpriteId)
break;
@@ -2115,7 +2115,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() {
for (; spriteId <= _curMaxSpriteId; spriteId++)
_sprite->setSpriteFlagUpdateType(spriteId, args[0]);
break;
- case 83: // SO_VARIABLE
+ case SO_VARIABLE:
args[1] = pop();
args[0] = pop();
if (_curSpriteId > _curMaxSpriteId)
@@ -2127,7 +2127,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() {
for (; spriteId <= _curMaxSpriteId; spriteId++)
_sprite->setSpriteUserValue(spriteId, args[0], args[1]);
break;
- case 88: // SO_IMAGE_ZCLIP
+ case SO_IMAGE_ZCLIP:
args[0] = pop();
if (_curSpriteId > _curMaxSpriteId)
break;
@@ -2138,7 +2138,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() {
for (; spriteId <= _curMaxSpriteId; spriteId++)
_sprite->setSpriteZBuffer(spriteId, args[0]);
break;
- case 89: // SO_NEVER_ZCLIP
+ case SO_NEVER_ZCLIP:
if (_curSpriteId > _curMaxSpriteId)
break;
spriteId = _curSpriteId;
@@ -2170,13 +2170,13 @@ void ScummEngine_v100he::o100_systemOps() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 61:
+ case SO_RESTART:
restart();
break;
- case 128:
+ case SO_FLUSH_OBJECT_DRAW_QUEUE:
clearDrawObjectQueue();
break;
- case 132:
+ case SO_QUIT:
// Confirm shutdown
if (_game.id == GID_MOONBASE)
// Moonbase uses this subOp to quit the game (The confirmation dialog
@@ -2185,18 +2185,18 @@ void ScummEngine_v100he::o100_systemOps() {
else
confirmExitDialog();
break;
- case 133:
+ case SO_QUIT_QUIT:
quitGame();
break;
- case 134:
+ case SO_RESTART_STRING:
copyScriptString(string, sizeof(string));
debug(0, "Start game (%s)", string);
break;
- case 135:
+ case SO_START_SYSTEM_STRING:
copyScriptString(string, sizeof(string));
debug(0, "Start executable (%s)", string);
break;
- case 136:
+ case SO_UPDATE_SCREEN:
restoreBackgroundHE(Common::Rect(_screenWidth, _screenHeight));
updatePalette();
break;
@@ -2212,49 +2212,49 @@ void ScummEngine_v100he::o100_cursorCommand() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 0xE: // SO_CHARSET_SET
+ case SO_CHARSET_SET:
initCharset(pop());
break;
- case 0xF: // SO_CHARSET_COLOR
+ case SO_CHARSET_COLOR:
getStackList(args, ARRAYSIZE(args));
for (i = 0; i < 16; i++)
_charsetColorMap[i] = _charsetData[_string[1]._default.charset][i] = (unsigned char)args[i];
break;
- case 0x80:
- case 0x81:
+ case SO_CURSOR_IMAGE:
+ case SO_CURSOR_COLOR_IMAGE:
a = pop();
_wiz->loadWizCursor(a, 0);
break;
- case 0x82:
+ case SO_CURSOR_COLOR_PAL_IMAGE:
b = pop();
a = pop();
_wiz->loadWizCursor(a, b);
break;
- case 0x86: // SO_CURSOR_ON Turn cursor on
+ case SO_CURSOR_ON: // Turn cursor on
_cursor.state = 1;
break;
- case 0x87: // SO_CURSOR_OFF Turn cursor off
+ case SO_CURSOR_OFF: // Turn cursor off
_cursor.state = 0;
break;
- case 0x88: // SO_CURSOR_SOFT_ON Turn soft cursor on
+ case SO_CURSOR_SOFT_ON: // Turn soft cursor on
_cursor.state++;
if (_cursor.state > 1)
error("o100_cursorCommand: Cursor state greater than 1 in script");
break;
- case 0x89: // SO_CURSOR_SOFT_OFF Turn soft cursor off
+ case SO_CURSOR_SOFT_OFF: // Turn soft cursor off
_cursor.state--;
break;
- case 0x8B: // SO_USERPUT_ON
+ case SO_USERPUT_ON:
_userPut = 1;
break;
- case 0x8C: // SO_USERPUT_OFF
+ case SO_USERPUT_OFF:
_userPut = 0;
break;
- case 0x8D: // SO_USERPUT_SOFT_ON
+ case SO_USERPUT_SOFT_ON:
_userPut++;
break;
- case 0x8E: // SO_USERPUT_SOFT_OFF
+ case SO_USERPUT_SOFT_OFF:
_userPut--;
break;
default:
@@ -2270,7 +2270,7 @@ void ScummEngine_v100he::o100_videoOps() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 0: // SO_INIT
+ case SO_INIT:
memset(_videoParams.filename, 0, sizeof(_videoParams.filename));
_videoParams.status = 0;
_videoParams.flags = 0;
@@ -2280,23 +2280,23 @@ void ScummEngine_v100he::o100_videoOps() {
if (_videoParams.number != 1 && _videoParams.number != -1)
warning("o100_videoOps: number: %d", _videoParams.number);
break;
- case 19: // SO_CLOSE
- _videoParams.status = 19;
+ case SO_CLOSE:
+ _videoParams.status = SO_CLOSE;
break;
- case 40: // SO_IMAGE
+ case SO_IMAGE:
_videoParams.wizResNum = pop();
if (_videoParams.wizResNum)
_videoParams.flags |= 2;
break;
- case 47: // SO_LOAD
+ case SO_LOAD:
copyScriptString(_videoParams.filename, sizeof(_videoParams.filename));
- _videoParams.status = 47;
+ _videoParams.status = SO_LOAD;
break;
- case 67: // SO_SET_FLAGS
+ case SO_SET_FLAGS:
_videoParams.flags |= pop();
break;
- case 92: // SO_END
- if (_videoParams.status == 47) { // SO_LOAD
+ case SO_END:
+ if (_videoParams.status == SO_LOAD) {
// Start video
if (_videoParams.flags == 0)
_videoParams.flags = 4;
@@ -2306,7 +2306,7 @@ void ScummEngine_v100he::o100_videoOps() {
} else {
VAR(119) = _moviePlay->load(convertFilePath(_videoParams.filename), _videoParams.flags);
}
- } else if (_videoParams.status == 19) { // SO_CLOSE
+ } else if (_videoParams.status == SO_CLOSE) {
// Stop video
_moviePlay->close();
}
@@ -2326,22 +2326,22 @@ void ScummEngine_v100he::o100_wait() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 128: // SO_WAIT_FOR_ACTOR Wait for actor
+ case SO_WAIT_FOR_ACTOR: // Wait for actor
offs = fetchScriptWordSigned();
actnum = pop();
a = derefActor(actnum, "o100_wait:168");
if (a->_moving)
break;
return;
- case 129: // SO_WAIT_FOR_CAMERA Wait for camera
+ case SO_WAIT_FOR_CAMERA: // Wait for camera
if (camera._cur.x / 8 != camera._dest.x / 8)
break;
return;
- case 130: // SO_WAIT_FOR_MESSAGE Wait for message
+ case SO_WAIT_FOR_MESSAGE: // Wait for message
if (VAR(VAR_HAVE_MSG))
break;
return;
- case 131: // SO_WAIT_FOR_SENTENCE
+ case SO_WAIT_FOR_SENTENCE:
if (_sentenceNum) {
if (_sentence[_sentenceNum - 1].freezeCount && !isScriptInUse(VAR(VAR_SENTENCE_SCRIPT)))
return;
@@ -2366,17 +2366,17 @@ void ScummEngine_v100he::o100_writeFile() {
assert(_hOutFileTable[slot]);
switch (subOp) {
- case 5:
+ case SO_ARRAY:
fetchScriptByte();
writeFileFromArray(slot, resID);
break;
- case 42:
+ case SO_INT:
_hOutFileTable[slot]->writeUint16LE(resID);
break;
- case 43:
+ case SO_DWORD:
_hOutFileTable[slot]->writeUint32LE(resID);
break;
- case 45:
+ case SO_BYTE:
_hOutFileTable[slot]->writeByte(resID);
break;
default:
@@ -2395,19 +2395,19 @@ void ScummEngine_v100he::o100_debugInput() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 0:
+ case SO_INIT:
copyScriptString(_debugInputBuffer, sizeof(_debugInputBuffer));
break;
- case 26:
+ case SO_COUNT:
pop();
break;
- case 27:
+ case SO_DEFAULT:
copyScriptString(_debugInputBuffer, sizeof(_debugInputBuffer));
break;
- case 80:
+ case SO_TITLE_BAR:
copyScriptString(_debugInputBuffer, sizeof(_debugInputBuffer));
break;
- case 92:
+ case SO_END:
debugInput(_debugInputBuffer);
break;
default:
@@ -2423,19 +2423,19 @@ void ScummEngine_v100he::o100_isResourceLoaded() {
int idx = pop();
switch (subOp) {
- case 25:
+ case SO_COSTUME:
type = rtCostume;
break;
- case 40:
+ case SO_IMAGE:
type = rtImage;
break;
- case 62:
+ case SO_ROOM:
type = rtRoom;
break;
- case 66:
+ case SO_SCRIPT:
type = rtScript;
break;
- case 72:
+ case SO_SOUND:
type = rtSound;
break;
default:
@@ -2455,19 +2455,19 @@ void ScummEngine_v100he::o100_getResourceSize() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 25:
+ case SO_COSTUME:
type = rtCostume;
break;
- case 40:
+ case SO_IMAGE:
type = rtImage;
break;
- case 62:
+ case SO_ROOM:
type = rtRoomImage;
break;
- case 66:
+ case SO_SCRIPT:
type = rtScript;
break;
- case 72:
+ case SO_SOUND:
push(getSoundResourceSize(resid));
return;
default:
@@ -2489,35 +2489,35 @@ void ScummEngine_v100he::o100_getSpriteGroupInfo() {
warning("o100_getSpriteGroupInfo, subop %d", subOp);
switch (subOp) {
- case 5: // SO_ARRAY
+ case SO_ARRAY:
spriteGroupId = pop();
if (spriteGroupId)
push(getGroupSpriteArray(spriteGroupId));
else
push(0);
break;
- case 40: // SO_IMAGE
+ case SO_IMAGE:
spriteGroupId = pop();
if (spriteGroupId)
push(_sprite->getGroupDstResNum(spriteGroupId));
else
push(0);
break;
- case 54: // SO_NEW_GENERAL_PROPERTY
+ case SO_NEW_GENERAL_PROPERTY:
// TODO: U32 related
pop();
pop();
push(0);
warning("STUB: o100_getSpriteGroupInfo, subop 54");
break;
- case 59: // SO_PRIORITY
+ case SO_PRIORITY:
spriteGroupId = pop();
if (spriteGroupId)
push(_sprite->getGroupPriority(spriteGroupId));
else
push(0);
break;
- case 60: // SO_PROPERTY
+ case SO_PROPERTY:
type = pop();
spriteGroupId = pop();
if (spriteGroupId) {
@@ -2541,7 +2541,7 @@ void ScummEngine_v100he::o100_getSpriteGroupInfo() {
push(0);
}
break;
- case 85: // SO_XPOS
+ case SO_XPOS:
spriteGroupId = pop();
if (spriteGroupId) {
_sprite->getGroupPosition(spriteGroupId, tx, ty);
@@ -2550,7 +2550,7 @@ void ScummEngine_v100he::o100_getSpriteGroupInfo() {
push(0);
}
break;
- case 86: // SO_YPOS
+ case SO_YPOS:
spriteGroupId = pop();
if (spriteGroupId) {
_sprite->getGroupPosition(spriteGroupId, tx, ty);
@@ -2573,62 +2573,62 @@ void ScummEngine_v100he::o100_getWizData() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 20: // SO_COLOR
+ case SO_COLOR:
y = pop();
x = pop();
state = pop();
resId = pop();
push(_wiz->getWizPixelColor(resId, state, x, y));
break;
- case 26: // SO_COUNT
+ case SO_COUNT:
resId = pop();
push(_wiz->getWizImageStates(resId));
break;
- case 33: // SO_FIND
+ case SO_FIND:
y = pop();
x = pop();
state = pop();
resId = pop();
push(_wiz->isWizPixelNonTransparent(resId, state, x, y, 0));
break;
- case 39: // SO_HEIGHT
+ case SO_HEIGHT:
state = pop();
resId = pop();
_wiz->getWizImageDim(resId, state, w, h);
push(h);
break;
- case 54: // SO_NEW_GENERAL_PROPERTY
+ case SO_NEW_GENERAL_PROPERTY:
type = pop();
state = pop();
resId = pop();
push(_wiz->getWizImageData(resId, state, type));
break;
- case 84: // SO_WIDTH
+ case SO_WIDTH:
state = pop();
resId = pop();
_wiz->getWizImageDim(resId, state, w, h);
push(w);
break;
- case 85: // SO_XPOS
+ case SO_XPOS:
state = pop();
resId = pop();
_wiz->getWizImageSpot(resId, state, x, y);
push(x);
break;
- case 86: // SO_YPOS
+ case SO_YPOS:
state = pop();
resId = pop();
_wiz->getWizImageSpot(resId, state, x, y);
push(y);
break;
- case 131: // SO_FONT_START
+ case SO_FONT_START:
pop();
copyScriptString(filename, sizeof(filename));
pop();
push(0);
debug(0, "o100_getWizData() case 111 unhandled");
break;
- case 132: // SO_HISTOGRAM
+ case SO_HISTOGRAM:
h = pop();
w = pop();
y = pop();
@@ -2655,7 +2655,7 @@ void ScummEngine_v100he::o100_getPaletteData() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 13:
+ case SO_CHANNEL:
c = pop();
b = pop();
if (_game.features & GF_16BIT_COLOR)
@@ -2663,12 +2663,12 @@ void ScummEngine_v100he::o100_getPaletteData() {
else
push(getHEPaletteColorComponent(1, b, c));
break;
- case 20:
+ case SO_COLOR:
color = pop();
palSlot = pop();
push(getHEPaletteColor(palSlot, color));
break;
- case 33:
+ case SO_FIND:
e = pop();
d = pop();
palSlot = pop();
@@ -2677,7 +2677,7 @@ void ScummEngine_v100he::o100_getPaletteData() {
r = pop();
push(getHEPaletteSimilarColor(palSlot, r, g, d, e));
break;
- case 53:
+ case SO_NEW:
b = pop();
b = MAX(0, b);
b = MIN(b, 255);
@@ -2693,7 +2693,7 @@ void ScummEngine_v100he::o100_getPaletteData() {
push(getHEPaletteSimilarColor(1, r, g, 10, 245));
}
break;
- case 73:
+ case SO_STATE:
c = pop();
b = pop();
palSlot = pop();
@@ -2711,26 +2711,26 @@ void ScummEngine_v100he::o100_readFile() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 5:
+ case SO_ARRAY:
fetchScriptByte();
size = pop();
slot = pop();
val = readFileToArray(slot, size);
push(val);
break;
- case 42:
+ case SO_INT:
slot = pop();
assert(_hInFileTable[slot]);
val = _hInFileTable[slot]->readUint16LE();
push(val);
break;
- case 43:
+ case SO_DWORD:
slot = pop();
assert(_hInFileTable[slot]);
val = _hInFileTable[slot]->readUint32LE();
push(val);
break;
- case 45:
+ case SO_BYTE:
slot = pop();
assert(_hInFileTable[slot]);
val = _hInFileTable[slot]->readByte();
@@ -2749,28 +2749,28 @@ void ScummEngine_v100he::o100_getSpriteInfo() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 3:
+ case SO_ANIMATION:
spriteId = pop();
if (spriteId)
push(_sprite->getSpriteFlagAutoAnim(spriteId));
else
push(0);
break;
- case 4:
+ case SO_ANIMATION_SPEED:
spriteId = pop();
if (spriteId)
push(_sprite->getSpriteAnimSpeed(spriteId));
else
push(1);
break;
- case 7:
+ case SO_AT_IMAGE:
spriteId = pop();
if (spriteId)
push(_sprite->getSpriteSourceImage(spriteId));
else
push(0);
break;
- case 16:
+ case SO_CLASS:
flags = getStackList(args, ARRAYSIZE(args));
spriteId = pop();
if (spriteId) {
@@ -2779,35 +2779,35 @@ void ScummEngine_v100he::o100_getSpriteInfo() {
push(0);
}
break;
- case 26:
+ case SO_COUNT:
spriteId = pop();
if (spriteId)
push(_sprite->getSpriteImageStateCount(spriteId));
else
push(0);
break;
- case 30:
+ case SO_DRAW_XPOS:
spriteId = pop();
if (spriteId)
push(_sprite->getSpriteDisplayX(spriteId));
else
push(0);
break;
- case 31:
+ case SO_DRAW_YPOS:
spriteId = pop();
if (spriteId)
push(_sprite->getSpriteDisplayY(spriteId));
else
push(0);
break;
- case 32:
+ case SO_ERASE:
spriteId = pop();
if (spriteId)
push(_sprite->getSpriteFlagEraseType(spriteId));
else
push(1);
break;
- case 33:
+ case SO_FIND:
flags = getStackList(args, ARRAYSIZE(args));
type = pop();
groupId = pop();
@@ -2815,14 +2815,14 @@ void ScummEngine_v100he::o100_getSpriteInfo() {
x = pop();
push(_sprite->findSpriteWithClassOf(x, y, groupId, type, flags, args));
break;
- case 38:
+ case SO_GROUP:
spriteId = pop();
if (spriteId)
push(_sprite->getSpriteGroup(spriteId));
else
push(0);
break;
- case 39:
+ case SO_HEIGHT:
spriteId = pop();
if (spriteId) {
_sprite->getSpriteImageDim(spriteId, x, y);
@@ -2831,21 +2831,21 @@ void ScummEngine_v100he::o100_getSpriteInfo() {
push(0);
}
break;
- case 40:
+ case SO_IMAGE:
spriteId = pop();
if (spriteId)
push(_sprite->getSpriteImage(spriteId));
else
push(0);
break;
- case 48:
+ case SO_MASK:
spriteId = pop();
if (spriteId)
push(_sprite->getSpriteMaskImage(spriteId));
else
push(0);
break;
- case 54:
+ case SO_NEW_GENERAL_PROPERTY:
flags = pop();
spriteId = pop();
if (spriteId)
@@ -2853,21 +2853,21 @@ void ScummEngine_v100he::o100_getSpriteInfo() {
else
push(0);
break;
- case 57:
+ case SO_PALETTE:
spriteId = pop();
if (spriteId)
push(_sprite->getSpritePalette(spriteId));
else
push(0);
break;
- case 59:
+ case SO_PRIORITY:
spriteId = pop();
if (spriteId)
push(_sprite->getSpritePriority(spriteId));
else
push(0);
break;
- case 60:
+ case SO_PROPERTY:
flags = pop();
spriteId = pop();
if (spriteId) {
@@ -2894,28 +2894,28 @@ void ScummEngine_v100he::o100_getSpriteInfo() {
push(0);
}
break;
- case 65:
+ case SO_SCALE:
spriteId = pop();
if (spriteId)
push(_sprite->getSpriteScale(spriteId));
else
push(0);
break;
- case 70:
+ case SO_SHADOW:
spriteId = pop();
if (spriteId)
push(_sprite->getSpriteShadow(spriteId));
else
push(0);
break;
- case 73:
+ case SO_STATE:
spriteId = pop();
if (spriteId)
push(_sprite->getSpriteImageState(spriteId));
else
push(0);
break;
- case 75:
+ case SO_STEP_DIST_X:
spriteId = pop();
if (spriteId) {
_sprite->getSpriteDist(spriteId, x, y);
@@ -2924,7 +2924,7 @@ void ScummEngine_v100he::o100_getSpriteInfo() {
push(0);
}
break;
- case 76:
+ case SO_STEP_DIST_Y:
spriteId = pop();
if (spriteId) {
_sprite->getSpriteDist(spriteId, x, y);
@@ -2933,14 +2933,14 @@ void ScummEngine_v100he::o100_getSpriteInfo() {
push(0);
}
break;
- case 82:
+ case SO_UPDATE:
spriteId = pop();
if (spriteId)
push(_sprite->getSpriteFlagUpdateType(spriteId));
else
push(0);
break;
- case 83:
+ case SO_VARIABLE:
pop();
spriteId = pop();
if (spriteId)
@@ -2948,7 +2948,7 @@ void ScummEngine_v100he::o100_getSpriteInfo() {
else
push(0);
break;
- case 84:
+ case SO_WIDTH:
spriteId = pop();
if (spriteId) {
_sprite->getSpriteImageDim(spriteId, x, y);
@@ -2957,7 +2957,7 @@ void ScummEngine_v100he::o100_getSpriteInfo() {
push(0);
}
break;
- case 85:
+ case SO_XPOS:
spriteId = pop();
if (spriteId) {
_sprite->getSpritePosition(spriteId, x, y);
@@ -2966,7 +2966,7 @@ void ScummEngine_v100he::o100_getSpriteInfo() {
push(0);
}
break;
- case 86:
+ case SO_YPOS:
spriteId = pop();
if (spriteId) {
_sprite->getSpritePosition(spriteId, x, y);
@@ -2985,27 +2985,27 @@ void ScummEngine_v100he::o100_getVideoData() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 26:
+ case SO_COUNT:
pop();
push(_moviePlay->getFrameCount());
break;
- case 39:
+ case SO_HEIGHT:
pop();
push(_moviePlay->getHeight());
break;
- case 40:
+ case SO_IMAGE:
pop();
push(_moviePlay->getImageNum());
break;
- case 54:
+ case SO_NEW_GENERAL_PROPERTY:
debug(0, "o100_getVideoData: subOp 28 stub (%d, %d)", pop(), pop());
push(0);
break;
- case 73:
+ case SO_STATE:
pop();
push(_moviePlay->getCurFrame());
break;
- case 84:
+ case SO_WIDTH:
pop();
push(_moviePlay->getWidth());
break;
@@ -3023,22 +3023,22 @@ void ScummEngine_v100he::decodeParseString(int m, int n) {
byte b = fetchScriptByte();
switch (b) {
- case 6: // SO_AT
+ case SO_AT:
_string[m].ypos = pop();
_string[m].xpos = pop();
_string[m].overhead = false;
break;
- case 12: // SO_CENTER
+ case SO_CENTER:
_string[m].center = true;
_string[m].overhead = false;
break;
- case 18: // SO_CLIPPED
+ case SO_CLIPPED:
_string[m].right = pop();
break;
- case 20: // SO_COLOR
+ case SO_COLOR:
_string[m].color = pop();
break;
- case 21:
+ case SO_COLOR_LIST:
colors = pop();
if (colors == 1) {
_string[m].color = pop();
@@ -3050,22 +3050,22 @@ void ScummEngine_v100he::decodeParseString(int m, int n) {
_string[m].color = _charsetColorMap[0];
}
break;
- case 35:
+ case SO_FORMATTED_STRING:
decodeScriptString(name, true);
printString(m, name);
break;
- case 46: // SO_LEFT
+ case SO_LEFT:
_string[m].center = false;
_string[m].overhead = false;
break;
- case 51: // SO_MUMBLE
+ case SO_MUMBLE:
_string[m].no_talk_anim = true;
break;
- case 56: // SO_OVERHEAD
+ case SO_OVERHEAD:
_string[m].overhead = true;
_string[m].no_talk_anim = false;
break;
- case 78:
+ case SO_TALKIE:
{
byte *dataPtr = getResourceAddress(rtTalkie, pop());
byte *text = findWrappedBlock(MKTAG('T','E','X','T'), dataPtr, 0, 0);
@@ -3074,11 +3074,11 @@ void ScummEngine_v100he::decodeParseString(int m, int n) {
printString(m, name);
}
break;
- case 79: // SO_TEXTSTRING
+ case SO_TEXTSTRING:
printString(m, _scriptPointer);
_scriptPointer += resStrLen(_scriptPointer) + 1;
break;
- case 91:
+ case SO_BASEOP:
_string[m].loadDefault();
if (n) {
_actorToPrintStrFor = pop();
@@ -3088,7 +3088,7 @@ void ScummEngine_v100he::decodeParseString(int m, int n) {
}
}
break;
- case 92:
+ case SO_END:
_string[m].saveDefault();
break;
default:
diff --git a/engines/scumm/he/script_v60he.cpp b/engines/scumm/he/script_v60he.cpp
index be85fdf3e9b..cf3b0f1b603 100644
--- a/engines/scumm/he/script_v60he.cpp
+++ b/engines/scumm/he/script_v60he.cpp
@@ -334,7 +334,7 @@ void ScummEngine_v60he::o60_roomOps() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 172: // SO_ROOM_SCROLL
+ case SO_ROOM_SCROLL:
b = pop();
a = pop();
if (a < (_screenWidth / 2))
@@ -349,7 +349,7 @@ void ScummEngine_v60he::o60_roomOps() {
VAR(VAR_CAMERA_MAX_X) = b;
break;
- case 174: // SO_ROOM_SCREEN
+ case SO_ROOM_SCREEN:
b = pop();
a = pop();
if (_game.heversion >= 71)
@@ -358,7 +358,7 @@ void ScummEngine_v60he::o60_roomOps() {
initScreens(a, b);
break;
- case 175: // SO_ROOM_PALETTE
+ case SO_ROOM_PALETTE:
d = pop();
c = pop();
b = pop();
@@ -366,28 +366,28 @@ void ScummEngine_v60he::o60_roomOps() {
setPalColor(d, a, b, c);
break;
- case 176: // SO_ROOM_SHAKE_ON
+ case SO_ROOM_SHAKE_ON:
setShake(1);
break;
- case 177: // SO_ROOM_SHAKE_OFF
+ case SO_ROOM_SHAKE_OFF:
setShake(0);
break;
- case 179: // SO_ROOM_INTENSITY
+ case SO_ROOM_INTENSITY:
c = pop();
b = pop();
a = pop();
darkenPalette(a, a, a, b, c);
break;
- case 180: // SO_ROOM_SAVEGAME
+ case SO_ROOM_SAVEGAME:
_saveTemporaryState = true;
_saveLoadSlot = pop();
_saveLoadFlag = pop();
break;
- case 181: // SO_ROOM_FADE
+ case SO_ROOM_FADE:
a = pop();
if (_game.heversion >= 70) {
// Defaults to 1 but doesn't use fade effects
@@ -399,7 +399,7 @@ void ScummEngine_v60he::o60_roomOps() {
}
break;
- case 182: // SO_RGB_ROOM_INTENSITY
+ case SO_RGB_ROOM_INTENSITY:
e = pop();
d = pop();
c = pop();
@@ -408,7 +408,7 @@ void ScummEngine_v60he::o60_roomOps() {
darkenPalette(a, b, c, d, e);
break;
- case 183: // SO_ROOM_SHADOW
+ case SO_ROOM_SHADOW:
e = pop();
d = pop();
c = pop();
@@ -418,7 +418,7 @@ void ScummEngine_v60he::o60_roomOps() {
setShadowPalette(a, b, c, d, e, 0, 256);
break;
- case 186: // SO_ROOM_TRANSFORM
+ case SO_ROOM_TRANSFORM:
d = pop();
c = pop();
b = pop();
@@ -426,23 +426,23 @@ void ScummEngine_v60he::o60_roomOps() {
palManipulateInit(a, b, c, d);
break;
- case 187: // SO_CYCLE_SPEED
+ case SO_CYCLE_SPEED:
b = pop();
a = pop();
assertRange(1, a, 16, "o60_roomOps: 187: color cycle");
_colorCycle[a - 1].delay = (b != 0) ? 0x4000 / (b * 0x4C) : 0;
break;
- case 213: // SO_ROOM_NEW_PALETTE
+ case SO_ROOM_NEW_PALETTE:
a = pop();
setCurrentPalette(a);
break;
- case 220:
+ case SO_ROOM_COPY_PALETTE:
a = pop();
b = pop();
copyPalColor(a, b);
break;
- case 221:
+ case SO_ROOM_SAVEGAME_BY_NAME:
byte buffer[100];
int len;
@@ -457,12 +457,12 @@ void ScummEngine_v60he::o60_roomOps() {
_saveLoadSlot = 255;
_saveTemporaryState = true;
break;
- case 234: // HE 7.1
+ case SO_OBJECT_ORDER: // HE 7.1
b = pop();
a = pop();
swapObjects(a, b);
break;
- case 236: // HE 7.1
+ case SO_ROOM_PALETTE_IN_ROOM: // HE 7.1
b = pop();
a = pop();
setRoomPalette(a, b);
@@ -502,7 +502,7 @@ void ScummEngine_v60he::o60_actorOps() {
int args[8];
byte subOp = fetchScriptByte();
- if (subOp == 197) {
+ if (subOp == SO_ACTOR_INIT) {
_curActor = pop();
return;
}
@@ -512,129 +512,129 @@ void ScummEngine_v60he::o60_actorOps() {
return;
switch (subOp) {
- case 30:
+ case SO_ACTOR_DEFAULT_CLIPPED:
// _game.heversion >= 70
_actorClipOverride.bottom = pop();
_actorClipOverride.right = pop();
_actorClipOverride.top = pop();
_actorClipOverride.left = pop();
break;
- case 76: // SO_COSTUME
+ case SO_COSTUME:
a->setActorCostume(pop());
break;
- case 77: // SO_STEP_DIST
+ case SO_STEP_DIST:
j = pop();
i = pop();
a->setActorWalkSpeed(i, j);
break;
- case 78: // SO_SOUND
+ case SO_SOUND:
k = getStackList(args, ARRAYSIZE(args));
for (i = 0; i < k; i++)
a->_sound[i] = args[i];
break;
- case 79: // SO_WALK_ANIMATION
+ case SO_WALK_ANIMATION:
a->_walkFrame = pop();
break;
- case 80: // SO_TALK_ANIMATION
+ case SO_TALK_ANIMATION:
a->_talkStopFrame = pop();
a->_talkStartFrame = pop();
break;
- case 81: // SO_STAND_ANIMATION
+ case SO_STAND_ANIMATION:
a->_standFrame = pop();
break;
- case 82: // SO_ANIMATION
+ case SO_ANIMATION:
// dummy case in scumm6
pop();
pop();
pop();
break;
- case 83: // SO_DEFAULT
+ case SO_DEFAULT:
a->initActor(0);
break;
- case 84: // SO_ELEVATION
+ case SO_ELEVATION:
a->setElevation(pop());
break;
- case 85: // SO_ANIMATION_DEFAULT
+ case SO_ANIMATION_DEFAULT:
a->_initFrame = 1;
a->_walkFrame = 2;
a->_standFrame = 3;
a->_talkStartFrame = 4;
a->_talkStopFrame = 5;
break;
- case 86: // SO_PALETTE
+ case SO_PALETTE:
j = pop();
i = pop();
assertRange(0, i, 255, "o60_actorOps: palette slot");
a->remapActorPaletteColor(i, j);
a->_needRedraw = true;
break;
- case 87: // SO_TALK_COLOR
+ case SO_TALK_COLOR:
a->_talkColor = pop();
break;
- case 88: // SO_ACTOR_NAME
+ case SO_ACTOR_NAME:
loadPtrToResource(rtActorName, a->_number, nullptr);
break;
- case 89: // SO_INIT_ANIMATION
+ case SO_INIT_ANIMATION:
a->_initFrame = pop();
break;
- case 91: // SO_ACTOR_WIDTH
+ case SO_ACTOR_WIDTH:
a->_width = pop();
break;
- case 92: // SO_SCALE
+ case SO_SCALE:
i = pop();
a->setScale(i, i);
break;
- case 93: // SO_NEVER_ZCLIP
+ case SO_NEVER_ZCLIP:
a->_forceClip = 0;
break;
- case 94: // SO_ALWAYS_ZCLIP
+ case SO_ALWAYS_ZCLIP:
a->_forceClip = pop();
break;
- case 95: // SO_IGNORE_BOXES
+ case SO_IGNORE_BOXES:
a->_ignoreBoxes = 1;
a->_forceClip = 0;
if (a->isInCurrentRoom())
a->putActor();
break;
- case 96: // SO_FOLLOW_BOXES
+ case SO_FOLLOW_BOXES:
a->_ignoreBoxes = 0;
a->_forceClip = 0;
if (a->isInCurrentRoom())
a->putActor();
break;
- case 97: // SO_ANIMATION_SPEED
+ case SO_ANIMATION_SPEED:
a->setAnimSpeed(pop());
break;
- case 98: // SO_SHADOW
+ case SO_SHADOW:
a->_shadowMode = pop();
a->_needRedraw = true;
break;
- case 99: // SO_TEXT_OFFSET
+ case SO_TEXT_OFFSET:
a->_talkPosY = pop();
a->_talkPosX = pop();
break;
- case 198: // SO_ACTOR_VARIABLE
+ case SO_ACTOR_VARIABLE:
i = pop();
a->setAnimVar(pop(), i);
break;
- case 215: // SO_ACTOR_IGNORE_TURNS_ON
+ case SO_ACTOR_IGNORE_TURNS_ON:
a->_ignoreTurns = true;
break;
- case 216: // SO_ACTOR_IGNORE_TURNS_OFF
+ case SO_ACTOR_IGNORE_TURNS_OFF:
a->_ignoreTurns = false;
break;
- case 217: // SO_ACTOR_NEW
+ case SO_NEW:
a->initActor(2);
break;
- case 218:
+ case SO_BACKGROUND_ON:
a->drawActorToBackBuf(a->getPos().x, a->getPos().y);
break;
- case 219:
+ case SO_BACKGROUND_OFF:
a->_drawToBackBuf = false;
a->_needRedraw = true;
a->_needBgReset = true;
break;
- case 225:
+ case SO_TALKIE:
{
byte string[128];
copyScriptString(string);
@@ -1003,15 +1003,15 @@ void ScummEngine_v60he::o60_soundOps() {
int arg = pop();
switch (subOp) {
- case 222:
+ case SO_SOUND_START_VOLUME:
if (_imuse) {
_imuse->setMusicVolume(arg);
}
break;
- case 223:
+ case SO_SOUND_VOLUME_RAMP:
// WORKAROUND: For error in room script 228 (room 2) of fbear.
break;
- case 224:
+ case SO_SOUND_FREQUENCY:
// Fatty Bear's Birthday surprise uses this when playing the
// piano, but only when using one of the digitized instruments.
// See also o6_startSound().
@@ -1092,10 +1092,10 @@ void ScummEngine_v60he::o60_redimArray() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 199:
+ case SO_INT_ARRAY:
redimArray(fetchScriptWord(), newX, newY, kIntArray);
break;
- case 202:
+ case SO_BYTE_ARRAY:
redimArray(fetchScriptWord(), newX, newY, kByteArray);
break;
default:
@@ -1136,37 +1136,37 @@ void ScummEngine_v60he::decodeParseString(int m, int n) {
byte b = fetchScriptByte();
switch (b) {
- case 65: // SO_AT
+ case SO_AT:
_string[m].ypos = pop();
_string[m].xpos = pop();
_string[m].overhead = false;
break;
- case 66: // SO_COLOR
+ case SO_COLOR:
_string[m].color = pop();
break;
- case 67: // SO_CLIPPED
+ case SO_CLIPPED:
_string[m].right = pop();
break;
- case 69: // SO_CENTER
+ case SO_CENTER:
_string[m].center = true;
_string[m].overhead = false;
break;
- case 71: // SO_LEFT
+ case SO_LEFT:
_string[m].center = false;
_string[m].overhead = false;
break;
- case 72: // SO_OVERHEAD
+ case SO_OVERHEAD:
_string[m].overhead = true;
_string[m].no_talk_anim = false;
break;
- case 74: // SO_MUMBLE
+ case SO_MUMBLE:
_string[m].no_talk_anim = true;
break;
- case 75: // SO_TEXTSTRING
+ case SO_TEXTSTRING:
printString(m, _scriptPointer);
_scriptPointer += resStrLen(_scriptPointer) + 1;
break;
- case 0xF9:
+ case SO_COLOR_LIST:
colors = pop();
if (colors == 1) {
_string[m].color = pop();
@@ -1178,12 +1178,12 @@ void ScummEngine_v60he::decodeParseString(int m, int n) {
_string[m].color = _charsetColorMap[0];
}
break;
- case 0xFE:
+ case SO_BASEOP:
_string[m].loadDefault();
if (n)
_actorToPrintStrFor = pop();
break;
- case 0xFF:
+ case SO_END:
_string[m].saveDefault();
break;
default:
diff --git a/engines/scumm/he/script_v70he.cpp b/engines/scumm/he/script_v70he.cpp
index 3904c0cb471..1626e473498 100644
--- a/engines/scumm/he/script_v70he.cpp
+++ b/engines/scumm/he/script_v70he.cpp
@@ -57,48 +57,48 @@ void ScummEngine_v70he::o70_soundOps() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 9: // SO_SOUND_SOFT?
+ case SO_SOFT:
_heSndFlags |= HE_SND_SOFT_SOUND;
break;
- case 23: // SO_VARIABLE
+ case SO_VARIABLE:
value = pop();
var = pop();
_heSndSoundId = pop();
((SoundHE *)_sound)->setSoundVar(_heSndSoundId, var, value);
break;
- case 25: // SO_SOUND_VOLUME
+ case SO_SOUND_VOLUME:
value = pop();
_heSndSoundId = pop();
_sound->addSoundToQueue(_heSndSoundId, 0, 0, HE_SND_VOL, 0, 0, value);
break;
- case 56: // SO_NOW
+ case SO_NOW:
_heSndFlags |= HE_SND_QUICK_START;
break;
- case 164: // SO_SOUND_ADD
+ case SO_SOUND_ADD:
_heSndFlags |= HE_SND_APPEND;
break;
- case 222:
+ case SO_SOUND_START_VOLUME:
// WORKAROUND: For errors in room script 240 (room 4) of maze
break;
- case 224: // SO_SOUND_FREQUENCY
+ case SO_SOUND_FREQUENCY:
_heSndSoundFreq = pop();
break;
- case 230: // SO_SOUND_CHANNEL
+ case SO_SOUND_CHANNEL:
_heSndChannel = pop();
break;
- case 231: // SO_AT
+ case SO_AT:
_heSndOffset = pop();
break;
- case 232: // SO_SOUND_START
+ case SO_SOUND_START:
_heSndSoundId = pop();
_heSndOffset = 0;
_heSndSoundFreq = 11025;
_heSndChannel = VAR(VAR_SOUND_CHANNEL);
break;
- case 245: // SO_SOUND_LOOPING
+ case SO_SOUND_LOOPING:
_heSndFlags |= HE_SND_LOOP;
break;
- case 255: // SO_END
+ case SO_END:
_sound->addSoundToQueue(_heSndSoundId, _heSndOffset, _heSndChannel, _heSndFlags, _heSndSoundFreq);
_heSndFlags = 0;
break;
@@ -143,153 +143,153 @@ void ScummEngine_v70he::o70_resourceRoutines() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 100: // SO_LOAD_SCRIPT
+ case SO_LOAD_SCRIPT:
resid = pop();
ensureResourceLoaded(rtScript, resid);
break;
- case 101: // SO_LOAD_SOUND
+ case SO_LOAD_SOUND:
resid = pop();
ensureResourceLoaded(rtSound, resid);
break;
- case 102: // SO_LOAD_COSTUME
+ case SO_LOAD_COSTUME:
resid = pop();
ensureResourceLoaded(rtCostume, resid);
break;
- case 103: // SO_LOAD_ROOM
+ case SO_LOAD_ROOM:
resid = pop();
ensureResourceLoaded(rtRoomImage, resid);
ensureResourceLoaded(rtRoom, resid);
break;
- case 104: // SO_NUKE_SCRIPT
+ case SO_NUKE_SCRIPT:
resid = pop();
_res->nukeResource(rtScript, resid);
break;
- case 105: // SO_NUKE_SOUND
+ case SO_NUKE_SOUND:
resid = pop();
_res->nukeResource(rtSound, resid);
break;
- case 106: // SO_NUKE_COSTUME
+ case SO_NUKE_COSTUME:
resid = pop();
_res->nukeResource(rtCostume, resid);
break;
- case 107: // SO_NUKE_ROOM
+ case SO_NUKE_ROOM:
resid = pop();
_res->nukeResource(rtRoom, resid);
_res->nukeResource(rtRoomImage, resid);
break;
- case 108: // SO_LOCK_SCRIPT
+ case SO_LOCK_SCRIPT:
resid = pop();
if (resid >= _numGlobalScripts)
break;
_res->lock(rtScript, resid);
break;
- case 109: // SO_LOCK_SOUND
+ case SO_LOCK_SOUND:
resid = pop();
_res->lock(rtSound, resid);
break;
- case 110: // SO_LOCK_COSTUME
+ case SO_LOCK_COSTUME:
resid = pop();
_res->lock(rtCostume, resid);
break;
- case 111: // SO_LOCK_ROOM
+ case SO_LOCK_ROOM:
resid = pop();
if (_game.heversion <= 71 && resid > 0x7F)
resid = _resourceMapper[resid & 0x7F];
_res->lock(rtRoom, resid);
_res->lock(rtRoomImage, resid);
break;
- case 112: // SO_UNLOCK_SCRIPT
+ case SO_UNLOCK_SCRIPT:
resid = pop();
if (resid >= _numGlobalScripts)
break;
_res->unlock(rtScript, resid);
break;
- case 113: // SO_UNLOCK_SOUND
+ case SO_UNLOCK_SOUND:
resid = pop();
_res->unlock(rtSound, resid);
break;
- case 114: // SO_UNLOCK_COSTUME
+ case SO_UNLOCK_COSTUME:
resid = pop();
_res->unlock(rtCostume, resid);
break;
- case 115: // SO_UNLOCK_ROOM
+ case SO_UNLOCK_ROOM:
resid = pop();
if (_game.heversion <= 71 && resid > 0x7F)
resid = _resourceMapper[resid & 0x7F];
_res->unlock(rtRoom, resid);
_res->unlock(rtRoomImage, resid);
break;
- case 116:
+ case SO_CLEAR_HEAP:
// TODO: Clear Heap
break;
- case 117: // SO_LOAD_CHARSET
+ case SO_LOAD_CHARSET:
resid = pop();
loadCharset(resid);
break;
- case 118: // SO_NUKE_CHARSET
+ case SO_NUKE_CHARSET:
resid = pop();
nukeCharset(resid);
break;
- case 119: // SO_LOAD_OBJECT
+ case SO_LOAD_OBJECT:
{
int obj = pop();
int room = getObjectRoom(obj);
loadFlObject(obj, room);
break;
}
- case 120:
+ case SO_PRELOAD_SCRIPT:
resid = pop();
if (resid >= _numGlobalScripts)
break;
//queueLoadResource(rtScript, resid);
break;
- case 121:
+ case SO_PRELOAD_SOUND:
resid = pop();
//queueLoadResource(rtSound, resid);
break;
- case 122:
+ case SO_PRELOAD_COSTUME:
resid = pop();
//queueLoadResource(rtCostume, resid);
break;
- case 123:
+ case SO_PRELOAD_ROOM:
resid = pop();
//queueLoadResource(rtRoomImage, resid);
break;
- case 159:
+ case SO_UNLOCK_IMAGE:
resid = pop();
_res->unlock(rtImage, resid);
break;
- case 192:
+ case SO_NUKE_IMAGE:
resid = pop();
_res->nukeResource(rtImage, resid);
break;
- case 201:
+ case SO_LOAD_IMAGE:
resid = pop();
ensureResourceLoaded(rtImage, resid);
break;
- case 202:
+ case SO_LOCK_IMAGE:
resid = pop();
_res->lock(rtImage, resid);
break;
- case 203:
+ case SO_PRELOAD_IMAGE:
resid = pop();
//queueLoadResource(rtImage, resid);
break;
- case 233:
+ case SO_LOCK_FLOBJECT:
resid = pop();
objidx = getObjectIndex(resid);
if (objidx == -1)
break;
_res->lock(rtFlObject, _objs[objidx].fl_object_index);
break;
- case 235:
+ case SO_UNLOCK_FLOBJECT:
resid = pop();
objidx = getObjectIndex(resid);
if (objidx == -1)
break;
_res->unlock(rtFlObject, _objs[objidx].fl_object_index);
break;
- case 239:
+ case SO_PRELOAD_FLUSH:
// Used in airport
break;
default:
@@ -304,36 +304,36 @@ void ScummEngine_v70he::o70_systemOps() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 158:
+ case SO_RESTART:
restart();
break;
- case 160:
+ case SO_QUIT:
// Confirm shutdown
confirmExitDialog();
break;
- case 244:
+ case SO_QUIT_QUIT:
quitGame();
break;
- case 250:
+ case SO_START_SYSTEM:
id = pop();
src = getStringAddress(id);
len = resStrLen(src) + 1;
memcpy(string, src, len);
debug(0, "Start executable (%s)", string);
break;
- case 251:
+ case SO_START_SYSTEM_STRING:
convertMessageToString(_scriptPointer, string, sizeof(string));
len = resStrLen(_scriptPointer);
_scriptPointer += len + 1;
debug(0, "Start executable (%s)", string);
break;
- case 252:
+ case SO_RESTART_STRING:
convertMessageToString(_scriptPointer, string, sizeof(string));
len = resStrLen(_scriptPointer);
_scriptPointer += len + 1;
debug(0, "Start game (%s)", string);
break;
- case 253:
+ case SO_RESTART_ARRAY:
id = pop();
src = getStringAddress(id);
len = resStrLen(src) + 1;
@@ -367,19 +367,19 @@ void ScummEngine_v70he::o70_isResourceLoaded() {
int idx = pop();
switch (subOp) {
- case 18:
+ case SO_IMAGE_LOADED:
type = rtImage;
break;
- case 226:
+ case SO_ROOM_LOADED:
type = rtRoom;
break;
- case 227:
+ case SO_COSTUME_LOADED:
type = rtCostume;
break;
- case 228:
+ case SO_SOUND_LOADED:
type = rtSound;
break;
- case 229:
+ case SO_SCRIPT_LOADED:
type = rtScript;
break;
default:
@@ -478,16 +478,16 @@ void ScummEngine_v70he::o70_setSystemMessage() {
_scriptPointer += len + 1;
switch (subOp) {
- case 240:
+ case SO_PAUSE_MESSAGE:
debug(1,"o70_setSystemMessage: (%d) %s", subOp, name);
break;
- case 241: // Set Version
+ case SO_PAUSE_TITLE: // Set Version
debug(1,"o70_setSystemMessage: (%d) %s", subOp, name);
break;
- case 242:
+ case SO_PAUSE_OPTION:
debug(1,"o70_setSystemMessage: (%d) %s", subOp, name);
break;
- case 243: // Set Window Caption
+ case SO_TITLE_BAR: // Set Window Caption
// TODO: The 'name' string can contain non-ASCII data. This can lead to
// problems, because the encoding used for "name" is not clear.
//
diff --git a/engines/scumm/he/script_v71he.cpp b/engines/scumm/he/script_v71he.cpp
index 6233eeccde2..c2aa250a375 100644
--- a/engines/scumm/he/script_v71he.cpp
+++ b/engines/scumm/he/script_v71he.cpp
@@ -410,10 +410,10 @@ void ScummEngine_v71he::o71_polygonOps() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 68: // HE 100
- case 69: // HE 100
- case 246:
- case 248:
+ case ScummEngine_v100he::SO_SET_POLYGON: // HE 100
+ case ScummEngine_v100he::SO_SET_POLYGON_LOCAL: // HE 100
+ case SO_SET_POLYGON:
+ case SO_SET_POLYGON_LOCAL:
vert4y = pop();
vert4x = pop();
vert3y = pop();
@@ -422,12 +422,12 @@ void ScummEngine_v71he::o71_polygonOps() {
vert2x = pop();
vert1y = pop();
vert1x = pop();
- flag = (subOp == 69 || subOp == 248);
+ flag = (subOp == ScummEngine_v100he::SO_SET_POLYGON_LOCAL || subOp == SO_SET_POLYGON_LOCAL);
id = pop();
_wiz->polygonStore(id, flag, vert1x, vert1y, vert2x, vert2y, vert3x, vert3y, vert4x, vert4y);
break;
- case 28: // HE 100
- case 247:
+ case ScummEngine_v100he::SO_DELETE_POLYGON: // HE 100
+ case SO_DELETE_POLYGON:
toId = pop();
fromId = pop();
_wiz->polygonErase(fromId, toId);
diff --git a/engines/scumm/he/script_v72he.cpp b/engines/scumm/he/script_v72he.cpp
index ae29efdcbe4..9d7de9beaa1 100644
--- a/engines/scumm/he/script_v72he.cpp
+++ b/engines/scumm/he/script_v72he.cpp
@@ -574,18 +574,18 @@ void ScummEngine_v72he::o72_drawObject() {
int state, y, x;
switch (subOp) {
- case 62:
+ case SO_AT_IMAGE:
state = pop();
y = pop();
x = pop();
break;
- case 63:
+ case SO_IMAGE:
state = pop();
if (state == 0)
state = 1;
y = x = -100;
break;
- case 65:
+ case SO_AT:
state = 1;
y = pop();
x = pop();
@@ -629,27 +629,27 @@ void ScummEngine_v72he::o72_getArrayDimSize() {
}
switch (subOp) {
- case 1:
- case 3:
+ case SO_NONE:
+ case SO_NIBBLE:
val1 = FROM_LE_32(ah->dim1end);
val2 = FROM_LE_32(ah->dim1start);
push(val1 - val2 + 1);
break;
- case 2:
+ case SO_BIT:
val1 = FROM_LE_32(ah->dim2end);
val2 = FROM_LE_32(ah->dim2start);
push(val1 - val2 + 1);
break;
- case 4:
+ case SO_BYTE:
push(FROM_LE_32(ah->dim1start));
break;
- case 5:
+ case SO_INT:
push(FROM_LE_32(ah->dim1end));
break;
- case 6:
+ case SO_DWORD:
push(FROM_LE_32(ah->dim2start));
break;
- case 7:
+ case SO_STRING:
push(FROM_LE_32(ah->dim2end));
break;
default:
@@ -675,7 +675,7 @@ void ScummEngine_v72he::o72_roomOps() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 172: // SO_ROOM_SCROLL
+ case SO_ROOM_SCROLL:
b = pop();
a = pop();
if (a < (_screenWidth / 2))
@@ -690,13 +690,13 @@ void ScummEngine_v72he::o72_roomOps() {
VAR(VAR_CAMERA_MAX_X) = b;
break;
- case 174: // SO_ROOM_SCREEN
+ case SO_ROOM_SCREEN:
b = pop();
a = pop();
initScreens(a, _screenHeight);
break;
- case 175: // SO_ROOM_PALETTE
+ case SO_ROOM_PALETTE:
d = pop();
c = pop();
b = pop();
@@ -704,25 +704,25 @@ void ScummEngine_v72he::o72_roomOps() {
setPalColor(d, a, b, c);
break;
- case 179: // SO_ROOM_INTENSITY
+ case SO_ROOM_INTENSITY:
c = pop();
b = pop();
a = pop();
darkenPalette(a, a, a, b, c);
break;
- case 180: // SO_ROOM_SAVEGAME
+ case SO_ROOM_SAVEGAME:
_saveTemporaryState = true;
_saveLoadSlot = pop();
_saveLoadFlag = pop();
break;
- case 181: // SO_ROOM_FADE
+ case SO_ROOM_FADE:
// Defaults to 1 but doesn't use fade effects
a = pop();
break;
- case 182: // SO_RGB_ROOM_INTENSITY
+ case SO_RGB_ROOM_INTENSITY:
e = pop();
d = pop();
c = pop();
@@ -731,18 +731,18 @@ void ScummEngine_v72he::o72_roomOps() {
darkenPalette(a, b, c, d, e);
break;
- case 213: // SO_ROOM_NEW_PALETTE
+ case SO_ROOM_NEW_PALETTE:
a = pop();
setCurrentPalette(a);
break;
- case 220: // SO_ROOM_COPY_PALETTE
+ case SO_ROOM_COPY_PALETTE:
a = pop();
b = pop();
copyPalColor(a, b);
break;
- case 221: // SO_ROOM_SAVEGAME_BY_NAME
+ case SO_ROOM_SAVEGAME_BY_NAME:
byte buffer[256];
copyScriptString((byte *)buffer, sizeof(buffer));
@@ -755,13 +755,13 @@ void ScummEngine_v72he::o72_roomOps() {
_saveTemporaryState = true;
break;
- case 234: // SO_OBJECT_ORDER
+ case SO_OBJECT_ORDER:
b = pop();
a = pop();
swapObjects(a, b);
break;
- case 236: // SO_ROOM_PALETTE_IN_ROOM
+ case SO_ROOM_PALETTE_IN_ROOM:
b = pop();
a = pop();
setRoomPalette(a, b);
@@ -779,7 +779,7 @@ void ScummEngine_v72he::o72_actorOps() {
byte string[256];
byte subOp = fetchScriptByte();
- if (subOp == 197) {
+ if (subOp == SO_ACTOR_INIT) {
_curActor = pop();
return;
}
@@ -789,174 +789,174 @@ void ScummEngine_v72he::o72_actorOps() {
return;
switch (subOp) {
- case 21: // SO_CONDITION (HE 80+)
+ case SO_CONDITION: // (HE 80+)
k = getStackList(args, ARRAYSIZE(args));
for (i = 0; i < k; ++i) {
a->setUserCondition(args[i] & 0x7F, args[i] & 0x80);
}
break;
- case 24: // SO_TALK_CONDITION (HE 80+)
+ case SO_TALK_CONDITION: // (HE 80+)
k = pop();
if (k == 0)
k = _rnd.getRandomNumberRng(1, 10);
a->_heNoTalkAnimation = 1;
a->setTalkCondition(k);
break;
- case 43: // SO_PRIORITY (HE 90+)
+ case SO_PRIORITY: // (HE 90+)
a->_layer = pop();
a->_needRedraw = true;
break;
- case 64: // SO_ACTOR_DEFAULT_CLIPPED
+ case SO_ACTOR_DEFAULT_CLIPPED:
_actorClipOverride.bottom = pop();
_actorClipOverride.right = pop();
_actorClipOverride.top = pop();
_actorClipOverride.left = pop();
adjustRect(_actorClipOverride);
break;
- case 65: // SO_AT (HE 98+)
+ case SO_AT: // (HE 98+)
j = pop();
i = pop();
a->putActor(i, j);
break;
- case 67: // SO_CLIPPED (HE 99+)
+ case SO_CLIPPED: // (HE 99+)
a->_clipOverride.bottom = pop();
a->_clipOverride.right = pop();
a->_clipOverride.top = pop();
a->_clipOverride.left = pop();
adjustRect(a->_clipOverride);
break;
- case 68: // // SO_ERASE (HE 90+)
+ case SO_ERASE: // // (HE 90+)
k = pop();
a->setHEFlag(1, k);
break;
- case 76: // SO_COSTUME
+ case SO_COSTUME:
a->setActorCostume(pop());
break;
- case 77: // SO_STEP_DIST
+ case SO_STEP_DIST:
j = pop();
i = pop();
a->setActorWalkSpeed(i, j);
break;
- case 78: // SO_SOUND
+ case SO_SOUND:
k = getStackList(args, ARRAYSIZE(args));
for (i = 0; i < k; i++)
a->_sound[i] = args[i];
break;
- case 79: // SO_WALK_ANIMATION
+ case SO_WALK_ANIMATION:
a->_walkFrame = pop();
break;
- case 80: // SO_TALK_ANIMATION
+ case SO_TALK_ANIMATION:
a->_talkStopFrame = pop();
a->_talkStartFrame = pop();
break;
- case 81: // SO_STAND_ANIMATION
+ case SO_STAND_ANIMATION:
a->_standFrame = pop();
break;
- case 82: // SO_ANIMATION
+ case SO_ANIMATION:
// dummy case in scumm6
pop();
pop();
pop();
break;
- case 83: // SO_DEFAULT
+ case SO_DEFAULT:
a->initActor(0);
break;
- case 84: // SO_ELEVATION
+ case SO_ELEVATION:
a->setElevation(pop());
break;
- case 85: // SO_ANIMATION_DEFAULT
+ case SO_ANIMATION_DEFAULT:
a->_initFrame = 1;
a->_walkFrame = 2;
a->_standFrame = 3;
a->_talkStartFrame = 4;
a->_talkStopFrame = 5;
break;
- case 86: // SO_PALETTE
+ case SO_PALETTE:
j = pop();
i = pop();
assertRange(0, i, 255, "palette slot");
a->remapActorPaletteColor(i, j);
a->_needRedraw = true;
break;
- case 87: // SO_TALK_COLOR
+ case SO_TALK_COLOR:
a->_talkColor = pop();
// WORKAROUND bug #13730: defined subtitles color 16 is very dark and hard to read on the dark background.
// we change it to brighter color to ease reading.
if (_game.id == GID_FREDDI4 && _game.heversion == 98 && _currentRoom == 43 && a->_talkColor == 16)
a->_talkColor = 200;
break;
- case 88: // SO_ACTOR_NAME
+ case SO_ACTOR_NAME:
copyScriptString(string, sizeof(string));
loadPtrToResource(rtActorName, a->_number, string);
break;
- case 89: // SO_INIT_ANIMATION
+ case SO_INIT_ANIMATION:
a->_initFrame = pop();
break;
- case 91: // SO_ACTOR_WIDTH
+ case SO_ACTOR_WIDTH:
a->_width = pop();
break;
- case 92: // SO_SCALE
+ case SO_SCALE:
i = pop();
a->setScale(i, i);
break;
- case 93: // SO_NEVER_ZCLIP
+ case SO_NEVER_ZCLIP:
a->_forceClip = 0;
break;
- case 94: // SO_ALWAYS_ZCLIP
+ case SO_ALWAYS_ZCLIP:
a->_forceClip = pop();
break;
- case 95: // SO_IGNORE_BOXES
+ case SO_IGNORE_BOXES:
a->_ignoreBoxes = 1;
a->_forceClip = 0;
if (a->isInCurrentRoom())
a->putActor();
break;
- case 96: // SO_FOLLOW_BOXES
+ case SO_FOLLOW_BOXES:
a->_ignoreBoxes = 0;
a->_forceClip = 0;
if (a->isInCurrentRoom())
a->putActor();
break;
- case 97: // SO_ANIMATION_SPEED
+ case SO_ANIMATION_SPEED:
a->setAnimSpeed(pop());
break;
- case 98: // SO_SHADOW
+ case SO_SHADOW:
a->_heXmapNum = pop();
a->_needRedraw = true;
break;
- case 99: // SO_TEXT_OFFSET
+ case SO_TEXT_OFFSET:
a->_talkPosY = pop();
a->_talkPosX = pop();
break;
- case 156: // SO_CHARSET (HE 72+)
+ case SO_CHARSET_SET: // (HE 72+)
a->_charset = pop();
break;
- case 175: // SO_ROOM_PALETTE (HE 99+)
+ case SO_ROOM_PALETTE: // (HE 99+)
a->_hePaletteNum = pop();
a->_needRedraw = true;
break;
- case 198: // SO_ACTOR_VARIABLE
+ case SO_ACTOR_VARIABLE:
i = pop();
a->setAnimVar(pop(), i);
break;
- case 215: // SO_ACTOR_IGNORE_TURNS_ON
+ case SO_ACTOR_IGNORE_TURNS_ON:
a->_ignoreTurns = true;
break;
- case 216: // SO_ACTOR_IGNORE_TURNS_OFF
+ case SO_ACTOR_IGNORE_TURNS_OFF:
a->_ignoreTurns = false;
break;
- case 217: // SO_ACTOR_NEW
+ case SO_NEW:
a->initActor(2);
break;
- case 218: // SO_BACKGROUND_ON
+ case SO_BACKGROUND_ON:
a->drawActorToBackBuf(a->getPos().x, a->getPos().y);
break;
- case 219: // SO_BACKGROUND_OFF
+ case SO_BACKGROUND_OFF:
a->_drawToBackBuf = false;
a->_needRedraw = true;
a->_needBgReset = true;
break;
- case 225: // SO_TALKIE
+ case SO_TALKIE:
{
copyScriptString(string, sizeof(string));
int slot = pop();
@@ -980,7 +980,7 @@ void ScummEngine_v72he::o72_verbOps() {
byte name[200];
byte subOp = fetchScriptByte();
- if (subOp == 196) {
+ if (subOp == SO_VERB_INIT) {
_curVerb = pop();
_curVerbSlot = getVerbSlot(_curVerb, 0);
assertRange(0, _curVerbSlot, _numVerbs - 1, "new verb slot");
@@ -989,7 +989,7 @@ void ScummEngine_v72he::o72_verbOps() {
vs = &_verbs[_curVerbSlot];
slot = _curVerbSlot;
switch (subOp) {
- case 124: // SO_VERB_IMAGE
+ case SO_VERB_IMAGE:
a = pop();
if (_curVerbSlot) {
setVerbObject(_roomResource, a, slot);
@@ -997,33 +997,33 @@ void ScummEngine_v72he::o72_verbOps() {
vs->imgindex = a;
}
break;
- case 125: // SO_VERB_NAME
+ case SO_VERB_NAME:
copyScriptString(name, sizeof(name));
loadPtrToResource(rtVerb, slot, name);
vs->type = kTextVerbType;
vs->imgindex = 0;
break;
- case 126: // SO_VERB_COLOR
+ case SO_VERB_COLOR:
vs->color = pop();
break;
- case 127: // SO_VERB_HICOLOR
+ case SO_VERB_HICOLOR:
vs->hicolor = pop();
break;
- case 128: // SO_VERB_AT
+ case SO_VERB_AT:
vs->curRect.top = pop();
vs->curRect.left = pop();
break;
- case 129: // SO_VERB_ON
+ case SO_VERB_ON:
vs->curmode = 1;
break;
- case 130: // SO_VERB_OFF
+ case SO_VERB_OFF:
vs->curmode = 0;
break;
- case 131: // SO_VERB_DELETE
+ case SO_VERB_DELETE:
slot = getVerbSlot(pop(), 0);
killVerb(slot);
break;
- case 132: // SO_VERB_NEW
+ case SO_VERB_NEW:
slot = getVerbSlot(_curVerb, 0);
if (slot == 0) {
for (slot = 1; slot < _numVerbs; slot++) {
@@ -1047,19 +1047,19 @@ void ScummEngine_v72he::o72_verbOps() {
vs->center = 0;
vs->imgindex = 0;
break;
- case 133: // SO_VERB_DIMCOLOR
+ case SO_VERB_DIMCOLOR:
vs->dimcolor = pop();
break;
- case 134: // SO_VERB_DIM
+ case SO_VERB_DIM:
vs->curmode = 2;
break;
- case 135: // SO_VERB_KEY
+ case SO_VERB_KEY:
vs->key = pop();
break;
- case 136: // SO_VERB_CENTER
+ case SO_VERB_CENTER:
vs->center = 1;
break;
- case 137: // SO_VERB_NAME_STR
+ case SO_VERB_NAME_STR:
a = pop();
if (a == 0) {
loadPtrToResource(rtVerb, slot, (const byte *)"");
@@ -1069,7 +1069,7 @@ void ScummEngine_v72he::o72_verbOps() {
vs->type = kTextVerbType;
vs->imgindex = 0;
break;
- case 139: // SO_VERB_IMAGE_IN_ROOM
+ case SO_VERB_IMAGE_IN_ROOM:
b = pop();
a = pop();
@@ -1079,7 +1079,7 @@ void ScummEngine_v72he::o72_verbOps() {
vs->imgindex = a;
}
break;
- case 140: // SO_VERB_BAKCOLOR
+ case SO_VERB_BAKCOLOR:
vs->bkcolor = pop();
break;
case 255:
@@ -1111,14 +1111,14 @@ void ScummEngine_v72he::o72_arrayOps() {
debug(9,"o72_arrayOps: array %d case %d", array, subOp);
switch (subOp) {
- case 7: // SO_ASSIGN_STRING
+ case SO_STRING:
copyScriptString(string, sizeof(string));
len = resStrLen(string);
data = defineArray(array, kStringArray, 0, 0, 0, len);
memcpy(data, string, len);
break;
- case 126: // SO_COMPLEX_ARRAY_ASSIGNMENT
+ case SO_COMPLEX_ARRAY_ASSIGNMENT:
len = getStackList(list, ARRAYSIZE(list));
dim1end = pop();
dim1start = pop();
@@ -1142,7 +1142,7 @@ void ScummEngine_v72he::o72_arrayOps() {
dim2start++;
}
break;
- case 127: // SO_COMPLEX_ARRAY_COPY_OPERATION
+ case SO_COMPLEX_ARRAY_COPY_OPERATION:
{
int a2_dim1end = pop();
int a2_dim1start = pop();
@@ -1159,7 +1159,7 @@ void ScummEngine_v72he::o72_arrayOps() {
copyArray(array, a1_dim2start, a1_dim2end, a1_dim1start, a1_dim1end, array2, a2_dim2start, a2_dim2end, a2_dim1start, a2_dim1end);
}
break;
- case 128: // SO_RANGE_ARRAY_ASSIGNMENT
+ case SO_RANGE_ARRAY_ASSIGNMENT:
b = pop();
c = pop();
dim1end = pop();
@@ -1190,13 +1190,13 @@ void ScummEngine_v72he::o72_arrayOps() {
dim2start++;
}
break;
- case 194: // SO_FORMATTED_STRING
+ case SO_FORMATTED_STRING:
decodeScriptString(string);
len = resStrLen(string);
data = defineArray(array, kStringArray, 0, 0, 0, len);
memcpy(data, string, len);
break;
- case 208: // SO_ASSIGN_INT_LIST
+ case SO_ASSIGN_INT_LIST:
b = pop();
c = pop();
id = readVar(array);
@@ -1207,7 +1207,7 @@ void ScummEngine_v72he::o72_arrayOps() {
writeArray(array, 0, b + c, pop());
}
break;
- case 212: // SO_ASSIGN_2DIM_LIST
+ case SO_ASSIGN_2DIM_LIST:
len = getStackList(list, ARRAYSIZE(list));
id = readVar(array);
if (id == 0)
@@ -1228,28 +1228,28 @@ void ScummEngine_v72he::o72_systemOps() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 22: // HE80+
+ case SO_FLUSH_OBJECT_DRAW_QUE: // HE80+
clearDrawObjectQueue();
break;
- case 26: // HE80+
+ case SO_UPDATE_SCREEN: // HE80+
restoreBackgroundHE(Common::Rect(_screenWidth, _screenHeight));
updatePalette();
break;
- case 158:
+ case SO_RESTART:
restart();
break;
- case 160:
+ case SO_QUIT:
// Confirm shutdown
confirmExitDialog();
break;
- case 244:
+ case SO_QUIT_QUIT:
quitGame();
break;
- case 251:
+ case SO_START_SYSTEM_STRING:
copyScriptString(string, sizeof(string));
debug(0, "Start executable (%s)", string);
break;
- case 252:
+ case SO_RESTART_STRING:
copyScriptString(string, sizeof(string));
debug(0, "Start game (%s)", string);
break;
@@ -1294,25 +1294,25 @@ void ScummEngine_v72he::o72_dimArray() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 2: // SO_BIT_ARRAY
+ case SO_BIT:
data = kBitArray;
break;
- case 3: // SO_NIBBLE_ARRAY
+ case SO_NIBBLE:
data = kNibbleArray;
break;
- case 4: // SO_BYTE_ARRAY
+ case SO_BYTE:
data = kByteArray;
break;
- case 5: // SO_INT_ARRAY
+ case SO_INT:
data = kIntArray;
break;
- case 6:
+ case SO_DWORD:
data = kDwordArray;
break;
- case 7: // SO_STRING_ARRAY
+ case SO_STRING:
data = kStringArray;
break;
- case 204: // SO_UNDIM_ARRAY
+ case SO_UNDIM_ARRAY:
nukeArray(fetchScriptWord());
return;
default:
@@ -1329,22 +1329,22 @@ void ScummEngine_v72he::o72_dim2dimArray() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 2: // SO_BIT_ARRAY
+ case SO_BIT:
data = kBitArray;
break;
- case 3: // SO_NIBBLE_ARRAY
+ case SO_NIBBLE:
data = kNibbleArray;
break;
- case 4: // SO_BYTE_ARRAY
+ case SO_BYTE:
data = kByteArray;
break;
- case 5: // SO_INT_ARRAY
+ case SO_INT:
data = kIntArray;
break;
- case 6:
+ case SO_DWORD:
data = kDwordArray;
break;
- case 7: // SO_STRING_ARRAY
+ case SO_STRING:
data = kStringArray;
break;
default:
@@ -1484,25 +1484,25 @@ void ScummEngine_v72he::o72_readFile() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 4:
+ case SO_BYTE:
slot = pop();
assert(_hInFileTable[slot]);
val = _hInFileTable[slot]->readByte();
push(val);
break;
- case 5:
+ case SO_INT:
slot = pop();
assert(_hInFileTable[slot]);
val = _hInFileTable[slot]->readUint16LE();
push(val);
break;
- case 6:
+ case SO_DWORD:
slot = pop();
assert(_hInFileTable[slot]);
val = _hInFileTable[slot]->readUint32LE();
push(val);
break;
- case 8:
+ case SO_ARRAY:
fetchScriptByte();
size = pop();
slot = pop();
@@ -1552,16 +1552,16 @@ void ScummEngine_v72he::o72_writeFile() {
assert(_hOutFileTable[slot]);
switch (subOp) {
- case 4:
+ case SO_BYTE:
_hOutFileTable[slot]->writeByte(resID);
break;
- case 5:
+ case SO_INT:
_hOutFileTable[slot]->writeUint16LE(resID);
break;
- case 6:
+ case SO_DWORD:
_hOutFileTable[slot]->writeUint32LE(resID);
break;
- case 8:
+ case SO_ARRAY:
fetchScriptByte();
writeFileFromArray(slot, resID);
break;
@@ -1623,15 +1623,15 @@ void ScummEngine_v72he::o72_getPixel() {
}
switch (subOp) {
- case 9: // HE 100
- case 218:
+ case ScummEngine_v100he::SO_BACKGROUND_ON: // HE 100
+ case SO_BACKGROUND_ON:
if (_game.features & GF_16BIT_COLOR)
area = READ_UINT16(vs->getBackPixels(x, y - vs->topline));
else
area = *vs->getBackPixels(x, y - vs->topline);
break;
- case 8: // HE 100
- case 219:
+ case ScummEngine_v100he::SO_BACKGROUND_OFF: // HE 100
+ case SO_BACKGROUND_OFF:
if (_game.features & GF_16BIT_COLOR)
area = READ_UINT16(vs->getPixels(x, y - vs->topline));
else
@@ -1693,13 +1693,13 @@ void ScummEngine_v72he::o72_redimArray() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 4:
+ case SO_BYTE:
redimArray(fetchScriptWord(), 0, newX, 0, newY, kByteArray);
break;
- case 5:
+ case SO_INT:
redimArray(fetchScriptWord(), 0, newX, 0, newY, kIntArray);
break;
- case 6:
+ case SO_DWORD:
redimArray(fetchScriptWord(), 0, newX, 0, newY, kDwordArray);
break;
default:
@@ -1849,8 +1849,8 @@ void ScummEngine_v72he::o72_readINI() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 43: // HE 100
- case 6: // number
+ case ScummEngine_v100he::SO_DWORD: // HE 100
+ case SO_DWORD: // number
if (!strcmp((char *)option, "DisablePrinting") || !strcmp((char *)option, "NoPrinting")) {
push(1);
} else if (!strcmp((char *)option, "TextOn")) {
@@ -1868,8 +1868,8 @@ void ScummEngine_v72he::o72_readINI() {
push(ConfMan.getInt((char *)option));
}
break;
- case 77: // HE 100
- case 7: // string
+ case ScummEngine_v100he::SO_STRING: // HE 100
+ case SO_STRING: // string
writeVar(0, 0);
if (!strcmp((char *)option, "HE3File")) {
Common::String fileName = generateFilename(-3);
@@ -1907,16 +1907,16 @@ void ScummEngine_v72he::o72_writeINI() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 43: // HE 100
- case 6: // number
+ case ScummEngine_v100he::SO_DWORD: // HE 100
+ case SO_DWORD: // number
value = pop();
copyScriptString(option, sizeof(option));
debug(1, "o72_writeINI: Option %s Value %d", option, value);
ConfMan.setInt((char *)option, value);
break;
- case 77: // HE 100
- case 7: // string
+ case ScummEngine_v100he::SO_STRING: // HE 100
+ case SO_STRING: // string
copyScriptString(string, sizeof(string));
copyScriptString(option, sizeof(option));
debug(1, "o72_writeINI: Option %s String %s", option, string);
@@ -1956,19 +1956,19 @@ void ScummEngine_v72he::o72_getResourceSize() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 13:
+ case SO_SOUND_SIZE:
push(getSoundResourceSize(resid));
return;
- case 14:
+ case SO_ROOM_SIZE:
type = rtRoomImage;
break;
- case 15:
+ case SO_IMAGE_SIZE:
type = rtImage;
break;
- case 16:
+ case SO_COSTUME_SIZE:
type = rtCostume;
break;
- case 17:
+ case SO_SCRIPT_SIZE:
type = rtScript;
break;
default:
@@ -1995,16 +1995,16 @@ void ScummEngine_v72he::o72_setSystemMessage() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 240:
+ case SO_PAUSE_MESSAGE:
debug(1,"o72_setSystemMessage: (%d) %s", subOp, name);
break;
- case 241: // Set Version
+ case SO_PAUSE_TITLE: // Set Version
debug(1,"o72_setSystemMessage: (%d) %s", subOp, name);
break;
- case 242:
+ case SO_PAUSE_OPTION:
debug(1,"o72_setSystemMessage: (%d) %s", subOp, name);
break;
- case 243: // Set Window Caption
+ case SO_TITLE_BAR: // Set Window Caption
// TODO: The 'name' string can contain non-ASCII data. This can lead to
// problems, because the encoding used for "name" is not clear.
//
@@ -2027,41 +2027,41 @@ void ScummEngine_v72he::decodeParseString(int m, int n) {
byte b = fetchScriptByte();
switch (b) {
- case 65: // SO_AT
+ case SO_AT:
_string[m].ypos = pop();
_string[m].xpos = pop();
_string[m].overhead = false;
break;
- case 66: // SO_COLOR
+ case SO_COLOR:
_string[m].color = pop();
break;
- case 67: // SO_CLIPPED
+ case SO_CLIPPED:
_string[m].right = pop();
break;
- case 69: // SO_CENTER
+ case SO_CENTER:
_string[m].center = true;
_string[m].overhead = false;
break;
- case 71: // SO_LEFT
+ case SO_LEFT:
_string[m].center = false;
_string[m].overhead = false;
break;
- case 72: // SO_OVERHEAD
+ case SO_OVERHEAD:
_string[m].overhead = true;
_string[m].no_talk_anim = false;
break;
- case 74: // SO_MUMBLE
+ case SO_MUMBLE:
_string[m].no_talk_anim = true;
break;
- case 75: // SO_TEXTSTRING
+ case SO_TEXTSTRING:
printString(m, _scriptPointer);
_scriptPointer += resStrLen(_scriptPointer) + 1;
break;
- case 194:
+ case SO_FORMATTED_STRING:
decodeScriptString(name, true);
printString(m, name);
break;
- case 0xE1:
+ case SO_TALKIE:
{
byte *dataPtr = getResourceAddress(rtTalkie, pop());
byte *text = findWrappedBlock(MKTAG('T','E','X','T'), dataPtr, 0, 0);
@@ -2070,7 +2070,7 @@ void ScummEngine_v72he::decodeParseString(int m, int n) {
printString(m, name);
}
break;
- case 0xF9:
+ case SO_COLOR_LIST:
colors = pop();
if (colors == 1) {
_string[m].color = pop();
@@ -2086,7 +2086,7 @@ void ScummEngine_v72he::decodeParseString(int m, int n) {
_string[m].color = _charsetColorMap[0];
}
break;
- case 0xFE:
+ case SO_BASEOP:
_string[m].loadDefault();
if (n) {
_actorToPrintStrFor = pop();
@@ -2096,7 +2096,7 @@ void ScummEngine_v72he::decodeParseString(int m, int n) {
}
}
break;
- case 0xFF:
+ case SO_END:
_string[m].saveDefault();
break;
default:
diff --git a/engines/scumm/he/script_v80he.cpp b/engines/scumm/he/script_v80he.cpp
index 9513db62095..714b18022d8 100644
--- a/engines/scumm/he/script_v80he.cpp
+++ b/engines/scumm/he/script_v80he.cpp
@@ -67,16 +67,16 @@ void ScummEngine_v80he::o80_createSound() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 27:
+ case SO_ADD:
createSound(_heSndResId, pop());
break;
- case 217:
+ case SO_NEW:
createSound(_heSndResId, -1);
break;
- case 232:
+ case SO_SOUND_START:
_heSndResId = pop();
break;
- case 255:
+ case SO_END:
// dummy case
break;
default:
@@ -184,15 +184,15 @@ void ScummEngine_v80he::o80_readConfigFile() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 43: // HE 100
- case 6: // number
+ case ScummEngine_v100he::SO_DWORD: // HE 100
+ case SO_DWORD: // number
if (!strcmp((char *)option, "Benchmark"))
push(2);
else
push(atoi(entry.c_str()));
break;
- case 77: // HE 100
- case 7: // string
+ case ScummEngine_v100he::SO_STRING: // HE 100
+ case SO_STRING: // string
writeVar(0, 0);
len = resStrLen((const byte *)entry.c_str());
data = defineArray(0, kStringArray, 0, 0, 0, len);
@@ -213,16 +213,16 @@ void ScummEngine_v80he::o80_writeConfigFile() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 43: // HE 100
- case 6: // number
+ case ScummEngine_v100he::SO_DWORD: // HE 100
+ case SO_DWORD: // number
value = pop();
Common::sprintf_s(string, "%d", value);
copyScriptString(option, sizeof(option));
copyScriptString(section, sizeof(section));
copyScriptString(filename, sizeof(filename));
break;
- case 77: // HE 100
- case 7: // string
+ case ScummEngine_v100he::SO_STRING: // HE 100
+ case SO_STRING: // string
copyScriptString(string, sizeof(string));
copyScriptString(option, sizeof(option));
copyScriptString(section, sizeof(section));
@@ -261,46 +261,46 @@ void ScummEngine_v80he::o80_cursorCommand() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 0x13:
- case 0x14:
+ case SO_CURSOR_IMAGE:
+ case SO_CURSOR_COLOR_IMAGE:
a = pop();
_wiz->loadWizCursor(a, 0);
break;
- case 0x3C:
+ case SO_BUTTON:
b = pop();
a = pop();
_wiz->loadWizCursor(a, b);
break;
- case 0x90: // SO_CURSOR_ON Turn cursor on
+ case SO_CURSOR_ON: // Turn cursor on
_cursor.state = 1;
break;
- case 0x91: // SO_CURSOR_OFF Turn cursor off
+ case SO_CURSOR_OFF: // Turn cursor off
_cursor.state = 0;
break;
- case 0x92: // SO_USERPUT_ON
+ case SO_USERPUT_ON:
_userPut = 1;
break;
- case 0x93: // SO_USERPUT_OFF
+ case SO_USERPUT_OFF:
_userPut = 0;
break;
- case 0x94: // SO_CURSOR_SOFT_ON Turn soft cursor on
+ case SO_CURSOR_SOFT_ON: // Turn soft cursor on
_cursor.state++;
if (_cursor.state > 1)
error("Cursor state greater than 1 in script");
break;
- case 0x95: // SO_CURSOR_SOFT_OFF Turn soft cursor off
+ case SO_CURSOR_SOFT_OFF: // Turn soft cursor off
_cursor.state--;
break;
- case 0x96: // SO_USERPUT_SOFT_ON
+ case SO_USERPUT_SOFT_ON:
_userPut++;
break;
- case 0x97: // SO_USERPUT_SOFT_OFF
+ case SO_USERPUT_SOFT_OFF:
_userPut--;
break;
- case 0x9C: // SO_CHARSET_SET
+ case SO_CHARSET_SET:
initCharset(pop());
break;
- case 0x9D: // SO_CHARSET_COLOR
+ case SO_CHARSET_COLOR:
getStackList(args, ARRAYSIZE(args));
for (i = 0; i < 16; i++)
_charsetColorMap[i] = _charsetData[_string[1]._default.charset][i] = (unsigned char)args[i];
@@ -479,13 +479,13 @@ void ScummEngine_v80he::o80_drawLine() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 55:
+ case SO_ACTOR:
drawLine(x1, y1, x, y, step, 2, id);
break;
- case 63:
+ case SO_IMAGE:
drawLine(x1, y1, x, y, step, 3, id);
break;
- case 66:
+ case SO_COLOR:
drawLine(x1, y1, x, y, step, 1, id);
break;
default:
diff --git a/engines/scumm/he/script_v90he.cpp b/engines/scumm/he/script_v90he.cpp
index 96024ae7a42..12fa39b0fd5 100644
--- a/engines/scumm/he/script_v90he.cpp
+++ b/engines/scumm/he/script_v90he.cpp
@@ -2048,8 +2048,8 @@ void ScummEngine_v90he::o90_sortArray() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 129:
- case 134: // HE100
+ case SO_SORT:
+ case ScummEngine_v100he::SO_SORT: // HE100
{
int array = fetchScriptWord();
int sortOrder = pop();
@@ -2070,44 +2070,44 @@ void ScummEngine_v90he::o90_getObjectData() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 32:
+ case SO_WIDTH:
if (_heObjectNum == -1)
push(0);
else
push(_objs[_heObjectNum].width);
break;
- case 33:
+ case SO_HEIGHT:
if (_heObjectNum == -1)
push(0);
else
push(_objs[_heObjectNum].height);
break;
- case 36:
+ case SO_COUNT:
if (_heObjectNum == -1)
push(0);
else
push(getObjectImageCount(_heObject));
break;
- case 38:
+ case SO_DRAW_XPOS:
if (_heObjectNum == -1)
push(0);
else
push(_objs[_heObjectNum].x_pos);
break;
- case 39:
+ case SO_DRAW_YPOS:
if (_heObjectNum == -1)
push(0);
else
push(_objs[_heObjectNum].y_pos);
break;
- case 52:
+ case SO_STATE:
push(getState(_heObject));
break;
- case 57:
+ case SO_INIT:
_heObject = pop();
_heObjectNum = getObjectIndex(_heObject);
break;
- case 139:
+ case SO_NEW_GENERAL_PROPERTY:
// Dummy case
pop();
push(0);
@@ -2125,7 +2125,7 @@ void ScummEngine_v90he::o90_getPaletteData() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 45:
+ case SO_FIND:
e = pop();
d = pop();
palSlot = pop();
@@ -2134,18 +2134,18 @@ void ScummEngine_v90he::o90_getPaletteData() {
r = pop();
push(getHEPaletteSimilarColor(palSlot, r, g, d, e));
break;
- case 52:
+ case SO_STATE:
c = pop();
b = pop();
palSlot = pop();
push(getHEPaletteColorComponent(palSlot, b, c));
break;
- case 66:
+ case SO_COLOR:
color = pop();
palSlot = pop();
push(getHEPaletteColor(palSlot, color));
break;
- case 132:
+ case SO_CHANNEL:
c = pop();
b = pop();
if (_game.features & GF_16BIT_COLOR)
@@ -2153,7 +2153,7 @@ void ScummEngine_v90he::o90_getPaletteData() {
else
push(getHEPaletteColorComponent(1, b, c));
break;
- case 217:
+ case SO_NEW:
b = pop();
b = MAX(0, b);
b = MIN(b, 255);
@@ -2181,17 +2181,17 @@ void ScummEngine_v90he::o90_paletteOps() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 57:
+ case SO_INIT:
_hePaletteNum = pop();
break;
- case 63:
+ case SO_IMAGE:
b = pop();
a = pop();
if (_hePaletteNum != 0) {
setHEPaletteFromImage(_hePaletteNum, a, b);
}
break;
- case 66:
+ case SO_COLOR:
e = pop();
d = pop();
c = pop();
@@ -2253,8 +2253,8 @@ void ScummEngine_v90he::o90_fontUnk() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 60: // HE100
- case 42:
+ case ScummEngine_v100he::SO_PROPERTY: // HE100
+ case SO_PROPERTY:
a = pop();
if (a == 2) {
copyScriptString(string, sizeof(string));
@@ -2267,8 +2267,8 @@ void ScummEngine_v90he::o90_fontUnk() {
push(readVar(0));
}
break;
- case 0: // HE100
- case 57:
+ case ScummEngine_v100he::SO_INIT: // HE100
+ case SO_INIT:
push(1);
break;
default:
diff --git a/engines/scumm/script_v6.cpp b/engines/scumm/script_v6.cpp
index 02ecbe52a48..c95afeb08c5 100644
--- a/engines/scumm/script_v6.cpp
+++ b/engines/scumm/script_v6.cpp
@@ -892,37 +892,37 @@ void ScummEngine_v6::o6_cursorCommand() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 0x90: // SO_CURSOR_ON Turn cursor on
+ case SO_CURSOR_ON: // Turn cursor on
_cursor.state = 1;
verbMouseOver(0);
break;
- case 0x91: // SO_CURSOR_OFF Turn cursor off
+ case SO_CURSOR_OFF: // Turn cursor off
_cursor.state = 0;
verbMouseOver(0);
break;
- case 0x92: // SO_USERPUT_ON
+ case SO_USERPUT_ON:
_userPut = 1;
break;
- case 0x93: // SO_USERPUT_OFF
+ case SO_USERPUT_OFF:
_userPut = 0;
break;
- case 0x94: // SO_CURSOR_SOFT_ON Turn soft cursor on
+ case SO_CURSOR_SOFT_ON: // Turn soft cursor on
_cursor.state++;
if (_cursor.state > 1)
error("Cursor state greater than 1 in script");
verbMouseOver(0);
break;
- case 0x95: // SO_CURSOR_SOFT_OFF Turn soft cursor off
+ case SO_CURSOR_SOFT_OFF: // Turn soft cursor off
_cursor.state--;
verbMouseOver(0);
break;
- case 0x96: // SO_USERPUT_SOFT_ON
+ case SO_USERPUT_SOFT_ON:
_userPut++;
break;
- case 0x97: // SO_USERPUT_SOFT_OFF
+ case SO_USERPUT_SOFT_OFF:
_userPut--;
break;
- case 0x99: // SO_CURSOR_IMAGE Set cursor image
+ case SO_CURSOR_IMAGE: // Set cursor image
{
int room, obj;
if (_game.heversion >= 70) {
@@ -934,20 +934,20 @@ void ScummEngine_v6::o6_cursorCommand() {
setCursorFromImg(obj, room, 1);
break;
}
- case 0x9A: // SO_CURSOR_HOTSPOT Set cursor hotspot
+ case SO_CURSOR_HOTSPOT: // Set cursor hotspot
a = pop();
setCursorHotspot(pop(), a);
updateCursor();
break;
- case 0x9C: // SO_CHARSET_SET
+ case SO_CHARSET_SET:
initCharset(pop());
break;
- case 0x9D: // SO_CHARSET_COLOR
+ case SO_CHARSET_COLOR:
getStackList(args, ARRAYSIZE(args));
for (i = 0; i < 16; i++)
_charsetColorMap[i] = _charsetData[_string[1]._default.charset][i] = (unsigned char)args[i];
break;
- case 0xD6: // SO_CURSOR_TRANSPARENT Set cursor transparent color
+ case SO_CURSOR_TRANSPARENT: // Set cursor transparent color
setCursorTransparency(pop());
break;
default:
@@ -1542,97 +1542,97 @@ void ScummEngine_v6::o6_resourceRoutines() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 100: // SO_LOAD_SCRIPT
+ case SO_LOAD_SCRIPT:
resid = pop();
if (_game.version >= 7)
if (resid >= _numGlobalScripts)
break;
ensureResourceLoaded(rtScript, resid);
break;
- case 101: // SO_LOAD_SOUND
+ case SO_LOAD_SOUND:
resid = pop();
ensureResourceLoaded(rtSound, resid);
break;
- case 102: // SO_LOAD_COSTUME
+ case SO_LOAD_COSTUME:
resid = pop();
ensureResourceLoaded(rtCostume, resid);
break;
- case 103: // SO_LOAD_ROOM
+ case SO_LOAD_ROOM:
resid = pop();
ensureResourceLoaded(rtRoom, resid);
break;
- case 104: // SO_NUKE_SCRIPT
+ case SO_NUKE_SCRIPT:
resid = pop();
if (_game.version >= 7)
if (resid >= _numGlobalScripts)
break;
_res->setResourceCounter(rtScript, resid, 0x7F);
break;
- case 105: // SO_NUKE_SOUND
+ case SO_NUKE_SOUND:
resid = pop();
_res->setResourceCounter(rtSound, resid, 0x7F);
break;
- case 106: // SO_NUKE_COSTUME
+ case SO_NUKE_COSTUME:
resid = pop();
_res->setResourceCounter(rtCostume, resid, 0x7F);
break;
- case 107: // SO_NUKE_ROOM
+ case SO_NUKE_ROOM:
resid = pop();
_res->setResourceCounter(rtRoom, resid, 0x7F);
break;
- case 108: // SO_LOCK_SCRIPT
+ case SO_LOCK_SCRIPT:
resid = pop();
if (resid >= _numGlobalScripts)
break;
_res->lock(rtScript, resid);
break;
- case 109: // SO_LOCK_SOUND
+ case SO_LOCK_SOUND:
resid = pop();
_res->lock(rtSound, resid);
break;
- case 110: // SO_LOCK_COSTUME
+ case SO_LOCK_COSTUME:
resid = pop();
_res->lock(rtCostume, resid);
break;
- case 111: // SO_LOCK_ROOM
+ case SO_LOCK_ROOM:
resid = pop();
if (resid > 0x7F)
resid = _resourceMapper[resid & 0x7F];
_res->lock(rtRoom, resid);
break;
- case 112: // SO_UNLOCK_SCRIPT
+ case SO_UNLOCK_SCRIPT:
resid = pop();
if (resid >= _numGlobalScripts)
break;
_res->unlock(rtScript, resid);
break;
- case 113: // SO_UNLOCK_SOUND
+ case SO_UNLOCK_SOUND:
resid = pop();
_res->unlock(rtSound, resid);
break;
- case 114: // SO_UNLOCK_COSTUME
+ case SO_UNLOCK_COSTUME:
resid = pop();
_res->unlock(rtCostume, resid);
break;
- case 115: // SO_UNLOCK_ROOM
+ case SO_UNLOCK_ROOM:
resid = pop();
if (resid > 0x7F)
resid = _resourceMapper[resid & 0x7F];
_res->unlock(rtRoom, resid);
break;
- case 116: // SO_CLEAR_HEAP
+ case SO_CLEAR_HEAP:
/* this is actually a scumm message */
error("clear heap not working yet");
break;
- case 117: // SO_LOAD_CHARSET
+ case SO_LOAD_CHARSET:
resid = pop();
loadCharset(resid);
break;
- case 118: // SO_NUKE_CHARSET
+ case SO_NUKE_CHARSET:
resid = pop();
nukeCharset(resid);
break;
- case 119: // SO_LOAD_OBJECT
+ case SO_LOAD_OBJECT:
{
int room, obj = popRoomAndObj(&room);
loadFlObject(obj, room);
@@ -1650,7 +1650,7 @@ void ScummEngine_v6::o6_roomOps() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 172: // SO_ROOM_SCROLL
+ case SO_ROOM_SCROLL:
b = pop();
a = pop();
if (a < (_screenWidth / 2))
@@ -1665,13 +1665,13 @@ void ScummEngine_v6::o6_roomOps() {
VAR(VAR_CAMERA_MAX_X) = b;
break;
- case 174: // SO_ROOM_SCREEN
+ case SO_ROOM_SCREEN:
b = pop();
a = pop();
initScreens(a, b);
break;
- case 175: // SO_ROOM_PALETTE
+ case SO_ROOM_PALETTE:
d = pop();
c = pop();
b = pop();
@@ -1679,15 +1679,15 @@ void ScummEngine_v6::o6_roomOps() {
setPalColor(d, a, b, c);
break;
- case 176: // SO_ROOM_SHAKE_ON
+ case SO_ROOM_SHAKE_ON:
setShake(1);
break;
- case 177: // SO_ROOM_SHAKE_OFF
+ case SO_ROOM_SHAKE_OFF:
setShake(0);
break;
- case 179: // SO_ROOM_INTENSITY
+ case SO_ROOM_INTENSITY:
c = pop();
b = pop();
a = pop();
@@ -1697,7 +1697,7 @@ void ScummEngine_v6::o6_roomOps() {
darkenPalette(a, a, a, b, c);
break;
- case 180: // SO_ROOM_SAVEGAME
+ case SO_ROOM_SAVEGAME:
_saveTemporaryState = true;
_saveLoadSlot = pop();
_saveLoadFlag = pop();
@@ -1705,7 +1705,7 @@ void ScummEngine_v6::o6_roomOps() {
_saveSound = (_saveLoadSlot != 0);
break;
- case 181: // SO_ROOM_FADE
+ case SO_ROOM_FADE:
a = pop();
if (a) {
_switchRoomEffect = (byte)(a & 0xFF);
@@ -1715,7 +1715,7 @@ void ScummEngine_v6::o6_roomOps() {
}
break;
- case 182: // SO_RGB_ROOM_INTENSITY
+ case SO_RGB_ROOM_INTENSITY:
e = pop();
d = pop();
c = pop();
@@ -1724,7 +1724,7 @@ void ScummEngine_v6::o6_roomOps() {
darkenPalette(a, b, c, d, e);
break;
- case 183: // SO_ROOM_SHADOW
+ case SO_ROOM_SHADOW:
e = pop();
d = pop();
c = pop();
@@ -1733,15 +1733,15 @@ void ScummEngine_v6::o6_roomOps() {
setShadowPalette(a, b, c, d, e, 0, 256);
break;
- case 184: // SO_SAVE_STRING
+ case SO_SAVE_STRING:
error("save string not implemented");
break;
- case 185: // SO_LOAD_STRING
+ case SO_LOAD_STRING:
error("load string not implemented");
break;
- case 186: // SO_ROOM_TRANSFORM
+ case SO_ROOM_TRANSFORM:
d = pop();
c = pop();
b = pop();
@@ -1749,14 +1749,14 @@ void ScummEngine_v6::o6_roomOps() {
palManipulateInit(a, b, c, d);
break;
- case 187: // SO_CYCLE_SPEED
+ case SO_CYCLE_SPEED:
b = pop();
a = pop();
assertRange(1, a, 16, "o6_roomOps: 187: color cycle");
_colorCycle[a - 1].delay = (b != 0) ? 0x4000 / (b * 0x4C) : 0;
break;
- case 213: // SO_ROOM_NEW_PALETTE
+ case SO_ROOM_NEW_PALETTE:
a = pop();
// This opcode is used when turning off noir mode in Sam & Max,
@@ -1781,7 +1781,7 @@ void ScummEngine_v6::o6_actorOps() {
int args[8];
byte subOp = fetchScriptByte();
- if (subOp == 197) {
+ if (subOp == SO_ACTOR_INIT) {
_curActor = pop();
return;
}
@@ -1791,7 +1791,7 @@ void ScummEngine_v6::o6_actorOps() {
return;
switch (subOp) {
- case 76: // SO_COSTUME
+ case SO_COSTUME:
i = pop();
// WORKAROUND: There's a small continuity error in DOTT; the fire that
// makes Washington leave the room can only exist if he's wearing the
@@ -1803,133 +1803,133 @@ void ScummEngine_v6::o6_actorOps() {
}
a->setActorCostume(i);
break;
- case 77: // SO_STEP_DIST
+ case SO_STEP_DIST:
j = pop();
i = pop();
a->setActorWalkSpeed(i, j);
break;
- case 78: // SO_SOUND
+ case SO_SOUND:
k = getStackList(args, ARRAYSIZE(args));
for (i = 0; i < k; i++)
a->_sound[i] = args[i];
break;
- case 79: // SO_WALK_ANIMATION
+ case SO_WALK_ANIMATION:
a->_walkFrame = pop();
break;
- case 80: // SO_TALK_ANIMATION
+ case SO_TALK_ANIMATION:
a->_talkStopFrame = pop();
a->_talkStartFrame = pop();
break;
- case 81: // SO_STAND_ANIMATION
+ case SO_STAND_ANIMATION:
a->_standFrame = pop();
break;
- case 82: // SO_ANIMATION
+ case SO_ANIMATION:
// dummy case in scumm6
pop();
pop();
pop();
break;
- case 83: // SO_DEFAULT
+ case SO_DEFAULT:
a->initActor(0);
break;
- case 84: // SO_ELEVATION
+ case SO_ELEVATION:
a->setElevation(pop());
break;
- case 85: // SO_ANIMATION_DEFAULT
+ case SO_ANIMATION_DEFAULT:
a->_initFrame = 1;
a->_walkFrame = 2;
a->_standFrame = 3;
a->_talkStartFrame = 4;
a->_talkStopFrame = 5;
break;
- case 86: // SO_PALETTE
+ case SO_PALETTE:
j = pop();
i = pop();
assertRange(0, i, 255, "o6_actorOps: palette slot");
a->setPalette(i, j);
break;
- case 87: // SO_TALK_COLOR
+ case SO_TALK_COLOR:
a->_talkColor = pop();
break;
- case 88: // SO_ACTOR_NAME
+ case SO_ACTOR_NAME:
loadPtrToResource(rtActorName, a->_number, nullptr);
break;
- case 89: // SO_INIT_ANIMATION
+ case SO_INIT_ANIMATION:
a->_initFrame = pop();
break;
- case 91: // SO_ACTOR_WIDTH
+ case SO_ACTOR_WIDTH:
a->_width = pop();
break;
- case 92: // SO_SCALE
+ case SO_SCALE:
i = pop();
a->setScale(i, i);
break;
- case 93: // SO_NEVER_ZCLIP
+ case SO_NEVER_ZCLIP:
a->_forceClip = 0;
break;
- case 225: // SO_ALWAYS_ZCLIP
- case 94: // SO_ALWAYS_ZCLIP
+ case SO_ALWAYS_ZCLIP_FT_DEMO:
+ case SO_ALWAYS_ZCLIP:
a->_forceClip = pop();
break;
- case 95: // SO_IGNORE_BOXES
+ case SO_IGNORE_BOXES:
a->_ignoreBoxes = 1;
a->_forceClip = (_game.version >= 7) ? 100 : 0;
if (a->isInCurrentRoom())
a->putActor();
break;
- case 96: // SO_FOLLOW_BOXES
+ case SO_FOLLOW_BOXES:
a->_ignoreBoxes = 0;
a->_forceClip = (_game.version >= 7) ? 100 : 0;
if (a->isInCurrentRoom())
a->putActor();
break;
- case 97: // SO_ANIMATION_SPEED
+ case SO_ANIMATION_SPEED:
a->setAnimSpeed(pop());
break;
- case 98: // SO_SHADOW
+ case SO_SHADOW:
a->_shadowMode = pop();
break;
- case 99: // SO_TEXT_OFFSET
+ case SO_TEXT_OFFSET:
a->_talkPosY = pop();
a->_talkPosX = pop();
break;
- case 198: // SO_ACTOR_VARIABLE
+ case SO_ACTOR_VARIABLE:
i = pop();
a->setAnimVar(pop(), i);
break;
- case 215: // SO_ACTOR_IGNORE_TURNS_ON
+ case SO_ACTOR_IGNORE_TURNS_ON:
a->_ignoreTurns = true;
break;
- case 216: // SO_ACTOR_IGNORE_TURNS_OFF
+ case SO_ACTOR_IGNORE_TURNS_OFF:
a->_ignoreTurns = false;
break;
- case 217: // SO_ACTOR_NEW
+ case SO_NEW:
a->initActor(2);
break;
- case 227: // SO_ACTOR_DEPTH
+ case SO_ACTOR_DEPTH:
a->_layer = pop();
break;
- case 228: // SO_ACTOR_WALK_SCRIPT
+ case SO_ACTOR_WALK_SCRIPT:
a->_walkScript = pop();
break;
- case 229: // SO_ACTOR_STOP
+ case SO_ACTOR_STOP:
a->stopActorMoving();
a->startAnimActor(a->_standFrame);
break;
- case 230: /* set direction */
+ case SO_ACTOR_FACE: /* set direction */
a->_moving &= ~MF_TURN;
a->setDirection(pop());
break;
- case 231: /* turn to direction */
+ case SO_ACTOR_TURN: /* turn to direction */
a->turnToDirection(pop());
break;
- case 233: // SO_ACTOR_WALK_PAUSE
+ case SO_ACTOR_WALK_PAUSE:
a->_moving |= MF_FROZEN;
break;
- case 234: // SO_ACTOR_WALK_RESUME
+ case SO_ACTOR_WALK_RESUME:
a->_moving &= ~MF_FROZEN;
break;
- case 235: // SO_ACTOR_TALK_SCRIPT
+ case SO_ACTOR_TALK_SCRIPT:
a->_talkScript = pop();
break;
default:
@@ -1942,7 +1942,7 @@ void ScummEngine_v6::o6_verbOps() {
VerbSlot *vs;
byte subOp = fetchScriptByte();
- if (subOp == 196) {
+ if (subOp == SO_VERB_INIT) {
_curVerb = pop();
_curVerbSlot = getVerbSlot(_curVerb, 0);
assertRange(0, _curVerbSlot, _numVerbs - 1, "new verb slot");
@@ -1951,7 +1951,7 @@ void ScummEngine_v6::o6_verbOps() {
vs = &_verbs[_curVerbSlot];
slot = _curVerbSlot;
switch (subOp) {
- case 124: // SO_VERB_IMAGE
+ case SO_VERB_IMAGE:
a = pop();
if (_curVerbSlot) {
setVerbObject(_roomResource, a, slot);
@@ -1960,34 +1960,34 @@ void ScummEngine_v6::o6_verbOps() {
vs->imgindex = a;
}
break;
- case 125: // SO_VERB_NAME
+ case SO_VERB_NAME:
loadPtrToResource(rtVerb, slot, nullptr);
vs->type = kTextVerbType;
vs->imgindex = 0;
break;
- case 126: // SO_VERB_COLOR
+ case SO_VERB_COLOR:
vs->color = pop();
break;
- case 127: // SO_VERB_HICOLOR
+ case SO_VERB_HICOLOR:
vs->hicolor = pop();
break;
- case 128: // SO_VERB_AT
+ case SO_VERB_AT:
vs->curRect.top = pop();
vs->curRect.left = vs->origLeft = pop();
break;
- case 129: // SO_VERB_ON
+ case SO_VERB_ON:
vs->curmode = 1;
break;
- case 130: // SO_VERB_OFF
+ case SO_VERB_OFF:
vs->curmode = 0;
break;
- case 131: // SO_VERB_DELETE
+ case SO_VERB_DELETE:
if (_game.heversion >= 60) {
slot = getVerbSlot(pop(), 0);
}
killVerb(slot);
break;
- case 132: // SO_VERB_NEW
+ case SO_VERB_NEW:
slot = getVerbSlot(_curVerb, 0);
if (slot == 0) {
for (slot = 1; slot < _numVerbs; slot++) {
@@ -2011,19 +2011,19 @@ void ScummEngine_v6::o6_verbOps() {
vs->center = 0;
vs->imgindex = 0;
break;
- case 133: // SO_VERB_DIMCOLOR
+ case SO_VERB_DIMCOLOR:
vs->dimcolor = pop();
break;
- case 134: // SO_VERB_DIM
+ case SO_VERB_DIM:
vs->curmode = 2;
break;
- case 135: // SO_VERB_KEY
+ case SO_VERB_KEY:
vs->key = pop();
break;
- case 136: // SO_VERB_CENTER
+ case SO_VERB_CENTER:
vs->center = 1;
break;
- case 137: // SO_VERB_NAME_STR
+ case SO_VERB_NAME_STR:
a = pop();
if (a == 0) {
loadPtrToResource(rtVerb, slot, (const byte *)"");
@@ -2033,7 +2033,7 @@ void ScummEngine_v6::o6_verbOps() {
vs->type = kTextVerbType;
vs->imgindex = 0;
break;
- case 139: // SO_VERB_IMAGE_IN_ROOM
+ case SO_VERB_IMAGE_IN_ROOM:
b = pop();
a = pop();
@@ -2043,10 +2043,10 @@ void ScummEngine_v6::o6_verbOps() {
vs->imgindex = a;
}
break;
- case 140: // SO_VERB_BAKCOLOR
+ case SO_VERB_BAKCOLOR:
vs->bkcolor = pop();
break;
- case 255:
+ case SO_END:
drawVerb(slot, 0);
verbMouseOver(0);
break;
@@ -2097,13 +2097,13 @@ void ScummEngine_v6::o6_arrayOps() {
int list[128];
switch (subOp) {
- case 205: // SO_ASSIGN_STRING
+ case SO_ASSIGN_STRING:
b = pop();
len = resStrLen(_scriptPointer);
data = defineArray(array, kStringArray, 0, len + 1);
copyScriptString(data + b);
break;
- case 208: // SO_ASSIGN_INT_LIST
+ case SO_ASSIGN_INT_LIST:
b = pop();
c = pop();
d = readVar(array);
@@ -2114,7 +2114,7 @@ void ScummEngine_v6::o6_arrayOps() {
writeArray(array, 0, b + c, pop());
}
break;
- case 212: // SO_ASSIGN_2DIM_LIST
+ case SO_ASSIGN_2DIM_LIST:
b = pop();
len = getStackList(list, ARRAYSIZE(list));
d = readVar(array);
@@ -2144,7 +2144,7 @@ void ScummEngine_v6::o6_saveRestoreVerbs() {
}
switch (subOp) {
- case 141: // SO_SAVE_VERBS
+ case SO_SAVE_VERBS:
while (a <= b) {
slot = getVerbSlot(a, 0);
if (slot && _verbs[slot].saveid == 0) {
@@ -2155,7 +2155,7 @@ void ScummEngine_v6::o6_saveRestoreVerbs() {
a++;
}
break;
- case 142: // SO_RESTORE_VERBS
+ case SO_RESTORE_VERBS:
while (a <= b) {
slot = getVerbSlot(a, c);
if (slot) {
@@ -2170,7 +2170,7 @@ void ScummEngine_v6::o6_saveRestoreVerbs() {
a++;
}
break;
- case 143: // SO_DELETE_VERBS
+ case SO_DELETE_VERBS:
while (a <= b) {
slot = getVerbSlot(a, c);
if (slot)
@@ -2201,7 +2201,7 @@ void ScummEngine_v6::o6_wait() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 168: // SO_WAIT_FOR_ACTOR Wait for actor
+ case SO_WAIT_FOR_ACTOR: // Wait for actor
offs = fetchScriptWordSigned();
actnum = pop();
a = derefActor(actnum, "o6_wait:168");
@@ -2213,11 +2213,11 @@ void ScummEngine_v6::o6_wait() {
break;
}
return;
- case 169: // SO_WAIT_FOR_MESSAGE Wait for message
+ case SO_WAIT_FOR_MESSAGE: // Wait for message
if (VAR(VAR_HAVE_MSG))
break;
return;
- case 170: // SO_WAIT_FOR_CAMERA Wait for camera
+ case SO_WAIT_FOR_CAMERA: // Wait for camera
if (_game.version >= 7) {
if (camera._dest != camera._cur)
break;
@@ -2227,7 +2227,7 @@ void ScummEngine_v6::o6_wait() {
}
return;
- case 171: // SO_WAIT_FOR_SENTENCE
+ case SO_WAIT_FOR_SENTENCE:
if (_sentenceNum) {
if (_sentence[_sentenceNum - 1].freezeCount && !isScriptInUse(VAR(VAR_SENTENCE_SCRIPT)))
return;
@@ -2236,14 +2236,14 @@ void ScummEngine_v6::o6_wait() {
if (!isScriptInUse(VAR(VAR_SENTENCE_SCRIPT)))
return;
break;
- case 226: // SO_WAIT_FOR_ANIMATION
+ case SO_WAIT_FOR_ANIMATION:
offs = fetchScriptWordSigned();
actnum = pop();
a = derefActor(actnum, "o6_wait:226");
if (a->isInCurrentRoom() && a->_needRedraw)
break;
return;
- case 232: // SO_WAIT_FOR_TURN
+ case SO_WAIT_FOR_TURN:
// WORKAROUND for bug #819: An angle will often be received as the
// actor number due to script bugs in The Dig. In all cases where this
// occurs, _curActor is set just before it, so we can use it instead.
@@ -2308,13 +2308,13 @@ void ScummEngine_v6::o6_systemOps() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 158: // SO_RESTART
+ case SO_RESTART:
restart();
break;
- case 159: // SO_PAUSE
+ case SO_PAUSE:
pauseGame();
break;
- case 160: // SO_QUIT
+ case SO_QUIT:
quitGame();
break;
default:
@@ -2513,22 +2513,22 @@ void ScummEngine_v6::o6_dimArray() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 199: // SO_INT_ARRAY
+ case SO_INT_ARRAY:
data = kIntArray;
break;
- case 200: // SO_BIT_ARRAY
+ case SO_BIT_ARRAY:
data = kBitArray;
break;
- case 201: // SO_NIBBLE_ARRAY
+ case SO_NIBBLE_ARRAY:
data = kNibbleArray;
break;
- case 202: // SO_BYTE_ARRAY
+ case SO_BYTE_ARRAY:
data = kByteArray;
break;
- case 203: // SO_STRING_ARRAY
+ case SO_STRING_ARRAY:
data = kStringArray;
break;
- case 204: // SO_UNDIM_ARRAY
+ case SO_UNDIM_ARRAY:
nukeArray(fetchScriptWord());
return;
default:
@@ -2547,19 +2547,19 @@ void ScummEngine_v6::o6_dim2dimArray() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 199: // SO_INT_ARRAY
+ case SO_INT_ARRAY:
data = kIntArray;
break;
- case 200: // SO_BIT_ARRAY
+ case SO_BIT_ARRAY:
data = kBitArray;
break;
- case 201: // SO_NIBBLE_ARRAY
+ case SO_NIBBLE_ARRAY:
data = kNibbleArray;
break;
- case 202: // SO_BYTE_ARRAY
+ case SO_BYTE_ARRAY:
data = kByteArray;
break;
- case 203: // SO_STRING_ARRAY
+ case SO_STRING_ARRAY:
data = kStringArray;
break;
default:
@@ -3213,42 +3213,42 @@ void ScummEngine_v6::decodeParseString(int m, int n) {
byte b = fetchScriptByte();
switch (b) {
- case 65: // SO_AT
+ case SO_AT:
_string[m].ypos = pop();
_string[m].xpos = pop();
_string[m].overhead = false;
break;
- case 66: // SO_COLOR
+ case SO_COLOR:
_string[m].color = pop();
break;
- case 67: // SO_CLIPPED
+ case SO_CLIPPED:
_string[m].right = pop();
break;
- case 69: // SO_CENTER
+ case SO_CENTER:
_string[m].center = true;
_string[m].overhead = false;
break;
- case 71: // SO_LEFT
+ case SO_LEFT:
_string[m].center = false;
_string[m].overhead = false;
break;
- case 72: // SO_OVERHEAD
+ case SO_OVERHEAD:
_string[m].overhead = true;
_string[m].no_talk_anim = false;
break;
- case 74: // SO_MUMBLE
+ case SO_MUMBLE:
_string[m].no_talk_anim = true;
break;
- case 75: // SO_TEXTSTRING
+ case SO_TEXTSTRING:
printString(m, _scriptPointer);
_scriptPointer += resStrLen(_scriptPointer) + 1;
break;
- case 0xFE:
+ case SO_BASEOP:
_string[m].loadDefault();
if (n)
_actorToPrintStrFor = pop();
break;
- case 0xFF:
+ case SO_END:
_string[m].saveDefault();
break;
default:
diff --git a/engines/scumm/script_v8.cpp b/engines/scumm/script_v8.cpp
index 7306a96d013..f9bf2bbe944 100644
--- a/engines/scumm/script_v8.cpp
+++ b/engines/scumm/script_v8.cpp
@@ -344,45 +344,45 @@ void ScummEngine_v8::decodeParseString(int m, int n) {
byte b = fetchScriptByte();
switch (b) {
- case 0xC8: // SO_PRINT_BASEOP
+ case SO_BASEOP:
_string[m].loadDefault();
if (n)
_actorToPrintStrFor = pop();
break;
- case 0xC9: // SO_PRINT_END
+ case SO_END:
_string[m].saveDefault();
break;
- case 0xCA: // SO_PRINT_AT
+ case SO_AT:
_string[m].ypos = pop();
_string[m].xpos = pop();
_string[m].overhead = false;
break;
- case 0xCB: // SO_PRINT_COLOR
+ case SO_COLOR:
_string[m].color = pop();
break;
- case 0xCC: // SO_PRINT_CENTER
+ case SO_CENTER:
_string[m].center = true;
_string[m].overhead = false;
break;
- case 0xCD: // SO_PRINT_CHARSET Set print character set
+ case SO_PRINT_CHARSET: // Set print character set
_string[m].charset = pop();
break;
- case 0xCE: // SO_PRINT_LEFT
+ case SO_LEFT:
_string[m].wrapping = false;
_string[m].overhead = false;
break;
- case 0xCF: // SO_PRINT_OVERHEAD
+ case SO_OVERHEAD:
_string[m].overhead = true;
_string[m].no_talk_anim = false;
break;
- case 0xD0: // SO_PRINT_MUMBLE
+ case SO_MUMBLE:
_string[m].no_talk_anim = true;
break;
- case 0xD1: // SO_PRINT_STRING
+ case SO_PRINT_STRING:
printString(m, _scriptPointer);
_scriptPointer += resStrLen(_scriptPointer) + 1;
break;
- case 0xD2: // SO_PRINT_WRAP Set print wordwrap
+ case SO_PRINT_WRAP: // Set print wordwrap
_string[m].wrapping = true;
_string[m].overhead = false;
break;
@@ -418,22 +418,22 @@ void ScummEngine_v8::o8_wait() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 0x1E: // SO_WAIT_FOR_ACTOR Wait for actor (to finish current action?)
+ case SO_WAIT_FOR_ACTOR: // Wait for actor (to finish current action?)
offs = fetchScriptWordSigned();
actnum = pop();
a = derefActor(actnum, "o8_wait:SO_WAIT_FOR_ACTOR");
if (a->isInCurrentRoom() && a->_moving)
break;
return;
- case 0x1F: // SO_WAIT_FOR_MESSAGE Wait for message
+ case SO_WAIT_FOR_MESSAGE: // Wait for message
if (VAR(VAR_HAVE_MSG))
break;
return;
- case 0x20: // SO_WAIT_FOR_CAMERA Wait for camera (to finish current action?)
+ case SO_WAIT_FOR_CAMERA: // Wait for camera (to finish current action?)
if (camera._dest != camera._cur)
break;
return;
- case 0x21: // SO_WAIT_FOR_SENTENCE
+ case SO_WAIT_FOR_SENTENCE:
if (_sentenceNum) {
if (_sentence[_sentenceNum - 1].freezeCount && !isScriptInUse(VAR(VAR_SENTENCE_SCRIPT)))
return;
@@ -442,14 +442,14 @@ void ScummEngine_v8::o8_wait() {
if (!isScriptInUse(VAR(VAR_SENTENCE_SCRIPT)))
return;
break;
- case 0x22: // SO_WAIT_FOR_ANIMATION
+ case SO_WAIT_FOR_ANIMATION:
offs = fetchScriptWordSigned();
actnum = pop();
a = derefActor(actnum, "o8_wait:SO_WAIT_FOR_ANIMATION");
if (a->isInCurrentRoom() && a->_needRedraw)
break;
return;
- case 0x23: // SO_WAIT_FOR_TURN
+ case SO_WAIT_FOR_TURN:
offs = fetchScriptWordSigned();
actnum = pop();
a = derefActor(actnum, "o8_wait:SO_WAIT_FOR_TURN");
@@ -469,13 +469,13 @@ void ScummEngine_v8::o8_dimArray() {
int array = fetchScriptWord();
switch (subOp) {
- case 0x0A: // SO_ARRAY_SCUMMVAR
+ case SO_INT_ARRAY:
defineArray(array, kIntArray, 0, pop());
break;
- case 0x0B: // SO_ARRAY_STRING
+ case SO_STRING_ARRAY:
defineArray(array, kStringArray, 0, pop());
break;
- case 0x0C: // SO_ARRAY_UNDIM
+ case SO_UNDIM_ARRAY:
nukeArray(array);
break;
default:
@@ -488,17 +488,17 @@ void ScummEngine_v8::o8_dim2dimArray() {
int array = fetchScriptWord(), a, b;
switch (subOp) {
- case 0x0A: // SO_ARRAY_SCUMMVAR
+ case SO_INT_ARRAY:
b = pop();
a = pop();
defineArray(array, kIntArray, a, b);
break;
- case 0x0B: // SO_ARRAY_STRING
+ case SO_STRING_ARRAY:
b = pop();
a = pop();
defineArray(array, kStringArray, a, b);
break;
- case 0x0C: // SO_ARRAY_UNDIM
+ case SO_UNDIM_ARRAY:
nukeArray(array);
break;
default:
@@ -514,13 +514,13 @@ void ScummEngine_v8::o8_arrayOps() {
int list[128];
switch (subOp) {
- case 0x14: // SO_ASSIGN_STRING
+ case SO_ASSIGN_STRING:
b = pop();
len = resStrLen(_scriptPointer);
data = defineArray(array, kStringArray, 0, len + 1);
copyScriptString(data + b);
break;
- case 0x15: // SO_ASSIGN_SCUMMVAR_LIST
+ case SO_ASSIGN_INT_LIST:
b = pop();
len = getStackList(list, ARRAYSIZE(list));
d = readVar(array);
@@ -531,7 +531,7 @@ void ScummEngine_v8::o8_arrayOps() {
writeArray(array, 0, b + len, list[len]);
}
break;
- case 0x16: // SO_ASSIGN_2DIM_LIST
+ case SO_ASSIGN_2DIM_LIST:
b = pop();
len = getStackList(list, ARRAYSIZE(list));
d = readVar(array);
@@ -560,35 +560,35 @@ void ScummEngine_v8::o8_cursorCommand() {
int args[4];
switch (subOp) {
- case 0xDC: // SO_CURSOR_ON Turn cursor on
+ case SO_CURSOR_ON: // Turn cursor on
_cursor.state = 1;
verbMouseOver(0);
break;
- case 0xDD: // SO_CURSOR_OFF Turn cursor off
+ case SO_CURSOR_OFF: // Turn cursor off
_cursor.state = 0;
verbMouseOver(0);
break;
- case 0xDE: // SO_CURSOR_SOFT_ON Turn soft cursor on
+ case SO_CURSOR_SOFT_ON: // Turn soft cursor on
_cursor.state++;
verbMouseOver(0);
break;
- case 0xDF: // SO_CURSOR_SOFT_OFF Turn soft cursor off
+ case SO_CURSOR_SOFT_OFF: // Turn soft cursor off
_cursor.state--;
verbMouseOver(0);
break;
- case 0xE0: // SO_USERPUT_ON
+ case SO_USERPUT_ON:
_userPut = 1;
break;
- case 0xE1: // SO_USERPUT_OFF
+ case SO_USERPUT_OFF:
_userPut = 0;
break;
- case 0xE2: // SO_USERPUT_SOFT_ON
+ case SO_USERPUT_SOFT_ON:
_userPut++;
break;
- case 0xE3: // SO_USERPUT_SOFT_OFF
+ case SO_USERPUT_SOFT_OFF:
_userPut--;
break;
- case 0xE4: // SO_CURSOR_IMAGE Set cursor image
+ case SO_CURSOR_IMAGE: // Set cursor image
{
int idx = pop();
int room, obj;
@@ -596,21 +596,21 @@ void ScummEngine_v8::o8_cursorCommand() {
setCursorFromImg(obj, room, idx);
}
break;
- case 0xE5: // SO_CURSOR_HOTSPOT Set cursor hotspot
+ case SO_CURSOR_HOTSPOT: // Set cursor hotspot
a = pop();
setCursorHotspot(pop(), a);
break;
- case 0xE6: // SO_CURSOR_TRANSPARENT Set cursor transparent color
+ case SO_CURSOR_TRANSPARENT: // Set cursor transparent color
setCursorTransparency(pop());
break;
- case 0xE7: // SO_CHARSET_SET
+ case SO_CHARSET_SET:
_string[0]._default.charset = pop();
break;
- case 0xE8: // SO_CHARSET_COLOR
+ case SO_CHARSET_COLOR:
getStackList(args, ARRAYSIZE(args));
// This opcode does nothing (confirmed with disasm)
break;
- case 0xE9: // SO_CURSOR_PUT
+ case SO_CURSOR_PUT:
{
int y = pop();
int x = pop();
@@ -631,61 +631,61 @@ void ScummEngine_v8::o8_resourceRoutines() {
int resid = pop();
switch (subOp) {
- case 0x3C: // Dummy case
+ case SO_HEAP_LOAD_CHARSET: // Dummy case
break;
- case 0x3D: // SO_HEAP_LOAD_COSTUME Load costume to heap
+ case SO_HEAP_LOAD_COSTUME: // Load costume to heap
ensureResourceLoaded(rtCostume, resid);
break;
- case 0x3E: // SO_HEAP_LOAD_OBJECT Load object to heap
+ case SO_HEAP_LOAD_OBJECT: // Load object to heap
{
int room = getObjectRoom(resid);
loadFlObject(resid, room);
}
break;
- case 0x3F: // SO_HEAP_LOAD_ROOM Load room to heap
+ case SO_HEAP_LOAD_ROOM: // Load room to heap
ensureResourceLoaded(rtRoom, resid);
break;
- case 0x40: // SO_HEAP_LOAD_SCRIPT Load script to heap
+ case SO_HEAP_LOAD_SCRIPT: // Load script to heap
ensureResourceLoaded(rtScript, resid);
break;
- case 0x41: // SO_HEAP_LOAD_SOUND Load sound to heap
+ case SO_HEAP_LOAD_SOUND: // Load sound to heap
ensureResourceLoaded(rtSound, resid);
break;
- case 0x42: // SO_HEAP_LOCK_COSTUME Lock costume in heap
+ case SO_HEAP_LOCK_COSTUME: // Lock costume in heap
_res->lock(rtCostume, resid);
break;
- case 0x43: // SO_HEAP_LOCK_ROOM Lock room in heap
+ case SO_HEAP_LOCK_ROOM: // Lock room in heap
_res->lock(rtRoom, resid);
break;
- case 0x44: // SO_HEAP_LOCK_SCRIPT Lock script in heap
+ case SO_HEAP_LOCK_SCRIPT: // Lock script in heap
_res->lock(rtScript, resid);
break;
- case 0x45: // SO_HEAP_LOCK_SOUND Lock sound in heap
+ case SO_HEAP_LOCK_SOUND: // Lock sound in heap
_res->lock(rtSound, resid);
break;
- case 0x46: // SO_HEAP_UNLOCK_COSTUME Unlock costume
+ case SO_HEAP_UNLOCK_COSTUME: // Unlock costume
_res->unlock(rtCostume, resid);
break;
- case 0x47: // SO_HEAP_UNLOCK_ROOM Unlock room
+ case SO_HEAP_UNLOCK_ROOM: // Unlock room
_res->unlock(rtRoom, resid);
break;
- case 0x48: // SO_HEAP_UNLOCK_SCRIPT Unlock script
+ case SO_HEAP_UNLOCK_SCRIPT: // Unlock script
_res->unlock(rtScript, resid);
break;
- case 0x49: // SO_HEAP_UNLOCK_SOUND Unlock sound
+ case SO_HEAP_UNLOCK_SOUND: // Unlock sound
_res->unlock(rtSound, resid);
break;
- case 0x4A: // SO_HEAP_NUKE_COSTUME Remove costume from heap
+ case SO_HEAP_NUKE_COSTUME: // Remove costume from heap
_res->setResourceCounter(rtCostume, resid, 0x7F);
break;
- case 0x4B: // SO_HEAP_NUKE_ROOM Remove room from heap
+ case SO_HEAP_NUKE_ROOM: // Remove room from heap
_res->setResourceCounter(rtRoom, resid, 0x7F);
break;
- case 0x4C: // SO_HEAP_NUKE_SCRIPT Remove script from heap
+ case SO_HEAP_NUKE_SCRIPT: // Remove script from heap
_res->setResourceCounter(rtScript, resid, 0x7F);
break;
- case 0x4D: // SO_HEAP_NUKE_SOUND Remove sound from heap
+ case SO_HEAP_NUKE_SOUND: // Remove sound from heap
_res->setResourceCounter(rtSound, resid, 0x7F);
break;
default:
@@ -698,14 +698,14 @@ void ScummEngine_v8::o8_roomOps() {
int a, b, c, d, e;
switch (subOp) {
- case 0x52: // SO_ROOM_PALETTE Set room palette
+ case SO_ROOM_PALETTE: // Set room palette
d = pop();
c = pop();
b = pop();
a = pop();
setPalColor(d, a, b, c);
break;
- case 0x57: // SO_ROOM_FADE Fade room
+ case SO_ROOM_FADE: // Fade room
a = pop();
if (a) {
_switchRoomEffect = (byte)(a);
@@ -714,7 +714,7 @@ void ScummEngine_v8::o8_roomOps() {
fadeIn(_newEffect);
}
break;
- case 0x58: // SO_ROOM_RGB_INTENSITY Set room color intensity
+ case SO_ROOM_RGB_INTENSITY: // Set room color intensity
e = pop();
d = pop();
c = pop();
@@ -722,24 +722,24 @@ void ScummEngine_v8::o8_roomOps() {
a = pop();
darkenPalette(a, b, c, d, e);
break;
- case 0x59: // SO_ROOM_TRANSFORM Transform room
+ case SO_ROOM_TRANSFORM: // Transform room
d = pop();
c = pop();
b = pop();
a = pop();
palManipulateInit(a, b, c, d);
break;
- case 0x5C: // SO_ROOM_NEW_PALETTE New palette
+ case SO_ROOM_NEW_PALETTE: // New palette
a = pop();
setCurrentPalette(a);
break;
- case 0x5D: // SO_ROOM_SAVE_GAME Save game
+ case SO_ROOM_SAVE_GAME: // Save game
_saveSound = 0;
_saveTemporaryState = true;
_saveLoadSlot = 1;
_saveLoadFlag = 1;
break;
- case 0x5E: // SO_ROOM_LOAD_GAME Load game
+ case SO_ROOM_LOAD_GAME: // Load game
_saveSound = pop();
if (!_saveLoadFlag) {
_saveTemporaryState = true;
@@ -747,7 +747,7 @@ void ScummEngine_v8::o8_roomOps() {
_saveLoadFlag = 2;
}
break;
- case 0x5F: // SO_ROOM_SATURATION Set saturation of room colors
+ case SO_ROOM_SATURATION: // Set saturation of room colors
e = pop();
d = pop();
c = pop();
@@ -765,7 +765,7 @@ void ScummEngine_v8::o8_actorOps() {
Actor *a;
int i, j;
- if (subOp == 0x7A) {
+ if (subOp == SO_ACTOR_INIT) {
_curActor = pop();
return;
}
@@ -775,137 +775,137 @@ void ScummEngine_v8::o8_actorOps() {
return;
switch (subOp) {
- case 0x64: // SO_ACTOR_COSTUME Set actor costume
+ case SO_COSTUME: // Set actor costume
a->setActorCostume(pop());
break;
- case 0x65: // SO_ACTOR_STEP_DIST Set actor width of steps
+ case SO_STEP_DIST: // Set actor width of steps
j = pop();
i = pop();
a->setActorWalkSpeed(i, j);
break;
- case 0x67: // SO_ACTOR_ANIMATION_DEFAULT Set actor animation to default
+ case SO_ANIMATION_DEFAULT: // Set actor animation to default
a->_initFrame = 1;
a->_walkFrame = 2;
a->_standFrame = 3;
a->_talkStartFrame = 4;
a->_talkStopFrame = 5;
break;
- case 0x68: // SO_ACTOR_ANIMATION_INIT Initialize animation
+ case SO_INIT_ANIMATION: // Initialize animation
a->_initFrame = pop();
break;
- case 0x69: // SO_ACTOR_ANIMATION_TALK Set actor animation to talk animation
+ case SO_TALK_ANIMATION: // Set actor animation to talk animation
a->_talkStopFrame = pop();
a->_talkStartFrame = pop();
break;
- case 0x6A: // SO_ACTOR_ANIMATION_WALK Set actor animation to walk animation
+ case SO_WALK_ANIMATION: // Set actor animation to walk animation
a->_walkFrame = pop();
break;
- case 0x6B: // SO_ACTOR_ANIMATION_STAND Set actor animation to standing animation
+ case SO_STAND_ANIMATION: // Set actor animation to standing animation
a->_standFrame = pop();
break;
- case 0x6C: // SO_ACTOR_ANIMATION_SPEED Set speed of animation
+ case SO_ANIMATION_SPEED: // Set speed of animation
a->setAnimSpeed(pop());
break;
- case 0x6D: // SO_ACTOR_DEFAULT
+ case SO_DEFAULT:
a->initActor(0);
break;
- case 0x6E: // SO_ACTOR_ELEVATION
+ case SO_ELEVATION:
a->setElevation(pop());
break;
- case 0x6F: // SO_ACTOR_PALETTE Set actor palette
+ case SO_PALETTE: // Set actor palette
j = pop();
i = pop();
assertRange(0, i, 31, "o8_actorOps: palette slot");
a->setPalette(i, j);
break;
- case 0x70: // SO_ACTOR_TALK_COLOR Set actor talk color
+ case SO_TALK_COLOR: // Set actor talk color
a->_talkColor = pop();
break;
- case 0x71: // SO_ACTOR_NAME Set name of actor
+ case SO_ACTOR_NAME: // Set name of actor
loadPtrToResource(rtActorName, a->_number, NULL);
break;
- case 0x72: // SO_ACTOR_WIDTH Set width of actor
+ case SO_ACTOR_WIDTH: // Set width of actor
a->_width = pop();
break;
- case 0x73: // SO_ACTOR_SCALE Set scaling of actor
+ case SO_SCALE: // Set scaling of actor
i = pop();
a->setScale(i, i);
break;
- case 0x74: // SO_ACTOR_NEVER_ZCLIP
+ case SO_NEVER_ZCLIP:
a->_forceClip = 0;
break;
- case 0x75: // SO_ACTOR_ALWAYS_ZCLIP
+ case SO_ALWAYS_ZCLIP:
a->_forceClip = pop();
// V8 uses 255 where we used to use 100
if (a->_forceClip == 255)
a->_forceClip = 100;
break;
- case 0x76: // SO_ACTOR_IGNORE_BOXES Make actor ignore boxes
+ case SO_IGNORE_BOXES: // Make actor ignore boxes
a->_ignoreBoxes = true;
a->_forceClip = 100;
if (a->isInCurrentRoom())
a->putActor();
break;
- case 0x77: // SO_ACTOR_FOLLOW_BOXES Make actor follow boxes
+ case SO_FOLLOW_BOXES: // Make actor follow boxes
a->_ignoreBoxes = false;
a->_forceClip = 100;
if (a->isInCurrentRoom())
a->putActor();
break;
- case 0x78: // SO_ACTOR_SPECIAL_DRAW
+ case SO_SHADOW:
a->_shadowMode = pop();
break;
- case 0x79: // SO_ACTOR_TEXT_OFFSET Set text offset relative to actor
+ case SO_TEXT_OFFSET: // Set text offset relative to actor
a->_talkPosY = pop();
a->_talkPosX = pop();
break;
-// case 0x7A: // SO_ACTOR_INIT Set current actor (handled above)
- case 0x7B: // SO_ACTOR_VARIABLE Set actor variable
+// case SO_ACTOR_INIT: // Set current actor (handled above)
+ case SO_ACTOR_VARIABLE: // Set actor variable
i = pop();
a->setAnimVar(pop(), i);
break;
- case 0x7C: // SO_ACTOR_IGNORE_TURNS_ON Make actor ignore turns
+ case SO_ACTOR_IGNORE_TURNS_ON: // Make actor ignore turns
a->_ignoreTurns = true;
break;
- case 0x7D: // SO_ACTOR_IGNORE_TURNS_OFF Make actor follow turns
+ case SO_ACTOR_IGNORE_TURNS_OFF: // Make actor follow turns
a->_ignoreTurns = false;
break;
- case 0x7E: // SO_ACTOR_NEW New actor
+ case SO_NEW: // New actor
a->initActor(2);
break;
- case 0x7F: // SO_ACTOR_DEPTH Set actor Z position
+ case SO_ACTOR_DEPTH: // Set actor Z position
a->_layer = pop();
break;
- case 0x80: // SO_ACTOR_STOP
+ case SO_ACTOR_STOP:
a->stopActorMoving();
a->startAnimActor(a->_standFrame);
break;
- case 0x81: // SO_ACTOR_FACE Make actor face angle
+ case SO_ACTOR_FACE: // Make actor face angle
a->_moving &= ~MF_TURN;
a->setDirection(pop());
break;
- case 0x82: // SO_ACTOR_TURN Turn actor
+ case SO_ACTOR_TURN: // Turn actor
a->turnToDirection(pop());
break;
- case 0x83: // SO_ACTOR_WALK_SCRIPT Set walk script for actor?
+ case SO_ACTOR_WALK_SCRIPT: // Set walk script for actor?
a->_walkScript = pop();
break;
- case 0x84: // SO_ACTOR_TALK_SCRIPT Set talk script for actor?
+ case SO_ACTOR_TALK_SCRIPT: // Set talk script for actor?
a->_talkScript = pop();
break;
- case 0x85: // SO_ACTOR_WALK_PAUSE
+ case SO_ACTOR_WALK_PAUSE:
a->_moving |= MF_FROZEN;
break;
- case 0x86: // SO_ACTOR_WALK_RESUME
+ case SO_ACTOR_WALK_RESUME:
a->_moving &= ~MF_FROZEN;
break;
- case 0x87: // SO_ACTOR_VOLUME Set volume of actor speech
+ case SO_ACTOR_VOLUME: // Set volume of actor speech
a->_talkVolume = pop();
break;
- case 0x88: // SO_ACTOR_FREQUENCY Set frequency of actor speech
+ case SO_ACTOR_FREQUENCY: // Set frequency of actor speech
a->_talkFrequency = pop();
break;
- case 0x89: // SO_ACTOR_PAN
+ case SO_ACTOR_PAN:
a->_talkPan = pop();
break;
default:
@@ -917,10 +917,10 @@ void ScummEngine_v8::o8_cameraOps() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 0x32: // SO_CAMERA_PAUSE
+ case SO_CAMERA_PAUSE:
_cameraIsFrozen = true;
break;
- case 0x33: // SO_CAMERA_RESUME
+ case SO_CAMERA_RESUME:
_cameraIsFrozen = false;
break;
default:
@@ -933,7 +933,7 @@ void ScummEngine_v8::o8_verbOps() {
VerbSlot *vs = NULL;
int slot, a, b;
- if (subOp == 0x96) {
+ if (subOp == SO_VERB_INIT) {
_curVerb = pop();
_curVerbSlot = getVerbSlot(_curVerb, 0);
assertRange(0, _curVerbSlot, _numVerbs - 1, "new verb slot");
@@ -945,10 +945,10 @@ void ScummEngine_v8::o8_verbOps() {
assert(vs);
switch (subOp) {
- case 0x96: // SO_VERB_INIT Choose verb number for editing
+ case SO_VERB_INIT: // Choose verb number for editing
// handled above!
break;
- case 0x97: // SO_VERB_NEW New verb
+ case SO_VERB_NEW: // New verb
if (_curVerbSlot == 0) {
for (slot = 1; slot < _numVerbs; slot++) {
if (_verbs[slot].verbid == 0)
@@ -972,40 +972,40 @@ void ScummEngine_v8::o8_verbOps() {
vs->center = 0;
vs->imgindex = 0;
break;
- case 0x98: // SO_VERB_DELETE Delete verb
+ case SO_VERB_DELETE: // Delete verb
killVerb(_curVerbSlot);
break;
- case 0x99: // SO_VERB_NAME Set verb name
+ case SO_VERB_NAME: // Set verb name
loadPtrToResource(rtVerb, _curVerbSlot, NULL);
vs->type = kTextVerbType;
vs->imgindex = 0;
break;
- case 0x9A: // SO_VERB_AT Set verb (X,Y) placement
+ case SO_VERB_AT: // Set verb (X,Y) placement
vs->curRect.top = pop();
vs->origLeft = pop();
break;
- case 0x9B: // SO_VERB_ON Turn verb on
+ case SO_VERB_ON: // Turn verb on
vs->curmode = 1;
break;
- case 0x9C: // SO_VERB_OFF Turn verb off
+ case SO_VERB_OFF: // Turn verb off
vs->curmode = 0;
break;
- case 0x9D: // SO_VERB_COLOR Set verb color
+ case SO_VERB_COLOR: // Set verb color
vs->color = pop();
break;
- case 0x9E: // SO_VERB_HICOLOR Set verb highlighted color
+ case SO_VERB_HICOLOR: // Set verb highlighted color
vs->hicolor = pop();
break;
- case 0xA0: // SO_VERB_DIMCOLOR Set verb dimmed (disabled) color
+ case SO_VERB_DIMCOLOR: // Set verb dimmed (disabled) color
vs->dimcolor = pop();
break;
- case 0xA1: // SO_VERB_DIM
+ case SO_VERB_DIM:
vs->curmode = 2;
break;
- case 0xA2: // SO_VERB_KEY Set keypress to associate with verb
+ case SO_VERB_KEY: // Set keypress to associate with verb
vs->key = pop();
break;
- case 0xA3: // SO_VERB_IMAGE Set verb image
+ case SO_VERB_IMAGE: // Set verb image
b = pop();
a = pop();
if (_curVerbSlot && a != vs->imgindex) {
@@ -1014,7 +1014,7 @@ void ScummEngine_v8::o8_verbOps() {
vs->imgindex = a;
}
break;
- case 0xA4: // SO_VERB_NAME_STR Set verb name
+ case SO_VERB_NAME_STR: // Set verb name
a = pop();
if (a == 0) {
loadPtrToResource(rtVerb, _curVerbSlot, (const byte *)"");
@@ -1024,13 +1024,13 @@ void ScummEngine_v8::o8_verbOps() {
vs->type = kTextVerbType;
vs->imgindex = 0;
break;
- case 0xA5: // SO_VERB_CENTER Center verb
+ case SO_VERB_CENTER: // Center verb
vs->center = 1;
break;
- case 0xA6: // SO_VERB_CHARSET Choose charset for verb
+ case SO_VERB_CHARSET: // Choose charset for verb
vs->charset_nr = pop();
break;
- case 0xA7: // SO_VERB_LINE_SPACING Choose linespacing for verb
+ case SO_VERB_LINE_SPACING: // Choose linespacing for verb
_verbLineSpacing = pop();
break;
default:
@@ -1041,10 +1041,10 @@ void ScummEngine_v8::o8_verbOps() {
void ScummEngine_v8::o8_systemOps() {
byte subOp = fetchScriptByte();
switch (subOp) {
- case 0x28: // SO_SYSTEM_RESTART Restart game
+ case SO_RESTART: // Restart game
restart();
break;
- case 0x29: // SO_SYSTEM_QUIT Quit game
+ case SO_QUIT: // Quit game
quitGame();
break;
default:
diff --git a/engines/scumm/scumm_v6.h b/engines/scumm/scumm_v6.h
index 8f9d7fb2816..e594aa15539 100644
--- a/engines/scumm/scumm_v6.h
+++ b/engines/scumm/scumm_v6.h
@@ -37,6 +37,157 @@ protected:
kDwordArray = 6
};
+ enum SubOpType {
+ SO_AT = 65,
+ SO_COLOR = 66,
+ SO_CLIPPED = 67,
+ SO_CENTER = 69,
+
+ SO_LEFT = 71,
+ SO_OVERHEAD = 72,
+
+ SO_MUMBLE = 74,
+ SO_TEXTSTRING = 75,
+ SO_COSTUME = 76,
+ SO_STEP_DIST = 77,
+ SO_SOUND = 78,
+ SO_WALK_ANIMATION = 79,
+ SO_TALK_ANIMATION = 80,
+ SO_STAND_ANIMATION = 81,
+ SO_ANIMATION = 82,
+ SO_DEFAULT = 83,
+ SO_ELEVATION = 84,
+ SO_ANIMATION_DEFAULT = 85,
+ SO_PALETTE = 86,
+ SO_TALK_COLOR = 87,
+ SO_ACTOR_NAME = 88,
+ SO_INIT_ANIMATION = 89,
+
+ SO_ACTOR_WIDTH = 91,
+ SO_SCALE = 92,
+ SO_NEVER_ZCLIP = 93,
+ SO_ALWAYS_ZCLIP = 94,
+ SO_IGNORE_BOXES = 95,
+ SO_FOLLOW_BOXES = 96,
+ SO_ANIMATION_SPEED = 97,
+ SO_SHADOW = 98,
+ SO_TEXT_OFFSET = 99,
+
+ SO_LOAD_SCRIPT = 100,
+ SO_LOAD_SOUND = 101,
+ SO_LOAD_COSTUME = 102,
+ SO_LOAD_ROOM = 103,
+ SO_NUKE_SCRIPT = 104,
+ SO_NUKE_SOUND = 105,
+ SO_NUKE_COSTUME = 106,
+ SO_NUKE_ROOM = 107,
+ SO_LOCK_SCRIPT = 108,
+ SO_LOCK_SOUND = 109,
+ SO_LOCK_COSTUME = 110,
+ SO_LOCK_ROOM = 111,
+ SO_UNLOCK_SCRIPT = 112,
+ SO_UNLOCK_SOUND = 113,
+ SO_UNLOCK_COSTUME = 114,
+ SO_UNLOCK_ROOM = 115,
+ SO_CLEAR_HEAP = 116,
+ SO_LOAD_CHARSET = 117,
+ SO_NUKE_CHARSET = 118,
+ SO_LOAD_OBJECT = 119,
+
+ SO_VERB_IMAGE = 124,
+ SO_VERB_NAME = 125,
+ SO_VERB_COLOR = 126,
+ SO_VERB_HICOLOR = 127,
+ SO_VERB_AT = 128,
+ SO_VERB_ON = 129,
+ SO_VERB_OFF = 130,
+ SO_VERB_DELETE = 131,
+ SO_VERB_NEW = 132,
+ SO_VERB_DIMCOLOR = 133,
+ SO_VERB_DIM = 134,
+ SO_VERB_KEY = 135,
+ SO_VERB_CENTER = 136,
+ SO_VERB_NAME_STR = 137,
+
+ SO_VERB_IMAGE_IN_ROOM = 139,
+ SO_VERB_BAKCOLOR = 140,
+ SO_SAVE_VERBS = 141,
+ SO_RESTORE_VERBS = 142,
+ SO_DELETE_VERBS = 143,
+ SO_CURSOR_ON = 144,
+ SO_CURSOR_OFF = 145,
+ SO_USERPUT_ON = 146,
+ SO_USERPUT_OFF = 147,
+ SO_CURSOR_SOFT_ON = 148,
+ SO_CURSOR_SOFT_OFF = 149,
+ SO_USERPUT_SOFT_ON = 150,
+ SO_USERPUT_SOFT_OFF = 151,
+
+ SO_CURSOR_IMAGE = 153,
+ SO_CURSOR_HOTSPOT = 154,
+
+ SO_CHARSET_SET = 156,
+ SO_CHARSET_COLOR = 157,
+ SO_RESTART = 158,
+ SO_PAUSE = 159,
+ SO_QUIT = 160,
+
+ SO_WAIT_FOR_ACTOR = 168,
+ SO_WAIT_FOR_MESSAGE = 169,
+ SO_WAIT_FOR_CAMERA = 170,
+ SO_WAIT_FOR_SENTENCE = 171,
+ SO_ROOM_SCROLL = 172,
+ SO_ROOM_SCREEN = 174,
+ SO_ROOM_PALETTE = 175,
+ SO_ROOM_SHAKE_ON = 176,
+ SO_ROOM_SHAKE_OFF = 177,
+ SO_ROOM_INTENSITY = 179,
+ SO_ROOM_SAVEGAME = 180,
+ SO_ROOM_FADE = 181,
+ SO_RGB_ROOM_INTENSITY = 182,
+ SO_ROOM_SHADOW = 183,
+ SO_SAVE_STRING = 184,
+ SO_LOAD_STRING = 185,
+ SO_ROOM_TRANSFORM = 186,
+ SO_CYCLE_SPEED = 187,
+
+ SO_VERB_INIT = 196,
+ SO_ACTOR_INIT = 197,
+ SO_ACTOR_VARIABLE = 198,
+ SO_INT_ARRAY = 199,
+ SO_BIT_ARRAY = 200,
+ SO_NIBBLE_ARRAY = 201,
+ SO_BYTE_ARRAY = 202,
+ SO_STRING_ARRAY = 203,
+ SO_UNDIM_ARRAY = 204,
+ SO_ASSIGN_STRING = 205,
+
+ SO_ASSIGN_INT_LIST = 208,
+
+ SO_ASSIGN_2DIM_LIST = 212,
+ SO_ROOM_NEW_PALETTE = 213,
+ SO_CURSOR_TRANSPARENT = 214,
+ SO_ACTOR_IGNORE_TURNS_ON = 215,
+ SO_ACTOR_IGNORE_TURNS_OFF = 216,
+ SO_NEW = 217,
+
+ SO_ALWAYS_ZCLIP_FT_DEMO = 225,
+ SO_WAIT_FOR_ANIMATION = 226,
+ SO_ACTOR_DEPTH = 227,
+ SO_ACTOR_WALK_SCRIPT = 228,
+ SO_ACTOR_STOP = 229,
+
+ SO_ACTOR_FACE = 230,
+ SO_ACTOR_TURN = 231,
+ SO_WAIT_FOR_TURN = 232,
+ SO_ACTOR_WALK_PAUSE = 233,
+ SO_ACTOR_WALK_RESUME = 234,
+ SO_ACTOR_TALK_SCRIPT = 235,
+
+ SO_BASEOP = 254,
+ SO_END = 255,
+ };
+
#include "common/pack-start.h" // START STRUCT PACKING
struct ArrayHeader {
diff --git a/engines/scumm/scumm_v8.h b/engines/scumm/scumm_v8.h
index 5b992d1b265..2d933cb2b1e 100644
--- a/engines/scumm/scumm_v8.h
+++ b/engines/scumm/scumm_v8.h
@@ -30,6 +30,148 @@ namespace Scumm {
class ScummEngine_v8 : public ScummEngine_v7 {
protected:
+ enum SubOpType {
+ SO_INT_ARRAY = 10, // SO_ARRAY_SCUMMVAR
+ SO_STRING_ARRAY = 11, // SO_ARRAY_STRING
+ SO_UNDIM_ARRAY = 12, // SO_ARRAY_UNDIM
+
+ SO_ASSIGN_STRING = 20,
+ SO_ASSIGN_INT_LIST = 21, // SO_ASSIGN_SCUMMVAR_LIST
+ SO_ASSIGN_2DIM_LIST = 22,
+
+ SO_WAIT_FOR_ACTOR = 30,
+ SO_WAIT_FOR_MESSAGE = 31,
+ SO_WAIT_FOR_CAMERA = 32,
+ SO_WAIT_FOR_SENTENCE = 33,
+ SO_WAIT_FOR_ANIMATION = 34,
+ SO_WAIT_FOR_TURN = 35,
+
+ SO_RESTART = 40, // SO_SYSTEM_RESTART
+ SO_QUIT = 41, // SO_SYSTEM_QUIT
+
+ SO_CAMERA_PAUSE = 50,
+ SO_CAMERA_RESUME = 51,
+
+ SO_HEAP_LOAD_CHARSET = 60,
+ SO_HEAP_LOAD_COSTUME = 61,
+ SO_HEAP_LOAD_OBJECT = 62,
+ SO_HEAP_LOAD_ROOM = 63,
+ SO_HEAP_LOAD_SCRIPT = 64,
+ SO_HEAP_LOAD_SOUND = 65,
+ SO_HEAP_LOCK_COSTUME = 66,
+ SO_HEAP_LOCK_ROOM = 67,
+ SO_HEAP_LOCK_SCRIPT = 68,
+ SO_HEAP_LOCK_SOUND = 69,
+ SO_HEAP_UNLOCK_COSTUME = 70,
+ SO_HEAP_UNLOCK_ROOM = 71,
+ SO_HEAP_UNLOCK_SCRIPT = 72,
+ SO_HEAP_UNLOCK_SOUND = 73,
+ SO_HEAP_NUKE_COSTUME = 74,
+ SO_HEAP_NUKE_ROOM = 75,
+ SO_HEAP_NUKE_SCRIPT = 76,
+ SO_HEAP_NUKE_SOUND = 77,
+
+ SO_ROOM_PALETTE = 82,
+
+ SO_ROOM_FADE = 87,
+ SO_ROOM_RGB_INTENSITY = 88,
+ SO_ROOM_TRANSFORM = 89,
+
+ SO_ROOM_NEW_PALETTE = 92,
+ SO_ROOM_SAVE_GAME = 93,
+ SO_ROOM_LOAD_GAME = 94,
+ SO_ROOM_SATURATION = 95,
+
+ SO_COSTUME = 100,
+ SO_STEP_DIST = 101,
+
+ SO_ANIMATION_DEFAULT = 103, // SO_ACTOR_ANIMATION_DEFAULT
+ SO_INIT_ANIMATION = 104, // SO_ACTOR_ANIMATION_INIT
+ SO_TALK_ANIMATION = 105, // SO_ACTOR_ANIMATION_TALK
+ SO_WALK_ANIMATION = 106, // SO_ACTOR_ANIMATION_WALK
+ SO_STAND_ANIMATION = 107, // SO_ACTOR_ANIMATION_STAND
+ SO_ANIMATION_SPEED = 108, // SO_ACTOR_ANIMATION_SPEED
+ SO_DEFAULT = 109, // SO_ACTOR_DEFAULT
+ SO_ELEVATION = 110, // SO_ACTOR_ELEVATION
+ SO_PALETTE = 111, // SO_ACTOR_PALETTE
+ SO_TALK_COLOR = 112, // SO_ACTOR_TALK_COLOR
+ SO_ACTOR_NAME = 113,
+ SO_ACTOR_WIDTH = 114,
+ SO_SCALE = 115, // SO_ACTOR_SCALE
+ SO_NEVER_ZCLIP = 116, // SO_ACTOR_NEVER_ZCLIP
+ SO_ALWAYS_ZCLIP = 117, // SO_ACTOR_ALWAYS_ZCLIP
+ SO_IGNORE_BOXES = 118, // SO_ACTOR_IGNORE_BOXES
+ SO_FOLLOW_BOXES = 119, // SO_ACTOR_FOLLOW_BOXES
+ SO_SHADOW = 120, // SO_ACTOR_SPECIAL_DRAW
+ SO_TEXT_OFFSET = 121, // SO_ACTOR_TEXT_OFFSET
+ SO_ACTOR_INIT = 122,
+ SO_ACTOR_VARIABLE = 123,
+ SO_ACTOR_IGNORE_TURNS_ON = 124,
+ SO_ACTOR_IGNORE_TURNS_OFF = 125,
+ SO_NEW = 126, // SO_ACTOR_NEW
+ SO_ACTOR_DEPTH = 127,
+ SO_ACTOR_STOP = 128,
+ SO_ACTOR_FACE = 129,
+ SO_ACTOR_TURN = 130,
+ SO_ACTOR_WALK_SCRIPT = 131,
+ SO_ACTOR_TALK_SCRIPT = 132,
+ SO_ACTOR_WALK_PAUSE = 133,
+ SO_ACTOR_WALK_RESUME = 134,
+ SO_ACTOR_VOLUME = 135,
+ SO_ACTOR_FREQUENCY = 136,
+ SO_ACTOR_PAN = 137,
+
+ SO_VERB_INIT = 150,
+ SO_VERB_NEW = 151,
+ SO_VERB_DELETE = 152,
+ SO_VERB_NAME = 153,
+ SO_VERB_AT = 154,
+ SO_VERB_ON = 155,
+ SO_VERB_OFF = 156,
+ SO_VERB_COLOR = 157,
+ SO_VERB_HICOLOR = 158,
+
+ SO_VERB_DIMCOLOR = 160,
+ SO_VERB_DIM = 161,
+ SO_VERB_KEY = 162,
+ SO_VERB_IMAGE = 163,
+ SO_VERB_NAME_STR = 164,
+ SO_VERB_CENTER = 165,
+ SO_VERB_CHARSET = 166,
+ SO_VERB_LINE_SPACING = 167,
+
+ SO_SAVE_VERBS = 180, // SO_VERBS_SAVE
+ SO_RESTORE_VERBS = 181, // SO_VERBS_RESTORE
+ SO_DELETE_VERBS = 182, // SO_VERBS_DELETE
+
+ SO_BASEOP = 200, // SO_PRINT_BASEOP
+ SO_END = 201, // SO_PRINT_END
+ SO_AT = 202, // SO_PRINT_AT
+ SO_COLOR = 203, // SO_PRINT_COLOR
+ SO_CENTER = 204, // SO_PRINT_CENTER
+ SO_PRINT_CHARSET = 205,
+ SO_LEFT = 206, // SO_PRINT_LEFT
+ SO_OVERHEAD = 207, // SO_PRINT_OVERHEAD
+ SO_MUMBLE = 208, // SO_PRINT_MUMBLE
+ SO_PRINT_STRING = 209,
+ SO_PRINT_WRAP = 210,
+
+ SO_CURSOR_ON = 220,
+ SO_CURSOR_OFF = 221,
+ SO_CURSOR_SOFT_ON = 222,
+ SO_CURSOR_SOFT_OFF = 223,
+ SO_USERPUT_ON = 224,
+ SO_USERPUT_OFF = 225,
+ SO_USERPUT_SOFT_ON = 226,
+ SO_USERPUT_SOFT_OFF = 227,
+ SO_CURSOR_IMAGE = 228,
+ SO_CURSOR_HOTSPOT = 229,
+ SO_CURSOR_TRANSPARENT = 230,
+ SO_CHARSET_SET = 231,
+ SO_CHARSET_COLOR = 232,
+ SO_CURSOR_PUT = 233,
+ };
+
struct ObjectNameId {
char name[40];
int id;
More information about the Scummvm-git-logs
mailing list