From 87ac82db27e10317370b3a7637cf094f4e1492b9 Mon Sep 17 00:00:00 2001 From: Bertrand Augereau Date: Sun, 4 Dec 2011 17:53:55 +0100 Subject: DREAMWEB: kIcons1 and kIcons2 ownership transferred from the VM to the engine --- engines/dreamweb/dreamgen.cpp | 472 +++++++++++++++++++++--------------------- engines/dreamweb/dreamgen.h | 260 ++++++++++++----------- engines/dreamweb/dreamweb.cpp | 6 + engines/dreamweb/dreamweb.h | 12 ++ engines/dreamweb/runtime.h | 9 +- engines/dreamweb/structs.h | 5 + engines/dreamweb/stubs.cpp | 31 ++- engines/dreamweb/stubs.h | 2 +- 8 files changed, 418 insertions(+), 379 deletions(-) (limited to 'engines') diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp index 172e822749..c25cef2444 100644 --- a/engines/dreamweb/dreamgen.cpp +++ b/engines/dreamweb/dreamgen.cpp @@ -2046,7 +2046,7 @@ void DreamGenContext::showGun() { data.byte(kRoomssample) = 34; loadRoomsSample(); data.byte(kVolume) = 0; - dx = 1172; + dx = 1168; loadIntoTemp(); createPanel2(); ds = data.word(kTempgraphics); @@ -2069,7 +2069,7 @@ void DreamGenContext::showGun() { al = 12; ah = 0; playChannel0(); - dx = 1146; + dx = 1142; loadTempText(); rollEndCredits2(); getRidOfTempText(); @@ -2317,7 +2317,7 @@ void DreamGenContext::initialMonCols() { void DreamGenContext::endGame() { STACK_CHECK; - dx = 1146; + dx = 1142; loadTempText(); monkSpeaking(); gettingShot(); @@ -2332,7 +2332,7 @@ void DreamGenContext::monkSpeaking() { STACK_CHECK; data.byte(kRoomssample) = 35; loadRoomsSample(); - dx = 1185; + dx = 1181; loadIntoTemp(); clearWork(); showMonk(); @@ -2399,7 +2399,7 @@ void DreamGenContext::gettingShot() { void DreamGenContext::bibleQuote() { STACK_CHECK; mode640x480(); - dx = 1198; + dx = 1194; showPCX(); fadeScreenUps(); cx = 80; @@ -2438,7 +2438,7 @@ hangonloope: void DreamGenContext::intro() { STACK_CHECK; - dx = 1133; + dx = 1129; loadTempText(); loadPalFromIFF(); setMode(); @@ -2571,7 +2571,7 @@ void DreamGenContext::realCredits() { mode640x480(); cx = 35; hangOn(); - dx = 1211; + dx = 1207; showPCX(); al = 12; ah = 0; @@ -2593,7 +2593,7 @@ void DreamGenContext::realCredits() { _cmp(data.byte(kLasthardkey), 1); if (flags.z()) goto realcreditsearly; - dx = 1224; + dx = 1220; showPCX(); al = 12; ah = 0; @@ -2615,7 +2615,7 @@ void DreamGenContext::realCredits() { _cmp(data.byte(kLasthardkey), 1); if (flags.z()) goto realcreditsearly; - dx = 1237; + dx = 1233; showPCX(); al = 12; ah = 0; @@ -2637,7 +2637,7 @@ void DreamGenContext::realCredits() { _cmp(data.byte(kLasthardkey), 1); if (flags.z()) goto realcreditsearly; - dx = 1250; + dx = 1246; showPCX(); al = 12; ah = 0; @@ -2659,7 +2659,7 @@ void DreamGenContext::realCredits() { _cmp(data.byte(kLasthardkey), 1); if (flags.z()) goto realcreditsearly; - dx = 1263; + dx = 1259; showPCX(); al = 12; ah = 0; @@ -2681,7 +2681,7 @@ void DreamGenContext::realCredits() { _cmp(data.byte(kLasthardkey), 1); if (flags.z()) goto realcreditsearly; - dx = 1276; + dx = 1272; showPCX(); fadeScreenUps(); cx = 60; @@ -5112,14 +5112,14 @@ void DreamGenContext::getDestInfo() { push(ax); dx = data; es = dx; - si = 1938; + si = 1934; _add(si, ax); cl = es.byte(si); ax = pop(); push(cx); dx = data; es = dx; - si = 1954; + si = 1950; _add(si, ax); ax = pop(); } @@ -5296,23 +5296,23 @@ clearedlocations: bx = ax; dx = data; es = dx; - _add(bx, 1938); + _add(bx, 1934); es.byte(bx) = 0; } void DreamGenContext::readDestIcon() { STACK_CHECK; - dx = 1081; + dx = 1077; loadIntoTemp(); - dx = 1094; + dx = 1090; loadIntoTemp2(); - dx = 1055; + dx = 1051; loadIntoTemp3(); } void DreamGenContext::readCityPic() { STACK_CHECK; - dx = 1068; + dx = 1064; loadIntoTemp(); } @@ -5411,7 +5411,7 @@ void DreamGenContext::delChar() { si = data.word(kCurpos); _add(si, si); es = cs; - _add(si, 1972); + _add(si, 1968); es.byte(si) = 0; al = es.byte(si+1); ah = 0; @@ -5438,7 +5438,7 @@ void DreamGenContext::execCommand() { es = cs; bx = offset_comlist; ds = cs; - si = 1972; + si = 1968; al = ds.byte(si); _cmp(al, 0); if (!flags.z()) @@ -5531,7 +5531,7 @@ dirroot: si = offset_rootdir; _inc(si); es = cs; - di = 1627; + di = 1623; _inc(di); cx = 12; _movsb(cx, true); @@ -5633,7 +5633,7 @@ notyetassigned: push(bx); _add(bx, 2); ds = cs; - si = 1972; + si = 1968; checkpass: _lodsw(); ah = es.byte(bx); @@ -5704,7 +5704,7 @@ void DreamGenContext::read() { return; okcom: es = cs; - di = 1627; + di = 1623; ax = data.word(kTextfile1); data.word(kMonsource) = ax; ds = ax; @@ -5834,7 +5834,7 @@ keyok2: ds = cs; si = offset_operand1+1; es = cs; - di = 1627+1; + di = 1623+1; cx = 12; _movsb(cx, true); monitorLogo(); @@ -5961,7 +5961,7 @@ void DreamGenContext::parser() { al = '='; _stosb(); ds = cs; - si = 1972; + si = 1968; notspace1: _lodsw(); _cmp(al, 32); @@ -8784,7 +8784,7 @@ nowinch: void DreamGenContext::loadKeypad() { STACK_CHECK; - dx = 1042; + dx = 1038; loadIntoTemp(); } @@ -9121,11 +9121,11 @@ void DreamGenContext::dumpSymBox() { void DreamGenContext::useDiary() { STACK_CHECK; getRidOfReels(); - dx = 1107; + dx = 1103; loadIntoTemp(); - dx = 1120; + dx = 1116; loadTempText(); - dx = 1003; + dx = 999; loadTempCharset(); createPanel(); showIcon(); @@ -9452,7 +9452,7 @@ opsblock1: void DreamGenContext::loadSaveBox() { STACK_CHECK; - dx = 1055; + dx = 1051; loadIntoTemp(); } @@ -9585,7 +9585,7 @@ void DreamGenContext::getNamePos() { _mul(cx); dx = data; es = dx; - bx = 2106; + bx = 2102; _add(bx, ax); al = data.byte(kCursorpos); ah = 0; @@ -9739,7 +9739,7 @@ void DreamGenContext::showNames() { STACK_CHECK; dx = data; es = dx; - si = 2106+1; + si = 2102+1; di = (60)+21; bx = (52)+10; cl = 0; @@ -10207,7 +10207,7 @@ void DreamGenContext::pickupOb() { 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)+991-534+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)+987-530+68-0)/2; ax = 0; di = 0; _stosw(cx, true); @@ -10219,11 +10219,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 = 534; - cx = (991-534); + si = 530; + cx = (987-530); _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)+991-534); + 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)+987-530); ds = cs; si = 0; cx = (68-0); @@ -10241,11 +10241,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 = 534; - cx = (991-534); + di = 530; + cx = (987-530); _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)+991-534); + 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)+987-530); es = cs; di = 0; cx = (68-0); @@ -10259,7 +10259,7 @@ void DreamGenContext::clearChanges() { di = 0; _stosw(cx, true); es = cs; - di = 1938; + di = 1934; al = 1; _stosb(2); al = 0; @@ -10981,199 +10981,199 @@ void DreamGenContext::__start() { //0x0180: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0190: .... .... .... .... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xff, 0xff, //0x01c0: .... .... .... .... - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0x17, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, //0x01f0: .... .... .... .... - 0x00, 0x00, 0xff, 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, 0x00, 0x00, //0x0200: .... .... .... .... - 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x2c, 0x00, 0x14, 0x00, 0x02, 0x00, 0x01, 0x01, 0x37, - //0x0210: .... ..., .... ...7 - 0x00, 0x00, 0x00, 0x32, 0x14, 0x00, 0x18, 0x16, 0x00, 0x4a, 0x00, 0x01, 0x00, 0x00, 0x18, 0x21, - //0x0220: ...2 .... .J.. ...! - 0x0a, 0x4b, 0x00, 0x01, 0x00, 0x01, 0x01, 0x2c, 0x00, 0x1b, 0x00, 0x02, 0x00, 0x02, 0x01, 0x2c, - //0x0230: .K.. ..., .... ..., - 0x00, 0x60, 0x00, 0x03, 0x00, 0x04, 0x01, 0x2c, 0x00, 0x76, 0x00, 0x02, 0x00, 0x05, 0x01, 0x2c, - //0x0240: .`.. ..., .v.. ..., - 0x0a, 0x00, 0x00, 0x02, 0x00, 0x00, 0x05, 0x16, 0x14, 0x35, 0x00, 0x03, 0x00, 0x00, 0x05, 0x16, - //0x0250: .... .... .5.. .... - 0x14, 0x28, 0x00, 0x01, 0x00, 0x02, 0x05, 0x16, 0x14, 0x32, 0x00, 0x01, 0x00, 0x03, 0x02, 0x0b, - //0x0260: .(.. .... .2.. .... - 0x0a, 0xc0, 0x00, 0x01, 0x00, 0x00, 0x02, 0x0b, 0x0a, 0xb6, 0x00, 0x02, 0x00, 0x01, 0x08, 0x0b, + 0x00, 0x00, 0x01, 0x2c, 0x00, 0x14, 0x00, 0x02, 0x00, 0x01, 0x01, 0x37, 0x00, 0x00, 0x00, 0x32, + //0x0210: ..., .... ...7 ...2 + 0x14, 0x00, 0x18, 0x16, 0x00, 0x4a, 0x00, 0x01, 0x00, 0x00, 0x18, 0x21, 0x0a, 0x4b, 0x00, 0x01, + //0x0220: .... .J.. ...! .K.. + 0x00, 0x01, 0x01, 0x2c, 0x00, 0x1b, 0x00, 0x02, 0x00, 0x02, 0x01, 0x2c, 0x00, 0x60, 0x00, 0x03, + //0x0230: ..., .... ..., .`.. + 0x00, 0x04, 0x01, 0x2c, 0x00, 0x76, 0x00, 0x02, 0x00, 0x05, 0x01, 0x2c, 0x0a, 0x00, 0x00, 0x02, + //0x0240: ..., .v.. ..., .... + 0x00, 0x00, 0x05, 0x16, 0x14, 0x35, 0x00, 0x03, 0x00, 0x00, 0x05, 0x16, 0x14, 0x28, 0x00, 0x01, + //0x0250: .... .5.. .... .(.. + 0x00, 0x02, 0x05, 0x16, 0x14, 0x32, 0x00, 0x01, 0x00, 0x03, 0x02, 0x0b, 0x0a, 0xc0, 0x00, 0x01, + //0x0260: .... .2.. .... .... + 0x00, 0x00, 0x02, 0x0b, 0x0a, 0xb6, 0x00, 0x02, 0x00, 0x01, 0x08, 0x0b, 0x0a, 0x00, 0x00, 0x02, //0x0270: .... .... .... .... - 0x0a, 0x00, 0x00, 0x02, 0x00, 0x01, 0x17, 0x00, 0x32, 0x00, 0x00, 0x03, 0x00, 0x00, 0x1c, 0x0b, - //0x0280: .... .... 2... .... - 0x14, 0xfa, 0x00, 0x04, 0x00, 0x00, 0x17, 0x00, 0x32, 0x2b, 0x00, 0x02, 0x00, 0x08, 0x17, 0x0b, - //0x0290: .... .... 2+.. .... - 0x28, 0x82, 0x00, 0x02, 0x00, 0x01, 0x17, 0x16, 0x28, 0x7a, 0x00, 0x02, 0x00, 0x02, 0x17, 0x16, - //0x02a0: (... .... (z.. .... - 0x28, 0x69, 0x00, 0x02, 0x00, 0x03, 0x17, 0x16, 0x28, 0x51, 0x00, 0x02, 0x00, 0x04, 0x17, 0x0b, - //0x02b0: (i.. .... (Q.. .... - 0x28, 0x87, 0x00, 0x02, 0x00, 0x05, 0x17, 0x16, 0x28, 0x91, 0x00, 0x02, 0x00, 0x06, 0x04, 0x16, - //0x02c0: (... .... (... .... - 0x1e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x2d, 0x16, 0x1e, 0xc8, 0x00, 0x00, 0x00, 0x14, 0x2d, 0x16, - //0x02d0: .... ..-. .... ..-. - 0x1e, 0x27, 0x00, 0x02, 0x00, 0x00, 0x2d, 0x16, 0x1e, 0x19, 0x00, 0x02, 0x00, 0x00, 0x08, 0x16, - //0x02e0: .'.. ..-. .... .... - 0x28, 0x20, 0x00, 0x02, 0x00, 0x00, 0x07, 0x0b, 0x14, 0x40, 0x00, 0x02, 0x00, 0x00, 0x16, 0x16, - //0x02f0: ( .. .... .@.. .... - 0x14, 0x52, 0x00, 0x02, 0x00, 0x00, 0x1b, 0x0b, 0x1e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x14, 0x00, - //0x0300: .R.. .... .... .... - 0x1e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x0e, 0x21, 0x28, 0x15, 0x00, 0x01, 0x00, 0x00, 0x1d, 0x0b, - //0x0310: .... ...! (... .... - 0x0a, 0x00, 0x00, 0x01, 0x00, 0x00, 0x02, 0x16, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x19, 0x00, - //0x0320: .... .... .... .... - 0x32, 0x04, 0x00, 0x02, 0x00, 0x00, 0x32, 0x16, 0x1e, 0x79, 0x00, 0x02, 0x00, 0x00, 0x32, 0x16, - //0x0330: 2... ..2. .y.. ..2. - 0x1e, 0x00, 0x00, 0x14, 0x00, 0x00, 0x34, 0x16, 0x1e, 0xc0, 0x00, 0x02, 0x00, 0x00, 0x34, 0x16, - //0x0340: .... ..4. .... ..4. - 0x1e, 0xe9, 0x00, 0x02, 0x00, 0x00, 0x32, 0x16, 0x28, 0x68, 0x00, 0x37, 0x00, 0x00, 0x35, 0x21, - //0x0350: .... ..2. (h.7 ..5! - 0x00, 0x63, 0x00, 0x02, 0x00, 0x00, 0x32, 0x16, 0x28, 0x00, 0x00, 0x03, 0x00, 0x00, 0x32, 0x16, - //0x0360: .c.. ..2. (... ..2. - 0x1e, 0xa2, 0x00, 0x02, 0x00, 0x00, 0x34, 0x16, 0x1e, 0x39, 0x00, 0x02, 0x00, 0x00, 0x34, 0x16, - //0x0370: .... ..4. .9.. ..4. - 0x1e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x36, 0x00, 0x00, 0x48, 0x00, 0x03, 0x00, 0x00, 0x37, 0x2c, - //0x0380: .... ..6. .H.. ..7, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x0e, 0x16, + 0x00, 0x01, 0x17, 0x00, 0x32, 0x00, 0x00, 0x03, 0x00, 0x00, 0x1c, 0x0b, 0x14, 0xfa, 0x00, 0x04, + //0x0280: .... 2... .... .... + 0x00, 0x00, 0x17, 0x00, 0x32, 0x2b, 0x00, 0x02, 0x00, 0x08, 0x17, 0x0b, 0x28, 0x82, 0x00, 0x02, + //0x0290: .... 2+.. .... (... + 0x00, 0x01, 0x17, 0x16, 0x28, 0x7a, 0x00, 0x02, 0x00, 0x02, 0x17, 0x16, 0x28, 0x69, 0x00, 0x02, + //0x02a0: .... (z.. .... (i.. + 0x00, 0x03, 0x17, 0x16, 0x28, 0x51, 0x00, 0x02, 0x00, 0x04, 0x17, 0x0b, 0x28, 0x87, 0x00, 0x02, + //0x02b0: .... (Q.. .... (... + 0x00, 0x05, 0x17, 0x16, 0x28, 0x91, 0x00, 0x02, 0x00, 0x06, 0x04, 0x16, 0x1e, 0x00, 0x00, 0x02, + //0x02c0: .... (... .... .... + 0x00, 0x00, 0x2d, 0x16, 0x1e, 0xc8, 0x00, 0x00, 0x00, 0x14, 0x2d, 0x16, 0x1e, 0x27, 0x00, 0x02, + //0x02d0: ..-. .... ..-. .'.. + 0x00, 0x00, 0x2d, 0x16, 0x1e, 0x19, 0x00, 0x02, 0x00, 0x00, 0x08, 0x16, 0x28, 0x20, 0x00, 0x02, + //0x02e0: ..-. .... .... ( .. + 0x00, 0x00, 0x07, 0x0b, 0x14, 0x40, 0x00, 0x02, 0x00, 0x00, 0x16, 0x16, 0x14, 0x52, 0x00, 0x02, + //0x02f0: .... .@.. .... .R.. + 0x00, 0x00, 0x1b, 0x0b, 0x1e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x14, 0x00, 0x1e, 0x00, 0x00, 0x02, + //0x0300: .... .... .... .... + 0x00, 0x00, 0x0e, 0x21, 0x28, 0x15, 0x00, 0x01, 0x00, 0x00, 0x1d, 0x0b, 0x0a, 0x00, 0x00, 0x01, + //0x0310: ...! (... .... .... + 0x00, 0x00, 0x02, 0x16, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x19, 0x00, 0x32, 0x04, 0x00, 0x02, + //0x0320: .... .... .... 2... + 0x00, 0x00, 0x32, 0x16, 0x1e, 0x79, 0x00, 0x02, 0x00, 0x00, 0x32, 0x16, 0x1e, 0x00, 0x00, 0x14, + //0x0330: ..2. .y.. ..2. .... + 0x00, 0x00, 0x34, 0x16, 0x1e, 0xc0, 0x00, 0x02, 0x00, 0x00, 0x34, 0x16, 0x1e, 0xe9, 0x00, 0x02, + //0x0340: ..4. .... ..4. .... + 0x00, 0x00, 0x32, 0x16, 0x28, 0x68, 0x00, 0x37, 0x00, 0x00, 0x35, 0x21, 0x00, 0x63, 0x00, 0x02, + //0x0350: ..2. (h.7 ..5! .c.. + 0x00, 0x00, 0x32, 0x16, 0x28, 0x00, 0x00, 0x03, 0x00, 0x00, 0x32, 0x16, 0x1e, 0xa2, 0x00, 0x02, + //0x0360: ..2. (... ..2. .... + 0x00, 0x00, 0x34, 0x16, 0x1e, 0x39, 0x00, 0x02, 0x00, 0x00, 0x34, 0x16, 0x1e, 0x00, 0x00, 0x02, + //0x0370: ..4. .9.. ..4. .... + 0x00, 0x00, 0x36, 0x00, 0x00, 0x48, 0x00, 0x03, 0x00, 0x00, 0x37, 0x2c, 0x00, 0x00, 0x00, 0x02, + //0x0380: ..6. .H.. ..7, .... + 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x0e, 0x16, 0x00, 0x02, 0x00, 0x02, //0x0390: .... .... .... .... - 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x0e, 0x16, 0x00, 0x2c, 0x01, 0x01, 0x00, 0x00, 0x0a, 0x16, - //0x03a0: .... .... .,.. .... - 0x1e, 0xae, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x16, 0x14, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0b, 0x0b, - //0x03b0: .... .... .... .... - 0x14, 0x00, 0x00, 0x32, 0x14, 0x00, 0x0b, 0x0b, 0x1e, 0x00, 0x00, 0x32, 0x14, 0x00, 0x0b, 0x16, - //0x03c0: ...2 .... ...2 .... - 0x14, 0x00, 0x00, 0x32, 0x14, 0x00, 0x0e, 0x21, 0x28, 0x00, 0x00, 0x32, 0x14, 0x00, 0xff, 0x49, - //0x03d0: ...2 ...! (..2 ...I - 0x4e, 0x53, 0x54, 0x41, 0x4c, 0x4c, 0x2e, 0x44, 0x41, 0x54, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, - //0x03e0: NSTA LL.D AT.D REAM - 0x57, 0x45, 0x42, 0x2e, 0x43, 0x30, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, - //0x03f0: WEB. C02. DREA MWEB - 0x2e, 0x56, 0x30, 0x30, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x56, 0x39, - //0x0400: .V00 .DRE AMWE B.V9 - 0x39, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, 0x32, 0x00, 0x44, - //0x0410: 9.DR EAMW EB.G 02.D - 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, 0x38, 0x00, 0x44, 0x52, 0x45, 0x41, - //0x0420: REAM WEB. G08. DREA - 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, 0x34, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, - //0x0430: MWEB .G04 .DRE AMWE - 0x42, 0x2e, 0x47, 0x30, 0x35, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, - //0x0440: B.G0 5.DR EAMW EB.G - 0x30, 0x36, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, 0x34, 0x00, - //0x0450: 06.D REAM WEB. G14. - 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x35, 0x31, 0x00, 0x44, 0x52, 0x45, - //0x0460: DREA MWEB .T51 .DRE - 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x38, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, - //0x0470: AMWE B.T8 2.DR EAMW - 0x45, 0x42, 0x2e, 0x54, 0x38, 0x33, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, - //0x0480: EB.T 83.D REAM WEB. - 0x56, 0x4f, 0x4c, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, 0x33, - //0x0490: VOL. DREA MWEB .G13 - 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, 0x35, 0x00, 0x44, 0x52, - //0x04a0: .DRE AMWE B.G1 5.DR - 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x30, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, - //0x04b0: EAMW EB.I 00.D REAM - 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, - //0x04c0: WEB. I01. DREA MWEB - 0x2e, 0x49, 0x30, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, - //0x04d0: .I02 .DRE AMWE B.I0 - 0x33, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x34, 0x00, 0x44, - //0x04e0: 3.DR EAMW EB.I 04.D - 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x35, 0x00, 0x44, 0x52, 0x45, 0x41, - //0x04f0: REAM WEB. I05. DREA - 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x36, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, - //0x0500: MWEB .I06 .DRE AMWE - 0x42, 0x2e, 0x49, 0x30, 0x37, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x50, - //0x0510: B.I0 7.DR EAMW EB.P - 0x41, 0x4c, 0x00, 0x00, 0x01, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x7c, 0xc4, 0xf0, - //0x0520: AL.. ...@ .... .|.. - 0x00, 0x22, 0x01, 0x02, 0x00, 0x2c, 0x00, 0x94, 0xc4, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, - //0x0530: .".. .,.. ...@ .... - 0x00, 0xa0, 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x7c, 0xc4, 0x00, - //0x0540: .... ...@ .... .|.. - 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0xee, 0x00, 0x02, 0x01, 0x04, - //0x0550: .@.. .... .... .... - 0x00, 0x2c, 0x00, 0xc8, 0xc4, 0x68, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x2c, 0x00, 0xcc, 0xc4, 0x18, - //0x0560: .,.. .h.| ..., .... - 0x01, 0x34, 0x01, 0x04, 0x00, 0x2c, 0x00, 0xb0, 0xc4, 0x68, 0x00, 0xd8, 0x00, 0x8a, 0x00, 0xc0, - //0x0570: .4.. .,.. .h.. .... - 0x00, 0xd0, 0xc4, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x7c, 0xc4, 0x00, 0x00, 0x40, - //0x0580: .... .@.. ...| ...@ - 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x45, 0x58, 0x49, 0x54, 0x20, 0x20, 0x20, - //0x0590: .... .... .EXI T - 0x20, 0x20, 0x20, 0x48, 0x45, 0x4c, 0x50, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x49, 0x53, - //0x05a0: H ELP LIS - 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x45, 0x41, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, - //0x05b0: T R EAD - 0x20, 0x4c, 0x4f, 0x47, 0x4f, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x45, 0x59, 0x53, 0x20, - //0x05c0: LOG ON K EYS - 0x20, 0x20, 0x20, 0x20, 0x20, 0x01, 0x00, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x20, 0x20, - //0x05d0: ..P UBLI C - 0x20, 0x20, 0x20, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, - //0x05e0: P UBLI C .. - 0x00, 0x42, 0x4c, 0x41, 0x43, 0x4b, 0x44, 0x52, 0x41, 0x47, 0x4f, 0x4e, 0x20, 0x52, 0x59, 0x41, - //0x05f0: .BLA CKDR AGON RYA - 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x48, 0x45, 0x4e, 0x44, 0x52, - //0x0600: N ...H ENDR - 0x49, 0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x4f, 0x55, 0x49, 0x53, 0x20, 0x20, 0x20, 0x20, - //0x0610: IX L OUIS - 0x20, 0x20, 0x00, 0x00, 0x00, 0x53, 0x45, 0x50, 0x54, 0x49, 0x4d, 0x55, 0x53, 0x20, 0x20, 0x20, - //0x0620: .. .SEP TIMU S - 0x20, 0x42, 0x45, 0x43, 0x4b, 0x45, 0x54, 0x54, 0x20, 0x20, 0x20, 0x20, 0x00, 0xff, 0xff, 0x20, - //0x0630: BEC KETT ... - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x22, 0x52, 0x4f, - //0x0640: ."RO - 0x4f, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x22, 0x20, 0x20, 0x20, 0x20, - //0x0650: OT ." - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x30, 0x30, 0x30, 0x30, 0x00, 0x30, 0x30, - //0x0660: .000 0.00 - 0x00, 0xba, 0x00, 0xca, 0x00, 0x9d, 0x00, 0xad, 0x00, 0x1c, 0xc8, 0xf3, 0x00, 0x03, 0x01, 0x83, + 0x00, 0x00, 0x0e, 0x16, 0x00, 0x2c, 0x01, 0x01, 0x00, 0x00, 0x0a, 0x16, 0x1e, 0xae, 0x00, 0x00, + //0x03a0: .... .,.. .... .... + 0x00, 0x00, 0x0c, 0x16, 0x14, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0b, 0x0b, 0x14, 0x00, 0x00, 0x32, + //0x03b0: .... .... .... ...2 + 0x14, 0x00, 0x0b, 0x0b, 0x1e, 0x00, 0x00, 0x32, 0x14, 0x00, 0x0b, 0x16, 0x14, 0x00, 0x00, 0x32, + //0x03c0: .... ...2 .... ...2 + 0x14, 0x00, 0x0e, 0x21, 0x28, 0x00, 0x00, 0x32, 0x14, 0x00, 0xff, 0x49, 0x4e, 0x53, 0x54, 0x41, + //0x03d0: ...! (..2 ...I NSTA + 0x4c, 0x4c, 0x2e, 0x44, 0x41, 0x54, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, + //0x03e0: LL.D AT.D REAM WEB. + 0x43, 0x30, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x56, 0x30, 0x30, + //0x03f0: C02. DREA MWEB .V00 + 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x56, 0x39, 0x39, 0x00, 0x44, 0x52, + //0x0400: .DRE AMWE B.V9 9.DR + 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x0410: EAMW EB.G 02.D REAM + 0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, 0x38, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, + //0x0420: WEB. G08. DREA MWEB + 0x2e, 0x47, 0x30, 0x34, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, + //0x0430: .G04 .DRE AMWE B.G0 + 0x35, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, 0x36, 0x00, 0x44, + //0x0440: 5.DR EAMW EB.G 06.D + 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, 0x34, 0x00, 0x44, 0x52, 0x45, 0x41, + //0x0450: REAM WEB. G14. DREA + 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x35, 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, + //0x0460: MWEB .T51 .DRE AMWE + 0x42, 0x2e, 0x54, 0x38, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, + //0x0470: B.T8 2.DR EAMW EB.T + 0x38, 0x33, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x56, 0x4f, 0x4c, 0x00, + //0x0480: 83.D REAM WEB. VOL. + 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, 0x33, 0x00, 0x44, 0x52, 0x45, + //0x0490: DREA MWEB .G13 .DRE + 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, 0x35, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, + //0x04a0: AMWE B.G1 5.DR EAMW + 0x45, 0x42, 0x2e, 0x49, 0x30, 0x30, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, + //0x04b0: EB.I 00.D REAM WEB. + 0x49, 0x30, 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x32, + //0x04c0: I01. DREA MWEB .I02 + 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x33, 0x00, 0x44, 0x52, + //0x04d0: .DRE AMWE B.I0 3.DR + 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x34, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x04e0: EAMW EB.I 04.D REAM + 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x35, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, + //0x04f0: WEB. I05. DREA MWEB + 0x2e, 0x49, 0x30, 0x36, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, + //0x0500: .I06 .DRE AMWE B.I0 + 0x37, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x50, 0x41, 0x4c, 0x00, 0x00, + //0x0510: 7.DR EAMW EB.P AL.. + 0x01, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x7c, 0xc4, 0xf0, 0x00, 0x22, 0x01, 0x02, + //0x0520: ...@ .... .|.. .".. + 0x00, 0x2c, 0x00, 0x94, 0xc4, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, + //0x0530: .,.. ...@ .... .... + 0xff, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x7c, 0xc4, 0x00, 0x00, 0x40, 0x01, 0x00, + //0x0540: ...@ .... .|.. .@.. + 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0xee, 0x00, 0x02, 0x01, 0x04, 0x00, 0x2c, 0x00, 0xc8, + //0x0550: .... .... .... .,.. + 0xc4, 0x68, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x2c, 0x00, 0xcc, 0xc4, 0x18, 0x01, 0x34, 0x01, 0x04, + //0x0560: .h.| ..., .... .4.. + 0x00, 0x2c, 0x00, 0xb0, 0xc4, 0x68, 0x00, 0xd8, 0x00, 0x8a, 0x00, 0xc0, 0x00, 0xd0, 0xc4, 0x11, + //0x0570: .,.. .h.. .... .... + 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x7c, 0xc4, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, + //0x0580: .@.. ...| ...@ .... + 0x00, 0xa0, 0xca, 0xff, 0xff, 0x45, 0x58, 0x49, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x48, + //0x0590: .... .EXI T H + 0x45, 0x4c, 0x50, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x49, 0x53, 0x54, 0x20, 0x20, 0x20, + //0x05a0: ELP LIS T + 0x20, 0x20, 0x20, 0x52, 0x45, 0x41, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x4f, 0x47, + //0x05b0: R EAD LOG + 0x4f, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x45, 0x59, 0x53, 0x20, 0x20, 0x20, 0x20, 0x20, + //0x05c0: ON K EYS + 0x20, 0x01, 0x00, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, + //0x05d0: ..P UBLI C P + 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x42, 0x4c, 0x41, + //0x05e0: UBLI C .. .BLA + 0x43, 0x4b, 0x44, 0x52, 0x41, 0x47, 0x4f, 0x4e, 0x20, 0x52, 0x59, 0x41, 0x4e, 0x20, 0x20, 0x20, + //0x05f0: CKDR AGON RYA N + 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x48, 0x45, 0x4e, 0x44, 0x52, 0x49, 0x58, 0x20, 0x20, + //0x0600: ...H ENDR IX + 0x20, 0x20, 0x20, 0x4c, 0x4f, 0x55, 0x49, 0x53, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, + //0x0610: L OUIS .. + 0x00, 0x53, 0x45, 0x50, 0x54, 0x49, 0x4d, 0x55, 0x53, 0x20, 0x20, 0x20, 0x20, 0x42, 0x45, 0x43, + //0x0620: .SEP TIMU S BEC + 0x4b, 0x45, 0x54, 0x54, 0x20, 0x20, 0x20, 0x20, 0x00, 0xff, 0xff, 0x20, 0x20, 0x20, 0x20, 0x20, + //0x0630: KETT ... + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x22, 0x52, 0x4f, 0x4f, 0x54, 0x20, 0x20, + //0x0640: ."RO OT + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + //0x0650: ." + 0x20, 0x20, 0x20, 0x20, 0x00, 0x30, 0x30, 0x30, 0x30, 0x00, 0x30, 0x30, 0x00, 0xba, 0x00, 0xca, + //0x0660: .000 0.00 .... + 0x00, 0x9d, 0x00, 0xad, 0x00, 0x1c, 0xc8, 0xf3, 0x00, 0x03, 0x01, 0x83, 0x00, 0x93, 0x00, 0x18, //0x0670: .... .... .... .... - 0x00, 0x93, 0x00, 0x18, 0xc8, 0x0c, 0x01, 0x1c, 0x01, 0xa8, 0x00, 0xb8, 0x00, 0x50, 0xc7, 0x00, - //0x0680: .... .... .... .P.. - 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x77, 0x00, 0xae, 0x00, 0x52, - //0x0690: .@.. .... ...w ...R - 0x00, 0x80, 0x00, 0x34, 0xc8, 0x46, 0x00, 0x89, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0x80, 0xc8, 0xbc, - //0x06a0: ...4 .F.. .>.o .... - 0x00, 0xfa, 0x00, 0x44, 0x00, 0x98, 0x00, 0x4c, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, - //0x06b0: ...D ...L ...@ .... - 0x00, 0xa0, 0xca, 0xff, 0xff, 0x77, 0x00, 0xae, 0x00, 0x52, 0x00, 0x80, 0x00, 0x44, 0xc8, 0x46, - //0x06c0: .... .w.. .R.. .D.F - 0x00, 0x8b, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0x50, 0xc8, 0xec, 0x00, 0xfc, 0x00, 0x70, 0x00, 0x80, - //0x06d0: ...> .o.P .... .p.. - 0x00, 0x48, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x0d, - //0x06e0: .H.. .@.. .... .... - 0x0a, 0x0d, 0x0a, 0x24, 0x81, 0x00, 0xb8, 0x00, 0x52, 0x00, 0x80, 0x00, 0xc0, 0xc8, 0x50, 0x00, - //0x06f0: ...$ .... R... ..P. - 0x93, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0x80, 0xc8, 0xb7, 0x00, 0xfa, 0x00, 0x3e, 0x00, 0x6f, 0x00, - //0x0700: ..>. o... .... >.o. - 0xc4, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x53, 0x50, - //0x0710: .... @... .... ..SP - 0x45, 0x45, 0x43, 0x48, 0x52, 0x32, 0x34, 0x43, 0x30, 0x30, 0x30, 0x35, 0x2e, 0x52, 0x41, 0x57, - //0x0720: EECH R24C 0005 .RAW - 0x00, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x20, 0x4e, 0x41, 0x4d, 0x45, 0x20, 0x4f, 0x4e, 0x45, - //0x0730: .OBJ ECT NAME ONE + 0xc8, 0x0c, 0x01, 0x1c, 0x01, 0xa8, 0x00, 0xb8, 0x00, 0x50, 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, + //0x0680: .... .... .P.. .@.. + 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x77, 0x00, 0xae, 0x00, 0x52, 0x00, 0x80, 0x00, 0x34, + //0x0690: .... ...w ...R ...4 + 0xc8, 0x46, 0x00, 0x89, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0x80, 0xc8, 0xbc, 0x00, 0xfa, 0x00, 0x44, + //0x06a0: .F.. .>.o .... ...D + 0x00, 0x98, 0x00, 0x4c, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, + //0x06b0: ...L ...@ .... .... + 0xff, 0x77, 0x00, 0xae, 0x00, 0x52, 0x00, 0x80, 0x00, 0x44, 0xc8, 0x46, 0x00, 0x8b, 0x00, 0x3e, + //0x06c0: .w.. .R.. .D.F ...> + 0x00, 0x6f, 0x00, 0x50, 0xc8, 0xec, 0x00, 0xfc, 0x00, 0x70, 0x00, 0x80, 0x00, 0x48, 0xc8, 0x00, + //0x06d0: .o.P .... .p.. .H.. + 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x0d, 0x0a, 0x0d, 0x0a, 0x24, + //0x06e0: .@.. .... .... ...$ + 0x81, 0x00, 0xb8, 0x00, 0x52, 0x00, 0x80, 0x00, 0xc0, 0xc8, 0x50, 0x00, 0x93, 0x00, 0x3e, 0x00, + //0x06f0: .... R... ..P. ..>. + 0x6f, 0x00, 0x80, 0xc8, 0xb7, 0x00, 0xfa, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0xc4, 0xc8, 0x00, 0x00, + //0x0700: o... .... >.o. .... + 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x53, 0x50, 0x45, 0x45, 0x43, 0x48, + //0x0710: @... .... ..SP EECH + 0x52, 0x32, 0x34, 0x43, 0x30, 0x30, 0x30, 0x35, 0x2e, 0x52, 0x41, 0x57, 0x00, 0x4f, 0x42, 0x4a, + //0x0720: R24C 0005 .RAW .OBJ + 0x45, 0x43, 0x54, 0x20, 0x4e, 0x41, 0x4d, 0x45, 0x20, 0x4f, 0x4e, 0x45, 0x20, 0x20, 0x20, 0x20, + //0x0730: ECT NAME ONE 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x0740: - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x10, 0x12, 0x12, 0x11, 0x10, 0x10, - //0x0750: ... .... - 0x10, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, - //0x0760: .... .... .... .... - 0x02, 0x02, 0x44, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - //0x0770: ..D: .... .... .... + 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x10, 0x12, 0x12, 0x11, 0x10, 0x10, 0x10, 0x01, 0x01, 0x01, + //0x0750: ... .... .... + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x44, 0x3a, + //0x0760: .... .... .... ..D: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x0770: .... .... .... .... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, //0x0780: .... .... .... .... - 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, //0x0790: .... .... .... .... - 0x00, 0x00, 0x05, 0x00, 0x03, 0x02, 0x04, 0x01, 0x0a, 0x09, 0x08, 0x06, 0x0b, 0x04, 0x07, 0x07, + 0x03, 0x02, 0x04, 0x01, 0x0a, 0x09, 0x08, 0x06, 0x0b, 0x04, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, //0x07a0: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x07b0: .... .... .... .... @@ -11191,33 +11191,33 @@ void DreamGenContext::__start() { //0x0810: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0820: .... .... .... .... - 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x0830: .... .... .... .... - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x0840: .... .... .... .... - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x0850: .... .... .... .... - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, //0x0860: .... .... .... .... - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, //0x0870: .... .... .... .... - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, //0x0880: .... .... .... .... - 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, //0x0890: .... .... .... .... - 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - //0x08a0: .... .... .... .... - 0x01, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x30, 0x00, 0x44, 0x52, - //0x08b0: .DRE AMWE B.D0 0.DR - 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, - //0x08c0: EAMW EB.D 01.D REAM - 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, - //0x08d0: WEB. D02. DREA MWEB - 0x2e, 0x44, 0x30, 0x33, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, - //0x08e0: .D03 .DRE AMWE B.D0 - 0x34, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x35, 0x00, 0x44, - //0x08f0: 4.DR EAMW EB.D 05.D - 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x36, 0x00, 0x00, 0x00, 0x00, }; + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x44, 0x52, 0x45, + //0x08a0: .... .... .... .DRE + 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x30, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, + //0x08b0: AMWE B.D0 0.DR EAMW + 0x45, 0x42, 0x2e, 0x44, 0x30, 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, + //0x08c0: EB.D 01.D REAM WEB. + 0x44, 0x30, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x33, + //0x08d0: D02. DREA MWEB .D03 + 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x34, 0x00, 0x44, 0x52, + //0x08e0: .DRE AMWE B.D0 4.DR + 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x35, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x08f0: EAMW EB.D 05.D REAM + 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x36, 0x00, 0x00, 0x00, 0x00, }; ds.assign(src, src + sizeof(src)); dreamweb(); } diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h index a080410e6e..80768274d4 100644 --- a/engines/dreamweb/dreamgen.h +++ b/engines/dreamweb/dreamgen.h @@ -36,23 +36,23 @@ public: void __start(); #include "stubs.h" // Allow hand-reversed functions to have a signature different than void f() - static const uint16 offset_diarylist = 0x0671; - static const uint16 offset_discopslist = 0x06c5; - static const uint16 offset_money2poke = 0x066e; - static const uint16 offset_quitlist = 0x0545; - static const uint16 offset_commandline = 0x0731; - static const uint16 offset_keys = 0x05d5; - static const uint16 offset_rootdir = 0x064d; - static const uint16 offset_money1poke = 0x0669; - static const uint16 offset_comlist = 0x0599; - static const uint16 offset_opslist = 0x069b; - static const uint16 offset_destlist = 0x055b; - static const uint16 offset_speechfilename = 0x071e; - static const uint16 offset_openchangesize = 0x0523; - static const uint16 offset_operand1 = 0x063f; - static const uint16 offset_decidelist = 0x06f4; - static const uint16 offset_talklist = 0x0525; - static const uint16 offset_speechfile = 0x0724; + static const uint16 offset_openchangesize = 0x051f; + static const uint16 offset_rootdir = 0x0649; + static const uint16 offset_decidelist = 0x06f0; + static const uint16 offset_speechfile = 0x0720; + static const uint16 offset_commandline = 0x072d; + static const uint16 offset_comlist = 0x0595; + static const uint16 offset_operand1 = 0x063b; + static const uint16 offset_speechfilename = 0x071a; + static const uint16 offset_opslist = 0x0697; + static const uint16 offset_talklist = 0x0521; + static const uint16 offset_money2poke = 0x066a; + static const uint16 offset_discopslist = 0x06c1; + static const uint16 offset_keys = 0x05d1; + static const uint16 offset_quitlist = 0x0541; + static const uint16 offset_money1poke = 0x0665; + static const uint16 offset_diarylist = 0x066d; + static const uint16 offset_destlist = 0x0557; static const uint16 kStartvars = 0; static const uint16 kProgresspoints = 1; static const uint16 kWatchon = 2; @@ -356,117 +356,115 @@ public: static const uint16 kMapstore = 400; static const uint16 kCharset1 = 402; static const uint16 kTempcharset = 404; - static const uint16 kIcons1 = 406; - static const uint16 kIcons2 = 408; - static const uint16 kBuffers = 410; - static const uint16 kMainsprites = 412; - static const uint16 kBackdrop = 414; - static const uint16 kMapdata = 416; - static const uint16 kSounddata = 418; - static const uint16 kSounddata2 = 420; - static const uint16 kRecordspace = 422; - static const uint16 kFreedat = 424; - static const uint16 kSetdat = 426; - static const uint16 kReel1 = 428; - static const uint16 kReel2 = 430; - static const uint16 kReel3 = 432; - static const uint16 kRoomdesc = 434; - static const uint16 kFreedesc = 436; - static const uint16 kSetdesc = 438; - static const uint16 kBlockdesc = 440; - static const uint16 kSetframes = 442; - static const uint16 kFreeframes = 444; - static const uint16 kPeople = 446; - static const uint16 kReels = 448; - static const uint16 kCommandtext = 450; - static const uint16 kPuzzletext = 452; - static const uint16 kTraveltext = 454; - static const uint16 kTempgraphics = 456; - static const uint16 kTempgraphics2 = 458; - static const uint16 kTempgraphics3 = 460; - static const uint16 kTempsprites = 462; - static const uint16 kTextfile1 = 464; - static const uint16 kTextfile2 = 466; - static const uint16 kTextfile3 = 468; - static const uint16 kBlinkframe = 470; - static const uint16 kBlinkcount = 471; - static const uint16 kReasseschanges = 472; - static const uint16 kPointerspath = 473; - static const uint16 kManspath = 474; - static const uint16 kPointerfirstpath = 475; - static const uint16 kFinaldest = 476; - static const uint16 kDestination = 477; - static const uint16 kLinestartx = 478; - static const uint16 kLinestarty = 480; - static const uint16 kLineendx = 482; - static const uint16 kLineendy = 484; - static const uint16 kIncrement1 = 486; - static const uint16 kIncrement2 = 488; - static const uint16 kLineroutine = 490; - static const uint16 kLinepointer = 491; - static const uint16 kLinedirection = 492; - static const uint16 kLinelength = 493; - static const uint16 kLiftsoundcount = 494; - static const uint16 kEmmhandle = 495; - static const uint16 kEmmpageframe = 497; - static const uint16 kEmmhardwarepage = 499; - static const uint16 kCh0emmpage = 500; - static const uint16 kCh0offset = 502; - static const uint16 kCh0blockstocopy = 504; - static const uint16 kCh0playing = 506; - static const uint16 kCh0repeat = 507; - static const uint16 kCh0oldemmpage = 508; - static const uint16 kCh0oldoffset = 510; - static const uint16 kCh0oldblockstocopy = 512; - static const uint16 kCh1playing = 514; - static const uint16 kCh1emmpage = 515; - static const uint16 kCh1offset = 517; - static const uint16 kCh1blockstocopy = 519; - static const uint16 kCh1blocksplayed = 521; - static const uint16 kSoundbufferwrite = 523; - static const uint16 kSoundemmpage = 525; - static const uint16 kSpeechemmpage = 527; - static const uint16 kCurrentsample = 529; - static const uint16 kRoomssample = 530; - static const uint16 kGameerror = 531; - static const uint16 kHowmuchalloc = 532; - static const uint16 kReelroutines = 534; - static const uint16 kIdname = 991; - static const uint16 kCharacterset3 = 1003; - static const uint16 kSamplename = 1016; - static const uint16 kBasicsample = 1029; - static const uint16 kExtragraphics1 = 1042; - static const uint16 kIcongraphics8 = 1055; - static const uint16 kCityname = 1068; - static const uint16 kTravelgraphic1 = 1081; - static const uint16 kTravelgraphic2 = 1094; - static const uint16 kDiarygraphic = 1107; - static const uint16 kDiarytext = 1120; - static const uint16 kIntrotextname = 1133; - static const uint16 kEndtextname = 1146; - static const uint16 kVolumetabname = 1159; - static const uint16 kGungraphic = 1172; - static const uint16 kMonkface = 1185; - static const uint16 kTitle0graphics = 1198; - static const uint16 kTitle1graphics = 1211; - static const uint16 kTitle2graphics = 1224; - static const uint16 kTitle3graphics = 1237; - static const uint16 kTitle4graphics = 1250; - static const uint16 kTitle5graphics = 1263; - static const uint16 kTitle6graphics = 1276; - static const uint16 kTitle7graphics = 1289; - static const uint16 kPalettescreen = 1302; - static const uint16 kCurrentfile = 1627; - static const uint16 kRoomscango = 1938; - static const uint16 kRoompics = 1954; - static const uint16 kOplist = 1969; - static const uint16 kInputline = 1972; - static const uint16 kPresslist = 2100; - static const uint16 kSavenames = 2106; - static const uint16 kSavefiles = 2225; - static const uint16 kQuitrequested = 2316; - static const uint16 kSubtitles = 2317; - static const uint16 kForeignrelease = 2318; + static const uint16 kBuffers = 406; + static const uint16 kMainsprites = 408; + static const uint16 kBackdrop = 410; + static const uint16 kMapdata = 412; + static const uint16 kSounddata = 414; + static const uint16 kSounddata2 = 416; + static const uint16 kRecordspace = 418; + static const uint16 kFreedat = 420; + static const uint16 kSetdat = 422; + static const uint16 kReel1 = 424; + static const uint16 kReel2 = 426; + static const uint16 kReel3 = 428; + static const uint16 kRoomdesc = 430; + static const uint16 kFreedesc = 432; + static const uint16 kSetdesc = 434; + static const uint16 kBlockdesc = 436; + static const uint16 kSetframes = 438; + static const uint16 kFreeframes = 440; + static const uint16 kPeople = 442; + static const uint16 kReels = 444; + static const uint16 kCommandtext = 446; + static const uint16 kPuzzletext = 448; + static const uint16 kTraveltext = 450; + static const uint16 kTempgraphics = 452; + static const uint16 kTempgraphics2 = 454; + static const uint16 kTempgraphics3 = 456; + static const uint16 kTempsprites = 458; + static const uint16 kTextfile1 = 460; + static const uint16 kTextfile2 = 462; + static const uint16 kTextfile3 = 464; + static const uint16 kBlinkframe = 466; + static const uint16 kBlinkcount = 467; + static const uint16 kReasseschanges = 468; + static const uint16 kPointerspath = 469; + static const uint16 kManspath = 470; + static const uint16 kPointerfirstpath = 471; + static const uint16 kFinaldest = 472; + static const uint16 kDestination = 473; + static const uint16 kLinestartx = 474; + static const uint16 kLinestarty = 476; + static const uint16 kLineendx = 478; + static const uint16 kLineendy = 480; + static const uint16 kIncrement1 = 482; + static const uint16 kIncrement2 = 484; + static const uint16 kLineroutine = 486; + static const uint16 kLinepointer = 487; + static const uint16 kLinedirection = 488; + static const uint16 kLinelength = 489; + static const uint16 kLiftsoundcount = 490; + static const uint16 kEmmhandle = 491; + static const uint16 kEmmpageframe = 493; + static const uint16 kEmmhardwarepage = 495; + static const uint16 kCh0emmpage = 496; + static const uint16 kCh0offset = 498; + static const uint16 kCh0blockstocopy = 500; + static const uint16 kCh0playing = 502; + static const uint16 kCh0repeat = 503; + static const uint16 kCh0oldemmpage = 504; + static const uint16 kCh0oldoffset = 506; + static const uint16 kCh0oldblockstocopy = 508; + static const uint16 kCh1playing = 510; + static const uint16 kCh1emmpage = 511; + static const uint16 kCh1offset = 513; + static const uint16 kCh1blockstocopy = 515; + static const uint16 kCh1blocksplayed = 517; + static const uint16 kSoundbufferwrite = 519; + static const uint16 kSoundemmpage = 521; + static const uint16 kSpeechemmpage = 523; + static const uint16 kCurrentsample = 525; + static const uint16 kRoomssample = 526; + static const uint16 kGameerror = 527; + static const uint16 kHowmuchalloc = 528; + static const uint16 kReelroutines = 530; + static const uint16 kIdname = 987; + static const uint16 kCharacterset3 = 999; + static const uint16 kSamplename = 1012; + static const uint16 kBasicsample = 1025; + static const uint16 kExtragraphics1 = 1038; + static const uint16 kIcongraphics8 = 1051; + static const uint16 kCityname = 1064; + static const uint16 kTravelgraphic1 = 1077; + static const uint16 kTravelgraphic2 = 1090; + static const uint16 kDiarygraphic = 1103; + static const uint16 kDiarytext = 1116; + static const uint16 kIntrotextname = 1129; + static const uint16 kEndtextname = 1142; + static const uint16 kVolumetabname = 1155; + static const uint16 kGungraphic = 1168; + static const uint16 kMonkface = 1181; + static const uint16 kTitle0graphics = 1194; + static const uint16 kTitle1graphics = 1207; + static const uint16 kTitle2graphics = 1220; + static const uint16 kTitle3graphics = 1233; + static const uint16 kTitle4graphics = 1246; + static const uint16 kTitle5graphics = 1259; + static const uint16 kTitle6graphics = 1272; + static const uint16 kTitle7graphics = 1285; + static const uint16 kPalettescreen = 1298; + static const uint16 kCurrentfile = 1623; + static const uint16 kRoomscango = 1934; + static const uint16 kRoompics = 1950; + static const uint16 kOplist = 1965; + static const uint16 kInputline = 1968; + static const uint16 kPresslist = 2096; + static const uint16 kSavenames = 2102; + static const uint16 kSavefiles = 2221; + static const uint16 kQuitrequested = 2312; + static const uint16 kSubtitles = 2313; + static const uint16 kForeignrelease = 2314; static const uint16 kBlocktextdat = (0); static const uint16 kPersonframes = (0); static const uint16 kDebuglevel1 = (0); @@ -505,8 +503,8 @@ public: 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)+991-534); - 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)+991-534+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)+987-530); + 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)+987-530+68-0); static const uint16 kReellist = (0+(36*144)); static const uint16 kIntext = (0+(38*2)); static const uint16 kLengthofmap = (0+(66*60)); @@ -558,7 +556,7 @@ public: static const uint16 kInventx = (80); static const uint16 kMenux = (80+40); static const uint16 kHeaderlen = (96); - static const uint16 kLenofreelrouts = (991-534); + static const uint16 kLenofreelrouts = (987-530); void useWire(); void getNamePos(); diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp index a9cc1a9653..2902276476 100644 --- a/engines/dreamweb/dreamweb.cpp +++ b/engines/dreamweb/dreamweb.cpp @@ -63,10 +63,16 @@ DreamWebEngine::DreamWebEngine(OSystem *syst, const DreamWebGameDescription *gam _channel0 = 0; _channel1 = 0; + _icons1 = NULL; + _icons2 = NULL; + _language = gameDesc->desc.language; } DreamWebEngine::~DreamWebEngine() { + assert(_icons1 == NULL); + assert(_icons2 == NULL); + DebugMan.clearAllDebugChannels(); delete _console; } diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h index e0a55891ee..370342aa8a 100644 --- a/engines/dreamweb/dreamweb.h +++ b/engines/dreamweb/dreamweb.h @@ -42,6 +42,8 @@ namespace DreamGen { +#include "dreamweb/structs.h" + // These are for ReelRoutine::reelPointer, which is a callback field. const uint16 addr_backobject = 0xc170; const uint16 addr_mainman = 0xc138; @@ -128,6 +130,13 @@ public: void stopSound(uint8 channel); + DreamGen::Frame *icons1() const { return (DreamGen::Frame *)_icons1; } + DreamGen::Frame *icons2() const { return (DreamGen::Frame *)_icons2; } + void setIcons1(void *frames) { assert(_icons1 == NULL); _icons1 = frames; } + void setIcons2(void *frames) { assert(_icons2 == NULL); _icons2 = frames; } + void freeIcons1() { free(_icons1); _icons1 = NULL; } + void freeIcons2() { free(_icons2); _icons2 = NULL; } + private: void keyPressed(uint16 ascii); void setSpeed(uint speed); @@ -163,6 +172,9 @@ private: Audio::SoundHandle _channelHandle[2]; uint8 _channel0, _channel1; + void *_icons1; + void *_icons2; + DreamGen::DreamGenContext _context; }; diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h index 002f2ab8f2..db74c19055 100644 --- a/engines/dreamweb/runtime.h +++ b/engines/dreamweb/runtime.h @@ -300,9 +300,12 @@ public: void deallocateSegment(uint16 id) { SegmentMap::iterator i = _segments.find(id); - assert(i != _segments.end()); - _segments.erase(i); - _freeSegments.push_back(id); + if(i != _segments.end()) { + _segments.erase(i); + _freeSegments.push_back(id); + } else { + debug("Deallocating non existent segment! Client code should be fixed."); + } } inline void _cmp(uint8 a, uint8 b) { diff --git a/engines/dreamweb/structs.h b/engines/dreamweb/structs.h index 7f14fa4ae5..5496965155 100644 --- a/engines/dreamweb/structs.h +++ b/engines/dreamweb/structs.h @@ -20,6 +20,9 @@ * */ +#ifndef DREAMWEB_STRUCTS_H +#define DREAMWEB_STRUCTS_H + #include "common/endian.h" #include "common/rect.h" @@ -285,3 +288,5 @@ struct Atmosphere { uint8 _repeat; }; +#endif + diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp index 939b358404..f67547c934 100644 --- a/engines/dreamweb/stubs.cpp +++ b/engines/dreamweb/stubs.cpp @@ -640,8 +640,8 @@ void DreamGenContext::dreamweb() { } done: // The engine will need some cleaner finalization, let's put it here for now getRidOfAll(); - deallocateMem(data.word(kIcons1)); - deallocateMem(data.word(kIcons2)); + engine->freeIcons1(); + engine->freeIcons2(); } bool DreamGenContext::quitRequested() { @@ -746,12 +746,14 @@ uint8 *DreamGenContext::textUnder() { return getSegment(data.word(kBuffers)).ptr(kTextunder, 0); } -uint16 DreamGenContext::standardLoad(const char *fileName) { +uint16 DreamGenContext::standardLoad(const char *fileName, uint16 *outSizeInBytes) { FileHeader header; engine->openFile(fileName); engine->readFromFile((uint8 *)&header, sizeof(FileHeader)); uint16 sizeInBytes = header.len(0); + if (outSizeInBytes) + *outSizeInBytes = sizeInBytes; uint16 result = allocateMem((sizeInBytes + 15) / 16); engine->readFromFile(getSegment(result).ptr(0, 0), sizeInBytes); engine->closeFile(); @@ -759,7 +761,7 @@ uint16 DreamGenContext::standardLoad(const char *fileName) { } void DreamGenContext::standardLoad() { - ax = standardLoad((const char *)cs.ptr(dx, 0)); + ax = standardLoad((const char *)cs.ptr(dx, 0), NULL); } void DreamGenContext::loadIntoTemp() { @@ -2465,8 +2467,21 @@ void DreamGenContext::loadRoomsSample() { void DreamGenContext::readSetData() { data.word(kCharset1) = standardLoad("DREAMWEB.C00"); - data.word(kIcons1) = standardLoad("DREAMWEB.G00"); - data.word(kIcons2) = standardLoad("DREAMWEB.G01"); + + uint16 icons1SizeInBytes; + uint16 tempIcons1 = standardLoad("DREAMWEB.G00", &icons1SizeInBytes); + void *icons1Buffer = malloc(icons1SizeInBytes); + memcpy(icons1Buffer, getSegment(tempIcons1).ptr(0, 0), icons1SizeInBytes); + deallocateMem(tempIcons1); + engine->setIcons1(icons1Buffer); + + uint16 icons2SizeInBytes; + uint16 tempIcons2 = standardLoad("DREAMWEB.G01", &icons2SizeInBytes); + void *icons2Buffer = malloc(icons2SizeInBytes); + memcpy(icons2Buffer, getSegment(tempIcons2).ptr(0, 0), icons2SizeInBytes); + deallocateMem(tempIcons2); + engine->setIcons2(icons2Buffer); + data.word(kMainsprites) = standardLoad("DREAMWEB.S00"); data.word(kPuzzletext) = standardLoad("DREAMWEB.T80"); data.word(kCommandtext) = standardLoad("DREAMWEB.T84"); @@ -2494,11 +2509,11 @@ Frame * DreamGenContext::tempGraphics3() { } Frame * DreamGenContext::icons1() { - return (Frame *)getSegment(data.word(kIcons1)).ptr(0, 0); + return engine->icons1(); } Frame * DreamGenContext::icons2() { - return (Frame *)getSegment(data.word(kIcons2)).ptr(0, 0); + return engine->icons2(); } void DreamGenContext::playChannel0(uint8 index, uint8 repeat) { diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h index 926434ec3b..83e375d625 100644 --- a/engines/dreamweb/stubs.h +++ b/engines/dreamweb/stubs.h @@ -32,7 +32,7 @@ void allocateWork(); void clearWork(); void standardLoad(); - uint16 standardLoad(const char *fileName); // Returns a segment handle which needs to be freed with deallocatemem for symmetry + uint16 standardLoad(const char *fileName, uint16 *outSizeInBytes = NULL); // Returns a segment handle which needs to be freed with deallocatemem for symmetry void loadIntoTemp(); void loadIntoTemp2(); void loadIntoTemp3(); -- cgit v1.2.3