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

tramboi bertrand_augereau at yahoo.fr
Fri Dec 2 17:36:00 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:
dadabd252a DREAMWEB: 'buttonPress' ported to C++


Commit: dadabd252af24495cdd7a877592c5aabbec30e11
    https://github.com/scummvm/scummvm/commit/dadabd252af24495cdd7a877592c5aabbec30e11
Author: Bertrand Augereau (bertrand_augereau at yahoo.fr)
Date: 2011-12-02T08:22:39-08:00

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

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



diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover
index 61d740a..95461fb 100755
--- a/devtools/tasmrecover/tasm-recover
+++ b/devtools/tasmrecover/tasm-recover
@@ -354,6 +354,7 @@ generator = cpp(context, "DreamGen", blacklist = [
 	'buttonnine',
 	'buttonnought',
 	'buttonenter',
+	'buttonpress',
 	'credits',
 	'entercode',
 	], skip_output = [
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 44a48e7..e3ea81e 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -9188,40 +9188,6 @@ not10:
 	_inc(data.word(kPresspointer));
 }
 
-void DreamGenContext::buttonPress() {
-	STACK_CHECK;
-	ch = cl;
-	_add(ch, 100);
-	_cmp(data.byte(kCommandtype), ch);
-	if (flags.z())
-		goto alreadyb;
-	data.byte(kCommandtype) = ch;
-	al = cl;
-	_add(al, 4);
-	push(cx);
-	commandOnly();
-	cx = pop();
-alreadyb:
-	ax = data.word(kMousebutton);
-	_cmp(ax, data.word(kOldbutton));
-	if (flags.z())
-		return /* (notb) */;
-	_and(ax, 1);
-	if (!flags.z())
-		goto dob;
-	return;
-dob:
-	data.byte(kPressed) = cl;
-	_add(cl, 21);
-	data.byte(kGraphicpress) = cl;
-	data.byte(kPresscount) = 40;
-	_cmp(cl, 32);
-	if (flags.z())
-		return /* (nonoise) */;
-	al = 10;
-	playChannel1();
-}
-
 void DreamGenContext::showOuterPad() {
 	STACK_CHECK;
 	di = (36+112)-3;
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index cbf8bf6..3f9b8d8 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -1029,7 +1029,6 @@ public:
 	void useControl();
 	void redrawMainScrn();
 	void showGroup();
-	void buttonPress();
 	void makeMainScreen();
 	void useWinch();
 	void setBotRight();
diff --git a/engines/dreamweb/keypad.cpp b/engines/dreamweb/keypad.cpp
index 1f4fa72..b05afa1 100644
--- a/engines/dreamweb/keypad.cpp
+++ b/engines/dreamweb/keypad.cpp
@@ -153,58 +153,62 @@ void DreamGenContext::enterCode(uint16 keypadAx, uint16 keypadCx) {
 }
 
 void DreamGenContext::buttonOne() {
-	cl = 1;
-	buttonPress();
+	buttonPress(1);
 }
 
 void DreamGenContext::buttonTwo() {
-	cl = 2;
-	buttonPress();
+	buttonPress(2);
 }
 
 void DreamGenContext::buttonThree() {
-	cl = 3;
-	buttonPress();
+	buttonPress(3);
 }
 
 void DreamGenContext::buttonFour() {
-	cl = 4;
-	buttonPress();
+	buttonPress(4);
 }
 
 void DreamGenContext::buttonFive() {
-	cl = 5;
-	buttonPress();
+	buttonPress(5);
 }
 
 void DreamGenContext::buttonSix() {
-	cl = 6;
-	buttonPress();
+	buttonPress(6);
 }
 
 void DreamGenContext::buttonSeven() {
-	cl = 7;
-	buttonPress();
+	buttonPress(7);
 }
 
 void DreamGenContext::buttonEight() {
-	cl = 8;
-	buttonPress();
+	buttonPress(8);
 }
 
 void DreamGenContext::buttonNine() {
-	cl = 9;
-	buttonPress();
+	buttonPress(9);
 }
 
 void DreamGenContext::buttonNought() {
-	cl = 10;
-	buttonPress();
+	buttonPress(10);
 }
 
 void DreamGenContext::buttonEnter() {
-	cl = 11;
-	buttonPress();
+	buttonPress(11);
+}
+
+void DreamGenContext::buttonPress(uint8 buttonId) {
+	uint8 commandType = 100 + buttonId;
+	if (data.byte(kCommandtype) != commandType) {
+		data.byte(kCommandtype) = commandType;
+		commandOnly(buttonId + 4);
+	}
+	if ((data.word(kMousebutton) & 1) && (data.word(kMousebutton) != data.word(kOldbutton))) {
+		data.byte(kPressed) = buttonId;
+		data.byte(kGraphicpress) = buttonId + 21;
+		data.byte(kPresscount) = 40;
+		if (buttonId != 11)
+			playChannel1(10);
+	}
 }
 
 } /*namespace dreamgen */
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index 4b9e54c..a77d2c7 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -395,6 +395,7 @@
 	void buttonNine();
 	void buttonNought();
 	void buttonEnter();
+	void buttonPress(uint8 buttonId);
 	void enterCode(uint16 keypadAx, uint16 keypadCx);
 	void enterCode();
 






More information about the Scummvm-git-logs mailing list