[Scummvm-cvs-logs] scummvm master -> 21885f062144aade626610c164cbaa5a0bf6e8a5

bluegr md5 at scummvm.org
Sun Dec 11 20:22:43 CET 2011


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
21885f0621 DREAMWEB: Port 'getback1', 'newplace' to C++


Commit: 21885f062144aade626610c164cbaa5a0bf6e8a5
    https://github.com/scummvm/scummvm/commit/21885f062144aade626610c164cbaa5a0bf6e8a5
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2011-12-11T11:21:20-08:00

Commit Message:
DREAMWEB: Port 'getback1', 'newplace' to C++

Changed paths:
    devtools/tasmrecover/tasm-recover
    engines/dreamweb/dreamgen.cpp
    engines/dreamweb/dreamgen.h
    engines/dreamweb/stubs.cpp
    engines/dreamweb/stubs.h



diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover
index 881ee7f..f6e99e8 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 42660f4..de0ac54 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 1861732..848bd53 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 2caaf6c..3688715 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 19ebfac..e9e642c 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






More information about the Scummvm-git-logs mailing list