Another stub

svn-id: r14720
This commit is contained in:
Travis Howell 2004-08-23 14:11:53 +00:00
parent 25ccf3a0ee
commit 6d62e7ec66
3 changed files with 50 additions and 43 deletions

View File

@ -660,12 +660,13 @@ protected:
void o72_objectY();
void o72_startScript();
void o72_startObject();
void o72_drawObject();
void o72_unknown62();
void o72_unknown63();
void o72_arrayOps();
void o72_dimArray();
void o72_dim2dimArray();
void o72_jumpToScript();
void o72_drawObject();
void o72_stringLen();
void o72_readINI();
void o72_unknownF4();

View File

@ -597,7 +597,7 @@ void ScummEngine_v6::o6_pushWord() {
}
void ScummEngine_v6::o6_pushByteVar() {
push(readVar(fetchScriptWord()));
push(readVar(fetchScriptByte()));
}
void ScummEngine_v6::o6_pushWordVar() {

View File

@ -167,8 +167,8 @@ void ScummEngine_v72he::setupOpcodes() {
OPCODE(o6_startScriptQuick),
/* 60 */
OPCODE(o72_startObject),
OPCODE(o6_drawObject),
OPCODE(o6_drawObjectAt),
OPCODE(o72_drawObject),
OPCODE(o72_unknown62),
OPCODE(o72_unknown63),
/* 64 */
OPCODE(o6_invalid),
@ -437,6 +437,51 @@ void ScummEngine_v72he::o72_startObject() {
runObjectScript(script, entryp, (flags == 199 || flags == 200), (flags == 195 || flags == 200), args);
}
void ScummEngine_v72he::o72_drawObject() {
int subOp = fetchScriptByte();
int state = 0, y = -1, x = -1;
switch (subOp) {
case 62:
state = pop();
y = pop();
x = pop();
break;
case 63:
state = pop();
if (state == 0)
state = 1;
break;
case 65:
state = 1;
y = pop();
x = pop();
default:
warning("o72_drawObject: default case %d", subOp);
}
int object = pop();
int objnum = getObjectIndex(object);
if (objnum == -1)
return;
if (y != -1 && x != -1) {
_objs[objnum].x_pos = x * 8;
_objs[objnum].y_pos = y * 8;
}
if (state != -1) {
addObjectToDrawQue(objnum);
putState(object, state);
}
}
void ScummEngine_v72he::o72_unknown62() {
int a = pop();
// unknown62(a, 0, 0, 4);
warning("o72_unknown62 stub (%d)", a);
}
void ScummEngine_v72he::o72_unknown63() {
int a = fetchScriptByte();
warning("o72_unknown63 stub (%d)", a);
@ -559,45 +604,6 @@ void ScummEngine_v72he::o72_jumpToScript() {
runScript(script, (flags == 199 || flags == 200), (flags == 195 || flags == 200), args);
}
void ScummEngine_v72he::o72_drawObject() {
int subOp = fetchScriptByte();
int state = 0, y = -1, x = -1;
switch (subOp) {
case 62:
state = pop();
y = pop();
x = pop();
break;
case 63:
state = pop();
if (state == 0)
state = 1;
break;
case 65:
state = 1;
y = pop();
x = pop();
default:
warning("o72_drawObject: default case %d", subOp);
}
int object = pop();
int objnum = getObjectIndex(object);
if (objnum == -1)
return;
if (y != -1 && x != -1) {
_objs[objnum].x_pos = x * 8;
_objs[objnum].y_pos = y * 8;
}
if (state != -1) {
addObjectToDrawQue(objnum);
putState(object, state);
}
}
void ScummEngine_v72he::o72_stringLen() {
int a, len;
byte *addr;