Add back change that were reverted by last commit.

Add comment

svn-id: r14736
This commit is contained in:
Travis Howell 2004-08-25 02:34:17 +00:00
parent d3727e1c2a
commit 2917071bd6
2 changed files with 43 additions and 6 deletions

View File

@ -648,9 +648,9 @@ protected:
int32 type; //0
int32 dim1start; //4
int32 dim1end; //8
int32 dim2start; //0c
int32 dim2start; //0C
int32 dim2end; //10
byte data[1];
byte data[1]; //14
} GCC_PACK;
#if !defined(__GNUC__)

View File

@ -48,7 +48,7 @@ void ScummEngine_v72he::setupOpcodes() {
/* 00 */
OPCODE(o6_pushByte),
OPCODE(o6_pushWord),
OPCODE(o6_pushByteVar),
OPCODE(o72_pushDWordVar),
OPCODE(o6_pushWordVar),
/* 04 */
OPCODE(o72_getString),
@ -151,8 +151,8 @@ void ScummEngine_v72he::setupOpcodes() {
OPCODE(o6_invalid),
OPCODE(o6_wordArrayInc),
/* 54 */
OPCODE(o6_getObjectX),
OPCODE(o6_getObjectY),
OPCODE(o72_objectX),
OPCODE(o72_objectY),
OPCODE(o6_byteVarDec),
OPCODE(o6_wordVarDec),
/* 58 */
@ -488,6 +488,18 @@ void ScummEngine_v72he::writeArray(int array, int idx2, int idx1, int value) {
}
}
void ScummEngine_v72he::o72_pushDWordVar() {
int a;
if (*_lastCodePtr + sizeof(MemBlkHeader) != _scriptOrgPointer) {
uint32 oldoffs = _scriptPointer - _scriptOrgPointer;
getScriptBaseAddress();
_scriptPointer = _scriptOrgPointer + oldoffs;
}
a = READ_LE_UINT32(_scriptPointer);
_scriptPointer += 4;
push(a);
}
void ScummEngine_v72he::o72_getString() {
int len;
@ -504,7 +516,7 @@ void ScummEngine_v72he::o72_compareStackList() {
int value = pop();
if (num) {
for (i = 1; i < 128; i++) {
for (i = 1; i < num; i++) {
if (args[i] == value) {
push(1);
break;
@ -515,6 +527,31 @@ void ScummEngine_v72he::o72_compareStackList() {
}
}
void ScummEngine_v72he::o72_objectX() {
int object = pop();
int objnum = getObjectIndex(object);
if (objnum == -1) {
push(0);
return;
}
push(_objs[objnum].x_pos);
}
void ScummEngine_v72he::o72_objectY() {
int object = pop();
int objnum = getObjectIndex(object);
if (objnum == -1) {
push(0);
return;
}
push(_objs[objnum].y_pos);
}
void ScummEngine_v72he::o72_startScript() {
int args[16];
int script, flags;