From c50384bbf56e1f2d145b67b730a8247fb16e7fe2 Mon Sep 17 00:00:00 2001 From: Bertrand Augereau Date: Wed, 23 Nov 2011 10:23:18 +0100 Subject: DREAMWEB: 'reconstruct' ported to C++ --- devtools/tasmrecover/tasm-recover | 1 + engines/dreamweb/dreamgen.cpp | 20 -------------------- engines/dreamweb/dreamgen.h | 3 +-- engines/dreamweb/sprite.cpp | 12 ++++++++++++ engines/dreamweb/stubs.h | 1 + 5 files changed, 15 insertions(+), 22 deletions(-) diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover index 8722a2d764..567893cf7e 100755 --- a/devtools/tasmrecover/tasm-recover +++ b/devtools/tasmrecover/tasm-recover @@ -272,6 +272,7 @@ generator = cpp(context, "DreamGen", blacklist = [ 'createpanel2', 'findroominloc', 'reelsonscreen', + 'reconstruct', ], skip_output = [ # These functions are processed but not output 'dreamweb', diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp index 4ea1410a20..4d67ad7701 100644 --- a/engines/dreamweb/dreamgen.cpp +++ b/engines/dreamweb/dreamgen.cpp @@ -2187,26 +2187,6 @@ endreelsound: data.word(kLastsoundreel) = -1; } -void DreamGenContext::reconstruct() { - STACK_CHECK; - _cmp(data.byte(kHavedoneobs), 0); - if (flags.z()) - return /* (noneedtorecon) */; - data.byte(kNewobs) = 1; - drawfloor(); - spriteupdate(); - printsprites(); - _cmp(data.byte(kForeignrelease), 0); - if (flags.z()) - goto notfudge; - _cmp(data.byte(kReallocation), 20); - if (!flags.z()) - goto notfudge; - undertextline(); -notfudge: - data.byte(kHavedoneobs) = 0; -} - void DreamGenContext::deleverything() { STACK_CHECK; al = data.byte(kMapysize); diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h index c3ed363a3e..b132604d12 100644 --- a/engines/dreamweb/dreamgen.h +++ b/engines/dreamweb/dreamgen.h @@ -474,7 +474,6 @@ public: static const uint16 addr_setmode = 0xc1dc; static const uint16 addr_showpcx = 0xc1cc; static const uint16 addr_deleverything = 0xc1c0; - static const uint16 addr_reconstruct = 0xc1ac; static const uint16 addr_soundonreels = 0xc1a8; static const uint16 addr_constant = 0xc184; static const uint16 addr_steady = 0xc180; @@ -1558,7 +1557,7 @@ public: //void readheader(); void getsetad(); //void getyad(); - void reconstruct(); + //void reconstruct(); void soldier1(); //void animpointer(); void getundercentre(); diff --git a/engines/dreamweb/sprite.cpp b/engines/dreamweb/sprite.cpp index 9e6d9d26d1..8d3d76a26f 100644 --- a/engines/dreamweb/sprite.cpp +++ b/engines/dreamweb/sprite.cpp @@ -1020,5 +1020,17 @@ void DreamGenContext::reelsonscreen() { usetimedtext(); } +void DreamGenContext::reconstruct() { + if (data.byte(kHavedoneobs) == 0) + return; + data.byte(kNewobs) = 1; + drawfloor(); + spriteupdate(); + printsprites(); + if ((data.byte(kForeignrelease) != 0) && (data.byte(kReallocation) == 20)) + undertextline(); + data.byte(kHavedoneobs) = 0; +} + } /*namespace dreamgen */ diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h index 18a513b520..2a9a068439 100644 --- a/engines/dreamweb/stubs.h +++ b/engines/dreamweb/stubs.h @@ -331,4 +331,5 @@ void createpanel2(); void findroominloc(); void reelsonscreen(); + void reconstruct(); -- cgit v1.2.3