diff options
author | Filippos Karapetis | 2011-12-06 04:19:57 +0200 |
---|---|---|
committer | Filippos Karapetis | 2011-12-06 04:19:57 +0200 |
commit | 5a96238dd3f739cdec6f44d52ceedcada87ae565 (patch) | |
tree | 15cd460b9b42ff1f44ebcd24554d2f1b222dbf16 | |
parent | f224c09afaadddead7df755aa8c247774e6f6bb4 (diff) | |
download | scummvm-rg350-5a96238dd3f739cdec6f44d52ceedcada87ae565.tar.gz scummvm-rg350-5a96238dd3f739cdec6f44d52ceedcada87ae565.tar.bz2 scummvm-rg350-5a96238dd3f739cdec6f44d52ceedcada87ae565.zip |
DREAMWEB: 'afterintroroom', 'gettingshot', 'loadintroroom', 'redrawmainscrn', 'selectslot2', 'walkintoroom' ported to C++
-rwxr-xr-x | devtools/tasmrecover/tasm-recover | 6 | ||||
-rw-r--r-- | engines/dreamweb/dreamgen.cpp | 86 | ||||
-rw-r--r-- | engines/dreamweb/dreamgen.h | 6 | ||||
-rw-r--r-- | engines/dreamweb/stubs.cpp | 74 | ||||
-rw-r--r-- | engines/dreamweb/stubs.h | 6 |
5 files changed, 86 insertions, 92 deletions
diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover index b4f8af06df..a962305275 100755 --- a/devtools/tasmrecover/tasm-recover +++ b/devtools/tasmrecover/tasm-recover @@ -147,6 +147,7 @@ generator = cpp(context, "DreamGen", blacklist = [ 'addtopeoplelist', 'addtopresslist', 'adjustlen', + 'afterintroroom', 'aide', 'allocatebuffers', 'allocateload', @@ -313,6 +314,7 @@ generator = cpp(context, "DreamGen", blacklist = [ 'getridoftemptext', 'getroomdata', 'getroomspaths', + 'gettingshot', 'getundermenu', 'getundertimed', 'getxad', @@ -342,6 +344,7 @@ generator = cpp(context, "DreamGen", blacklist = [ 'loadcart', 'loadfolder', 'loadgame', + 'loadintroroom', 'loadintotemp', 'loadintotemp2', 'loadintotemp3', @@ -452,6 +455,7 @@ generator = cpp(context, "DreamGen", blacklist = [ 'readsetdata', 'realcredits', 'reconstruct', + 'redrawmainscrn', 'reelsonscreen', 'removeemm', 'removesetobject', @@ -471,6 +475,7 @@ generator = cpp(context, "DreamGen", blacklist = [ 'scrollmonitor', 'security', 'seecommandtail', + 'selectslot2', 'setallchanges', 'setbotleft', 'setbotright', @@ -573,6 +578,7 @@ generator = cpp(context, "DreamGen", blacklist = [ 'waitframes', 'walkandexamine', 'walking', + 'walkintoroom', 'walktotext', 'watchcount', 'wearwatch', diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp index 78d3fa2351..50a0d3bc9f 100644 --- a/engines/dreamweb/dreamgen.cpp +++ b/engines/dreamweb/dreamgen.cpp @@ -2165,18 +2165,6 @@ void DreamGenContext::showMonk() { showFrame(); } -void DreamGenContext::gettingShot() { - STACK_CHECK; - data.byte(kNewlocation) = 55; - clearPalette(); - loadIntroRoom(); - fadeScreenUps(); - data.byte(kVolumeto) = 0; - data.byte(kVolumedirection) = -1; - runEndSeq(); - clearBeforeLoad(); -} - void DreamGenContext::runIntroSeq() { STACK_CHECK; data.byte(kGetback) = 0; @@ -2236,26 +2224,6 @@ moreendseq: goto moreendseq; } -void DreamGenContext::loadIntroRoom() { - STACK_CHECK; - data.byte(kIntrocount) = 0; - data.byte(kLocation) = 255; - loadRoom(); - data.word(kMapoffsetx) = 72; - data.word(kMapoffsety) = 16; - clearSprites(); - data.byte(kThroughdoor) = 0; - data.byte(kCurrentkey) = '0'; - data.byte(kMainmode) = 0; - clearWork(); - data.byte(kNewobs) = 1; - drawFloor(); - reelsOnScreen(); - spriteUpdate(); - printSprites(); - workToScreen(); -} - void DreamGenContext::fillOpen() { STACK_CHECK; delTextLine(); @@ -4017,21 +3985,6 @@ beforethistext: goto shuffletextads; } -void DreamGenContext::redrawMainScrn() { - STACK_CHECK; - data.word(kTimecount) = 0; - createPanel(); - data.byte(kNewobs) = 0; - drawFloor(); - printSprites(); - reelsOnScreen(); - showIcon(); - getUnderZoom(); - underTextLine(); - readMouse(); - data.byte(kCommandtype) = 255; -} - void DreamGenContext::getBack1() { STACK_CHECK; _cmp(data.byte(kPickup), 0); @@ -8498,16 +8451,6 @@ discopsloop: goto discopsloop; } -void DreamGenContext::selectSlot2() { - STACK_CHECK; - _cmp(data.word(kMousebutton), 0); - if (flags.z()) - goto noselslot2; - data.byte(kLoadingorsave) = 2; -noselslot2: - selectSlot(); -} - void DreamGenContext::checkInput() { STACK_CHECK; _cmp(data.byte(kLoadingorsave), 3); @@ -9523,35 +9466,6 @@ ryansoff: atmospheres(); } -void DreamGenContext::walkIntoRoom() { - STACK_CHECK; - _cmp(data.byte(kLocation), 14); - if (!flags.z()) - return /* (notlair) */; - _cmp(data.byte(kMapx), 22); - if (!flags.z()) - return /* (notlair) */; - data.byte(kDestination) = 1; - data.byte(kFinaldest) = 1; - autoSetWalk(); -} - -void DreamGenContext::afterIntroRoom() { - STACK_CHECK; - _cmp(data.byte(kNowinnewroom), 0); - if (flags.z()) - return /* (notnewintro) */; - clearWork(); - findRoomInLoc(); - data.byte(kNewobs) = 1; - drawFloor(); - reelsOnScreen(); - spriteUpdate(); - printSprites(); - workToScreen(); - data.byte(kNowinnewroom) = 0; -} - void DreamGenContext::printmessage2() { STACK_CHECK; push(dx); diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h index bcaf1343e1..f8968c2313 100644 --- a/engines/dreamweb/dreamgen.h +++ b/engines/dreamweb/dreamgen.h @@ -585,7 +585,6 @@ public: void sLabDoorD(); void adjustUp(); void fadeScreenDownHalf(); - void loadIntroRoom(); void mouseCall(); void train(); void fadeDownMon(); @@ -608,7 +607,6 @@ public: void getUnderZoom(); void rollEndCredits2(); void reminders(); - void selectSlot2(); void runTap(); void talk(); void dumpDiaryKeys(); @@ -623,7 +621,6 @@ public: void entryAnims(); void getFreeAd(); void showArrows(); - void walkIntoRoom(); void printOuterMon(); void showDecisions(); void removeObFromInv(); @@ -720,7 +717,6 @@ public: void useElvDoor(); void putBackObStuff(); void useLadder(); - void afterIntroRoom(); void findAllOpen(); void quitSymbol(); void readFromFile(); @@ -777,7 +773,6 @@ public: void additionalText(); void hotelControl(); void mugger(); - void gettingShot(); void searchForString(); void selectOpenOb(); void useGun(); @@ -814,7 +809,6 @@ public: void monkAndRyan(); void swapWithInv(); void useControl(); - void redrawMainScrn(); void makeMainScreen(); void useWinch(); void updateSymbolTop(); diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp index bee5b83197..fa0a3b0bc6 100644 --- a/engines/dreamweb/stubs.cpp +++ b/engines/dreamweb/stubs.cpp @@ -3504,5 +3504,79 @@ void DreamGenContext::initialInv() { switchRyanOff(); } +void DreamGenContext::walkIntoRoom() { + if (data.byte(kLocation) == 14 && data.byte(kMapx) == 22) { + data.byte(kDestination) = 1; + data.byte(kFinaldest) = 1; + autoSetWalk(); + } +} + +void DreamGenContext::loadIntroRoom() { + data.byte(kIntrocount) = 0; + data.byte(kLocation) = 255; + loadRoom(); + data.word(kMapoffsetx) = 72; + data.word(kMapoffsety) = 16; + clearSprites(); + data.byte(kThroughdoor) = 0; + data.byte(kCurrentkey) = '0'; + data.byte(kMainmode) = 0; + clearWork(); + data.byte(kNewobs) = 1; + drawFloor(); + reelsOnScreen(); + spriteUpdate(); + printSprites(); + workToScreen(); +} + +void DreamGenContext::afterIntroRoom() { + if (data.byte(kNowinnewroom) == 0) + return; // notnewintro + + clearWork(); + findRoomInLoc(); + data.byte(kNewobs) = 1; + drawFloor(); + reelsOnScreen(); + spriteUpdate(); + printSprites(); + workToScreen(); + data.byte(kNowinnewroom) = 0; +} + +void DreamGenContext::gettingShot() { + data.byte(kNewlocation) = 55; + clearPalette(); + loadIntroRoom(); + fadeScreenUps(); + data.byte(kVolumeto) = 0; + data.byte(kVolumedirection) = 0xFF; + runEndSeq(); + clearBeforeLoad(); +} + +void DreamGenContext::redrawMainScrn() { + data.word(kTimecount) = 0; + createPanel(); + data.byte(kNewobs) = 0; + drawFloor(); + printSprites(); + reelsOnScreen(); + showIcon(); + getUnderZoom(); + underTextLine(); + readMouse(); + data.byte(kCommandtype) = 255; +} + +void DreamGenContext::selectSlot2() { + if (data.word(kMousebutton) == 0) + selectSlot(); + else + data.byte(kLoadingorsave) = 2; +} + } /*namespace dreamgen */ diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h index 3149b7722d..94a30b0463 100644 --- a/engines/dreamweb/stubs.h +++ b/engines/dreamweb/stubs.h @@ -505,5 +505,11 @@ void getBackToOps(); void pickupOb(uint8 command, uint8 pos); void initialInv(); + void walkIntoRoom(); + void loadIntroRoom(); + void afterIntroRoom(); + void gettingShot(); + void redrawMainScrn(); + void selectSlot2(); #endif |