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',
'findroominloc',
'reelsonscreen',
'reconstruct',
], skip_output = [
# These functions are processed but not output
'dreamweb',

View file

@ -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);

View file

@ -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();

View file

@ -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 */

View file

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