aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilippos Karapetis2011-12-06 04:19:57 +0200
committerFilippos Karapetis2011-12-06 04:19:57 +0200
commit5a96238dd3f739cdec6f44d52ceedcada87ae565 (patch)
tree15cd460b9b42ff1f44ebcd24554d2f1b222dbf16
parentf224c09afaadddead7df755aa8c247774e6f6bb4 (diff)
downloadscummvm-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-xdevtools/tasmrecover/tasm-recover6
-rw-r--r--engines/dreamweb/dreamgen.cpp86
-rw-r--r--engines/dreamweb/dreamgen.h6
-rw-r--r--engines/dreamweb/stubs.cpp74
-rw-r--r--engines/dreamweb/stubs.h6
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