[Scummvm-cvs-logs] scummvm master -> 7445c62a713de489b3515711de579696c64239fe

bluegr md5 at scummvm.org
Tue Dec 6 22:05:40 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:
7445c62a71 DREAMWEB: 'usecardreader1', 'usecardreader2', 'usecardreader3', 'usepoolreader' ported to C++


Commit: 7445c62a713de489b3515711de579696c64239fe
    https://github.com/scummvm/scummvm/commit/7445c62a713de489b3515711de579696c64239fe
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2011-12-06T13:02:31-08:00

Commit Message:
DREAMWEB: 'usecardreader1', 'usecardreader2', 'usecardreader3', 'usepoolreader' ported to C++

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



diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover
index ce45a91..a270a7f 100755
--- a/devtools/tasmrecover/tasm-recover
+++ b/devtools/tasmrecover/tasm-recover
@@ -598,6 +598,9 @@ generator = cpp(context, "DreamGen", blacklist = [
 	'twodigitnum',
 	'updatepeople',
 	'usebalcony',
+	'usecardreader1',
+	'usecardreader2',
+	'usecardreader3',
 	'usecart',
 	'usecharset1',
 	'usechurchgate',
@@ -621,6 +624,7 @@ generator = cpp(context, "DreamGen", blacklist = [
 	'useobject',
 	'useplate',
 	'useplinth',
+	'usepoolreader',
 	'userailing',
 	'useroutine',
 	'useshield',
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 1ab7af0..28d4634 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -5308,43 +5308,6 @@ void DreamGenContext::drawItAll() {
 	showIcon();
 }
 
-void DreamGenContext::usePoolReader() {
-	STACK_CHECK;
-	_cmp(data.byte(kWithobject), 255);
-	if (!flags.z())
-		goto poolwith;
-	withWhat();
-	return;
-poolwith:
-	al = data.byte(kWithobject);
-	ah = data.byte(kWithtype);
-	cl = 'M';
-	ch = 'E';
-	dl = 'M';
-	dh = 'B';
-	compare();
-	if (flags.z())
-		goto openpool;
-	cx = 300;
-	al = 14;
-	showPuzText();
-	putBackObStuff();
-	return;
-openpool:
-	_cmp(data.byte(kTalkedtoattendant), 1);
-	if (flags.z())
-		goto canopenpool;
-	showSecondUse();
-	putBackObStuff();
-	return;
-canopenpool:
-	al = 17;
-	playChannel1();
-	showFirstUse();
-	data.byte(kCounttoopen) = 6;
-	data.byte(kGetback) = 1;
-}
-
 void DreamGenContext::useLighter() {
 	STACK_CHECK;
 	_cmp(data.byte(kWithobject), 255);
@@ -5375,166 +5338,6 @@ cigarette:
 	data.byte(kGetback) = 1;
 }
 
-void DreamGenContext::useCardReader1() {
-	STACK_CHECK;
-	_cmp(data.byte(kWithobject), 255);
-	if (!flags.z())
-		goto gotreader1with;
-	withWhat();
-	return;
-gotreader1with:
-	al = data.byte(kWithobject);
-	ah = data.byte(kWithtype);
-	cl = 'C';
-	ch = 'S';
-	dl = 'H';
-	dh = 'R';
-	compare();
-	if (flags.z())
-		goto correctcard;
-	cx = 300;
-	al = 14;
-	showPuzText();
-	putBackObStuff();
-	return;
-correctcard:
-	_cmp(data.byte(kTalkedtosparky), 0);
-	if (flags.z())
-		goto notyet;
-	_cmp(data.word(kCard1money), 0);
-	if (flags.z())
-		goto getscash;
-	cx = 300;
-	al = 17;
-	showPuzText();
-	putBackObStuff();
-	return;
-getscash:
-	al = 16;
-	playChannel1();
-	cx = 300;
-	al = 18;
-	showPuzText();
-	_inc(data.byte(kProgresspoints));
-	data.word(kCard1money) = 12432;
-	data.byte(kGetback) = 1;
-	return;
-notyet:
-	showFirstUse();
-	putBackObStuff();
-}
-
-void DreamGenContext::useCardReader2() {
-	STACK_CHECK;
-	_cmp(data.byte(kWithobject), 255);
-	if (!flags.z())
-		goto gotreader2with;
-	withWhat();
-	return;
-gotreader2with:
-	al = data.byte(kWithobject);
-	ah = data.byte(kWithtype);
-	cl = 'C';
-	ch = 'S';
-	dl = 'H';
-	dh = 'R';
-	compare();
-	if (flags.z())
-		goto correctcard2;
-	cx = 300;
-	al = 14;
-	showPuzText();
-	putBackObStuff();
-	return;
-correctcard2:
-	_cmp(data.byte(kTalkedtoboss), 0);
-	if (flags.z())
-		goto notyetboss;
-	_cmp(data.word(kCard1money), 0);
-	if (flags.z())
-		goto nocash;
-	_cmp(data.byte(kGunpassflag), 2);
-	if (flags.z())
-		goto alreadygotnew;
-	al = 18;
-	playChannel1();
-	cx = 300;
-	al = 19;
-	showPuzText();
-	al = 94;
-	placeSetObject();
-	data.byte(kGunpassflag) = 1;
-	_sub(data.word(kCard1money), 2000);
-	_inc(data.byte(kProgresspoints));
-	data.byte(kGetback) = 1;
-	return;
-nocash:
-	cx = 300;
-	al = 20;
-	showPuzText();
-	putBackObStuff();
-	return;
-alreadygotnew:
-	cx = 300;
-	al = 22;
-	showPuzText();
-	putBackObStuff();
-	return;
-notyetboss:
-	showFirstUse();
-	putBackObStuff();
-}
-
-void DreamGenContext::useCardReader3() {
-	STACK_CHECK;
-	_cmp(data.byte(kWithobject), 255);
-	if (!flags.z())
-		goto gotreader3with;
-	withWhat();
-	return;
-gotreader3with:
-	al = data.byte(kWithobject);
-	ah = data.byte(kWithtype);
-	cl = 'C';
-	ch = 'S';
-	dl = 'H';
-	dh = 'R';
-	compare();
-	if (flags.z())
-		goto rightcard;
-	cx = 300;
-	al = 14;
-	showPuzText();
-	putBackObStuff();
-	return;
-rightcard:
-	_cmp(data.byte(kTalkedtorecep), 0);
-	if (flags.z())
-		goto notyetrecep;
-	_cmp(data.byte(kCardpassflag), 0);
-	if (!flags.z())
-		goto alreadyusedit;
-	al = 16;
-	playChannel1();
-	cx = 300;
-	al = 25;
-	showPuzText();
-	_inc(data.byte(kProgresspoints));
-	_sub(data.word(kCard1money), 8300);
-	data.byte(kCardpassflag) = 1;
-	data.byte(kGetback) = 1;
-	return;
-alreadyusedit:
-	cx = 300;
-	al = 26;
-	showPuzText();
-	putBackObStuff();
-	return;
-notyetrecep:
-	showFirstUse();
-	putBackObStuff();
-}
-
 void DreamGenContext::useCashCard() {
 	STACK_CHECK;
 	getRidOfReels();
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index 58c19c5..6b0fc9e 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -544,7 +544,6 @@ public:
 	void identifyOb();
 	void useLighter();
 	void runEndSeq();
-	void usePoolReader();
 	void useOpenBox();
 	void clearBuffers();
 	void getObTextStart();
@@ -735,9 +734,6 @@ public:
 	void useGun();
 	void autoAppear();
 	void newPlace();
-	void useCardReader1();
-	void useCardReader2();
-	void useCardReader3();
 	void useHandle();
 	void showPuzText();
 	void incRyanPage();
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index fd734b2..e96fde3 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -405,6 +405,10 @@
 	void useElvDoor();
 	void useObject();
 	void useWinch();
+	void useCardReader1();
+	void useCardReader2();
+	void useCardReader3();
+	void usePoolReader();
 	bool defaultUseHandler(const char *id);
 	void openTVDoor();
 	void wearWatch();
diff --git a/engines/dreamweb/use.cpp b/engines/dreamweb/use.cpp
index 96dfc26..34d1ed2 100644
--- a/engines/dreamweb/use.cpp
+++ b/engines/dreamweb/use.cpp
@@ -1012,6 +1012,112 @@ void DreamGenContext::grafittiDoor() {
 	putBackObStuff();
 }
 
+void DreamGenContext::usePoolReader() {
+	char id[4] = { 'M', 'E', 'M', 'B' };	// TODO: convert to string with trailing zero
+	if (defaultUseHandler(id))
+		return;
+
+	if (data.byte(kTalkedtoattendant) != 1) {
+		// Can't open pool
+		showSecondUse();
+		putBackObStuff();
+	} else {
+		playChannel1(17);
+		showFirstUse();
+		data.byte(kCounttoopen) = 6;
+		data.byte(kGetback) = 1;
+	}
+}
+
+void DreamGenContext::useCardReader1() {
+	char id[4] = { 'C', 'S', 'H', 'R' };	// TODO: convert to string with trailing zero
+	if (defaultUseHandler(id))
+		return;
+
+	if (data.byte(kTalkedtosparky) == 0) {
+		// Not yet
+		showFirstUse();
+		putBackObStuff();
+	} else if (data.word(kCard1money) == 0) {
+		// No cash
+		cx = 300;
+		al = 17;
+		showPuzText();
+		putBackObStuff();
+		return;
+	} else {
+		// Get cash
+		playChannel1(16);
+		cx = 300;
+		al = 18;
+		showPuzText();
+		data.byte(kProgresspoints)++;
+		data.word(kCard1money) = 12432;
+		data.byte(kGetback) = 1;
+	}
+}
+
+void DreamGenContext::useCardReader2() {
+	char id[4] = { 'C', 'S', 'H', 'R' };	// TODO: convert to string with trailing zero
+	if (defaultUseHandler(id))
+		return;
+
+	if (data.byte(kTalkedtoboss) == 0) {
+		// Haven't talked to boss
+		showFirstUse();
+		putBackObStuff();
+	} else if (data.byte(kCard1money) == 0) {
+		// No cash
+		cx = 300;
+		al = 20;
+		showPuzText();
+		putBackObStuff();
+	} else if (data.byte(kGunpassflag) == 2) {
+		// Already got new
+		cx = 300;
+		al = 22;
+		showPuzText();
+		putBackObStuff();
+	} else {
+		playChannel1(18);
+		cx = 300;
+		al = 19;
+		showPuzText();
+		placeSetObject(94);
+		data.byte(kGunpassflag) = 1;
+		data.word(kCard1money) -= 2000;
+		data.byte(kProgresspoints)++;
+		data.byte(kGetback) = 1;
+	}
+}
+
+void DreamGenContext::useCardReader3() {
+	char id[4] = { 'C', 'S', 'H', 'R' };	// TODO: convert to string with trailing zero
+	if (defaultUseHandler(id))
+		return;
+
+	if (data.byte(kTalkedtorecep) == 0) {
+		// Haven't talked to receptionist
+		showFirstUse();
+		putBackObStuff();
+	} else if (data.byte(kCardpassflag) != 0) {
+		// Already used it
+		cx = 300;
+		al = 26;
+		showPuzText();
+		putBackObStuff();
+	} else {
+		playChannel1(16);
+		cx = 300;
+		al = 25;
+		showPuzText();
+		data.byte(kProgresspoints)++;
+		data.word(kCard1money) -= 8300;
+		data.byte(kCardpassflag) = 1;
+		data.byte(kGetback) = 1;
+	}
+}
+
 void DreamGenContext::openTomb() {
 	data.byte(kProgresspoints)++;
 	showFirstUse();






More information about the Scummvm-git-logs mailing list