diff options
author | Bertrand Augereau | 2011-11-20 21:13:46 +0100 |
---|---|---|
committer | Bertrand Augereau | 2011-11-20 21:22:16 +0100 |
commit | 57fc322992046e4a8fc1dd0b1969843430ad7795 (patch) | |
tree | f74e722e9385feac2e7c260a70575a356c70efef | |
parent | 2d4197381e251bcb71fdf452606c5f6fcc2d8561 (diff) | |
download | scummvm-rg350-57fc322992046e4a8fc1dd0b1969843430ad7795.tar.gz scummvm-rg350-57fc322992046e4a8fc1dd0b1969843430ad7795.tar.bz2 scummvm-rg350-57fc322992046e4a8fc1dd0b1969843430ad7795.zip |
DREAMWEB: 'screenupdate' ported to C++
-rwxr-xr-x | devtools/tasmrecover/tasm-recover | 1 | ||||
-rw-r--r-- | engines/dreamweb/dreamgen.cpp | 54 | ||||
-rw-r--r-- | engines/dreamweb/dreamgen.h | 7 | ||||
-rw-r--r-- | engines/dreamweb/stubs.cpp | 45 | ||||
-rw-r--r-- | engines/dreamweb/stubs.h | 1 |
5 files changed, 50 insertions, 58 deletions
diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover index b90f0b65f5..8b0797accb 100755 --- a/devtools/tasmrecover/tasm-recover +++ b/devtools/tasmrecover/tasm-recover @@ -31,6 +31,7 @@ p.link() generator = cpp(context, "DreamGen", blacklist = [ # These functions are not processed 'randomnumber', + 'screenupdate', 'startup', 'startup1', 'switchryanon', diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp index 4ce51014f4..0e242fcc83 100644 --- a/engines/dreamweb/dreamgen.cpp +++ b/engines/dreamweb/dreamgen.cpp @@ -12448,59 +12448,6 @@ void DreamGenContext::clearrest() { deallocatemem(); } -void DreamGenContext::screenupdate() { - STACK_CHECK; - newplace(); - mainscreen(); - _cmp(data.byte(kQuitrequested), 0); - if (!flags.z()) - return /* (finishearly) */; - animpointer(); - showpointer(); - _cmp(data.word(kWatchingtime), 0); - if (!flags.z()) - goto iswatchingmode; - _cmp(data.byte(kNewlocation), 255); - if (!flags.z()) - return /* (finishearly) */; -iswatchingmode: - vsync(); - readmouse1(); - dumppointer(); - dumptextline(); - delpointer(); - autolook(); - spriteupdate(); - watchcount(); - zoom(); - showpointer(); - _cmp(data.byte(kWongame), 0); - if (!flags.z()) - return /* (finishearly) */; - vsync(); - readmouse2(); - dumppointer(); - dumpzoom(); - delpointer(); - deleverything(); - printsprites(); - reelsonscreen(); - afternewroom(); - showpointer(); - vsync(); - readmouse3(); - dumppointer(); - dumpmap(); - dumptimedtext(); - delpointer(); - showpointer(); - vsync(); - readmouse4(); - dumppointer(); - dumpwatch(); - delpointer(); -} - void DreamGenContext::watchreel() { STACK_CHECK; _cmp(data.word(kReeltowatch), -1); @@ -15287,7 +15234,6 @@ void DreamGenContext::__dispatch_call(uint16 addr) { case addr_clearrest: clearrest(); break; case addr_deallocatemem: deallocatemem(); break; case addr_allocatemem: allocatemem(); break; - case addr_screenupdate: screenupdate(); break; case addr_watchreel: watchreel(); break; case addr_checkforshake: checkforshake(); break; case addr_showbyte: showbyte(); break; diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h index fc9ae785c8..d003a6ecb1 100644 --- a/engines/dreamweb/dreamgen.h +++ b/engines/dreamweb/dreamgen.h @@ -103,7 +103,6 @@ public: static const uint16 addr_showbyte = 0xc9b4; static const uint16 addr_checkforshake = 0xc9a4; static const uint16 addr_watchreel = 0xc9a0; - static const uint16 addr_screenupdate = 0xc99c; static const uint16 addr_allocatemem = 0xc988; static const uint16 addr_deallocatemem = 0xc984; static const uint16 addr_clearrest = 0xc980; @@ -1218,7 +1217,7 @@ public: void getbackfromops(); //void frameoutv(); void showbyte(); - void screenupdate(); + //void screenupdate(); //void addlength(); //void usetimedtext(); void putundercentre(); @@ -1356,7 +1355,7 @@ public: //void domix(); //void paneltomap(); //void obname(); - void getridoftemp3(); + void talk(); void getridoftemp2(); void usebalcony(); void runendseq(); @@ -1528,7 +1527,7 @@ public: //void pixelcheckset(); void reexfrominv(); void examinventory(); - void talk(); + void getridoftemp3(); void usedryer(); //void dumpeverything(); //void readmouse2(); diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp index 5dc1ee06ba..8a191224af 100644 --- a/engines/dreamweb/stubs.cpp +++ b/engines/dreamweb/stubs.cpp @@ -203,6 +203,51 @@ void DreamGenContext::dreamweb() { } } +void DreamGenContext::screenupdate() { + newplace(); + mainscreen(); + if (data.byte(kQuitrequested)) + return; + animpointer(); + showpointer(); + if ((data.word(kWatchingtime) == 0) && (data.byte(kNewlocation) != 0xff)) + return; + vsync(); + readmouse1(); + dumppointer(); + dumptextline(); + delpointer(); + autolook(); + spriteupdate(); + watchcount(); + zoom(); + showpointer(); + if (data.byte(kWongame)) + return; + vsync(); + readmouse2(); + dumppointer(); + dumpzoom(); + delpointer(); + deleverything(); + printsprites(); + reelsonscreen(); + afternewroom(); + showpointer(); + vsync(); + readmouse3(); + dumppointer(); + dumpmap(); + dumptimedtext(); + delpointer(); + showpointer(); + vsync(); + readmouse4(); + dumppointer(); + dumpwatch(); + delpointer(); +} + void DreamGenContext::startup() { data.byte(kCurrentkey) = 0; data.byte(kMainmode) = 0; diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h index c613591089..27ed468325 100644 --- a/engines/dreamweb/stubs.h +++ b/engines/dreamweb/stubs.h @@ -19,6 +19,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * */ + void screenupdate(); void startup(); void startup1(); void switchryanon(); |