DREAMWEB: 'reconstruct' ported to C++

This commit is contained in:
Bertrand Augereau 2011-11-23 10:23:18 +01:00
parent 8a2500cd64
commit c50384bbf5
5 changed files with 15 additions and 22 deletions

View file

@ -272,6 +272,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'createpanel2', 'createpanel2',
'findroominloc', 'findroominloc',
'reelsonscreen', 'reelsonscreen',
'reconstruct',
], skip_output = [ ], skip_output = [
# These functions are processed but not output # These functions are processed but not output
'dreamweb', 'dreamweb',

View file

@ -2187,26 +2187,6 @@ endreelsound:
data.word(kLastsoundreel) = -1; 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() { void DreamGenContext::deleverything() {
STACK_CHECK; STACK_CHECK;
al = data.byte(kMapysize); al = data.byte(kMapysize);

View file

@ -474,7 +474,6 @@ public:
static const uint16 addr_setmode = 0xc1dc; static const uint16 addr_setmode = 0xc1dc;
static const uint16 addr_showpcx = 0xc1cc; static const uint16 addr_showpcx = 0xc1cc;
static const uint16 addr_deleverything = 0xc1c0; static const uint16 addr_deleverything = 0xc1c0;
static const uint16 addr_reconstruct = 0xc1ac;
static const uint16 addr_soundonreels = 0xc1a8; static const uint16 addr_soundonreels = 0xc1a8;
static const uint16 addr_constant = 0xc184; static const uint16 addr_constant = 0xc184;
static const uint16 addr_steady = 0xc180; static const uint16 addr_steady = 0xc180;
@ -1558,7 +1557,7 @@ public:
//void readheader(); //void readheader();
void getsetad(); void getsetad();
//void getyad(); //void getyad();
void reconstruct(); //void reconstruct();
void soldier1(); void soldier1();
//void animpointer(); //void animpointer();
void getundercentre(); void getundercentre();

View file

@ -1020,5 +1020,17 @@ void DreamGenContext::reelsonscreen() {
usetimedtext(); 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 */ } /*namespace dreamgen */

View file

@ -331,4 +331,5 @@
void createpanel2(); void createpanel2();
void findroominloc(); void findroominloc();
void reelsonscreen(); void reelsonscreen();
void reconstruct();