diff options
author | Travis Howell | 2005-03-08 04:17:45 +0000 |
---|---|---|
committer | Travis Howell | 2005-03-08 04:17:45 +0000 |
commit | b9393bc819e69ccdd7428f988026f76dc2b3e812 (patch) | |
tree | e4817ddc6d3e5fb9070811f80ca6ac0d612307f1 /scumm | |
parent | d2dab235106851ac25ca4992a07678863011045b (diff) | |
download | scummvm-rg350-b9393bc819e69ccdd7428f988026f76dc2b3e812.tar.gz scummvm-rg350-b9393bc819e69ccdd7428f988026f76dc2b3e812.tar.bz2 scummvm-rg350-b9393bc819e69ccdd7428f988026f76dc2b3e812.zip |
Script flags are different in HE100
svn-id: r17034
Diffstat (limited to 'scumm')
-rw-r--r-- | scumm/intern.h | 2 | ||||
-rw-r--r-- | scumm/script_v100he.cpp | 27 |
2 files changed, 27 insertions, 2 deletions
diff --git a/scumm/intern.h b/scumm/intern.h index 448d4d7805..a7a2b34f9e 100644 --- a/scumm/intern.h +++ b/scumm/intern.h @@ -1079,6 +1079,7 @@ protected: void o100_setSpriteGroupInfo(); void o100_resourceRoutines(); void o100_wizImageOps(); + void o100_jumpToScript(); void o100_loadSBNG(); void o100_dim2dim2Array(); void o100_paletteOps(); @@ -1086,6 +1087,7 @@ protected: void o100_roomOps(); void o100_startSound(); void o100_setSpriteInfo(); + void o100_startScript(); void o100_quitPauseRestart(); void o100_cursorCommand(); void o100_wait(); diff --git a/scumm/script_v100he.cpp b/scumm/script_v100he.cpp index f27baaef37..56656f515e 100644 --- a/scumm/script_v100he.cpp +++ b/scumm/script_v100he.cpp @@ -62,7 +62,7 @@ void ScummEngine_v100he::setupOpcodes() { OPCODE(o6_panCameraTo), /* 10 */ OPCODE(o6_invalid), - OPCODE(o72_jumpToScript), + OPCODE(o100_jumpToScript), OPCODE(o6_setClass), OPCODE(o60_closeFile), /* 14 */ @@ -196,7 +196,7 @@ void ScummEngine_v100he::setupOpcodes() { OPCODE(o6_stampObject), OPCODE(o72_startObject), /* 7C */ - OPCODE(o72_startScript), + OPCODE(o100_startScript), OPCODE(o6_startScriptQuick), OPCODE(o80_setState), OPCODE(o6_stopObjectScript), @@ -715,6 +715,18 @@ void ScummEngine_v100he::o100_arrayOps() { } } +void ScummEngine_v100he::o100_jumpToScript() { + int args[25]; + int script; + byte flags; + + getStackList(args, ARRAYSIZE(args)); + script = pop(); + flags = fetchScriptByte(); + stopObjectCode(); + runScript(script, (flags == 128 || flags == 129), (flags == 130 || flags == 129), args); +} + void ScummEngine_v100he::o100_loadSBNG() { // Loads SBNG sound resource byte subOp = fetchScriptByte(); @@ -1971,6 +1983,17 @@ void ScummEngine_v100he::o100_setSpriteInfo() { } } +void ScummEngine_v100he::o100_startScript() { + int args[25]; + int script; + byte flags; + + getStackList(args, ARRAYSIZE(args)); + script = pop(); + flags = fetchScriptByte(); + runScript(script, (flags == 128 || flags == 129), (flags == 130 || flags == 129), args); +} + void ScummEngine_v100he::o100_quitPauseRestart() { byte subOp = fetchScriptByte(); subOp -= 61; |