mirror of
https://github.com/libretro/scummvm.git
synced 2025-01-10 11:51:52 +00:00
SCUMM HE: Document more opcodes.
This commit is contained in:
parent
8b685a2b1e
commit
b994a02077
@ -356,38 +356,38 @@ void ScummEngine_v100he::o100_actorOps() {
|
||||
// FIXME: check stack parameters
|
||||
debug(0,"o100_actorOps: case 0 UNHANDLED");
|
||||
break;
|
||||
case 3:
|
||||
case 3: // SO_ANIMATION
|
||||
pop();
|
||||
pop();
|
||||
pop();
|
||||
break;
|
||||
case 4: // SO_ANIMATION_SPEED
|
||||
case 4: // SO_ANIMATION_SPEED
|
||||
a->setAnimSpeed(pop());
|
||||
break;
|
||||
case 6:
|
||||
case 6: // SO_AT
|
||||
j = pop();
|
||||
i = pop();
|
||||
a->putActor(i, j);
|
||||
break;
|
||||
case 8:
|
||||
case 8: // SO_BACKGROUND_OFF
|
||||
a->_drawToBackBuf = false;
|
||||
a->_needRedraw = true;
|
||||
a->_needBgReset = true;
|
||||
break;
|
||||
case 9:
|
||||
case 9: // SO_BACKGROUND_ON
|
||||
a->drawActorToBackBuf(a->getPos().x, a->getPos().y);
|
||||
break;
|
||||
case 14:
|
||||
case 14: // SO_CHARSET
|
||||
a->_charset = pop();
|
||||
break;
|
||||
case 18:
|
||||
case 18: // SO_CLIPPED
|
||||
a->_clipOverride.bottom = pop();
|
||||
a->_clipOverride.right = pop();
|
||||
a->_clipOverride.top = pop();
|
||||
a->_clipOverride.left = pop();
|
||||
adjustRect(a->_clipOverride);
|
||||
break;
|
||||
case 22:
|
||||
case 22: // SO_CONDITION
|
||||
k = getStackList(args, ARRAYSIZE(args));
|
||||
for (i = 0; i < k; ++i) {
|
||||
a->setUserCondition(args[i] & 0x7F, args[i] & 0x80);
|
||||
@ -399,7 +399,7 @@ void ScummEngine_v100he::o100_actorOps() {
|
||||
case 27: // SO_DEFAULT
|
||||
a->initActor(0);
|
||||
break;
|
||||
case 32:
|
||||
case 32: // SO_ERASE
|
||||
k = pop();
|
||||
a->setHEFlag(1, k);
|
||||
break;
|
||||
@ -417,11 +417,11 @@ void ScummEngine_v100he::o100_actorOps() {
|
||||
a->remapActorPaletteColor(i, j);
|
||||
a->_needRedraw = true;
|
||||
break;
|
||||
case 59:
|
||||
case 59: // SO_PRIORITY
|
||||
a->_layer = pop();
|
||||
a->_needRedraw = true;
|
||||
break;
|
||||
case 63:
|
||||
case 63: // SO_ROOM_PALETTE
|
||||
a->_hePaletteNum = pop();
|
||||
a->_needRedraw = true;
|
||||
break;
|
||||
@ -438,7 +438,7 @@ void ScummEngine_v100he::o100_actorOps() {
|
||||
i = pop();
|
||||
a->setActorWalkSpeed(i, j);
|
||||
break;
|
||||
case 78:
|
||||
case 78: // SO_TALKIE
|
||||
{
|
||||
copyScriptString(string, sizeof(string));
|
||||
int slot = pop();
|
||||
@ -461,7 +461,7 @@ void ScummEngine_v100he::o100_actorOps() {
|
||||
case 89: // SO_NEVER_ZCLIP
|
||||
a->_forceClip = 0;
|
||||
break;
|
||||
case 128:
|
||||
case 128: // SO_ACTOR_DEFAULT_CLIPPED
|
||||
_actorClipOverride.bottom = pop();
|
||||
_actorClipOverride.right = pop();
|
||||
_actorClipOverride.top = pop();
|
||||
@ -517,7 +517,7 @@ void ScummEngine_v100he::o100_actorOps() {
|
||||
case 141: // SO_TALK_COLOR
|
||||
a->_talkColor = pop();
|
||||
break;
|
||||
case 142:
|
||||
case 142: // SO_TALK_CONDITION
|
||||
k = pop();
|
||||
if (k == 0)
|
||||
k = _rnd.getRandomNumberRng(1, 10);
|
||||
@ -583,7 +583,7 @@ void ScummEngine_v100he::o100_arrayOps() {
|
||||
writeArray(array, 0, b + c, pop());
|
||||
}
|
||||
break;
|
||||
case 130: //
|
||||
case 130: // SO_COMPLEX_ARRAY_ASSIGNMENT
|
||||
len = getStackList(list, ARRAYSIZE(list));
|
||||
dim1end = pop();
|
||||
dim1start = pop();
|
||||
@ -1617,13 +1617,13 @@ void ScummEngine_v100he::o100_roomOps() {
|
||||
setPalColor(d, a, b, c);
|
||||
break;
|
||||
|
||||
case 129:
|
||||
case 129: // SO_OBJECT_ORDER
|
||||
b = pop();
|
||||
a = pop();
|
||||
swapObjects(a, b);
|
||||
break;
|
||||
|
||||
case 130:
|
||||
case 130: // SO_ROOM_COPY_PALETTE
|
||||
a = pop();
|
||||
b = pop();
|
||||
if (_game.features & GF_16BIT_COLOR)
|
||||
@ -1658,7 +1658,7 @@ void ScummEngine_v100he::o100_roomOps() {
|
||||
setCurrentPalette(a);
|
||||
break;
|
||||
|
||||
case 135:
|
||||
case 135: // SO_ROOM_PALETTE_IN_ROOM
|
||||
b = pop();
|
||||
a = pop();
|
||||
setRoomPalette(a, b);
|
||||
@ -1670,7 +1670,7 @@ void ScummEngine_v100he::o100_roomOps() {
|
||||
_saveLoadFlag = pop();
|
||||
break;
|
||||
|
||||
case 137:
|
||||
case 137: // SO_ROOM_SAVEGAME_BY_NAME
|
||||
byte buffer[256];
|
||||
|
||||
copyScriptString((byte *)buffer, sizeof(buffer));
|
||||
|
@ -699,13 +699,13 @@ void ScummEngine_v72he::o72_roomOps() {
|
||||
setCurrentPalette(a);
|
||||
break;
|
||||
|
||||
case 220:
|
||||
case 220: // SO_ROOM_COPY_PALETTE
|
||||
a = pop();
|
||||
b = pop();
|
||||
copyPalColor(a, b);
|
||||
break;
|
||||
|
||||
case 221:
|
||||
case 221: // SO_ROOM_SAVEGAME_BY_NAME
|
||||
byte buffer[256];
|
||||
|
||||
copyScriptString((byte *)buffer, sizeof(buffer));
|
||||
@ -718,13 +718,13 @@ void ScummEngine_v72he::o72_roomOps() {
|
||||
_saveTemporaryState = true;
|
||||
break;
|
||||
|
||||
case 234:
|
||||
case 234: // SO_OBJECT_ORDER
|
||||
b = pop();
|
||||
a = pop();
|
||||
swapObjects(a, b);
|
||||
break;
|
||||
|
||||
case 236:
|
||||
case 236: // SO_ROOM_PALETTE_IN_ROOM
|
||||
b = pop();
|
||||
a = pop();
|
||||
setRoomPalette(a, b);
|
||||
@ -752,43 +752,43 @@ void ScummEngine_v72he::o72_actorOps() {
|
||||
return;
|
||||
|
||||
switch (subOp) {
|
||||
case 21: // HE 80+
|
||||
case 21: // 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: // HE 80+
|
||||
case 24: // SO_TALK_CONDITION (HE 80+)
|
||||
k = pop();
|
||||
if (k == 0)
|
||||
k = _rnd.getRandomNumberRng(1, 10);
|
||||
a->_heNoTalkAnimation = 1;
|
||||
a->setTalkCondition(k);
|
||||
break;
|
||||
case 43: // HE 90+
|
||||
case 43: // SO_PRIORITY (HE 90+)
|
||||
a->_layer = pop();
|
||||
a->_needRedraw = true;
|
||||
break;
|
||||
case 64:
|
||||
case 64: // SO_ACTOR_DEFAULT_CLIPPED
|
||||
_actorClipOverride.bottom = pop();
|
||||
_actorClipOverride.right = pop();
|
||||
_actorClipOverride.top = pop();
|
||||
_actorClipOverride.left = pop();
|
||||
adjustRect(_actorClipOverride);
|
||||
break;
|
||||
case 65: // HE 98+
|
||||
case 65: // SO_AT (HE 98+)
|
||||
j = pop();
|
||||
i = pop();
|
||||
a->putActor(i, j);
|
||||
break;
|
||||
case 67: // HE 99+
|
||||
case 67: // 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: // HE 90+
|
||||
case 68: // // SO_ERASE (HE 90+)
|
||||
k = pop();
|
||||
a->setHEFlag(1, k);
|
||||
break;
|
||||
@ -887,10 +887,10 @@ void ScummEngine_v72he::o72_actorOps() {
|
||||
a->_talkPosY = pop();
|
||||
a->_talkPosX = pop();
|
||||
break;
|
||||
case 156: // HE 72+
|
||||
case 156: // SO_CHARSET (HE 72+)
|
||||
a->_charset = pop();
|
||||
break;
|
||||
case 175: // HE 99+
|
||||
case 175: // SO_ROOM_PALETTE (HE 99+)
|
||||
a->_hePaletteNum = pop();
|
||||
a->_needRedraw = true;
|
||||
break;
|
||||
@ -907,15 +907,15 @@ void ScummEngine_v72he::o72_actorOps() {
|
||||
case 217: // SO_ACTOR_NEW
|
||||
a->initActor(2);
|
||||
break;
|
||||
case 218:
|
||||
case 218: // SO_BACKGROUND_ON
|
||||
a->drawActorToBackBuf(a->getPos().x, a->getPos().y);
|
||||
break;
|
||||
case 219:
|
||||
case 219: // SO_BACKGROUND_OFF
|
||||
a->_drawToBackBuf = false;
|
||||
a->_needRedraw = true;
|
||||
a->_needBgReset = true;
|
||||
break;
|
||||
case 225:
|
||||
case 225: // SO_TALKIE
|
||||
{
|
||||
copyScriptString(string, sizeof(string));
|
||||
int slot = pop();
|
||||
@ -1077,7 +1077,7 @@ void ScummEngine_v72he::o72_arrayOps() {
|
||||
memcpy(data, string, len);
|
||||
break;
|
||||
|
||||
case 126:
|
||||
case 126: // SO_COMPLEX_ARRAY_ASSIGNMENT
|
||||
len = getStackList(list, ARRAYSIZE(list));
|
||||
dim1end = pop();
|
||||
dim1start = pop();
|
||||
@ -1101,7 +1101,7 @@ void ScummEngine_v72he::o72_arrayOps() {
|
||||
dim2start++;
|
||||
}
|
||||
break;
|
||||
case 127:
|
||||
case 127: // SO_COMPLEX_ARRAY_COPY_OPERATION
|
||||
{
|
||||
int a2_dim1end = pop();
|
||||
int a2_dim1start = pop();
|
||||
@ -1118,7 +1118,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:
|
||||
case 128: // SO_RANGE_ARRAY_ASSIGNMENT
|
||||
b = pop();
|
||||
c = pop();
|
||||
dim1end = pop();
|
||||
@ -1149,7 +1149,7 @@ void ScummEngine_v72he::o72_arrayOps() {
|
||||
dim2start++;
|
||||
}
|
||||
break;
|
||||
case 194:
|
||||
case 194: // SO_FORMATTED_STRING
|
||||
decodeScriptString(string);
|
||||
len = resStrLen(string);
|
||||
data = defineArray(array, kStringArray, 0, 0, 0, len);
|
||||
|
Loading…
Reference in New Issue
Block a user