[Scummvm-cvs-logs] scummvm master -> 7211a790b2aa00c453ba99afe9ba6ca14ab0bf66

tramboi bertrand_augereau at yahoo.fr
Fri Dec 2 14:41:33 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:
7211a790b2 DREAMWEB: 'enterCode' ported to C++


Commit: 7211a790b2aa00c453ba99afe9ba6ca14ab0bf66
    https://github.com/scummvm/scummvm/commit/7211a790b2aa00c453ba99afe9ba6ca14ab0bf66
Author: Bertrand Augereau (bertrand_augereau at yahoo.fr)
Date: 2011-12-02T05:30:39-08:00

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

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



diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover
index 0eb0a3e..cb64383 100755
--- a/devtools/tasmrecover/tasm-recover
+++ b/devtools/tasmrecover/tasm-recover
@@ -344,6 +344,7 @@ generator = cpp(context, "DreamGen", blacklist = [
 	'singlekey',
 	'showkeypad',
 	'credits',
+	'entercode',
 	], skip_output = [
 	# These functions are processed but not output
 	'dreamweb',
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index e6cc683..28e45bb 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -9142,89 +9142,6 @@ nowinch:
 	putBackObStuff();
 }
 
-void DreamGenContext::enterCode() {
-	STACK_CHECK;
-	data.word(kKeypadax) = ax;
-	data.word(kKeypadcx) = cx;
-	getRidOfReels();
-	loadKeypad();
-	createPanel();
-	showIcon();
-	showOuterPad();
-	showKeypad();
-	readMouse();
-	showPointer();
-	workToScreen();
-	delPointer();
-	data.word(kPresspointer) = 0;
-	data.byte(kGetback) = 0;
-keypadloop:
-	_cmp(data.byte(kQuitrequested),  0);
-	if (!flags.z())
-		goto numberright;
-	delPointer();
-	readMouse();
-	showKeypad();
-	showPointer();
-	vSync();
-	_cmp(data.byte(kPresscount), 0);
-	if (flags.z())
-		goto nopresses;
-	_dec(data.byte(kPresscount));
-	goto afterpress;
-nopresses:
-	data.byte(kPressed) = 255;
-	data.byte(kGraphicpress) = 255;
-	vSync();
-afterpress:
-	dumpPointer();
-	dumpKeypad();
-	dumpTextLine();
-	bx = offset_keypadlist;
-	checkCoords();
-	_cmp(data.byte(kGetback), 1);
-	if (flags.z())
-		goto numberright;
-	_cmp(data.byte(kLightcount), 1);
-	if (!flags.z())
-		goto notendkey;
-	_cmp(data.byte(kLockstatus), 0);
-	if (flags.z())
-		goto numberright;
-	goto keypadloop;
-notendkey:
-	_cmp(data.byte(kPresscount), 40);
-	if (!flags.z())
-		goto keypadloop;
-	addToPressList();
-	_cmp(data.byte(kPressed), 11);
-	if (!flags.z())
-		goto keypadloop;
-	ax = data.word(kKeypadax);
-	cx = data.word(kKeypadcx);
-	isItRight();
-	if (!flags.z())
-		goto incorrect;
-	data.byte(kLockstatus) = 0;
-	al = 11;
-	playChannel1();
-	data.byte(kLightcount) = 120;
-	data.word(kPresspointer) = 0;
-	goto keypadloop;
-incorrect:
-	al = 11;
-	playChannel1();
-	data.byte(kLightcount) = 120;
-	data.word(kPresspointer) = 0;
-	goto keypadloop;
-numberright:
-	data.byte(kManisoffscreen) = 0;
-	getRidOfTemp();
-	restoreReels();
-	redrawMainScrn();
-	workToScreenM();
-}
-
 void DreamGenContext::loadKeypad() {
 	STACK_CHECK;
 	dx = 1948;
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index e8c7ea9..5a49942 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -77,7 +77,6 @@ public:
 	static const uint16 offset_decidelist = 0x13c1;
 	static const uint16 offset_symbollist = 0x0e5e;
 	static const uint16 offset_operand1 = 0x0b7e;
-	static const uint16 offset_keypadlist = 0x0d9a;
 	static const uint16 kStartvars = 0;
 	static const uint16 kProgresspoints = 1;
 	static const uint16 kWatchon = 2;
@@ -705,7 +704,6 @@ public:
 	void useElevator2();
 	void buttonOne();
 	void keyboardRead();
-	void enterCode();
 	void getOpenedSize();
 	void doShake();
 	void resetKeyboard();
diff --git a/engines/dreamweb/keypad.cpp b/engines/dreamweb/keypad.cpp
index c17fd10..f55d8f9 100644
--- a/engines/dreamweb/keypad.cpp
+++ b/engines/dreamweb/keypad.cpp
@@ -71,5 +71,86 @@ void DreamGenContext::showKeypad() {
 	}
 }
 
+void DreamGenContext::enterCode() {
+	enterCode(ax, cx);
+}
+
+void DreamGenContext::enterCode(uint16 keypadAx, uint16 keypadCx) {
+	RectWithCallback keypadList[] = {
+		{ kKeypadx+9,kKeypadx+30,kKeypady+9,kKeypady+22,&DreamGenContext::buttonOne },
+		{ kKeypadx+31,kKeypadx+52,kKeypady+9,kKeypady+22,&DreamGenContext::buttonTwo },
+		{ kKeypadx+53,kKeypadx+74,kKeypady+9,kKeypady+22,&DreamGenContext::buttonThree },
+		{ kKeypadx+9,kKeypadx+30,kKeypady+23,kKeypady+40,&DreamGenContext::buttonFour },
+		{ kKeypadx+31,kKeypadx+52,kKeypady+23,kKeypady+40,&DreamGenContext::buttonFive },
+		{ kKeypadx+53,kKeypadx+74,kKeypady+23,kKeypady+40,&DreamGenContext::buttonSix },
+		{ kKeypadx+9,kKeypadx+30,kKeypady+41,kKeypady+58,&DreamGenContext::buttonSeven },
+		{ kKeypadx+31,kKeypadx+52,kKeypady+41,kKeypady+58,&DreamGenContext::buttonEight },
+		{ kKeypadx+53,kKeypadx+74,kKeypady+41,kKeypady+58,&DreamGenContext::buttonNine },
+		{ kKeypadx+9,kKeypadx+30,kKeypady+59,kKeypady+73,&DreamGenContext::buttonNought },
+		{ kKeypadx+31,kKeypadx+74,kKeypady+59,kKeypady+73,&DreamGenContext::buttonEnter },
+		{ kKeypadx+72,kKeypadx+86,kKeypady+80,kKeypady+94,&DreamGenContext::quitKey },
+		{ 0,320,0,200,&DreamGenContext::blank },
+		{ 0xFFFF,0,0,0,0 }
+	};
+
+	data.word(kKeypadax) = keypadAx;
+	data.word(kKeypadcx) = keypadCx;
+	getRidOfReels();
+	loadKeypad();
+	createPanel();
+	showIcon();
+	showOuterPad();
+	showKeypad();
+	readMouse();
+	showPointer();
+	workToScreen();
+	delPointer();
+	data.word(kPresspointer) = 0;
+	data.byte(kGetback) = 0;
+	while (true) {
+		delPointer();
+		readMouse();
+		showKeypad();
+		showPointer();
+		vSync();
+		if (data.byte(kPresscount) == 0) {
+			data.byte(kPressed) = 255;
+			data.byte(kGraphicpress) = 255;
+			vSync();
+		} else
+			--data.byte(kPresscount);
+
+		dumpPointer();
+		dumpKeypad();
+		dumpTextLine();
+		checkCoords(keypadList);
+		if (quitRequested() || (data.byte(kGetback) == 1))
+			break;
+		if (data.byte(kLightcount) == 1) {
+			if (data.byte(kLockstatus) == 0)
+				break;
+		} else {
+			if (data.byte(kPresscount) == 40) {
+				addToPressList();
+				if (data.byte(kPressed) == 11) {
+					ax = data.word(kKeypadax);
+					cx = data.word(kKeypadcx);
+					isItRight();
+					if (flags.z())
+						data.byte(kLockstatus) = 0;
+					playChannel1(11);
+					data.byte(kLightcount) = 120;
+					data.word(kPresspointer) = 0;
+				}
+			}
+		}
+	}
+	data.byte(kManisoffscreen) = 0;
+	getRidOfTemp();
+	restoreReels();
+	redrawMainScrn();
+	workToScreenM();
+}
+
 } /*namespace dreamgen */
 
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index 2352f9f..65d600e 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -1444,26 +1444,6 @@ void DreamGenContext::checkCoords() {
 		checkCoords(destList);
 		break;
 	}
