aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Horn2011-12-16 18:10:27 +0100
committerMax Horn2011-12-16 18:10:27 +0100
commit1d09f7c12a79416349cb33a7de88792c85ada5c1 (patch)
tree392e62f0464e7485e95f0c06deb5929b7168c698
parent2f0c6712566b757b6527a37bdaf35519a7d42c3e (diff)
downloadscummvm-rg350-1d09f7c12a79416349cb33a7de88792c85ada5c1.tar.gz
scummvm-rg350-1d09f7c12a79416349cb33a7de88792c85ada5c1.tar.bz2
scummvm-rg350-1d09f7c12a79416349cb33a7de88792c85ada5c1.zip
DREAMWEB: Some more cleanup
-rw-r--r--engines/dreamweb/dreambase.h7
-rw-r--r--engines/dreamweb/stubs.cpp64
-rw-r--r--engines/dreamweb/stubs.h9
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();