DREAMWEB: 'getlocation' and 'setlocation' ported to C++

This commit is contained in:
Bertrand Augereau 2011-11-28 17:03:07 +01:00
parent 9d5a831c10
commit 23aa97f3b8
5 changed files with 25 additions and 24 deletions

View File

@ -305,6 +305,8 @@ generator = cpp(context, "DreamGen", blacklist = [
'showfolder',
'showleftpage',
'showrightpage',
'getlocation',
'setlocation',
], skip_output = [
# These functions are processed but not output
'dreamweb',

View File

@ -5667,26 +5667,6 @@ alreadytrav:
data.byte(kNewlocation) = al;
}
void DreamGenContext::getlocation() {
STACK_CHECK;
ah = 0;
bx = ax;
dx = data;
es = dx;
_add(bx, 8011);
al = es.byte(bx);
}
void DreamGenContext::setlocation() {
STACK_CHECK;
ah = 0;
bx = ax;
dx = data;
es = dx;
_add(bx, 8011);
es.byte(bx) = 1;
}
void DreamGenContext::resetlocation() {
STACK_CHECK;
push(ax);

View File

@ -327,8 +327,6 @@ public:
static const uint16 addr_readcitypic = 0xc4e4;
static const uint16 addr_readdesticon = 0xc4e0;
static const uint16 addr_resetlocation = 0xc4dc;
static const uint16 addr_setlocation = 0xc4d8;
static const uint16 addr_getlocation = 0xc4d4;
static const uint16 addr_destselect = 0xc4d0;
static const uint16 addr_lastdest = 0xc4cc;
static const uint16 addr_nextdest = 0xc4c8;
@ -1563,7 +1561,7 @@ public:
void searchforsame();
void enablesoundint();
void getback1();
void setlocation();
//void setlocation();
void fadefromwhite();
//void animpointer();
void usewindow();
@ -1823,7 +1821,7 @@ public:
void setupemm();
void aide();
//void getmapad();
void getlocation();
//void getlocation();
void geteitherad();
//void placesetobject();
//void drawflags();

View File

@ -2402,5 +2402,22 @@ void DreamGenContext::showrightpage() {
data.word(kLinespacing) = 10;
}
uint8 DreamGenContext::getlocation(uint8 index) {
return data.byte(kRoomscango + index);
}
void DreamGenContext::getlocation() {
al = getlocation(al);
}
void DreamGenContext::setlocation(uint8 index) {
data.byte(kRoomscango + index) = 1;
}
void DreamGenContext::setlocation() {
setlocation(al);
}
} /*namespace dreamgen */

View File

@ -358,4 +358,8 @@
void showfolder();
void showleftpage();
void showrightpage();
uint8 getlocation(uint8 index);
void getlocation();
void setlocation(uint8 index);
void setlocation();