diff options
-rwxr-xr-x | devtools/tasmrecover/tasm-recover | 1 | ||||
-rw-r--r-- | engines/dreamweb/dreamgen.cpp | 31 | ||||
-rw-r--r-- | engines/dreamweb/dreamgen.h | 1 | ||||
-rw-r--r-- | engines/dreamweb/stubs.cpp | 19 | ||||
-rw-r--r-- | engines/dreamweb/stubs.h | 1 |
5 files changed, 21 insertions, 32 deletions
diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover index ecc6b92a5c..1c30478b60 100755 --- a/devtools/tasmrecover/tasm-recover +++ b/devtools/tasmrecover/tasm-recover @@ -432,6 +432,7 @@ generator = cpp(context, "DreamGen", blacklist = [ 'louis', 'louischair', 'madman', + 'madmanrun', 'madmanstelly', 'madmantext', 'madmode', diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp index 65d8d4a33d..b29e04b2dc 100644 --- a/engines/dreamweb/dreamgen.cpp +++ b/engines/dreamweb/dreamgen.cpp @@ -6600,37 +6600,6 @@ void DreamGenContext::clearChanges() { _stosw(cx, true); } -void DreamGenContext::madmanRun() { - STACK_CHECK; - _cmp(data.byte(kLocation), 14); - if (!flags.z()) - { identifyOb(); return; }; - _cmp(data.byte(kMapx), 22); - if (!flags.z()) - { identifyOb(); return; }; - _cmp(data.byte(kPointermode), 2); - if (!flags.z()) - { identifyOb(); return; }; - _cmp(data.byte(kMadmanflag), 0); - if (!flags.z()) - { identifyOb(); return; }; - _cmp(data.byte(kCommandtype), 211); - if (flags.z()) - goto alreadyrun; - data.byte(kCommandtype) = 211; - al = 52; - commandOnly(); -alreadyrun: - _cmp(data.word(kMousebutton), 1); - if (!flags.z()) - return /* (norun) */; - ax = data.word(kMousebutton); - _cmp(ax, data.word(kOldbutton)); - if (flags.z()) - return /* (norun) */; - data.byte(kLastweapon) = 8; -} - void DreamGenContext::identifyOb() { STACK_CHECK; _cmp(data.word(kWatchingtime), 0); diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h index 5e0523d2a3..0f4dcdb01e 100644 --- a/engines/dreamweb/dreamgen.h +++ b/engines/dreamweb/dreamgen.h @@ -679,7 +679,6 @@ public: void clearChanges(); void searchForFiles(); void monkSpeaking(); - void madmanRun(); void getExAd(); void initialMonCols(); void useButtonA(); diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp index 674ea212fa..35b0ae3ac4 100644 --- a/engines/dreamweb/stubs.cpp +++ b/engines/dreamweb/stubs.cpp @@ -3899,4 +3899,23 @@ void DreamGenContext::afterNewRoom() { atmospheres(); } +void DreamGenContext::madmanRun() { + if (data.byte(kLocation) != 14 || + data.byte(kMapx) != 22 || + data.byte(kPointermode) != 2 || + data.byte(kMadmanflag) != 0) { + identifyOb(); + return; + } + + if (data.byte(kCommandtype) != 211) { + data.byte(kCommandtype) = 211; + commandOnly(52); + } + + if (data.word(kMousebutton) == 1 && + data.word(kMousebutton) != data.word(kOldbutton)) + data.byte(kLastweapon) = 8; +} + } // End of namespace DreamGen diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h index 582109f400..f4bb1ec13b 100644 --- a/engines/dreamweb/stubs.h +++ b/engines/dreamweb/stubs.h @@ -549,5 +549,6 @@ DreamBase::removeFreeObject(index); } void afterNewRoom(); + void madmanRun(); #endif |