aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilippos Karapetis2011-12-06 05:45:36 +0200
committerFilippos Karapetis2011-12-06 05:45:36 +0200
commit0d768ebe41439e6aaf013635bf32c5e6dc4092cd (patch)
tree6b0f736c60655686e2c5fa214bcfc81911fb9dfe
parentb74302f7b04bf920023ba8b29f70a4b645bf52a2 (diff)
downloadscummvm-rg350-0d768ebe41439e6aaf013635bf32c5e6dc4092cd.tar.gz
scummvm-rg350-0d768ebe41439e6aaf013635bf32c5e6dc4092cd.tar.bz2
scummvm-rg350-0d768ebe41439e6aaf013635bf32c5e6dc4092cd.zip
DREAMWEB: 'slabdoora', 'slabdoorc', 'slabdoord', 'slabdoore', 'slabdoorf', 'useladder', 'useladderb', ported to C++
-rwxr-xr-xdevtools/tasmrecover/tasm-recover7
-rw-r--r--engines/dreamweb/dreamgen.cpp140
-rw-r--r--engines/dreamweb/dreamgen.h7
-rw-r--r--engines/dreamweb/stubs.h7
-rw-r--r--engines/dreamweb/use.cpp129
5 files changed, 142 insertions, 148 deletions
diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover
index 9c3f55d94e..7454c3acaf 100755
--- a/devtools/tasmrecover/tasm-recover
+++ b/devtools/tasmrecover/tasm-recover
@@ -534,6 +534,11 @@ generator = cpp(context, "DreamGen", blacklist = [
'showword',
'singlekey',
'sitdowninbar',
+ 'slabdoora',
+ 'slabdoorc',
+ 'slabdoord',
+ 'slabdoore',
+ 'slabdoorf',
'smokebloke',
'sortoutmap',
'soundonreels',
@@ -576,6 +581,8 @@ generator = cpp(context, "DreamGen", blacklist = [
'useelevator3',
'useelevator4',
'useelevator5',
+ 'useladder',
+ 'useladderb',
'usehatch',
'usemenu',
'usemon',
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index f1eabe84c3..1dcfaaeb24 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -5761,58 +5761,6 @@ void DreamGenContext::chewy() {
data.byte(kGetback) = 1;
}
-void DreamGenContext::useLadder() {
- STACK_CHECK;
- showFirstUse();
- _sub(data.byte(kMapx), 11);
- findRoomInLoc();
- data.byte(kFacing) = 6;
- data.byte(kTurntoface) = 6;
- data.byte(kManspath) = 0;
- data.byte(kDestination) = 0;
- data.byte(kFinaldest) = 0;
- findXYFromPath();
- data.byte(kResetmanxy) = 1;
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::useLadderB() {
- STACK_CHECK;
- showFirstUse();
- _add(data.byte(kMapx), 11);
- findRoomInLoc();
- data.byte(kFacing) = 2;
- data.byte(kTurntoface) = 2;
- data.byte(kManspath) = 1;
- data.byte(kDestination) = 1;
- data.byte(kFinaldest) = 1;
- findXYFromPath();
- data.byte(kResetmanxy) = 1;
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::sLabDoorA() {
- STACK_CHECK;
- showFirstUse();
- data.byte(kGetback) = 1;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- data.word(kReeltowatch) = 13;
- _cmp(data.byte(kDreamnumber), 3);
- if (!flags.z())
- goto slabawrong;
- _inc(data.byte(kProgresspoints));
- data.word(kWatchingtime) = 60;
- data.word(kEndwatchreel) = 42;
- data.byte(kNewlocation) = 47;
- return;
-slabawrong:
- data.word(kWatchingtime) = 40;
- data.word(kEndwatchreel) = 34;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
-}
-
void DreamGenContext::sLabDoorB() {
STACK_CHECK;
_cmp(data.byte(kDreamnumber), 1);
@@ -5853,94 +5801,6 @@ slabbwrong:
data.byte(kSpeedcount) = 1;
}
-void DreamGenContext::sLabDoorD() {
- STACK_CHECK;
- showFirstUse();
- data.byte(kGetback) = 1;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- data.word(kReeltowatch) = 75;
- _cmp(data.byte(kDreamnumber), 0);
- if (!flags.z())
- goto slabcwrong;
- _inc(data.byte(kProgresspoints));
- data.word(kWatchingtime) = 60;
- data.word(kEndwatchreel) = 102;
- data.byte(kNewlocation) = 47;
- return;
-slabcwrong:
- data.word(kWatchingtime) = 40;
- data.word(kEndwatchreel) = 94;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
-}
-
-void DreamGenContext::sLabDoorC() {
- STACK_CHECK;
- showFirstUse();
- data.byte(kGetback) = 1;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- data.word(kReeltowatch) = 108;
- _cmp(data.byte(kDreamnumber), 4);
- if (!flags.z())
- goto slabdwrong;
- _inc(data.byte(kProgresspoints));
- data.word(kWatchingtime) = 60;
- data.word(kEndwatchreel) = 135;
- data.byte(kNewlocation) = 47;
- return;
-slabdwrong:
- data.word(kWatchingtime) = 40;
- data.word(kEndwatchreel) = 127;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
-}
-
-void DreamGenContext::sLabDoorE() {
- STACK_CHECK;
- showFirstUse();
- data.byte(kGetback) = 1;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- data.word(kReeltowatch) = 141;
- _cmp(data.byte(kDreamnumber), 5);
- if (!flags.z())
- goto slabewrong;
- _inc(data.byte(kProgresspoints));
- data.word(kWatchingtime) = 60;
- data.word(kEndwatchreel) = 168;
- data.byte(kNewlocation) = 47;
- return;
-slabewrong:
- data.word(kWatchingtime) = 40;
- data.word(kEndwatchreel) = 160;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
-}
-
-void DreamGenContext::sLabDoorF() {
- STACK_CHECK;
- showFirstUse();
- data.byte(kGetback) = 1;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- data.word(kReeltowatch) = 171;
- _cmp(data.byte(kDreamnumber), 2);
- if (!flags.z())
- goto slabfwrong;
- _inc(data.byte(kProgresspoints));
- data.word(kWatchingtime) = 60;
- data.word(kEndwatchreel) = 197;
- data.byte(kNewlocation) = 47;
- return;
-slabfwrong:
- data.word(kWatchingtime) = 40;
- data.word(kEndwatchreel) = 189;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
-}
-
void DreamGenContext::useSLab() {
STACK_CHECK;
_cmp(data.byte(kWithobject), 255);
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index bc22d5b68b..d062acbb1b 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -575,11 +575,7 @@ public:
void getOpenedSize();
void resetKeyboard();
void soundStartup();
- void sLabDoorA();
- void sLabDoorC();
void sLabDoorB();
- void sLabDoorE();
- void sLabDoorD();
void adjustUp();
void fadeScreenDownHalf();
void mouseCall();
@@ -587,7 +583,6 @@ public:
void fadeDownMon();
void bartender();
void showDiary();
- void sLabDoorF();
void outOfOpen();
void dirCom();
void dumpKeypad();
@@ -623,7 +618,6 @@ public:
void heavy();
void useKey();
void lockLightOn();
- void useLadderB();
void discOps();
void middlePanel();
void monitorLogo();
@@ -709,7 +703,6 @@ public:
void useAxe();
void useElvDoor();
void putBackObStuff();
- void useLadder();
void findAllOpen();
void quitSymbol();
void readFromFile();
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index 0a8ef491e1..79a0438738 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -521,5 +521,12 @@
void openLouis();
void DOSReturn();
void setWalk();
+ void useLadder();
+ void useLadderB();
+ void sLabDoorA();
+ void sLabDoorC();
+ void sLabDoorE();
+ void sLabDoorD();
+ void sLabDoorF();
#endif
diff --git a/engines/dreamweb/use.cpp b/engines/dreamweb/use.cpp
index 15e9a04cce..c60873c7b6 100644
--- a/engines/dreamweb/use.cpp
+++ b/engines/dreamweb/use.cpp
@@ -564,5 +564,132 @@ void DreamGenContext::useWall() {
}
}
-} /*namespace dreamgen */
+void DreamGenContext::useLadder() {
+ showFirstUse();
+ data.byte(kMapx) = data.byte(kMapx) - 11;
+ findRoomInLoc();
+ data.byte(kFacing) = 6;
+ data.byte(kTurntoface) = 6;
+ data.byte(kManspath) = 0;
+ data.byte(kDestination) = 0;
+ data.byte(kFinaldest) = 0;
+ findXYFromPath();
+ data.byte(kResetmanxy) = 1;
+ data.byte(kGetback) = 1;
+}
+
+void DreamGenContext::useLadderB() {
+ showFirstUse();
+ data.byte(kMapx) = data.byte(kMapx) + 11;
+ findRoomInLoc();
+ data.byte(kFacing) = 2;
+ data.byte(kTurntoface) = 2;
+ data.byte(kManspath) = 1;
+ data.byte(kDestination) = 1;
+ data.byte(kFinaldest) = 1;
+ findXYFromPath();
+ data.byte(kResetmanxy) = 1;
+ data.byte(kGetback) = 1;
+}
+
+void DreamGenContext::sLabDoorA() {
+ showFirstUse();
+ data.byte(kGetback) = 1;
+ data.byte(kWatchspeed) = 1;
+ data.byte(kSpeedcount) = 1;
+ data.word(kReeltowatch) = 13;
+ if (data.byte(kDreamnumber) != 3) {
+ // Wrong
+ data.word(kWatchingtime) = 40;
+ data.word(kEndwatchreel) = 34;
+ data.byte(kWatchspeed) = 1;
+ data.byte(kSpeedcount) = 1;
+ } else {
+ data.byte(kProgresspoints) = data.byte(kProgresspoints) + 1;
+ data.word(kWatchingtime) = 60;
+ data.word(kEndwatchreel) = 42;
+ data.byte(kNewlocation) = 47;
+ }
+}
+
+void DreamGenContext::sLabDoorC() {
+ showFirstUse();
+ data.byte(kGetback) = 1;
+ data.byte(kWatchspeed) = 1;
+ data.byte(kSpeedcount) = 1;
+ data.word(kReeltowatch) = 108;
+ if (data.byte(kDreamnumber) != 4) {
+ // Wrong
+ data.word(kWatchingtime) = 40;
+ data.word(kEndwatchreel) = 127;
+ data.byte(kWatchspeed) = 1;
+ data.byte(kSpeedcount) = 1;
+ } else {
+ data.byte(kProgresspoints) = data.byte(kProgresspoints) + 1;
+ data.word(kWatchingtime) = 60;
+ data.word(kEndwatchreel) = 135;
+ data.byte(kNewlocation) = 47;
+ }
+}
+void DreamGenContext::sLabDoorD() {
+ showFirstUse();
+ data.byte(kGetback) = 1;
+ data.byte(kWatchspeed) = 1;
+ data.byte(kSpeedcount) = 1;
+ data.word(kReeltowatch) = 75;
+ if (data.byte(kDreamnumber) != 0) {
+ // Wrong
+ data.word(kWatchingtime) = 40;
+ data.word(kEndwatchreel) = 94;
+ data.byte(kWatchspeed) = 1;
+ data.byte(kSpeedcount) = 1;
+ } else {
+ data.byte(kProgresspoints) = data.byte(kProgresspoints) + 1;
+ data.word(kWatchingtime) = 60;
+ data.word(kEndwatchreel) = 102;
+ data.byte(kNewlocation) = 47;
+ }
+}
+
+void DreamGenContext::sLabDoorE() {
+ showFirstUse();
+ data.byte(kGetback) = 1;
+ data.byte(kWatchspeed) = 1;
+ data.byte(kSpeedcount) = 1;
+ data.word(kReeltowatch) = 141;
+ if (data.byte(kDreamnumber) != 5) {
+ // Wrong
+ data.word(kWatchingtime) = 40;
+ data.word(kEndwatchreel) = 160;
+ data.byte(kWatchspeed) = 1;
+ data.byte(kSpeedcount) = 1;
+ } else {
+ data.byte(kProgresspoints) = data.byte(kProgresspoints) + 1;
+ data.word(kWatchingtime) = 60;
+ data.word(kEndwatchreel) = 168;
+ data.byte(kNewlocation) = 47;
+ }
+}
+
+void DreamGenContext::sLabDoorF() {
+ showFirstUse();
+ data.byte(kGetback) = 1;
+ data.byte(kWatchspeed) = 1;
+ data.byte(kSpeedcount) = 1;
+ data.word(kReeltowatch) = 171;
+ if (data.byte(kDreamnumber) != 2) {
+ // Wrong
+ data.word(kWatchingtime) = 40;
+ data.word(kEndwatchreel) = 189;
+ data.byte(kWatchspeed) = 1;
+ data.byte(kSpeedcount) = 1;
+ } else {
+ data.byte(kProgresspoints) = data.byte(kProgresspoints) + 1;
+ data.word(kWatchingtime) = 60;
+ data.word(kEndwatchreel) = 197;
+ data.byte(kNewlocation) = 47;
+ }
+}
+
+} /*namespace dreamgen */