[Scummvm-cvs-logs] scummvm master -> 1ba4f0a1a8965ee141987693770d2bcd3b74c292

bluegr md5 at scummvm.org
Mon Dec 26 21:32:55 CET 2011


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

Summary:
1ba4f0a1a8 Revert "DREAMWEB: Remove dead code and move most functions to DreamBase"


Commit: 1ba4f0a1a8965ee141987693770d2bcd3b74c292
    https://github.com/scummvm/scummvm/commit/1ba4f0a1a8965ee141987693770d2bcd3b74c292
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2011-12-26T12:31:50-08:00

Commit Message:
Revert "DREAMWEB: Remove dead code and move most functions to DreamBase"

This reverts commit 4c66f74b58e9a2c191f22a37f485047dd19be131.

These functions aren't ready to be moved yet till the remaining two are
finished, and they're so crossreferenced that the safest thing to do is
revert this commit and break it down to smaller chunks

Changed paths:
    engines/dreamweb/dreambase.h
    engines/dreamweb/monitor.cpp
    engines/dreamweb/object.cpp
    engines/dreamweb/print.cpp
    engines/dreamweb/stubs.cpp
    engines/dreamweb/stubs.h
    engines/dreamweb/use.cpp
    engines/dreamweb/vgagrafx.cpp



diff --git a/engines/dreamweb/dreambase.h b/engines/dreamweb/dreambase.h
index a4e3adf..c17a15e 100644
--- a/engines/dreamweb/dreambase.h
+++ b/engines/dreamweb/dreambase.h
@@ -595,41 +595,6 @@ public:
 	void errorMessage2();
 	void errorMessage3();
 	void decide();
-	void screenUpdate();
-	void mainScreen();
-	void walkAndExamine();
-	void autoLook();
-	void dumpWatch();
-	void watchCount();
-	void afterNewRoom();
-	void examineOb(bool examineAgain = true);
-	void walkIntoRoom();
-	void doLook();
-	void startup1();
-	void quickQuit();
-	void readOneBlock();
-	void seeCommandTail();
-	void quickQuit2();
-	void width160();
-	bool checkIfPerson(uint8 x, uint8 y);
-	bool checkIfFree(uint8 x, uint8 y);
-	bool checkIfEx(uint8 x, uint8 y);
-	void obName(uint8 command, uint8 commandType);
-	bool checkIfSet(uint8 x, uint8 y);
-	void readSetData();
-	void look();
-	void useKey();
-	void inventory();
-	void zoomOnOff();
-	void initialInv();
-	void allPointer();
-	void madmanRun();
-	void showGun();
-	void triggerMessage(uint16 index);
-	void processTrigger();
-	void identifyOb();
-	void signOn();
-	void searchForFiles(uint16 segment);
 
 	// from talk.cpp
 	void talk();
