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

bluegr md5 at scummvm.org
Mon Dec 12 21:47:09 CET 2011


This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
fc9a1b8407 DREAMWEB: Port 'getundercentre', 'processtrigger', 'putundercentre', 'triggermessage' to C++
d41c89124f DREAMWEB: Fix regression in entryAnims()
a682734bce DREAMWEB: Set volumeDirection as a negative integer, where this is used, instead of 0xFF


Commit: fc9a1b840707086064692992c5b02e17d7da065d
    https://github.com/scummvm/scummvm/commit/fc9a1b840707086064692992c5b02e17d7da065d
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2011-12-12T12:43:03-08:00

Commit Message:
DREAMWEB: Port 'getundercentre', 'processtrigger', 'putundercentre', 'triggermessage' 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 526a010..ef04a2c 100755
--- a/devtools/tasmrecover/tasm-recover
+++ b/devtools/tasmrecover/tasm-recover
@@ -433,6 +433,7 @@ generator = cpp(context, "DreamGen", blacklist = [
 	'getroomspaths',
 	'gettime',
 	'gettingshot',
+	'getundercentre',
 	'getundermenu',
 	'getundertimed',
 	'getunderzoom',
@@ -604,7 +605,9 @@ generator = cpp(context, "DreamGen", blacklist = [
 	'printslow',
 	'printsprites',
 	'printundermon',
+	'processtrigger',
 	'putbackobstuff',
+	'putundercentre',
 	'putundermenu',
 	'putundertimed',
 	'putunderzoom',
@@ -759,6 +762,7 @@ generator = cpp(context, "DreamGen", blacklist = [
 	'transferinv',
 	'transfertext',
 	'trapdoor',
+	'triggermessage',
 	'trysoundalloc',
 	'turnanypathoff',
 	'turnanypathon',
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index f449b8f..d98b238 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -2821,28 +2821,6 @@ _tmp2:
 	workToScreenM();
 }
 
-void DreamGenContext::getUnderCentre() {
-	STACK_CHECK;
-	di = 58;
-	bx = 72;
-	ds = data.word(kMapstore);
-	si = 0;
-	cl = 254;
-	ch = 110;
-	multiGet();
-}
-
-void DreamGenContext::putUnderCentre() {
-	STACK_CHECK;
-	di = 58;
-	bx = 72;
-	ds = data.word(kMapstore);
-	si = 0;
-	cl = 254;
-	ch = 110;
-	multiPut();
-}
-
 void DreamGenContext::locationPic() {
 	STACK_CHECK;
 	getDestInfo();
@@ -3544,68 +3522,6 @@ finishpars:
 	di = offset_operand1;
 }
 
-void DreamGenContext::processTrigger() {
-	STACK_CHECK;
-	_cmp(data.byte(kLasttrigger), '1');
-	if (!flags.z())
-		goto notfirsttrigger;
-	al = 8;
-	setLocation();
-	al = 45;
-	triggerMessage();
-	return;
-notfirsttrigger:
-	_cmp(data.byte(kLasttrigger), '2');
-	if (!flags.z())
-		goto notsecondtrigger;
-	al = 9;
-	setLocation();
-	al = 55;
-	triggerMessage();
-	return;
-notsecondtrigger:
-	_cmp(data.byte(kLasttrigger), '3');
-	if (!flags.z())
-		return /* (notthirdtrigger) */;
-	al = 2;
-	setLocation();
-	al = 59;
-	triggerMessage();
-}
-
-void DreamGenContext::triggerMessage() {
-	STACK_CHECK;
-	push(ax);
-	di = 174;
-	bx = 153;
-	cl = 200;
-	ch = 63;
-	ds = data.word(kMapstore);
-	si = 0;
-	multiGet();
-	ax = pop();
-	findPuzText();
-	di = 174;
-	bx = 156;
-	dl = 141;
-	ah = 16;
-	printDirect();
-	cx = 140;
-	hangOn();
-	workToScreen();
-	cx = 340;
-	hangOn();
-	di = 174;
-	bx = 153;
-	cl = 200;
-	ch = 63;
-	ds = data.word(kMapstore);
-	si = 0;
-	multiPut();
-	workToScreen();
-	data.byte(kLasttrigger) = 0;
-}
-
 void DreamGenContext::runTap() {
 	STACK_CHECK;
 	_cmp(data.byte(kWithobject), 255);
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index 337a331..746f306 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -491,7 +491,6 @@ public:
 	void useOpenBox();
 	void clearBuffers();
 	void getObTextStart();
-	void putUnderCentre();
 	void checkObjectSize();
 	void findText1();
 	void isRyanHolding();
@@ -544,7 +543,6 @@ public:
 	void purgeALocation();
 	void notHeldError();
 	void getSetAd();
-	void getUnderCentre();
 	void showKeys();
 	void printmessage2();
 	void findOpenPos();
@@ -572,7 +570,6 @@ public:
 	void useOpened();
 	void signOn();
 	void locationPic();
-	void triggerMessage();
 	void swapWithOpen();
 	void dreamweb();
 	void checkInside();
@@ -603,7 +600,6 @@ public:
 	void getPersonText();
 	void parser();
 	void emergencyPurge();
-	void processTrigger();
 	void transferConToEx();
 	void adjustDown();
 	void withWhat();
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index 20d2b64..1521ddd 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -862,6 +862,45 @@ void DreamGenContext::putUnderTimed() {
 	multiPut(ds.ptr(si, 0), data.byte(kTimedx), y, 240, kUndertimedysize);
 }
 
+void DreamGenContext::getUnderCentre() {
+	ds = data.word(kMapstore);
+	si = 0;
+	multiGet(ds.ptr(si, 0), 58, 72, 254, 110);
+}
+
+void DreamGenContext::putUnderCentre() {
+	ds = data.word(kMapstore);
+	si = 0;
+	multiPut(ds.ptr(si, 0), 58, 72, 254, 110);
+}
+
+void DreamGenContext::triggerMessage(uint16 index) {
+	multiGet(mapStore(), 174, 153, 200, 63);
+	uint16 offset = kTextstart + getSegment(data.word(kPuzzletext)).word(index * 2);
+	const uint8 *string = getSegment(data.word(kPuzzletext)).ptr(offset, 0);
+	uint16 y = 156;
+	printDirect(&string, 174, &y, 141, true);
+	hangOn(140);
+	workToScreenCPP();
+	hangOn(340);
+	multiPut(mapStore(), 174, 153, 200, 63);
+	workToScreenCPP();
+	data.byte(kLasttrigger) = 0;
+}
+
+void DreamGenContext::processTrigger() {
+	if (data.byte(kLasttrigger) == '1') {
+		setLocation(8);
+		triggerMessage(45);
+	} else if (data.byte(kLasttrigger) == '2') {
+		setLocation(9);
+		triggerMessage(55);
+	} else if (data.byte(kLasttrigger) == '3') {
+		setLocation(2);
+		triggerMessage(59);
+	}
+}
+
 void DreamGenContext::useTimedText() {
 	if (data.word(kTimecount) == 0)
 		return;
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index ca1b68f..5cf0466 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -569,5 +569,9 @@
 	void quitKey();
 	void setupTimedUse();
 	void entryAnims();
+	void getUnderCentre();
+	void putUnderCentre();
+	void triggerMessage(uint16 index);
+	void processTrigger();
 
 #endif


Commit: d41c89124f035f4922615ea02e9e8e74f6e3ddf6
    https://github.com/scummvm/scummvm/commit/d41c89124f035f4922615ea02e9e8e74f6e3ddf6
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2011-12-12T12:43:56-08:00

Commit Message:
DREAMWEB: Fix regression in entryAnims()

Changed paths:
    engines/dreamweb/stubs.cpp



diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index 1521ddd..4a870fa 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -4449,7 +4449,7 @@ void DreamGenContext::entryAnims() {
 	default:
 		if (data.byte(kReallocation) == 46 && data.byte(kSartaindead) == 1) {	// Crystal
 			removeFreeObject(0);
-		} else if (data.byte(kLocation) == 9 && checkIfPathIsOn(2) && data.byte(kAidedead) == 0) {
+		} else if (data.byte(kLocation) == 9 && !checkIfPathIsOn(2) && data.byte(kAidedead) != 0) {
 			// Top of church
 			if (checkIfPathIsOn(3))
 				turnPathOn(2);


Commit: a682734bce80f45dba5e9309cf71a00be9fe50d0
    https://github.com/scummvm/scummvm/commit/a682734bce80f45dba5e9309cf71a00be9fe50d0
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2011-12-12T12:46:28-08:00

Commit Message:
DREAMWEB: Set volumeDirection as a negative integer, where this is used, instead of 0xFF

Changed paths:
    engines/dreamweb/sprite.cpp
    engines/dreamweb/stubs.cpp



diff --git a/engines/dreamweb/sprite.cpp b/engines/dreamweb/sprite.cpp
index e93a77f..aca935c 100644
--- a/engines/dreamweb/sprite.cpp
+++ b/engines/dreamweb/sprite.cpp
@@ -763,7 +763,7 @@ void DreamBase::rollEndCredits() {
 	playChannel0(16, 255);
 	data.byte(kVolume) = 7;
 	data.byte(kVolumeto) = 0;
-	data.byte(kVolumedirection) = 0xFF;
+	data.byte(kVolumedirection) = (byte)-1;
 
 	multiGet(mapStore(), 75, 20, 160, 160);
 
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index 4a870fa..4f0661e 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -576,7 +576,7 @@ void DreamGenContext::dreamweb() {
 			data.byte(kLastflag) = 32;
 			startup1();
 			data.byte(kVolumeto) = 0;
-			data.byte(kVolumedirection) = (uint8)-1;
+			data.byte(kVolumedirection) = (byte)-1;
 			data.byte(kCommandtype) = 255;
 
 		}
@@ -3070,7 +3070,7 @@ void DreamGenContext::intro() {
 	clearPalette();
 	loadIntroRoom();
 	data.byte(kVolume) = 7;
-	data.byte(kVolumedirection) = (uint8)-1;
+	data.byte(kVolumedirection) = (byte)-1;
 	data.byte(kVolumeto) = 4;
 	playChannel0(12, 255);
 	fadeScreenUps();
@@ -3286,7 +3286,7 @@ void DreamGenContext::gettingShot() {
 	loadIntroRoom();
 	fadeScreenUps();
 	data.byte(kVolumeto) = 0;
-	data.byte(kVolumedirection) = 0xFF;
+	data.byte(kVolumedirection) = (byte)-1;
 	runEndSeq();
 	clearBeforeLoad();
 }
@@ -3935,7 +3935,7 @@ void DreamGenContext::talk() {
 	workToScreenM();
 	if (data.byte(kSpeechloaded) == 1) {
 		cancelCh1();
-		data.byte(kVolumedirection) = 0xFF;
+		data.byte(kVolumedirection) = (byte)-1;
 		data.byte(kVolumeto) = 0;
 	}
 }
@@ -4258,7 +4258,7 @@ void DreamGenContext::monkSpeaking() {
 	showFrame(tempGraphics(), 160, 72, 0, 128);	// show monk
 	workToScreen();
 	data.byte(kVolume) = 7;
-	data.byte(kVolumedirection) = 0xFF;
+	data.byte(kVolumedirection) = (byte)-1;
 	data.byte(kVolumeto) = 5;
 	playChannel0(12, 255);
 	fadeScreenUps();






More information about the Scummvm-git-logs mailing list