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

tramboi bertrand_augereau at yahoo.fr
Mon Sep 5 21:50:27 CEST 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:
a6b6d05a2c DREAMWEB: Ported 'findallryan' to C++


Commit: a6b6d05a2c5052a86c9bf3ca31f548c7ba08b5ee
    https://github.com/scummvm/scummvm/commit/a6b6d05a2c5052a86c9bf3ca31f548c7ba08b5ee
Author: Bertrand Augereau (bertrand_augereau at yahoo.fr)
Date: 2011-09-05T12:42:06-07:00

Commit Message:
DREAMWEB: Ported 'findallryan' 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 2193954..6d07d76 100755
--- a/devtools/tasmrecover/tasm-recover
+++ b/devtools/tasmrecover/tasm-recover
@@ -189,6 +189,7 @@ generator = cpp(context, "DreamGen", blacklist = [
 	'makeworn',
 	'obtoinv',
 	'showryanpage',
+	'findallryan',
 	], skip_output = [
 	# These functions are processed but not output
 	'dreamweb',
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index a03aa62..ad9cb5f 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -3847,41 +3847,6 @@ nextopenslot:
 	undertextline();
 }
 
-void DreamGenContext::findallryan() {
-	STACK_CHECK;
-	push(di);
-	cx = 30;
-	ax = 0x0ffff;
-	_stosw(cx, true);
-	di = pop();
-	cl = 4;
-	ds = data.word(kExtras);
-	bx = (0+2080+30000);
-	ch = 0;
-findryanloop:
-	_cmp(ds.byte(bx+2), cl);
-	if (!flags.z())
-		goto notinryaninv;
-	_cmp(ds.byte(bx+3), 255);
-	if (!flags.z())
-		goto notinryaninv;
-	al = ds.byte(bx+4);
-	ah = 0;
-	push(di);
-	_add(di, ax);
-	_add(di, ax);
-	al = ch;
-	ah = 4;
-	_stosw();
-	di = pop();
-notinryaninv:
-	_add(bx, 16);
-	_inc(ch);
-	_cmp(ch, (114));
-	if (!flags.z())
-		goto findryanloop;
-}
-
 void DreamGenContext::findallopen() {
 	STACK_CHECK;
 	push(di);
@@ -17282,7 +17247,6 @@ void DreamGenContext::__dispatch_call(uint16 addr) {
 		case addr_monprint: monprint(); break;
 		case addr_fillryan: fillryan(); break;
 		case addr_fillopen: fillopen(); break;
-		case addr_findallryan: findallryan(); break;
 		case addr_findallopen: findallopen(); break;
 		case addr_examineob: examineob(); break;
 		case addr_makemainscreen: makemainscreen(); break;
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index 6c62e9b..8465c59 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -494,7 +494,6 @@ public:
 	static const uint16 addr_makemainscreen = 0xc340;
 	static const uint16 addr_examineob = 0xc33c;
 	static const uint16 addr_findallopen = 0xc32c;
-	static const uint16 addr_findallryan = 0xc328;
 	static const uint16 addr_fillopen = 0xc324;
 	static const uint16 addr_fillryan = 0xc320;
 	static const uint16 addr_monprint = 0xc314;
@@ -1929,7 +1928,7 @@ public:
 	void buttonseven();
 	void redrawmainscrn();
 	void showgroup();
-	void findallryan();
+	//void findallryan();
 	//void channel0tran();
 	void buttonpress();
 	//void parseblaster();
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index 8985392..51a79d7 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -1822,5 +1822,24 @@ void DreamGenContext::showryanpage() {
 	showframe(icons1, kInventx + 167 + 18 * data.byte(kRyanpage), kInventy - 12, 13 + data.byte(kRyanpage), 0);
 }
 
+void DreamGenContext::findallryan() {
+	findallryan(es.ptr(di, 60));
+}
+
+void DreamGenContext::findallryan(uint8 *inv) {
+	memset(inv, 0xff, 60);
+	for (size_t i = 0; i < kNumexobjects; ++i) {
+		DynObject *extra = getexad(i);
+		if (extra->mapad[0] != 4)
+			continue;
+		if (extra->mapad[1] != 0xff)
+			continue;
+		uint8 slot = extra->mapad[2];
+		assert(slot < 30);
+		inv[2 * slot + 0] = i;
+		inv[2 * slot + 1] = 4;
+	}
+}
+
 } /*namespace dreamgen */
 
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index 10cb2e8..c8fbd9b 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -227,4 +227,6 @@
 	void obtoinv();
 	void obtoinv(uint8 index, uint8 flag, uint16 x, uint16 y);
 	void showryanpage();
+	void findallryan();
+	void findallryan(uint8 *inv);
 






More information about the Scummvm-git-logs mailing list