aboutsummaryrefslogtreecommitdiff
path: root/scumm/script_v72he.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'scumm/script_v72he.cpp')
-rw-r--r--scumm/script_v72he.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/scumm/script_v72he.cpp b/scumm/script_v72he.cpp
index b29000f304..a401bb2242 100644
--- a/scumm/script_v72he.cpp
+++ b/scumm/script_v72he.cpp
@@ -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),
@@ -379,6 +379,17 @@ const char *ScummEngine_v72he::getOpcodeDesc(byte i) {
return _opcodesV72he[i].desc;
}
+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;