diff options
-rw-r--r-- | engines/dreamweb/dreambase.h | 35 | ||||
-rw-r--r-- | engines/dreamweb/monitor.cpp | 12 | ||||
-rw-r--r-- | engines/dreamweb/object.cpp | 10 | ||||
-rw-r--r-- | engines/dreamweb/print.cpp | 11 | ||||
-rw-r--r-- | engines/dreamweb/stubs.cpp | 54 | ||||
-rw-r--r-- | engines/dreamweb/stubs.h | 95 | ||||
-rw-r--r-- | engines/dreamweb/use.cpp | 3 | ||||
-rw-r--r-- | engines/dreamweb/vgagrafx.cpp | 21 |
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); |