aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorMax Horn2011-12-15 14:09:53 +0100
committerMax Horn2011-12-15 14:09:53 +0100
commitd1ed87beceb68a2b33db9989e6a480bbda6a73d1 (patch)
tree254cd070f15f636bb36c9dd35785dc3d001ced15 /engines
parent9ebcaa33e7080098e686c02ec03dff65a0a55174 (diff)
downloadscummvm-rg350-d1ed87beceb68a2b33db9989e6a480bbda6a73d1.tar.gz
scummvm-rg350-d1ed87beceb68a2b33db9989e6a480bbda6a73d1.tar.bz2
scummvm-rg350-d1ed87beceb68a2b33db9989e6a480bbda6a73d1.zip
DREAMWEB: Convert notHeldError to C++, move stuff to DreamBase
Diffstat (limited to 'engines')
-rw-r--r--engines/dreamweb/dreambase.h17
-rw-r--r--engines/dreamweb/dreamgen.cpp19
-rw-r--r--engines/dreamweb/dreamgen.h1
-rw-r--r--engines/dreamweb/object.cpp2
-rw-r--r--engines/dreamweb/sprite.cpp8
-rw-r--r--engines/dreamweb/stubs.cpp32
-rw-r--r--engines/dreamweb/stubs.h28
-rw-r--r--engines/dreamweb/use.cpp11
8 files changed, 46 insertions, 72 deletions
diff --git a/engines/dreamweb/dreambase.h b/engines/dreamweb/dreambase.h
index de7bada943..727a81ce8b 100644
--- a/engines/dreamweb/dreambase.h
+++ b/engines/dreamweb/dreambase.h
@@ -116,6 +116,7 @@ public:
void fillRyan();
void findAllRyan(uint8 *inv);
void obToInv(uint8 index, uint8 flag, uint16 x, uint16 y);
+ void obPicture();
// from pathfind.cpp
void checkDest(const RoomPaths *roomsPaths);
@@ -163,10 +164,14 @@ public:
const Frame *findSource(uint16 &frame);
void showReelFrame(Reel *reel);
const Frame *getReelFrameAX(uint16 frame);
- void soundOnReels(uint16 reelPointer);
void rollEndCredits();
void priestText(ReelRoutine &routine);
void checkOne(uint8 x, uint8 y, uint8 *flag, uint8 *flagEx, uint8 *type, uint8 *flagX, uint8 *flagY);
+ void soundOnReels(uint16 reelPointer);
+ void clearBeforeLoad();
+ void clearReels();
+ void getRidOfReels();
+ void liftNoise(uint8 index);
// from stubs.cpp
void crosshair();
@@ -240,6 +245,7 @@ public:
void getFlagUnderP(uint8 *flag, uint8 *flagEx);
void workToScreenM();
void quitKey();
+ void restoreReels();
void loadFolder();
void folderHints();
void folderExit();
@@ -258,6 +264,15 @@ public:
void getBackToOps();
void DOSReturn();
bool isItWorn(const DynObject *object);
+ bool compare(uint8 index, uint8 flag, const char id[4]);
+ void hangOnW(uint16 frameCount);
+ void getRidOfTemp();
+ void getRidOfTempText();
+ void getRidOfTemp2();
+ void getRidOfTemp3();
+ void getRidOfTempCharset();
+ void getRidOfTempsP();
+ void getRidOfAll();
// from use.cpp
void placeFreeObject(uint8 index);
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index afb537f387..92bb062aab 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -3088,25 +3088,6 @@ finishpars:
di = offset_operand1;
}
-void DreamGenContext::notHeldError() {
- STACK_CHECK;
- createPanel();
- showPanel();
- showMan();
- showExit();
- obIcons();
- di = 64;
- bx = 100;
- al = 63;
- ah = 1;
- dl = 201;
- printMessage2();
- workToScreenM();
- cx = 50;
- hangOnP();
- putBackObStuff();
-}
-
void DreamGenContext::nextColon() {
STACK_CHECK;
lookcolon:
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index 16a42d2e25..fbefd91099 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -514,7 +514,6 @@ public:
void transferMap();
void purgeAnItem();
void purgeALocation();
- void notHeldError();
void getSetAd();
void showKeys();
void nextColon();
diff --git a/engines/dreamweb/object.cpp b/engines/dreamweb/object.cpp
index b430183cee..5f326a5a03 100644
--- a/engines/dreamweb/object.cpp
+++ b/engines/dreamweb/object.cpp
@@ -107,7 +107,7 @@ void DreamBase::obToInv(uint8 index, uint8 flag, uint16 x, uint16 y) {
showFrame(engine->icons1(), x - 3, y - 2, 7, 0);
}
-void DreamGenContext::obPicture() {
+void DreamBase::obPicture() {
if (data.byte(kObjecttype) == 1)
return;
Frame *frames;
diff --git a/engines/dreamweb/sprite.cpp b/engines/dreamweb/sprite.cpp
index 1a341ce8d3..c69ac2a3f5 100644
--- a/engines/dreamweb/sprite.cpp
+++ b/engines/dreamweb/sprite.cpp
@@ -1191,7 +1191,7 @@ void DreamBase::soundOnReels(uint16 reelPointer) {
data.word(kLastsoundreel) = (uint16)-1;
}
-void DreamGenContext::clearBeforeLoad() {
+void DreamBase::clearBeforeLoad() {
if (data.byte(kRoomloaded) != 1)
return /* (noclear) */;
@@ -1213,13 +1213,13 @@ void DreamGenContext::clearBeforeLoad() {
data.byte(kRoomloaded) = 0;
}
-void DreamGenContext::clearReels() {
+void DreamBase::clearReels() {
deallocateMem(data.word(kReel1));
deallocateMem(data.word(kReel2));
deallocateMem(data.word(kReel3));
}
-void DreamGenContext::getRidOfReels() {
+void DreamBase::getRidOfReels() {
if (data.byte(kRoomloaded) == 0)
return /* (dontgetrid) */;
@@ -1228,7 +1228,7 @@ void DreamGenContext::getRidOfReels() {
deallocateMem(data.word(kReel3));
}
-void DreamGenContext::liftNoise(uint8 index) {
+void DreamBase::liftNoise(uint8 index) {
if (data.byte(kReallocation) == 5 || data.byte(kReallocation) == 21)
playChannel1(13); // hiss noise
else
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index d53c1a1346..c353948abb 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -1739,20 +1739,12 @@ void DreamBase::animPointer() {
data.byte(kPointerframe) = 8;
}
-void DreamGenContext::printMessage() {
- printMessage(di, bx, al, dl, (bool)(dl & 1));
-}
-
void DreamBase::printMessage(uint16 x, uint16 y, uint8 index, uint8 maxWidth, bool centered) {
uint16 offset = kTextstart + getSegment(data.word(kCommandtext)).word(index * 2);
const uint8 *string = getSegment(data.word(kCommandtext)).ptr(offset, 0);
printDirect(string, x, y, maxWidth, centered);
}
-void DreamGenContext::printMessage2() {
- printMessage2(di, bx, al, dl, (bool)(dl & 1), ah);
-}
-
void DreamBase::printMessage2(uint16 x, uint16 y, uint8 index, uint8 maxWidth, bool centered, uint8 count) {
uint16 offset = kTextstart + getSegment(data.word(kCommandtext)).word(index * 2);
const uint8 *string = getSegment(data.word(kCommandtext)).ptr(offset, 0);
@@ -1776,7 +1768,7 @@ void DreamGenContext::compare() {
flags._z = compare(al, ah, id);
}
-bool DreamGenContext::compare(uint8 index, uint8 flag, const char id[4]) {
+bool DreamBase::compare(uint8 index, uint8 flag, const char id[4]) {
return objectMatches(getAnyAdDir(index, flag), id);
}
@@ -1886,11 +1878,7 @@ void DreamBase::hangOn(uint16 frameCount) {
}
}
-void DreamGenContext::hangOnW() {
- hangOnW(cx);
-}
-
-void DreamGenContext::hangOnW(uint16 frameCount) {
+void DreamBase::hangOnW(uint16 frameCount) {
while (frameCount) {
delPointer();
readMouse();
@@ -2295,31 +2283,31 @@ void DreamBase::useTempCharset() {
engine->setCurrentCharset(engine->tempCharset());
}
-void DreamGenContext::getRidOfTemp() {
+void DreamBase::getRidOfTemp() {
deallocateMem(data.word(kTempgraphics));
}
-void DreamGenContext::getRidOfTempText() {
+void DreamBase::getRidOfTempText() {
deallocateMem(data.word(kTextfile1));
}
-void DreamGenContext::getRidOfTemp2() {
+void DreamBase::getRidOfTemp2() {
deallocateMem(data.word(kTempgraphics2));
}
-void DreamGenContext::getRidOfTemp3() {
+void DreamBase::getRidOfTemp3() {
deallocateMem(data.word(kTempgraphics3));
}
-void DreamGenContext::getRidOfTempCharset() {
+void DreamBase::getRidOfTempCharset() {
engine->freeTempCharset();
}
-void DreamGenContext::getRidOfTempsP() {
+void DreamBase::getRidOfTempsP() {
deallocateMem(data.word(kTempsprites));
}
-void DreamGenContext::getRidOfAll() {
+void DreamBase::getRidOfAll() {
deallocateMem(data.word(kBackdrop));
deallocateMem(data.word(kSetframes));
deallocateMem(data.word(kReel1));
@@ -2381,7 +2369,7 @@ void DreamGenContext::restoreAll() {
setAllChanges();
}
-void DreamGenContext::restoreReels() {
+void DreamBase::restoreReels() {
if (data.byte(kRoomloaded) == 0)
return;
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index 0e407415e8..0f5a5ca115 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -58,14 +58,6 @@
uint8 printDirect(const uint8* string, uint16 x, uint16 y, uint8 maxWidth, bool centered) {
return DreamBase::printDirect(string, x, y, maxWidth, centered);
}
- void printMessage();
- void printMessage(uint16 x, uint16 y, uint8 index, uint8 maxWidth, bool centered) {
- DreamBase::printMessage(x, y, index, maxWidth, centered);
- }
- void printMessage2();
- void printMessage2(uint16 x, uint16 y, uint8 index, uint8 maxWidth, bool centered, uint8 count) {
- DreamBase::printMessage2(x, y, index, maxWidth, centered, count);
- }
void useTimedText();
void dumpTimedText();
void setupTimedTemp(uint8 textIndex, uint8 voiceIndex, uint8 x, uint8 y, uint16 countToTimed, uint16 timeCount);
@@ -187,9 +179,10 @@
void addToPeopleList();
void addToPeopleList(ReelRoutine *routine);
void getExPos();
- void obPicture();
void compare();
- bool compare(uint8 index, uint8 flag, const char id[4]);
+ bool compare(uint8 index, uint8 flag, const char id[4]) {
+ return DreamBase::compare(index, flag, id);
+ }
bool pixelCheckSet(const ObjPos *pos, uint8 x, uint8 y);
void checkIfSet();
bool checkIfSet(uint8 x, uint8 y);
@@ -211,8 +204,6 @@
void hangOn(uint16 frameCount) {
DreamBase::hangOn(frameCount);
}
- void hangOnW();
- void hangOnW(uint16 frameCount);
void hangOnP();
void hangOnP(uint16 count) {
DreamBase::hangOnP(count);
@@ -278,13 +269,6 @@
void look();
void autoLook();
void doLook();
- void getRidOfAll();
- void getRidOfTemp();
- void getRidOfTempText();
- void getRidOfTemp2();
- void getRidOfTemp3();
- void getRidOfTempCharset();
- void getRidOfTempsP();
void showFirstUse();
void showSecondUse();
void actualSave();
@@ -292,7 +276,6 @@
void loadPosition(unsigned int slot);
void savePosition(unsigned int slot, const char *descbuf);
void restoreAll();
- void restoreReels();
void enterSymbol();
void viewFolder();
void edensCDPlayer();
@@ -422,10 +405,6 @@
void realCredits();
void runIntroSeq();
void intro();
- void clearBeforeLoad();
- void clearReels();
- void getRidOfReels();
- void liftNoise(uint8 index);
void newGame();
void pickupOb(uint8 command, uint8 pos);
void initialInv();
@@ -537,5 +516,6 @@
byte getOpenedSizeCPP();
void openOb();
void withWhat();
+ void notHeldError();
#endif
diff --git a/engines/dreamweb/use.cpp b/engines/dreamweb/use.cpp
index 87b3640e03..08b96cf33a 100644
--- a/engines/dreamweb/use.cpp
+++ b/engines/dreamweb/use.cpp
@@ -1495,5 +1495,16 @@ void DreamGenContext::withWhat() {
data.byte(kInvopen) = 2;
}
+void DreamGenContext::notHeldError() {
+ createPanel();
+ showPanel();
+ showMan();
+ showExit();
+ obIcons();
+ printMessage2(64, 100, 63, 200 + 1, true, 1);
+ workToScreenM();
+ hangOnP(50);
+ putBackObStuff();
+}
} // End of namespace DreamGen