From cbcdb61b288904658198d086a25153eddd60e5c3 Mon Sep 17 00:00:00 2001 From: Bertrand Augereau Date: Sat, 23 Jul 2011 19:18:10 +0200 Subject: DREAMWEB: Blacklisted 'usetimedtext', 'getundertimed' and 'putundertimed' --- engines/dreamweb/dreamgen.cpp | 79 ------------------------------------------- engines/dreamweb/dreamgen.h | 11 +++--- engines/dreamweb/stubs.cpp | 40 ++++++++++++++++++++++ engines/dreamweb/stubs.h | 3 ++ 4 files changed, 47 insertions(+), 86 deletions(-) (limited to 'engines/dreamweb') diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp index 2c9f4a45a3..c05cab5238 100644 --- a/engines/dreamweb/dreamgen.cpp +++ b/engines/dreamweb/dreamgen.cpp @@ -12853,46 +12853,6 @@ notonsartroof: placesetobject(); } -void DreamGenContext::getundertimed() { - STACK_CHECK; - al = data.byte(kTimedy); - _cmp(data.byte(kForeignrelease), 0); - if (flags.z()) - goto _tmp1; - _sub(al, 3); -_tmp1: - ah = 0; - bx = ax; - al = data.byte(kTimedx); - ah = 0; - di = ax; - ch = (30); - cl = 240; - ds = data.word(kBuffers); - si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)); - multiget(); -} - -void DreamGenContext::putundertimed() { - STACK_CHECK; - al = data.byte(kTimedy); - _cmp(data.byte(kForeignrelease), 0); - if (flags.z()) - goto _tmp1; - _sub(al, 3); -_tmp1: - ah = 0; - bx = ax; - al = data.byte(kTimedx); - ah = 0; - di = ax; - ch = (30); - cl = 240; - ds = data.word(kBuffers); - si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)); - multiput(); -} - void DreamGenContext::dumptimedtext() { STACK_CHECK; _cmp(data.byte(kNeedtodumptimed), 1); @@ -12989,42 +12949,6 @@ notloadspeech3: data.word(kTimedoffset) = bx; } -void DreamGenContext::usetimedtext() { - STACK_CHECK; - _cmp(data.word(kTimecount), 0); - if (flags.z()) - return /* (notext) */; - _dec(data.word(kTimecount)); - _cmp(data.word(kTimecount), 0); - if (flags.z()) - goto deltimedtext; - ax = data.word(kTimecount); - _cmp(ax, data.word(kCounttotimed)); - if (flags.z()) - goto firsttimed; - if (!flags.c()) - return /* (notext) */; - goto notfirsttimed; -firsttimed: - getundertimed(); -notfirsttimed: - bl = data.byte(kTimedy); - bh = 0; - al = data.byte(kTimedx); - ah = 0; - di = ax; - es = data.word(kTimedseg); - si = data.word(kTimedoffset); - dl = 237; - ah = 0; - printdirect(); - data.byte(kNeedtodumptimed) = 1; - return; -deltimedtext: - putundertimed(); - data.byte(kNeedtodumptimed) = 1; -} - void DreamGenContext::edenscdplayer() { STACK_CHECK; showfirstuse(); @@ -21484,12 +21408,9 @@ void DreamGenContext::__dispatch_call(uint16 addr) { case addr_setallchanges: setallchanges(); break; case addr_dochange: dochange(); break; case addr_autoappear: autoappear(); break; - case addr_getundertimed: getundertimed(); break; - case addr_putundertimed: putundertimed(); break; case addr_dumptimedtext: dumptimedtext(); break; case addr_setuptimeduse: setuptimeduse(); break; case addr_setuptimedtemp: setuptimedtemp(); break; - case addr_usetimedtext: usetimedtext(); break; case addr_edenscdplayer: edenscdplayer(); break; case addr_usewall: usewall(); break; case addr_usechurchgate: usechurchgate(); break; diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h index 8dd6417523..c2aa204942 100644 --- a/engines/dreamweb/dreamgen.h +++ b/engines/dreamweb/dreamgen.h @@ -327,12 +327,9 @@ public: static const uint16 addr_usechurchgate = 0xc730; static const uint16 addr_usewall = 0xc72c; static const uint16 addr_edenscdplayer = 0xc728; - static const uint16 addr_usetimedtext = 0xc724; static const uint16 addr_setuptimedtemp = 0xc720; static const uint16 addr_setuptimeduse = 0xc71c; static const uint16 addr_dumptimedtext = 0xc718; - static const uint16 addr_putundertimed = 0xc714; - static const uint16 addr_getundertimed = 0xc710; static const uint16 addr_autoappear = 0xc70c; static const uint16 addr_dochange = 0xc708; static const uint16 addr_setallchanges = 0xc704; @@ -1343,7 +1340,7 @@ public: void storeit(); void lockeddoorway(); void isitworn(); - void putundertimed(); + //void putundertimed(); void dumpmap(); //void multidump(); void channel0only(); @@ -1369,7 +1366,7 @@ public: void restoreall(); void screenupdate(); void addlength(); - void usetimedtext(); + void wornerror(); void putundercentre(); void checkobjectsize(); void commandonly(); @@ -1515,6 +1512,7 @@ public: void openpoolboss(); void buttontwo(); void fillopen(); + //void usetimedtext(); void delsprite(); void getroomspaths(); //void dumptextline(); @@ -1570,7 +1568,6 @@ public: void saveload(); void monitorlogo(); void loadposition(); - void wornerror(); void entersymbol(); void showword(); void dirfile(); @@ -1791,7 +1788,7 @@ public: void findsetobject(); void singlekey(); //void seecommandtail(); - void getundertimed(); + //void getundertimed(); void hangone(); void carparkdrip(); void usediary(); diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp index c7ee257dbb..ec94ffc40c 100644 --- a/engines/dreamweb/stubs.cpp +++ b/engines/dreamweb/stubs.cpp @@ -419,6 +419,46 @@ void DreamGenContext::printdirect(uint16 x, uint16 *y, uint8 maxWidth, bool cent } } +void DreamGenContext::getundertimed() { + uint16 y = data.byte(kTimedy); + if (data.byte(kForeignrelease)) + y -= 3; + ds = data.word(kBuffers); + si = kUndertimedtext; + multiget(data.byte(kTimedx), y, 240, kUndertimedysize); +} + +void DreamGenContext::putundertimed() { + uint16 y = data.byte(kTimedy); + if (data.byte(kForeignrelease)) + y -= 3; + ds = data.word(kBuffers); + si = kUndertimedtext; + multiput(data.byte(kTimedx), y, 240, kUndertimedysize); +} + +void DreamGenContext::usetimedtext() { + if (data.word(kTimecount) == 0) + return; + --data.word(kTimecount); + if (data.word(kTimecount) == 0) { + putundertimed(); + data.byte(kNeedtodumptimed) = 1; + return; + } + + if (data.word(kTimecount) == data.word(kCounttotimed)) + getundertimed(); + else if (data.word(kTimecount) > data.word(kCounttotimed)) + return; + + es = data.word(kTimedseg); + si = data.word(kTimedoffset); + uint16 y = data.byte(kTimedy); + printdirect(data.byte(kTimedx), &y, 237, true); + data.byte(kNeedtodumptimed) = 1; +} + void DreamGenContext::getnumber() { uint16 offset = di; cl = getnumber(si, dl, (bool)(dl & 1), &offset); diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h index 0c0ff113c9..20d987d374 100644 --- a/engines/dreamweb/stubs.h +++ b/engines/dreamweb/stubs.h @@ -46,6 +46,9 @@ void printchar(uint16 dst, uint16 src, uint16 *x, uint16 y, uint8 c, uint8 *width, uint8 *height); void printdirect(); void printdirect(uint16 x, uint16 *y, uint8 maxWidth, bool centered); + void usetimedtext(); + void getundertimed(); + void putundertimed(); uint8 printslow(uint16 x, uint16 y, uint8 maxWidth, bool centered); void printslow(); void dumptextline(); -- cgit v1.2.3