diff options
author | Max Horn | 2011-12-16 18:10:27 +0100 |
---|---|---|
committer | Max Horn | 2011-12-16 18:10:27 +0100 |
commit | 1d09f7c12a79416349cb33a7de88792c85ada5c1 (patch) | |
tree | 392e62f0464e7485e95f0c06deb5929b7168c698 | |
parent | 2f0c6712566b757b6527a37bdaf35519a7d42c3e (diff) | |
download | scummvm-rg350-1d09f7c12a79416349cb33a7de88792c85ada5c1.tar.gz scummvm-rg350-1d09f7c12a79416349cb33a7de88792c85ada5c1.tar.bz2 scummvm-rg350-1d09f7c12a79416349cb33a7de88792c85ada5c1.zip |
DREAMWEB: Some more cleanup
-rw-r--r-- | engines/dreamweb/dreambase.h | 7 | ||||
-rw-r--r-- | engines/dreamweb/stubs.cpp | 64 | ||||
-rw-r--r-- | engines/dreamweb/stubs.h | 9 |
3 files changed, 24 insertions, 56 deletions
diff --git a/engines/dreamweb/dreambase.h b/engines/dreamweb/dreambase.h index e64a41d75e..20cafcb203 100644 --- a/engines/dreamweb/dreambase.h +++ b/engines/dreamweb/dreambase.h @@ -381,6 +381,13 @@ public: void dealWithSpecial(uint8 firstParam, uint8 secondParam); void plotReel(uint16 &reelPointer); void setupTimedTemp(uint8 textIndex, uint8 voiceIndex, uint8 x, uint8 y, uint16 countToTimed, uint16 timeCount); + void getUnderTimed(); + void putUnderTimed(); + void dumpTextLine(); + void useTimedText(); + void dumpTimedText(); + void getTime(); + void doChange(uint8 index, uint8 value, uint8 type); // from use.cpp void placeFreeObject(uint8 index); diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp index 352dec334d..3a9785e586 100644 --- a/engines/dreamweb/stubs.cpp +++ b/engines/dreamweb/stubs.cpp @@ -801,10 +801,6 @@ void DreamGenContext::seeCommandTail() { data.byte(kBrightness) = 1; } -void DreamGenContext::randomNumber() { - al = engine->randomNumber(); -} - void DreamGenContext::quickQuit() { engine->quit(); } @@ -829,7 +825,7 @@ uint16 DreamBase::readMouseState() { return state; } -void DreamGenContext::dumpTextLine() { +void DreamBase::dumpTextLine() { if (data.byte(kNewtextline) != 1) return; data.byte(kNewtextline) = 0; @@ -840,22 +836,18 @@ void DreamGenContext::dumpTextLine() { multiDump(x, y, 228, 13); } -void DreamGenContext::getUnderTimed() { +void DreamBase::getUnderTimed() { uint16 y = data.byte(kTimedy); if (data.byte(kForeignrelease)) y -= 3; - ds = data.word(kBuffers); - si = kUndertimedtext; - multiGet(ds.ptr(si, 0), data.byte(kTimedx), y, 240, kUndertimedysize); + multiGet(getSegment(data.word(kBuffers)).ptr(kUndertimedtext, 0), data.byte(kTimedx), y, 240, kUndertimedysize); } -void DreamGenContext::putUnderTimed() { +void DreamBase::putUnderTimed() { uint16 y = data.byte(kTimedy); if (data.byte(kForeignrelease)) y -= 3; - ds = data.word(kBuffers); - si = kUndertimedtext; - multiPut(ds.ptr(si, 0), data.byte(kTimedx), y, 240, kUndertimedysize); + multiPut(getSegment(data.word(kBuffers)).ptr(kUndertimedtext, 0), data.byte(kTimedx), y, 240, kUndertimedysize); } void DreamBase::getUnderCentre() { @@ -893,7 +885,7 @@ void DreamGenContext::processTrigger() { } } -void DreamGenContext::useTimedText() { +void DreamBase::useTimedText() { if (data.word(kTimecount) == 0) return; --data.word(kTimecount); @@ -908,9 +900,7 @@ void DreamGenContext::useTimedText() { else if (data.word(kTimecount) > data.word(kCounttotimed)) return; - es = data.word(kTimedseg); - si = data.word(kTimedoffset); - const uint8 *string = es.ptr(si, 0); + const uint8 *string = getSegment(data.word(kTimedseg)).ptr(data.word(kTimedoffset), 0); uint16 y = data.byte(kTimedy); printDirect(&string, data.byte(kTimedx), &y, 237, true); data.byte(kNeedtodumptimed) = 1; @@ -943,7 +933,7 @@ void DreamBase::setupTimedTemp(uint8 textIndex, uint8 voiceIndex, uint8 x, uint8 debug(1, "setupTimedTemp: (%d, %d) => '%s'", textIndex, voiceIndex, string); } -void DreamGenContext::dumpTimedText() { +void DreamBase::dumpTimedText() { if (data.byte(kNeedtodumptimed) != 1) return; uint8 y = data.byte(kTimedy); @@ -954,16 +944,13 @@ void DreamGenContext::dumpTimedText() { data.byte(kNeedtodumptimed) = 0; } -void DreamGenContext::getTime() { +void DreamBase::getTime() { TimeDate t; g_system->getTimeAndDate(t); debug(1, "\tgettime: %02d:%02d:%02d", t.tm_hour, t.tm_min, t.tm_sec); - ch = t.tm_hour; - cl = t.tm_min; - dh = t.tm_sec; - data.byte(kSecondcount) = dh; - data.byte(kMinutecount) = cl; - data.byte(kHourcount) = ch; + data.byte(kSecondcount) = t.tm_sec; + data.byte(kMinutecount) = t.tm_min; + data.byte(kHourcount) = t.tm_hour; } uint16 DreamBase::allocateMem(uint16 paragraphs) { @@ -979,12 +966,6 @@ void DreamBase::deallocateMem(uint16 segment) { debug(1, "deallocating segment %04x", segment); deallocateSegment(segment); - - // FIXME: The following line used to be enabled with the comment: "fixing - // invalid entries in the sprite table" - // So if there are regressions with sprites, we may want to investigate this - // closer. -// es = data; uint tsize = 16 * 32; uint16 bseg = data.word(kBuffers); if (!bseg) @@ -1119,10 +1100,6 @@ void DreamGenContext::startLoading(const Room &room) { setAllChanges(); autoAppear(); // const Room &newRoom = g_roomData[data.byte(kNewlocation)]; - bx = 0x7fff; // TODO: bx used to be set to the offset of newRoom - // It seems to be unused (like newRoom itself), but set it - // to an invalid value to catch any missed use of it. - // (The push/pop of bx below is likely also unnecessary) data.byte(kLastweapon) = (uint8)-1; data.byte(kMandead) = 0; data.word(kLookcounter) = 160; @@ -1295,10 +1272,6 @@ const uint8 *DreamGenContext::findObName(uint8 type, uint8 index) { } } -void DreamGenContext::copyName() { - copyName(ah, al, data.ptr(di, 0)); -} - void DreamGenContext::copyName(uint8 type, uint8 index, uint8 *dst) { const uint8 *src = findObName(type, index); size_t i; @@ -1419,7 +1392,7 @@ SetObject *DreamBase::getSetAd(uint8 index) { return (SetObject *)getSegment(data.word(kSetdat)).ptr(0, 0) + index; } -void DreamGenContext::doChange(uint8 index, uint8 value, uint8 type) { +void DreamBase::doChange(uint8 index, uint8 value, uint8 type) { if (type == 0) { //object getSetAd(index)->mapad[0] = value; } else if (type == 1) { //freeObject @@ -1427,9 +1400,9 @@ void DreamGenContext::doChange(uint8 index, uint8 value, uint8 type) { if (freeObject->mapad[0] == 0xff) freeObject->mapad[0] = value; } else { //path - bx = kPathdata + (type - 100) * 144 + index * 8; - es = data.word(kReels); - es.byte(bx+6) = value; +// getSegment(data.word(kReels)).byte(kPathdata + (type - 100) * 144 + index * 8 + 6) = value; + PathNode *paths = (PathNode *)getSegment(data.word(kReels)).ptr(kPathdata + 144 * (type - 100), 0); + paths[index].on = value; } } @@ -3922,11 +3895,8 @@ void DreamGenContext::talk() { break; } while (!data.byte(kGetback)); - bx = data.word(kPersondata); - es = cs; - if (data.byte(kTalkpos) >= 4) - es.byte(bx+7) |= 128; + data.byte(data.word(kPersondata)+7) |= 128; redrawMainScrn(); workToScreenM(); diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h index c3d72a6d02..ddaa66fa47 100644 --- a/engines/dreamweb/stubs.h +++ b/engines/dreamweb/stubs.h @@ -46,7 +46,6 @@ void readCityPic(); void readDestIcon(); void seeCommandTail(); - void randomNumber(); void quickQuit2(); void printDirect(); uint8 printDirect(const uint8** string, uint16 x, uint16 *y, uint8 maxWidth, bool centered) { @@ -55,11 +54,6 @@ uint8 printDirect(const uint8* string, uint16 x, uint16 y, uint8 maxWidth, bool centered) { return DreamBase::printDirect(string, x, y, maxWidth, centered); } - void useTimedText(); - void dumpTimedText(); - void getUnderTimed(); - void putUnderTimed(); - void dumpTextLine(); void startLoading(const Room &room); void showFrame(); void showFrame(const Frame *frameData, uint16 x, uint16 y, uint16 frameNumber, uint8 effectsFlag, uint8 *width, uint8 *height) { @@ -86,7 +80,6 @@ void checkIfEx(); bool checkIfEx(uint8 x, uint8 y); const uint8 *findObName(uint8 type, uint8 index); - void copyName(); void copyName(uint8 type, uint8 index, uint8 *dst); void commandWithOb(); void commandWithOb(uint8 command, uint8 type, uint8 index); @@ -121,7 +114,6 @@ return DreamBase::getSetAd(index); } void setAllChanges(); - void doChange(uint8 index, uint8 value, uint8 type); void deleteTaken(); void showAllFree(); void showAllEx(); @@ -350,7 +342,6 @@ bool loadSpeech(byte type1, int idx1, byte type2, int idx2) { return DreamBase::loadSpeech(type1, idx1, type2, idx2); } - void getTime(); void set16ColPalette(); void showSaveOps(); void showLoadOps(); |