diff options
author | Filippos Karapetis | 2011-12-08 23:05:31 +0200 |
---|---|---|
committer | Filippos Karapetis | 2011-12-08 23:05:31 +0200 |
commit | 47fd83e19fa9a39fb7d1d98c8d25eb5306ff78de (patch) | |
tree | 4e09c7cc839dd1d89fd74da6c35b8d40cb3e88d1 | |
parent | 128f75739c7382179e8f70e6a7098fc366d65821 (diff) | |
download | scummvm-rg350-47fd83e19fa9a39fb7d1d98c8d25eb5306ff78de.tar.gz scummvm-rg350-47fd83e19fa9a39fb7d1d98c8d25eb5306ff78de.tar.bz2 scummvm-rg350-47fd83e19fa9a39fb7d1d98c8d25eb5306ff78de.zip |
DREAMWEB: Port 'decide' to C++
-rwxr-xr-x | devtools/tasmrecover/tasm-recover | 1 | ||||
-rw-r--r-- | engines/dreamweb/dreamgen.cpp | 44 | ||||
-rw-r--r-- | engines/dreamweb/dreamgen.h | 1 | ||||
-rw-r--r-- | engines/dreamweb/stubs.cpp | 40 | ||||
-rw-r--r-- | engines/dreamweb/stubs.h | 1 |
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 |