aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/dreamweb/dreambase.h35
-rw-r--r--engines/dreamweb/monitor.cpp12
-rw-r--r--engines/dreamweb/object.cpp10
-rw-r--r--engines/dreamweb/print.cpp11
-rw-r--r--engines/dreamweb/stubs.cpp54
-rw-r--r--engines/dreamweb/stubs.h95
-rw-r--r--engines/dreamweb/use.cpp3
-rw-r--r--engines/dreamweb/vgagrafx.cpp21
8 files changed, 79 insertions, 162 deletions
diff --git a/engines/dreamweb/dreambase.h b/engines/dreamweb/dreambase.h
index c17a15e34a..a4e3adfe42 100644
--- a/engines/dreamweb/dreambase.h
+++ b/engines/dreamweb/dreambase.h
@@ -595,6 +595,41 @@ 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 0caf4b7c25..5e84c82962 100644
--- a/engines/dreamweb/monitor.cpp
+++ b/engines/dreamweb/monitor.cpp
@@ -233,7 +233,7 @@ void DreamBase::input() {
}
void DreamGenContext::makeCaps() {
- al = makeCaps(al);
+ al = DreamBase::makeCaps(al);
}
byte DreamBase::makeCaps(byte c) {
@@ -312,10 +312,6 @@ 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();
@@ -330,7 +326,7 @@ void DreamBase::randomAccess(uint16 count) {
}
void DreamGenContext::monMessage() {
- monMessage(al);
+ DreamBase::monMessage(al);
}
void DreamBase::monMessage(uint8 index) {
@@ -551,7 +547,7 @@ void DreamGenContext::read() {
}
}
-void DreamGenContext::signOn() {
+void DreamBase::signOn() {
const char *name = parser();
int8 foundIndex = -1;
@@ -609,7 +605,7 @@ void DreamGenContext::signOn() {
}
}
-void DreamGenContext::searchForFiles(uint16 segment) {
+void DreamBase::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 4fa21e7618..124a4f908d 100644
--- a/engines/dreamweb/object.cpp
+++ b/engines/dreamweb/object.cpp
@@ -78,10 +78,6 @@ 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)
@@ -120,7 +116,7 @@ void DreamBase::obIcons() {
showFrame(engine->icons2(), 260, 1, 1, 0);
}
-void DreamGenContext::examineOb(bool examineAgain) {
+void DreamBase::examineOb(bool examineAgain) {
data.byte(kPointermode) = 0;
data.word(kTimecount) = 0;
@@ -217,7 +213,7 @@ void DreamGenContext::examineOb(bool examineAgain) {
data.byte(kOpenedob) = 255;
}
-void DreamGenContext::inventory() {
+void DreamBase::inventory() {
if (data.byte(kMandead) == 1 || data.word(kWatchingtime) != 0) {
blank();
return;
@@ -312,7 +308,7 @@ void DreamBase::openOb() {
_openChangeSize = getOpenedSlotCount() * kItempicsize + kInventx;
}
-void DreamGenContext::identifyOb() {
+void DreamBase::identifyOb() {
if (data.word(kWatchingtime) != 0) {
blank();
return;
diff --git a/engines/dreamweb/print.cpp b/engines/dreamweb/print.cpp
index 0191aa8860..d19a1931d2 100644
--- a/engines/dreamweb/print.cpp
+++ b/engines/dreamweb/print.cpp
@@ -120,15 +120,6 @@ 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);
}
@@ -216,7 +207,7 @@ uint16 DreamBase::waitFrames() {
void DreamGenContext::monPrint() {
uint16 originalBx = bx;
const char *string = (const char *)es.ptr(bx, 0);
- const char *nextString = monPrint(string);
+ const char *nextString = DreamBase::monPrint(string);
bx = originalBx + (nextString - string);
}
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index ca98337261..759f608cb3 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -651,7 +651,7 @@ bool DreamBase::quitRequested() {
return data.byte(kQuitrequested);
}
-void DreamGenContext::screenUpdate() {
+void DreamBase::screenUpdate() {
newPlace();
mainScreen();
if (quitRequested())
@@ -722,7 +722,7 @@ void DreamBase::startup() {
atmospheres();
}
-void DreamGenContext::startup1() {
+void DreamBase::startup1() {
clearPalette();
data.byte(kThroughdoor) = 0;
@@ -789,15 +789,15 @@ void DreamBase::hangOnCurs(uint16 frameCount) {
}
}
-void DreamGenContext::seeCommandTail() {
+void DreamBase::seeCommandTail() {
data.byte(kBrightness) = 1;
}
-void DreamGenContext::quickQuit() {
+void DreamBase::quickQuit() {
engine->quit();
}
-void DreamGenContext::quickQuit2() {
+void DreamBase::quickQuit2() {
engine->quit();
}
@@ -842,7 +842,7 @@ void DreamBase::putUnderTimed() {
multiPut(_underTimedText, data.byte(kTimedx), data.byte(kTimedy), 240, kUnderTimedTextSizeY);
}
-void DreamGenContext::triggerMessage(uint16 index) {
+void DreamBase::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 DreamGenContext::triggerMessage(uint16 index) {
data.byte(kLasttrigger) = 0;
}
-void DreamGenContext::processTrigger() {
+void DreamBase::processTrigger() {
if (data.byte(kLasttrigger) == '1') {
setLocation(8);
triggerMessage(45);
@@ -1145,7 +1145,7 @@ void DreamBase::commandOnly(uint8 command) {
data.byte(kNewtextline) = 1;
}
-bool DreamGenContext::checkIfPerson(uint8 x, uint8 y) {
+bool DreamBase::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 DreamGenContext::checkIfPerson(uint8 x, uint8 y) {
return false;
}
-bool DreamGenContext::checkIfFree(uint8 x, uint8 y) {
+bool DreamBase::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 DreamGenContext::checkIfFree(uint8 x, uint8 y) {
return false;
}
-bool DreamGenContext::checkIfEx(uint8 x, uint8 y) {
+bool DreamBase::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 DreamGenContext::walkAndExamine() {
+void DreamBase::walkAndExamine() {
if (!finishedWalking())
return;
data.byte(kCommandtype) = data.byte(kWalkexamtype);
@@ -1403,7 +1403,7 @@ void DreamGenContext::walkAndExamine() {
examineOb();
}
-void DreamGenContext::obName(uint8 command, uint8 commandType) {
+void DreamBase::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 DreamGenContext::checkIfSet(uint8 x, uint8 y) {
+bool DreamBase::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 DreamGenContext::zoomOnOff() {
+void DreamBase::zoomOnOff() {
if (data.word(kWatchingtime) != 0 || data.byte(kPointermode) == 2) {
blank();
return;
@@ -1900,7 +1900,7 @@ void DreamBase::sortOutMap() {
}
}
-void DreamGenContext::mainScreen() {
+void DreamBase::mainScreen() {
data.byte(kInmaparea) = 0;
if (data.byte(kWatchon) == 1) {
RectWithCallback<DreamGenContext> mainList[] = {
@@ -1937,7 +1937,7 @@ void DreamBase::showWatch() {
}
}
-void DreamGenContext::dumpWatch() {
+void DreamBase::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 DreamGenContext::watchCount() {
+void DreamBase::watchCount() {
if (data.byte(kWatchon) == 0)
return;
++data.byte(kTimercount);
@@ -2031,7 +2031,7 @@ void DreamBase::loadRoom() {
getDimension(&mapXstart, &mapYstart, &mapXsize, &mapYsize);
}
-void DreamGenContext::readSetData() {
+void DreamBase::readSetData() {
data.word(kCharset1) = standardLoad("DREAMWEB.C00");
void *icons1Buffer = standardLoadCPP("DREAMWEB.G00");
@@ -2070,7 +2070,7 @@ void DreamBase::findRoomInLoc() {
data.byte(kRoomnum) = roomNum;
}
-void DreamGenContext::autoLook() {
+void DreamBase::autoLook() {
if ((data.word(kMousex) != data.word(kOldx)) || (data.word(kMousey) != data.word(kOldy))) {
data.word(kLookcounter) = 1000;
return;
@@ -2084,7 +2084,7 @@ void DreamGenContext::autoLook() {
doLook();
}
-void DreamGenContext::look() {
+void DreamBase::look() {
if (data.word(kWatchingtime) || (data.byte(kPointermode) == 2)) {
blank();
return;
@@ -2097,7 +2097,7 @@ void DreamGenContext::look() {
doLook();
}
-void DreamGenContext::doLook() {
+void DreamBase::doLook() {
createPanel();
showIcon();
underTextLine();
@@ -2721,7 +2721,7 @@ void DreamBase::pickupOb(uint8 command, uint8 pos) {
transferToEx(command);
}
-void DreamGenContext::initialInv() {
+void DreamBase::initialInv() {
if (data.byte(kReallocation) != 24)
return;
@@ -2741,7 +2741,7 @@ void DreamGenContext::initialInv() {
switchRyanOff();
}
-void DreamGenContext::walkIntoRoom() {
+void DreamBase::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 DreamGenContext::allPointer() {
+void DreamBase::allPointer() {
readMouse();
showPointer();
dumpPointer();
@@ -3050,7 +3050,7 @@ void DreamBase::watchReel() {
plotReel(reelPointer);
}
-void DreamGenContext::afterNewRoom() {
+void DreamBase::afterNewRoom() {
if (data.byte(kNowinnewroom) == 0)
return; // notnew
@@ -3081,7 +3081,7 @@ void DreamGenContext::afterNewRoom() {
atmospheres();
}
-void DreamGenContext::madmanRun() {
+void DreamBase::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 DreamGenContext::showGun() {
+void DreamBase::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 7fa403bbb7..c464163f68 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -22,101 +22,22 @@
#ifndef DREAMWEB_STUBS_H
#define DREAMWEB_STUBS_H
- 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 monMessage();
+ void monMessage(uint8 index) {
+ DreamBase::monMessage(index);
}
void monPrint();
const char *monPrint(const char *string) {
return DreamBase::monPrint(string);
}
- 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 useRoutine();
void useObject();
- 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 makeCaps();
+ void useMon();
void selectOb();
- void getKeyAndLogo();
- void signOn();
- void searchForFiles(uint16 segment);
+ bool execCommand();
void read();
void dirCom();
+ void getKeyAndLogo();
#endif
diff --git a/engines/dreamweb/use.cpp b/engines/dreamweb/use.cpp
index 25ed8d50e5..0f31c766b5 100644
--- a/engines/dreamweb/use.cpp
+++ b/engines/dreamweb/use.cpp
@@ -1494,7 +1494,7 @@ void DreamBase::useAxe() {
removeObFromInv();
}
-void DreamGenContext::useKey() {
+void DreamBase::useKey() {
switch(data.byte(kLocation)) {
case 5:
case 30:
@@ -1512,7 +1512,6 @@ void DreamGenContext::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 ecb295a353..06743ed3bb 100644
--- a/engines/dreamweb/vgagrafx.cpp
+++ b/engines/dreamweb/vgagrafx.cpp
@@ -27,13 +27,6 @@
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);
@@ -50,13 +43,6 @@ 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);
@@ -73,13 +59,6 @@ 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);