mirror of
https://github.com/scummvm/scummvm.git
synced 2026-06-20 05:45:29 +00:00
Add missing cases
svn-id: r15227
This commit is contained in:
+1
-1
@@ -799,7 +799,7 @@ protected:
|
||||
virtual void executeOpcode(byte i);
|
||||
virtual const char *getOpcodeDesc(byte i);
|
||||
|
||||
void loadImgSpot(int resId, int state, Common::Point &spot);
|
||||
void loadImgSpot(int resId, int state, uint32 &w, uint32 &h);
|
||||
void loadWizCursor(int resId, int resType, bool state);
|
||||
|
||||
/* HE version 80 script opcodes */
|
||||
|
||||
@@ -1159,7 +1159,7 @@ void ScummEngine_v60he::localizeArray(int slot, int script) {
|
||||
if (slot >= _numArray)
|
||||
error("o60_localizeArray(%d): array slot out of range", slot);
|
||||
|
||||
_arraySlot[slot] = vm.slot[_currentScript].number;
|
||||
_arraySlot[slot] = script;
|
||||
}
|
||||
|
||||
void ScummEngine_v60he::o60_localizeArray() {
|
||||
|
||||
+10
-9
@@ -559,29 +559,30 @@ void ScummEngine_v80he::o80_cursorCommand() {
|
||||
VAR(VAR_USERPUT) = _userPut;
|
||||
}
|
||||
|
||||
void ScummEngine_v80he::loadImgSpot(int resId, int state, Common::Point &spot) {
|
||||
void ScummEngine_v80he::loadImgSpot(int resId, int state, uint32 &w, uint32 &h) {
|
||||
const uint8 *dataPtr = getResourceAddress(rtImage, resId);
|
||||
if (!dataPtr)
|
||||
error("loadImgSpot: unknown Image %d", resId);
|
||||
|
||||
const uint8 *spotPtr = findWrappedBlock(MKID('SPOT'), dataPtr, state, 0);
|
||||
|
||||
if (!spotPtr) {
|
||||
spot.x = spot.y = 0;
|
||||
if (spotPtr) {
|
||||
w = (int16)READ_LE_UINT32(spotPtr + 0);
|
||||
h = (int16)READ_LE_UINT32(spotPtr + 4);
|
||||
} else {
|
||||
spot.x = (int16)READ_LE_UINT32(spotPtr + 0);
|
||||
spot.y = (int16)READ_LE_UINT32(spotPtr + 4);
|
||||
w = 0;
|
||||
h = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void ScummEngine_v80he::loadWizCursor(int resId, int resType, bool state) {
|
||||
Common::Rect rc;
|
||||
Common::Point spot;
|
||||
uint32 w, h;
|
||||
|
||||
loadImgSpot(resId, 0, spot);
|
||||
loadImgSpot(resId, 0, w, h);
|
||||
|
||||
rc.top = spot.x;
|
||||
rc.right = spot.y;
|
||||
rc.top = w;
|
||||
rc.right = h;
|
||||
|
||||
rc.top = MAX((int)rc.top, 0);
|
||||
rc.right = MAX((int)rc.right, 0);
|
||||
|
||||
+23
-9
@@ -774,40 +774,54 @@ void ScummEngine_v90he::o90_unknown28() {
|
||||
}
|
||||
|
||||
void ScummEngine_v90he::o90_unknown29() {
|
||||
int state, resId;
|
||||
uint32 w, h;
|
||||
|
||||
int subOp = fetchScriptByte();
|
||||
subOp -= 30;
|
||||
|
||||
switch (subOp) {
|
||||
case 0:
|
||||
pop();
|
||||
pop();
|
||||
state = pop();
|
||||
resId = pop();
|
||||
loadImgSpot(resId, state, w, h);
|
||||
push(w);
|
||||
break;
|
||||
case 1:
|
||||
pop();
|
||||
pop();
|
||||
state = pop();
|
||||
resId = pop();
|
||||
loadImgSpot(resId, state, w, h);
|
||||
push(h);
|
||||
break;
|
||||
case 2:
|
||||
pop();
|
||||
pop();
|
||||
state = pop();
|
||||
resId = pop();
|
||||
getWizImageDim(resId, state, w, h);
|
||||
push(w);
|
||||
break;
|
||||
case 3:
|
||||
pop();
|
||||
pop();
|
||||
state = pop();
|
||||
resId = pop();
|
||||
getWizImageDim(resId, state, w, h);
|
||||
push(h);
|
||||
break;
|
||||
case 6:
|
||||
pop();
|
||||
push(0);
|
||||
break;
|
||||
case 15:
|
||||
pop();
|
||||
pop();
|
||||
pop();
|
||||
pop();
|
||||
push(0);
|
||||
break;
|
||||
case 36:
|
||||
pop();
|
||||
pop();
|
||||
pop();
|
||||
pop();
|
||||
push(0);
|
||||
break;
|
||||
case 100:
|
||||
pop();
|
||||
@@ -816,11 +830,11 @@ void ScummEngine_v90he::o90_unknown29() {
|
||||
pop();
|
||||
pop();
|
||||
pop();
|
||||
push(0);
|
||||
break;
|
||||
default:
|
||||
error("o90_unknown29: Unknown case %d", subOp);
|
||||
}
|
||||
push(0);
|
||||
|
||||
debug(1,"o90_unknown29 stub (%d)", subOp);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user