From 21d3062d52bd5b10d30bdde412329ab4f4d0b8dd Mon Sep 17 00:00:00 2001 From: Bertrand Augereau Date: Thu, 17 Nov 2011 15:33:25 +0100 Subject: DREAMWEB: 'loadpalfromiff' ported to C++ --- engines/dreamweb/vgagrafx.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index 53db811313..11ba45f7eb 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -464,5 +464,29 @@ bool DreamGenContext::pixelcheckset(const ObjPos *pos, uint8 x, uint8 y) { return *ptr != 0; } +void DreamGenContext::loadpalfromiff() { + dx = kPalettescreen; + openfile(); + cx = 2000; + ds = data.word(kMapstore); + dx = 0; + readfromfile(); + closefile(); + + const uint8 *src = segRef(data.word(kMapstore)).ptr(0x30, 0); + uint8 *dst = mainPalette(); + for (size_t i = 0; i < 256*3; ++i) { + uint8 c = src[i] / 4; + if (data.byte(kBrightness) == 1) { + if (c) { + c = c + c / 2 + c / 4; + if (c > 63) + c = 63; + } + } + dst[i] = c; + } +} + } /*namespace dreamgen */ -- cgit v1.2.3 From 8e7ea5d461ef22e66a340e8c22497655f1a84f30 Mon Sep 17 00:00:00 2001 From: Bertrand Augereau Date: Fri, 18 Nov 2011 14:58:23 +0100 Subject: DREAMWEB: 'worktoscreen' C++ flavour without dirtying the regs --- engines/dreamweb/vgagrafx.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index 11ba45f7eb..9871b5e998 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -94,9 +94,13 @@ void DreamGenContext::multidump() { cx = 0; } +void DreamGenContext::workToScreenCPP() { + engine->blit(workspace(), 320, 0, 0, 320, 200); +} + void DreamGenContext::worktoscreen() { + workToScreenCPP(); uint size = 320 * 200; - engine->blit(workspace(), 320, 0, 0, 320, 200); di = si = size; cx = 0; } -- cgit v1.2.3 From 51c30303a894c0630e3950a7e2168316780dcc76 Mon Sep 17 00:00:00 2001 From: Bertrand Augereau Date: Mon, 21 Nov 2011 21:32:50 +0100 Subject: DREAMWEB: 'createpanel' and 'createpanel2' ported to C++ --- engines/dreamweb/vgagrafx.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index 9871b5e998..658f45ed04 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -492,5 +492,20 @@ void DreamGenContext::loadpalfromiff() { } } +void DreamGenContext::createpanel() { + Frame *icons = (Frame *)segRef(data.word(kIcons2)).ptr(0, 0); + showframe(icons, 0, 8, 0, 2); + showframe(icons, 160, 8, 0, 2); + showframe(icons, 0, 104, 0, 2); + showframe(icons, 160, 104, 0, 2); +} + +void DreamGenContext::createpanel2() { + createpanel(); + Frame *icons = (Frame *)segRef(data.word(kIcons2)).ptr(0, 0); + showframe(icons, 0, 0, 5, 2); + showframe(icons, 160, 0, 5, 2); +} + } /*namespace dreamgen */ -- cgit v1.2.3 From 349cbc527f33858b6275daaa8f770cd6f7fcd42d Mon Sep 17 00:00:00 2001 From: D G Turner Date: Thu, 1 Dec 2011 19:43:43 +0000 Subject: DREAMWEB: Fix compilation due to dreamgen.* function renaming. --- engines/dreamweb/vgagrafx.cpp | 144 +++++++++++++++++++++--------------------- 1 file changed, 72 insertions(+), 72 deletions(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index 658f45ed04..aee8417f70 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -31,18 +31,18 @@ uint8 *DreamGenContext::workspace() { return result; } -void DreamGenContext::allocatework() { - data.word(kWorkspace) = allocatemem(0x1000); +void DreamGenContext::allocateWork() { + data.word(kWorkspace) = allocateMem(0x1000); } -void DreamGenContext::multiget() { - multiget(ds.ptr(si, 0), di, bx, cl, ch); +void DreamGenContext::multiGet() { + multiGet(ds.ptr(si, 0), di, bx, cl, ch); si += cl * ch; di += bx * kScreenwidth + kScreenwidth * ch; cx = 0; } -void DreamGenContext::multiget(uint8 *dst, uint16 x, uint16 y, uint8 w, uint8 h) { +void DreamGenContext::multiGet(uint8 *dst, uint16 x, uint16 y, uint8 w, uint8 h) { assert(x < 320); assert(y < 200); const uint8 *src = workspace() + x + y * kScreenwidth; @@ -50,7 +50,7 @@ void DreamGenContext::multiget(uint8 *dst, uint16 x, uint16 y, uint8 w, uint8 h) h = 200 - y; if (x + w > 320) w = 320 - x; - //debug(1, "multiget %u,%u %ux%u -> segment: %04x->%04x", x, y, w, h, (uint16)ds, (uint16)es); + //debug(1, "multiGet %u,%u %ux%u -> segment: %04x->%04x", x, y, w, h, (uint16)ds, (uint16)es); for(unsigned l = 0; l < h; ++l) { const uint8 *src_p = src + kScreenwidth * l; uint8 *dst_p = dst + w * l; @@ -58,14 +58,14 @@ void DreamGenContext::multiget(uint8 *dst, uint16 x, uint16 y, uint8 w, uint8 h) } } -void DreamGenContext::multiput() { - multiput(ds.ptr(si, 0), di, bx, cl, ch); +void DreamGenContext::multiPut() { + multiPut(ds.ptr(si, 0), di, bx, cl, ch); si += cl * ch; di += bx * kScreenwidth + kScreenwidth * ch; cx = 0; } -void DreamGenContext::multiput(const uint8 *src, uint16 x, uint16 y, uint8 w, uint8 h) { +void DreamGenContext::multiPut(const uint8 *src, uint16 x, uint16 y, uint8 w, uint8 h) { assert(x < 320); assert(y < 200); uint8 *dst = workspace() + x + y * kScreenwidth; @@ -73,7 +73,7 @@ void DreamGenContext::multiput(const uint8 *src, uint16 x, uint16 y, uint8 w, ui h = 200 - y; if (x + w > 320) w = 320 - x; - //debug(1, "multiput %ux%u -> segment: %04x->%04x", w, h, (uint16)ds, (uint16)es); + //debug(1, "multiPut %ux%u -> segment: %04x->%04x", w, h, (uint16)ds, (uint16)es); for(unsigned l = 0; l < h; ++l) { const uint8 *src_p = src + w * l; uint8 *dst_p = dst + kScreenwidth * l; @@ -81,14 +81,14 @@ void DreamGenContext::multiput(const uint8 *src, uint16 x, uint16 y, uint8 w, ui } } -void DreamGenContext::multidump(uint16 x, uint16 y, uint8 width, uint8 height) { +void DreamGenContext::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); + //debug(1, "multiDump %ux%u(segment: %04x) -> %d,%d(address: %d)", w, h, (uint16)ds, x, y, offset); engine->blit(workspace() + offset, kScreenwidth, x, y, width, height); } -void DreamGenContext::multidump() { - multidump(di, bx, cl, ch); +void DreamGenContext::multiDump() { + multiDump(di, bx, cl, ch); unsigned offset = di + bx * kScreenwidth; si = di = offset + ch * kScreenwidth; cx = 0; @@ -98,14 +98,14 @@ void DreamGenContext::workToScreenCPP() { engine->blit(workspace(), 320, 0, 0, 320, 200); } -void DreamGenContext::worktoscreen() { +void DreamGenContext::workToScreen() { workToScreenCPP(); uint size = 320 * 200; di = si = size; cx = 0; } -void DreamGenContext::printundermon() { +void DreamGenContext::printUnderMon() { engine->printUnderMonitor(); } @@ -113,7 +113,7 @@ void DreamGenContext::cls() { engine->cls(); } -void DreamGenContext::frameoutnm(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, uint16 x, uint16 y) { +void DreamGenContext::frameOutNm(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, uint16 x, uint16 y) { dst += pitch * y + x; for (uint16 j = 0; j < height; ++j) { @@ -123,7 +123,7 @@ void DreamGenContext::frameoutnm(uint8 *dst, const uint8 *src, uint16 pitch, uin } } -void DreamGenContext::frameoutbh(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, uint16 x, uint16 y) { +void DreamGenContext::frameOutBh(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, uint16 x, uint16 y) { uint16 stride = pitch - width; dst += y * pitch + x; @@ -139,7 +139,7 @@ void DreamGenContext::frameoutbh(uint8 *dst, const uint8 *src, uint16 pitch, uin } } -void DreamGenContext::frameoutfx(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, uint16 x, uint16 y) { +void DreamGenContext::frameOutFx(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, uint16 x, uint16 y) { uint16 stride = pitch - width; dst += y * pitch + x; dst -= width; @@ -156,7 +156,7 @@ void DreamGenContext::frameoutfx(uint8 *dst, const uint8 *src, uint16 pitch, uin } } -void DreamGenContext::doshake() { +void DreamGenContext::doShake() { uint8 &counter = data.byte(kShakecounter); if (counter == 48) return; @@ -185,7 +185,7 @@ void DreamGenContext::doshake() { engine->setShakePos(offset >= 0 ? offset : -offset); } -void DreamGenContext::vsync() { +void DreamGenContext::vSync() { push(ax); push(bx); push(cx); @@ -205,8 +205,8 @@ void DreamGenContext::vsync() { ax = pop(); } -void DreamGenContext::setmode() { - vsync(); +void DreamGenContext::setMode() { + vSync(); initGraphics(320, 200, false); } @@ -219,7 +219,7 @@ static Common::String getFilename(Context &context) { return name; } -void DreamGenContext::showpcx() { +void DreamGenContext::showPCX() { Common::String name = getFilename(*this); Common::File pcxFile; @@ -228,7 +228,7 @@ void DreamGenContext::showpcx() { return; } - uint8 *maingamepal; + uint8 *mainGamePal; int i, j; // Read the 16-color palette into the 'maingamepal' buffer. Note that @@ -236,12 +236,12 @@ void DreamGenContext::showpcx() { pcxFile.seek(16, SEEK_SET); es = data.word(kBuffers); - maingamepal = es.ptr(kMaingamepal, 768); - pcxFile.read(maingamepal, 48); + mainGamePal = es.ptr(kMaingamepal, 768); + pcxFile.read(mainGamePal, 48); - memset(maingamepal + 48, 0xff, 720); + memset(mainGamePal + 48, 0xff, 720); for (i = 0; i < 48; i++) { - maingamepal[i] >>= 2; + mainGamePal[i] >>= 2; } // Decode the image data. @@ -289,7 +289,7 @@ void DreamGenContext::showpcx() { pcxFile.close(); } -void DreamGenContext::frameoutv(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, int16 x, int16 y) { +void DreamGenContext::frameOutV(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, int16 x, int16 y) { // NB : These resilience checks were not in the original engine, but did they result in undefined behaviour // or was something broken during porting to C++? assert(pitch == 320); @@ -331,12 +331,12 @@ void DreamGenContext::frameoutv(uint8 *dst, const uint8 *src, uint16 pitch, uint } } -void DreamGenContext::showframe(const Frame *frameData, uint16 x, uint16 y, uint16 frameNumber, uint8 effectsFlag) { +void DreamGenContext::showFrame(const Frame *frameData, uint16 x, uint16 y, uint16 frameNumber, uint8 effectsFlag) { uint8 width, height; - showframe(frameData, x, y, frameNumber, effectsFlag, &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 DreamGenContext::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; @@ -344,12 +344,12 @@ void DreamGenContext::showframe(const Frame *frameData, uint16 x, uint16 y, uint return; } -//notblankshow: +//notBlankShow: if ((effectsFlag & 128) == 0) { x += frame->x; y += frame->y; } -//skipoffsets: +//skipOffsets: *width = frame->width; *height = frame->height; @@ -360,45 +360,45 @@ void DreamGenContext::showframe(const Frame *frameData, uint16 x, uint16 y, uint x -= *width / 2; y -= *height / 2; } - if (effectsFlag & 64) { //diffdest - frameoutfx(es.ptr(0, dx * *height), pSrc, dx, *width, *height, x, y); + if (effectsFlag & 64) { //diffDest + frameOutFx(es.ptr(0, dx * *height), pSrc, dx, *width, *height, x, y); return; } - if (effectsFlag & 8) { //printlist + if (effectsFlag & 8) { //printList /* push(ax); al = x - data.word(kMapadx); ah = y - data.word(kMapady); - //addtoprintlist(); // NB: Commented in the original asm + //addToPrintList(); // NB: Commented in the original asm ax = pop(); */ } - if (effectsFlag & 4) { //flippedx - frameoutfx(workspace(), pSrc, 320, *width, *height, x, y); + if (effectsFlag & 4) { //flippedX + frameOutFx(workspace(), pSrc, 320, *width, *height, x, y); return; } - if (effectsFlag & 2) { //nomask - frameoutnm(workspace(), pSrc, 320, *width, *height, x, y); + if (effectsFlag & 2) { //noMask + frameOutNm(workspace(), pSrc, 320, *width, *height, x, y); return; } if (effectsFlag & 32) { - frameoutbh(workspace(), pSrc, 320, *width, *height, x, y); + frameOutBh(workspace(), pSrc, 320, *width, *height, x, y); return; } } -//noeffects: - frameoutv(workspace(), pSrc, 320, *width, *height, x, y); +//noEffects: + frameOutV(workspace(), pSrc, 320, *width, *height, x, y); return; } -void DreamGenContext::showframe() { +void DreamGenContext::showFrame() { uint8 width, height; - showframe((Frame *)ds.ptr(0, 0), di, bx, ax & 0x1ff, ah & 0xfe, &width, &height); + showFrame((Frame *)ds.ptr(0, 0), di, bx, ax & 0x1ff, ah & 0xfe, &width, &height); cl = width; ch = height; } -void DreamGenContext::clearwork() { +void DreamGenContext::clearWork() { memset(workspace(), 0, 320*200); } @@ -408,7 +408,7 @@ void DreamGenContext::zoom() { if (data.byte(kZoomon) != 1) return; if (data.byte(kCommandtype) >= 199) { - putunderzoom(); + putUnderZoom(); return; } uint16 srcOffset = (data.word(kOldpointery) - 9) * 320 + (data.word(kOldpointerx) - 11); @@ -430,19 +430,19 @@ void DreamGenContext::zoom() { data.byte(kDidzoom) = 1; } -void DreamGenContext::paneltomap() { - multiget(segRef(data.word(kMapstore)).ptr(0, 0), data.word(kMapxstart) + data.word(kMapadx), data.word(kMapystart) + data.word(kMapady), data.byte(kMapxsize), data.byte(kMapysize)); +void DreamGenContext::panelToMap() { + multiGet(segRef(data.word(kMapstore)).ptr(0, 0), data.word(kMapxstart) + data.word(kMapadx), data.word(kMapystart) + data.word(kMapady), data.byte(kMapxsize), data.byte(kMapysize)); } -void DreamGenContext::maptopanel() { - multiput(segRef(data.word(kMapstore)).ptr(0, 0), data.word(kMapxstart) + data.word(kMapadx), data.word(kMapystart) + data.word(kMapady), data.byte(kMapxsize), data.byte(kMapysize)); +void DreamGenContext::mapToPanel() { + multiPut(segRef(data.word(kMapstore)).ptr(0, 0), data.word(kMapxstart) + data.word(kMapadx), data.word(kMapystart) + data.word(kMapady), data.byte(kMapxsize), data.byte(kMapysize)); } -void DreamGenContext::dumpmap() { - multidump(data.word(kMapxstart) + data.word(kMapadx), data.word(kMapystart) + data.word(kMapady), data.byte(kMapxsize), data.byte(kMapysize)); +void DreamGenContext::dumpMap() { + multiDump(data.word(kMapxstart) + data.word(kMapadx), data.word(kMapystart) + data.word(kMapady), data.byte(kMapxsize), data.byte(kMapysize)); } -void DreamGenContext::transferinv() { +void DreamGenContext::transferInv() { const Frame *freeFrames = (const Frame *)segRef(data.word(kFreeframes)).ptr(kFrframedata, 0); const Frame *freeFrame = freeFrames + (3 * data.byte(kItemtotran) + 1); Frame *exFrames = (Frame *)segRef(data.word(kExtras)).ptr(kExframedata, 0); @@ -459,23 +459,23 @@ void DreamGenContext::transferinv() { data.word(kExframepos) += byteCount; } -bool DreamGenContext::pixelcheckset(const ObjPos *pos, uint8 x, uint8 y) { +bool DreamGenContext::pixelCheckSet(const ObjPos *pos, uint8 x, uint8 y) { x -= pos->xMin; y -= pos->yMin; - SetObject *setObject = getsetad(pos->index); + SetObject *setObject = getSetAd(pos->index); Frame *frame = (Frame *)segRef(data.word(kSetframes)).ptr(kFramedata, 0) + setObject->index; const uint8 *ptr = segRef(data.word(kSetframes)).ptr(kFrames, 0) + frame->ptr() + y * frame->width + x; return *ptr != 0; } -void DreamGenContext::loadpalfromiff() { +void DreamGenContext::loadPalFromIFF() { dx = kPalettescreen; - openfile(); + openFile(); cx = 2000; ds = data.word(kMapstore); dx = 0; - readfromfile(); - closefile(); + readFromFile(); + closeFile(); const uint8 *src = segRef(data.word(kMapstore)).ptr(0x30, 0); uint8 *dst = mainPalette(); @@ -492,19 +492,19 @@ void DreamGenContext::loadpalfromiff() { } } -void DreamGenContext::createpanel() { +void DreamGenContext::createPanel() { Frame *icons = (Frame *)segRef(data.word(kIcons2)).ptr(0, 0); - showframe(icons, 0, 8, 0, 2); - showframe(icons, 160, 8, 0, 2); - showframe(icons, 0, 104, 0, 2); - showframe(icons, 160, 104, 0, 2); + showFrame(icons, 0, 8, 0, 2); + showFrame(icons, 160, 8, 0, 2); + showFrame(icons, 0, 104, 0, 2); + showFrame(icons, 160, 104, 0, 2); } -void DreamGenContext::createpanel2() { - createpanel(); +void DreamGenContext::createPanel2() { + createPanel(); Frame *icons = (Frame *)segRef(data.word(kIcons2)).ptr(0, 0); - showframe(icons, 0, 0, 5, 2); - showframe(icons, 160, 0, 5, 2); + showFrame(icons, 0, 0, 5, 2); + showFrame(icons, 160, 0, 5, 2); } } /*namespace dreamgen */ -- cgit v1.2.3 From 38ec14b15b19af5ae4ebcf3a6d6601351a7b2794 Mon Sep 17 00:00:00 2001 From: Bertrand Augereau Date: Fri, 2 Dec 2011 16:29:16 +0100 Subject: DREAMWEB: 'segRef' was redundant with 'getSegment' (thanks to Max for noting this) --- engines/dreamweb/vgagrafx.cpp | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index aee8417f70..1c297f1e93 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -27,7 +27,7 @@ namespace DreamGen { uint8 *DreamGenContext::workspace() { - uint8 *result = segRef(data.word(kWorkspace)).ptr(0, 0); + uint8 *result = getSegment(data.word(kWorkspace)).ptr(0, 0); return result; } @@ -431,11 +431,11 @@ void DreamGenContext::zoom() { } void DreamGenContext::panelToMap() { - multiGet(segRef(data.word(kMapstore)).ptr(0, 0), data.word(kMapxstart) + data.word(kMapadx), data.word(kMapystart) + data.word(kMapady), data.byte(kMapxsize), data.byte(kMapysize)); + multiGet(getSegment(data.word(kMapstore)).ptr(0, 0), data.word(kMapxstart) + data.word(kMapadx), data.word(kMapystart) + data.word(kMapady), data.byte(kMapxsize), data.byte(kMapysize)); } void DreamGenContext::mapToPanel() { - multiPut(segRef(data.word(kMapstore)).ptr(0, 0), data.word(kMapxstart) + data.word(kMapadx), data.word(kMapystart) + data.word(kMapady), data.byte(kMapxsize), data.byte(kMapysize)); + multiPut(getSegment(data.word(kMapstore)).ptr(0, 0), data.word(kMapxstart) + data.word(kMapadx), data.word(kMapystart) + data.word(kMapady), data.byte(kMapxsize), data.byte(kMapysize)); } void DreamGenContext::dumpMap() { @@ -443,17 +443,17 @@ void DreamGenContext::dumpMap() { } void DreamGenContext::transferInv() { - const Frame *freeFrames = (const Frame *)segRef(data.word(kFreeframes)).ptr(kFrframedata, 0); + const Frame *freeFrames = (const Frame *)getSegment(data.word(kFreeframes)).ptr(kFrframedata, 0); const Frame *freeFrame = freeFrames + (3 * data.byte(kItemtotran) + 1); - Frame *exFrames = (Frame *)segRef(data.word(kExtras)).ptr(kExframedata, 0); + Frame *exFrames = (Frame *)getSegment(data.word(kExtras)).ptr(kExframedata, 0); Frame *exFrame = exFrames + (3 * data.byte(kExpos) + 1); exFrame->width = freeFrame->width; exFrame->height = freeFrame->height; exFrame->x = freeFrame->x; exFrame->y = freeFrame->y; uint16 byteCount = freeFrame->width * freeFrame->height; - const uint8 *src = segRef(data.word(kFreeframes)).ptr(kFrframes + freeFrame->ptr(), byteCount); - uint8 *dst = segRef(data.word(kExtras)).ptr(kExframes + data.word(kExframepos), byteCount); + const uint8 *src = getSegment(data.word(kFreeframes)).ptr(kFrframes + freeFrame->ptr(), byteCount); + uint8 *dst = getSegment(data.word(kExtras)).ptr(kExframes + data.word(kExframepos), byteCount); memcpy(dst, src, byteCount); exFrame->setPtr(data.word(kExframepos)); data.word(kExframepos) += byteCount; @@ -463,8 +463,8 @@ bool DreamGenContext::pixelCheckSet(const ObjPos *pos, uint8 x, uint8 y) { x -= pos->xMin; y -= pos->yMin; SetObject *setObject = getSetAd(pos->index); - Frame *frame = (Frame *)segRef(data.word(kSetframes)).ptr(kFramedata, 0) + setObject->index; - const uint8 *ptr = segRef(data.word(kSetframes)).ptr(kFrames, 0) + frame->ptr() + y * frame->width + x; + Frame *frame = (Frame *)getSegment(data.word(kSetframes)).ptr(kFramedata, 0) + setObject->index; + const uint8 *ptr = getSegment(data.word(kSetframes)).ptr(kFrames, 0) + frame->ptr() + y * frame->width + x; return *ptr != 0; } @@ -477,7 +477,7 @@ void DreamGenContext::loadPalFromIFF() { readFromFile(); closeFile(); - const uint8 *src = segRef(data.word(kMapstore)).ptr(0x30, 0); + const uint8 *src = getSegment(data.word(kMapstore)).ptr(0x30, 0); uint8 *dst = mainPalette(); for (size_t i = 0; i < 256*3; ++i) { uint8 c = src[i] / 4; @@ -493,7 +493,7 @@ void DreamGenContext::loadPalFromIFF() { } void DreamGenContext::createPanel() { - Frame *icons = (Frame *)segRef(data.word(kIcons2)).ptr(0, 0); + Frame *icons = (Frame *)getSegment(data.word(kIcons2)).ptr(0, 0); showFrame(icons, 0, 8, 0, 2); showFrame(icons, 160, 8, 0, 2); showFrame(icons, 0, 104, 0, 2); @@ -502,7 +502,7 @@ void DreamGenContext::createPanel() { void DreamGenContext::createPanel2() { createPanel(); - Frame *icons = (Frame *)segRef(data.word(kIcons2)).ptr(0, 0); + Frame *icons = (Frame *)getSegment(data.word(kIcons2)).ptr(0, 0); showFrame(icons, 0, 0, 5, 2); showFrame(icons, 160, 0, 5, 2); } -- cgit v1.2.3 From 1f89c4e34100d5628809efd56edb024306667331 Mon Sep 17 00:00:00 2001 From: Bertrand Augereau Date: Sun, 4 Dec 2011 17:11:42 +0100 Subject: DREAMWEB: Less direct references to kIcons1 and kIcons2 --- engines/dreamweb/vgagrafx.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index 1c297f1e93..a14c4160f0 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -493,18 +493,16 @@ void DreamGenContext::loadPalFromIFF() { } void DreamGenContext::createPanel() { - Frame *icons = (Frame *)getSegment(data.word(kIcons2)).ptr(0, 0); - showFrame(icons, 0, 8, 0, 2); - showFrame(icons, 160, 8, 0, 2); - showFrame(icons, 0, 104, 0, 2); - showFrame(icons, 160, 104, 0, 2); + showFrame(icons2(), 0, 8, 0, 2); + showFrame(icons2(), 160, 8, 0, 2); + showFrame(icons2(), 0, 104, 0, 2); + showFrame(icons2(), 160, 104, 0, 2); } void DreamGenContext::createPanel2() { createPanel(); - Frame *icons = (Frame *)getSegment(data.word(kIcons2)).ptr(0, 0); - showFrame(icons, 0, 0, 5, 2); - showFrame(icons, 160, 0, 5, 2); + showFrame(icons2(), 0, 0, 5, 2); + showFrame(icons2(), 160, 0, 5, 2); } } /*namespace dreamgen */ -- cgit v1.2.3 From 26889c12432732174bb306285515959c24c4d140 Mon Sep 17 00:00:00 2001 From: Bertrand Augereau Date: Sun, 4 Dec 2011 18:32:55 +0100 Subject: DREAMWEB: Removed 'icons1' and 'icons2' stubs --- engines/dreamweb/vgagrafx.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index a14c4160f0..1088058fe5 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -493,16 +493,16 @@ void DreamGenContext::loadPalFromIFF() { } void DreamGenContext::createPanel() { - showFrame(icons2(), 0, 8, 0, 2); - showFrame(icons2(), 160, 8, 0, 2); - showFrame(icons2(), 0, 104, 0, 2); - showFrame(icons2(), 160, 104, 0, 2); + 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() { createPanel(); - showFrame(icons2(), 0, 0, 5, 2); - showFrame(icons2(), 160, 0, 5, 2); + showFrame(engine->icons2(), 0, 0, 5, 2); + showFrame(engine->icons2(), 160, 0, 5, 2); } } /*namespace dreamgen */ -- cgit v1.2.3 From d559998f90717d40aadde8a8ab22d594116ade27 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Sun, 4 Dec 2011 15:46:04 +0100 Subject: DREAMWEB: Cleanup DreamGenContext::loadPalFromIFF, get rid of readFromFile() --- engines/dreamweb/vgagrafx.cpp | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index 1088058fe5..4ad52378ee 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -431,11 +431,13 @@ void DreamGenContext::zoom() { } void DreamGenContext::panelToMap() { - multiGet(getSegment(data.word(kMapstore)).ptr(0, 0), data.word(kMapxstart) + data.word(kMapadx), data.word(kMapystart) + data.word(kMapady), data.byte(kMapxsize), data.byte(kMapysize)); + SegmentRef mapstore = getSegment(data.word(kMapstore)); + multiGet(getSegment(mapstore).ptr(0, 0), data.word(kMapxstart) + data.word(kMapadx), data.word(kMapystart) + data.word(kMapady), data.byte(kMapxsize), data.byte(kMapysize)); } void DreamGenContext::mapToPanel() { - multiPut(getSegment(data.word(kMapstore)).ptr(0, 0), data.word(kMapxstart) + data.word(kMapadx), data.word(kMapystart) + data.word(kMapady), data.byte(kMapxsize), data.byte(kMapysize)); + SegmentRef mapstore = getSegment(data.word(kMapstore)); + multiPut(getSegment(mapstore).ptr(0, 0), data.word(kMapxstart) + data.word(kMapadx), data.word(kMapystart) + data.word(kMapady), data.byte(kMapxsize), data.byte(kMapysize)); } void DreamGenContext::dumpMap() { @@ -469,15 +471,14 @@ bool DreamGenContext::pixelCheckSet(const ObjPos *pos, uint8 x, uint8 y) { } void DreamGenContext::loadPalFromIFF() { - dx = kPalettescreen; - openFile(); - cx = 2000; - ds = data.word(kMapstore); - dx = 0; - readFromFile(); - closeFile(); - - const uint8 *src = getSegment(data.word(kMapstore)).ptr(0x30, 0); + SegmentRef mapstore = getSegment(data.word(kMapstore)); + + // TODO: Get rid of data blob position kPalettescreen; + engine->openFile("DREAMWEB.PAL"); + engine->readFromFile(mapstore.ptr(0, 2000), 2000); + engine->closeFile(); + + const uint8 *src = mapstore.ptr(0x30, 0); uint8 *dst = mainPalette(); for (size_t i = 0; i < 256*3; ++i) { uint8 c = src[i] / 4; -- cgit v1.2.3 From 060ea998c62a5d4dda7536907ba7b56bcdc3d2e5 Mon Sep 17 00:00:00 2001 From: Bertrand Augereau Date: Sun, 4 Dec 2011 19:48:51 +0100 Subject: DREAMWEB: kMapstore accessor --- engines/dreamweb/vgagrafx.cpp | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index 4ad52378ee..fdeb373004 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -431,13 +431,11 @@ void DreamGenContext::zoom() { } void DreamGenContext::panelToMap() { - SegmentRef mapstore = getSegment(data.word(kMapstore)); - multiGet(getSegment(mapstore).ptr(0, 0), data.word(kMapxstart) + data.word(kMapadx), data.word(kMapystart) + data.word(kMapady), data.byte(kMapxsize), data.byte(kMapysize)); + multiGet(mapStore(), data.word(kMapxstart) + data.word(kMapadx), data.word(kMapystart) + data.word(kMapady), data.byte(kMapxsize), data.byte(kMapysize)); } void DreamGenContext::mapToPanel() { - SegmentRef mapstore = getSegment(data.word(kMapstore)); - multiPut(getSegment(mapstore).ptr(0, 0), data.word(kMapxstart) + data.word(kMapadx), data.word(kMapystart) + data.word(kMapady), data.byte(kMapxsize), data.byte(kMapysize)); + multiPut(mapStore(), data.word(kMapxstart) + data.word(kMapadx), data.word(kMapystart) + data.word(kMapady), data.byte(kMapxsize), data.byte(kMapysize)); } void DreamGenContext::dumpMap() { @@ -471,14 +469,12 @@ bool DreamGenContext::pixelCheckSet(const ObjPos *pos, uint8 x, uint8 y) { } void DreamGenContext::loadPalFromIFF() { - SegmentRef mapstore = getSegment(data.word(kMapstore)); - // TODO: Get rid of data blob position kPalettescreen; engine->openFile("DREAMWEB.PAL"); - engine->readFromFile(mapstore.ptr(0, 2000), 2000); + engine->readFromFile(mapStore(), 2000); engine->closeFile(); - const uint8 *src = mapstore.ptr(0x30, 0); + const uint8 *src = mapStore() + 0x30; uint8 *dst = mainPalette(); for (size_t i = 0; i < 256*3; ++i) { uint8 c = src[i] / 4; -- cgit v1.2.3 From 7074f067620e5ada692f93fa0ff4e80dd7ae4355 Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Sun, 4 Dec 2011 23:43:32 +0100 Subject: DREAMWEB: Remove more unused data --- engines/dreamweb/vgagrafx.cpp | 1 - 1 file changed, 1 deletion(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index fdeb373004..847aa08bed 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -469,7 +469,6 @@ bool DreamGenContext::pixelCheckSet(const ObjPos *pos, uint8 x, uint8 y) { } void DreamGenContext::loadPalFromIFF() { - // TODO: Get rid of data blob position kPalettescreen; engine->openFile("DREAMWEB.PAL"); engine->readFromFile(mapStore(), 2000); engine->closeFile(); -- cgit v1.2.3 From 5f992234deb2e0348126fb3f76907b8a586c90be Mon Sep 17 00:00:00 2001 From: D G Turner Date: Mon, 5 Dec 2011 15:06:58 +0000 Subject: DREAMWEB: Modified 'showPCX' to allow passing of file name string. This will allow migration of fixing string values in the cs segment. --- engines/dreamweb/vgagrafx.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index 847aa08bed..e7efc22bf3 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -219,8 +219,7 @@ static Common::String getFilename(Context &context) { return name; } -void DreamGenContext::showPCX() { - Common::String name = getFilename(*this); +void DreamGenContext::showPCX(::Common::String name) { Common::File pcxFile; if (!pcxFile.open(name)) { @@ -289,6 +288,10 @@ void DreamGenContext::showPCX() { pcxFile.close(); } +void DreamGenContext::showPCX() { + showPCX(getFilename(*this)); +} + void DreamGenContext::frameOutV(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, int16 x, int16 y) { // NB : These resilience checks were not in the original engine, but did they result in undefined behaviour // or was something broken during porting to C++? -- cgit v1.2.3 From e19f7898b8b05c0e24b200809cef82b5e56ff1e9 Mon Sep 17 00:00:00 2001 From: D G Turner Date: Mon, 5 Dec 2011 15:24:58 +0000 Subject: DREAMWEB: Minor fix to 'showPCX' call to ensure constant parameters. --- engines/dreamweb/vgagrafx.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index e7efc22bf3..c10fb52686 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -219,7 +219,7 @@ static Common::String getFilename(Context &context) { return name; } -void DreamGenContext::showPCX(::Common::String name) { +void DreamGenContext::showPCX(const ::Common::String &name) { Common::File pcxFile; if (!pcxFile.open(name)) { -- cgit v1.2.3 From 585bd7b0efc7455ed8e66e802408af8956273337 Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Mon, 5 Dec 2011 19:26:08 +0100 Subject: DREAMWEB: Untangle namespaces --- engines/dreamweb/vgagrafx.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index c10fb52686..440688dce0 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -219,7 +219,7 @@ static Common::String getFilename(Context &context) { return name; } -void DreamGenContext::showPCX(const ::Common::String &name) { +void DreamGenContext::showPCX(const Common::String &name) { Common::File pcxFile; if (!pcxFile.open(name)) { -- cgit v1.2.3 From 887b5c8cdde0c32d0a7b5ed24d82e52f5dc04d92 Mon Sep 17 00:00:00 2001 From: D G Turner Date: Mon, 5 Dec 2011 21:38:31 +0000 Subject: DREAMWEB: Remove unused 'openFile', merge duplicated 'getFilename' --- engines/dreamweb/vgagrafx.cpp | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index 440688dce0..4848e148e8 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -21,6 +21,7 @@ */ #include "dreamweb/dreamweb.h" +#include "dreamweb/stubs.h" #include "engines/util.h" #include "graphics/surface.h" @@ -210,15 +211,6 @@ void DreamGenContext::setMode() { initGraphics(320, 200, false); } -static Common::String getFilename(Context &context) { - uint16 name_ptr = context.dx; - Common::String name; - uint8 c; - while((c = context.cs.byte(name_ptr++)) != 0) - name += (char)c; - return name; -} - void DreamGenContext::showPCX(const Common::String &name) { Common::File pcxFile; -- cgit v1.2.3 From 0193ef590da121ca4053510d53aad0b3d6b7052a Mon Sep 17 00:00:00 2001 From: Max Horn Date: Tue, 6 Dec 2011 17:43:23 +0100 Subject: DREAMWEB: Cleanup end of namespace comments --- engines/dreamweb/vgagrafx.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index 4848e148e8..39142db574 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -496,5 +496,4 @@ void DreamGenContext::createPanel2() { showFrame(engine->icons2(), 160, 0, 5, 2); } -} /*namespace dreamgen */ - +} // End of namespace DreamGen -- cgit v1.2.3 From 3840e86d0d3267a80c96ad52606267c94c46f688 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Tue, 6 Dec 2011 17:54:32 +0100 Subject: DREAMWEB: Paranoia range check --- engines/dreamweb/vgagrafx.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index 39142db574..3e1d97e5ca 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -182,6 +182,7 @@ void DreamGenContext::doShake() { 0, -2, 3, -2, 0, 2, 4, -1, 1, -3, 3, 0, }; + assert(counter < ARRAYSIZE(shakeTable)); int offset = shakeTable[counter]; engine->setShakePos(offset >= 0 ? offset : -offset); } -- cgit v1.2.3 From 1c9a3e7da1b9e3adb0189dfb60347d31d21415b7 Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Wed, 7 Dec 2011 01:50:26 +0200 Subject: DREAMWEB: 'dumpkeypad', 'dumpsymbol', 'dumpsymbox', 'dumpzoom' --- engines/dreamweb/vgagrafx.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index 3e1d97e5ca..1e678d059b 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -497,4 +497,25 @@ void DreamGenContext::createPanel2() { showFrame(engine->icons2(), 160, 0, 5, 2); } +void DreamGenContext::dumpKeypad() { + multiDump((36 + 112) - 3, 72 - 4, 120, 90); +} + +void DreamGenContext::dumpSymbol() { + data.byte(kNewtextline) = 0; + multiDump(64, 56 + 20, 104, 60); +} + +void DreamGenContext::dumpZoom() { + if (data.byte(kZoomon) == 1) + multiDump(8 + 5, 132 + 4, 46, 40); +} + +void DreamGenContext::dumpSymBox() { + if (data.word(kDumpx) != 0xFFFF) { + multiDump(data.word(kDumpx), data.word(kDumpy), 30, 77); + data.word(kDumpx) = 0xFFFF; + } +} + } // End of namespace DreamGen -- cgit v1.2.3 From 7c81f75d276c2f6897780172df61b9cbea7b2719 Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Wed, 7 Dec 2011 08:25:14 +0100 Subject: DREAMWEB: Use symbolic constants and move functions to right files --- engines/dreamweb/vgagrafx.cpp | 21 --------------------- 1 file changed, 21 deletions(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index 1e678d059b..3e1d97e5ca 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -497,25 +497,4 @@ void DreamGenContext::createPanel2() { showFrame(engine->icons2(), 160, 0, 5, 2); } -void DreamGenContext::dumpKeypad() { - multiDump((36 + 112) - 3, 72 - 4, 120, 90); -} - -void DreamGenContext::dumpSymbol() { - data.byte(kNewtextline) = 0; - multiDump(64, 56 + 20, 104, 60); -} - -void DreamGenContext::dumpZoom() { - if (data.byte(kZoomon) == 1) - multiDump(8 + 5, 132 + 4, 46, 40); -} - -void DreamGenContext::dumpSymBox() { - if (data.word(kDumpx) != 0xFFFF) { - multiDump(data.word(kDumpx), data.word(kDumpy), 30, 77); - data.word(kDumpx) = 0xFFFF; - } -} - } // End of namespace DreamGen -- cgit v1.2.3 From fdb8b305e00e14edb4f97dc598e82d975dc29ca1 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Tue, 6 Dec 2011 20:34:58 +0100 Subject: DREAMWEB: Move more methods to DreamBase, cleanup --- engines/dreamweb/vgagrafx.cpp | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index 3e1d97e5ca..4d9eb0885d 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -106,15 +106,15 @@ void DreamGenContext::workToScreen() { cx = 0; } -void DreamGenContext::printUnderMon() { +void DreamBase::printUnderMon() { engine->printUnderMonitor(); } -void DreamGenContext::cls() { +void DreamBase::cls() { engine->cls(); } -void DreamGenContext::frameOutNm(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, uint16 x, uint16 y) { +void DreamBase::frameOutNm(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, uint16 x, uint16 y) { dst += pitch * y + x; for (uint16 j = 0; j < height; ++j) { @@ -124,7 +124,7 @@ void DreamGenContext::frameOutNm(uint8 *dst, const uint8 *src, uint16 pitch, uin } } -void DreamGenContext::frameOutBh(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, uint16 x, uint16 y) { +void DreamBase::frameOutBh(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, uint16 x, uint16 y) { uint16 stride = pitch - width; dst += y * pitch + x; @@ -140,7 +140,7 @@ void DreamGenContext::frameOutBh(uint8 *dst, const uint8 *src, uint16 pitch, uin } } -void DreamGenContext::frameOutFx(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, uint16 x, uint16 y) { +void DreamBase::frameOutFx(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, uint16 x, uint16 y) { uint16 stride = pitch - width; dst += y * pitch + x; dst -= width; @@ -157,8 +157,8 @@ void DreamGenContext::frameOutFx(uint8 *dst, const uint8 *src, uint16 pitch, uin } } -void DreamGenContext::doShake() { - uint8 &counter = data.byte(kShakecounter); +void DreamBase::doShake() { + uint8 &counter = data.byte(DreamGenContext::kShakecounter); if (counter == 48) return; @@ -227,8 +227,7 @@ void DreamGenContext::showPCX(const Common::String &name) { // the color components have to be adjusted from 8 to 6 bits. pcxFile.seek(16, SEEK_SET); - es = data.word(kBuffers); - mainGamePal = es.ptr(kMaingamepal, 768); + mainGamePal = getSegment(data.word(DreamGenContext::kBuffers)).ptr(DreamGenContext::kMaingamepal, 768); pcxFile.read(mainGamePal, 48); memset(mainGamePal + 48, 0xff, 720); @@ -281,11 +280,7 @@ void DreamGenContext::showPCX(const Common::String &name) { pcxFile.close(); } -void DreamGenContext::showPCX() { - showPCX(getFilename(*this)); -} - -void DreamGenContext::frameOutV(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, int16 x, int16 y) { +void DreamBase::frameOutV(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, int16 x, int16 y) { // NB : These resilience checks were not in the original engine, but did they result in undefined behaviour // or was something broken during porting to C++? assert(pitch == 320); -- cgit v1.2.3 From dc34fc1dfb04c8ef3d0fb31ba7176b3234fd8680 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Tue, 6 Dec 2011 20:55:59 +0100 Subject: DREAMWEB: Move generated constants out of class DreamGenContext --- engines/dreamweb/vgagrafx.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index 4d9eb0885d..20eb840628 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -158,7 +158,7 @@ void DreamBase::frameOutFx(uint8 *dst, const uint8 *src, uint16 pitch, uint16 wi } void DreamBase::doShake() { - uint8 &counter = data.byte(DreamGenContext::kShakecounter); + uint8 &counter = data.byte(kShakecounter); if (counter == 48) return; @@ -227,7 +227,7 @@ void DreamGenContext::showPCX(const Common::String &name) { // the color components have to be adjusted from 8 to 6 bits. pcxFile.seek(16, SEEK_SET); - mainGamePal = getSegment(data.word(DreamGenContext::kBuffers)).ptr(DreamGenContext::kMaingamepal, 768); + mainGamePal = getSegment(data.word(kBuffers)).ptr(kMaingamepal, 768); pcxFile.read(mainGamePal, 48); memset(mainGamePal + 48, 0xff, 720); -- cgit v1.2.3 From e862aa4f7cc9bacc2dc59f46c501fef9404ceee5 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Wed, 7 Dec 2011 12:09:09 +0100 Subject: DREAMWEB: Turn workspace from a segment into a plain array --- engines/dreamweb/vgagrafx.cpp | 9 --------- 1 file changed, 9 deletions(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index 20eb840628..54c737d07f 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -27,15 +27,6 @@ namespace DreamGen { -uint8 *DreamGenContext::workspace() { - uint8 *result = getSegment(data.word(kWorkspace)).ptr(0, 0); - return result; -} - -void DreamGenContext::allocateWork() { - data.word(kWorkspace) = allocateMem(0x1000); -} - void DreamGenContext::multiGet() { multiGet(ds.ptr(si, 0), di, bx, cl, ch); si += cl * ch; -- cgit v1.2.3 From 4c64f87892d0fa85fe908ef8a19a724b3dc27bac Mon Sep 17 00:00:00 2001 From: Max Horn Date: Wed, 7 Dec 2011 14:19:44 +0100 Subject: DREAMWEB: Some more workspace cleanup --- engines/dreamweb/vgagrafx.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index 54c737d07f..c8280bdbbb 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -380,7 +380,7 @@ void DreamGenContext::showFrame() { ch = height; } -void DreamGenContext::clearWork() { +void DreamBase::clearWork() { memset(workspace(), 0, 320*200); } -- cgit v1.2.3 From c6ec610d5c8e665a0369861be925e2588f4a3d2a Mon Sep 17 00:00:00 2001 From: Max Horn Date: Wed, 7 Dec 2011 14:37:30 +0100 Subject: DREAMWEB: Move some more things to DreamBase --- engines/dreamweb/vgagrafx.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index c8280bdbbb..17019938f7 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -34,7 +34,7 @@ void DreamGenContext::multiGet() { cx = 0; } -void DreamGenContext::multiGet(uint8 *dst, uint16 x, uint16 y, uint8 w, uint8 h) { +void DreamBase::multiGet(uint8 *dst, uint16 x, uint16 y, uint8 w, uint8 h) { assert(x < 320); assert(y < 200); const uint8 *src = workspace() + x + y * kScreenwidth; @@ -57,7 +57,7 @@ void DreamGenContext::multiPut() { cx = 0; } -void DreamGenContext::multiPut(const uint8 *src, uint16 x, uint16 y, uint8 w, uint8 h) { +void DreamBase::multiPut(const uint8 *src, uint16 x, uint16 y, uint8 w, uint8 h) { assert(x < 320); assert(y < 200); uint8 *dst = workspace() + x + y * kScreenwidth; @@ -73,12 +73,6 @@ void DreamGenContext::multiPut(const uint8 *src, uint16 x, uint16 y, uint8 w, ui } } -void DreamGenContext::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); - engine->blit(workspace() + offset, kScreenwidth, x, y, width, height); -} - void DreamGenContext::multiDump() { multiDump(di, bx, cl, ch); unsigned offset = di + bx * kScreenwidth; @@ -86,7 +80,13 @@ void DreamGenContext::multiDump() { cx = 0; } -void DreamGenContext::workToScreenCPP() { +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); + engine->blit(workspace() + offset, kScreenwidth, x, y, width, height); +} + +void DreamBase::workToScreenCPP() { engine->blit(workspace(), 320, 0, 0, 320, 200); } -- cgit v1.2.3 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/vgagrafx.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'engines/dreamweb/vgagrafx.cpp') 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 From cb0a12033b97064b35c30d5d86406b4b16517532 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Thu, 8 Dec 2011 00:06:46 +0100 Subject: DREAMWEB: Move more stuff to DreamBase --- engines/dreamweb/vgagrafx.cpp | 36 ++++++++++++------------------------ 1 file changed, 12 insertions(+), 24 deletions(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index 4c3ba57e6c..8d303d1a04 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -178,32 +178,16 @@ void DreamBase::doShake() { engine->setShakePos(offset >= 0 ? offset : -offset); } -void DreamGenContext::vSync() { - push(ax); - push(bx); - push(cx); - push(dx); - push(si); - push(di); - push(es); - push(ds); +void DreamBase::vSync() { engine->waitForVSync(); - ds = pop(); - es = pop(); - di = pop(); - si = pop(); - dx = pop(); - cx = pop(); - bx = pop(); - ax = pop(); } -void DreamGenContext::setMode() { +void DreamBase::setMode() { vSync(); initGraphics(320, 200, false); } -void DreamGenContext::showPCX(const Common::String &name) { +void DreamBase::showPCX(const Common::String &name) { Common::File pcxFile; if (!pcxFile.open(name)) { @@ -415,19 +399,23 @@ void DreamGenContext::zoom() { data.byte(kDidzoom) = 1; } -void DreamGenContext::panelToMap() { +uint8 *DreamBase::mapStore() { + return getSegment(data.word(kMapstore)).ptr(0, 0); +} + +void DreamBase::panelToMap() { multiGet(mapStore(), data.word(kMapxstart) + data.word(kMapadx), data.word(kMapystart) + data.word(kMapady), data.byte(kMapxsize), data.byte(kMapysize)); } -void DreamGenContext::mapToPanel() { +void DreamBase::mapToPanel() { multiPut(mapStore(), data.word(kMapxstart) + data.word(kMapadx), data.word(kMapystart) + data.word(kMapady), data.byte(kMapxsize), data.byte(kMapysize)); } -void DreamGenContext::dumpMap() { +void DreamBase::dumpMap() { multiDump(data.word(kMapxstart) + data.word(kMapadx), data.word(kMapystart) + data.word(kMapady), data.byte(kMapxsize), data.byte(kMapysize)); } -void DreamGenContext::transferInv() { +void DreamBase::transferInv() { const Frame *freeFrames = (const Frame *)getSegment(data.word(kFreeframes)).ptr(kFrframedata, 0); const Frame *freeFrame = freeFrames + (3 * data.byte(kItemtotran) + 1); Frame *exFrames = (Frame *)getSegment(data.word(kExtras)).ptr(kExframedata, 0); @@ -453,7 +441,7 @@ bool DreamGenContext::pixelCheckSet(const ObjPos *pos, uint8 x, uint8 y) { return *ptr != 0; } -void DreamGenContext::loadPalFromIFF() { +void DreamBase::loadPalFromIFF() { engine->openFile("DREAMWEB.PAL"); engine->readFromFile(mapStore(), 2000); engine->closeFile(); -- cgit v1.2.3 From 5b43fb6be7650a29b9aad6b504599f7b8600b419 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Thu, 8 Dec 2011 10:02:51 +0100 Subject: DREAMWEB: Code formatting --- engines/dreamweb/vgagrafx.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index 8d303d1a04..2a69124fdf 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -43,7 +43,7 @@ void DreamBase::multiGet(uint8 *dst, uint16 x, uint16 y, uint8 w, uint8 h) { if (x + w > 320) w = 320 - x; //debug(1, "multiGet %u,%u %ux%u -> segment: %04x->%04x", x, y, w, h, (uint16)ds, (uint16)es); - for(unsigned l = 0; l < h; ++l) { + for (unsigned l = 0; l < h; ++l) { const uint8 *src_p = src + kScreenwidth * l; uint8 *dst_p = dst + w * l; memcpy(dst_p, src_p, w); @@ -66,7 +66,7 @@ void DreamBase::multiPut(const uint8 *src, uint16 x, uint16 y, uint8 w, uint8 h) if (x + w > 320) w = 320 - x; //debug(1, "multiPut %ux%u -> segment: %04x->%04x", w, h, (uint16)ds, (uint16)es); - for(unsigned l = 0; l < h; ++l) { + for (unsigned l = 0; l < h; ++l) { const uint8 *src_p = src + w * l; uint8 *dst_p = dst + kScreenwidth * l; memcpy(dst_p, src_p, w); @@ -260,26 +260,26 @@ void DreamBase::frameOutV(uint8 *dst, const uint8 *src, uint16 pitch, uint16 wid // or was something broken during porting to C++? assert(pitch == 320); - if(x < 0) { + if (x < 0) { assert(width >= -x); width -= -x; src += -x; x = 0; } - if(y < 0) { + if (y < 0) { assert(height >= -y); height -= -y; src += (-y) * width; y = 0; } - if(x >= 320) + if (x >= 320) return; - if(y >= 200) + if (y >= 200) return; - if(x + width > 320) { + if (x + width > 320) { width = 320 - x; } - if(y + height > 200) { + if (y + height > 200) { height = 200 - y; } @@ -384,8 +384,8 @@ void DreamGenContext::zoom() { uint16 dstOffset = (kZoomy + 4) * 320 + (kZoomx + 5); const uint8 *src = workspace() + srcOffset; uint8 *dst = workspace() + dstOffset; - for(size_t i=0; i<20; ++i) { - for(size_t j=0; j<23; ++j) { + for (size_t i = 0; i < 20; ++i) { + for (size_t j = 0; j < 23; ++j) { uint8 v = src[j]; dst[2*j+0] = v; dst[2*j+1] = v; -- cgit v1.2.3 From 51b724fa43678d33cdbbe8336ae4b0960519c160 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Fri, 9 Dec 2011 15:34:39 +0100 Subject: DREAMWEB: Remove DreamGenContext::closeFile, stop using kHandle --- engines/dreamweb/vgagrafx.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index 2a69124fdf..12feb5690e 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -442,9 +442,10 @@ bool DreamGenContext::pixelCheckSet(const ObjPos *pos, uint8 x, uint8 y) { } void DreamBase::loadPalFromIFF() { - engine->openFile("DREAMWEB.PAL"); - engine->readFromFile(mapStore(), 2000); - engine->closeFile(); + Common::File palFile; + palFile.open("DREAMWEB.PAL"); + palFile.read(mapStore(), 2000); + palFile.close(); const uint8 *src = mapStore() + 0x30; uint8 *dst = mainPalette(); -- cgit v1.2.3 From 571fcfe15db35335df9c304f74b55751278931a4 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Fri, 9 Dec 2011 18:17:10 +0100 Subject: DREAMWEB: Move fadeDOS to vgafades.cpp, cleanup --- engines/dreamweb/vgagrafx.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index 12feb5690e..c7d17c1012 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -202,7 +202,7 @@ void DreamBase::showPCX(const Common::String &name) { // the color components have to be adjusted from 8 to 6 bits. pcxFile.seek(16, SEEK_SET); - mainGamePal = getSegment(data.word(kBuffers)).ptr(kMaingamepal, 768); + mainGamePal = mainPalette(); pcxFile.read(mainGamePal, 48); memset(mainGamePal + 48, 0xff, 720); -- cgit v1.2.3 From ef2096736d9b14c842094b94bff1b772de311e72 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Fri, 9 Dec 2011 18:41:45 +0100 Subject: DREAMWEB: Convert greyscaleSum, allPalette, dumpCurrent --- engines/dreamweb/vgagrafx.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index c7d17c1012..cea9dbef8c 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -183,7 +183,7 @@ void DreamBase::vSync() { } void DreamBase::setMode() { - vSync(); + engine->waitForVSync(); initGraphics(320, 200, false); } -- cgit v1.2.3 From 2bdcbadbfe6badc8ab7c75bd27b988be7916828d Mon Sep 17 00:00:00 2001 From: Max Horn Date: Sun, 18 Dec 2011 23:35:03 +0100 Subject: DREAMWEB: Yet more things to DreamBase --- engines/dreamweb/vgagrafx.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index cea9dbef8c..b1a23a6c96 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -371,7 +371,7 @@ void DreamBase::clearWork() { memset(workspace(), 0, 320*200); } -void DreamGenContext::zoom() { +void DreamBase::zoom() { if (data.word(kWatchingtime) != 0) return; if (data.byte(kZoomon) != 1) @@ -432,7 +432,7 @@ void DreamBase::transferInv() { data.word(kExframepos) += byteCount; } -bool DreamGenContext::pixelCheckSet(const ObjPos *pos, uint8 x, uint8 y) { +bool DreamBase::pixelCheckSet(const ObjPos *pos, uint8 x, uint8 y) { x -= pos->xMin; y -= pos->yMin; SetObject *setObject = getSetAd(pos->index); -- cgit v1.2.3 From 061d24bb829a9b4ee08016fb25781802799fae14 Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Fri, 23 Dec 2011 22:47:20 +0100 Subject: DREAMWEB: Move palettes out of buffers --- engines/dreamweb/vgagrafx.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index b1a23a6c96..87ab998553 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -202,7 +202,7 @@ void DreamBase::showPCX(const Common::String &name) { // the color components have to be adjusted from 8 to 6 bits. pcxFile.seek(16, SEEK_SET); - mainGamePal = mainPalette(); + mainGamePal = _mainPal; pcxFile.read(mainGamePal, 48); memset(mainGamePal + 48, 0xff, 720); @@ -448,7 +448,7 @@ void DreamBase::loadPalFromIFF() { palFile.close(); const uint8 *src = mapStore() + 0x30; - uint8 *dst = mainPalette(); + uint8 *dst = _mainPal; for (size_t i = 0; i < 256*3; ++i) { uint8 c = src[i] / 4; if (data.byte(kBrightness) == 1) { -- cgit v1.2.3 From d015f5d4465b971a2dc99d51a7e4c11cb23103a7 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Mon, 26 Dec 2011 00:58:37 +0100 Subject: DREAMWEB: Remove some dead code --- engines/dreamweb/vgagrafx.cpp | 14 -------------- 1 file changed, 14 deletions(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index 87ab998553..1c39021420 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -90,13 +90,6 @@ void DreamBase::workToScreenCPP() { engine->blit(workspace(), 320, 0, 0, 320, 200); } -void DreamGenContext::workToScreen() { - workToScreenCPP(); - uint size = 320 * 200; - di = si = size; - cx = 0; -} - void DreamBase::printUnderMon() { engine->printUnderMonitor(); } @@ -360,13 +353,6 @@ void DreamBase::showFrame(const Frame *frameData, uint16 x, uint16 y, uint16 fra return; } -void DreamGenContext::showFrame() { - uint8 width, height; - showFrame((Frame *)ds.ptr(0, 0), di, bx, ax & 0x1ff, ah & 0xfe, &width, &height); - cl = width; - ch = height; -} - void DreamBase::clearWork() { memset(workspace(), 0, 320*200); } -- cgit v1.2.3 From 04a147921f1259e8874c7f9b723e8b3a8158f8c8 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Mon, 26 Dec 2011 00:59:04 +0100 Subject: DREAMWEB: Rename workToScreenCPP to workToScreen --- engines/dreamweb/vgagrafx.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index 1c39021420..ce89711f87 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -86,7 +86,7 @@ void DreamBase::multiDump(uint16 x, uint16 y, uint8 width, uint8 height) { engine->blit(workspace() + offset, kScreenwidth, x, y, width, height); } -void DreamBase::workToScreenCPP() { +void DreamBase::workToScreen() { engine->blit(workspace(), 320, 0, 0, 320, 200); } -- cgit v1.2.3 From 6f85de6b6e9b2af820d0294db16881d41368d693 Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Mon, 26 Dec 2011 19:35:47 +0100 Subject: DREAMWEB: Combine transferMap and transferInv --- engines/dreamweb/vgagrafx.cpp | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index ce89711f87..ecb295a353 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -401,23 +401,6 @@ void DreamBase::dumpMap() { multiDump(data.word(kMapxstart) + data.word(kMapadx), data.word(kMapystart) + data.word(kMapady), data.byte(kMapxsize), data.byte(kMapysize)); } -void DreamBase::transferInv() { - const Frame *freeFrames = (const Frame *)getSegment(data.word(kFreeframes)).ptr(kFrframedata, 0); - const Frame *freeFrame = freeFrames + (3 * data.byte(kItemtotran) + 1); - Frame *exFrames = (Frame *)getSegment(data.word(kExtras)).ptr(kExframedata, 0); - Frame *exFrame = exFrames + (3 * data.byte(kExpos) + 1); - exFrame->width = freeFrame->width; - exFrame->height = freeFrame->height; - exFrame->x = freeFrame->x; - exFrame->y = freeFrame->y; - uint16 byteCount = freeFrame->width * freeFrame->height; - const uint8 *src = getSegment(data.word(kFreeframes)).ptr(kFrframes + freeFrame->ptr(), byteCount); - uint8 *dst = getSegment(data.word(kExtras)).ptr(kExframes + data.word(kExframepos), byteCount); - memcpy(dst, src, byteCount); - exFrame->setPtr(data.word(kExframepos)); - data.word(kExframepos) += byteCount; -} - bool DreamBase::pixelCheckSet(const ObjPos *pos, uint8 x, uint8 y) { x -= pos->xMin; y -= pos->yMin; @@ -466,4 +449,25 @@ void DreamBase::showPanel() { showFrame(engine->icons1(), 192, 0, 19, 0); } +void DreamBase::transferFrame(uint8 from, uint8 to, uint8 offset) { + const Frame *freeFrames = (const Frame *)getSegment(data.word(kFreeframes)).ptr(kFrframedata, 0); + const Frame &freeFrame = freeFrames[3*from + offset]; + + Frame *exFrames = (Frame *)getSegment(data.word(kExtras)).ptr(kExframedata, 0); + Frame &exFrame = exFrames[3*to + offset]; + + exFrame.width = freeFrame.width; + exFrame.height = freeFrame.height; + exFrame.x = freeFrame.x; + exFrame.y = freeFrame.y; + uint16 byteCount = freeFrame.width * freeFrame.height; + + const uint8 *src = getSegment(data.word(kFreeframes)).ptr(kFrframes + freeFrame.ptr(), byteCount); + uint8 *dst = getSegment(data.word(kExtras)).ptr(kExframes + data.word(kExframepos), byteCount); + memcpy(dst, src, byteCount); + + exFrame.setPtr(data.word(kExframepos)); + data.word(kExframepos) += byteCount; +} + } // End of namespace DreamGen -- cgit v1.2.3 From 4c66f74b58e9a2c191f22a37f485047dd19be131 Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Mon, 26 Dec 2011 22:09:47 +0200 Subject: DREAMWEB: Remove dead code and move most functions to DreamBase --- engines/dreamweb/vgagrafx.cpp | 21 --------------------- 1 file changed, 21 deletions(-) (limited to 'engines/dreamweb/vgagrafx.cpp') 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); -- cgit v1.2.3 From 1ba4f0a1a8965ee141987693770d2bcd3b74c292 Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Mon, 26 Dec 2011 22:31:50 +0200 Subject: 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 --- engines/dreamweb/vgagrafx.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index 06743ed3bb..ecb295a353 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); -- cgit v1.2.3 From fb074000869310cbc949deeb14d8380aa0f93e0d Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Mon, 26 Dec 2011 22:34:35 +0200 Subject: DREAMWEB: Remove dead code --- engines/dreamweb/vgagrafx.cpp | 21 --------------------- 1 file changed, 21 deletions(-) (limited to 'engines/dreamweb/vgagrafx.cpp') 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); -- cgit v1.2.3 From 3ff26ba84fd298886c6515407c61751984e05f68 Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Tue, 27 Dec 2011 03:00:00 +0200 Subject: DREAMWEB: Move all of the functions to DreamBase and remove stubs.h --- engines/dreamweb/vgagrafx.cpp | 1 - 1 file changed, 1 deletion(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index 06743ed3bb..33a1770d93 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -21,7 +21,6 @@ */ #include "dreamweb/dreamweb.h" -#include "dreamweb/stubs.h" #include "engines/util.h" #include "graphics/surface.h" -- cgit v1.2.3 From 551177908510bad6257bec76859bc5d4de8bc932 Mon Sep 17 00:00:00 2001 From: D G Turner Date: Tue, 27 Dec 2011 02:18:52 +0000 Subject: DREAMWEB: Minor removal of runtime residue in vgagrafx.cpp Also, minor formatting fixes. --- engines/dreamweb/vgagrafx.cpp | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index 33a1770d93..7e74264dd7 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -281,13 +281,13 @@ void DreamBase::showFrame(const Frame *frameData, uint16 x, uint16 y, uint16 fra return; } -//notBlankShow: + // "notBlankShow" if ((effectsFlag & 128) == 0) { x += frame->x; y += frame->y; } -//skipOffsets: + // "skipOffsets" *width = frame->width; *height = frame->height; const uint8 *pSrc = ((const uint8 *)frameData) + frame->ptr() + 2080; @@ -297,27 +297,21 @@ void DreamBase::showFrame(const Frame *frameData, uint16 x, uint16 y, uint16 fra x -= *width / 2; y -= *height / 2; } - if (effectsFlag & 64) { //diffDest + 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 - /* - push(ax); - al = x - data.word(kMapadx); - ah = y - data.word(kMapady); - //addToPrintList(); // NB: Commented in the original asm - ax = pop(); - */ + if (effectsFlag & 8) { // printList + //addToPrintList(x - data.word(kMapadx), y - data.word(kMapady)); // NB: Commented in the original asm } - if (effectsFlag & 4) { //flippedX + if (effectsFlag & 4) { // flippedX frameOutFx(workspace(), pSrc, 320, *width, *height, x, y); return; } - if (effectsFlag & 2) { //noMask + if (effectsFlag & 2) { // noMask frameOutNm(workspace(), pSrc, 320, *width, *height, x, y); return; } @@ -326,7 +320,7 @@ void DreamBase::showFrame(const Frame *frameData, uint16 x, uint16 y, uint16 fra return; } } -//noEffects: + // "noEffects" frameOutV(workspace(), pSrc, 320, *width, *height, x, y); return; } -- cgit v1.2.3 From 39a0153fbf503854011bc1947ef261e06868d971 Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Tue, 27 Dec 2011 13:52:13 +0100 Subject: DREAMWEB: Remove mapStore segment --- engines/dreamweb/vgagrafx.cpp | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index 7e74264dd7..f611a79329 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -357,16 +357,12 @@ void DreamBase::zoom() { data.byte(kDidzoom) = 1; } -uint8 *DreamBase::mapStore() { - return getSegment(data.word(kMapstore)).ptr(0, 0); -} - void DreamBase::panelToMap() { - multiGet(mapStore(), data.word(kMapxstart) + data.word(kMapadx), data.word(kMapystart) + data.word(kMapady), data.byte(kMapxsize), data.byte(kMapysize)); + multiGet(_mapStore, data.word(kMapxstart) + data.word(kMapadx), data.word(kMapystart) + data.word(kMapady), data.byte(kMapxsize), data.byte(kMapysize)); } void DreamBase::mapToPanel() { - multiPut(mapStore(), data.word(kMapxstart) + data.word(kMapadx), data.word(kMapystart) + data.word(kMapady), data.byte(kMapxsize), data.byte(kMapysize)); + multiPut(_mapStore, data.word(kMapxstart) + data.word(kMapadx), data.word(kMapystart) + data.word(kMapady), data.byte(kMapxsize), data.byte(kMapysize)); } void DreamBase::dumpMap() { @@ -384,11 +380,12 @@ bool DreamBase::pixelCheckSet(const ObjPos *pos, uint8 x, uint8 y) { void DreamBase::loadPalFromIFF() { Common::File palFile; + uint8* buf = new uint8[2000]; palFile.open("DREAMWEB.PAL"); - palFile.read(mapStore(), 2000); + palFile.read(buf, 2000); palFile.close(); - const uint8 *src = mapStore() + 0x30; + const uint8 *src = buf + 0x30; uint8 *dst = _mainPal; for (size_t i = 0; i < 256*3; ++i) { uint8 c = src[i] / 4; @@ -401,6 +398,8 @@ void DreamBase::loadPalFromIFF() { } dst[i] = c; } + + delete[] buf; } void DreamBase::createPanel() { -- cgit v1.2.3 From 90cb52b7f6364a0d4b83cdc91c76c7edf4fcf79d Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Tue, 27 Dec 2011 19:37:22 +0100 Subject: DREAMWEB: Streamline graphics file access --- engines/dreamweb/vgagrafx.cpp | 104 +++++++++++++++++++++++++++--------------- 1 file changed, 67 insertions(+), 37 deletions(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index f611a79329..19abc2b35d 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -273,29 +273,17 @@ void DreamBase::showFrame(const Frame *frameData, uint16 x, uint16 y, uint16 fra showFrame(frameData, x, y, frameNumber, effectsFlag, &width, &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; - *height = 0; - return; - } - // "notBlankShow" - if ((effectsFlag & 128) == 0) { - x += frame->x; - y += frame->y; - } - - // "skipOffsets" - *width = frame->width; - *height = frame->height; - const uint8 *pSrc = ((const uint8 *)frameData) + frame->ptr() + 2080; +void DreamBase::showFrame(const GraphicsFile &frameData, uint16 x, uint16 y, uint16 frameNumber, uint8 effectsFlag) { + uint8 width, height; + showFrame(frameData, x, y, frameNumber, effectsFlag, &width, &height); +} +void DreamBase::showFrameInternal(const uint8 *pSrc, uint16 x, uint16 y, uint8 effectsFlag, uint8 width, uint8 height) { if (effectsFlag) { if (effectsFlag & 128) { //centred - x -= *width / 2; - y -= *height / 2; + x -= width / 2; + y -= height / 2; } if (effectsFlag & 64) { // diffDest error("Unsupported DreamBase::showFrame effectsFlag %d", effectsFlag); @@ -308,21 +296,64 @@ void DreamBase::showFrame(const Frame *frameData, uint16 x, uint16 y, uint16 fra //addToPrintList(x - data.word(kMapadx), y - data.word(kMapady)); // NB: Commented in the original asm } if (effectsFlag & 4) { // flippedX - frameOutFx(workspace(), pSrc, 320, *width, *height, x, y); + frameOutFx(workspace(), pSrc, 320, width, height, x, y); return; } if (effectsFlag & 2) { // noMask - frameOutNm(workspace(), pSrc, 320, *width, *height, x, y); + frameOutNm(workspace(), pSrc, 320, width, height, x, y); return; } if (effectsFlag & 32) { - frameOutBh(workspace(), pSrc, 320, *width, *height, x, y); + frameOutBh(workspace(), pSrc, 320, width, height, x, y); return; } } // "noEffects" - frameOutV(workspace(), pSrc, 320, *width, *height, x, y); - return; + frameOutV(workspace(), pSrc, 320, width, height, x, y); +} + +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; + *height = 0; + return; + } + + // "notBlankShow" + if ((effectsFlag & 128) == 0) { + x += frame->x; + y += frame->y; + } + + // "skipOffsets" + *width = frame->width; + *height = frame->height; + const uint8 *pSrc = ((const uint8 *)frameData) + frame->ptr() + 2080; + + showFrameInternal(pSrc, x, y, effectsFlag, *width, *height); +} + +void DreamBase::showFrame(const GraphicsFile &frameData, uint16 x, uint16 y, uint16 frameNumber, uint8 effectsFlag, uint8 *width, uint8 *height) { + const Frame *frame = &frameData._frames[frameNumber]; + if ((frame->width == 0) && (frame->height == 0)) { + *width = 0; + *height = 0; + return; + } + + // "notBlankShow" + if ((effectsFlag & 128) == 0) { + x += frame->x; + y += frame->y; + } + + // "skipOffsets" + *width = frame->width; + *height = frame->height; + const uint8 *pSrc = frameData.getFrameData(frameNumber); + + showFrameInternal(pSrc, x, y, effectsFlag, *width, *height); } void DreamBase::clearWork() { @@ -373,8 +404,8 @@ bool DreamBase::pixelCheckSet(const ObjPos *pos, uint8 x, uint8 y) { x -= pos->xMin; y -= pos->yMin; SetObject *setObject = getSetAd(pos->index); - Frame *frame = (Frame *)getSegment(data.word(kSetframes)).ptr(kFramedata, 0) + setObject->index; - const uint8 *ptr = getSegment(data.word(kSetframes)).ptr(kFrames, 0) + frame->ptr() + y * frame->width + x; + const Frame &frame = _setFrames._frames[setObject->index]; + const uint8 *ptr = _setFrames.getFrameData(setObject->index) + y * frame.width + x; return *ptr != 0; } @@ -403,26 +434,25 @@ void DreamBase::loadPalFromIFF() { } 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); + showFrame(_icons2, 0, 8, 0, 2); + showFrame(_icons2, 160, 8, 0, 2); + showFrame(_icons2, 0, 104, 0, 2); + showFrame(_icons2, 160, 104, 0, 2); } void DreamBase::createPanel2() { createPanel(); - showFrame(engine->icons2(), 0, 0, 5, 2); - showFrame(engine->icons2(), 160, 0, 5, 2); + showFrame(_icons2, 0, 0, 5, 2); + showFrame(_icons2, 160, 0, 5, 2); } void DreamBase::showPanel() { - showFrame(engine->icons1(), 72, 0, 19, 0); - showFrame(engine->icons1(), 192, 0, 19, 0); + showFrame(_icons1, 72, 0, 19, 0); + showFrame(_icons1, 192, 0, 19, 0); } void DreamBase::transferFrame(uint8 from, uint8 to, uint8 offset) { - const Frame *freeFrames = (const Frame *)getSegment(data.word(kFreeframes)).ptr(kFrframedata, 0); - const Frame &freeFrame = freeFrames[3*from + offset]; + const Frame &freeFrame = _freeFrames._frames[3*from + offset]; Frame *exFrames = (Frame *)getSegment(data.word(kExtras)).ptr(kExframedata, 0); Frame &exFrame = exFrames[3*to + offset]; @@ -433,7 +463,7 @@ void DreamBase::transferFrame(uint8 from, uint8 to, uint8 offset) { exFrame.y = freeFrame.y; uint16 byteCount = freeFrame.width * freeFrame.height; - const uint8 *src = getSegment(data.word(kFreeframes)).ptr(kFrframes + freeFrame.ptr(), byteCount); + const uint8 *src = _freeFrames.getFrameData(3*from + offset); uint8 *dst = getSegment(data.word(kExtras)).ptr(kExframes + data.word(kExframepos), byteCount); memcpy(dst, src, byteCount); -- cgit v1.2.3 From e54196f37fbf918976f834680671c12bfce58d23 Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Tue, 27 Dec 2011 21:28:37 +0100 Subject: DREAMWEB: Remove Extras segment --- engines/dreamweb/vgagrafx.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index 19abc2b35d..417ccceab3 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -453,9 +453,7 @@ void DreamBase::showPanel() { void DreamBase::transferFrame(uint8 from, uint8 to, uint8 offset) { const Frame &freeFrame = _freeFrames._frames[3*from + offset]; - - Frame *exFrames = (Frame *)getSegment(data.word(kExtras)).ptr(kExframedata, 0); - Frame &exFrame = exFrames[3*to + offset]; + Frame &exFrame = _exFrames._frames[3*to + offset]; exFrame.width = freeFrame.width; exFrame.height = freeFrame.height; @@ -464,7 +462,7 @@ void DreamBase::transferFrame(uint8 from, uint8 to, uint8 offset) { uint16 byteCount = freeFrame.width * freeFrame.height; const uint8 *src = _freeFrames.getFrameData(3*from + offset); - uint8 *dst = getSegment(data.word(kExtras)).ptr(kExframes + data.word(kExframepos), byteCount); + uint8 *dst = _exFrames._data + data.word(kExframepos); memcpy(dst, src, byteCount); exFrame.setPtr(data.word(kExframepos)); -- cgit v1.2.3 From 5e915afcd4b410caadf6f17db45aa73352e3c07e Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Tue, 27 Dec 2011 23:09:47 +0100 Subject: DREAMWEB: Remove unused functions --- engines/dreamweb/vgagrafx.cpp | 28 ---------------------------- 1 file changed, 28 deletions(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index 417ccceab3..5096db8a00 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -268,12 +268,6 @@ void DreamBase::frameOutV(uint8 *dst, const uint8 *src, uint16 pitch, uint16 wid } } -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 DreamBase::showFrame(const GraphicsFile &frameData, uint16 x, uint16 y, uint16 frameNumber, uint8 effectsFlag) { uint8 width, height; showFrame(frameData, x, y, frameNumber, effectsFlag, &width, &height); @@ -312,28 +306,6 @@ void DreamBase::showFrameInternal(const uint8 *pSrc, uint16 x, uint16 y, uint8 e frameOutV(workspace(), pSrc, 320, width, height, x, y); } -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; - *height = 0; - return; - } - - // "notBlankShow" - if ((effectsFlag & 128) == 0) { - x += frame->x; - y += frame->y; - } - - // "skipOffsets" - *width = frame->width; - *height = frame->height; - const uint8 *pSrc = ((const uint8 *)frameData) + frame->ptr() + 2080; - - showFrameInternal(pSrc, x, y, effectsFlag, *width, *height); -} - void DreamBase::showFrame(const GraphicsFile &frameData, uint16 x, uint16 y, uint16 frameNumber, uint8 effectsFlag, uint8 *width, uint8 *height) { const Frame *frame = &frameData._frames[frameNumber]; if ((frame->width == 0) && (frame->height == 0)) { -- cgit v1.2.3 From 4c2d2684ea54d98828d44b18fb7b17ed84c7bf22 Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Wed, 28 Dec 2011 02:28:27 +0100 Subject: DREAMWEB: Mass-move variables out of data This has been done by an automated search/replace, culling unused variables in the process. The remaining variables in data are all stored in savegames. --- engines/dreamweb/vgagrafx.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index 5096db8a00..ad5fd34d58 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -287,7 +287,7 @@ void DreamBase::showFrameInternal(const uint8 *pSrc, uint16 x, uint16 y, uint8 e */ } if (effectsFlag & 8) { // printList - //addToPrintList(x - data.word(kMapadx), y - data.word(kMapady)); // NB: Commented in the original asm + //addToPrintList(x - _mapAdX, y - _mapAdY); // NB: Commented in the original asm } if (effectsFlag & 4) { // flippedX frameOutFx(workspace(), pSrc, 320, width, height, x, y); @@ -337,11 +337,11 @@ void DreamBase::zoom() { return; if (data.byte(kZoomon) != 1) return; - if (data.byte(kCommandtype) >= 199) { + if (_commandType >= 199) { putUnderZoom(); return; } - uint16 srcOffset = (data.word(kOldpointery) - 9) * 320 + (data.word(kOldpointerx) - 11); + uint16 srcOffset = (_oldPointerY - 9) * 320 + (_oldPointerX - 11); uint16 dstOffset = (kZoomy + 4) * 320 + (kZoomx + 5); const uint8 *src = workspace() + srcOffset; uint8 *dst = workspace() + dstOffset; @@ -357,19 +357,19 @@ void DreamBase::zoom() { dst += 320*2; } crosshair(); - data.byte(kDidzoom) = 1; + _didZoom = 1; } void DreamBase::panelToMap() { - multiGet(_mapStore, data.word(kMapxstart) + data.word(kMapadx), data.word(kMapystart) + data.word(kMapady), data.byte(kMapxsize), data.byte(kMapysize)); + multiGet(_mapStore, _mapXStart + _mapAdX, _mapYStart + _mapAdY, _mapXSize, _mapYSize); } void DreamBase::mapToPanel() { - multiPut(_mapStore, data.word(kMapxstart) + data.word(kMapadx), data.word(kMapystart) + data.word(kMapady), data.byte(kMapxsize), data.byte(kMapysize)); + multiPut(_mapStore, _mapXStart + _mapAdX, _mapYStart + _mapAdY, _mapXSize, _mapYSize); } void DreamBase::dumpMap() { - multiDump(data.word(kMapxstart) + data.word(kMapadx), data.word(kMapystart) + data.word(kMapady), data.byte(kMapxsize), data.byte(kMapysize)); + multiDump(_mapXStart + _mapAdX, _mapYStart + _mapAdY, _mapXSize, _mapYSize); } bool DreamBase::pixelCheckSet(const ObjPos *pos, uint8 x, uint8 y) { @@ -392,7 +392,7 @@ void DreamBase::loadPalFromIFF() { uint8 *dst = _mainPal; for (size_t i = 0; i < 256*3; ++i) { uint8 c = src[i] / 4; - if (data.byte(kBrightness) == 1) { + if (_brightness == 1) { if (c) { c = c + c / 2 + c / 4; if (c > 63) -- cgit v1.2.3 From fe98fbe972b4d1a2942bdc8a784f8205ba32fbdd Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Wed, 28 Dec 2011 11:37:46 +0200 Subject: DREAMWEB: Move all zoom-related functions to vgagrafx.cpp, and remove a lot of unused global constants --- engines/dreamweb/vgagrafx.cpp | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index ad5fd34d58..13defb46a2 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -26,6 +26,9 @@ namespace DreamGen { +const uint16 kZoomx = 8; +const uint16 kZoomy = 132; + void DreamBase::multiGet(uint8 *dst, uint16 x, uint16 y, uint8 w, uint8 h) { assert(x < 320); assert(y < 200); @@ -332,6 +335,35 @@ void DreamBase::clearWork() { memset(workspace(), 0, 320*200); } +void DreamBase::dumpZoom() { + if (data.byte(kZoomon) == 1) + multiDump(kZoomx + 5, kZoomy + 4, 46, 40); +} + +void DreamBase::crosshair() { + uint8 frame; + if ((_commandType != 3) && (_commandType < 10)) { + frame = 9; + } else { + frame = 29; + } + showFrame(_icons1, kZoomx + 24, kZoomy + 19, frame, 0); +} + +void DreamBase::getUnderZoom() { + multiGet(_zoomSpace, kZoomx + 5, kZoomy + 4, 46, 40); +} + +void DreamBase::putUnderZoom() { + multiPut(_zoomSpace, kZoomx + 5, kZoomy + 4, 46, 40); +} + +void DreamBase::zoomIcon() { + if (data.byte(kZoomon) == 0) + return; + showFrame(_icons1, kZoomx, kZoomy-1, 8, 0); +} + void DreamBase::zoom() { if (data.word(kWatchingtime) != 0) return; -- cgit v1.2.3 From 57e940f67896e0f085de23088754fe1682cd49db Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Wed, 28 Dec 2011 13:10:22 +0100 Subject: DREAMWEB: Move all saved variables to a GameVars struct The data segment is now completely unused. --- engines/dreamweb/vgagrafx.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index 13defb46a2..c1a860e184 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -123,7 +123,7 @@ void DreamBase::frameOutFx(uint8 *dst, const uint8 *src, uint16 pitch, uint16 wi } void DreamBase::doShake() { - uint8 &counter = data.byte(kShakecounter); + uint8 &counter = _vars._shakeCounter; if (counter == 48) return; @@ -336,7 +336,7 @@ void DreamBase::clearWork() { } void DreamBase::dumpZoom() { - if (data.byte(kZoomon) == 1) + if (_vars._zoomOn == 1) multiDump(kZoomx + 5, kZoomy + 4, 46, 40); } @@ -359,15 +359,15 @@ void DreamBase::putUnderZoom() { } void DreamBase::zoomIcon() { - if (data.byte(kZoomon) == 0) + if (_vars._zoomOn == 0) return; showFrame(_icons1, kZoomx, kZoomy-1, 8, 0); } void DreamBase::zoom() { - if (data.word(kWatchingtime) != 0) + if (_vars._watchingTime != 0) return; - if (data.byte(kZoomon) != 1) + if (_vars._zoomOn != 1) return; if (_commandType >= 199) { putUnderZoom(); @@ -466,11 +466,11 @@ void DreamBase::transferFrame(uint8 from, uint8 to, uint8 offset) { uint16 byteCount = freeFrame.width * freeFrame.height; const uint8 *src = _freeFrames.getFrameData(3*from + offset); - uint8 *dst = _exFrames._data + data.word(kExframepos); + uint8 *dst = _exFrames._data + _vars._exFramePos; memcpy(dst, src, byteCount); - exFrame.setPtr(data.word(kExframepos)); - data.word(kExframepos) += byteCount; + exFrame.setPtr(_vars._exFramePos); + _vars._exFramePos += byteCount; } } // End of namespace DreamGen -- cgit v1.2.3 From 279746fcf0a3aac428e75bf7ca7e043cb0572aa6 Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Wed, 28 Dec 2011 15:07:17 +0200 Subject: DREAMWEB: Completely remove all of the runtime, and move everything into DreamWebEngine Also, remove dead code (allocateMem/deallocateMem) --- engines/dreamweb/vgagrafx.cpp | 86 +++++++++++++++++++++---------------------- 1 file changed, 41 insertions(+), 45 deletions(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index c1a860e184..1e93c0f2fe 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -24,12 +24,12 @@ #include "engines/util.h" #include "graphics/surface.h" -namespace DreamGen { +namespace DreamWeb { const uint16 kZoomx = 8; const uint16 kZoomy = 132; -void DreamBase::multiGet(uint8 *dst, uint16 x, uint16 y, uint8 w, uint8 h) { +void DreamWebEngine::multiGet(uint8 *dst, uint16 x, uint16 y, uint8 w, uint8 h) { assert(x < 320); assert(y < 200); const uint8 *src = workspace() + x + y * kScreenwidth; @@ -45,7 +45,7 @@ void DreamBase::multiGet(uint8 *dst, uint16 x, uint16 y, uint8 w, uint8 h) { } } -void DreamBase::multiPut(const uint8 *src, uint16 x, uint16 y, uint8 w, uint8 h) { +void DreamWebEngine::multiPut(const uint8 *src, uint16 x, uint16 y, uint8 w, uint8 h) { assert(x < 320); assert(y < 200); uint8 *dst = workspace() + x + y * kScreenwidth; @@ -61,25 +61,21 @@ void DreamBase::multiPut(const uint8 *src, uint16 x, uint16 y, uint8 w, uint8 h) } } -void DreamBase::multiDump(uint16 x, uint16 y, uint8 width, uint8 height) { +void DreamWebEngine::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); - engine->blit(workspace() + offset, kScreenwidth, x, y, width, height); + blit(workspace() + offset, kScreenwidth, x, y, width, height); } -void DreamBase::workToScreen() { - engine->blit(workspace(), 320, 0, 0, 320, 200); +void DreamWebEngine::workToScreen() { + blit(workspace(), 320, 0, 0, 320, 200); } -void DreamBase::printUnderMon() { - engine->printUnderMonitor(); +void DreamWebEngine::printUnderMon() { + printUnderMonitor(); } -void DreamBase::cls() { - engine->cls(); -} - -void DreamBase::frameOutNm(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, uint16 x, uint16 y) { +void DreamWebEngine::frameOutNm(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, uint16 x, uint16 y) { dst += pitch * y + x; for (uint16 j = 0; j < height; ++j) { @@ -89,7 +85,7 @@ void DreamBase::frameOutNm(uint8 *dst, const uint8 *src, uint16 pitch, uint16 wi } } -void DreamBase::frameOutBh(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, uint16 x, uint16 y) { +void DreamWebEngine::frameOutBh(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, uint16 x, uint16 y) { uint16 stride = pitch - width; dst += y * pitch + x; @@ -105,7 +101,7 @@ void DreamBase::frameOutBh(uint8 *dst, const uint8 *src, uint16 pitch, uint16 wi } } -void DreamBase::frameOutFx(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, uint16 x, uint16 y) { +void DreamWebEngine::frameOutFx(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, uint16 x, uint16 y) { uint16 stride = pitch - width; dst += y * pitch + x; dst -= width; @@ -122,7 +118,7 @@ void DreamBase::frameOutFx(uint8 *dst, const uint8 *src, uint16 pitch, uint16 wi } } -void DreamBase::doShake() { +void DreamWebEngine::doShake() { uint8 &counter = _vars._shakeCounter; if (counter == 48) return; @@ -149,19 +145,19 @@ void DreamBase::doShake() { }; assert(counter < ARRAYSIZE(shakeTable)); int offset = shakeTable[counter]; - engine->setShakePos(offset >= 0 ? offset : -offset); + setShakePos(offset >= 0 ? offset : -offset); } -void DreamBase::vSync() { - engine->waitForVSync(); +void DreamWebEngine::vSync() { + waitForVSync(); } -void DreamBase::setMode() { - engine->waitForVSync(); +void DreamWebEngine::setMode() { + waitForVSync(); initGraphics(320, 200, false); } -void DreamBase::showPCX(const Common::String &name) { +void DreamWebEngine::showPCX(const Common::String &name) { Common::File pcxFile; if (!pcxFile.open(name)) { @@ -229,7 +225,7 @@ void DreamBase::showPCX(const Common::String &name) { pcxFile.close(); } -void DreamBase::frameOutV(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, int16 x, int16 y) { +void DreamWebEngine::frameOutV(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, int16 x, int16 y) { // NB : These resilience checks were not in the original engine, but did they result in undefined behaviour // or was something broken during porting to C++? assert(pitch == 320); @@ -271,19 +267,19 @@ void DreamBase::frameOutV(uint8 *dst, const uint8 *src, uint16 pitch, uint16 wid } } -void DreamBase::showFrame(const GraphicsFile &frameData, uint16 x, uint16 y, uint16 frameNumber, uint8 effectsFlag) { +void DreamWebEngine::showFrame(const GraphicsFile &frameData, uint16 x, uint16 y, uint16 frameNumber, uint8 effectsFlag) { uint8 width, height; showFrame(frameData, x, y, frameNumber, effectsFlag, &width, &height); } -void DreamBase::showFrameInternal(const uint8 *pSrc, uint16 x, uint16 y, uint8 effectsFlag, uint8 width, uint8 height) { +void DreamWebEngine::showFrameInternal(const uint8 *pSrc, uint16 x, uint16 y, uint8 effectsFlag, uint8 width, uint8 height) { if (effectsFlag) { if (effectsFlag & 128) { //centred x -= width / 2; y -= height / 2; } if (effectsFlag & 64) { // diffDest - error("Unsupported DreamBase::showFrame effectsFlag %d", effectsFlag); + error("Unsupported DreamWebEngine::showFrame effectsFlag %d", effectsFlag); /* frameOutFx(es.ptr(0, dx * *height), pSrc, dx, *width, *height, x, y); return; @@ -309,7 +305,7 @@ void DreamBase::showFrameInternal(const uint8 *pSrc, uint16 x, uint16 y, uint8 e frameOutV(workspace(), pSrc, 320, width, height, x, y); } -void DreamBase::showFrame(const GraphicsFile &frameData, uint16 x, uint16 y, uint16 frameNumber, uint8 effectsFlag, uint8 *width, uint8 *height) { +void DreamWebEngine::showFrame(const GraphicsFile &frameData, uint16 x, uint16 y, uint16 frameNumber, uint8 effectsFlag, uint8 *width, uint8 *height) { const Frame *frame = &frameData._frames[frameNumber]; if ((frame->width == 0) && (frame->height == 0)) { *width = 0; @@ -331,16 +327,16 @@ void DreamBase::showFrame(const GraphicsFile &frameData, uint16 x, uint16 y, uin showFrameInternal(pSrc, x, y, effectsFlag, *width, *height); } -void DreamBase::clearWork() { +void DreamWebEngine::clearWork() { memset(workspace(), 0, 320*200); } -void DreamBase::dumpZoom() { +void DreamWebEngine::dumpZoom() { if (_vars._zoomOn == 1) multiDump(kZoomx + 5, kZoomy + 4, 46, 40); } -void DreamBase::crosshair() { +void DreamWebEngine::crosshair() { uint8 frame; if ((_commandType != 3) && (_commandType < 10)) { frame = 9; @@ -350,21 +346,21 @@ void DreamBase::crosshair() { showFrame(_icons1, kZoomx + 24, kZoomy + 19, frame, 0); } -void DreamBase::getUnderZoom() { +void DreamWebEngine::getUnderZoom() { multiGet(_zoomSpace, kZoomx + 5, kZoomy + 4, 46, 40); } -void DreamBase::putUnderZoom() { +void DreamWebEngine::putUnderZoom() { multiPut(_zoomSpace, kZoomx + 5, kZoomy + 4, 46, 40); } -void DreamBase::zoomIcon() { +void DreamWebEngine::zoomIcon() { if (_vars._zoomOn == 0) return; showFrame(_icons1, kZoomx, kZoomy-1, 8, 0); } -void DreamBase::zoom() { +void DreamWebEngine::zoom() { if (_vars._watchingTime != 0) return; if (_vars._zoomOn != 1) @@ -392,19 +388,19 @@ void DreamBase::zoom() { _didZoom = 1; } -void DreamBase::panelToMap() { +void DreamWebEngine::panelToMap() { multiGet(_mapStore, _mapXStart + _mapAdX, _mapYStart + _mapAdY, _mapXSize, _mapYSize); } -void DreamBase::mapToPanel() { +void DreamWebEngine::mapToPanel() { multiPut(_mapStore, _mapXStart + _mapAdX, _mapYStart + _mapAdY, _mapXSize, _mapYSize); } -void DreamBase::dumpMap() { +void DreamWebEngine::dumpMap() { multiDump(_mapXStart + _mapAdX, _mapYStart + _mapAdY, _mapXSize, _mapYSize); } -bool DreamBase::pixelCheckSet(const ObjPos *pos, uint8 x, uint8 y) { +bool DreamWebEngine::pixelCheckSet(const ObjPos *pos, uint8 x, uint8 y) { x -= pos->xMin; y -= pos->yMin; SetObject *setObject = getSetAd(pos->index); @@ -413,7 +409,7 @@ bool DreamBase::pixelCheckSet(const ObjPos *pos, uint8 x, uint8 y) { return *ptr != 0; } -void DreamBase::loadPalFromIFF() { +void DreamWebEngine::loadPalFromIFF() { Common::File palFile; uint8* buf = new uint8[2000]; palFile.open("DREAMWEB.PAL"); @@ -437,25 +433,25 @@ void DreamBase::loadPalFromIFF() { delete[] buf; } -void DreamBase::createPanel() { +void DreamWebEngine::createPanel() { showFrame(_icons2, 0, 8, 0, 2); showFrame(_icons2, 160, 8, 0, 2); showFrame(_icons2, 0, 104, 0, 2); showFrame(_icons2, 160, 104, 0, 2); } -void DreamBase::createPanel2() { +void DreamWebEngine::createPanel2() { createPanel(); showFrame(_icons2, 0, 0, 5, 2); showFrame(_icons2, 160, 0, 5, 2); } -void DreamBase::showPanel() { +void DreamWebEngine::showPanel() { showFrame(_icons1, 72, 0, 19, 0); showFrame(_icons1, 192, 0, 19, 0); } -void DreamBase::transferFrame(uint8 from, uint8 to, uint8 offset) { +void DreamWebEngine::transferFrame(uint8 from, uint8 to, uint8 offset) { const Frame &freeFrame = _freeFrames._frames[3*from + offset]; Frame &exFrame = _exFrames._frames[3*to + offset]; @@ -473,4 +469,4 @@ void DreamBase::transferFrame(uint8 from, uint8 to, uint8 offset) { _vars._exFramePos += byteCount; } -} // End of namespace DreamGen +} // End of namespace DreamWeb -- cgit v1.2.3 From 0d6b4df0141fb85d56d8083bdae81b06660e5947 Mon Sep 17 00:00:00 2001 From: D G Turner Date: Wed, 8 Feb 2012 17:18:35 +0000 Subject: DREAMWEB: Remove uneeded duplicate function "printUnderMon". --- engines/dreamweb/vgagrafx.cpp | 4 ---- 1 file changed, 4 deletions(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index 1e93c0f2fe..26b5e60b9d 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -71,10 +71,6 @@ void DreamWebEngine::workToScreen() { blit(workspace(), 320, 0, 0, 320, 200); } -void DreamWebEngine::printUnderMon() { - printUnderMonitor(); -} - void DreamWebEngine::frameOutNm(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, uint16 x, uint16 y) { dst += pitch * y + x; -- cgit v1.2.3 From 542014c309cb713ee5f550f344065fa9124f17bd Mon Sep 17 00:00:00 2001 From: D G Turner Date: Fri, 24 Feb 2012 04:44:26 +0000 Subject: DREAMWEB: Add datafile name prefix to engine and modify showPCX() to it. This new variable removes the need for duplicates strings of the form "DREAMWEB.*" spread throughout the dreamweb engine, replacing them with a common const string on the engine holding the datafile name prefix. This will reduce binary size and it should also simplify adding support for foreign language variants, where the datafile name prefix is changed. To demostrate usage and prove this, showPCX() is migrated to using this. --- engines/dreamweb/vgagrafx.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index 26b5e60b9d..61f3977710 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -153,7 +153,8 @@ void DreamWebEngine::setMode() { initGraphics(320, 200, false); } -void DreamWebEngine::showPCX(const Common::String &name) { +void DreamWebEngine::showPCX(const Common::String &suffix) { + Common::String name = getDatafilePrefix() + suffix; Common::File pcxFile; if (!pcxFile.open(name)) { -- cgit v1.2.3 From 966210b56dbe9a37ffde1fb0b46cc794ffed0562 Mon Sep 17 00:00:00 2001 From: D G Turner Date: Fri, 24 Feb 2012 06:15:17 +0000 Subject: DREAMWEB: Migrate remaining minor functions to using datafile prefix variable. Currently, the usages associated with savegames have been omitted. These will probably need a different prefix constant as it is likely foreign variants still use "DREAMWEB.*" for savegames, while using a different prefix for the datafiles. We may even migrate away from this naming convention as this causes savegame collisions when multiple language variants are present, which could cause issues. The usages in the Room members of the constant g_roomData structure have also been omitted, as the members are copied into the savegame format, thus replacing these and fixing other accesses is not trivial. --- engines/dreamweb/vgagrafx.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index 61f3977710..be7d210999 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -409,7 +409,7 @@ bool DreamWebEngine::pixelCheckSet(const ObjPos *pos, uint8 x, uint8 y) { void DreamWebEngine::loadPalFromIFF() { Common::File palFile; uint8* buf = new uint8[2000]; - palFile.open("DREAMWEB.PAL"); + palFile.open(getDatafilePrefix() + "PAL"); palFile.read(buf, 2000); palFile.close(); -- cgit v1.2.3 From d41d7e5f3688b3d83323d9240fe744ba8d339307 Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Sun, 4 Mar 2012 01:11:50 +0200 Subject: DREAMWEB: Clean up the palette brightness code --- engines/dreamweb/vgagrafx.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/dreamweb/vgagrafx.cpp') diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index be7d210999..a66f156a1d 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -417,7 +417,7 @@ void DreamWebEngine::loadPalFromIFF() { uint8 *dst = _mainPal; for (size_t i = 0; i < 256*3; ++i) { uint8 c = src[i] / 4; - if (_brightness == 1) { + if (_brightPalette) { if (c) { c = c + c / 2 + c / 4; if (c > 63) -- cgit v1.2.3