-	case offset_keypadlist: {
-		RectWithCallback keypadList[] = {
-			{ kKeypadx+9,kKeypadx+30,kKeypady+9,kKeypady+22,&DreamGenContext::buttonOne },
-			{ kKeypadx+31,kKeypadx+52,kKeypady+9,kKeypady+22,&DreamGenContext::buttonTwo },
-			{ kKeypadx+53,kKeypadx+74,kKeypady+9,kKeypady+22,&DreamGenContext::buttonThree },
-			{ kKeypadx+9,kKeypadx+30,kKeypady+23,kKeypady+40,&DreamGenContext::buttonFour },
-			{ kKeypadx+31,kKeypadx+52,kKeypady+23,kKeypady+40,&DreamGenContext::buttonFive },
-			{ kKeypadx+53,kKeypadx+74,kKeypady+23,kKeypady+40,&DreamGenContext::buttonSix },
-			{ kKeypadx+9,kKeypadx+30,kKeypady+41,kKeypady+58,&DreamGenContext::buttonSeven },
-			{ kKeypadx+31,kKeypadx+52,kKeypady+41,kKeypady+58,&DreamGenContext::buttonEight },
-			{ kKeypadx+53,kKeypadx+74,kKeypady+41,kKeypady+58,&DreamGenContext::buttonNine },
-			{ kKeypadx+9,kKeypadx+30,kKeypady+59,kKeypady+73,&DreamGenContext::buttonNought },
-			{ kKeypadx+31,kKeypadx+74,kKeypady+59,kKeypady+73,&DreamGenContext::buttonEnter },
-			{ kKeypadx+72,kKeypadx+86,kKeypady+80,kKeypady+94,&DreamGenContext::quitKey },
-			{ 0,320,0,200,&DreamGenContext::blank },
-			{ 0xFFFF,0,0,0,0 }
-		};
-		checkCoords(keypadList);
-		break;
-	}
 	case offset_menulist: {
 		RectWithCallback menuList[] = {
 			{ kMenux+54,kMenux+68,kMenuy+72,kMenuy+88,&DreamGenContext::quitKey },
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index 1fca50d..5ac9a97 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -384,4 +384,6 @@
 	void sparky(ReelRoutine &routine);
 	void singleKey(uint8 key, uint16 x, uint16 y);
 	void showKeypad();
+	void enterCode(uint16 keypadAx, uint16 keypadCx);
+	void enterCode();
 






More information about the Scummvm-git-logs mailing list