From 28ba2071e44b15ecb4c20ee682a9e2bbafe67ab9 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Wed, 7 Dec 2011 15:52:25 +0100 Subject: DREAMWEB: Move showFrame() and some things using it to DreamBase --- engines/dreamweb/dreambase.h | 10 ++++++++++ engines/dreamweb/stubs.cpp | 15 +++++---------- engines/dreamweb/stubs.h | 16 ++++++---------- engines/dreamweb/vgagrafx.cpp | 16 ++++++++++++---- 4 files changed, 33 insertions(+), 24 deletions(-) diff --git a/engines/dreamweb/dreambase.h b/engines/dreamweb/dreambase.h index e68c6d3d19..99cb8476e1 100644 --- a/engines/dreamweb/dreambase.h +++ b/engines/dreamweb/dreambase.h @@ -70,6 +70,11 @@ public: uint8 kernChars(uint8 firstChar, uint8 secondChar, uint8 width); // from stubs.cpp + void crosshair(); + void showBlink(); + void dumpBlink(); + void dumpPointer(); + void showRyanPage(); void volumeAdjust(); // from vgagrafx.cpp @@ -89,6 +94,11 @@ public: void frameOutFx(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, uint16 x, uint16 y); void doShake(); void showPCX(const Common::String &name); + void showFrame(const Frame *frameData, uint16 x, uint16 y, uint16 frameNumber, uint8 effectsFlag, uint8 *width, uint8 *height); + void showFrame(const Frame *frameData, uint16 x, uint16 y, uint16 frameNumber, uint8 effectsFlag); + void createPanel(); + void createPanel2(); + void showPanel(); }; diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp index d2cc525376..d0e8eb1450 100644 --- a/engines/dreamweb/stubs.cpp +++ b/engines/dreamweb/stubs.cpp @@ -1321,7 +1321,7 @@ void DreamGenContext::plotReel() { es = pop(); } -void DreamGenContext::crosshair() { +void DreamBase::crosshair() { uint8 frame; if ((data.byte(kCommandtype) != 3) && (data.byte(kCommandtype) < 10)) { frame = 9; @@ -1482,11 +1482,6 @@ void DreamGenContext::examineObText() { commandWithOb(1, data.byte(kCommandtype), data.byte(kCommand)); } -void DreamGenContext::showPanel() { - showFrame(engine->icons1(), 72, 0, 19, 0); - showFrame(engine->icons1(), 192, 0, 19, 0); -} - void DreamGenContext::blockNameText() { commandWithOb(0, data.byte(kCommandtype), data.byte(kCommand)); } @@ -1750,7 +1745,7 @@ void DreamGenContext::delPointer() { multiPut(getSegment(data.word(kBuffers)).ptr(kPointerback, 0), data.word(kDelherex), data.word(kDelherey), data.byte(kPointerxs), data.byte(kPointerys)); } -void DreamGenContext::showBlink() { +void DreamBase::showBlink() { if (data.byte(kManisoffscreen) == 1) return; ++data.byte(kBlinkcount); @@ -1771,7 +1766,7 @@ void DreamGenContext::showBlink() { showFrame(engine->icons1(), 44, 32, blinkTab[blinkFrame], 0, &width, &height); } -void DreamGenContext::dumpBlink() { +void DreamBase::dumpBlink() { if (data.byte(kShadeson) != 0) return; if (data.byte(kBlinkcount) != 0) @@ -1781,7 +1776,7 @@ void DreamGenContext::dumpBlink() { multiDump(44, 32, 16, 12); } -void DreamGenContext::dumpPointer() { +void DreamBase::dumpPointer() { dumpBlink(); multiDump(data.word(kDelherex), data.word(kDelherey), data.byte(kDelxs), data.byte(kDelys)); if ((data.word(kOldpointerx) != data.word(kDelherex)) || (data.word(kOldpointery) != data.word(kDelherey))) @@ -2062,7 +2057,7 @@ bool DreamGenContext::checkIfSet(uint8 x, uint8 y) { return false; } -void DreamGenContext::showRyanPage() { +void DreamBase::showRyanPage() { showFrame(engine->icons1(), kInventx + 167, kInventy - 12, 12, 0); showFrame(engine->icons1(), kInventx + 167 + 18 * data.byte(kRyanpage), kInventy - 12, 13 + data.byte(kRyanpage), 0); } diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h index 266f62fabb..d03961d4a1 100644 --- a/engines/dreamweb/stubs.h +++ b/engines/dreamweb/stubs.h @@ -88,8 +88,12 @@ void startLoading(const Room &room); Sprite *spriteTable(); void showFrame(); - void showFrame(const Frame *frameData, uint16 x, uint16 y, uint16 frameNumber, uint8 effectsFlag, uint8 *width, uint8 *height); - void showFrame(const Frame *frameData, uint16 x, uint16 y, uint16 frameNumber, uint8 effectsFlag); + void showFrame(const Frame *frameData, uint16 x, uint16 y, uint16 frameNumber, uint8 effectsFlag, uint8 *width, uint8 *height) { + DreamBase::showFrame(frameData, x, y, frameNumber, effectsFlag, width, height); + } + 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 eraseOldObs(); @@ -135,7 +139,6 @@ Reel *getReelStart(); void dealWithSpecial(uint8 firstParam, uint8 secondParam); void zoom(); - void crosshair(); void showRain(); void delTextLine(); void commandOnly(); @@ -152,7 +155,6 @@ void copyName(uint8 type, uint8 index, uint8 *dst); void commandWithOb(); void commandWithOb(uint8 command, uint8 type, uint8 index); - void showPanel(); void updatePeople(); void madman(ReelRoutine &routine); void madmanText(); @@ -204,9 +206,6 @@ void obName(); void obName(uint8 command, uint8 commandType); void delPointer(); - void showBlink(); - void dumpBlink(); - void dumpPointer(); void showPointer(); void animPointer(); void checkCoords(); @@ -239,7 +238,6 @@ void makeWorn(DynObject *object); void obToInv(); void obToInv(uint8 index, uint8 flag, uint16 x, uint16 y); - void showRyanPage(); void findAllRyan(); void findAllRyan(uint8 *inv); void fillRyan(); @@ -328,8 +326,6 @@ void playChannel1(uint8 index); void showMainOps(); void showDiscOps(); - void createPanel(); - void createPanel2(); void findRoomInLoc(); void reelsOnScreen(); void reconstruct(); diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index 17019938f7..4c3ba57e6c 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -313,12 +313,12 @@ void DreamBase::frameOutV(uint8 *dst, const uint8 *src, uint16 pitch, uint16 wid } } -void DreamGenContext::showFrame(const Frame *frameData, uint16 x, uint16 y, uint16 frameNumber, uint8 effectsFlag) { +void DreamBase::showFrame(const Frame *frameData, uint16 x, uint16 y, uint16 frameNumber, uint8 effectsFlag) { uint8 width, height; showFrame(frameData, x, y, frameNumber, effectsFlag, &width, &height); } -void DreamGenContext::showFrame(const Frame *frameData, uint16 x, uint16 y, uint16 frameNumber, uint8 effectsFlag, uint8 *width, uint8 *height) { +void DreamBase::showFrame(const Frame *frameData, uint16 x, uint16 y, uint16 frameNumber, uint8 effectsFlag, uint8 *width, uint8 *height) { const Frame *frame = frameData + frameNumber; if ((frame->width == 0) && (frame->height == 0)) { *width = 0; @@ -343,8 +343,11 @@ void DreamGenContext::showFrame(const Frame *frameData, uint16 x, uint16 y, uint y -= *height / 2; } if (effectsFlag & 64) { //diffDest + error("Unsupported DreamBase::showFrame effectsFlag %d", effectsFlag); + /* frameOutFx(es.ptr(0, dx * *height), pSrc, dx, *width, *height, x, y); return; + */ } if (effectsFlag & 8) { //printList /* @@ -470,17 +473,22 @@ void DreamGenContext::loadPalFromIFF() { } } -void DreamGenContext::createPanel() { +void DreamBase::createPanel() { showFrame(engine->icons2(), 0, 8, 0, 2); showFrame(engine->icons2(), 160, 8, 0, 2); showFrame(engine->icons2(), 0, 104, 0, 2); showFrame(engine->icons2(), 160, 104, 0, 2); } -void DreamGenContext::createPanel2() { +void DreamBase::createPanel2() { createPanel(); showFrame(engine->icons2(), 0, 0, 5, 2); showFrame(engine->icons2(), 160, 0, 5, 2); } +void DreamBase::showPanel() { + showFrame(engine->icons1(), 72, 0, 19, 0); + showFrame(engine->icons1(), 192, 0, 19, 0); +} + } // End of namespace DreamGen -- cgit v1.2.3