diff options
| -rwxr-xr-x | devtools/tasmrecover/tasm-recover | 2 | ||||
| -rw-r--r-- | engines/dreamweb/dreamgen.cpp | 47 | ||||
| -rw-r--r-- | engines/dreamweb/dreamgen.h | 2 | ||||
| -rw-r--r-- | engines/dreamweb/stubs.cpp | 30 | ||||
| -rw-r--r-- | engines/dreamweb/stubs.h | 2 | 
5 files changed, 34 insertions, 49 deletions
| diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover index 881ee7fb64..f6e99e84e0 100755 --- a/devtools/tasmrecover/tasm-recover +++ b/devtools/tasmrecover/tasm-recover @@ -358,6 +358,7 @@ generator = cpp(context, "DreamGen", blacklist = [  	'gates',  	'generalerror',  	'getanyaddir', +	'getback1',  	'getbackfromob',  	'getbackfromops',  	'getbacktoops', @@ -497,6 +498,7 @@ generator = cpp(context, "DreamGen", blacklist = [  	'namestoold',  	'neterror',  	'newgame', +	'newplace',  	'nextdest',  	'nextfolder',  	'nextsymbol', diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp index 42660f4fa3..de0ac54a51 100644 --- a/engines/dreamweb/dreamgen.cpp +++ b/engines/dreamweb/dreamgen.cpp @@ -2794,34 +2794,6 @@ beforethistext:  		goto shuffletextads;  } -void DreamGenContext::getBack1() { -	STACK_CHECK; -	_cmp(data.byte(kPickup), 0); -	if (flags.z()) -		goto notgotobject; -	blank(); -	return; -notgotobject: -	_cmp(data.byte(kCommandtype), 202); -	if (flags.z()) -		goto alreadyget; -	data.byte(kCommandtype) = 202; -	al = 26; -	commandOnly(); -alreadyget: -	ax = data.word(kMousebutton); -	_cmp(ax, data.word(kOldbutton)); -	if (flags.z()) -		return /* (nogetback) */; -	_and(ax, 1); -	if (!flags.z()) -		goto dogetback; -	return; -dogetback: -	data.byte(kGetback) = 1; -	data.byte(kPickup) = 0; -} -  void DreamGenContext::startTalk() {  	STACK_CHECK;  	data.byte(kTalkmode) = 0; @@ -3015,25 +2987,6 @@ endheartalk:  	data.byte(kPointermode) = 0;  } -void DreamGenContext::newPlace() { -	STACK_CHECK; -	_cmp(data.byte(kNeedtotravel), 1); -	if (flags.z()) -		goto istravel; -	_cmp(data.byte(kAutolocation), -1); -	if (!flags.z()) -		goto isautoloc; -	return; -isautoloc: -	al = data.byte(kAutolocation); -	data.byte(kNewlocation) = al; -	data.byte(kAutolocation) = -1; -	return; -istravel: -	data.byte(kNeedtotravel) = 0; -	selectLocation(); -} -  void DreamGenContext::lookAtPlace() {  	STACK_CHECK;  	_cmp(data.byte(kCommandtype), 224); diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h index 1861732860..848bd53726 100644 --- a/engines/dreamweb/dreamgen.h +++ b/engines/dreamweb/dreamgen.h @@ -626,7 +626,6 @@ public:  	void dreamweb();  	void checkInside();  	void findPathOfPoint(); -	void getBack1();  	void getDestInfo();  	void setupTimedUse();  	void makeCaps(); @@ -637,7 +636,6 @@ public:  	void selectOpenOb();  	void useGun();  	void autoAppear(); -	void newPlace();  	void useHandle();  	void showPuzText();  	void incRyanPage(); diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp index 2caaf6c36a..3688715ea9 100644 --- a/engines/dreamweb/stubs.cpp +++ b/engines/dreamweb/stubs.cpp @@ -4202,4 +4202,34 @@ void DreamGenContext::cantDrop() {  	workToScreenM();  } +void DreamGenContext::getBack1() { +	if (data.byte(kPickup) != 0) { +		blank(); +	} else if (data.byte(kCommandtype) != 202) { +		// Not holding object +		data.byte(kCommandtype) = 202; +		commandOnly(26); +	} else { +		// Already got object +		if (data.word(kMousebutton) == data.word(kOldbutton)) +			return; // nogetback + +		if (data.word(kMousebutton) & 1) { +			// Get back +			data.byte(kGetback) = 1; +			data.byte(kPickup) = 0; +		} +	} +} + +void DreamGenContext::newPlace() { +	if (data.byte(kNeedtotravel) == 1) { +		data.byte(kNeedtotravel) = 0; +		selectLocation(); +	} else if (data.byte(kAutolocation) != 0xFF) { +		data.byte(kNewlocation) = data.byte(kAutolocation); +		data.byte(kAutolocation) = 0xFF; +	} +} +  } // End of namespace DreamGen diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h index 19ebfac817..e9e642ca6e 100644 --- a/engines/dreamweb/stubs.h +++ b/engines/dreamweb/stubs.h @@ -562,5 +562,7 @@  	void checkInput();  	void dropError();  	void cantDrop(); +	void getBack1(); +	void newPlace();  #endif | 
