diff options
-rw-r--r-- | engines/dreamweb/dreambase.h | 10 | ||||
-rw-r--r-- | engines/dreamweb/object.cpp | 2 | ||||
-rw-r--r-- | engines/dreamweb/stubs.cpp | 26 | ||||
-rw-r--r-- | engines/dreamweb/stubs.h | 14 |
4 files changed, 29 insertions, 23 deletions
diff --git a/engines/dreamweb/dreambase.h b/engines/dreamweb/dreambase.h index b22f46be77..285c44b600 100644 --- a/engines/dreamweb/dreambase.h +++ b/engines/dreamweb/dreambase.h @@ -65,6 +65,9 @@ public: void lockLightOn(); void lockLightOff(); + // from object.cpp + void obIcons(); + // from pathfind.cpp Common::Point _lineData[200]; // Output of Bresenham void checkDest(const RoomPaths *roomsPaths); @@ -137,6 +140,13 @@ public: DynObject *getFreeAd(uint8 index); DynObject *getExAd(uint8 index); DynObject *getEitherAdCPP(); + void showWatch(); + void showTime(); + void showExit(); + void showMan(); + void panelIcons1(); + SetObject *getSetAd(uint8 index); + void *getAnyAd(uint8 *value1, uint8 *value2); // from use.cpp void placeFreeObject(uint8 index); diff --git a/engines/dreamweb/object.cpp b/engines/dreamweb/object.cpp index edc0b734ec..53d834e74c 100644 --- a/engines/dreamweb/object.cpp +++ b/engines/dreamweb/object.cpp @@ -99,7 +99,7 @@ void DreamGenContext::obPicture() { showFrame(frames, 160, 68, frame, 0x80); } -void DreamGenContext::obIcons() { +void DreamBase::obIcons() { uint8 value1, value2; getAnyAd(&value1, &value2); if (value1 != 0xff) { diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp index 02381cc191..7a60f17c1f 100644 --- a/engines/dreamweb/stubs.cpp +++ b/engines/dreamweb/stubs.cpp @@ -1383,7 +1383,7 @@ DynObject *DreamBase::getEitherAdCPP() { return getFreeAd(data.byte(kItemframe)); } -void *DreamGenContext::getAnyAd(uint8 *value1, uint8 *value2) { +void *DreamBase::getAnyAd(uint8 *value1, uint8 *value2) { if (data.byte(kObjecttype) == 4) { DynObject *exObject = getExAd(data.byte(kCommand)); *value1 = exObject->b7; @@ -1411,7 +1411,7 @@ void *DreamGenContext::getAnyAdDir(uint8 index, uint8 flag) { return getSetAd(index); } -SetObject *DreamGenContext::getSetAd(uint8 index) { +SetObject *DreamBase::getSetAd(uint8 index) { return (SetObject *)getSegment(data.word(kSetdat)).ptr(0, 0) + index; } @@ -2065,7 +2065,7 @@ void DreamGenContext::mainScreen() { walkAndExamine(); } -void DreamGenContext::showWatch() { +void DreamBase::showWatch() { if (data.byte(kWatchon)) { showFrame(engine->icons1(), 250, 1, 6, 0); showTime(); @@ -2079,7 +2079,7 @@ void DreamGenContext::dumpWatch() { data.byte(kWatchdump) = 0; } -void DreamGenContext::showTime() { +void DreamBase::showTime() { if (data.byte(kWatchon) == 0) return; Frame *charset = (Frame *)getSegment(data.word(kCharset1)).ptr(0, 0); @@ -2467,18 +2467,18 @@ void DreamGenContext::showRightPage() { data.word(kLinespacing) = 10; } -void DreamGenContext::showExit() { +void DreamBase::showExit() { showFrame(engine->icons1(), 274, 154, 11, 0); } -void DreamGenContext::showMan() { +void DreamBase::showMan() { showFrame(engine->icons1(), 0, 0, 0, 0); showFrame(engine->icons1(), 0, 114, 1, 0); if (data.byte(kShadeson)) showFrame(engine->icons1(), 28, 25, 2, 0); } -void DreamGenContext::panelIcons1() { +void DreamBase::panelIcons1() { uint16 x; if (data.byte(kWatchon) != 1) x = 48; @@ -4223,22 +4223,22 @@ void DreamGenContext::showPuzText() { } void DreamGenContext::showPuzText(uint16 command, uint16 count) { - // The original called findPuzText here and saved es:si. We call it below. + findPuzText(); // FIXME: Unnecessary? (Input: al, Output: es:si) createPanel(); showPanel(); showMan(); showExit(); obIcons(); - findPuzText(); // we call it here to set es:si correctly uint16 offset = kTextstart + getSegment(data.word(kPuzzletext)).word(command * 2); const uint8 *string = getSegment(data.word(kPuzzletext)).ptr(offset, 0); - uint16 y = 104; - DreamBase::printDirect(&string, 36, &y, 241, 241 & 1); + printDirect(string, 36, 104, 241, 241 & 1); workToScreenM(); hangOnP(count); } void DreamGenContext::monkSpeaking() { + // FIXME: This is the CD version only. + data.byte(kRoomssample) = 35; loadRoomsSample(); loadIntoTemp("DREAMWEB.G15"); @@ -4251,13 +4251,13 @@ void DreamGenContext::monkSpeaking() { playChannel0(12, 255); fadeScreenUps(); hangOn(300); - al = 40; for (int i = 40; i <= 48; i++) { dl = 'T'; dh = 83; cl = 'T'; ah = 0; + al = i; loadSpeech(); playChannel1(50 + 12); @@ -4265,8 +4265,6 @@ void DreamGenContext::monkSpeaking() { do { engine->waitForVSync(); } while (data.byte(kCh1playing) != 255); - - al++; } data.byte(kVolumedirection) = 1; diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h index 49f319b754..950da21574 100644 --- a/engines/dreamweb/stubs.h +++ b/engines/dreamweb/stubs.h @@ -166,8 +166,12 @@ return DreamBase::getExAd(index); } DynObject *getEitherAdCPP(); - SetObject *getSetAd(uint8 index); - void *getAnyAd(uint8 *value1, uint8 *value2); + void *getAnyAd(uint8 *value1, uint8 *value2) { + return DreamBase::getAnyAd(value1, value2); + } + SetObject *getSetAd(uint8 index) { + return DreamBase::getSetAd(index); + } void *getAnyAdDir(uint8 index, uint8 flag); void setAllChanges(); void doChange(uint8 index, uint8 value, uint8 type); @@ -195,7 +199,6 @@ void addToPeopleList(ReelRoutine *routine); void getExPos(); void obPicture(); - void obIcons(); void compare(); bool compare(uint8 index, uint8 flag, const char id[4]); bool pixelCheckSet(const ObjPos *pos, uint8 x, uint8 y); @@ -237,9 +240,7 @@ uint16 getPersFrame(uint8 index); void convIcons(); void examineOb(bool examineAgain = true); - void showWatch(); void dumpWatch(); - void showTime(); void roomName(); void transferText(); void initRain(); @@ -424,9 +425,6 @@ void showOuterPad(); uint8 nextSymbol(uint8 symbol); void showSymbol(); - void showExit(); - void showMan(); - void panelIcons1(); void examIcon(); void buttonOne(); void buttonTwo(); |