[Scummvm-cvs-logs] scummvm master -> b74302f7b04bf920023ba8b29f70a4b645bf52a2

bluegr md5 at scummvm.org
Tue Dec 6 04:28:18 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:
b74302f7b0 DREAMWEB: 'setwalk' ported to C++


Commit: b74302f7b04bf920023ba8b29f70a4b645bf52a2
    https://github.com/scummvm/scummvm/commit/b74302f7b04bf920023ba8b29f70a4b645bf52a2
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2011-12-05T19:25:39-08:00

Commit Message:
DREAMWEB: 'setwalk' ported to C++

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



diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover
index 41bf3ab..9c3f55d 100755
--- a/devtools/tasmrecover/tasm-recover
+++ b/devtools/tasmrecover/tasm-recover
@@ -498,6 +498,7 @@ generator = cpp(context, "DreamGen", blacklist = [
 	'setupemm',
 	'setuppit',
 	'setuptimedtemp',
+	'setwalk',
 	'showallex',
 	'showallfree',
 	'showallobs',
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 7fbf380..f1eabe8 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -9362,49 +9362,6 @@ searchmess:
 	printDirect();
 }
 
-void DreamGenContext::setWalk() {
-	STACK_CHECK;
-	_cmp(data.byte(kLinepointer), 254);
-	if (!flags.z())
-		goto alreadywalking;
-	al = data.byte(kPointerspath);
-	_cmp(al, data.byte(kManspath));
-	if (flags.z())
-		goto cantwalk2;
-	_cmp(data.byte(kWatchmode), 1);
-	if (flags.z())
-		goto holdingreel;
-	_cmp(data.byte(kWatchmode), 2);
-	if (flags.z())
-		return /* (cantwalk) */;
-	data.byte(kDestination) = al;
-	data.byte(kFinaldest) = al;
-	_cmp(data.word(kMousebutton), 2);
-	if (!flags.z())
-		goto notwalkandexam;
-	_cmp(data.byte(kCommandtype), 3);
-	if (flags.z())
-		goto notwalkandexam;
-	data.byte(kWalkandexam) = 1;
-	al = data.byte(kCommandtype);
-	data.byte(kWalkexamtype) = al;
-	al = data.byte(kCommand);
-	data.byte(kWalkexamnum) = al;
-notwalkandexam:
-	autoSetWalk();
-	return;
-cantwalk2:
-	faceRightWay();
-	return;
-alreadywalking:
-	al = data.byte(kPointerspath);
-	data.byte(kFinaldest) = al;
-	return;
-holdingreel:
-	data.byte(kDestafterhold) = al;
-	data.byte(kWatchmode) = 2;
-}
-
 void DreamGenContext::workoutFrames() {
 	STACK_CHECK;
 	bx = data.word(kLinestartx);
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index 8589d22..bc22d5b 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -753,7 +753,6 @@ public:
 	void dreamweb();
 	void dropError();
 	void checkInside();
-	void setWalk();
 	void findPathOfPoint();
 	void isSetObOnMap();
 	void getDestInfo();
diff --git a/engines/dreamweb/pathfind.cpp b/engines/dreamweb/pathfind.cpp
index a8ac4ac..6b49a87 100644
--- a/engines/dreamweb/pathfind.cpp
+++ b/engines/dreamweb/pathfind.cpp
@@ -77,6 +77,33 @@ RoomPaths *DreamGenContext::getRoomsPaths() {
 	return (RoomPaths *)result;
 }
 
+void DreamGenContext::setWalk() {
+	if (data.byte(kLinepointer) != 254) {
+		// Already walking
+		data.byte(kFinaldest) = data.byte(kPointerspath);
+	} else if (data.byte(kPointerspath) == data.byte(kManspath)) {
+		// Can't walk
+		faceRightWay();
+	} else if (data.byte(kWatchmode) == 1) {
+		// Holding reel
+		data.byte(kDestafterhold) = data.byte(kPointerspath);
+		data.byte(kWatchmode) = 2;
+	} else if (data.byte(kWatchmode) == 2) {
+		// Can't walk
+	} else {
+		data.byte(kDestination) = data.byte(kPointerspath);
+		data.byte(kFinaldest) = data.byte(kPointerspath);
+		if (data.word(kMousebutton) != 2 || data.word(kMousebutton) == 3) {
+			autoSetWalk();
+		} else {
+			data.byte(kWalkandexam) = 1;
+			data.byte(kWalkexamtype) = data.byte(kCommandtype);
+			data.byte(kWalkexamnum) = data.byte(kCommand);
+			autoSetWalk();
+		}
+	}
+}
+
 void DreamGenContext::autoSetWalk() {
 	al = data.byte(kManspath);
 	if (data.byte(kFinaldest) == al)
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index 74660e5..0a8ef49 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -520,5 +520,6 @@
 	void openSarters();
 	void openLouis();
 	void DOSReturn();
+	void setWalk();
 
 #endif






More information about the Scummvm-git-logs mailing list