mirror of
https://github.com/scummvm/scummvm.git
synced 2026-06-20 05:45:29 +00:00
DREAMWEB: 'calcmapad' ported to C++
This commit is contained in:
@@ -124,6 +124,7 @@ generator = cpp(context, "DreamGen", blacklist = [
|
||||
'getxad',
|
||||
'getyad',
|
||||
'getmapad',
|
||||
'calcmapad',
|
||||
'calcfrframe',
|
||||
'finalframe',
|
||||
'commandonly',
|
||||
|
||||
@@ -228,5 +228,13 @@ void DreamGenContext::getdimension(uint8 *mapXstart, uint8 *mapYstart, uint8 *ma
|
||||
data.byte(kMapysize) = *mapYsize << 4;
|
||||
}
|
||||
|
||||
void DreamGenContext::calcmapad() {
|
||||
uint8 mapXstart, mapYstart;
|
||||
uint8 mapXsize, mapYsize;
|
||||
getdimension(&mapXstart, &mapYstart, &mapXsize, &mapYsize);
|
||||
data.word(kMapadx) = data.word(kMapoffsetx) - 8 * (mapXsize + 2 * mapXstart - 11);
|
||||
data.word(kMapady) = data.word(kMapoffsety) - 8 * (mapYsize + 2 * mapYstart - 10);
|
||||
}
|
||||
|
||||
} /*namespace dreamgen */
|
||||
|
||||
|
||||
@@ -6401,33 +6401,6 @@ void DreamGenContext::drawfloor() {
|
||||
es = pop();
|
||||
}
|
||||
|
||||
void DreamGenContext::calcmapad() {
|
||||
STACK_CHECK;
|
||||
getdimension();
|
||||
push(cx);
|
||||
push(dx);
|
||||
al = 11;
|
||||
_sub(al, dl);
|
||||
_sub(al, cl);
|
||||
_sub(al, cl);
|
||||
ax.cbw();
|
||||
bx = 8;
|
||||
_mul(bx);
|
||||
_add(ax, data.word(kMapoffsetx));
|
||||
data.word(kMapadx) = ax;
|
||||
dx = pop();
|
||||
cx = pop();
|
||||
al = 10;
|
||||
_sub(al, dh);
|
||||
_sub(al, ch);
|
||||
_sub(al, ch);
|
||||
ax.cbw();
|
||||
bx = 8;
|
||||
_mul(bx);
|
||||
_add(ax, data.word(kMapoffsety));
|
||||
data.word(kMapady) = ax;
|
||||
}
|
||||
|
||||
void DreamGenContext::drawflags() {
|
||||
STACK_CHECK;
|
||||
es = data.word(kBuffers);
|
||||
@@ -18651,7 +18624,6 @@ void DreamGenContext::__dispatch_call(uint16 addr) {
|
||||
case addr_deleteextext: deleteextext(); break;
|
||||
case addr_blockget: blockget(); break;
|
||||
case addr_drawfloor: drawfloor(); break;
|
||||
case addr_calcmapad: calcmapad(); break;
|
||||
case addr_drawflags: drawflags(); break;
|
||||
case addr_showallfree: showallfree(); break;
|
||||
case addr_showallex: showallex(); break;
|
||||
|
||||
@@ -480,7 +480,6 @@ public:
|
||||
static const uint16 addr_showallex = 0xc450;
|
||||
static const uint16 addr_showallfree = 0xc44c;
|
||||
static const uint16 addr_drawflags = 0xc43c;
|
||||
static const uint16 addr_calcmapad = 0xc42c;
|
||||
static const uint16 addr_drawfloor = 0xc428;
|
||||
static const uint16 addr_blockget = 0xc424;
|
||||
static const uint16 addr_deleteextext = 0xc420;
|
||||
@@ -1586,7 +1585,7 @@ public:
|
||||
void clearpalette();
|
||||
void cantdrop();
|
||||
void maptopanel();
|
||||
void calcmapad();
|
||||
//void calcmapad();
|
||||
void getridofall();
|
||||
void copper();
|
||||
void folderhints();
|
||||
|
||||
@@ -137,6 +137,7 @@
|
||||
void getdimension();
|
||||
void getdimension(uint8 *mapXstart, uint8 *mapYstart, uint8 *mapXsize, uint8 *mapYsize);
|
||||
void getmapad();
|
||||
void calcmapad();
|
||||
uint8 getmapad(const uint8 *setData);
|
||||
uint8 getxad(const uint8 *setData, uint8 *result);
|
||||
uint8 getyad(const uint8 *setData, uint8 *result);
|
||||
|
||||
Reference in New Issue
Block a user