[Scummvm-cvs-logs] scummvm master -> 70fd1b604342863778e2cac3e667f4ee2de42b82

bluegr md5 at scummvm.org
Fri Dec 16 19:55:04 CET 2011


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

Summary:
f878f0453a DREAMWEB: Convert useGun to C++
027249ec30 DREAMWEB: Remove some dead code
202f9d18f1 DREAMWEB: Move more things to DreamBase; cleanup some code
010714ce5b DREAMWEB: Move more to DreamBase; fix regression in introMonks1()
8cb92c2367 DREAMWEB: Convert fadeScreenDownHalf to C++
2f0c671256 DREAMWEB: Move most of people.cpp to DreamBase
1d09f7c12a DREAMWEB: Some more cleanup
70fd1b6043 Merge pull request #144 from fingolfin/dreamweb-cleanup


Commit: f878f0453a88ee5b11cfc0c755c2bfcd2a9ad6f9
    https://github.com/scummvm/scummvm/commit/f878f0453a88ee5b11cfc0c755c2bfcd2a9ad6f9
Author: Max Horn (max at quendi.de)
Date: 2011-12-16T07:25:38-08:00

Commit Message:
DREAMWEB: Convert useGun 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 901075f..9c39455 100755
--- a/devtools/tasmrecover/tasm-recover
+++ b/devtools/tasmrecover/tasm-recover
@@ -840,6 +840,7 @@ generator = cpp(context, "DreamGen", blacklist = [
 	'useelevator5',
 	'useelvdoor',
 	'usefullcart',
+	'usegun',
 	'usehandle',
 	'usehole',
 	'usekey',
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 9106dc0..906ce3a 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -3026,183 +3026,6 @@ notfoundinside:
 		goto insideloop;
 }
 
-void DreamGenContext::useGun() {
-	STACK_CHECK;
-	_cmp(data.byte(kObjecttype), 4);
-	if (flags.z())
-		goto istakengun;
-	showSecondUse();
-	putBackObStuff();
-	return;
-istakengun:
-	_cmp(data.byte(kReallocation), 22);
-	if (!flags.z())
-		goto notinpoolroom;
-	cx = 300;
-	al = 34;
-	showPuzText();
-	data.byte(kLastweapon) = 1;
-	data.byte(kCombatcount) = 39;
-	data.byte(kGetback) = 1;
-	_inc(data.byte(kProgresspoints));
-	return;
-notinpoolroom:
-	_cmp(data.byte(kReallocation), 25);
-	if (!flags.z())
-		goto nothelicopter;
-	cx = 300;
-	al = 34;
-	showPuzText();
-	data.byte(kLastweapon) = 1;
-	data.byte(kCombatcount) = 19;
-	data.byte(kGetback) = 1;
-	data.byte(kDreamnumber) = 2;
-	data.byte(kRoomafterdream) = 38;
-	data.byte(kSartaindead) = 1;
-	_inc(data.byte(kProgresspoints));
-	return;
-nothelicopter:
-	_cmp(data.byte(kReallocation), 27);
-	if (!flags.z())
-		goto notinrockroom;
-	cx = 300;
-	al = 46;
-	showPuzText();
-	data.byte(kPointermode) = 2;
-	data.byte(kRockstardead) = 1;
-	data.byte(kLastweapon) = 1;
-	data.byte(kNewsitem) = 1;
-	data.byte(kGetback) = 1;
-	data.byte(kRoomafterdream) = 32;
-	data.byte(kDreamnumber) = 0;
-	_inc(data.byte(kProgresspoints));
-	return;
-notinrockroom:
-	_cmp(data.byte(kReallocation), 8);
-	if (!flags.z())
-		goto notbystudio;
-	_cmp(data.byte(kMapx), 22);
-	if (!flags.z())
-		goto notbystudio;
-	_cmp(data.byte(kMapy), 40);
-	if (!flags.z())
-		goto notbystudio;
-	al = 92;
-	isSetObOnMap();
-	if (flags.z())
-		goto notbystudio;
-	_cmp(data.byte(kManspath), 9);
-	if (flags.z())
-		goto notbystudio;
-	data.byte(kDestination) = 9;
-	data.byte(kFinaldest) = 9;
-	autoSetWalk();
-	data.byte(kLastweapon) = 1;
-	data.byte(kGetback) = 1;
-	_inc(data.byte(kProgresspoints));
-	return;
-notbystudio:
-	_cmp(data.byte(kReallocation), 6);
-	if (!flags.z())
-		goto notsarters;
-	_cmp(data.byte(kMapx), 11);
-	if (!flags.z())
-		goto notsarters;
-	_cmp(data.byte(kMapy), 20);
-	if (!flags.z())
-		goto notsarters;
-	al = 5;
-	isSetObOnMap();
-	if (!flags.z())
-		goto notsarters;
-	data.byte(kDestination) = 1;
-	data.byte(kFinaldest) = 1;
-	autoSetWalk();
-	al = 5;
-	removeSetObject();
-	al = 6;
-	placeSetObject();
-	al = 1;
-	ah = data.byte(kRoomnum);
-	_dec(ah);
-	turnAnyPathOn();
-	data.byte(kLiftflag) = 1;
-	data.word(kWatchingtime) = 40*2;
-	data.word(kReeltowatch) = 4;
-	data.word(kEndwatchreel) = 43;
-	data.byte(kWatchspeed) = 1;
-	data.byte(kSpeedcount) = 1;
-	data.byte(kGetback) = 1;
-	_inc(data.byte(kProgresspoints));
-	return;
-notsarters:
-	_cmp(data.byte(kReallocation), 29);
-	if (!flags.z())
-		goto notaide;
-	data.byte(kGetback) = 1;
-	al = 13;
-	resetLocation();
-	al = 12;
-	setLocation();
-	data.byte(kDestpos) = 12;
-	data.byte(kDestination) = 2;
-	data.byte(kFinaldest) = 2;
-	autoSetWalk();
-	data.word(kWatchingtime) = 164*2;
-	data.word(kReeltowatch) = 3;
-	data.word(kEndwatchreel) = 164;
-	data.byte(kWatchspeed) = 1;
-	data.byte(kSpeedcount) = 1;
-	data.byte(kAidedead) = 1;
-	data.byte(kDreamnumber) = 3;
-	data.byte(kRoomafterdream) = 33;
-	_inc(data.byte(kProgresspoints));
-	return;
-notaide:
-	_cmp(data.byte(kReallocation), 23);
-	if (!flags.z())
-		goto notwithboss;
-	_cmp(data.byte(kMapx), 0);
-	if (!flags.z())
-		goto notwithboss;
-	_cmp(data.byte(kMapy), 50);
-	if (!flags.z())
-		goto notwithboss;
-	_cmp(data.byte(kManspath), 5);
-	if (flags.z())
-		goto pathokboss;
-	data.byte(kDestination) = 5;
-	data.byte(kFinaldest) = 5;
-	autoSetWalk();
-pathokboss:
-	data.byte(kLastweapon) = 1;
-	data.byte(kGetback) = 1;
-	return;
-notwithboss:
-	_cmp(data.byte(kReallocation), 8);
-	if (!flags.z())
-		goto nottvsoldier;
-	_cmp(data.byte(kMapx), 11);
-	if (!flags.z())
-		goto nottvsoldier;
-	_cmp(data.byte(kMapy), 10);
-	if (!flags.z())
-		goto nottvsoldier;
-	_cmp(data.byte(kManspath), 2);
-	if (flags.z())
-		goto pathoktv;
-	data.byte(kDestination) = 2;
-	data.byte(kFinaldest) = 2;
-	autoSetWalk();
-pathoktv:
-	data.byte(kLastweapon) = 1;
-	data.byte(kGetback) = 1;
-	return;
-nottvsoldier:
-	showFirstUse();
-	putBackObStuff();
-}
-
 void DreamGenContext::showDiaryKeys() {
 	STACK_CHECK;
 	_cmp(data.byte(kPresscount), 0);
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index 945e8ad..ddccd5e 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -539,7 +539,6 @@ public:
 	void read();
 	void searchForString();
 	void selectOpenOb();
-	void useGun();
 	void incRyanPage();
 	void clearChanges();
 	void searchForFiles();
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index b50b1bc..3330f6f 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -519,5 +519,6 @@
 	void openOb();
 	void withWhat();
 	void notHeldError();
+	void useGun();
 
 #endif
diff --git a/engines/dreamweb/use.cpp b/engines/dreamweb/use.cpp
index 08b96cf..b0666ba 100644
--- a/engines/dreamweb/use.cpp
+++ b/engines/dreamweb/use.cpp
@@ -764,6 +764,118 @@ void DreamGenContext::useChurchGate() {
 		turnPathOn(2);	// Open church
 }
 
+void DreamGenContext::useGun() {
+
+	if (data.byte(kObjecttype) != 4) {
+		// gun is not taken
+		showSecondUse();
+		putBackObStuff();
+
+	} else if (data.byte(kReallocation) == 22) {
+		// in pool room
+		showPuzText(34, 300);
+		data.byte(kLastweapon) = 1;
+		data.byte(kCombatcount) = 39;
+		data.byte(kGetback) = 1;
+		data.byte(kProgresspoints)++;
+
+	} else if (data.byte(kReallocation) == 25) {
+		// helicopter
+		showPuzText(34, 300);
+		data.byte(kLastweapon) = 1;
+		data.byte(kCombatcount) = 19;
+		data.byte(kGetback) = 1;
+		data.byte(kDreamnumber) = 2;
+		data.byte(kRoomafterdream) = 38;
+		data.byte(kSartaindead) = 1;
+		data.byte(kProgresspoints)++;
+
+	} else if (data.byte(kReallocation) == 27) {
+		// in rock room
+		showPuzText(46, 300);
+		data.byte(kPointermode) = 2;
+		data.byte(kRockstardead) = 1;
+		data.byte(kLastweapon) = 1;
+		data.byte(kNewsitem) = 1;
+		data.byte(kGetback) = 1;
+		data.byte(kRoomafterdream) = 32;
+		data.byte(kDreamnumber) = 0;
+		data.byte(kProgresspoints)++;
+
+	} else if (data.byte(kReallocation) == 8 && data.byte(kMapx) == 22 && data.byte(kMapy) == 40
+	    && !isSetObOnMap(92) && data.byte(kManspath) != 9) {
+		// by studio
+		data.byte(kDestination) = 9;
+		data.byte(kFinaldest) = 9;
+		autoSetWalk();
+		data.byte(kLastweapon) = 1;
+		data.byte(kGetback) = 1;
+		data.byte(kProgresspoints)++;
+
+	} else if (data.byte(kReallocation) == 6 && data.byte(kMapx) == 11 && data.byte(kMapy) == 20
+	    && isSetObOnMap(5)) {
+		// sarters
+		data.byte(kDestination) = 1;
+		data.byte(kFinaldest) = 1;
+		autoSetWalk();
+		removeSetObject(5);
+		placeSetObject(6);
+		turnAnyPathOn(1, data.byte(kRoomnum) - 1);
+		data.byte(kLiftflag) = 1;
+		data.word(kWatchingtime) = 40*2;
+		data.word(kReeltowatch) = 4;
+		data.word(kEndwatchreel) = 43;
+		data.byte(kWatchspeed) = 1;
+		data.byte(kSpeedcount) = 1;
+		data.byte(kGetback) = 1;
+		data.byte(kProgresspoints)++;
+
+	} else if (data.byte(kReallocation) == 29) {
+		// aide
+		data.byte(kGetback) = 1;
+		al = 13;
+		resetLocation();
+		setLocation(12);
+		data.byte(kDestpos) = 12;
+		data.byte(kDestination) = 2;
+		data.byte(kFinaldest) = 2;
+		autoSetWalk();
+		data.word(kWatchingtime) = 164*2;
+		data.word(kReeltowatch) = 3;
+		data.word(kEndwatchreel) = 164;
+		data.byte(kWatchspeed) = 1;
+		data.byte(kSpeedcount) = 1;
+		data.byte(kAidedead) = 1;
+		data.byte(kDreamnumber) = 3;
+		data.byte(kRoomafterdream) = 33;
+		data.byte(kProgresspoints)++;
+
+	} else if (data.byte(kReallocation) == 23 && data.byte(kMapx) == 0 && data.byte(kMapy) == 50) {
+		// with boss
+		if (data.byte(kManspath) != 5) {
+			data.byte(kDestination) = 5;
+			data.byte(kFinaldest) = 5;
+			autoSetWalk();
+		}
+		data.byte(kLastweapon) = 1;
+		data.byte(kGetback) = 1;
+
+	} else if (data.byte(kReallocation) == 8 && data.byte(kMapx) == 11 && data.byte(kMapy) == 10) {
+		// tv soldier
+		if (data.byte(kManspath) != 2) {
+			data.byte(kDestination) = 2;
+			data.byte(kFinaldest) = 2;
+			autoSetWalk();
+		}
+		data.byte(kLastweapon) = 1;
+		data.byte(kGetback) = 1;
+
+	} else {
+		showFirstUse();
+		putBackObStuff();
+	}
+}
+
 void DreamGenContext::useFullCart() {
 	data.byte(kProgresspoints)++;
 	turnAnyPathOn(2, data.byte(kRoomnum) + 6);


Commit: 027249ec30bafcf7229a25d1dbd565f0b18cbe54
    https://github.com/scummvm/scummvm/commit/027249ec30bafcf7229a25d1dbd565f0b18cbe54
Author: Max Horn (max at quendi.de)
Date: 2011-12-16T07:37:06-08:00

Commit Message:
DREAMWEB: Remove some dead code

Changed paths:
    engines/dreamweb/dreambase.h
    engines/dreamweb/pathfind.cpp
    engines/dreamweb/stubs.cpp
    engines/dreamweb/stubs.h



diff --git a/engines/dreamweb/dreambase.h b/engines/dreamweb/dreambase.h
index 727a81c..6ecf94d 100644
--- a/engines/dreamweb/dreambase.h
+++ b/engines/dreamweb/dreambase.h
@@ -119,12 +119,17 @@ public:
 	void obPicture();
 
 	// from pathfind.cpp
-	void checkDest(const RoomPaths *roomsPaths);
+	void turnPathOn(uint8 param);
+	void turnPathOff(uint8 param);
+	void turnAnyPathOn(uint8 param, uint8 room);
+	void turnAnyPathOff(uint8 param, uint8 room);
 	RoomPaths *getRoomsPaths();
 	void faceRightWay();
 	void setWalk();
 	void autoSetWalk();
+	void checkDest(const RoomPaths *roomsPaths);
 	void findXYFromPath();
+	bool checkIfPathIsOn(uint8 index);
 	void bresenhams();
 	void workoutFrames();
 
@@ -273,6 +278,10 @@ public:
 	void getRidOfTempCharset();
 	void getRidOfTempsP();
 	void getRidOfAll();
+	void placeSetObject(uint8 index);
+	void removeSetObject(uint8 index);
+	bool isSetObOnMap(uint8 index);
+	void dumpZoom();
 
 	// from use.cpp
 	void placeFreeObject(uint8 index);
diff --git a/engines/dreamweb/pathfind.cpp b/engines/dreamweb/pathfind.cpp
index 212d61e..8d9d9a9 100644
--- a/engines/dreamweb/pathfind.cpp
+++ b/engines/dreamweb/pathfind.cpp
@@ -24,11 +24,7 @@
 
 namespace DreamGen {
 
-void DreamGenContext::turnPathOn() {
-	turnPathOn(al);
-}
-
-void DreamGenContext::turnPathOn(uint8 param) {
+void DreamBase::turnPathOn(uint8 param) {
 	findOrMake(param, 0xff, data.byte(kRoomnum) + 100);
 	PathNode *roomsPaths = getRoomsPaths()->nodes;
 	if (param == 0xff)
@@ -36,11 +32,7 @@ void DreamGenContext::turnPathOn(uint8 param) {
 	roomsPaths[param].on = 0xff;
 }
 
-void DreamGenContext::turnPathOff() {
-	turnPathOff(al);
-}
-
-void DreamGenContext::turnPathOff(uint8 param) {
+void DreamBase::turnPathOff(uint8 param) {
 	findOrMake(param, 0x00, data.byte(kRoomnum) + 100);
 	PathNode *roomsPaths = getRoomsPaths()->nodes;
 	if (param == 0xff)
@@ -48,26 +40,18 @@ void DreamGenContext::turnPathOff(uint8 param) {
 	roomsPaths[param].on = 0x00;
 }
 
-void DreamGenContext::turnAnyPathOn(uint8 param, uint8 room) {
+void DreamBase::turnAnyPathOn(uint8 param, uint8 room) {
 	findOrMake(param, 0xff, room + 100);
 	PathNode *paths = (PathNode *)getSegment(data.word(kReels)).ptr(kPathdata + 144 * room, 0);
 	paths[param].on = 0xff;
 }
 
-void DreamGenContext::turnAnyPathOn() {
-	turnAnyPathOn(al, ah);
-}
-
-void DreamGenContext::turnAnyPathOff(uint8 param, uint8 room) {
+void DreamBase::turnAnyPathOff(uint8 param, uint8 room) {
 	findOrMake(param, 0x00, room + 100);
 	PathNode *paths = (PathNode *)getSegment(data.word(kReels)).ptr(kPathdata + 144 * room, 0);
 	paths[param].on = 0x00;
 }
 
-void DreamGenContext::turnAnyPathOff() {
-	turnAnyPathOff(al, ah);
-}
-
 RoomPaths *DreamBase::getRoomsPaths() {
 	void *result = getSegment(data.word(kReels)).ptr(data.byte(kRoomnum) * 144, 144);
 	return (RoomPaths *)result;
@@ -150,11 +134,7 @@ void DreamBase::findXYFromPath() {
 	data.byte(kRyany) = roomsPaths[data.byte(kManspath)].y - 12;
 }
 
-void DreamGenContext::checkIfPathIsOn() {
-	flags._z = checkIfPathIsOn(al);
-}
-
-bool DreamGenContext::checkIfPathIsOn(uint8 index) {
+bool DreamBase::checkIfPathIsOn(uint8 index) {
 	RoomPaths *roomsPaths = getRoomsPaths();
 	uint8 pathOn = roomsPaths->nodes[index].on;
 	return pathOn == 0xff;
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index c353948..1c2b70c 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -1462,20 +1462,12 @@ void DreamGenContext::getExPos() {
 	di = kExdata + kNumexobjects * sizeof(DynObject);
 }
 
-void DreamGenContext::placeSetObject() {
-	placeSetObject(al);
-}
-
-void DreamGenContext::placeSetObject(uint8 index) {
+void DreamBase::placeSetObject(uint8 index) {
 	findOrMake(index, 0, 0);
 	getSetAd(index)->mapad[0] = 0;
 }
 
-void DreamGenContext::removeSetObject() {
-	removeSetObject(al);
-}
-
-void DreamGenContext::removeSetObject(uint8 index) {
+void DreamBase::removeSetObject(uint8 index) {
 	findOrMake(index, 0xff, 0);
 	getSetAd(index)->mapad[0] = 0xff;
 }
@@ -2522,10 +2514,6 @@ void DreamBase::setLocation(uint8 index) {
 	data.byte(kRoomscango + index) = 1;
 }
 
-void DreamGenContext::setLocation() {
-	DreamBase::setLocation(al);
-}
-
 const uint8 *DreamBase::getTextInFile1(uint16 index) {
 	SegmentRef text = getSegment(data.word(kTextfile1));
 	uint16 offset = text.word(index * 2) + kTextstart;
@@ -3591,15 +3579,11 @@ void DreamGenContext::moreTalk() {
 	doSomeTalk();
 }
 
-bool DreamGenContext::isSetObOnMap(uint8 index) {
+bool DreamBase::isSetObOnMap(uint8 index) {
 	return (getSetAd(index)->mapad[0] == 0);
 }
 
-void DreamGenContext::isSetObOnMap() {
-	flags._z = isSetObOnMap(al);
-}
-
-void DreamGenContext::dumpZoom() {
+void DreamBase::dumpZoom() {
 	if (data.byte(kZoomon) == 1)
 		multiDump(kZoomx + 5, kZoomy + 4, 46, 40);
 }
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index 3330f6f..bed8cec 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -93,14 +93,6 @@
 	void lockedDoorway(Sprite *sprite, SetObject *objData);
 	void liftSprite(Sprite *sprite, SetObject *objData);
 	void showGameReel(ReelRoutine *routine);
-	void turnPathOn(uint8 param);
-	void turnPathOff(uint8 param);
-	void turnPathOn();
-	void turnPathOff();
-	void turnAnyPathOn(uint8 param, uint8 room);
-	void turnAnyPathOff(uint8 param, uint8 room);
-	void turnAnyPathOn();
-	void turnAnyPathOff();
 	void makeBackOb(SetObject *objData);
 	void dealWithSpecial(uint8 firstParam, uint8 secondParam);
 	void zoom();
@@ -159,10 +151,6 @@
 	void doChange(uint8 index, uint8 value, uint8 type);
 	void deleteTaken();
 	bool isCD();
-	void placeSetObject();
-	void placeSetObject(uint8 index);
-	void removeSetObject();
-	void removeSetObject(uint8 index);
 	void showAllFree();
 	void showAllEx();
 	bool finishedWalkingCPP();
@@ -184,8 +172,6 @@
 	bool pixelCheckSet(const ObjPos *pos, uint8 x, uint8 y);
 	void checkIfSet();
 	bool checkIfSet(uint8 x, uint8 y);
-	void checkIfPathIsOn();
-	bool checkIfPathIsOn(uint8 index);
 	void isItWorn();
 	bool isItWorn(const DynObject *object) {
 		return DreamBase::isItWorn(object);
@@ -329,10 +315,6 @@
 	void checkFolderCoords();
 	void nextFolder();
 	void lastFolder();
-	void setLocation();
-	void setLocation(uint8 index) {
-		DreamBase::setLocation(index);
-	}
 	void drawFloor();
 	void allocateBuffers();
 	bool checkSpeed(ReelRoutine &routine);
@@ -456,9 +438,6 @@
 	void putBackObStuff();
 	void moreTalk();
 	void redes();
-	void isSetObOnMap();
-	bool isSetObOnMap(uint8 index);
-	void dumpZoom();
 	void selectLocation();
 	void showGroup();
 	void loadSpeech();


Commit: 202f9d18f142544339ecd70c13e30243b5325682
    https://github.com/scummvm/scummvm/commit/202f9d18f142544339ecd70c13e30243b5325682
Author: Max Horn (max at quendi.de)
Date: 2011-12-16T08:43:33-08:00

Commit Message:
DREAMWEB: Move more things to DreamBase; cleanup some code

Changed paths:
    engines/dreamweb/dreambase.h
    engines/dreamweb/keypad.cpp
    engines/dreamweb/sprite.cpp
    engines/dreamweb/stubs.cpp
    engines/dreamweb/stubs.h
    engines/dreamweb/use.cpp



diff --git a/engines/dreamweb/dreambase.h b/engines/dreamweb/dreambase.h
index 6ecf94d..4856ae0 100644
--- a/engines/dreamweb/dreambase.h
+++ b/engines/dreamweb/dreambase.h
@@ -165,13 +165,41 @@ public:
 
 	// from sprite.cpp
 	Sprite *spriteTable();
+	void printSprites();
+	void printASprite(const Sprite *sprite);
+	void clearSprites();
+	Sprite *makeSprite(uint8 x, uint8 y, uint16 updateCallback, uint16 frameData, uint16 somethingInDi);
+	void initMan();
+	void walking(Sprite *sprite);
+	void aboutTurn(Sprite *sprite);
+	void backObject(Sprite *sprite);
+	void constant(Sprite *sprite, SetObject *objData);
+	void randomSprite(Sprite *sprite, SetObject *objData);
+	void doorway(Sprite *sprite, SetObject *objData);
+	void wideDoor(Sprite *sprite, SetObject *objData);
+	void doDoor(Sprite *sprite, SetObject *objData, Common::Rect check);
+	void steady(Sprite *sprite, SetObject *objData);
+	void lockedDoorway(Sprite *sprite, SetObject *objData);
+	void liftSprite(Sprite *sprite, SetObject *objData);
+
 	Reel *getReelStart(uint16 reelPointer);
 	const Frame *findSource(uint16 &frame);
 	void showReelFrame(Reel *reel);
+	void showGameReel(ReelRoutine *routine);
 	const Frame *getReelFrameAX(uint16 frame);
+	void moveMap(uint8 param);
+	void checkOne(uint8 x, uint8 y, uint8 *flag, uint8 *flagEx, uint8 *type, uint8 *flagX, uint8 *flagY);
+
+	uint8 getBlockOfPixel(uint8 x, uint8 y);
+	Rain *splitIntoLines(uint8 x, uint8 y, Rain *rain);
+	void initRain();
+
 	void rollEndCredits();
+	void monks2text();
+	void textForEnd();
+	void textForMonkHelper(uint8 textIndex, uint8 voiceIndex, uint8 x, uint8 y, uint16 countToTimed, uint16 timeCount);
+	void textForMonk();
 	void priestText(ReelRoutine &routine);
-	void checkOne(uint8 x, uint8 y, uint8 *flag, uint8 *flagEx, uint8 *type, uint8 *flagX, uint8 *flagY);
 	void soundOnReels(uint16 reelPointer);
 	void clearBeforeLoad();
 	void clearReels();
@@ -179,6 +207,7 @@ public:
 	void liftNoise(uint8 index);
 
 	// from stubs.cpp
+	bool isCD();
 	void crosshair();
 	void delTextLine();
 	void showBlink();
@@ -187,6 +216,8 @@ public:
 	void showPointer();
 	void delPointer();
 	void showRyanPage();
+	void switchRyanOn();
+	void switchRyanOff();
 	Frame *tempGraphics();
 	Frame *tempGraphics2();
 	Frame *tempGraphics3();
@@ -215,6 +246,7 @@ public:
 	void *getAnyAd(uint8 *value1, uint8 *value2);
 	const uint8 *getTextInFile1(uint16 index);
 	uint8 findNextColon(const uint8 **string);
+	void allocateBuffers();
 	uint16 allocateMem(uint16 paragraphs);
 	void deallocateMem(uint16 segment);
 	uint16 allocateAndLoad(unsigned int size);
@@ -282,6 +314,15 @@ public:
 	void removeSetObject(uint8 index);
 	bool isSetObOnMap(uint8 index);
 	void dumpZoom();
+	void diaryKeyP();
+	void diaryKeyN();
+	void findRoomInLoc();
+	void loadMenu();
+	void showMenu();
+	void dumpMenu();
+	void dealWithSpecial(uint8 firstParam, uint8 secondParam);
+	void plotReel(uint16 &reelPointer);
+	void setupTimedTemp(uint8 textIndex, uint8 voiceIndex, uint8 x, uint8 y, uint16 countToTimed, uint16 timeCount);
 
 	// from use.cpp
 	void placeFreeObject(uint8 index);
diff --git a/engines/dreamweb/keypad.cpp b/engines/dreamweb/keypad.cpp
index 032f018..43f6749 100644
--- a/engines/dreamweb/keypad.cpp
+++ b/engines/dreamweb/keypad.cpp
@@ -106,7 +106,7 @@ void DreamGenContext::enterCode(uint8 digit0, uint8 digit1, uint8 digit2, uint8
 		{ kKeypadx+9,kKeypadx+30,kKeypady+59,kKeypady+73,&DreamBase::buttonNought },
 		{ kKeypadx+31,kKeypadx+74,kKeypady+59,kKeypady+73,&DreamBase::buttonEnter },
 		{ kKeypadx+72,kKeypadx+86,kKeypady+80,kKeypady+94,&DreamBase::quitKey },
-		{ 0,320,0,200,&DreamGenContext::blank },
+		{ 0,320,0,200,&DreamBase::blank },
 		{ 0xFFFF,0,0,0,0 }
 	};
 
diff --git a/engines/dreamweb/sprite.cpp b/engines/dreamweb/sprite.cpp
index d82d0f1..99b12d1 100644
--- a/engines/dreamweb/sprite.cpp
+++ b/engines/dreamweb/sprite.cpp
@@ -29,7 +29,7 @@ Sprite *DreamBase::spriteTable() {
 	return sprite;
 }
 
-void DreamGenContext::printSprites() {
+void DreamBase::printSprites() {
 	for (size_t priority = 0; priority < 7; ++priority) {
 		Sprite *sprites = spriteTable();
 		for (size_t j = 0; j < 16; ++j) {
@@ -45,7 +45,7 @@ void DreamGenContext::printSprites() {
 	}
 }
 
-void DreamGenContext::printASprite(const Sprite *sprite) {
+void DreamBase::printASprite(const Sprite *sprite) {
 	uint16 x, y;
 	if (sprite->y >= 220) {
 		y = data.word(kMapady) - (256 - sprite->y);
@@ -67,11 +67,11 @@ void DreamGenContext::printASprite(const Sprite *sprite) {
 	showFrame((const Frame *)getSegment(sprite->frameData()).ptr(0, 0), x, y, sprite->frameNumber, c);
 }
 
-void DreamGenContext::clearSprites() {
+void DreamBase::clearSprites() {
 	memset(spriteTable(), 0xff, sizeof(Sprite) * 16);
 }
 
-Sprite *DreamGenContext::makeSprite(uint8 x, uint8 y, uint16 updateCallback, uint16 frameData, uint16 somethingInDi) {
+Sprite *DreamBase::makeSprite(uint8 x, uint8 y, uint16 updateCallback, uint16 frameData, uint16 somethingInDi) {
 	Sprite *sprite = spriteTable();
 	while (sprite->frameNumber != 0xff) { // NB: No boundchecking in the original code either
 		++sprite;
@@ -111,17 +111,13 @@ void DreamGenContext::spriteUpdate() {
 	}
 }
 
-void DreamGenContext::initMan() {
+void DreamBase::initMan() {
 	Sprite *sprite = makeSprite(data.byte(kRyanx), data.byte(kRyany), addr_mainman, data.word(kMainsprites), 0);
 	sprite->priority = 4;
 	sprite->speed = 0;
 	sprite->walkFrame = 0;
 }
 
-void DreamGenContext::mainMan() {
-	assert(false);
-}
-
 void DreamGenContext::mainMan(Sprite *sprite) {
 	push(es);
 	push(ds);
@@ -186,7 +182,7 @@ void DreamGenContext::mainMan(Sprite *sprite) {
 	es = pop();
 }
 
-void DreamGenContext::walking(Sprite *sprite) {
+void DreamBase::walking(Sprite *sprite) {
 	uint8 comp;
 	if (data.byte(kLinedirection) != 0) {
 		--data.byte(kLinepointer);
@@ -208,14 +204,10 @@ void DreamGenContext::walking(Sprite *sprite) {
 		return;
 	}
 	data.byte(kDestination) = data.byte(kFinaldest);
-	push(es);
-	push(bx);
 	autoSetWalk();
-	bx = pop();
-	es = pop();
 }
 
-void DreamGenContext::aboutTurn(Sprite *sprite) {
+void DreamBase::aboutTurn(Sprite *sprite) {
 	bool incdir = true;
 
 	if (data.byte(kTurndirection) == 1)
@@ -249,11 +241,7 @@ void DreamGenContext::aboutTurn(Sprite *sprite) {
 	}
 }
 
-void DreamGenContext::backObject() {
-	assert(false);
-}
-
-void DreamGenContext::backObject(Sprite *sprite) {
+void DreamBase::backObject(Sprite *sprite) {
 	SetObject *objData = (SetObject *)getSegment(data.word(kSetdat)).ptr(sprite->objData(), 0);
 
 	if (sprite->delay != 0) {
@@ -278,7 +266,7 @@ void DreamGenContext::backObject(Sprite *sprite) {
 		steady(sprite, objData);
 }
 
-void DreamGenContext::constant(Sprite *sprite, SetObject *objData) {
+void DreamBase::constant(Sprite *sprite, SetObject *objData) {
 	++sprite->animFrame;
 	if (objData->frames[sprite->animFrame] == 255) {
 		sprite->animFrame = 0;
@@ -288,22 +276,22 @@ void DreamGenContext::constant(Sprite *sprite, SetObject *objData) {
 	sprite->frameNumber = frame;
 }
 
-void DreamGenContext::randomSprite(Sprite *sprite, SetObject *objData) {
+void DreamBase::randomSprite(Sprite *sprite, SetObject *objData) {
 	uint8 r = engine->randomNumber();
 	sprite->frameNumber = objData->frames[r&7];
 }
 
-void DreamGenContext::doorway(Sprite *sprite, SetObject *objData) {
+void DreamBase::doorway(Sprite *sprite, SetObject *objData) {
 	Common::Rect check(-24, -30, 10, 10);
 	doDoor(sprite, objData, check);
 }
 
-void DreamGenContext::wideDoor(Sprite *sprite, SetObject *objData) {
+void DreamBase::wideDoor(Sprite *sprite, SetObject *objData) {
 	Common::Rect check(-24, -30, 24, 24);
 	doDoor(sprite, objData, check);
 }
 
-void DreamGenContext::doDoor(Sprite *sprite, SetObject *objData, Common::Rect check) {
+void DreamBase::doDoor(Sprite *sprite, SetObject *objData, Common::Rect check) {
 	int ryanx = data.byte(kRyanx);
 	int ryany = data.byte(kRyany);
 
@@ -352,13 +340,13 @@ void DreamGenContext::doDoor(Sprite *sprite, SetObject *objData, Common::Rect ch
 	}
 }
 
-void DreamGenContext::steady(Sprite *sprite, SetObject *objData) {
+void DreamBase::steady(Sprite *sprite, SetObject *objData) {
 	uint8 frame = objData->frames[0];
 	objData->index = frame;
 	sprite->frameNumber = frame;
 }
 
-void DreamGenContext::lockedDoorway(Sprite *sprite, SetObject *objData) {
+void DreamBase::lockedDoorway(Sprite *sprite, SetObject *objData) {
 	int ryanx = data.byte(kRyanx);
 	int ryany = data.byte(kRyany);
 
@@ -409,13 +397,13 @@ void DreamGenContext::lockedDoorway(Sprite *sprite, SetObject *objData) {
 	}
 }
 
-void DreamGenContext::liftSprite(Sprite *sprite, SetObject *objData) {
+void DreamBase::liftSprite(Sprite *sprite, SetObject *objData) {
 	uint8 liftFlag = data.byte(kLiftflag);
 	if (liftFlag == 0) { //liftclosed
 		turnPathOff(data.byte(kLiftpath));
 
 		if (data.byte(kCounttoopen) != 0) {
-			_dec(data.byte(kCounttoopen));
+			data.byte(kCounttoopen)--;
 			if (data.byte(kCounttoopen) == 0)
 				data.byte(kLiftflag) = 3;
 		}
@@ -426,7 +414,7 @@ void DreamGenContext::liftSprite(Sprite *sprite, SetObject *objData) {
 		turnPathOn(data.byte(kLiftpath));
 
 		if (data.byte(kCounttoclose) != 0) {
-			_dec(data.byte(kCounttoclose));
+			data.byte(kCounttoclose)--;
 			if (data.byte(kCounttoclose) == 0)
 				data.byte(kLiftflag) = 2;
 		}
@@ -486,7 +474,7 @@ void DreamBase::showReelFrame(Reel *reel) {
 	showFrame(base, x, y, frame, 8);
 }
 
-void DreamGenContext::showGameReel(ReelRoutine *routine) {
+void DreamBase::showGameReel(ReelRoutine *routine) {
 	uint16 reelPointer = routine->reelPointer();
 	if (reelPointer >= 512)
 		return;
@@ -545,7 +533,7 @@ void DreamGenContext::showRain() {
 	playChannel1(soundIndex);
 }
 
-void DreamGenContext::moveMap(uint8 param) {
+void DreamBase::moveMap(uint8 param) {
 	switch (param) {
 	case 32:
 		data.byte(kMapy) -= 20;
@@ -586,11 +574,7 @@ void DreamBase::checkOne(uint8 x, uint8 y, uint8 *flag, uint8 *flagEx, uint8 *ty
 	*type = tileData[2];
 }
 
-void DreamGenContext::getBlockOfPixel() {
-	al = getBlockOfPixel(cl, ch);
-}
-
-uint8 DreamGenContext::getBlockOfPixel(uint8 x, uint8 y) {
+uint8 DreamBase::getBlockOfPixel(uint8 x, uint8 y) {
 	uint8 flag, flagEx, type, flagX, flagY;
 	checkOne(x + data.word(kMapxstart), y + data.word(kMapystart), &flag, &flagEx, &type, &flagX, &flagY);
 	if (flag & 1)
@@ -599,7 +583,7 @@ uint8 DreamGenContext::getBlockOfPixel(uint8 x, uint8 y) {
 		return type;
 }
 
-Rain *DreamGenContext::splitIntoLines(uint8 x, uint8 y, Rain *rain) {
+Rain *DreamBase::splitIntoLines(uint8 x, uint8 y, Rain *rain) {
 	do {
 		// Look for line start
 		while (!getBlockOfPixel(x, y)) {
@@ -670,7 +654,7 @@ static const RainLocation rainLocationList[] = {
 	{ 255,0,0,0 }
 };
 
-void DreamGenContext::initRain() {
+void DreamBase::initRain() {
 	const RainLocation *r = rainLocationList;
 	Rain *rainList = (Rain *)getSegment(data.word(kBuffers)).ptr(kRainlist, 0);
 	Rain *rain = rainList;
@@ -799,7 +783,7 @@ void DreamBase::rollEndCredits() {
 }
 
 
-void DreamGenContext::monks2text() {
+void DreamBase::monks2text() {
 	bool isGermanCD = isCD() && engine->getLanguage() == Common::DE_DEU;
 
 	if (data.byte(kIntrocount) == 1)
@@ -836,7 +820,7 @@ void DreamGenContext::monks2text() {
 		setupTimedTemp(18, 82, 36, 160, 120, 1);
 }
 
-void DreamGenContext::textForEnd() {
+void DreamBase::textForEnd() {
 	if (data.byte(kIntrocount) == 20)
 		setupTimedTemp(0, 83, 34, 20, 60, 1);
 	else if (data.byte(kIntrocount) == (isCD() ? 50 : 65))
@@ -845,14 +829,14 @@ void DreamGenContext::textForEnd() {
 		setupTimedTemp(2, 83, 34, 20, 60, 1);
 }
 
-void DreamGenContext::textForMonkHelper(uint8 textIndex, uint8 voiceIndex, uint8 x, uint8 y, uint16 countToTimed, uint16 timeCount) {
+void DreamBase::textForMonkHelper(uint8 textIndex, uint8 voiceIndex, uint8 x, uint8 y, uint16 countToTimed, uint16 timeCount) {
 	if (isCD() && data.byte(kCh1playing) != 255)
 		data.byte(kIntrocount)--;
 	else
 		setupTimedTemp(textIndex, voiceIndex, x, y, countToTimed, timeCount);
 }
 
-void DreamGenContext::textForMonk() {
+void DreamBase::textForMonk() {
 	if (data.byte(kIntrocount) == 1)
 		textForMonkHelper(19, 82, 68, 154, 120, 1);
 	else if (data.byte(kIntrocount) == 5)
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index 1c2b70c..352dec3 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -732,11 +732,11 @@ void DreamGenContext::startup1() {
 	fadeScreenUp();
 }
 
-void DreamGenContext::switchRyanOn() {
+void DreamBase::switchRyanOn() {
 	data.byte(kRyanon) = 255;
 }
 
-void DreamGenContext::switchRyanOff() {
+void DreamBase::switchRyanOff() {
 	data.byte(kRyanon) = 1;
 }
 
@@ -916,7 +916,7 @@ void DreamGenContext::useTimedText() {
 	data.byte(kNeedtodumptimed) = 1;
 }
 
-void DreamGenContext::setupTimedTemp(uint8 textIndex, uint8 voiceIndex, uint8 x, uint8 y, uint16 countToTimed, uint16 timeCount) {
+void DreamBase::setupTimedTemp(uint8 textIndex, uint8 voiceIndex, uint8 x, uint8 y, uint16 countToTimed, uint16 timeCount) {
 #if 1 // if cd
 	if (voiceIndex != 0) {
 		if (loadSpeech('T', voiceIndex, 'T', textIndex)) {
@@ -1110,7 +1110,6 @@ void DreamGenContext::startLoading(const Room &room) {
 	data.byte(kLiftpath) = room.liftPath;
 	data.byte(kDoorpath) = room.doorPath;
 	data.byte(kLastweapon) = (uint8)-1;
-	ah = data.byte(kReallocation);
 	data.byte(kReallocation) = room.realLocation;
 
 	loadRoomData(room, false);
@@ -1131,14 +1130,12 @@ void DreamGenContext::startLoading(const Room &room) {
 	data.byte(kLinepointer) = 254;
 	if (room.b27 != 255) {
 		data.byte(kManspath) = room.b27;
-		push(bx);
 		autoSetWalk();
-		bx = pop();
 	}
 	findXYFromPath();
 }
 
-void DreamGenContext::dealWithSpecial(uint8 firstParam, uint8 secondParam) {
+void DreamBase::dealWithSpecial(uint8 firstParam, uint8 secondParam) {
 	uint8 type = firstParam - 220;
 	if (type == 0) {
 		placeSetObject(secondParam);
@@ -1165,7 +1162,7 @@ void DreamGenContext::dealWithSpecial(uint8 firstParam, uint8 secondParam) {
 	}
 }
 
-void DreamGenContext::plotReel(uint16 &reelPointer) {
+void DreamBase::plotReel(uint16 &reelPointer) {
 	Reel *reel = getReelStart(reelPointer);
 	while (reel->x >= 220 && reel->x != 255) {
 		dealWithSpecial(reel->x, reel->y);
@@ -1810,7 +1807,7 @@ bool DreamBase::isItDescribed(const ObjPos *pos) {
 	return result != 0;
 }
 
-bool DreamGenContext::isCD() {
+bool DreamBase::isCD() {
 	// The original sources has two codepaths depending if the game is 'if cd' or not
 	// This is a hack to guess which version to use with the assumption that if we have a cd version
 	// we managed to load the speech. At least it is isolated in this function and can be changed.
@@ -2208,7 +2205,7 @@ Frame * DreamBase::tempGraphics3() {
 	return (Frame *)getSegment(data.word(kTempgraphics3)).ptr(0, 0);
 }
 
-void DreamGenContext::findRoomInLoc() {
+void DreamBase::findRoomInLoc() {
 	uint8 x = data.byte(kMapx) / 11;
 	uint8 y = data.byte(kMapy) / 10;
 	uint8 roomNum = y * 6 + x;
@@ -2619,7 +2616,7 @@ void DreamGenContext::drawFloor() {
 	data.byte(kNewobs) = 0;
 }
 
-void DreamGenContext::allocateBuffers() {
+void DreamBase::allocateBuffers() {
 	data.word(kExtras) = allocateMem(kLengthofextra/16);
 	data.word(kMapdata) = allocateMem(kLengthofmap/16);
 	data.word(kBuffers) = allocateMem(kLengthofbuffer/16);
@@ -2639,19 +2636,19 @@ void DreamBase::workToScreenM() {
 	delPointer();
 }
 
-void DreamGenContext::loadMenu() {
+void DreamBase::loadMenu() {
 	loadIntoTemp("DREAMWEB.S02"); // sprite name 3
 	loadIntoTemp2("DREAMWEB.G07"); // mon. graphics 2
 }
 
-void DreamGenContext::showMenu() {
+void DreamBase::showMenu() {
 	++data.byte(kMenucount);
 	if (data.byte(kMenucount) == 37*2)
 		data.byte(kMenucount) = 0;
 	showFrame(tempGraphics(), kMenux, kMenuy, data.byte(kMenucount) / 2, 0);
 }
 
-void DreamGenContext::dumpMenu() {
+void DreamBase::dumpMenu() {
 	multiDump(kMenux, kMenuy, 48, 48);
 }
 
@@ -3631,7 +3628,7 @@ void DreamGenContext::selectLocation() {
 			{ 104,124,4,44,&DreamGenContext::lastDest },
 			{ 280,308,4,44,&DreamGenContext::lookAtPlace },
 			{ 104,216,138,192,&DreamGenContext::destSelect },
-			{ 273,320,157,198,&DreamGenContext::getBack1 },
+			{ 273,320,157,198,&DreamBase::getBack1 },
 			{ 0,320,0,200,&DreamBase::blank },
 			{ 0xFFFF,0,0,0,0 }
 		};
@@ -3905,7 +3902,7 @@ void DreamGenContext::talk() {
 	workToScreenCPP();
 
 	RectWithCallback talkList[] = {
-		{ 273,320,157,198,&DreamGenContext::getBack1 },
+		{ 273,320,157,198,&DreamBase::getBack1 },
 		{ 240,290,2,44,&DreamGenContext::moreTalk },
 		{ 0,320,0,200,&DreamBase::blank },
 		{ 0xFFFF,0,0,0,0 }
@@ -3984,7 +3981,7 @@ void DreamGenContext::hangOnPQ() {
 	data.byte(kGetback) = 0;
 
 	RectWithCallback quitList[] = {
-		{ 273,320,157,198,&DreamGenContext::getBack1 },
+		{ 273,320,157,198,&DreamBase::getBack1 },
 		{ 0,320,0,200,&DreamBase::blank },
 		{ 0xFFFF,0,0,0,0 }
 	};
@@ -4068,7 +4065,7 @@ void DreamGenContext::showGun() {
 	getRidOfTempText();
 }
 
-void DreamGenContext::diaryKeyP() {
+void DreamBase::diaryKeyP() {
 	if (data.byte(kCommandtype) != 214) {
 		data.byte(kCommandtype) = 214;
 		commandOnly(23);
@@ -4088,7 +4085,7 @@ void DreamGenContext::diaryKeyP() {
 		data.byte(kDiarypage) = 11;
 }
 
-void DreamGenContext::diaryKeyN() {
+void DreamBase::diaryKeyN() {
 	if (data.byte(kCommandtype) != 213) {
 		data.byte(kCommandtype) = 213;
 		commandOnly(23);
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index bed8cec..765b689 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -25,8 +25,6 @@
 	void screenUpdate();
 	void startup();
 	void startup1();
-	void switchRyanOn();
-	void switchRyanOff();
 	void saveLoad();
 	void hangOnCurs(uint16 frameCount);
 	void hangOnCurs();
@@ -43,7 +41,6 @@
 	void multiDump(uint16 x, uint16 y, uint8 width, uint8 height) {
 		DreamBase::multiDump(x, y, width, height);
 	}
-	void printSprites();
 	void quickQuit();
 	void readOneBlock();
 	void readCityPic();
@@ -60,7 +57,6 @@
 	}
 	void useTimedText();
 	void dumpTimedText();
-	void setupTimedTemp(uint8 textIndex, uint8 voiceIndex, uint8 x, uint8 y, uint16 countToTimed, uint16 timeCount);
 	void getUnderTimed();
 	void putUnderTimed();
 	void dumpTextLine();
@@ -72,29 +68,10 @@
 	void showFrame(const Frame *frameData, uint16 x, uint16 y, uint16 frameNumber, uint8 effectsFlag) {
 		DreamBase::showFrame(frameData, x, y, frameNumber, effectsFlag);
 	}
-	void printASprite(const Sprite *sprite);
 	void width160();
-	void clearSprites();
-	Sprite *makeSprite(uint8 x, uint8 y, uint16 updateCallback, uint16 frameData, uint16 somethingInDi);
 	void spriteUpdate();
-	void initMan();
 	void mainMan(Sprite *sprite);
-	void mainMan();
-	void walking(Sprite *sprite);
-	void aboutTurn(Sprite *sprite);
-	void backObject(Sprite *sprite);
-	void backObject();
-	void constant(Sprite *sprite, SetObject *objData);
-	void steady(Sprite *sprite, SetObject *objData);
-	void randomSprite(Sprite *sprite, SetObject *objData);
-	void doDoor(Sprite *sprite, SetObject *objData, Common::Rect check);
-	void doorway(Sprite *sprite, SetObject *objData);
-	void wideDoor(Sprite *sprite, SetObject *objData);
-	void lockedDoorway(Sprite *sprite, SetObject *objData);
-	void liftSprite(Sprite *sprite, SetObject *objData);
-	void showGameReel(ReelRoutine *routine);
 	void makeBackOb(SetObject *objData);
-	void dealWithSpecial(uint8 firstParam, uint8 secondParam);
 	void zoom();
 	void showRain();
 	void commandOnly();
@@ -117,7 +94,6 @@
 	void madman(ReelRoutine &routine);
 	void madmanText();
 	void madMode();
-	void moveMap(uint8 param);
 	bool addAlong(const uint8 *mapFlags);
 	bool addLength(const uint8 *mapFlags);
 	void getDimension();
@@ -150,7 +126,6 @@
 	void setAllChanges();
 	void doChange(uint8 index, uint8 value, uint8 type);
 	void deleteTaken();
-	bool isCD();
 	void showAllFree();
 	void showAllEx();
 	bool finishedWalkingCPP();
@@ -199,8 +174,6 @@
 	const uint8 *getObTextStartCPP();
 	void useText(const uint8 *string);
 	void useText();
-	void getBlockOfPixel();
-	uint8 getBlockOfPixel(uint8 x, uint8 y);
 	void examineObText();
 	void showCity();
 	uint16 getPersFrame(uint8 index);
@@ -208,23 +181,14 @@
 	void examineOb(bool examineAgain = true);
 	void dumpWatch();
 	void transferText();
-	void initRain();
-	Rain *splitIntoLines(uint8 x, uint8 y, Rain *rain);
 	void watchCount();
 	void loadRoom();
-	void textForMonk();
-	void textForMonkHelper(uint8 textIndex, uint8 voiceIndex, uint8 x, uint8 y, uint16 countToTimed, uint16 timeCount);
-	void textForEnd();
-	void monks2text();
 	void intro1Text();
 	void intro2Text();
 	void intro3Text();
 	void readSetData();
 	void fadeupYellows();
 	void fadeupMonFirst();
-	void loadMenu();
-	void showMenu();
-	void dumpMenu();
 	void useMenu();
 	void useMon();
 	void makeCaps();
@@ -247,7 +211,6 @@
 	void playChannel1(uint8 index) {
 		DreamBase::playChannel1(index);
 	}
-	void findRoomInLoc();
 	void reelsOnScreen();
 	void reconstruct();
 	void look();
@@ -316,7 +279,6 @@
 	void nextFolder();
 	void lastFolder();
 	void drawFloor();
-	void allocateBuffers();
 	bool checkSpeed(ReelRoutine &routine);
 	void checkSpeed();
 	void sparkyDrip(ReelRoutine &routine);
@@ -450,10 +412,6 @@
 	void showLoadOps();
 	void watchReel();
 	void showWatchReel();
-	void plotReel(uint16 &reelPointer);
-	void removeFreeObject(uint8 index) {
-		DreamBase::removeFreeObject(index);
-	}
 	void afterNewRoom();
 	void madmanRun();
 	void showDecisions();
@@ -465,8 +423,6 @@
 	void hangOnPQ();
 	void showGun();
 	void endGame();
-	void diaryKeyP();
-	void diaryKeyN();
 	void checkInput();
 	void dropError();
 	void cantDrop();
diff --git a/engines/dreamweb/use.cpp b/engines/dreamweb/use.cpp
index b0666ba..4e956cd 100644
--- a/engines/dreamweb/use.cpp
+++ b/engines/dreamweb/use.cpp
@@ -975,7 +975,7 @@ void DreamGenContext::useElvDoor() {
 
 	// Axe on door
 	showPuzText(15, 300);
-	_inc(data.byte(kProgresspoints));
+	data.byte(kProgresspoints)++;
 	data.word(kWatchingtime) = 46 * 2;
 	data.word(kReeltowatch) = 31;
 	data.word(kEndwatchreel) = 77;
@@ -1288,10 +1288,10 @@ void DreamGenContext::useDiary() {
 	data.byte(kGetback) = 0;
 
 	RectWithCallback diaryList[] = {
-		{ kDiaryx+94,kDiaryx+110,kDiaryy+97,kDiaryy+113,&DreamGenContext::diaryKeyN },
-		{ kDiaryx+151,kDiaryx+167,kDiaryy+71,kDiaryy+87,&DreamGenContext::diaryKeyP },
-		{ kDiaryx+176,kDiaryx+192,kDiaryy+108,kDiaryy+124,&DreamGenContext::quitKey },
-		{ 0,320,0,200,&DreamGenContext::blank },
+		{ kDiaryx+94,kDiaryx+110,kDiaryy+97,kDiaryy+113,&DreamBase::diaryKeyN },
+		{ kDiaryx+151,kDiaryx+167,kDiaryy+71,kDiaryy+87,&DreamBase::diaryKeyP },
+		{ kDiaryx+176,kDiaryx+192,kDiaryy+108,kDiaryy+124,&DreamBase::quitKey },
+		{ 0,320,0,200,&DreamBase::blank },
 		{ 0xFFFF,0,0,0,0 }
 	};
 	


Commit: 010714ce5bf401f3d91e8d410c447b866646c85f
    https://github.com/scummvm/scummvm/commit/010714ce5bf401f3d91e8d410c447b866646c85f
Author: Max Horn (max at quendi.de)
Date: 2011-12-16T08:44:36-08:00

Commit Message:
DREAMWEB: Move more to DreamBase; fix regression in introMonks1()

Changed paths:
    engines/dreamweb/dreambase.h
    engines/dreamweb/people.cpp
    engines/dreamweb/sprite.cpp
    engines/dreamweb/stubs.h



diff --git a/engines/dreamweb/dreambase.h b/engines/dreamweb/dreambase.h
index 4856ae0..d6b94e0 100644
--- a/engines/dreamweb/dreambase.h
+++ b/engines/dreamweb/dreambase.h
@@ -133,6 +133,11 @@ public:
 	void bresenhams();
 	void workoutFrames();
 
+	// from people.cpp
+	void madMode();
+	void addToPeopleList(ReelRoutine *routine);
+	bool checkSpeed(ReelRoutine &routine);
+
 	// from print.cpp
 	uint8 getNextWord(const Frame *charSet, const uint8 *string, uint8 *totalWidth, uint8 *charCount);
 	void printChar(const Frame* charSet, uint16 *x, uint16 y, uint8 c, uint8 nextChar, uint8 *width, uint8 *height);
@@ -194,6 +199,10 @@ public:
 	Rain *splitIntoLines(uint8 x, uint8 y, Rain *rain);
 	void initRain();
 
+	void intro1Text();
+	void intro2Text(uint16 nextReelPointer);
+	void intro3Text(uint16 nextReelPointer);
+
 	void rollEndCredits();
 	void monks2text();
 	void textForEnd();
diff --git a/engines/dreamweb/people.cpp b/engines/dreamweb/people.cpp
index aeb0b5d..c4f950c 100644
--- a/engines/dreamweb/people.cpp
+++ b/engines/dreamweb/people.cpp
@@ -140,7 +140,7 @@ void DreamGenContext::madman(ReelRoutine &routine) {
 	madMode();
 }
 
-void DreamGenContext::madMode() {
+void DreamBase::madMode() {
 	data.word(kWatchingtime) = 2;
 	data.byte(kPointermode) = 0;
 	if (data.byte(kCombatcount) < (isCD() ? 65 : 63))
@@ -150,7 +150,7 @@ void DreamGenContext::madMode() {
 	data.byte(kPointermode) = 2;
 }
 
-void DreamGenContext::addToPeopleList(ReelRoutine *routine) {
+void DreamBase::addToPeopleList(ReelRoutine *routine) {
 	uint16 routinePointer = (const uint8 *)routine - data.ptr(0, 0);
 
 	People *people = (People *)getSegment(data.word(kBuffers)).ptr(data.word(kListpos), sizeof(People));
@@ -160,12 +160,7 @@ void DreamGenContext::addToPeopleList(ReelRoutine *routine) {
 	data.word(kListpos) += sizeof(People);
 }
 
-void DreamGenContext::checkSpeed() {
-	ReelRoutine *routine = (ReelRoutine *)es.ptr(bx, sizeof(ReelRoutine));
-	flags._z = checkSpeed(*routine);
-}
-
-bool DreamGenContext::checkSpeed(ReelRoutine &routine) {
+bool DreamBase::checkSpeed(ReelRoutine &routine) {
 	if (data.byte(kLastweapon) != (uint8)-1)
 		return true;
 	++routine.counter;
@@ -372,11 +367,7 @@ void DreamGenContext::introMagic1(ReelRoutine &routine) {
 		routine.setReelPointer(nextReelPointer);
 		if (nextReelPointer == 121) {
 			++data.byte(kIntrocount);
-			push(es);
-			push(bx);
 			intro1Text();
-			bx = pop();
-			es = pop();
 			if (data.byte(kIntrocount) == 8) {
 				data.byte(kMapy) += 10;
 				data.byte(kNowinnewroom) = 1;
@@ -462,12 +453,7 @@ void DreamGenContext::gates(ReelRoutine &routine) {
 			nextReelPointer = 119;
 		}
 		routine.setReelPointer(nextReelPointer);
-		push(es);
-		push(bx);
-		ax = nextReelPointer;
-		intro3Text();
-		bx = pop();
-		es = pop();
+		intro3Text(nextReelPointer);
 	}
 	showGameReel(&routine);
 }
@@ -655,11 +641,7 @@ void DreamGenContext::introMonks1(ReelRoutine &routine) {
 			nextReelPointer == 25 || nextReelPointer == 61 ||
 			nextReelPointer == 71) {
 			// Wait step
-			push(es);
-			push(bx);
-			intro2Text();
-			bx = pop();
-			es = pop();
+			intro2Text(nextReelPointer);
 			routine.counter = (uint8)-20;
 		}
 	}
diff --git a/engines/dreamweb/sprite.cpp b/engines/dreamweb/sprite.cpp
index 99b12d1..cfa204e 100644
--- a/engines/dreamweb/sprite.cpp
+++ b/engines/dreamweb/sprite.cpp
@@ -709,7 +709,7 @@ void DreamBase::initRain() {
 	rain->x = 0xff;
 }
 
-void DreamGenContext::intro1Text() {
+void DreamBase::intro1Text() {
 	if (data.byte(kIntrocount) != 2 && data.byte(kIntrocount) != 4 && data.byte(kIntrocount) != 6)
 		return;
 
@@ -725,17 +725,17 @@ void DreamGenContext::intro1Text() {
 	}
 }
 
-void DreamGenContext::intro2Text() {
-	if (ax == 5)
+void DreamBase::intro2Text(uint16 nextReelPointer) {
+	if (nextReelPointer == 5)
 		setupTimedTemp(43, 82, 34, 40, 90, 1);
-	else if (ax == 15)
+	else if (nextReelPointer == 15)
 		setupTimedTemp(44, 82, 34, 40, 90, 1);
 }
 
-void DreamGenContext::intro3Text() {
-	if (ax == 107)
+void DreamBase::intro3Text(uint16 nextReelPointer) {
+	if (nextReelPointer == 107)
 		setupTimedTemp(45, 82, 36, 56, 100, 1);
-	else if (ax == (isCD() ? 108 : 109))
+	else if (nextReelPointer == (isCD() ? 108 : 109))
 		setupTimedTemp(46, 82, 36, 56, 100, 1);
 }
 
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index 765b689..df55f05 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -93,7 +93,6 @@
 	void updatePeople();
 	void madman(ReelRoutine &routine);
 	void madmanText();
-	void madMode();
 	bool addAlong(const uint8 *mapFlags);
 	bool addLength(const uint8 *mapFlags);
 	void getDimension();
@@ -138,7 +137,6 @@
 	void obName();
 	void obName(uint8 command, uint8 commandType);
 	void checkCoords(const RectWithCallback *rectWithCallbacks);
-	void addToPeopleList(ReelRoutine *routine);
 	void getExPos();
 	void compare();
 	bool compare(uint8 index, uint8 flag, const char id[4]) {
@@ -183,9 +181,6 @@
 	void transferText();
 	void watchCount();
 	void loadRoom();
-	void intro1Text();
-	void intro2Text();
-	void intro3Text();
 	void readSetData();
 	void fadeupYellows();
 	void fadeupMonFirst();
@@ -279,8 +274,6 @@
 	void nextFolder();
 	void lastFolder();
 	void drawFloor();
-	bool checkSpeed(ReelRoutine &routine);
-	void checkSpeed();
 	void sparkyDrip(ReelRoutine &routine);
 	void genericPerson(ReelRoutine &routine);
 	void gamer(ReelRoutine &routine);


Commit: 8cb92c2367da5a16f4d7ffb68adea9f1bdfd13e8
    https://github.com/scummvm/scummvm/commit/8cb92c2367da5a16f4d7ffb68adea9f1bdfd13e8
Author: Max Horn (max at quendi.de)
Date: 2011-12-16T08:44:59-08:00

Commit Message:
DREAMWEB: Convert fadeScreenDownHalf to C++

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



diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover
index 9c39455..254e45c 100755
--- a/devtools/tasmrecover/tasm-recover
+++ b/devtools/tasmrecover/tasm-recover
@@ -399,6 +399,7 @@ generator = cpp(context, "DreamGen", blacklist = [
 	'fadescreenuphalf',
 	'fadescreendown',
 	'fadescreendowns',
+	'fadescreendownhalf',
 	'fadetowhite',
 	'fadeupmonfirst',
 	'fadeupyellows',
diff --git a/engines/dreamweb/dreambase.h b/engines/dreamweb/dreambase.h
index d6b94e0..a6c1abc 100644
--- a/engines/dreamweb/dreambase.h
+++ b/engines/dreamweb/dreambase.h
@@ -356,6 +356,8 @@ public:
 	void fadeScreenUpHalf();
 	void fadeScreenDown();
 	void fadeScreenDowns();
+	void fadeScreenDownHalf();
+	void clearPalette();
 	void greyscaleSum();
 	void allPalette();
 	void dumpCurrent();
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 906ce3a..ea731fc 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -285,36 +285,6 @@ void DreamGenContext::transferMap() {
 	_add(data.word(kExframepos), cx);
 }
 
-void DreamGenContext::fadeScreenDownHalf() {
-	STACK_CHECK;
-	palToStartPal();
-	palToEndPal();
-	cx = 768;
-	es = data.word(kBuffers);
-	bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
-halfend:
-	al = es.byte(bx);
-	_shr(al, 1);
-	es.byte(bx) = al;
-	_inc(bx);
-	if (--cx)
-		goto halfend;
-	ds = data.word(kBuffers);
-	es = data.word(kBuffers);
-	si = (0+(228*13)+32+60+(32*32)+(11*10*3))+(56*3);
-	di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768)+(56*3);
-	cx = 3*5;
-	_movsb(cx, true);
-	si = (0+(228*13)+32+60+(32*32)+(11*10*3))+(77*3);
-	di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768)+(77*3);
-	cx = 3*2;
-	_movsb(cx, true);
-	data.byte(kFadedirection) = 1;
-	data.byte(kFadecount) = 31;
-	data.byte(kColourpos) = 0;
-	data.byte(kNumtofade) = 32;
-}
-
 void DreamGenContext::rollEm() {
 	STACK_CHECK;
 	cl = 160;
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index ddccd5e..f22461e 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -487,7 +487,6 @@ public:
 	void doSomeTalk();
 	void resetLocation();
 	void adjustUp();
-	void fadeScreenDownHalf();
 	void outOfOpen();
 	void dirCom();
 	void findFirstPath();
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index df55f05..79b2244 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -382,7 +382,6 @@
 	void obsThatDoThings();
 	void makeMainScreen();
 	void delEverything();
-	void clearPalette();
 	void errorMessage1();
 	void errorMessage2();
 	void errorMessage3();
diff --git a/engines/dreamweb/vgafades.cpp b/engines/dreamweb/vgafades.cpp
index ca63b73..6766d56 100644
--- a/engines/dreamweb/vgafades.cpp
+++ b/engines/dreamweb/vgafades.cpp
@@ -184,7 +184,28 @@ void DreamBase::fadeScreenDowns() {
 	data.byte(kNumtofade) = 64;
 }
 
-void DreamGenContext::clearPalette() {
+void DreamBase::fadeScreenDownHalf() {
+	palToStartPal();
+	palToEndPal();
+
+	const uint8 *startPal = startPalette();
+	uint8 *endPal = endPalette();
+	for (int i = 0; i < 256 * 3; ++i) {
+		*endPal >>= 1;
+		endPal++;
+	}
+
+	memcpy(endPal + (56*3), startPal + (56*3), 3*5);
+	memcpy(endPal + (77*3), startPal + (77*3), 3*2);
+
+	data.byte(kFadedirection) = 1;
+	data.byte(kFadecount) = 31;
+	data.byte(kColourpos) = 0;
+	data.byte(kNumtofade) = 32;
+}
+
+
+void DreamBase::clearPalette() {
 	data.byte(kFadedirection) = 0;
 	clearStartPal();
 	dumpCurrent();


Commit: 2f0c6712566b757b6527a37bdaf35519a7d42c3e
    https://github.com/scummvm/scummvm/commit/2f0c6712566b757b6527a37bdaf35519a7d42c3e
Author: Max Horn (max at quendi.de)
Date: 2011-12-16T08:44:59-08:00

Commit Message:
DREAMWEB: Move most of people.cpp to DreamBase

Changed paths:
    engines/dreamweb/dreambase.h
    engines/dreamweb/people.cpp
    engines/dreamweb/stubs.h



diff --git a/engines/dreamweb/dreambase.h b/engines/dreamweb/dreambase.h
index a6c1abc..e64a41d 100644
--- a/engines/dreamweb/dreambase.h
+++ b/engines/dreamweb/dreambase.h
@@ -134,9 +134,58 @@ public:
 	void workoutFrames();
 
 	// from people.cpp
+	void madmanText();
+	void madman(ReelRoutine &routine);
 	void madMode();
 	void addToPeopleList(ReelRoutine *routine);
 	bool checkSpeed(ReelRoutine &routine);
+	void sparkyDrip(ReelRoutine &routine);
+	void genericPerson(ReelRoutine &routine);
+	void gamer(ReelRoutine &routine);
+	void eden(ReelRoutine &routine);
+	void sparky(ReelRoutine &routine);
+	void rockstar(ReelRoutine &routine);
+	void madmansTelly(ReelRoutine &routine);
+	void smokeBloke(ReelRoutine &routine);
+	void manAsleep(ReelRoutine &routine);
+	void drunk(ReelRoutine &routine);
+	void introMagic1(ReelRoutine &routine);
+	void introMagic2(ReelRoutine &routine);
+	void introMagic3(ReelRoutine &routine);
+	void introMusic(ReelRoutine &routine);
+	void candles(ReelRoutine &routine);
+	void candles1(ReelRoutine &routine);
+	void candles2(ReelRoutine &routine);
+	void smallCandle(ReelRoutine &routine);
+	void gates(ReelRoutine &routine);
+	void security(ReelRoutine &routine);
+	void edenInBath(ReelRoutine &routine);
+	void louis(ReelRoutine &routine);
+	void handClap(ReelRoutine &routine);
+	void carParkDrip(ReelRoutine &routine);
+	void foghornSound(ReelRoutine &routine);
+	void train(ReelRoutine &routine);
+	void attendant(ReelRoutine &routine);
+	void keeper(ReelRoutine &routine);
+	void interviewer(ReelRoutine &routine);
+	void drinker(ReelRoutine &routine);
+	void alleyBarkSound(ReelRoutine &routine);
+	void louisChair(ReelRoutine &routine);
+	void bossMan(ReelRoutine &routine);
+	void priest(ReelRoutine &routine);
+	void monkAndRyan(ReelRoutine &routine);
+	void copper(ReelRoutine &routine);
+	void introMonks1(ReelRoutine &routine);
+	void introMonks2(ReelRoutine &routine);
+	void soldier1(ReelRoutine &routine);
+	void receptionist(ReelRoutine &routine);
+	void bartender(ReelRoutine &routine);
+	void heavy(ReelRoutine &routine);
+	void helicopter(ReelRoutine &routine);
+	//void mugger(ReelRoutine &routine);
+	void businessMan(ReelRoutine &routine);
+	void endGameSeq(ReelRoutine &routine);
+	void poolGuard(ReelRoutine &routine);
 
 	// from print.cpp
 	uint8 getNextWord(const Frame *charSet, const uint8 *string, uint8 *totalWidth, uint8 *charCount);
diff --git a/engines/dreamweb/people.cpp b/engines/dreamweb/people.cpp
index c4f950c..887a445 100644
--- a/engines/dreamweb/people.cpp
+++ b/engines/dreamweb/people.cpp
@@ -25,35 +25,35 @@
 namespace DreamGen {
 
 static void (DreamGenContext::*reelCallbacks[57])(ReelRoutine &) = {
-	&DreamGenContext::gamer, &DreamGenContext::sparkyDrip,
-	&DreamGenContext::eden, &DreamGenContext::edenInBath,
-	&DreamGenContext::sparky, &DreamGenContext::smokeBloke,
-	&DreamGenContext::manAsleep, &DreamGenContext::drunk,
-	&DreamGenContext::receptionist, &DreamGenContext::genericPerson /*maleFan*/,
-	&DreamGenContext::genericPerson /*femaleFan*/, &DreamGenContext::louis,
-	&DreamGenContext::louisChair, &DreamGenContext::soldier1,
-	&DreamGenContext::bossMan, &DreamGenContext::interviewer,
-	&DreamGenContext::heavy, &DreamGenContext::manAsleep /*manAsleep2*/,
-	&DreamGenContext::genericPerson /*manSatStill*/, &DreamGenContext::drinker,
-	&DreamGenContext::bartender, &DreamGenContext::genericPerson /*otherSmoker*/,
-	&DreamGenContext::genericPerson /*tattooMan*/, &DreamGenContext::attendant,
-	&DreamGenContext::keeper, &DreamGenContext::candles1,
-	&DreamGenContext::smallCandle, &DreamGenContext::security,
-	&DreamGenContext::copper, &DreamGenContext::poolGuard,
-	&DreamGenContext::rockstar, &DreamGenContext::businessMan,
-	&DreamGenContext::train, &DreamGenContext::genericPerson /*aide*/,
-	&DreamGenContext::mugger, &DreamGenContext::helicopter,
-	&DreamGenContext::introMagic1, &DreamGenContext::introMusic,
-	&DreamGenContext::introMagic2, &DreamGenContext::candles2,
-	&DreamGenContext::gates, &DreamGenContext::introMagic3,
-	&DreamGenContext::introMonks1, &DreamGenContext::candles,
-	&DreamGenContext::introMonks2, &DreamGenContext::handClap,
-	&DreamGenContext::monkAndRyan, &DreamGenContext::endGameSeq,
-	&DreamGenContext::priest, &DreamGenContext::madman,
-	&DreamGenContext::madmansTelly, &DreamGenContext::alleyBarkSound,
-	&DreamGenContext::foghornSound, &DreamGenContext::carParkDrip,
-	&DreamGenContext::carParkDrip, &DreamGenContext::carParkDrip,
-	&DreamGenContext::carParkDrip
+	&DreamBase::gamer, &DreamBase::sparkyDrip,
+	&DreamBase::eden, &DreamBase::edenInBath,
+	&DreamBase::sparky, &DreamBase::smokeBloke,
+	&DreamBase::manAsleep, &DreamBase::drunk,
+	&DreamBase::receptionist, &DreamBase::genericPerson /*maleFan*/,
+	&DreamBase::genericPerson /*femaleFan*/, &DreamBase::louis,
+	&DreamBase::louisChair, &DreamBase::soldier1,
+	&DreamBase::bossMan, &DreamBase::interviewer,
+	&DreamBase::heavy, &DreamBase::manAsleep /*manAsleep2*/,
+	&DreamBase::genericPerson /*manSatStill*/, &DreamBase::drinker,
+	&DreamBase::bartender, &DreamBase::genericPerson /*otherSmoker*/,
+	&DreamBase::genericPerson /*tattooMan*/, &DreamBase::attendant,
+	&DreamBase::keeper, &DreamBase::candles1,
+	&DreamBase::smallCandle, &DreamBase::security,
+	&DreamBase::copper, &DreamBase::poolGuard,
+	&DreamBase::rockstar, &DreamBase::businessMan,
+	&DreamBase::train, &DreamBase::genericPerson /*aide*/,
+	&DreamGenContext::mugger, &DreamBase::helicopter,
+	&DreamBase::introMagic1, &DreamBase::introMusic,
+	&DreamBase::introMagic2, &DreamBase::candles2,
+	&DreamBase::gates, &DreamBase::introMagic3,
+	&DreamBase::introMonks1, &DreamBase::candles,
+	&DreamBase::introMonks2, &DreamBase::handClap,
+	&DreamBase::monkAndRyan, &DreamGenContext::endGameSeq,
+	&DreamBase::priest, &DreamBase::madman,
+	&DreamBase::madmansTelly, &DreamBase::alleyBarkSound,
+	&DreamBase::foghornSound, &DreamBase::carParkDrip,
+	&DreamBase::carParkDrip, &DreamBase::carParkDrip,
+	&DreamBase::carParkDrip
 };
 
 void DreamGenContext::updatePeople() {
@@ -74,7 +74,7 @@ void DreamGenContext::updatePeople() {
 	}
 }
 
-void DreamGenContext::madmanText() {
+void DreamBase::madmanText() {
 	byte origCount;
 
 	if (isCD()) {
@@ -94,7 +94,7 @@ void DreamGenContext::madmanText() {
 	setupTimedTemp(47 + origCount, 82, 72, 80, 90, 1);
 }
 
-void DreamGenContext::madman(ReelRoutine &routine) {
+void DreamBase::madman(ReelRoutine &routine) {
 	data.word(kWatchingtime) = 2;
 	if (checkSpeed(routine)) {
 		uint16 newReelPointer = routine.reelPointer();
@@ -170,17 +170,17 @@ bool DreamBase::checkSpeed(ReelRoutine &routine) {
 	return true;
 }
 
-void DreamGenContext::sparkyDrip(ReelRoutine &routine) {
+void DreamBase::sparkyDrip(ReelRoutine &routine) {
 	if (checkSpeed(routine))
 		playChannel0(14, 0);
 }
 
-void DreamGenContext::genericPerson(ReelRoutine &routine) {
+void DreamBase::genericPerson(ReelRoutine &routine) {
 	showGameReel(&routine);
 	addToPeopleList(&routine);
 }
 
-void DreamGenContext::gamer(ReelRoutine &routine) {
+void DreamBase::gamer(ReelRoutine &routine) {
 	if (checkSpeed(routine)) {
 		uint8 v;
 		do {
@@ -193,14 +193,14 @@ void DreamGenContext::gamer(ReelRoutine &routine) {
 	addToPeopleList(&routine);
 }
 
-void DreamGenContext::eden(ReelRoutine &routine) {
+void DreamBase::eden(ReelRoutine &routine) {
 	if (data.byte(kGeneraldead))
 		return;
 	showGameReel(&routine);
 	addToPeopleList(&routine);
 }
 
-void DreamGenContext::sparky(ReelRoutine &routine) {
+void DreamBase::sparky(ReelRoutine &routine) {
 	if (data.word(kCard1money))
 		routine.b7 = 3;
 	if (checkSpeed(routine)) {
@@ -222,7 +222,7 @@ void DreamGenContext::sparky(ReelRoutine &routine) {
 		data.byte(kTalkedtosparky) = 1;
 }
 
-void DreamGenContext::rockstar(ReelRoutine &routine) {
+void DreamBase::rockstar(ReelRoutine &routine) {
 	if ((routine.reelPointer() == 303) || (routine.reelPointer() == 118)) {
 		data.byte(kNewlocation) = 45;
 		showGameReel(&routine);
@@ -259,7 +259,7 @@ void DreamGenContext::rockstar(ReelRoutine &routine) {
 	}
 }
 
-void DreamGenContext::madmansTelly(ReelRoutine &routine) {
+void DreamBase::madmansTelly(ReelRoutine &routine) {
 	uint16 nextReelPointer = routine.reelPointer() + 1;
 	if (nextReelPointer == 307)
 		nextReelPointer = 300;
@@ -268,7 +268,7 @@ void DreamGenContext::madmansTelly(ReelRoutine &routine) {
 }
 
 
-void DreamGenContext::smokeBloke(ReelRoutine &routine) {
+void DreamBase::smokeBloke(ReelRoutine &routine) {
 	if (data.byte(kRockstardead) == 0) {
 		if (routine.b7 & 128)
 			DreamBase::setLocation(5);
@@ -288,20 +288,20 @@ void DreamGenContext::smokeBloke(ReelRoutine &routine) {
 	addToPeopleList(&routine);
 }
 
-void DreamGenContext::manAsleep(ReelRoutine &routine) {
+void DreamBase::manAsleep(ReelRoutine &routine) {
 	routine.b7 &= 127;
 	showGameReel(&routine);
 	addToPeopleList(&routine);
 }
 
-void DreamGenContext::attendant(ReelRoutine &routine) {
+void DreamBase::attendant(ReelRoutine &routine) {
 	showGameReel(&routine);
 	addToPeopleList(&routine);
 	if (routine.b7 & 128)
 		data.byte(kTalkedtoattendant) = 1;
 }
 
-void DreamGenContext::keeper(ReelRoutine &routine) {
+void DreamBase::keeper(ReelRoutine &routine) {
 	if (data.byte(kKeeperflag) != 0) {
 		// Not waiting
 		addToPeopleList(&routine);
@@ -318,7 +318,7 @@ void DreamGenContext::keeper(ReelRoutine &routine) {
 		routine.b7 = data.byte(kDreamnumber);
 }
 
-void DreamGenContext::drunk(ReelRoutine &routine) {
+void DreamBase::drunk(ReelRoutine &routine) {
 	if (data.byte(kGeneraldead))
 		return;
 	routine.b7 &= 127;
@@ -326,7 +326,7 @@ void DreamGenContext::drunk(ReelRoutine &routine) {
 	addToPeopleList(&routine);
 }
 
-void DreamGenContext::interviewer(ReelRoutine &routine) {
+void DreamBase::interviewer(ReelRoutine &routine) {
 	if (data.word(kReeltowatch) == 68)
 		routine.incReelPointer();
 
@@ -336,7 +336,7 @@ void DreamGenContext::interviewer(ReelRoutine &routine) {
 	showGameReel(&routine);
 }
 
-void DreamGenContext::drinker(ReelRoutine &routine) {
+void DreamBase::drinker(ReelRoutine &routine) {
 	if (checkSpeed(routine)) {
 		routine.incReelPointer();
 
@@ -349,7 +349,7 @@ void DreamGenContext::drinker(ReelRoutine &routine) {
 	addToPeopleList(&routine);
 }
 
-void DreamGenContext::alleyBarkSound(ReelRoutine &routine) {
+void DreamBase::alleyBarkSound(ReelRoutine &routine) {
 	uint16 prevReelPointer = routine.reelPointer() - 1;
 	if (prevReelPointer == 0) {
 		playChannel1(14);
@@ -359,7 +359,7 @@ void DreamGenContext::alleyBarkSound(ReelRoutine &routine) {
 	}
 }
 
-void DreamGenContext::introMagic1(ReelRoutine &routine) {
+void DreamBase::introMagic1(ReelRoutine &routine) {
 	if (checkSpeed(routine)) {
 		uint16 nextReelPointer = routine.reelPointer() + 1;
 		if (nextReelPointer == 145)
@@ -377,7 +377,7 @@ void DreamGenContext::introMagic1(ReelRoutine &routine) {
 	showGameReel(&routine);
 }
 
-void DreamGenContext::introMagic2(ReelRoutine &routine) {
+void DreamBase::introMagic2(ReelRoutine &routine) {
 	if (checkSpeed(routine)) {
 		uint16 nextReelPointer = routine.reelPointer() + 1;
 		if (nextReelPointer == 216)
@@ -387,7 +387,7 @@ void DreamGenContext::introMagic2(ReelRoutine &routine) {
 	showGameReel(&routine);
 }
 
-void DreamGenContext::introMagic3(ReelRoutine &routine) {
+void DreamBase::introMagic3(ReelRoutine &routine) {
 	if (checkSpeed(routine)) {
 		uint16 nextReelPointer = routine.reelPointer() + 1;
 		if (nextReelPointer == 218)
@@ -398,7 +398,7 @@ void DreamGenContext::introMagic3(ReelRoutine &routine) {
 	routine.mapX = data.byte(kMapx);
 }
 
-void DreamGenContext::candles1(ReelRoutine &routine) {
+void DreamBase::candles1(ReelRoutine &routine) {
 	if (checkSpeed(routine)) {
 		uint16 nextReelPointer = routine.reelPointer() + 1;
 		if (nextReelPointer == 44)
@@ -408,7 +408,7 @@ void DreamGenContext::candles1(ReelRoutine &routine) {
 	showGameReel(&routine);
 }
 
-void DreamGenContext::candles2(ReelRoutine &routine) {
+void DreamBase::candles2(ReelRoutine &routine) {
 	if (checkSpeed(routine)) {
 		uint16 nextReelPointer = routine.reelPointer() + 1;
 		if (nextReelPointer == 238)
@@ -418,7 +418,7 @@ void DreamGenContext::candles2(ReelRoutine &routine) {
 	showGameReel(&routine);
 }
 
-void DreamGenContext::smallCandle(ReelRoutine &routine) {
+void DreamBase::smallCandle(ReelRoutine &routine) {
 	if (checkSpeed(routine)) {
 		uint16 nextReelPointer = routine.reelPointer() + 1;
 		if (nextReelPointer == 37)
@@ -428,10 +428,10 @@ void DreamGenContext::smallCandle(ReelRoutine &routine) {
 	showGameReel(&routine);
 }
 
-void DreamGenContext::introMusic(ReelRoutine &routine) {
+void DreamBase::introMusic(ReelRoutine &routine) {
 }
 
-void DreamGenContext::candles(ReelRoutine &routine) {
+void DreamBase::candles(ReelRoutine &routine) {
 	if (checkSpeed(routine)) {
 		uint16 nextReelPointer = routine.reelPointer() + 1;
 		if (nextReelPointer == 167)
@@ -441,7 +441,7 @@ void DreamGenContext::candles(ReelRoutine &routine) {
 	showGameReel(&routine);
 }
 
-void DreamGenContext::gates(ReelRoutine &routine) {
+void DreamBase::gates(ReelRoutine &routine) {
 	if (checkSpeed(routine)) {
 		uint16 nextReelPointer = routine.reelPointer() + 1;
 		if (nextReelPointer == 116)
@@ -458,7 +458,7 @@ void DreamGenContext::gates(ReelRoutine &routine) {
 	showGameReel(&routine);
 }
 
-void DreamGenContext::security(ReelRoutine &routine) {
+void DreamBase::security(ReelRoutine &routine) {
 	if (routine.reelPointer() == 32) {
 		if (data.byte(kLastweapon) == 1) {
 			data.word(kWatchingtime) = 10;
@@ -478,7 +478,7 @@ void DreamGenContext::security(ReelRoutine &routine) {
 	addToPeopleList(&routine);
 }
 
-void DreamGenContext::edenInBath(ReelRoutine &routine) {
+void DreamBase::edenInBath(ReelRoutine &routine) {
 	if (data.byte(kGeneraldead) == 0 || data.byte(kSartaindead) != 0)
 		return;
 
@@ -486,7 +486,7 @@ void DreamGenContext::edenInBath(ReelRoutine &routine) {
 	addToPeopleList(&routine);
 }
 
-void DreamGenContext::louis(ReelRoutine &routine) {
+void DreamBase::louis(ReelRoutine &routine) {
 	if (data.byte(kRockstardead) != 0)
 		return;
 
@@ -494,26 +494,26 @@ void DreamGenContext::louis(ReelRoutine &routine) {
 	addToPeopleList(&routine);
 }
 
-void DreamGenContext::handClap(ReelRoutine &routine) {
+void DreamBase::handClap(ReelRoutine &routine) {
 }
 
-void DreamGenContext::carParkDrip(ReelRoutine &routine) {
+void DreamBase::carParkDrip(ReelRoutine &routine) {
 	if (!checkSpeed(routine))
 		return; // cantdrip2
 
 	playChannel1(14);
 }
 
-void DreamGenContext::foghornSound(ReelRoutine &routine) {
+void DreamBase::foghornSound(ReelRoutine &routine) {
 	if (engine->randomNumber() == 198)
 		playChannel1(13);
 }
 
-void DreamGenContext::train(ReelRoutine &routine) {
+void DreamBase::train(ReelRoutine &routine) {
 	// The original code has logic for this, but it is disabled
 }
 
-void DreamGenContext::louisChair(ReelRoutine &routine) {
+void DreamBase::louisChair(ReelRoutine &routine) {
 	if (data.byte(kRockstardead) == 0)
 		return; // notlouis2
 
@@ -535,7 +535,7 @@ void DreamGenContext::louisChair(ReelRoutine &routine) {
 	addToPeopleList(&routine);
 }
 
-void DreamGenContext::bossMan(ReelRoutine &routine) {
+void DreamBase::bossMan(ReelRoutine &routine) {
 	if (checkSpeed(routine)) {
 		uint16 nextReelPointer = routine.reelPointer() + 1;
 
@@ -561,7 +561,7 @@ void DreamGenContext::bossMan(ReelRoutine &routine) {
 		data.byte(kTalkedtoboss) = 1;
 }
 
-void DreamGenContext::priest(ReelRoutine &routine) {
+void DreamBase::priest(ReelRoutine &routine) {
 	if (routine.reelPointer() == 8)
 		return; // priestspoken
 
@@ -582,7 +582,7 @@ void DreamBase::priestText(ReelRoutine &routine) {
 	setupTimedUse((reel >> 1) + 50, 54, 1, 72, 80);
 }
 
-void DreamGenContext::monkAndRyan(ReelRoutine &routine) {
+void DreamBase::monkAndRyan(ReelRoutine &routine) {
 	if (checkSpeed(routine)) {
 		uint16 nextReelPointer = routine.reelPointer() + 1;
 		if (nextReelPointer == 83) {
@@ -602,7 +602,7 @@ void DreamGenContext::monkAndRyan(ReelRoutine &routine) {
 	showGameReel(&routine);
 }
 
-void DreamGenContext::copper(ReelRoutine &routine) {
+void DreamBase::copper(ReelRoutine &routine) {
 	if (checkSpeed(routine)) {
 		uint16 nextReelPointer = routine.reelPointer() + 1;
 		if (nextReelPointer == 94) {
@@ -620,7 +620,7 @@ void DreamGenContext::copper(ReelRoutine &routine) {
 	addToPeopleList(&routine);
 }
 
-void DreamGenContext::introMonks1(ReelRoutine &routine) {
+void DreamBase::introMonks1(ReelRoutine &routine) {
 	if (checkSpeed(routine)) {
 		uint16 nextReelPointer = routine.reelPointer() + 1;
 
@@ -650,16 +650,12 @@ void DreamGenContext::introMonks1(ReelRoutine &routine) {
 	routine.mapY = data.byte(kMapy);
 }
 
-void DreamGenContext::introMonks2(ReelRoutine &routine) {
+void DreamBase::introMonks2(ReelRoutine &routine) {
 	if (checkSpeed(routine)) {
 		uint16 nextReelPointer = routine.reelPointer() + 1;
 		if (nextReelPointer == 87) {
 			data.byte(kIntrocount)++;
-			push(es);
-			push(bx);
 			monks2text();
-			bx = pop();
-			es = pop();
 
 			if (data.byte(kIntrocount), 19)
 				nextReelPointer = 87;
@@ -669,11 +665,7 @@ void DreamGenContext::introMonks2(ReelRoutine &routine) {
 
 		if (nextReelPointer == 110) {
 			data.byte(kIntrocount)++;
-			push(es);
-			push(bx);
 			monks2text();
-			bx = pop();
-			es = pop();
 		
 			if (data.byte(kIntrocount) == 35)
 				nextReelPointer = 111;
@@ -691,7 +683,7 @@ void DreamGenContext::introMonks2(ReelRoutine &routine) {
 	showGameReel(&routine);
 }
 
-void DreamGenContext::soldier1(ReelRoutine &routine) {
+void DreamBase::soldier1(ReelRoutine &routine) {
 	if (routine.reelPointer() != 0) {
 		data.word(kWatchingtime) = 10;
 		if (routine.reelPointer() == 30) {
@@ -714,7 +706,7 @@ void DreamGenContext::soldier1(ReelRoutine &routine) {
 	addToPeopleList(&routine);
 }
 
-void DreamGenContext::receptionist(ReelRoutine &routine) {
+void DreamBase::receptionist(ReelRoutine &routine) {
 	if (checkSpeed(routine)) {
 		if (data.byte(kCardpassflag) == 1) {
 			// Set card
@@ -751,7 +743,7 @@ void DreamGenContext::receptionist(ReelRoutine &routine) {
 		data.byte(kTalkedtorecep) = 1;
 }
 
-void DreamGenContext::bartender(ReelRoutine &routine) {
+void DreamBase::bartender(ReelRoutine &routine) {
 	if (checkSpeed(routine)) {
 		if (routine.reelPointer() == 86) {
 			if (engine->randomNumber() >= 18)
@@ -772,7 +764,7 @@ void DreamGenContext::bartender(ReelRoutine &routine) {
 	addToPeopleList(&routine);
 }
 
-void DreamGenContext::heavy(ReelRoutine &routine) {
+void DreamBase::heavy(ReelRoutine &routine) {
 	routine.b7 &= 127;
 	if (routine.reelPointer() != 43) {
 		data.word(kWatchingtime) = 10;
@@ -796,7 +788,7 @@ void DreamGenContext::heavy(ReelRoutine &routine) {
 	addToPeopleList(&routine);
 }
 
-void DreamGenContext::helicopter(ReelRoutine &routine) {
+void DreamBase::helicopter(ReelRoutine &routine) {
 	if (routine.reelPointer() == 203) {
 		// Won helicopter
 		data.byte(kPointermode) = 0;
@@ -881,7 +873,7 @@ void DreamGenContext::mugger(ReelRoutine &routine) {
 	}
 }
 
-void DreamGenContext::businessMan(ReelRoutine &routine) {
+void DreamBase::businessMan(ReelRoutine &routine) {
 	data.byte(kPointermode) = 0;
 	data.word(kWatchingtime) = 2;
 	if (routine.reelPointer() == 2) {
@@ -945,7 +937,7 @@ void DreamGenContext::businessMan(ReelRoutine &routine) {
 	}
 }
 
-void DreamGenContext::endGameSeq(ReelRoutine &routine) {
+void DreamBase::endGameSeq(ReelRoutine &routine) {
 	if (checkSpeed(routine)) {
 		uint16 nextReelPointer = routine.reelPointer() + 1;
 		if (nextReelPointer == 51 && data.byte(kIntrocount) != 140) {
@@ -956,13 +948,7 @@ void DreamGenContext::endGameSeq(ReelRoutine &routine) {
 
 		routine.setReelPointer(nextReelPointer);
 		if (nextReelPointer == 134) {
-			push(es);
-			push(bx);
-			push(ax);
 			fadeScreenDownHalf();
-			ax = pop();
-			bx = pop();
-			es = pop();
 		} else if (nextReelPointer == 324) {
 			fadeScreenDowns();
 			data.byte(kVolumeto) = 7;
@@ -982,7 +968,7 @@ void DreamGenContext::endGameSeq(ReelRoutine &routine) {
 	}
 }
 
-void DreamGenContext::poolGuard(ReelRoutine &routine) {
+void DreamBase::poolGuard(ReelRoutine &routine) {
 	if (routine.reelPointer() == 214 || routine.reelPointer() == 258) {
 		// Combat over 2
 		showGameReel(&routine);
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index 79b2244..c3d72a6 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -91,8 +91,6 @@
 	void commandWithOb();
 	void commandWithOb(uint8 command, uint8 type, uint8 index);
 	void updatePeople();
-	void madman(ReelRoutine &routine);
-	void madmanText();
 	bool addAlong(const uint8 *mapFlags);
 	bool addLength(const uint8 *mapFlags);
 	void getDimension();
@@ -274,53 +272,7 @@
 	void nextFolder();
 	void lastFolder();
 	void drawFloor();
-	void sparkyDrip(ReelRoutine &routine);
-	void genericPerson(ReelRoutine &routine);
-	void gamer(ReelRoutine &routine);
-	void eden(ReelRoutine &routine);
-	void sparky(ReelRoutine &routine);
-	void rockstar(ReelRoutine &routine);
-	void madmansTelly(ReelRoutine &routine);
-	void smokeBloke(ReelRoutine &routine);
-	void manAsleep(ReelRoutine &routine);
-	void drunk(ReelRoutine &routine);
-	void introMagic1(ReelRoutine &routine);
-	void introMagic2(ReelRoutine &routine);
-	void introMagic3(ReelRoutine &routine);
-	void introMusic(ReelRoutine &routine);
-	void candles(ReelRoutine &routine);
-	void candles1(ReelRoutine &routine);
-	void candles2(ReelRoutine &routine);
-	void smallCandle(ReelRoutine &routine);
-	void gates(ReelRoutine &routine);
-	void security(ReelRoutine &routine);
-	void edenInBath(ReelRoutine &routine);
-	void louis(ReelRoutine &routine);
-	void handClap(ReelRoutine &routine);
-	void carParkDrip(ReelRoutine &routine);
-	void foghornSound(ReelRoutine &routine);
-	void train(ReelRoutine &routine);
-	void attendant(ReelRoutine &routine);
-	void keeper(ReelRoutine &routine);
-	void interviewer(ReelRoutine &routine);
-	void drinker(ReelRoutine &routine);
-	void alleyBarkSound(ReelRoutine &routine);
-	void louisChair(ReelRoutine &routine);
-	void bossMan(ReelRoutine &routine);
-	void priest(ReelRoutine &routine);
-	void monkAndRyan(ReelRoutine &routine);
-	void copper(ReelRoutine &routine);
-	void introMonks1(ReelRoutine &routine);
-	void introMonks2(ReelRoutine &routine);
-	void soldier1(ReelRoutine &routine);
-	void receptionist(ReelRoutine &routine);
-	void bartender(ReelRoutine &routine);
-	void heavy(ReelRoutine &routine);
-	void helicopter(ReelRoutine &routine);
 	void mugger(ReelRoutine &routine);
-	void businessMan(ReelRoutine &routine);
-	void endGameSeq(ReelRoutine &routine);
-	void poolGuard(ReelRoutine &routine);
 	void singleKey(uint8 key, uint16 x, uint16 y);
 	void loadSaveBox();
 	uint8 nextSymbol(uint8 symbol);


Commit: 1d09f7c12a79416349cb33a7de88792c85ada5c1
    https://github.com/scummvm/scummvm/commit/1d09f7c12a79416349cb33a7de88792c85ada5c1
Author: Max Horn (max at quendi.de)
Date: 2011-12-16T09:10:27-08:00

Commit Message:
DREAMWEB: Some more cleanup

Changed paths:
    engines/dreamweb/dreambase.h
    engines/dreamweb/stubs.cpp
    engines/dreamweb/stubs.h



diff --git a/engines/dreamweb/dreambase.h b/engines/dreamweb/dreambase.h
index e64a41d..20cafcb 100644
--- a/engines/dreamweb/dreambase.h
+++ b/engines/dreamweb/dreambase.h
@@ -381,6 +381,13 @@ public:
 	void dealWithSpecial(uint8 firstParam, uint8 secondParam);
 	void plotReel(uint16 &reelPointer);
 	void setupTimedTemp(uint8 textIndex, uint8 voiceIndex, uint8 x, uint8 y, uint16 countToTimed, uint16 timeCount);
+	void getUnderTimed();
+	void putUnderTimed();
+	void dumpTextLine();
+	void useTimedText();
+	void dumpTimedText();
+	void getTime();
+	void doChange(uint8 index, uint8 value, uint8 type);
 
 	// from use.cpp
 	void placeFreeObject(uint8 index);
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index 352dec3..3a9785e 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -801,10 +801,6 @@ void DreamGenContext::seeCommandTail() {
 	data.byte(kBrightness) = 1;
 }
 
-void DreamGenContext::randomNumber() {
-	al = engine->randomNumber();
-}
-
 void DreamGenContext::quickQuit() {
 	engine->quit();
 }
@@ -829,7 +825,7 @@ uint16 DreamBase::readMouseState() {
 	return state;
 }
 
-void DreamGenContext::dumpTextLine() {
+void DreamBase::dumpTextLine() {
 	if (data.byte(kNewtextline) != 1)
 		return;
 	data.byte(kNewtextline) = 0;
@@ -840,22 +836,18 @@ void DreamGenContext::dumpTextLine() {
 	multiDump(x, y, 228, 13);
 }
 
-void DreamGenContext::getUnderTimed() {
+void DreamBase::getUnderTimed() {
 	uint16 y = data.byte(kTimedy);
 	if (data.byte(kForeignrelease))
 		y -= 3;
-	ds = data.word(kBuffers);
-	si = kUndertimedtext;
-	multiGet(ds.ptr(si, 0), data.byte(kTimedx), y, 240, kUndertimedysize);
+	multiGet(getSegment(data.word(kBuffers)).ptr(kUndertimedtext, 0), data.byte(kTimedx), y, 240, kUndertimedysize);
 }
 
-void DreamGenContext::putUnderTimed() {
+void DreamBase::putUnderTimed() {
 	uint16 y = data.byte(kTimedy);
 	if (data.byte(kForeignrelease))
 		y -= 3;
-	ds = data.word(kBuffers);
-	si = kUndertimedtext;
-	multiPut(ds.ptr(si, 0), data.byte(kTimedx), y, 240, kUndertimedysize);
+	multiPut(getSegment(data.word(kBuffers)).ptr(kUndertimedtext, 0), data.byte(kTimedx), y, 240, kUndertimedysize);
 }
 
 void DreamBase::getUnderCentre() {
@@ -893,7 +885,7 @@ void DreamGenContext::processTrigger() {
 	}
 }
 
-void DreamGenContext::useTimedText() {
+void DreamBase::useTimedText() {
 	if (data.word(kTimecount) == 0)
 		return;
 	--data.word(kTimecount);
@@ -908,9 +900,7 @@ void DreamGenContext::useTimedText() {
 	else if (data.word(kTimecount) > data.word(kCounttotimed))
 		return;
 
-	es = data.word(kTimedseg);
-	si = data.word(kTimedoffset);
-	const uint8 *string = es.ptr(si, 0);
+	const uint8 *string = getSegment(data.word(kTimedseg)).ptr(data.word(kTimedoffset), 0);
 	uint16 y = data.byte(kTimedy);
 	printDirect(&string, data.byte(kTimedx), &y, 237, true);
 	data.byte(kNeedtodumptimed) = 1;
@@ -943,7 +933,7 @@ void DreamBase::setupTimedTemp(uint8 textIndex, uint8 voiceIndex, uint8 x, uint8
 	debug(1, "setupTimedTemp: (%d, %d) => '%s'", textIndex, voiceIndex, string);
 }
 
-void DreamGenContext::dumpTimedText() {
+void DreamBase::dumpTimedText() {
 	if (data.byte(kNeedtodumptimed) != 1)
 		return;
 	uint8 y = data.byte(kTimedy);
@@ -954,16 +944,13 @@ void DreamGenContext::dumpTimedText() {
 	data.byte(kNeedtodumptimed) = 0;
 }
 
-void DreamGenContext::getTime() {
+void DreamBase::getTime() {
 	TimeDate t;
 	g_system->getTimeAndDate(t);
 	debug(1, "\tgettime: %02d:%02d:%02d", t.tm_hour, t.tm_min, t.tm_sec);
-	ch = t.tm_hour;
-	cl = t.tm_min;
-	dh = t.tm_sec;
-	data.byte(kSecondcount) = dh;
-	data.byte(kMinutecount) = cl;
-	data.byte(kHourcount) = ch;
+	data.byte(kSecondcount) = t.tm_sec;
+	data.byte(kMinutecount) = t.tm_min;
+	data.byte(kHourcount) = t.tm_hour;
 }
 
 uint16 DreamBase::allocateMem(uint16 paragraphs) {
@@ -979,12 +966,6 @@ void DreamBase::deallocateMem(uint16 segment) {
 	debug(1, "deallocating segment %04x", segment);
 	deallocateSegment(segment);
 
-
-	// FIXME: The following line used to be enabled with the comment: "fixing
-	// invalid entries in the sprite table"
-	// So if there are regressions with sprites, we may want to investigate this
-	// closer.
-//	es = data;
 	uint tsize = 16 * 32;
 	uint16 bseg = data.word(kBuffers);
 	if (!bseg)
@@ -1119,10 +1100,6 @@ void DreamGenContext::startLoading(const Room &room) {
 	setAllChanges();
 	autoAppear();
 //	const Room &newRoom = g_roomData[data.byte(kNewlocation)];
-	bx = 0x7fff; // TODO: bx used to be set to the offset of newRoom
-	             // It seems to be unused (like newRoom itself), but set it
-	             // to an invalid value to catch any missed use of it.
-	             // (The push/pop of bx below is likely also unnecessary)
 	data.byte(kLastweapon) = (uint8)-1;
 	data.byte(kMandead) = 0;
 	data.word(kLookcounter) = 160;
@@ -1295,10 +1272,6 @@ const uint8 *DreamGenContext::findObName(uint8 type, uint8 index) {
 	}
 }
 
-void DreamGenContext::copyName() {
-	copyName(ah, al, data.ptr(di, 0));
-}
-
 void DreamGenContext::copyName(uint8 type, uint8 index, uint8 *dst) {
 	const uint8 *src = findObName(type, index);
 	size_t i;
@@ -1419,7 +1392,7 @@ SetObject *DreamBase::getSetAd(uint8 index) {
 	return (SetObject *)getSegment(data.word(kSetdat)).ptr(0, 0) + index;
 }
 
-void DreamGenContext::doChange(uint8 index, uint8 value, uint8 type) {
+void DreamBase::doChange(uint8 index, uint8 value, uint8 type) {
 	if (type == 0) { //object
 		getSetAd(index)->mapad[0] = value;
 	} else if (type == 1) { //freeObject
@@ -1427,9 +1400,9 @@ void DreamGenContext::doChange(uint8 index, uint8 value, uint8 type) {
 		if (freeObject->mapad[0] == 0xff)
 			freeObject->mapad[0] = value;
 	} else { //path
-		bx = kPathdata + (type - 100) * 144 + index * 8;
-		es = data.word(kReels);
-		es.byte(bx+6) = value;
+//		getSegment(data.word(kReels)).byte(kPathdata + (type - 100) * 144 + index * 8 + 6) = value;
+		PathNode *paths = (PathNode *)getSegment(data.word(kReels)).ptr(kPathdata + 144 * (type - 100), 0);
+		paths[index].on = value;
 	}
 }
 
@@ -3922,11 +3895,8 @@ void DreamGenContext::talk() {
 			break;
 	} while (!data.byte(kGetback));
 
-	bx = data.word(kPersondata);
-	es = cs;
-
 	if (data.byte(kTalkpos) >= 4)
-		es.byte(bx+7) |= 128;
+		data.byte(data.word(kPersondata)+7) |= 128;
 
 	redrawMainScrn();
 	workToScreenM();
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index c3d72a6..ddaa66f 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -46,7 +46,6 @@
 	void readCityPic();
 	void readDestIcon();
 	void seeCommandTail();
-	void randomNumber();
 	void quickQuit2();
 	void printDirect();
 	uint8 printDirect(const uint8** string, uint16 x, uint16 *y, uint8 maxWidth, bool centered) {
@@ -55,11 +54,6 @@
 	uint8 printDirect(const uint8* string, uint16 x, uint16 y, uint8 maxWidth, bool centered) {
 		return DreamBase::printDirect(string, x, y, maxWidth, centered);
 	}
-	void useTimedText();
-	void dumpTimedText();
-	void getUnderTimed();
-	void putUnderTimed();
-	void dumpTextLine();
 	void startLoading(const Room &room);
 	void showFrame();
 	void showFrame(const Frame *frameData, uint16 x, uint16 y, uint16 frameNumber, uint8 effectsFlag, uint8 *width, uint8 *height) {
@@ -86,7 +80,6 @@
 	void checkIfEx();
 	bool checkIfEx(uint8 x, uint8 y);
 	const uint8 *findObName(uint8 type, uint8 index);
-	void copyName();
 	void copyName(uint8 type, uint8 index, uint8 *dst);
 	void commandWithOb();
 	void commandWithOb(uint8 command, uint8 type, uint8 index);
@@ -121,7 +114,6 @@
 		return DreamBase::getSetAd(index);
 	}
 	void setAllChanges();
-	void doChange(uint8 index, uint8 value, uint8 type);
 	void deleteTaken();
 	void showAllFree();
 	void showAllEx();
@@ -350,7 +342,6 @@
 	bool loadSpeech(byte type1, int idx1, byte type2, int idx2) {
 		return DreamBase::loadSpeech(type1, idx1, type2, idx2);
 	}
-	void getTime();
 	void set16ColPalette();
 	void showSaveOps();
 	void showLoadOps();


Commit: 70fd1b604342863778e2cac3e667f4ee2de42b82
    https://github.com/scummvm/scummvm/commit/70fd1b604342863778e2cac3e667f4ee2de42b82
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2011-12-16T10:54:31-08:00

Commit Message:
Merge pull request #144 from fingolfin/dreamweb-cleanup

Dreamweb cleanup

Changed paths:
    devtools/tasmrecover/tasm-recover
    engines/dreamweb/dreambase.h
    engines/dreamweb/dreamgen.cpp
    engines/dreamweb/dreamgen.h
    engines/dreamweb/keypad.cpp
    engines/dreamweb/pathfind.cpp
    engines/dreamweb/people.cpp
    engines/dreamweb/sprite.cpp
    engines/dreamweb/stubs.cpp
    engines/dreamweb/stubs.h
    engines/dreamweb/use.cpp
    engines/dreamweb/vgafades.cpp









More information about the Scummvm-git-logs mailing list