DREAMWEB: 'maptopanel' and 'dumpmap' ported to C++

This commit is contained in:
Bertrand Augereau 2011-08-30 12:22:09 +02:00
parent 6a46429c44
commit 233592d28a
5 changed files with 14 additions and 30 deletions

View file

@ -168,6 +168,8 @@ generator = cpp(context, "DreamGen", blacklist = [
'addtopeoplelist',
'getexpos',
'paneltomap',
'maptopanel',
'dumpmap',
'obpicture',
'delthisone',
'transferinv',

View file

@ -2657,30 +2657,6 @@ nought:
goto palloop;
}
void DreamGenContext::maptopanel() {
STACK_CHECK;
di = data.word(kMapxstart);
_add(di, data.word(kMapadx));
bx = data.word(kMapystart);
_add(bx, data.word(kMapady));
ds = data.word(kMapstore);
si = 0;
cl = data.byte(kMapxsize);
ch = data.byte(kMapysize);
multiput();
}
void DreamGenContext::dumpmap() {
STACK_CHECK;
di = data.word(kMapxstart);
_add(di, data.word(kMapadx));
bx = data.word(kMapystart);
_add(bx, data.word(kMapady));
cl = data.byte(kMapxsize);
ch = data.byte(kMapysize);
multidump();
}
void DreamGenContext::pixelcheckset() {
STACK_CHECK;
push(ax);
@ -17676,8 +17652,6 @@ void DreamGenContext::__dispatch_call(uint16 addr) {
case addr_showpcx: showpcx(); break;
case addr_loadpalfromiff: loadpalfromiff(); break;
case addr_setmode: setmode(); break;
case addr_maptopanel: maptopanel(); break;
case addr_dumpmap: dumpmap(); break;
case addr_pixelcheckset: pixelcheckset(); break;
case addr_createpanel: createpanel(); break;
case addr_createpanel2: createpanel2(); break;

View file

@ -562,8 +562,6 @@ public:
static const uint16 addr_createpanel2 = 0xc200;
static const uint16 addr_createpanel = 0xc1fc;
static const uint16 addr_pixelcheckset = 0xc1f8;
static const uint16 addr_dumpmap = 0xc1f4;
static const uint16 addr_maptopanel = 0xc1f0;
static const uint16 addr_setmode = 0xc1dc;
static const uint16 addr_loadpalfromiff = 0xc1d8;
static const uint16 addr_showpcx = 0xc1cc;
@ -1290,7 +1288,7 @@ public:
//void lockeddoorway();
void isitworn();
//void putundertimed();
void dumpmap();
//void dumpmap();
//void multidump();
void channel0only();
void worktoscreenm();
@ -1539,7 +1537,7 @@ public:
void monks2text();
void clearpalette();
void cantdrop();
void maptopanel();
//void maptopanel();
//void calcmapad();
void getridofall();
void copper();

View file

@ -201,6 +201,8 @@
void addtopeoplelist(ReelRoutine *routine);
void getexpos();
void paneltomap();
void maptopanel();
void dumpmap();
void obpicture();
void transferinv();

View file

@ -415,6 +415,14 @@ void DreamGenContext::paneltomap() {
multiget(segRef(data.word(kMapstore)).ptr(0, 0), data.word(kMapxstart) + data.word(kMapadx), data.word(kMapystart) + data.word(kMapady), data.byte(kMapxsize), data.byte(kMapysize));
}
void DreamGenContext::maptopanel() {
multiput(segRef(data.word(kMapstore)).ptr(0, 0), data.word(kMapxstart) + data.word(kMapadx), data.word(kMapystart) + data.word(kMapady), data.byte(kMapxsize), data.byte(kMapysize));
}
void DreamGenContext::dumpmap() {
multidump(data.word(kMapxstart) + data.word(kMapadx), data.word(kMapystart) + data.word(kMapady), data.byte(kMapxsize), data.byte(kMapysize));
}
void DreamGenContext::transferinv() {
const Frame *freeFrames = (const Frame *)segRef(data.word(kFreeframes)).ptr(kFrframedata, 0);
const Frame *freeFrame = freeFrames + (3 * data.byte(kItemtotran) + 1);