From 1dff2ebe8eda57bfb396c92fcdf83f9980fc02b9 Mon Sep 17 00:00:00 2001 From: Bertrand Augereau Date: Thu, 18 Aug 2011 18:36:15 +0200 Subject: DREAMWEB: 'calcmapad' ported to C++ --- engines/dreamweb/backdrop.cpp | 8 ++++++++ engines/dreamweb/dreamgen.cpp | 28 ---------------------------- engines/dreamweb/dreamgen.h | 3 +-- engines/dreamweb/stubs.h | 1 + 4 files changed, 10 insertions(+), 30 deletions(-) (limited to 'engines') diff --git a/engines/dreamweb/backdrop.cpp b/engines/dreamweb/backdrop.cpp index be957bf51d..e1800bafc0 100644 --- a/engines/dreamweb/backdrop.cpp +++ b/engines/dreamweb/backdrop.cpp @@ -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 */ diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp index 75794bda0b..7c6a16b209 100644 --- a/engines/dreamweb/dreamgen.cpp +++ b/engines/dreamweb/dreamgen.cpp @@ -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; diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h index f466504b7a..0f5534e13b 100644 --- a/engines/dreamweb/dreamgen.h +++ b/engines/dreamweb/dreamgen.h @@ -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(); diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h index adca64f704..31a10c5698 100644 --- a/engines/dreamweb/stubs.h +++ b/engines/dreamweb/stubs.h @@ -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); -- cgit v1.2.3