[Scummvm-cvs-logs] scummvm master -> 0cd53d5d3e6324869adf145047c65d2ef93e8b7f

bluegr md5 at scummvm.org
Sun Dec 18 20:09:02 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:
0cd53d5d3e DREAMWEB: Port 'lookatplace' to C++


Commit: 0cd53d5d3e6324869adf145047c65d2ef93e8b7f
    https://github.com/scummvm/scummvm/commit/0cd53d5d3e6324869adf145047c65d2ef93e8b7f
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2011-12-18T11:07:27-08:00

Commit Message:
DREAMWEB: Port 'lookatplace' 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 5f245b4..04f8ebe 100755
--- a/devtools/tasmrecover/tasm-recover
+++ b/devtools/tasmrecover/tasm-recover
@@ -562,6 +562,7 @@ generator = cpp(context, "DreamGen", blacklist = [
 	'lockmon',
 	'look',
 	'lookatcard',
+	'lookatplace',
 	'lookininterface',
 	'loopchannel0',
 	'louis',
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index f97eba4..be1bfa6 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -1647,77 +1647,6 @@ endheartalk:
 	data.byte(kPointermode) = 0;
 }
 
-void DreamGenContext::lookAtPlace() {
-	STACK_CHECK;
-	_cmp(data.byte(kCommandtype), 224);
-	if (flags.z())
-		goto alreadyinfo;
-	data.byte(kCommandtype) = 224;
-	al = 27;
-	commandOnly();
-alreadyinfo:
-	ax = data.word(kMousebutton);
-	_and(ax, 1);
-	if (flags.z())
-		return /* (noinfo) */;
-	_cmp(ax, data.word(kOldbutton));
-	if (flags.z())
-		return /* (noinfo) */;
-	bl = data.byte(kDestpos);
-	_cmp(bl, 15);
-	if (!flags.c())
-		return /* (noinfo) */;
-	push(bx);
-	delPointer();
-	delTextLine();
-	getUnderCentre();
-	ds = data.word(kTempgraphics3);
-	al = 0;
-	ah = 0;
-	di = 60;
-	bx = 72;
-	showFrame();
-	al = 4;
-	ah = 0;
-	di = 60;
-	bx = 72+55;
-	showFrame();
-	_cmp(data.byte(kForeignrelease),  0);
-	if (flags.z())
-		goto _tmp1;
-	al = 4;
-	ah = 0;
-	di = 60;
-	bx = 72+55+21;
-	showFrame();
-_tmp1:
-	bx = pop();
-	bh = 0;
-	_add(bx, bx);
-	es = data.word(kTraveltext);
-	si = es.word(bx);
-	_add(si, (66*2));
-	findNextColon();
-	di = 63;
-	bx = 84;
-	_cmp(data.byte(kForeignrelease),  0);
-	if (flags.z())
-		goto _tmp2;
-	bx = 84+4;
-_tmp2:
-	dl = 191;
-	al = 0;
-	ah = 0;
-	printDirect();
-	workToScreenM();
-	cx = 500;
-	hangOnP();
-	data.byte(kPointermode) = 0;
-	data.byte(kPointerframe) = 0;
-	putUnderCentre();
-	workToScreenM();
-}
-
 void DreamGenContext::locationPic() {
 	STACK_CHECK;
 	getDestInfo();
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index fb96515..77e3abd 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -491,7 +491,6 @@ public:
 	void findOpenPos();
 	void searchForSame();
 	void rollEm();
-	void lookAtPlace();
 	void findAllOpen();
 	void fillOpen();
 	void getEitherAd();
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index 98d961e..6989a57 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -4584,4 +4584,36 @@ void DreamGenContext::showDiaryKeys() {
 		showDiaryPage();
 }
 
+void DreamGenContext::lookAtPlace() {
+	if (data.byte(kCommandtype) != 224) {
+		data.byte(kCommandtype) = 224;
+		commandOnly(27);
+	}
+
+	if (!(data.word(kMousebutton) & 1) ||
+		data.word(kMousebutton) == data.word(kOldbutton) ||
+		data.byte(kDestpos) >= 15)
+		return; // noinfo
+
+	delPointer();
+	delTextLine();
+	getUnderCentre();
+	showFrame(tempGraphics3(), 60, 72, 0, 0);
+	showFrame(tempGraphics3(), 60, 72 + 55, 4, 0);
+	if (data.byte(kForeignrelease))
+		showFrame(tempGraphics3(), 60, 72+55+21, 4, 0);
+
+	uint16 offset = kTextstart + getSegment(data.word(kTraveltext)).word(data.byte(kDestpos) * 2);
+	const uint8 *string = getSegment(data.word(kTraveltext)).ptr(offset, 0);
+	findNextColon(&string);
+	uint16 y = (data.byte(kForeignrelease)) ? 84 + 4 : 84;
+	printDirect(&string, 63, &y, 191, 191 & 1);
+	workToScreenM();
+	hangOnP(500);
+	data.byte(kPointermode) = 0;
+	data.byte(kPointerframe) = 0;
+	putUnderCentre();
+	workToScreenM();
+}
+
 } // End of namespace DreamGen
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index bb86175..3ab7cfb 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -374,5 +374,6 @@
 		DreamBase::deleteExText(textNum);
 	}
 	void signOn();
+	void lookAtPlace();
 
 #endif






More information about the Scummvm-git-logs mailing list