diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/dreamweb/dreamgen.cpp | 140 | ||||
-rw-r--r-- | engines/dreamweb/dreamgen.h | 7 | ||||
-rw-r--r-- | engines/dreamweb/stubs.h | 7 | ||||
-rw-r--r-- | engines/dreamweb/use.cpp | 129 |
4 files changed, 135 insertions, 148 deletions
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 */ |