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  | 
