aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilippos Karapetis2011-12-08 23:05:31 +0200
committerFilippos Karapetis2011-12-08 23:05:31 +0200
commit47fd83e19fa9a39fb7d1d98c8d25eb5306ff78de (patch)
tree4e09c7cc839dd1d89fd74da6c35b8d40cb3e88d1
parent128f75739c7382179e8f70e6a7098fc366d65821 (diff)
downloadscummvm-rg350-47fd83e19fa9a39fb7d1d98c8d25eb5306ff78de.tar.gz
scummvm-rg350-47fd83e19fa9a39fb7d1d98c8d25eb5306ff78de.tar.bz2
scummvm-rg350-47fd83e19fa9a39fb7d1d98c8d25eb5306ff78de.zip
DREAMWEB: Port 'decide' to C++
-rwxr-xr-xdevtools/tasmrecover/tasm-recover1
-rw-r--r--engines/dreamweb/dreamgen.cpp44
-rw-r--r--engines/dreamweb/dreamgen.h1
-rw-r--r--engines/dreamweb/stubs.cpp40
-rw-r--r--engines/dreamweb/stubs.h1
5 files changed, 42 insertions, 45 deletions
diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover
index baea7a8fb7..fe946f4792 100755
--- a/devtools/tasmrecover/tasm-recover
+++ b/devtools/tasmrecover/tasm-recover
@@ -242,6 +242,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'crosshair',
'dealwithspecial',
'deallocatemem',
+ 'decide',
'delchar',
'delcurs',
'deletetaken',
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 022b80a721..6e0bb6d38e 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -6221,50 +6221,6 @@ afterprintname:
goto shownameloop;
}
-void DreamGenContext::decide() {
- STACK_CHECK;
- setMode();
- loadPalFromIFF();
- clearPalette();
- data.byte(kPointermode) = 0;
- data.word(kWatchingtime) = 0;
- data.byte(kPointerframe) = 0;
- data.word(kTextaddressx) = 70;
- data.word(kTextaddressy) = 182-8;
- data.byte(kTextlen) = 181;
- data.byte(kManisoffscreen) = 1;
- loadSaveBox();
- showDecisions();
- workToScreen();
- fadeScreenUp();
- data.byte(kGetback) = 0;
-waitdecide:
- _cmp(data.byte(kQuitrequested), 0);
- if (flags.z())
- goto _tmp1;
- return;
-_tmp1:
- readMouse();
- showPointer();
- vSync();
- dumpPointer();
- dumpTextLine();
- delPointer();
- bx = offset_decidelist;
- checkCoords();
- _cmp(data.byte(kGetback), 0);
- if (flags.z())
- goto waitdecide;
- _cmp(data.byte(kGetback), 4);
- if (flags.z())
- goto hasloadedroom;
- getRidOfTemp();
-hasloadedroom:
- data.word(kTextaddressx) = 13;
- data.word(kTextaddressy) = 182;
- data.byte(kTextlen) = 240;
-}
-
void DreamGenContext::createName() {
STACK_CHECK;
push(ax);
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index 3ca39f0eda..1f1b81cd60 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -601,7 +601,6 @@ public:
void selectOb();
void receptionist();
void selectSlot();
- void decide();
void fadeUpMon();
void showDiaryPage();
void transferToEx();
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index 14029ae835..e66a0816de 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -3946,4 +3946,44 @@ void DreamGenContext::madmanRun() {
data.byte(kLastweapon) = 8;
}
+
+void DreamGenContext::decide() {
+ setMode();
+ loadPalFromIFF();
+ clearPalette();
+ data.byte(kPointermode) = 0;
+ data.word(kWatchingtime) = 0;
+ data.byte(kPointerframe) = 0;
+ data.word(kTextaddressx) = 70;
+ data.word(kTextaddressy) = 182 - 8;
+ data.byte(kTextlen) = 181;
+ data.byte(kManisoffscreen) = 1;
+ loadSaveBox();
+ showDecisions();
+ workToScreen();
+ fadeScreenUp();
+ data.byte(kGetback) = 0;
+
+ do {
+ if (data.byte(kQuitrequested) != 0)
+ return;
+
+ readMouse();
+ showPointer();
+ vSync();
+ dumpPointer();
+ dumpTextLine();
+ delPointer();
+ bx = offset_decidelist;
+ checkCoords();
+ } while (!data.byte(kGetback));
+
+ if (data.byte(kGetback) != 4)
+ getRidOfTemp(); // room not loaded
+
+ data.word(kTextaddressx) = 13;
+ data.word(kTextaddressy) = 182;
+ data.byte(kTextlen) = 240;
+}
+
} // End of namespace DreamGen
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index 012d0a8e6d..ff5585b941 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -554,5 +554,6 @@
void underTextLine();
void getUnderZoom();
void putUnderZoom();
+ void decide();
#endif