aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilippos Karapetis2011-12-06 01:16:38 +0200
committerFilippos Karapetis2011-12-06 01:16:38 +0200
commite8ea99cd8ec9a34d687081afa17ef1e4d65d2a4e (patch)
treef0cd75c28e89229539f64f9a3657bf594eb3465f
parent06ef3452b78c2041e8054c10eb6d1929938d1b1b (diff)
downloadscummvm-rg350-e8ea99cd8ec9a34d687081afa17ef1e4d65d2a4e.tar.gz
scummvm-rg350-e8ea99cd8ec9a34d687081afa17ef1e4d65d2a4e.tar.bz2
scummvm-rg350-e8ea99cd8ec9a34d687081afa17ef1e4d65d2a4e.zip
DREAMWEB: 'callhotellift', 'carparkdrip', 'useshield' ported to C++
-rwxr-xr-xdevtools/tasmrecover/tasm-recover3
-rw-r--r--engines/dreamweb/dreamgen.cpp42
-rw-r--r--engines/dreamweb/dreamgen.h3
-rw-r--r--engines/dreamweb/people.cpp19
-rw-r--r--engines/dreamweb/stubs.h3
-rw-r--r--engines/dreamweb/use.cpp25
6 files changed, 44 insertions, 51 deletions
diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover
index 824d9c2fc0..708845dac7 100755
--- a/devtools/tasmrecover/tasm-recover
+++ b/devtools/tasmrecover/tasm-recover
@@ -176,9 +176,11 @@ generator = cpp(context, "DreamGen", blacklist = [
'buttontwo',
'calcfrframe',
'calcmapad',
+ 'callhotellift',
'cancelch0',
'cancelch1',
'candles',
+ 'carparkdrip',
'channel0only',
'channel0tran',
'channel1only',
@@ -539,6 +541,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'usemenu',
'usemon',
'useroutine',
+ 'useshield',
'usetempcharset',
'usetext',
'usetimedtext',
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 90b3785f97..595a869e68 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -699,15 +699,6 @@ notboss:
data.byte(kTalkedtoboss) = 1;
}
-void DreamGenContext::carParkDrip() {
- STACK_CHECK;
- checkSpeed();
- if (!flags.z())
- return /* (cantdrip2) */;
- al = 14;
- playChannel1();
-}
-
void DreamGenContext::keeper() {
STACK_CHECK;
_cmp(data.byte(kKeeperflag), 0);
@@ -6641,20 +6632,6 @@ void DreamGenContext::trapDoor() {
data.byte(kGetback) = 1;
}
-void DreamGenContext::callHotelLift() {
- STACK_CHECK;
- al = 12;
- playChannel1();
- showFirstUse();
- data.byte(kCounttoopen) = 8;
- data.byte(kGetback) = 1;
- data.byte(kDestination) = 5;
- data.byte(kFinaldest) = 5;
- autoSetWalk();
- al = 4;
- turnPathOn();
-}
-
void DreamGenContext::callEdensLift() {
STACK_CHECK;
showFirstUse();
@@ -8113,25 +8090,6 @@ nottvsoldier:
putBackObStuff();
}
-void DreamGenContext::useShield() {
- STACK_CHECK;
- _cmp(data.byte(kReallocation), 20);
- if (!flags.z())
- goto notinsartroom;
- _cmp(data.byte(kCombatcount), 0);
- if (flags.z())
- goto notinsartroom;
- data.byte(kLastweapon) = 3;
- showSecondUse();
- data.byte(kGetback) = 1;
- _inc(data.byte(kProgresspoints));
- removeObFromInv();
- return;
-notinsartroom:
- showFirstUse();
- putBackObStuff();
-}
-
void DreamGenContext::useButtonA() {
STACK_CHECK;
al = 95;
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index 67419c1ac5..928fffd150 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -687,7 +687,6 @@ public:
void introMagic2();
void introMagic3();
void showDiaryPage();
- void useShield();
void getBackToOps();
void dumpSymbol();
void intro1Text();
@@ -742,7 +741,6 @@ public:
void quitSymbol();
void setTopRight();
void findSetObject();
- void carParkDrip();
void useDiary();
void deleteExObject();
void moneyPoke();
@@ -806,7 +804,6 @@ public:
void useGun();
void autoAppear();
void openRyan();
- void callHotelLift();
void useFullCart();
void newPlace();
void useCardReader1();
diff --git a/engines/dreamweb/people.cpp b/engines/dreamweb/people.cpp
index 83533c6a2d..1bf46d32d7 100644
--- a/engines/dreamweb/people.cpp
+++ b/engines/dreamweb/people.cpp
@@ -51,9 +51,9 @@ static void (DreamGenContext::*reelCallbacks[57])() = {
&DreamGenContext::monkAndRyan, &DreamGenContext::endGameSeq,
&DreamGenContext::priest, NULL,
NULL, &DreamGenContext::alleyBarkSound,
- &DreamGenContext::foghornSound, &DreamGenContext::carParkDrip,
- &DreamGenContext::carParkDrip, &DreamGenContext::carParkDrip,
- &DreamGenContext::carParkDrip
+ &DreamGenContext::foghornSound, NULL,
+ NULL, NULL,
+ NULL
};
static void (DreamGenContext::*reelCallbacksCPP[57])(ReelRoutine &) = {
@@ -83,9 +83,9 @@ static void (DreamGenContext::*reelCallbacksCPP[57])(ReelRoutine &) = {
/*&DreamGenContext::monkAndRyan*/NULL, /*&DreamGenContext::endGameSeq*/NULL,
/*&DreamGenContext::priest*/NULL, &DreamGenContext::madman,
&DreamGenContext::madmansTelly, /*&DreamGenContext::alleyBarkSound*/NULL,
- /*&DreamGenContext::foghornSound*/NULL, /*&DreamGenContext::carParkDrip*/NULL,
- /*&DreamGenContext::carParkDrip*/NULL, /*&DreamGenContext::carParkDrip*/NULL,
- /*&DreamGenContext::carParkDrip*/NULL
+ /*&DreamGenContext::foghornSound*/NULL, &DreamGenContext::carParkDrip,
+ &DreamGenContext::carParkDrip, &DreamGenContext::carParkDrip,
+ &DreamGenContext::carParkDrip
};
void DreamGenContext::updatePeople() {
@@ -448,5 +448,12 @@ void DreamGenContext::louis(ReelRoutine &routine) {
void DreamGenContext::handClap(ReelRoutine &routine) {
}
+void DreamGenContext::carParkDrip(ReelRoutine &routine) {
+ if (!checkSpeed(routine))
+ return; // cantdrip2
+
+ playChannel1(14);
+}
+
} /*namespace dreamgen */
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index daf7388e7b..799905072f 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -378,6 +378,8 @@
void useElevator4();
void useHatch();
void wheelSound();
+ void callHotelLift();
+ void useShield();
void checkFolderCoords();
void loadFolder();
void showFolder();
@@ -418,6 +420,7 @@
void edenInBath(ReelRoutine &routine);
void louis(ReelRoutine &routine);
void handClap(ReelRoutine &routine);
+ void carParkDrip(ReelRoutine &routine);
void singleKey(uint8 key, uint16 x, uint16 y);
void loadSaveBox();
void loadKeypad();
diff --git a/engines/dreamweb/use.cpp b/engines/dreamweb/use.cpp
index 39423b392c..4421134f9b 100644
--- a/engines/dreamweb/use.cpp
+++ b/engines/dreamweb/use.cpp
@@ -287,5 +287,30 @@ void DreamGenContext::wheelSound() {
putBackObStuff();
}
+void DreamGenContext::callHotelLift() {
+ playChannel1(12);
+ showFirstUse();
+ data.byte(kCounttoopen) = 8;
+ data.byte(kGetback) = 1;
+ data.byte(kDestination) = 5;
+ data.byte(kFinaldest) = 5;
+ autoSetWalk();
+ turnPathOn(4);
+}
+
+void DreamGenContext::useShield() {
+ if (data.byte(kReallocation) != 20 || data.byte(kCombatcount) == 0) {
+ // Not in Sart room
+ showFirstUse();
+ putBackObStuff();
+ } else {
+ data.byte(kLastweapon) = 3;
+ showSecondUse();
+ data.byte(kGetback) = 1;
+ data.byte(kProgresspoints) = data.byte(kProgresspoints) + 1;
+ removeObFromInv();
+ }
+}
+
} /*namespace dreamgen */