diff options
author | Travis Howell | 2004-10-10 04:02:37 +0000 |
---|---|---|
committer | Travis Howell | 2004-10-10 04:02:37 +0000 |
commit | 38f8de858ec00a2cc847e22d4d8f4f5683bf3fec (patch) | |
tree | e972c8a8881f2975a7939be6a86d6175e4207255 /scumm | |
parent | 3ddc6b8cbb42f34963ae094d62a99b96da45d6aa (diff) | |
download | scummvm-rg350-38f8de858ec00a2cc847e22d4d8f4f5683bf3fec.tar.gz scummvm-rg350-38f8de858ec00a2cc847e22d4d8f4f5683bf3fec.tar.bz2 scummvm-rg350-38f8de858ec00a2cc847e22d4d8f4f5683bf3fec.zip |
More HE100 corrections.
svn-id: r15500
Diffstat (limited to 'scumm')
-rw-r--r-- | scumm/intern.h | 1 | ||||
-rw-r--r-- | scumm/script_v100he.cpp | 30 | ||||
-rw-r--r-- | scumm/script_v72he.cpp | 2 |
3 files changed, 27 insertions, 6 deletions
diff --git a/scumm/intern.h b/scumm/intern.h index 3d9662fccf..e62fe433b9 100644 --- a/scumm/intern.h +++ b/scumm/intern.h @@ -934,6 +934,7 @@ protected: void o100_wizImageOps(); void o100_dim2dim2Array(); void o100_paletteOps(); + void o100_redimArray(); void o100_roomOps(); void o100_startSound(); void o100_unknown26(); diff --git a/scumm/script_v100he.cpp b/scumm/script_v100he.cpp index 95781fbf51..9dea3d52f6 100644 --- a/scumm/script_v100he.cpp +++ b/scumm/script_v100he.cpp @@ -169,7 +169,7 @@ void ScummEngine_v100he::setupOpcodes() { OPCODE(o6_putActorAtXY), OPCODE(o6_invalid), /* 64 */ - OPCODE(o72_redimArray), + OPCODE(o100_redimArray), OPCODE(o60_rename), OPCODE(o6_stopObjectCode), OPCODE(o6_invalid), @@ -224,7 +224,7 @@ void ScummEngine_v100he::setupOpcodes() { OPCODE(o6_walkActorToObj), OPCODE(o6_walkActorTo), /* 90 */ - OPCODE(o60_writeFile), + OPCODE(o72_writeFile), OPCODE(o72_writeINI), OPCODE(o80_writeConfigFile), OPCODE(o6_abs), @@ -306,8 +306,8 @@ void ScummEngine_v100he::setupOpcodes() { /* D0 */ OPCODE(o6_getRandomNumber), OPCODE(o6_getRandomNumberRange), - OPCODE(o60_readFile), OPCODE(o6_invalid), + OPCODE(o72_readFile), /* D4 */ OPCODE(o72_readINI), OPCODE(o80_readConfigFile), @@ -596,8 +596,6 @@ void ScummEngine_v100he::o100_arrayOps() { ah = defineArray(array, kStringArray, 0, 0, 0, len); memcpy(ah->data, string, len); break; - - case 77: // SO_ASSIGN_STRING copyScriptString(string); len = resStrLen(string) + 1; @@ -626,7 +624,6 @@ void ScummEngine_v100he::o100_arrayOps() { writeArray(array, 0, b + c, pop()); } break; - case 130: len = getStackList(list, ARRAYSIZE(list)); dim1end = pop(); @@ -1105,6 +1102,27 @@ void ScummEngine_v100he::o100_paletteOps() { debug(0,"o100_paletteOps stub (%d)", subOp); } +void ScummEngine_v100he::o100_redimArray() { + int newX, newY; + newY = pop(); + newX = pop(); + + byte subOp = fetchScriptByte(); + switch (subOp) { + case 42: + redimArray(fetchScriptWord(), 0, newX, 0, newY, kIntArray); + break; + case 43: + redimArray(fetchScriptWord(), 0, newX, 0, newY, kDwordArray); + break; + case 45: + redimArray(fetchScriptWord(), 0, newX, 0, newY, kByteArray); + break; + default: + error("o100_redimArray: default type %d", subOp); + } +} + void ScummEngine_v100he::o100_roomOps() { int a, b, c, d, e; byte op; diff --git a/scumm/script_v72he.cpp b/scumm/script_v72he.cpp index eb7c85c12b..d740711b3d 100644 --- a/scumm/script_v72he.cpp +++ b/scumm/script_v72he.cpp @@ -2104,9 +2104,11 @@ void ScummEngine_v72he::o72_getPixel() { } switch (subOp) { + case 9: // HE 100 case 218: area = *vs->getBackPixels(x, y - vs->topline); break; + case 8: // HE 100 case 219: area = *vs->getPixels(x, y - vs->topline); break; |