diff options
author | Travis Howell | 2004-09-20 05:30:26 +0000 |
---|---|---|
committer | Travis Howell | 2004-09-20 05:30:26 +0000 |
commit | e9a9a6410927b1cc749335d19492ed617efcb5cd (patch) | |
tree | 191d2db95311b28b1cf8041eb3cc9823b9a14395 | |
parent | 0cb722d71d1ddda5da07fb63bcd1db64436c1ed9 (diff) | |
download | scummvm-rg350-e9a9a6410927b1cc749335d19492ed617efcb5cd.tar.gz scummvm-rg350-e9a9a6410927b1cc749335d19492ed617efcb5cd.tar.bz2 scummvm-rg350-e9a9a6410927b1cc749335d19492ed617efcb5cd.zip |
Opcode1C in HE90+ games seems to setup WizImage settings via various cases.
svn-id: r15198
-rw-r--r-- | scumm/script_v90he.cpp | 24 | ||||
-rw-r--r-- | scumm/scumm.cpp | 5 | ||||
-rw-r--r-- | scumm/scumm.h | 1 |
3 files changed, 24 insertions, 6 deletions
diff --git a/scumm/script_v90he.cpp b/scumm/script_v90he.cpp index 38a71cb717..1e74c74c1f 100644 --- a/scumm/script_v90he.cpp +++ b/scumm/script_v90he.cpp @@ -451,13 +451,13 @@ void ScummEngine_v90he::o90_unknown1C() { pop(); break; case 6: - pop(); + _wizState = pop(); break; case 7: pop(); break; case 8: - pop(); + _wizFlag = pop(); break; case 10: { @@ -480,11 +480,12 @@ void ScummEngine_v90he::o90_unknown1C() { } break; case 11: - pop(); + _wizResNum = pop(); + _wizFlag = 0; break; case 19: - pop(); - pop(); + _wizY1 = pop(); + _wizX1 = pop(); break; case 87: // HE99+ pop(); @@ -499,12 +500,23 @@ void ScummEngine_v90he::o90_unknown1C() { case 171: // HE99+ break; case 209: + if (_fullRedraw) { + assert(_wizImagesNum < ARRAYSIZE(_wizImages)); + WizImage *pwi = &_wizImages[_wizImagesNum]; + pwi->resnum = _wizResNum; + pwi->x1 = _wizX1; + pwi->y1 = _wizY1; + pwi->flags = _wizFlag; + ++_wizImagesNum; + } else { + drawWizImage(rtImage, _wizResNum, _wizState, _wizX1, _wizY1, _wizFlag); + } break; default: error("o90_unknown1C: unhandled case %d", subOp); } - debug(1,"o90_unknown1C stub (%d)", subOp); + debug(0,"o90_unknown1C stub (%d)", subOp); } void ScummEngine_v90he::o90_unknown25() { diff --git a/scumm/scumm.cpp b/scumm/scumm.cpp index 4ecb956583..553633f644 100644 --- a/scumm/scumm.cpp +++ b/scumm/scumm.cpp @@ -701,6 +701,11 @@ ScummEngine::ScummEngine(GameDetector *detector, OSystem *syst, const ScummGameS _heSndLoop = 0; _heSndSoundFreq = 0; memset(_timers, 0, sizeof(_timers)); + _wizResNum = 0; + _wizX1 = 0; + _wizY1 = 0; + _wizState = 0; + _wizFlag = 0; memset(_queueCmd, 0, sizeof(_queueCmd)); memset(_queueActor, 0, sizeof(_queueActor)); diff --git a/scumm/scumm.h b/scumm/scumm.h index 6ee20a732b..71d1572e5e 100644 --- a/scumm/scumm.h +++ b/scumm/scumm.h @@ -1075,6 +1075,7 @@ public: int _heSndSoundFreq, _heSndOffset, _heSndChannel, _heSndSoundId, _heSndLoop; bool _skipDrawObject, _skipProcessActors; int _timers[4]; + int _wizResNum, _wizX1, _wizY1, _wizState, _wizFlag; protected: int _shadowPaletteSize; |