diff options
-rwxr-xr-x | devtools/tasmrecover/tasm-recover | 3 | ||||
-rw-r--r-- | engines/dreamweb/backdrop.cpp | 27 | ||||
-rw-r--r-- | engines/dreamweb/dreamgen.cpp | 374 | ||||
-rw-r--r-- | engines/dreamweb/dreamgen.h | 565 | ||||
-rw-r--r-- | engines/dreamweb/sprite.cpp | 51 | ||||
-rw-r--r-- | engines/dreamweb/stubs.h | 7 | ||||
-rw-r--r-- | engines/dreamweb/talk.cpp | 7 |
7 files changed, 513 insertions, 521 deletions
diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover index 1e326cbf5d..56d71094a8 100755 --- a/devtools/tasmrecover/tasm-recover +++ b/devtools/tasmrecover/tasm-recover @@ -97,6 +97,9 @@ p = parser(skip_binary_data = [ 'icons1', 'icons2', 'tempcharset', + 'currentframe', + 'takeoff', + 'reelpointer', # vgagrafx.asm 'cityname', 'extragraphics1', diff --git a/engines/dreamweb/backdrop.cpp b/engines/dreamweb/backdrop.cpp index 065ce638d4..cf07ffcfe2 100644 --- a/engines/dreamweb/backdrop.cpp +++ b/engines/dreamweb/backdrop.cpp @@ -105,15 +105,15 @@ uint8 DreamGenContext::getMapAd(const uint8 *setData) { return 1; } -void DreamGenContext::calcFrFrame() { +void DreamGenContext::calcFrFrame(uint16 frame) { uint8 width, height; - calcFrFrame(&width, &height); + calcFrFrame(frame, &width, &height); cl = width; ch = height; } -void DreamGenContext::calcFrFrame(uint8* width, uint8* height) { - const Frame *frame = (const Frame *)getSegment(data.word(kFrsegment)).ptr(data.word(kCurrentframe) * sizeof(Frame), sizeof(Frame)); +void DreamGenContext::calcFrFrame(uint16 frameNum, uint8* width, uint8* height) { + const Frame *frame = (const Frame *)getSegment(data.word(kFrsegment)).ptr(frameNum * sizeof(Frame), sizeof(Frame)); data.word(kSavesource) = data.word(kFramesad) + frame->ptr(); data.byte(kSavesize+0) = frame->width; data.byte(kSavesize+1) = frame->height; @@ -151,17 +151,16 @@ void DreamGenContext::showAllObs() { if (getMapAd(setEntry->mapad) == 0) continue; uint8 currentFrame = setEntry->frames[0]; - data.word(kCurrentframe) = currentFrame; if (currentFrame == 0xff) continue; - calcFrFrame(); + calcFrFrame(currentFrame); uint16 x, y; finalFrame(&x, &y); setEntry->index = setEntry->frames[0]; if ((setEntry->type == 0) && (setEntry->priority != 5) && (setEntry->priority != 6)) { x += data.word(kMapadx); y += data.word(kMapady); - showFrame(frames, x, y, data.word(kCurrentframe), 0); + showFrame(frames, x, y, currentFrame, 0); } else makeBackOb(setEntry); @@ -251,15 +250,16 @@ void DreamGenContext::showAllFree() { for(size_t i = 0; i < 80; ++i) { uint8 mapAd = getMapAd(freeObjects[i].mapad); if (mapAd != 0) { - data.word(kCurrentframe) = 3 * data.byte(kCurrentfree); uint8 width, height; - calcFrFrame(&width, &height); + uint16 currentFrame = 3 * data.byte(kCurrentfree); + calcFrFrame(currentFrame, &width, &height); uint16 x, y; finalFrame(&x, &y); if ((width != 0) || (height != 0)) { x += data.word(kMapadx); y += data.word(kMapady); - showFrame((Frame *)getSegment(data.word(kFrsegment)).ptr(0, 0), x, y, data.word(kCurrentframe) & 0xff, 0); + assert(currentFrame < 256); + showFrame((Frame *)getSegment(data.word(kFrsegment)).ptr(0, 0), x, y, currentFrame, 0); ObjPos *objPos = (ObjPos *)getSegment(data.word(kBuffers)).ptr(data.word(kListpos), sizeof(ObjPos)); objPos->xMin = data.byte(kSavex); objPos->yMin = data.byte(kSavey); @@ -307,13 +307,14 @@ void DreamGenContext::showAllEx() { continue; if (getMapAd(object->mapad) == 0) continue; - data.word(kCurrentframe) = 3 * data.byte(kCurrentex); uint8 width, height; - calcFrFrame(&width, &height); + uint16 currentFrame = 3 * data.byte(kCurrentex); + calcFrFrame(currentFrame, &width, &height); uint16 x, y; finalFrame(&x, &y); if ((width != 0) || (height != 0)) { - showFrame((Frame *)getSegment(data.word(kFrsegment)).ptr(0, 0), x + data.word(kMapadx), y + data.word(kMapady), data.word(kCurrentframe) & 0xff, 0); + assert(currentFrame < 256); + showFrame((Frame *)getSegment(data.word(kFrsegment)).ptr(0, 0), x + data.word(kMapadx), y + data.word(kMapady), currentFrame, 0); ObjPos *objPos = (ObjPos *)getSegment(data.word(kBuffers)).ptr(data.word(kListpos), sizeof(ObjPos)); objPos->xMin = data.byte(kSavex); objPos->yMin = data.byte(kSavey); diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp index aef64884e1..6216714cae 100644 --- a/engines/dreamweb/dreamgen.cpp +++ b/engines/dreamweb/dreamgen.cpp @@ -1138,7 +1138,7 @@ void DreamGenContext::showGun() { data.byte(kRoomssample) = 34; loadRoomsSample(); data.byte(kVolume) = 0; - dx = 1061; + dx = 1055; loadIntoTemp(); createPanel2(); ds = data.word(kTempgraphics); @@ -1161,7 +1161,7 @@ void DreamGenContext::showGun() { al = 12; ah = 0; playChannel0(); - dx = 1035; + dx = 1029; loadTempText(); rollEndCredits2(); getRidOfTempText(); @@ -1409,7 +1409,7 @@ void DreamGenContext::initialMonCols() { void DreamGenContext::endGame() { STACK_CHECK; - dx = 1035; + dx = 1029; loadTempText(); monkSpeaking(); gettingShot(); @@ -1424,7 +1424,7 @@ void DreamGenContext::monkSpeaking() { STACK_CHECK; data.byte(kRoomssample) = 35; loadRoomsSample(); - dx = 1074; + dx = 1068; loadIntoTemp(); clearWork(); showMonk(); @@ -3579,14 +3579,14 @@ void DreamGenContext::getDestInfo() { push(ax); dx = data; es = dx; - si = 1661; + si = 1655; _add(si, ax); cl = es.byte(si); ax = pop(); push(cx); dx = data; es = dx; - si = 1677; + si = 1671; _add(si, ax); ax = pop(); } @@ -3638,7 +3638,7 @@ clearedlocations: bx = ax; dx = data; es = dx; - _add(bx, 1661); + _add(bx, 1655); es.byte(bx) = 0; } @@ -3708,7 +3708,7 @@ void DreamGenContext::execCommand() { es = cs; bx = offset_comlist; ds = cs; - si = 1695; + si = 1689; al = ds.byte(si); _cmp(al, 0); if (!flags.z()) @@ -3801,7 +3801,7 @@ dirroot: si = offset_rootdir; _inc(si); es = cs; - di = 1350; + di = 1344; _inc(di); cx = 12; _movsb(cx, true); @@ -3903,7 +3903,7 @@ notyetassigned: push(bx); _add(bx, 2); ds = cs; - si = 1695; + si = 1689; checkpass: _lodsw(); ah = es.byte(bx); @@ -3974,7 +3974,7 @@ void DreamGenContext::read() { return; okcom: es = cs; - di = 1350; + di = 1344; ax = data.word(kTextfile1); data.word(kMonsource) = ax; ds = ax; @@ -4104,7 +4104,7 @@ keyok2: ds = cs; si = offset_operand1+1; es = cs; - di = 1350+1; + di = 1344+1; cx = 12; _movsb(cx, true); monitorLogo(); @@ -4231,7 +4231,7 @@ void DreamGenContext::parser() { al = '='; _stosb(); ds = cs; - si = 1695; + si = 1689; notspace1: _lodsw(); _cmp(al, 32); @@ -5818,11 +5818,11 @@ notwrapbackb: void DreamGenContext::useDiary() { STACK_CHECK; getRidOfReels(); - dx = 1009; + dx = 1003; loadIntoTemp(); - dx = 1022; + dx = 1016; loadTempText(); - dx = 983; + dx = 977; loadTempCharset(); createPanel(); showIcon(); @@ -6217,7 +6217,7 @@ void DreamGenContext::getNamePos() { _mul(cx); dx = data; es = dx; - bx = 1829; + bx = 1823; _add(bx, ax); al = data.byte(kCursorpos); ah = 0; @@ -6313,7 +6313,7 @@ void DreamGenContext::showNames() { STACK_CHECK; dx = data; es = dx; - si = 1829+1; + si = 1823+1; di = (60)+21; bx = (52)+10; cl = 0; @@ -6694,7 +6694,7 @@ notalley: void DreamGenContext::clearBuffers() { STACK_CHECK; es = data.word(kBuffers); - cx = (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)+(256*30)+(6*64)+983-526+68-0)/2; + cx = (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)+(256*30)+(6*64)+977-520+68-0)/2; ax = 0; di = 0; _stosw(cx, true); @@ -6706,11 +6706,11 @@ void DreamGenContext::clearBuffers() { es = data.word(kBuffers); di = (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)+(256*30)+(6*64)); ds = cs; - si = 526; - cx = (983-526); + si = 520; + cx = (977-520); _movsb(cx, true); es = data.word(kBuffers); - di = (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)+(256*30)+(6*64)+983-526); + di = (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)+(256*30)+(6*64)+977-520); ds = cs; si = 0; cx = (68-0); @@ -6728,11 +6728,11 @@ void DreamGenContext::clearChanges() { 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)+(256*30)+(6*64)); es = cs; - di = 526; - cx = (983-526); + di = 520; + cx = (977-520); _movsb(cx, true); 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)+(256*30)+(6*64)+983-526); + 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)+(256*30)+(6*64)+977-520); es = cs; di = 0; cx = (68-0); @@ -6746,7 +6746,7 @@ void DreamGenContext::clearChanges() { di = 0; _stosw(cx, true); es = cs; - di = 1661; + di = 1655; al = 1; _stosb(2); al = 0; @@ -7156,14 +7156,14 @@ void DreamGenContext::__start() { //0x0090: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00a0: .... .... .... .... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00b0: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00c0: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00d0: .... .... .... .... - 0x00, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - //0x00e0: .. .... .... .... + 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x00e0: .. .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00f0: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -7176,175 +7176,175 @@ void DreamGenContext::__start() { //0x0130: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0140: .... .... .... .... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, //0x0150: .... .... .... .... - 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0160: .... .... .... .... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x05, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0170: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0180: .... .... .... .... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, //0x0190: .... .... .... .... - 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x01a0: .... .... .... .... 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x01b0: .... .... .... .... - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x17, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x01c0: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x01d0: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x01e0: .... .... .... .... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x01f0: .... .... .... .... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x2c, - //0x0200: .... .... .... ..., - 0x00, 0x14, 0x00, 0x02, 0x00, 0x01, 0x01, 0x37, 0x00, 0x00, 0x00, 0x32, 0x14, 0x00, 0x18, 0x16, - //0x0210: .... ...7 ...2 .... - 0x00, 0x4a, 0x00, 0x01, 0x00, 0x00, 0x18, 0x21, 0x0a, 0x4b, 0x00, 0x01, 0x00, 0x01, 0x01, 0x2c, - //0x0220: .J.. ...! .K.. ..., - 0x00, 0x1b, 0x00, 0x02, 0x00, 0x02, 0x01, 0x2c, 0x00, 0x60, 0x00, 0x03, 0x00, 0x04, 0x01, 0x2c, - //0x0230: .... ..., .`.. ..., - 0x00, 0x76, 0x00, 0x02, 0x00, 0x05, 0x01, 0x2c, 0x0a, 0x00, 0x00, 0x02, 0x00, 0x00, 0x05, 0x16, - //0x0240: .v.. ..., .... .... - 0x14, 0x35, 0x00, 0x03, 0x00, 0x00, 0x05, 0x16, 0x14, 0x28, 0x00, 0x01, 0x00, 0x02, 0x05, 0x16, - //0x0250: .5.. .... .(.. .... - 0x14, 0x32, 0x00, 0x01, 0x00, 0x03, 0x02, 0x0b, 0x0a, 0xc0, 0x00, 0x01, 0x00, 0x00, 0x02, 0x0b, - //0x0260: .2.. .... .... .... - 0x0a, 0xb6, 0x00, 0x02, 0x00, 0x01, 0x08, 0x0b, 0x0a, 0x00, 0x00, 0x02, 0x00, 0x01, 0x17, 0x00, - //0x0270: .... .... .... .... - 0x32, 0x00, 0x00, 0x03, 0x00, 0x00, 0x1c, 0x0b, 0x14, 0xfa, 0x00, 0x04, 0x00, 0x00, 0x17, 0x00, - //0x0280: 2... .... .... .... - 0x32, 0x2b, 0x00, 0x02, 0x00, 0x08, 0x17, 0x0b, 0x28, 0x82, 0x00, 0x02, 0x00, 0x01, 0x17, 0x16, - //0x0290: 2+.. .... (... .... - 0x28, 0x7a, 0x00, 0x02, 0x00, 0x02, 0x17, 0x16, 0x28, 0x69, 0x00, 0x02, 0x00, 0x03, 0x17, 0x16, - //0x02a0: (z.. .... (i.. .... - 0x28, 0x51, 0x00, 0x02, 0x00, 0x04, 0x17, 0x0b, 0x28, 0x87, 0x00, 0x02, 0x00, 0x05, 0x17, 0x16, - //0x02b0: (Q.. .... (... .... - 0x28, 0x91, 0x00, 0x02, 0x00, 0x06, 0x04, 0x16, 0x1e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x2d, 0x16, - //0x02c0: (... .... .... ..-. - 0x1e, 0xc8, 0x00, 0x00, 0x00, 0x14, 0x2d, 0x16, 0x1e, 0x27, 0x00, 0x02, 0x00, 0x00, 0x2d, 0x16, - //0x02d0: .... ..-. .'.. ..-. - 0x1e, 0x19, 0x00, 0x02, 0x00, 0x00, 0x08, 0x16, 0x28, 0x20, 0x00, 0x02, 0x00, 0x00, 0x07, 0x0b, - //0x02e0: .... .... ( .. .... - 0x14, 0x40, 0x00, 0x02, 0x00, 0x00, 0x16, 0x16, 0x14, 0x52, 0x00, 0x02, 0x00, 0x00, 0x1b, 0x0b, - //0x02f0: .@.. .... .R.. .... - 0x1e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x14, 0x00, 0x1e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x0e, 0x21, - //0x0300: .... .... .... ...! - 0x28, 0x15, 0x00, 0x01, 0x00, 0x00, 0x1d, 0x0b, 0x0a, 0x00, 0x00, 0x01, 0x00, 0x00, 0x02, 0x16, - //0x0310: (... .... .... .... - 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x19, 0x00, 0x32, 0x04, 0x00, 0x02, 0x00, 0x00, 0x32, 0x16, - //0x0320: .... .... 2... ..2. - 0x1e, 0x79, 0x00, 0x02, 0x00, 0x00, 0x32, 0x16, 0x1e, 0x00, 0x00, 0x14, 0x00, 0x00, 0x34, 0x16, - //0x0330: .y.. ..2. .... ..4. - 0x1e, 0xc0, 0x00, 0x02, 0x00, 0x00, 0x34, 0x16, 0x1e, 0xe9, 0x00, 0x02, 0x00, 0x00, 0x32, 0x16, - //0x0340: .... ..4. .... ..2. - 0x28, 0x68, 0x00, 0x37, 0x00, 0x00, 0x35, 0x21, 0x00, 0x63, 0x00, 0x02, 0x00, 0x00, 0x32, 0x16, - //0x0350: (h.7 ..5! .c.. ..2. - 0x28, 0x00, 0x00, 0x03, 0x00, 0x00, 0x32, 0x16, 0x1e, 0xa2, 0x00, 0x02, 0x00, 0x00, 0x34, 0x16, - //0x0360: (... ..2. .... ..4. - 0x1e, 0x39, 0x00, 0x02, 0x00, 0x00, 0x34, 0x16, 0x1e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x36, 0x00, - //0x0370: .9.. ..4. .... ..6. - 0x00, 0x48, 0x00, 0x03, 0x00, 0x00, 0x37, 0x2c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x13, 0x00, - //0x0380: .H.. ..7, .... .... - 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x0e, 0x16, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x0e, 0x16, - //0x0390: .... .... .... .... - 0x00, 0x2c, 0x01, 0x01, 0x00, 0x00, 0x0a, 0x16, 0x1e, 0xae, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x16, - //0x03a0: .,.. .... .... .... - 0x14, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0b, 0x0b, 0x14, 0x00, 0x00, 0x32, 0x14, 0x00, 0x0b, 0x0b, - //0x03b0: .... .... ...2 .... - 0x1e, 0x00, 0x00, 0x32, 0x14, 0x00, 0x0b, 0x16, 0x14, 0x00, 0x00, 0x32, 0x14, 0x00, 0x0e, 0x21, - //0x03c0: ...2 .... ...2 ...! - 0x28, 0x00, 0x00, 0x32, 0x14, 0x00, 0xff, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, - //0x03d0: (..2 ...D REAM WEB. - 0x43, 0x30, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x56, 0x39, 0x39, - //0x03e0: C02. DREA MWEB .V99 - 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, 0x34, 0x00, 0x44, 0x52, - //0x03f0: .DRE AMWE B.G1 4.DR - 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x35, 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, - //0x0400: EAMW EB.T 51.D REAM - 0x57, 0x45, 0x42, 0x2e, 0x54, 0x38, 0x33, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, - //0x0410: WEB. T83. DREA MWEB - 0x2e, 0x56, 0x4f, 0x4c, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, - //0x0420: .VOL .DRE AMWE B.G1 - 0x33, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, 0x35, 0x00, 0x44, - //0x0430: 3.DR EAMW EB.G 15.D - 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x37, 0x00, 0x00, 0x01, 0x11, 0x01, - //0x0440: REAM WEB. I07. .... - 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x7c, 0xc4, 0xf0, 0x00, 0x22, 0x01, 0x02, 0x00, 0x2c, 0x00, - //0x0450: @... ..|. ..". ..,. - 0x94, 0xc4, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x11, 0x01, - //0x0460: .... @... .... .... - 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x7c, 0xc4, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, - //0x0470: @... ..|. ..@. .... - 0xa0, 0xca, 0xff, 0xff, 0x45, 0x58, 0x49, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x48, 0x45, - //0x0480: .... EXIT HE - 0x4c, 0x50, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x49, 0x53, 0x54, 0x20, 0x20, 0x20, 0x20, - //0x0490: LP LIST - 0x20, 0x20, 0x52, 0x45, 0x41, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x4f, 0x47, 0x4f, - //0x04a0: RE AD LOGO - 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x45, 0x59, 0x53, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - //0x04b0: N KE YS - 0x01, 0x00, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x55, - //0x04c0: ..PU BLIC PU - 0x42, 0x4c, 0x49, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x42, 0x4c, 0x41, 0x43, - //0x04d0: BLIC ... BLAC - 0x4b, 0x44, 0x52, 0x41, 0x47, 0x4f, 0x4e, 0x20, 0x52, 0x59, 0x41, 0x4e, 0x20, 0x20, 0x20, 0x20, - //0x04e0: KDRA GON RYAN - 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x48, 0x45, 0x4e, 0x44, 0x52, 0x49, 0x58, 0x20, 0x20, 0x20, - //0x04f0: . ..HE NDRI X - 0x20, 0x20, 0x4c, 0x4f, 0x55, 0x49, 0x53, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, - //0x0500: LO UIS ... - 0x53, 0x45, 0x50, 0x54, 0x49, 0x4d, 0x55, 0x53, 0x20, 0x20, 0x20, 0x20, 0x42, 0x45, 0x43, 0x4b, - //0x0510: SEPT IMUS BECK - 0x45, 0x54, 0x54, 0x20, 0x20, 0x20, 0x20, 0x00, 0xff, 0xff, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - //0x0520: ETT . .. - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x22, 0x52, 0x4f, 0x4f, 0x54, 0x20, 0x20, 0x20, - //0x0530: . "ROO T - 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - //0x0540: ." - 0x20, 0x20, 0x20, 0x00, 0x30, 0x30, 0x30, 0x30, 0x00, 0x30, 0x30, 0x00, 0xba, 0x00, 0xca, 0x00, - //0x0550: . 0000 .00. .... - 0x9d, 0x00, 0xad, 0x00, 0x1c, 0xc8, 0xf3, 0x00, 0x03, 0x01, 0x83, 0x00, 0x93, 0x00, 0x18, 0xc8, + 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x2c, 0x00, 0x14, 0x00, 0x02, 0x00, 0x01, + //0x0200: .... .... .,.. .... + 0x01, 0x37, 0x00, 0x00, 0x00, 0x32, 0x14, 0x00, 0x18, 0x16, 0x00, 0x4a, 0x00, 0x01, 0x00, 0x00, + //0x0210: .7.. .2.. ...J .... + 0x18, 0x21, 0x0a, 0x4b, 0x00, 0x01, 0x00, 0x01, 0x01, 0x2c, 0x00, 0x1b, 0x00, 0x02, 0x00, 0x02, + //0x0220: .!.K .... .,.. .... + 0x01, 0x2c, 0x00, 0x60, 0x00, 0x03, 0x00, 0x04, 0x01, 0x2c, 0x00, 0x76, 0x00, 0x02, 0x00, 0x05, + //0x0230: .,.` .... .,.v .... + 0x01, 0x2c, 0x0a, 0x00, 0x00, 0x02, 0x00, 0x00, 0x05, 0x16, 0x14, 0x35, 0x00, 0x03, 0x00, 0x00, + //0x0240: .,.. .... ...5 .... + 0x05, 0x16, 0x14, 0x28, 0x00, 0x01, 0x00, 0x02, 0x05, 0x16, 0x14, 0x32, 0x00, 0x01, 0x00, 0x03, + //0x0250: ...( .... ...2 .... + 0x02, 0x0b, 0x0a, 0xc0, 0x00, 0x01, 0x00, 0x00, 0x02, 0x0b, 0x0a, 0xb6, 0x00, 0x02, 0x00, 0x01, + //0x0260: .... .... .... .... + 0x08, 0x0b, 0x0a, 0x00, 0x00, 0x02, 0x00, 0x01, 0x17, 0x00, 0x32, 0x00, 0x00, 0x03, 0x00, 0x00, + //0x0270: .... .... ..2. .... + 0x1c, 0x0b, 0x14, 0xfa, 0x00, 0x04, 0x00, 0x00, 0x17, 0x00, 0x32, 0x2b, 0x00, 0x02, 0x00, 0x08, + //0x0280: .... .... ..2+ .... + 0x17, 0x0b, 0x28, 0x82, 0x00, 0x02, 0x00, 0x01, 0x17, 0x16, 0x28, 0x7a, 0x00, 0x02, 0x00, 0x02, + //0x0290: ..(. .... ..(z .... + 0x17, 0x16, 0x28, 0x69, 0x00, 0x02, 0x00, 0x03, 0x17, 0x16, 0x28, 0x51, 0x00, 0x02, 0x00, 0x04, + //0x02a0: ..(i .... ..(Q .... + 0x17, 0x0b, 0x28, 0x87, 0x00, 0x02, 0x00, 0x05, 0x17, 0x16, 0x28, 0x91, 0x00, 0x02, 0x00, 0x06, + //0x02b0: ..(. .... ..(. .... + 0x04, 0x16, 0x1e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x2d, 0x16, 0x1e, 0xc8, 0x00, 0x00, 0x00, 0x14, + //0x02c0: .... .... -... .... + 0x2d, 0x16, 0x1e, 0x27, 0x00, 0x02, 0x00, 0x00, 0x2d, 0x16, 0x1e, 0x19, 0x00, 0x02, 0x00, 0x00, + //0x02d0: -..' .... -... .... + 0x08, 0x16, 0x28, 0x20, 0x00, 0x02, 0x00, 0x00, 0x07, 0x0b, 0x14, 0x40, 0x00, 0x02, 0x00, 0x00, + //0x02e0: ..( .... ...@ .... + 0x16, 0x16, 0x14, 0x52, 0x00, 0x02, 0x00, 0x00, 0x1b, 0x0b, 0x1e, 0x00, 0x00, 0x02, 0x00, 0x00, + //0x02f0: ...R .... .... .... + 0x14, 0x00, 0x1e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x0e, 0x21, 0x28, 0x15, 0x00, 0x01, 0x00, 0x00, + //0x0300: .... .... .!(. .... + 0x1d, 0x0b, 0x0a, 0x00, 0x00, 0x01, 0x00, 0x00, 0x02, 0x16, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, + //0x0310: .... .... .... .... + 0x19, 0x00, 0x32, 0x04, 0x00, 0x02, 0x00, 0x00, 0x32, 0x16, 0x1e, 0x79, 0x00, 0x02, 0x00, 0x00, + //0x0320: ..2. .... 2..y .... + 0x32, 0x16, 0x1e, 0x00, 0x00, 0x14, 0x00, 0x00, 0x34, 0x16, 0x1e, 0xc0, 0x00, 0x02, 0x00, 0x00, + //0x0330: 2... .... 4... .... + 0x34, 0x16, 0x1e, 0xe9, 0x00, 0x02, 0x00, 0x00, 0x32, 0x16, 0x28, 0x68, 0x00, 0x37, 0x00, 0x00, + //0x0340: 4... .... 2.(h .7.. + 0x35, 0x21, 0x00, 0x63, 0x00, 0x02, 0x00, 0x00, 0x32, 0x16, 0x28, 0x00, 0x00, 0x03, 0x00, 0x00, + //0x0350: 5!.c .... 2.(. .... + 0x32, 0x16, 0x1e, 0xa2, 0x00, 0x02, 0x00, 0x00, 0x34, 0x16, 0x1e, 0x39, 0x00, 0x02, 0x00, 0x00, + //0x0360: 2... .... 4..9 .... + 0x34, 0x16, 0x1e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x36, 0x00, 0x00, 0x48, 0x00, 0x03, 0x00, 0x00, + //0x0370: 4... .... 6..H .... + 0x37, 0x2c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, + //0x0380: 7,.. .... .... .... + 0x0e, 0x16, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x0e, 0x16, 0x00, 0x2c, 0x01, 0x01, 0x00, 0x00, + //0x0390: .... .... ..., .... + 0x0a, 0x16, 0x1e, 0xae, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x16, 0x14, 0x00, 0x00, 0x01, 0x00, 0x00, + //0x03a0: .... .... .... .... + 0x0b, 0x0b, 0x14, 0x00, 0x00, 0x32, 0x14, 0x00, 0x0b, 0x0b, 0x1e, 0x00, 0x00, 0x32, 0x14, 0x00, + //0x03b0: .... .2.. .... .2.. + 0x0b, 0x16, 0x14, 0x00, 0x00, 0x32, 0x14, 0x00, 0x0e, 0x21, 0x28, 0x00, 0x00, 0x32, 0x14, 0x00, + //0x03c0: .... .2.. .!(. .2.. + 0xff, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x43, 0x30, 0x32, 0x00, 0x44, 0x52, + //0x03d0: .DRE AMWE B.C0 2.DR + 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x56, 0x39, 0x39, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x03e0: EAMW EB.V 99.D REAM + 0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, 0x34, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, + //0x03f0: WEB. G14. DREA MWEB + 0x2e, 0x54, 0x35, 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x38, + //0x0400: .T51 .DRE AMWE B.T8 + 0x33, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x56, 0x4f, 0x4c, 0x00, 0x44, + //0x0410: 3.DR EAMW EB.V OL.D + 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, 0x33, 0x00, 0x44, 0x52, 0x45, 0x41, + //0x0420: REAM WEB. G13. DREA + 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, 0x35, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, + //0x0430: MWEB .G15 .DRE AMWE + 0x42, 0x2e, 0x49, 0x30, 0x37, 0x00, 0x00, 0x01, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, + //0x0440: B.I0 7... ..@. .... + 0x7c, 0xc4, 0xf0, 0x00, 0x22, 0x01, 0x02, 0x00, 0x2c, 0x00, 0x94, 0xc4, 0x00, 0x00, 0x40, 0x01, + //0x0450: |... "... ,... ..@. + 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, + //0x0460: .... .... ..@. .... + 0x7c, 0xc4, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x45, 0x58, + //0x0470: |... @... .... ..EX + 0x49, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x48, 0x45, 0x4c, 0x50, 0x20, 0x20, 0x20, 0x20, + //0x0480: IT HELP + 0x20, 0x20, 0x4c, 0x49, 0x53, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x45, 0x41, 0x44, + //0x0490: LI ST READ + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x4f, 0x47, 0x4f, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, + //0x04a0: LO GON + 0x4b, 0x45, 0x59, 0x53, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x01, 0x00, 0x50, 0x55, 0x42, 0x4c, + //0x04b0: KEYS .. PUBL + 0x49, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x20, + //0x04c0: IC PUBL IC + 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x42, 0x4c, 0x41, 0x43, 0x4b, 0x44, 0x52, 0x41, 0x47, 0x4f, + //0x04d0: . ..BL ACKD RAGO + 0x4e, 0x20, 0x52, 0x59, 0x41, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, + //0x04e0: N RY AN ... + 0x48, 0x45, 0x4e, 0x44, 0x52, 0x49, 0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x4f, 0x55, 0x49, + //0x04f0: HEND RIX LOUI + 0x53, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x53, 0x45, 0x50, 0x54, 0x49, 0x4d, + //0x0500: S . ..SE PTIM + 0x55, 0x53, 0x20, 0x20, 0x20, 0x20, 0x42, 0x45, 0x43, 0x4b, 0x45, 0x54, 0x54, 0x20, 0x20, 0x20, + //0x0510: US BE CKET T + 0x20, 0x00, 0xff, 0xff, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + //0x0520: ... + 0x20, 0x00, 0x22, 0x52, 0x4f, 0x4f, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, + //0x0530: ."R OOT . + 0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x30, 0x30, + //0x0540: " .00 + 0x30, 0x30, 0x00, 0x30, 0x30, 0x00, 0xba, 0x00, 0xca, 0x00, 0x9d, 0x00, 0xad, 0x00, 0x1c, 0xc8, + //0x0550: 00.0 0... .... .... + 0xf3, 0x00, 0x03, 0x01, 0x83, 0x00, 0x93, 0x00, 0x18, 0xc8, 0x0c, 0x01, 0x1c, 0x01, 0xa8, 0x00, //0x0560: .... .... .... .... - 0x0c, 0x01, 0x1c, 0x01, 0xa8, 0x00, 0xb8, 0x00, 0x50, 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, - //0x0570: .... .... P... @... - 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x77, 0x00, 0xae, 0x00, 0x52, 0x00, 0x80, 0x00, 0x34, 0xc8, - //0x0580: .... ..w. ..R. ..4. - 0x46, 0x00, 0x89, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0x80, 0xc8, 0xbc, 0x00, 0xfa, 0x00, 0x44, 0x00, - //0x0590: F... >.o. .... ..D. - 0x98, 0x00, 0x4c, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, - //0x05a0: ..L. ..@. .... .... - 0x77, 0x00, 0xae, 0x00, 0x52, 0x00, 0x80, 0x00, 0x44, 0xc8, 0x46, 0x00, 0x8b, 0x00, 0x3e, 0x00, - //0x05b0: w... R... D.F. ..>. - 0x6f, 0x00, 0x50, 0xc8, 0xec, 0x00, 0xfc, 0x00, 0x70, 0x00, 0x80, 0x00, 0x48, 0xc8, 0x00, 0x00, - //0x05c0: o.P. .... p... H... - 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x0d, 0x0a, 0x0d, 0x0a, 0x24, 0x81, - //0x05d0: @... .... .... ..$. - 0x00, 0xb8, 0x00, 0x52, 0x00, 0x80, 0x00, 0xc0, 0xc8, 0x50, 0x00, 0x93, 0x00, 0x3e, 0x00, 0x6f, - //0x05e0: ...R .... .P.. .>.o - 0x00, 0x80, 0xc8, 0xb7, 0x00, 0xfa, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0xc4, 0xc8, 0x00, 0x00, 0x40, - //0x05f0: .... ...> .o.. ...@ - 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x53, 0x50, 0x45, 0x45, 0x43, 0x48, 0x52, - //0x0600: .... .... .SPE ECHR - 0x32, 0x34, 0x43, 0x30, 0x30, 0x30, 0x35, 0x2e, 0x52, 0x41, 0x57, 0x00, 0x4f, 0x42, 0x4a, 0x45, - //0x0610: 24C0 005. RAW. OBJE - 0x43, 0x54, 0x20, 0x4e, 0x41, 0x4d, 0x45, 0x20, 0x4f, 0x4e, 0x45, 0x20, 0x20, 0x20, 0x20, 0x20, - //0x0620: CT N AME ONE - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - //0x0630: - 0x20, 0x20, 0x20, 0x20, 0x00, 0x10, 0x12, 0x12, 0x11, 0x10, 0x10, 0x10, 0x01, 0x01, 0x01, 0x01, - //0x0640: .... .... .... - 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x44, 0x3a, 0x00, - //0x0650: .... .... .... .D:. + 0xb8, 0x00, 0x50, 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, + //0x0570: ..P. ..@. .... .... + 0x77, 0x00, 0xae, 0x00, 0x52, 0x00, 0x80, 0x00, 0x34, 0xc8, 0x46, 0x00, 0x89, 0x00, 0x3e, 0x00, + //0x0580: w... R... 4.F. ..>. + 0x6f, 0x00, 0x80, 0xc8, 0xbc, 0x00, 0xfa, 0x00, 0x44, 0x00, 0x98, 0x00, 0x4c, 0xc8, 0x00, 0x00, + //0x0590: o... .... D... L... + 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x77, 0x00, 0xae, 0x00, 0x52, 0x00, + //0x05a0: @... .... ..w. ..R. + 0x80, 0x00, 0x44, 0xc8, 0x46, 0x00, 0x8b, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0x50, 0xc8, 0xec, 0x00, + //0x05b0: ..D. F... >.o. P... + 0xfc, 0x00, 0x70, 0x00, 0x80, 0x00, 0x48, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, + //0x05c0: ..p. ..H. ..@. .... + 0xa0, 0xca, 0xff, 0xff, 0x0d, 0x0a, 0x0d, 0x0a, 0x24, 0x81, 0x00, 0xb8, 0x00, 0x52, 0x00, 0x80, + //0x05d0: .... .... $... .R.. + 0x00, 0xc0, 0xc8, 0x50, 0x00, 0x93, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0x80, 0xc8, 0xb7, 0x00, 0xfa, + //0x05e0: ...P ...> .o.. .... + 0x00, 0x3e, 0x00, 0x6f, 0x00, 0xc4, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, + //0x05f0: .>.o .... .@.. .... + 0xca, 0xff, 0xff, 0x53, 0x50, 0x45, 0x45, 0x43, 0x48, 0x52, 0x32, 0x34, 0x43, 0x30, 0x30, 0x30, + //0x0600: ...S PEEC HR24 C000 + 0x35, 0x2e, 0x52, 0x41, 0x57, 0x00, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x20, 0x4e, 0x41, 0x4d, + //0x0610: 5.RA W.OB JECT NAM + 0x45, 0x20, 0x4f, 0x4e, 0x45, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + //0x0620: E ON E + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x10, + //0x0630: .. + 0x12, 0x12, 0x11, 0x10, 0x10, 0x10, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, + //0x0640: .... .... .... .... + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x44, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x0650: .... ...D :... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0660: .... .... .... .... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0670: .... .... .... .... - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x02, 0x04, 0x01, 0x0a, 0x09, 0x08, //0x0680: .... .... .... .... - 0x02, 0x04, 0x01, 0x0a, 0x09, 0x08, 0x06, 0x0b, 0x04, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x06, 0x0b, 0x04, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0690: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x06a0: .... .... .... .... @@ -7360,23 +7360,23 @@ void DreamGenContext::__start() { //0x06f0: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0700: .... .... .... .... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x02, //0x0710: .... .... .... .... - 0xff, 0xff, 0xff, 0xff, 0xff, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x0720: .... .... .... .... - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x0730: .... .... .... .... - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x0740: .... .... .... .... - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x0750: .... .... .... .... - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x0760: .... .... .... .... - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x0770: .... .... .... .... - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x0780: .... .... .... .... - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, }; + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, }; ds.assign(src, src + sizeof(src)); dreamweb(); } diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h index b8aecee432..fa7fa79173 100644 --- a/engines/dreamweb/dreamgen.h +++ b/engines/dreamweb/dreamgen.h @@ -32,21 +32,21 @@ namespace DreamGen { -static const uint16 offset_speechfile = 0x060f; -static const uint16 offset_operand1 = 0x052a; -static const uint16 offset_comlist = 0x0484; -static const uint16 offset_money2poke = 0x0559; -static const uint16 offset_discopslist = 0x05b0; -static const uint16 offset_openchangesize = 0x044c; -static const uint16 offset_keys = 0x04c0; -static const uint16 offset_diarylist = 0x055c; -static const uint16 offset_quitlist = 0x046e; -static const uint16 offset_rootdir = 0x0538; -static const uint16 offset_decidelist = 0x05df; -static const uint16 offset_money1poke = 0x0554; -static const uint16 offset_commandline = 0x061c; -static const uint16 offset_opslist = 0x0586; -static const uint16 offset_talklist = 0x044e; +static const uint16 offset_money1poke = 0x054e; +static const uint16 offset_talklist = 0x0448; +static const uint16 offset_decidelist = 0x05d9; +static const uint16 offset_discopslist = 0x05aa; +static const uint16 offset_openchangesize = 0x0446; +static const uint16 offset_operand1 = 0x0524; +static const uint16 offset_speechfile = 0x0609; +static const uint16 offset_comlist = 0x047e; +static const uint16 offset_opslist = 0x0580; +static const uint16 offset_diarylist = 0x0556; +static const uint16 offset_rootdir = 0x0532; +static const uint16 offset_money2poke = 0x0553; +static const uint16 offset_commandline = 0x0616; +static const uint16 offset_keys = 0x04ba; +static const uint16 offset_quitlist = 0x0468; static const uint16 kStartvars = 0; static const uint16 kProgresspoints = 1; static const uint16 kWatchon = 2; @@ -174,272 +174,269 @@ static const uint16 kFlagx = 154; static const uint16 kFlagy = 155; static const uint16 kCurrentex = 156; static const uint16 kCurrentfree = 157; -static const uint16 kCurrentframe = 158; -static const uint16 kFramesad = 160; -static const uint16 kDataad = 162; -static const uint16 kFrsegment = 164; -static const uint16 kObjectx = 166; -static const uint16 kObjecty = 168; -static const uint16 kOffsetx = 170; -static const uint16 kOffsety = 172; -static const uint16 kSavesize = 174; -static const uint16 kSavesource = 176; -static const uint16 kSavex = 178; -static const uint16 kSavey = 179; -static const uint16 kCurrentob = 180; -static const uint16 kPrioritydep = 181; -static const uint16 kDestpos = 182; -static const uint16 kReallocation = 183; -static const uint16 kRoomnum = 184; -static const uint16 kNowinnewroom = 185; -static const uint16 kResetmanxy = 186; -static const uint16 kNewlocation = 187; -static const uint16 kAutolocation = 188; -static const uint16 kMustload = 189; -static const uint16 kAnswered = 190; -static const uint16 kSaidno = 191; -static const uint16 kDoorcheck1 = 192; -static const uint16 kDoorcheck2 = 193; -static const uint16 kDoorcheck3 = 194; -static const uint16 kDoorcheck4 = 195; -static const uint16 kMousex = 196; -static const uint16 kMousey = 198; -static const uint16 kMousebutton = 200; -static const uint16 kMousebutton1 = 202; -static const uint16 kMousebutton2 = 204; -static const uint16 kMousebutton3 = 206; -static const uint16 kMousebutton4 = 208; -static const uint16 kOldbutton = 210; -static const uint16 kOldx = 212; -static const uint16 kOldy = 214; -static const uint16 kLastbutton = 216; -static const uint16 kOldpointerx = 218; -static const uint16 kOldpointery = 220; -static const uint16 kDelherex = 222; -static const uint16 kDelherey = 224; -static const uint16 kPointerxs = 226; -static const uint16 kPointerys = 227; -static const uint16 kDelxs = 228; -static const uint16 kDelys = 229; -static const uint16 kPointerframe = 230; -static const uint16 kPointerpower = 231; -static const uint16 kAuxpointerframe = 232; -static const uint16 kPointermode = 233; -static const uint16 kPointerspeed = 234; -static const uint16 kPointercount = 235; -static const uint16 kInmaparea = 236; -static const uint16 kReelpointer = 237; -static const uint16 kSlotdata = 239; -static const uint16 kThisslot = 240; -static const uint16 kSlotflags = 241; -static const uint16 kTakeoff = 242; -static const uint16 kTalkmode = 244; -static const uint16 kTalkpos = 245; -static const uint16 kCharacter = 246; -static const uint16 kPersondata = 247; -static const uint16 kTalknum = 249; -static const uint16 kNumberinroom = 250; -static const uint16 kCurrentcel = 251; -static const uint16 kOldselection = 252; -static const uint16 kStopwalking = 253; -static const uint16 kMouseon = 254; -static const uint16 kPlayed = 255; -static const uint16 kTimer1 = 257; -static const uint16 kTimer2 = 258; -static const uint16 kTimer3 = 259; -static const uint16 kWholetimer = 260; -static const uint16 kTimer1to = 262; -static const uint16 kTimer2to = 263; -static const uint16 kTimer3to = 264; -static const uint16 kWatchdump = 265; -static const uint16 kLogonum = 266; -static const uint16 kOldlogonum = 267; -static const uint16 kNewlogonum = 268; -static const uint16 kNetseg = 269; -static const uint16 kNetpoint = 271; -static const uint16 kKeynum = 273; -static const uint16 kCursorstate = 274; -static const uint16 kPressed = 275; -static const uint16 kPresspointer = 276; -static const uint16 kGraphicpress = 278; -static const uint16 kPresscount = 279; -static const uint16 kKeypadax = 280; -static const uint16 kKeypadcx = 282; -static const uint16 kLightcount = 284; -static const uint16 kFolderpage = 285; -static const uint16 kDiarypage = 286; -static const uint16 kMenucount = 287; -static const uint16 kSymboltopx = 288; -static const uint16 kSymboltopnum = 289; -static const uint16 kSymboltopdir = 290; -static const uint16 kSymbolbotx = 291; -static const uint16 kSymbolbotnum = 292; -static const uint16 kSymbolbotdir = 293; -static const uint16 kSymboltolight = 294; -static const uint16 kSymbol1 = 295; -static const uint16 kSymbol2 = 296; -static const uint16 kSymbol3 = 297; -static const uint16 kSymbolnum = 298; -static const uint16 kDumpx = 299; -static const uint16 kDumpy = 301; -static const uint16 kWalkandexam = 303; -static const uint16 kWalkexamtype = 304; -static const uint16 kWalkexamnum = 305; -static const uint16 kCursloc = 306; -static const uint16 kCurslocx = 308; -static const uint16 kCurslocy = 310; -static const uint16 kCurpos = 312; -static const uint16 kMonadx = 314; -static const uint16 kMonady = 316; -static const uint16 kGotfrom = 318; -static const uint16 kMonsource = 320; -static const uint16 kNumtodo = 322; -static const uint16 kTimecount = 324; -static const uint16 kCounttotimed = 326; -static const uint16 kTimedseg = 328; -static const uint16 kTimedoffset = 330; -static const uint16 kTimedy = 332; -static const uint16 kTimedx = 333; -static const uint16 kNeedtodumptimed = 334; -static const uint16 kHandle = 335; -static const uint16 kLoadingorsave = 337; -static const uint16 kCurrentslot = 338; -static const uint16 kCursorpos = 339; -static const uint16 kColourpos = 340; -static const uint16 kFadedirection = 341; -static const uint16 kNumtofade = 342; -static const uint16 kFadecount = 343; -static const uint16 kAddtogreen = 344; -static const uint16 kAddtored = 345; -static const uint16 kAddtoblue = 346; -static const uint16 kLastsoundreel = 347; -static const uint16 kSoundbuffer = 349; -static const uint16 kSoundbufferad = 351; -static const uint16 kSoundbufferpage = 353; -static const uint16 kSoundtimes = 354; -static const uint16 kNeedsoundbuff = 355; -static const uint16 kOldint9seg = 356; -static const uint16 kOldint9add = 358; -static const uint16 kOldint8seg = 360; -static const uint16 kOldint8add = 362; -static const uint16 kOldsoundintseg = 364; -static const uint16 kOldsoundintadd = 366; -static const uint16 kSoundbaseadd = 368; -static const uint16 kDsp_status = 370; -static const uint16 kDsp_write = 372; -static const uint16 kDmaaddress = 374; -static const uint16 kSoundint = 375; -static const uint16 kSounddmachannel = 376; -static const uint16 kSampleplaying = 377; -static const uint16 kTestresult = 378; -static const uint16 kCurrentirq = 379; -static const uint16 kSpeechloaded = 380; -static const uint16 kSpeechlength = 381; -static const uint16 kVolume = 383; -static const uint16 kVolumeto = 384; -static const uint16 kVolumedirection = 385; -static const uint16 kVolumecount = 386; -static const uint16 kPlayblock = 387; -static const uint16 kWongame = 388; -static const uint16 kLasthardkey = 389; -static const uint16 kBufferin = 390; -static const uint16 kBufferout = 392; -static const uint16 kExtras = 394; -static const uint16 kWorkspace = 396; -static const uint16 kMapstore = 398; -static const uint16 kCharset1 = 400; -static const uint16 kBuffers = 402; -static const uint16 kMainsprites = 404; -static const uint16 kBackdrop = 406; -static const uint16 kMapdata = 408; -static const uint16 kSounddata = 410; -static const uint16 kSounddata2 = 412; -static const uint16 kRecordspace = 414; -static const uint16 kFreedat = 416; -static const uint16 kSetdat = 418; -static const uint16 kReel1 = 420; -static const uint16 kReel2 = 422; -static const uint16 kReel3 = 424; -static const uint16 kRoomdesc = 426; -static const uint16 kFreedesc = 428; -static const uint16 kSetdesc = 430; -static const uint16 kBlockdesc = 432; -static const uint16 kSetframes = 434; -static const uint16 kFreeframes = 436; -static const uint16 kPeople = 438; -static const uint16 kReels = 440; -static const uint16 kCommandtext = 442; -static const uint16 kPuzzletext = 444; -static const uint16 kTraveltext = 446; -static const uint16 kTempgraphics = 448; -static const uint16 kTempgraphics2 = 450; -static const uint16 kTempgraphics3 = 452; -static const uint16 kTempsprites = 454; -static const uint16 kTextfile1 = 456; -static const uint16 kTextfile2 = 458; -static const uint16 kTextfile3 = 460; -static const uint16 kBlinkframe = 462; -static const uint16 kBlinkcount = 463; -static const uint16 kReasseschanges = 464; -static const uint16 kPointerspath = 465; -static const uint16 kManspath = 466; -static const uint16 kPointerfirstpath = 467; -static const uint16 kFinaldest = 468; -static const uint16 kDestination = 469; -static const uint16 kLinestartx = 470; -static const uint16 kLinestarty = 472; -static const uint16 kLineendx = 474; -static const uint16 kLineendy = 476; -static const uint16 kIncrement1 = 478; -static const uint16 kIncrement2 = 480; -static const uint16 kLineroutine = 482; -static const uint16 kLinepointer = 483; -static const uint16 kLinedirection = 484; -static const uint16 kLinelength = 485; -static const uint16 kLiftsoundcount = 486; -static const uint16 kEmmhandle = 487; -static const uint16 kEmmpageframe = 489; -static const uint16 kEmmhardwarepage = 491; -static const uint16 kCh0emmpage = 492; -static const uint16 kCh0offset = 494; -static const uint16 kCh0blockstocopy = 496; -static const uint16 kCh0playing = 498; -static const uint16 kCh0repeat = 499; -static const uint16 kCh0oldemmpage = 500; -static const uint16 kCh0oldoffset = 502; -static const uint16 kCh0oldblockstocopy = 504; -static const uint16 kCh1playing = 506; -static const uint16 kCh1emmpage = 507; -static const uint16 kCh1offset = 509; -static const uint16 kCh1blockstocopy = 511; -static const uint16 kCh1blocksplayed = 513; -static const uint16 kSoundbufferwrite = 515; -static const uint16 kSoundemmpage = 517; -static const uint16 kSpeechemmpage = 519; -static const uint16 kCurrentsample = 521; -static const uint16 kRoomssample = 522; -static const uint16 kGameerror = 523; -static const uint16 kHowmuchalloc = 524; -static const uint16 kReelroutines = 526; -static const uint16 kCharacterset3 = 983; -static const uint16 kBasicsample = 996; -static const uint16 kDiarygraphic = 1009; -static const uint16 kDiarytext = 1022; -static const uint16 kEndtextname = 1035; -static const uint16 kVolumetabname = 1048; -static const uint16 kGungraphic = 1061; -static const uint16 kMonkface = 1074; -static const uint16 kTitle7graphics = 1087; -static const uint16 kCurrentfile = 1350; -static const uint16 kRoomscango = 1661; -static const uint16 kRoompics = 1677; -static const uint16 kOplist = 1692; -static const uint16 kInputline = 1695; -static const uint16 kPresslist = 1823; -static const uint16 kSavenames = 1829; -static const uint16 kQuitrequested = 1948; -static const uint16 kSubtitles = 1949; -static const uint16 kForeignrelease = 1950; +static const uint16 kFramesad = 158; +static const uint16 kDataad = 160; +static const uint16 kFrsegment = 162; +static const uint16 kObjectx = 164; +static const uint16 kObjecty = 166; +static const uint16 kOffsetx = 168; +static const uint16 kOffsety = 170; +static const uint16 kSavesize = 172; +static const uint16 kSavesource = 174; +static const uint16 kSavex = 176; +static const uint16 kSavey = 177; +static const uint16 kCurrentob = 178; +static const uint16 kPrioritydep = 179; +static const uint16 kDestpos = 180; +static const uint16 kReallocation = 181; +static const uint16 kRoomnum = 182; +static const uint16 kNowinnewroom = 183; +static const uint16 kResetmanxy = 184; +static const uint16 kNewlocation = 185; +static const uint16 kAutolocation = 186; +static const uint16 kMustload = 187; +static const uint16 kAnswered = 188; +static const uint16 kSaidno = 189; +static const uint16 kDoorcheck1 = 190; +static const uint16 kDoorcheck2 = 191; +static const uint16 kDoorcheck3 = 192; +static const uint16 kDoorcheck4 = 193; +static const uint16 kMousex = 194; +static const uint16 kMousey = 196; +static const uint16 kMousebutton = 198; +static const uint16 kMousebutton1 = 200; +static const uint16 kMousebutton2 = 202; +static const uint16 kMousebutton3 = 204; +static const uint16 kMousebutton4 = 206; +static const uint16 kOldbutton = 208; +static const uint16 kOldx = 210; +static const uint16 kOldy = 212; +static const uint16 kLastbutton = 214; +static const uint16 kOldpointerx = 216; +static const uint16 kOldpointery = 218; +static const uint16 kDelherex = 220; +static const uint16 kDelherey = 222; +static const uint16 kPointerxs = 224; +static const uint16 kPointerys = 225; +static const uint16 kDelxs = 226; +static const uint16 kDelys = 227; +static const uint16 kPointerframe = 228; +static const uint16 kPointerpower = 229; +static const uint16 kAuxpointerframe = 230; +static const uint16 kPointermode = 231; +static const uint16 kPointerspeed = 232; +static const uint16 kPointercount = 233; +static const uint16 kInmaparea = 234; +static const uint16 kSlotdata = 235; +static const uint16 kThisslot = 236; +static const uint16 kSlotflags = 237; +static const uint16 kTalkmode = 238; +static const uint16 kTalkpos = 239; +static const uint16 kCharacter = 240; +static const uint16 kPersondata = 241; +static const uint16 kTalknum = 243; +static const uint16 kNumberinroom = 244; +static const uint16 kCurrentcel = 245; +static const uint16 kOldselection = 246; +static const uint16 kStopwalking = 247; +static const uint16 kMouseon = 248; +static const uint16 kPlayed = 249; +static const uint16 kTimer1 = 251; +static const uint16 kTimer2 = 252; +static const uint16 kTimer3 = 253; +static const uint16 kWholetimer = 254; +static const uint16 kTimer1to = 256; +static const uint16 kTimer2to = 257; +static const uint16 kTimer3to = 258; +static const uint16 kWatchdump = 259; +static const uint16 kLogonum = 260; +static const uint16 kOldlogonum = 261; +static const uint16 kNewlogonum = 262; +static const uint16 kNetseg = 263; +static const uint16 kNetpoint = 265; +static const uint16 kKeynum = 267; +static const uint16 kCursorstate = 268; +static const uint16 kPressed = 269; +static const uint16 kPresspointer = 270; +static const uint16 kGraphicpress = 272; +static const uint16 kPresscount = 273; +static const uint16 kKeypadax = 274; +static const uint16 kKeypadcx = 276; +static const uint16 kLightcount = 278; +static const uint16 kFolderpage = 279; +static const uint16 kDiarypage = 280; +static const uint16 kMenucount = 281; +static const uint16 kSymboltopx = 282; +static const uint16 kSymboltopnum = 283; +static const uint16 kSymboltopdir = 284; +static const uint16 kSymbolbotx = 285; +static const uint16 kSymbolbotnum = 286; +static const uint16 kSymbolbotdir = 287; +static const uint16 kSymboltolight = 288; +static const uint16 kSymbol1 = 289; +static const uint16 kSymbol2 = 290; +static const uint16 kSymbol3 = 291; +static const uint16 kSymbolnum = 292; +static const uint16 kDumpx = 293; +static const uint16 kDumpy = 295; +static const uint16 kWalkandexam = 297; +static const uint16 kWalkexamtype = 298; +static const uint16 kWalkexamnum = 299; +static const uint16 kCursloc = 300; +static const uint16 kCurslocx = 302; +static const uint16 kCurslocy = 304; +static const uint16 kCurpos = 306; +static const uint16 kMonadx = 308; +static const uint16 kMonady = 310; +static const uint16 kGotfrom = 312; +static const uint16 kMonsource = 314; +static const uint16 kNumtodo = 316; +static const uint16 kTimecount = 318; +static const uint16 kCounttotimed = 320; +static const uint16 kTimedseg = 322; +static const uint16 kTimedoffset = 324; +static const uint16 kTimedy = 326; +static const uint16 kTimedx = 327; +static const uint16 kNeedtodumptimed = 328; +static const uint16 kHandle = 329; +static const uint16 kLoadingorsave = 331; +static const uint16 kCurrentslot = 332; +static const uint16 kCursorpos = 333; +static const uint16 kColourpos = 334; +static const uint16 kFadedirection = 335; +static const uint16 kNumtofade = 336; +static const uint16 kFadecount = 337; +static const uint16 kAddtogreen = 338; +static const uint16 kAddtored = 339; +static const uint16 kAddtoblue = 340; +static const uint16 kLastsoundreel = 341; +static const uint16 kSoundbuffer = 343; +static const uint16 kSoundbufferad = 345; +static const uint16 kSoundbufferpage = 347; +static const uint16 kSoundtimes = 348; +static const uint16 kNeedsoundbuff = 349; +static const uint16 kOldint9seg = 350; +static const uint16 kOldint9add = 352; +static const uint16 kOldint8seg = 354; +static const uint16 kOldint8add = 356; +static const uint16 kOldsoundintseg = 358; +static const uint16 kOldsoundintadd = 360; +static const uint16 kSoundbaseadd = 362; +static const uint16 kDsp_status = 364; +static const uint16 kDsp_write = 366; +static const uint16 kDmaaddress = 368; +static const uint16 kSoundint = 369; +static const uint16 kSounddmachannel = 370; +static const uint16 kSampleplaying = 371; +static const uint16 kTestresult = 372; +static const uint16 kCurrentirq = 373; +static const uint16 kSpeechloaded = 374; +static const uint16 kSpeechlength = 375; +static const uint16 kVolume = 377; +static const uint16 kVolumeto = 378; +static const uint16 kVolumedirection = 379; +static const uint16 kVolumecount = 380; +static const uint16 kPlayblock = 381; +static const uint16 kWongame = 382; +static const uint16 kLasthardkey = 383; +static const uint16 kBufferin = 384; +static const uint16 kBufferout = 386; +static const uint16 kExtras = 388; +static const uint16 kWorkspace = 390; +static const uint16 kMapstore = 392; +static const uint16 kCharset1 = 394; +static const uint16 kBuffers = 396; +static const uint16 kMainsprites = 398; +static const uint16 kBackdrop = 400; +static const uint16 kMapdata = 402; +static const uint16 kSounddata = 404; +static const uint16 kSounddata2 = 406; +static const uint16 kRecordspace = 408; +static const uint16 kFreedat = 410; +static const uint16 kSetdat = 412; +static const uint16 kReel1 = 414; +static const uint16 kReel2 = 416; +static const uint16 kReel3 = 418; +static const uint16 kRoomdesc = 420; +static const uint16 kFreedesc = 422; +static const uint16 kSetdesc = 424; +static const uint16 kBlockdesc = 426; +static const uint16 kSetframes = 428; +static const uint16 kFreeframes = 430; +static const uint16 kPeople = 432; +static const uint16 kReels = 434; +static const uint16 kCommandtext = 436; +static const uint16 kPuzzletext = 438; +static const uint16 kTraveltext = 440; +static const uint16 kTempgraphics = 442; +static const uint16 kTempgraphics2 = 444; +static const uint16 kTempgraphics3 = 446; +static const uint16 kTempsprites = 448; +static const uint16 kTextfile1 = 450; +static const uint16 kTextfile2 = 452; +static const uint16 kTextfile3 = 454; +static const uint16 kBlinkframe = 456; +static const uint16 kBlinkcount = 457; +static const uint16 kReasseschanges = 458; +static const uint16 kPointerspath = 459; +static const uint16 kManspath = 460; +static const uint16 kPointerfirstpath = 461; +static const uint16 kFinaldest = 462; +static const uint16 kDestination = 463; +static const uint16 kLinestartx = 464; +static const uint16 kLinestarty = 466; +static const uint16 kLineendx = 468; +static const uint16 kLineendy = 470; +static const uint16 kIncrement1 = 472; +static const uint16 kIncrement2 = 474; +static const uint16 kLineroutine = 476; +static const uint16 kLinepointer = 477; +static const uint16 kLinedirection = 478; +static const uint16 kLinelength = 479; +static const uint16 kLiftsoundcount = 480; +static const uint16 kEmmhandle = 481; +static const uint16 kEmmpageframe = 483; +static const uint16 kEmmhardwarepage = 485; +static const uint16 kCh0emmpage = 486; +static const uint16 kCh0offset = 488; +static const uint16 kCh0blockstocopy = 490; +static const uint16 kCh0playing = 492; +static const uint16 kCh0repeat = 493; +static const uint16 kCh0oldemmpage = 494; +static const uint16 kCh0oldoffset = 496; +static const uint16 kCh0oldblockstocopy = 498; +static const uint16 kCh1playing = 500; +static const uint16 kCh1emmpage = 501; +static const uint16 kCh1offset = 503; +static const uint16 kCh1blockstocopy = 505; +static const uint16 kCh1blocksplayed = 507; +static const uint16 kSoundbufferwrite = 509; +static const uint16 kSoundemmpage = 511; +static const uint16 kSpeechemmpage = 513; +static const uint16 kCurrentsample = 515; +static const uint16 kRoomssample = 516; +static const uint16 kGameerror = 517; +static const uint16 kHowmuchalloc = 518; +static const uint16 kReelroutines = 520; +static const uint16 kCharacterset3 = 977; +static const uint16 kBasicsample = 990; +static const uint16 kDiarygraphic = 1003; +static const uint16 kDiarytext = 1016; +static const uint16 kEndtextname = 1029; +static const uint16 kVolumetabname = 1042; +static const uint16 kGungraphic = 1055; +static const uint16 kMonkface = 1068; +static const uint16 kTitle7graphics = 1081; +static const uint16 kCurrentfile = 1344; +static const uint16 kRoomscango = 1655; +static const uint16 kRoompics = 1671; +static const uint16 kOplist = 1686; +static const uint16 kInputline = 1689; +static const uint16 kPresslist = 1817; +static const uint16 kSavenames = 1823; +static const uint16 kQuitrequested = 1942; +static const uint16 kSubtitles = 1943; +static const uint16 kForeignrelease = 1944; static const uint16 kBlocktextdat = (0); static const uint16 kPersonframes = (0); static const uint16 kDebuglevel1 = (0); @@ -478,8 +475,8 @@ static const uint16 kListofchanges = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768 static const uint16 kUndertimedtext = (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)); static const uint16 kRainlist = (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)+(256*30)); static const uint16 kInitialreelrouts = (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)+(256*30)+(6*64)); -static const uint16 kInitialvars = (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)+(256*30)+(6*64)+983-526); -static const uint16 kLengthofbuffer = (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)+(256*30)+(6*64)+983-526+68-0); +static const uint16 kInitialvars = (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)+(256*30)+(6*64)+977-520); +static const uint16 kLengthofbuffer = (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)+(256*30)+(6*64)+977-520+68-0); static const uint16 kReellist = (0+(36*144)); static const uint16 kIntext = (0+(38*2)); static const uint16 kLengthofmap = (0+(66*60)); @@ -531,7 +528,7 @@ static const uint16 kZoomx = (8); static const uint16 kInventx = (80); static const uint16 kMenux = (80+40); static const uint16 kHeaderlen = (96); -static const uint16 kLenofreelrouts = (983-526); +static const uint16 kLenofreelrouts = (977-520); class DreamGenContext : public DreamBase, public Context { diff --git a/engines/dreamweb/sprite.cpp b/engines/dreamweb/sprite.cpp index 992a080f6c..b14cfc554c 100644 --- a/engines/dreamweb/sprite.cpp +++ b/engines/dreamweb/sprite.cpp @@ -464,36 +464,33 @@ void DreamGenContext::faceRightWay() { data.byte(kLeavedirection) = dir; } -// Locate the reel segment (reel1, reel2, reel3) this frame is stored in. -// The return value is a pointer to the start of the segment. -// data.word(kCurrentframe) - data.word(kTakeoff) is the number of the frame -// inside that segment -Frame *DreamGenContext::findSource() { - uint16 currentFrame = data.word(kCurrentframe); - if (currentFrame < 160) { - data.word(kTakeoff) = 0; - return (Frame *)getSegment(data.word(kReel1)).ptr(0, 0); - } else if (currentFrame < 320) { - data.word(kTakeoff) = 160; - return (Frame *)getSegment(data.word(kReel2)).ptr(0, 0); - } else { - data.word(kTakeoff) = 320; - return (Frame *)getSegment(data.word(kReel3)).ptr(0, 0); - } -} - Reel *DreamBase::getReelStart(uint16 reelPointer) { Reel *reel = (Reel *)getSegment(data.word(kReels)).ptr(kReellist + reelPointer * sizeof(Reel) * 8, sizeof(Reel)); return reel; } -void DreamGenContext::showReelFrame(Reel *reel) { +// Locate the reel segment (reel1, reel2, reel3) this frame is stored in, +// and adjust the frame number relative to this segment. +const Frame *DreamBase::findSource(uint16 &frame) { + uint16 base; + if (frame < 160) { + base = data.word(kReel1); + } else if (frame < 320) { + frame -= 160; + base = data.word(kReel2); + } else { + frame -= 320; + base = data.word(kReel3); + } + return (const Frame *)getSegment(base).ptr(0, (frame+1)*sizeof(Frame)); +} + +void DreamBase::showReelFrame(Reel *reel) { uint16 x = reel->x + data.word(kMapadx); uint16 y = reel->y + data.word(kMapady); - data.word(kCurrentframe) = reel->frame(); - Frame *source = findSource(); - uint16 frame = data.word(kCurrentframe) - data.word(kTakeoff); - showFrame(source, x, y, frame, 8); + uint16 frame = reel->frame(); + const Frame *base = findSource(frame); + showFrame(base, x, y, frame, 8); } void DreamGenContext::showGameReel() { @@ -508,11 +505,9 @@ void DreamGenContext::showGameReel(ReelRoutine *routine) { routine->setReelPointer(reelPointer); } -const Frame *DreamGenContext::getReelFrameAX(uint16 frame) { - data.word(kCurrentframe) = frame; - Frame *source = findSource(); - uint16 offset = data.word(kCurrentframe) - data.word(kTakeoff); - return source + offset; +const Frame *DreamBase::getReelFrameAX(uint16 frame) { + const Frame *base = findSource(frame); + return base + frame; } void DreamGenContext::showRain() { diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h index 3bbba77d93..80433c1134 100644 --- a/engines/dreamweb/stubs.h +++ b/engines/dreamweb/stubs.h @@ -115,11 +115,8 @@ void wideDoor(Sprite *sprite, SetObject *objData); void lockedDoorway(Sprite *sprite, SetObject *objData); void liftSprite(Sprite *sprite, SetObject *objData); - Frame *findSource(); void showGameReel(); void showGameReel(ReelRoutine *routine); - void showReelFrame(Reel *reel); - const Frame *getReelFrameAX(uint16 frame); void turnPathOn(uint8 param); void turnPathOff(uint8 param); void turnPathOn(); @@ -162,8 +159,8 @@ uint8 getMapAd(const uint8 *setData); uint8 getXAd(const uint8 *setData, uint8 *result); uint8 getYAd(const uint8 *setData, uint8 *result); - void calcFrFrame(); - void calcFrFrame(uint8* width, uint8* height); + void calcFrFrame(uint16 frame); + void calcFrFrame(uint16 frame, uint8* width, uint8* height); void finalFrame(); void finalFrame(uint16 *x, uint16 *y); void showAllObs(); diff --git a/engines/dreamweb/talk.cpp b/engines/dreamweb/talk.cpp index 42fc3523a5..86d1b886ef 100644 --- a/engines/dreamweb/talk.cpp +++ b/engines/dreamweb/talk.cpp @@ -30,10 +30,9 @@ uint16 DreamGenContext::getPersFrame(uint8 index) { void DreamGenContext::convIcons() { uint8 index = data.byte(kCharacter) & 127; - data.word(kCurrentframe) = getPersFrame(index); - Frame *frame = findSource(); - uint16 frameNumber = (data.word(kCurrentframe) - data.word(kTakeoff)) & 0xff; - showFrame(frame, 234, 2, frameNumber, 0); + uint16 frame = getPersFrame(index); + const Frame *base = findSource(frame); + showFrame(base, 234, 2, frame, 0); } } // End of namespace DreamGen |