diff --git a/engines/dreamweb/monitor.cpp b/engines/dreamweb/monitor.cpp
index 5e84c82..0caf4b7 100644
--- a/engines/dreamweb/monitor.cpp
+++ b/engines/dreamweb/monitor.cpp
@@ -233,7 +233,7 @@ void DreamBase::input() {
 }
 
 void DreamGenContext::makeCaps() {
-	al = DreamBase::makeCaps(al);
+	al = makeCaps(al);
 }
 
 byte DreamBase::makeCaps(byte c) {
@@ -312,6 +312,10 @@ void DreamBase::accessLightOff() {
 	multiDump(74, 182, 12, 8);
 }
 
+void DreamGenContext::randomAccess() {
+	randomAccess(cx);
+}
+
 void DreamBase::randomAccess(uint16 count) {
 	for (uint16 i = 0; i < count; ++i) {
 		vSync();
@@ -326,7 +330,7 @@ void DreamBase::randomAccess(uint16 count) {
 }
 
 void DreamGenContext::monMessage() {
-	DreamBase::monMessage(al);
+	monMessage(al);
 }
 
 void DreamBase::monMessage(uint8 index) {
@@ -547,7 +551,7 @@ void DreamGenContext::read() {
 	}
 }
 
-void DreamBase::signOn() {
+void DreamGenContext::signOn() {
 	const char *name = parser();
 
 	int8 foundIndex = -1;
@@ -605,7 +609,7 @@ void DreamBase::signOn() {
 	}
 }
 
-void DreamBase::searchForFiles(uint16 segment) {
+void DreamGenContext::searchForFiles(uint16 segment) {
 	const char *filesString = (const char *)getSegment(segment).ptr(kTextstart, 0);
 	byte curChar;
 
diff --git a/engines/dreamweb/object.cpp b/engines/dreamweb/object.cpp
index 124a4f9..4fa21e7 100644
--- a/engines/dreamweb/object.cpp
+++ b/engines/dreamweb/object.cpp
@@ -78,6 +78,10 @@ void DreamBase::makeWorn(DynObject *object) {
 	object->id[1] = 'E'-'A';
 }
 
+void DreamGenContext::obToInv() {
+	obToInv(al, ah, di, bx);
+}
+
 void DreamBase::obToInv(uint8 index, uint8 flag, uint16 x, uint16 y) {
 	showFrame(engine->icons1(), x - 2, y - 1, 10, 0);
 	if (index == 0xff)
@@ -116,7 +120,7 @@ void DreamBase::obIcons() {
 	showFrame(engine->icons2(), 260, 1, 1, 0);
 }
 
-void DreamBase::examineOb(bool examineAgain) {
+void DreamGenContext::examineOb(bool examineAgain) {
 	data.byte(kPointermode) = 0;
 	data.word(kTimecount) = 0;
 
@@ -213,7 +217,7 @@ void DreamBase::examineOb(bool examineAgain) {
 	data.byte(kOpenedob) = 255;
 }
 
-void DreamBase::inventory() {
+void DreamGenContext::inventory() {
 	if (data.byte(kMandead) == 1 || data.word(kWatchingtime) != 0) {
 		blank();
 		return;
@@ -308,7 +312,7 @@ void DreamBase::openOb() {
 	_openChangeSize = getOpenedSlotCount() * kItempicsize + kInventx;
 }
 
-void DreamBase::identifyOb() {
+void DreamGenContext::identifyOb() {
 	if (data.word(kWatchingtime) != 0) {
 		blank();
 		return;
diff --git a/engines/dreamweb/print.cpp b/engines/dreamweb/print.cpp
index d19a193..0191aa8 100644
--- a/engines/dreamweb/print.cpp
+++ b/engines/dreamweb/print.cpp
@@ -120,6 +120,15 @@ uint8 DreamBase::printSlow(const uint8 *string, uint16 x, uint16 y, uint8 maxWid
 	} while (true);
 }
 
+void DreamGenContext::printDirect() {
+	uint16 y = bx;
+	const uint8 *initialString = es.ptr(si, 0);
+	const uint8 *string = initialString;
+	al = DreamBase::printDirect(&string, di, &y, dl, (bool)(dl & 1));
+	si += (string - initialString);
+	bx = y;
+}
+
 uint8 DreamBase::printDirect(const uint8* string, uint16 x, uint16 y, uint8 maxWidth, bool centered) {
 	return printDirect(&string, x, &y, maxWidth, centered);
 }
@@ -207,7 +216,7 @@ uint16 DreamBase::waitFrames() {
 void DreamGenContext::monPrint() {
 	uint16 originalBx = bx;
 	const char *string = (const char *)es.ptr(bx, 0);
-	const char *nextString = DreamBase::monPrint(string);
+	const char *nextString = monPrint(string);
 	bx = originalBx + (nextString - string);
 }
 
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index 759f608..ca98337 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -651,7 +651,7 @@ bool DreamBase::quitRequested() {
 	return data.byte(kQuitrequested);
 }
 
-void DreamBase::screenUpdate() {
+void DreamGenContext::screenUpdate() {
 	newPlace();
 	mainScreen();
 	if (quitRequested())
@@ -722,7 +722,7 @@ void DreamBase::startup() {
 	atmospheres();
 }
 
-void DreamBase::startup1() {
+void DreamGenContext::startup1() {
 	clearPalette();
 	data.byte(kThroughdoor) = 0;
 
@@ -789,15 +789,15 @@ void DreamBase::hangOnCurs(uint16 frameCount) {
 	}
 }
 
-void DreamBase::seeCommandTail() {
+void DreamGenContext::seeCommandTail() {
 	data.byte(kBrightness) = 1;
 }
 
-void DreamBase::quickQuit() {
+void DreamGenContext::quickQuit() {
 	engine->quit();
 }
 
-void DreamBase::quickQuit2() {
+void DreamGenContext::quickQuit2() {
 	engine->quit();
 }
 
@@ -842,7 +842,7 @@ void DreamBase::putUnderTimed() {
 		multiPut(_underTimedText, data.byte(kTimedx), data.byte(kTimedy), 240, kUnderTimedTextSizeY);
 }
 
-void DreamBase::triggerMessage(uint16 index) {
+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);
@@ -856,7 +856,7 @@ void DreamBase::triggerMessage(uint16 index) {
 	data.byte(kLasttrigger) = 0;
 }
 
-void DreamBase::processTrigger() {
+void DreamGenContext::processTrigger() {
 	if (data.byte(kLasttrigger) == '1') {
 		setLocation(8);
 		triggerMessage(45);
@@ -1145,7 +1145,7 @@ void DreamBase::commandOnly(uint8 command) {
 	data.byte(kNewtextline) = 1;
 }
 
-bool DreamBase::checkIfPerson(uint8 x, uint8 y) {
+bool DreamGenContext::checkIfPerson(uint8 x, uint8 y) {
 	Common::List<People>::iterator i;
 	for (i = _peopleList.begin(); i != _peopleList.end(); ++i) {
 		People &people = *i;
@@ -1172,7 +1172,7 @@ bool DreamBase::checkIfPerson(uint8 x, uint8 y) {
 	return false;
 }
 
-bool DreamBase::checkIfFree(uint8 x, uint8 y) {
+bool DreamGenContext::checkIfFree(uint8 x, uint8 y) {
 	Common::List<ObjPos>::const_iterator i;
 	for (i = _freeList.reverse_begin(); i != _freeList.end(); --i) {
 		const ObjPos &pos = *i;
@@ -1185,7 +1185,7 @@ bool DreamBase::checkIfFree(uint8 x, uint8 y) {
 	return false;
 }
 
-bool DreamBase::checkIfEx(uint8 x, uint8 y) {
+bool DreamGenContext::checkIfEx(uint8 x, uint8 y) {
 	Common::List<ObjPos>::const_iterator i;
 	for (i = _exList.reverse_begin(); i != _exList.end(); --i) {
 		const ObjPos &pos = *i;
@@ -1393,7 +1393,7 @@ void DreamBase::getFlagUnderP(uint8 *flag, uint8 *flagEx) {
 	data.byte(kLastflag) = *flag;
 }
 
-void DreamBase::walkAndExamine() {
+void DreamGenContext::walkAndExamine() {
 	if (!finishedWalking())
 		return;
 	data.byte(kCommandtype) = data.byte(kWalkexamtype);
@@ -1403,7 +1403,7 @@ void DreamBase::walkAndExamine() {
 		examineOb();
 }
 
-void DreamBase::obName(uint8 command, uint8 commandType) {
+void DreamGenContext::obName(uint8 command, uint8 commandType) {
 	if (data.byte(kReasseschanges) == 0) {
 		if ((commandType == data.byte(kCommandtype)) && (command == data.byte(kCommand))) {
 			if (data.byte(kWalkandexam) == 1) {
@@ -1723,7 +1723,7 @@ void DreamBase::showIcon() {
 	}
 }
 
-bool DreamBase::checkIfSet(uint8 x, uint8 y) {
+bool DreamGenContext::checkIfSet(uint8 x, uint8 y) {
 	Common::List<ObjPos>::const_iterator i;
 	for (i = _setList.reverse_begin(); i != _setList.end(); --i) {
 		const ObjPos &pos = *i;
@@ -1862,7 +1862,7 @@ void DreamBase::enterSymbol() {
 	}
 }
 
-void DreamBase::zoomOnOff() {
+void DreamGenContext::zoomOnOff() {
 	if (data.word(kWatchingtime) != 0 || data.byte(kPointermode) == 2) {
 		blank();
 		return;
@@ -1900,7 +1900,7 @@ void DreamBase::sortOutMap() {
 	}
 }
 
-void DreamBase::mainScreen() {
+void DreamGenContext::mainScreen() {
 	data.byte(kInmaparea) = 0;
 	if (data.byte(kWatchon) == 1) {
 		RectWithCallback<DreamGenContext> mainList[] = {
@@ -1937,7 +1937,7 @@ void DreamBase::showWatch() {
 	}
 }
 
-void DreamBase::dumpWatch() {
+void DreamGenContext::dumpWatch() {
 	if (data.byte(kWatchdump) != 1)
 		return;
 	multiDump(256, 21, 40, 12);
@@ -1965,7 +1965,7 @@ void DreamBase::showTime() {
 	showFrame(charset, 267+5, 21, 91*3+20, 0);
 }
 
-void DreamBase::watchCount() {
+void DreamGenContext::watchCount() {
 	if (data.byte(kWatchon) == 0)
 		return;
 	++data.byte(kTimercount);
@@ -2031,7 +2031,7 @@ void DreamBase::loadRoom() {
 	getDimension(&mapXstart, &mapYstart, &mapXsize, &mapYsize);
 }
 
-void DreamBase::readSetData() {
+void DreamGenContext::readSetData() {
 	data.word(kCharset1) = standardLoad("DREAMWEB.C00");
 
 	void *icons1Buffer = standardLoadCPP("DREAMWEB.G00");
@@ -2070,7 +2070,7 @@ void DreamBase::findRoomInLoc() {
 	data.byte(kRoomnum) = roomNum;
 }
 
-void DreamBase::autoLook() {
+void DreamGenContext::autoLook() {
 	if ((data.word(kMousex) != data.word(kOldx)) || (data.word(kMousey) != data.word(kOldy))) {
 		data.word(kLookcounter) = 1000;
 		return;
@@ -2084,7 +2084,7 @@ void DreamBase::autoLook() {
 	doLook();
 }
 
-void DreamBase::look() {
+void DreamGenContext::look() {
 	if (data.word(kWatchingtime) || (data.byte(kPointermode) == 2)) {
 		blank();
 		return;
@@ -2097,7 +2097,7 @@ void DreamBase::look() {
 		doLook();
 }
 
-void DreamBase::doLook() {
+void DreamGenContext::doLook() {
 	createPanel();
 	showIcon();
 	underTextLine();
@@ -2721,7 +2721,7 @@ void DreamBase::pickupOb(uint8 command, uint8 pos) {
 	transferToEx(command);
 }
 
-void DreamBase::initialInv() {
+void DreamGenContext::initialInv() {
 	if (data.byte(kReallocation) != 24)
 		return;
 
@@ -2741,7 +2741,7 @@ void DreamBase::initialInv() {
 	switchRyanOff();
 }
 
-void DreamBase::walkIntoRoom() {
+void DreamGenContext::walkIntoRoom() {
 	if (data.byte(kLocation) == 14 && data.byte(kMapx) == 22) {
 		data.byte(kDestination) = 1;
 		data.byte(kFinaldest) = 1;
@@ -2785,7 +2785,7 @@ void DreamBase::blank() {
 	}
 }
 
-void DreamBase::allPointer() {
+void DreamGenContext::allPointer() {
 	readMouse();
 	showPointer();
 	dumpPointer();
@@ -3050,7 +3050,7 @@ void DreamBase::watchReel() {
 	plotReel(reelPointer);
 }
 
-void DreamBase::afterNewRoom() {
+void DreamGenContext::afterNewRoom() {
 	if (data.byte(kNowinnewroom) == 0)
 		return; // notnew
 
@@ -3081,7 +3081,7 @@ void DreamBase::afterNewRoom() {
 	atmospheres();
 }
 
-void DreamBase::madmanRun() {
+void DreamGenContext::madmanRun() {
 	if (data.byte(kLocation)    != 14 ||
 		data.byte(kMapx)        != 22 ||
 		data.byte(kPointermode) !=  2 ||
@@ -3147,7 +3147,7 @@ void DreamBase::decide() {
 	data.byte(kTextlen) = 240;
 }
 
-void DreamBase::showGun() {
+void DreamGenContext::showGun() {
 	data.byte(kAddtored) = 0;
 	data.byte(kAddtogreen) = 0;
 	data.byte(kAddtoblue) = 0;
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index c464163..7fa403b 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -22,22 +22,101 @@
 #ifndef DREAMWEB_STUBS_H
 #define DREAMWEB_STUBS_H
 
-	void monMessage();
-	void monMessage(uint8 index) {
-		DreamBase::monMessage(index);
+	void screenUpdate();
+	void startup1();
+	void multiGet();
+	void multiGet(uint8 *dst, uint16 x, uint16 y, uint8 width, uint8 height) {
+		DreamBase::multiGet(dst, x, y, width, height);
+	}
+	void multiPut();
+	void multiPut(const uint8 *src, uint16 x, uint16 y, uint8 width, uint8 height) {
+		DreamBase::multiPut(src, x, y, width, height);
+	}
+	void multiDump();
+	void multiDump(uint16 x, uint16 y, uint8 width, uint8 height) {
+		DreamBase::multiDump(x, y, width, height);
+	}
+	void quickQuit();
+	void readOneBlock();
+	void seeCommandTail();
+	void quickQuit2();
+	void printDirect();
+	uint8 printDirect(const uint8** string, uint16 x, uint16 *y, uint8 maxWidth, bool centered) {
+		return DreamBase::printDirect(string, x, y, maxWidth, centered);
+	}
+	uint8 printDirect(const uint8* string, uint16 x, uint16 y, uint8 maxWidth, bool centered) {
+		return DreamBase::printDirect(string, x, y, maxWidth, centered);
+	}
+	void width160();
+	bool checkIfPerson(uint8 x, uint8 y);
+	bool checkIfFree(uint8 x, uint8 y);
+	bool checkIfEx(uint8 x, uint8 y);
+	DynObject *getFreeAd(uint8 index) {
+		return DreamBase::getFreeAd(index);
+	}
+	DynObject *getExAd(uint8 index) {
+		return DreamBase::getExAd(index);
+	}
+	void *getAnyAd(uint8 *slotSize, uint8 *slotCount) {
+		return DreamBase::getAnyAd(slotSize, slotCount);
+	}
+	SetObject *getSetAd(uint8 index) {
+		return DreamBase::getSetAd(index);
+	}
+	void walkAndExamine();
+	void obName(uint8 command, uint8 commandType);
+
+	bool checkIfSet(uint8 x, uint8 y);
+	void obToInv();
+	void obToInv(uint8 index, uint8 flag, uint16 x, uint16 y) {
+		DreamBase::obToInv(index, flag, x, y);
+	}
+	void useRoutine();
+	void examineOb(bool examineAgain = true);
+	void dumpWatch();
+	void watchCount();
+	void readSetData();
+	void useMon();
+	void makeCaps();
+	byte makeCaps(byte c) {
+		return DreamBase::makeCaps(c);
 	}
 	void monPrint();
 	const char *monPrint(const char *string) {
 		return DreamBase::monPrint(string);
 	}
-	void useRoutine();
+	void randomAccess();
+	void randomAccess(uint16 count) {
+		DreamBase::randomAccess(count);
+	}
+	void monMessage();
+	void monMessage(uint8 index) {
+		DreamBase::monMessage(index);
+	}
+	void look();
+	void autoLook();
+	void doLook();
+	void useKey();
 	void useObject();
-	void makeCaps();
-	void useMon();
-	void selectOb();
+	void singleKey(uint8 key, uint16 x, uint16 y);
+	void inventory();
+	void mainScreen();
+	void zoomOnOff();
+	void initialInv();
+	void walkIntoRoom();
+	void allPointer();
+	void afterNewRoom();
+	void madmanRun();
+	void showGun();
+	void triggerMessage(uint16 index);
+	void processTrigger();
 	bool execCommand();
+	void identifyOb();
+	void selectOb();
+	void getKeyAndLogo();
+	void signOn();
+	void searchForFiles(uint16 segment);
 	void read();
 	void dirCom();
-	void getKeyAndLogo();
 
 #endif
diff --git a/engines/dreamweb/use.cpp b/engines/dreamweb/use.cpp
index 0f31c76..25ed8d5 100644
--- a/engines/dreamweb/use.cpp
+++ b/engines/dreamweb/use.cpp
@@ -1494,7 +1494,7 @@ void DreamBase::useAxe() {
 	removeObFromInv();
 }
 
-void DreamBase::useKey() {
+void DreamGenContext::useKey() {
 	switch(data.byte(kLocation)) {
 	case 5:
 	case 30:
@@ -1512,6 +1512,7 @@ void DreamBase::useKey() {
 		if (data.byte(kMapx) == 11 && data.byte(kMapy) == 10) {
 			showPuzText(3, 300);
 			data.byte(kNewlocation) = 30;
+			al = 2;
 			fadeScreenDown();
 			showFirstUse();
 			putBackObStuff();
diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp
index 06743ed..ecb295a 100644
--- a/engines/dreamweb/vgagrafx.cpp
+++ b/engines/dreamweb/vgagrafx.cpp
@@ -27,6 +27,13 @@
 
 namespace DreamGen {
 
+void DreamGenContext::multiGet() {
+	multiGet(ds.ptr(si, 0), di, bx, cl, ch);
+	si += cl * ch;
+	di += bx * kScreenwidth + kScreenwidth * ch;
+	cx = 0;
+}
+
 void DreamBase::multiGet(uint8 *dst, uint16 x, uint16 y, uint8 w, uint8 h) {
 	assert(x < 320);
 	assert(y < 200);
@@ -43,6 +50,13 @@ void DreamBase::multiGet(uint8 *dst, uint16 x, uint16 y, uint8 w, uint8 h) {
 	}
 }
 
+void DreamGenContext::multiPut() {
+	multiPut(ds.ptr(si, 0), di, bx, cl, ch);
+	si += cl * ch;
+	di += bx * kScreenwidth + kScreenwidth * ch;
+	cx = 0;
+}
+
 void DreamBase::multiPut(const uint8 *src, uint16 x, uint16 y, uint8 w, uint8 h) {
 	assert(x < 320);
 	assert(y < 200);
@@ -59,6 +73,13 @@ void DreamBase::multiPut(const uint8 *src, uint16 x, uint16 y, uint8 w, uint8 h)
 	}
 }
 
+void DreamGenContext::multiDump() {
+	multiDump(di, bx, cl, ch);
+	unsigned offset = di + bx * kScreenwidth;
+	si = di = offset + ch * kScreenwidth;
+	cx = 0;
+}
+
 void DreamBase::multiDump(uint16 x, uint16 y, uint8 width, uint8 height) {
 	unsigned offset = x + y * kScreenwidth;
 	//debug(1, "multiDump %ux%u(segment: %04x) -> %d,%d(address: %d)", w, h, (uint16)ds, x, y, offset);






More information about the Scummvm-git-logs mailing list