DREAMWEB: Move pressList out of the data blob, and remove loads of unused global variables from the data blob

This commit is contained in:
Filippos Karapetis 2011-12-26 15:03:36 +02:00
parent 047a9dc19d
commit e311f678b9
5 changed files with 240 additions and 241 deletions

View File

@ -52,6 +52,8 @@ p = parser(skip_binary_data = [
'openchangesize', 'openchangesize',
'roompics', 'roompics',
'roomscango', 'roomscango',
'oplist',
'presslist',
# keypad.asm # keypad.asm
'keypadlist', 'keypadlist',
'symbollist', 'symbollist',
@ -184,6 +186,29 @@ p = parser(skip_binary_data = [
'savesource', 'savesource',
'savex', 'savex',
'savey', 'savey',
'persondata',
'talknum',
'saidno',
'prioritydep',
'currentkey2',
'mustload',
'answered',
'slotdata',
'thisslot',
'slotflags',
'numberinroom',
'currentcel',
'oldselection',
'stopwalking',
'mouseon',
'played',
'timer1',
'timer2',
'timer3',
'wholetimer',
'timer1to',
'timer2to',
'timer3to',
# vgagrafx.asm # vgagrafx.asm
'cityname', 'cityname',
'extragraphics1', 'extragraphics1',

View File

@ -61,6 +61,9 @@ class DreamBase : public SegmentManager {
protected: protected:
DreamWeb::DreamWebEngine *engine; DreamWeb::DreamWebEngine *engine;
// from keypad.cpp
uint8 _pressList[6];
// from newplace.cpp // from newplace.cpp
uint8 _roomsCanGo[16]; uint8 _roomsCanGo[16];

View File

@ -367,7 +367,7 @@ dirroot:
si = offset_rootdir; si = offset_rootdir;
_inc(si); _inc(si);
es = cs; es = cs;
di = 462; di = 436;
_inc(di); _inc(di);
cx = 12; cx = 12;
_movsb(cx, true); _movsb(cx, true);
@ -396,7 +396,7 @@ void DreamGenContext::read() {
return; return;
okcom: okcom:
es = cs; es = cs;
di = 462; di = 436;
ax = data.word(kTextfile1); ax = data.word(kTextfile1);
data.word(kMonsource) = ax; data.word(kMonsource) = ax;
ds = ax; ds = ax;
@ -526,7 +526,7 @@ keyok2:
ds = cs; ds = cs;
si = offset_operand1+1; si = offset_operand1+1;
es = cs; es = cs;
di = 462+1; di = 436+1;
cx = 12; cx = 12;
_movsb(cx, true); _movsb(cx, true);
monitorLogo(); monitorLogo();
@ -608,7 +608,7 @@ void DreamGenContext::parser() {
al = '='; al = '=';
_stosb(); _stosb();
ds = cs; ds = cs;
si = 540; si = 511;
notspace1: notspace1:
_lodsw(); _lodsw();
_cmp(al, 32); _cmp(al, 32);
@ -658,12 +658,12 @@ void DreamGenContext::__start() {
//0x0080: .... .... .... .... //0x0080: .... .... .... ....
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, 0x00, 0x00,
//0x0090: .... .... .... .... //0x0090: .... .... .... ....
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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//0x00a0: .... .... .... .... //0x00a0: .... .... .... ....
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, 0x00, 0x00,
//0x00b0: .... .... .... .... //0x00b0: .... .... .... ....
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//0x00c0: .... .... ... ... //0x00c0: .... .. .... ....
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, 0x00, 0x00,
//0x00d0: .... .... .... .... //0x00d0: .... .... .... ....
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, 0x00, 0x00,
@ -678,30 +678,30 @@ void DreamGenContext::__start() {
//0x0120: .... .... .... .... //0x0120: .... .... .... ....
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, 0x00, 0x00,
//0x0130: .... .... .... .... //0x0130: .... .... .... ....
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
//0x0140: .... .... .... .... //0x0140: .... .... .... ....
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
//0x0150: .... .... .... .... //0x0150: .... .... .... ....
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, 0xff, 0x17, 0x00, 0x00,
//0x0160: .... .... .... .... //0x0160: .... .... .... ....
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//0x0170: .... .... .... .... //0x0170: .... .... .... ....
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d,
//0x0180: .... .... .... .... //0x0180: .... .... ...D REAM
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x57, 0x45, 0x42, 0x2e, 0x56, 0x39, 0x39, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
//0x0190: .... .... .... .... //0x0190: WEB. V99.
0x00, 0x00, 0x00, 0xff, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x56, 0x39, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x22, 0x52, 0x4f, 0x4f, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20,
//0x01a0: .... .DRE AMWE B.V9 //0x01a0: ."R OOT
0x39, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x20, 0x20, 0x20, 0x00, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
//0x01b0: 9. . //0x01b0: . "
0x22, 0x52, 0x4f, 0x4f, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x22, 0x20, 0x20, 0x00, 0x0d, 0x0a, 0x0d, 0x0a, 0x24, 0x10, 0x12, 0x12, 0x11, 0x10, 0x10, 0x10, 0x01, 0x01,
//0x01c0: "ROO T ." //0x01c0: ... ..$. .... ....
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x0d, 0x0a, 0x0d, 0x0a, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x44,
//0x01d0: . .... //0x01d0: .... .... .... ...D
0x24, 0x10, 0x12, 0x12, 0x11, 0x10, 0x10, 0x10, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//0x01e0: $... .... .... .... //0x01e0: :... .... .... ....
0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x44, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//0x01f0: .... .... .D:. .... //0x01f0: .... .... .... ....
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, 0x00, 0x00,
//0x0200: .... .... .... .... //0x0200: .... .... .... ....
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, 0x00, 0x00,
@ -718,11 +718,7 @@ void DreamGenContext::__start() {
//0x0260: .... .... .... .... //0x0260: .... .... .... ....
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, 0x00, 0x00,
//0x0270: .... .... .... .... //0x0270: .... .... .... ....
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
//0x0280: .... .... .... ....
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
//0x0290: .... .... .... ....
0xff, 0xff, 0x00, 0x00, 0x00, };
ds.assign(src, src + sizeof(src)); ds.assign(src, src + sizeof(src));
dreamweb(); dreamweb();
} }

View File

@ -32,8 +32,8 @@
namespace DreamGen { namespace DreamGen {
static const uint16 offset_operand1 = 0x01b2; static const uint16 offset_rootdir = 0x01a6;
static const uint16 offset_rootdir = 0x01c0; static const uint16 offset_operand1 = 0x0198;
static const uint16 kStartvars = 0; static const uint16 kStartvars = 0;
static const uint16 kProgresspoints = 1; static const uint16 kProgresspoints = 1;
static const uint16 kWatchon = 2; static const uint16 kWatchon = 2;
@ -147,210 +147,185 @@ static const uint16 kArrowad = 139;
static const uint16 kCurrentkey = 141; static const uint16 kCurrentkey = 141;
static const uint16 kOldkey = 142; static const uint16 kOldkey = 142;
static const uint16 kUseddirection = 143; static const uint16 kUseddirection = 143;
static const uint16 kCurrentkey2 = 144; static const uint16 kTimercount = 144;
static const uint16 kTimercount = 145; static const uint16 kOldtimercount = 145;
static const uint16 kOldtimercount = 146; static const uint16 kMapx = 146;
static const uint16 kMapx = 147; static const uint16 kMapy = 147;
static const uint16 kMapy = 148; static const uint16 kNewscreen = 148;
static const uint16 kNewscreen = 149; static const uint16 kRyanx = 149;
static const uint16 kRyanx = 150; static const uint16 kRyany = 150;
static const uint16 kRyany = 151; static const uint16 kLastflag = 151;
static const uint16 kLastflag = 152; static const uint16 kOffsetx = 152;
static const uint16 kOffsetx = 153; static const uint16 kOffsety = 154;
static const uint16 kOffsety = 155; static const uint16 kCurrentob = 156;
static const uint16 kCurrentob = 157; static const uint16 kDestpos = 157;
static const uint16 kPrioritydep = 158; static const uint16 kReallocation = 158;
static const uint16 kDestpos = 159; static const uint16 kRoomnum = 159;
static const uint16 kReallocation = 160; static const uint16 kNowinnewroom = 160;
static const uint16 kRoomnum = 161; static const uint16 kResetmanxy = 161;
static const uint16 kNowinnewroom = 162; static const uint16 kNewlocation = 162;
static const uint16 kResetmanxy = 163; static const uint16 kAutolocation = 163;
static const uint16 kNewlocation = 164; static const uint16 kDoorcheck1 = 164;
static const uint16 kAutolocation = 165; static const uint16 kDoorcheck2 = 165;
static const uint16 kMustload = 166; static const uint16 kDoorcheck3 = 166;
static const uint16 kAnswered = 167; static const uint16 kDoorcheck4 = 167;
static const uint16 kSaidno = 168; static const uint16 kMousex = 168;
static const uint16 kDoorcheck1 = 169; static const uint16 kMousey = 170;
static const uint16 kDoorcheck2 = 170; static const uint16 kMousebutton = 172;
static const uint16 kDoorcheck3 = 171; static const uint16 kMousebutton1 = 174;
static const uint16 kDoorcheck4 = 172; static const uint16 kMousebutton2 = 176;
static const uint16 kMousex = 173; static const uint16 kMousebutton3 = 178;
static const uint16 kMousey = 175; static const uint16 kMousebutton4 = 180;
static const uint16 kMousebutton = 177; static const uint16 kOldbutton = 182;
static const uint16 kMousebutton1 = 179; static const uint16 kOldx = 184;
static const uint16 kMousebutton2 = 181; static const uint16 kOldy = 186;
static const uint16 kMousebutton3 = 183; static const uint16 kLastbutton = 188;
static const uint16 kMousebutton4 = 185; static const uint16 kOldpointerx = 190;
static const uint16 kOldbutton = 187; static const uint16 kOldpointery = 192;
static const uint16 kOldx = 189; static const uint16 kDelherex = 194;
static const uint16 kOldy = 191; static const uint16 kDelherey = 196;
static const uint16 kLastbutton = 193; static const uint16 kPointerxs = 198;
static const uint16 kOldpointerx = 195; static const uint16 kPointerys = 199;
static const uint16 kOldpointery = 197; static const uint16 kDelxs = 200;
static const uint16 kDelherex = 199; static const uint16 kDelys = 201;
static const uint16 kDelherey = 201; static const uint16 kPointerframe = 202;
static const uint16 kPointerxs = 203; static const uint16 kPointerpower = 203;
static const uint16 kPointerys = 204; static const uint16 kAuxpointerframe = 204;
static const uint16 kDelxs = 205; static const uint16 kPointermode = 205;
static const uint16 kDelys = 206; static const uint16 kPointerspeed = 206;
static const uint16 kPointerframe = 207; static const uint16 kPointercount = 207;
static const uint16 kPointerpower = 208; static const uint16 kInmaparea = 208;
static const uint16 kAuxpointerframe = 209; static const uint16 kTalkmode = 209;
static const uint16 kPointermode = 210; static const uint16 kTalkpos = 210;
static const uint16 kPointerspeed = 211; static const uint16 kCharacter = 211;
static const uint16 kPointercount = 212; static const uint16 kWatchdump = 212;
static const uint16 kInmaparea = 213; static const uint16 kLogonum = 213;
static const uint16 kSlotdata = 214; static const uint16 kOldlogonum = 214;
static const uint16 kThisslot = 215; static const uint16 kNetseg = 215;
static const uint16 kSlotflags = 216; static const uint16 kNetpoint = 217;
static const uint16 kTalkmode = 217; static const uint16 kCursorstate = 219;
static const uint16 kTalkpos = 218; static const uint16 kPressed = 220;
static const uint16 kCharacter = 219; static const uint16 kPresspointer = 221;
static const uint16 kPersondata = 220; static const uint16 kGraphicpress = 223;
static const uint16 kTalknum = 222; static const uint16 kPresscount = 224;
static const uint16 kNumberinroom = 223; static const uint16 kLightcount = 225;
static const uint16 kCurrentcel = 224; static const uint16 kFolderpage = 226;
static const uint16 kOldselection = 225; static const uint16 kDiarypage = 227;
static const uint16 kStopwalking = 226; static const uint16 kMenucount = 228;
static const uint16 kMouseon = 227; static const uint16 kSymboltopx = 229;
static const uint16 kPlayed = 228; static const uint16 kSymboltopnum = 230;
static const uint16 kTimer1 = 230; static const uint16 kSymboltopdir = 231;
static const uint16 kTimer2 = 231; static const uint16 kSymbolbotx = 232;
static const uint16 kTimer3 = 232; static const uint16 kSymbolbotnum = 233;
static const uint16 kWholetimer = 233; static const uint16 kSymbolbotdir = 234;
static const uint16 kTimer1to = 235; static const uint16 kSymboltolight = 235;
static const uint16 kTimer2to = 236; static const uint16 kSymbol1 = 236;
static const uint16 kTimer3to = 237; static const uint16 kSymbol2 = 237;
static const uint16 kWatchdump = 238; static const uint16 kSymbol3 = 238;
static const uint16 kLogonum = 239; static const uint16 kSymbolnum = 239;
static const uint16 kOldlogonum = 240; static const uint16 kDumpx = 240;
static const uint16 kNetseg = 241; static const uint16 kDumpy = 242;
static const uint16 kNetpoint = 243; static const uint16 kWalkandexam = 244;
static const uint16 kCursorstate = 245; static const uint16 kWalkexamtype = 245;
static const uint16 kPressed = 246; static const uint16 kWalkexamnum = 246;
static const uint16 kPresspointer = 247; static const uint16 kCurslocx = 247;
static const uint16 kGraphicpress = 249; static const uint16 kCurslocy = 249;
static const uint16 kPresscount = 250; static const uint16 kCurpos = 251;
static const uint16 kLightcount = 251; static const uint16 kMonadx = 253;
static const uint16 kFolderpage = 252; static const uint16 kMonady = 255;
static const uint16 kDiarypage = 253; static const uint16 kMonsource = 257;
static const uint16 kMenucount = 254; static const uint16 kNumtodo = 259;
static const uint16 kSymboltopx = 255; static const uint16 kTimecount = 261;
static const uint16 kSymboltopnum = 256; static const uint16 kCounttotimed = 263;
static const uint16 kSymboltopdir = 257; static const uint16 kTimedseg = 265;
static const uint16 kSymbolbotx = 258; static const uint16 kTimedoffset = 267;
static const uint16 kSymbolbotnum = 259; static const uint16 kTimedy = 269;
static const uint16 kSymbolbotdir = 260; static const uint16 kTimedx = 270;
static const uint16 kSymboltolight = 261; static const uint16 kNeedtodumptimed = 271;
static const uint16 kSymbol1 = 262; static const uint16 kLoadingorsave = 272;
static const uint16 kSymbol2 = 263; static const uint16 kCurrentslot = 273;
static const uint16 kSymbol3 = 264; static const uint16 kCursorpos = 274;
static const uint16 kSymbolnum = 265; static const uint16 kColourpos = 275;
static const uint16 kDumpx = 266; static const uint16 kFadedirection = 276;
static const uint16 kDumpy = 268; static const uint16 kNumtofade = 277;
static const uint16 kWalkandexam = 270; static const uint16 kFadecount = 278;
static const uint16 kWalkexamtype = 271; static const uint16 kAddtogreen = 279;
static const uint16 kWalkexamnum = 272; static const uint16 kAddtored = 280;
static const uint16 kCurslocx = 273; static const uint16 kAddtoblue = 281;
static const uint16 kCurslocy = 275; static const uint16 kLastsoundreel = 282;
static const uint16 kCurpos = 277; static const uint16 kSpeechloaded = 284;
static const uint16 kMonadx = 279; static const uint16 kSpeechlength = 285;
static const uint16 kMonady = 281; static const uint16 kVolume = 287;
static const uint16 kMonsource = 283; static const uint16 kVolumeto = 288;
static const uint16 kNumtodo = 285; static const uint16 kVolumedirection = 289;
static const uint16 kTimecount = 287; static const uint16 kVolumecount = 290;
static const uint16 kCounttotimed = 289; static const uint16 kWongame = 291;
static const uint16 kTimedseg = 291; static const uint16 kLasthardkey = 292;
static const uint16 kTimedoffset = 293; static const uint16 kBufferin = 293;
static const uint16 kTimedy = 295; static const uint16 kBufferout = 295;
static const uint16 kTimedx = 296; static const uint16 kExtras = 297;
static const uint16 kNeedtodumptimed = 297; static const uint16 kWorkspace = 299;
static const uint16 kLoadingorsave = 298; static const uint16 kMapstore = 301;
static const uint16 kCurrentslot = 299; static const uint16 kCharset1 = 303;
static const uint16 kCursorpos = 300; static const uint16 kBuffers = 305;
static const uint16 kColourpos = 301; static const uint16 kMainsprites = 307;
static const uint16 kFadedirection = 302; static const uint16 kBackdrop = 309;
static const uint16 kNumtofade = 303; static const uint16 kMapdata = 311;
static const uint16 kFadecount = 304; static const uint16 kSounddata = 313;
static const uint16 kAddtogreen = 305; static const uint16 kSounddata2 = 315;
static const uint16 kAddtored = 306; static const uint16 kRecordspace = 317;
static const uint16 kAddtoblue = 307; static const uint16 kFreedat = 319;
static const uint16 kLastsoundreel = 308; static const uint16 kSetdat = 321;
static const uint16 kSpeechloaded = 310; static const uint16 kReel1 = 323;
static const uint16 kSpeechlength = 311; static const uint16 kReel2 = 325;
static const uint16 kVolume = 313; static const uint16 kReel3 = 327;
static const uint16 kVolumeto = 314; static const uint16 kRoomdesc = 329;
static const uint16 kVolumedirection = 315; static const uint16 kFreedesc = 331;
static const uint16 kVolumecount = 316; static const uint16 kSetdesc = 333;
static const uint16 kWongame = 317; static const uint16 kBlockdesc = 335;
static const uint16 kLasthardkey = 318; static const uint16 kSetframes = 337;
static const uint16 kBufferin = 319; static const uint16 kFreeframes = 339;
static const uint16 kBufferout = 321; static const uint16 kPeople = 341;
static const uint16 kExtras = 323; static const uint16 kReels = 343;
static const uint16 kWorkspace = 325; static const uint16 kCommandtext = 345;
static const uint16 kMapstore = 327; static const uint16 kPuzzletext = 347;
static const uint16 kCharset1 = 329; static const uint16 kTraveltext = 349;
static const uint16 kBuffers = 331; static const uint16 kTempgraphics = 351;
static const uint16 kMainsprites = 333; static const uint16 kTempgraphics2 = 353;
static const uint16 kBackdrop = 335; static const uint16 kTempgraphics3 = 355;
static const uint16 kMapdata = 337; static const uint16 kTempsprites = 357;
static const uint16 kSounddata = 339; static const uint16 kTextfile1 = 359;
static const uint16 kSounddata2 = 341; static const uint16 kTextfile2 = 361;
static const uint16 kRecordspace = 343; static const uint16 kTextfile3 = 363;
static const uint16 kFreedat = 345; static const uint16 kBlinkframe = 365;
static const uint16 kSetdat = 347; static const uint16 kBlinkcount = 366;
static const uint16 kReel1 = 349; static const uint16 kReasseschanges = 367;
static const uint16 kReel2 = 351; static const uint16 kPointerspath = 368;
static const uint16 kReel3 = 353; static const uint16 kManspath = 369;
static const uint16 kRoomdesc = 355; static const uint16 kPointerfirstpath = 370;
static const uint16 kFreedesc = 357; static const uint16 kFinaldest = 371;
static const uint16 kSetdesc = 359; static const uint16 kDestination = 372;
static const uint16 kBlockdesc = 361; static const uint16 kLinestartx = 373;
static const uint16 kSetframes = 363; static const uint16 kLinestarty = 375;
static const uint16 kFreeframes = 365; static const uint16 kLineendx = 377;
static const uint16 kPeople = 367; static const uint16 kLineendy = 379;
static const uint16 kReels = 369; static const uint16 kLinepointer = 381;
static const uint16 kCommandtext = 371; static const uint16 kLinedirection = 382;
static const uint16 kPuzzletext = 373; static const uint16 kLinelength = 383;
static const uint16 kTraveltext = 375; static const uint16 kCh0blockstocopy = 384;
static const uint16 kTempgraphics = 377; static const uint16 kCh0playing = 386;
static const uint16 kTempgraphics2 = 379; static const uint16 kCh0repeat = 387;
static const uint16 kTempgraphics3 = 381; static const uint16 kCh1playing = 388;
static const uint16 kTempsprites = 383; static const uint16 kCh1blockstocopy = 389;
static const uint16 kTextfile1 = 385; static const uint16 kSoundbufferwrite = 391;
static const uint16 kTextfile2 = 387; static const uint16 kCurrentsample = 393;
static const uint16 kTextfile3 = 389; static const uint16 kRoomssample = 394;
static const uint16 kBlinkframe = 391; static const uint16 kBasicsample = 395;
static const uint16 kBlinkcount = 392; static const uint16 kCurrentfile = 436;
static const uint16 kReasseschanges = 393; static const uint16 kInputline = 511;
static const uint16 kPointerspath = 394; static const uint16 kQuitrequested = 639;
static const uint16 kManspath = 395; static const uint16 kSubtitles = 640;
static const uint16 kPointerfirstpath = 396; static const uint16 kForeignrelease = 641;
static const uint16 kFinaldest = 397;
static const uint16 kDestination = 398;
static const uint16 kLinestartx = 399;
static const uint16 kLinestarty = 401;
static const uint16 kLineendx = 403;
static const uint16 kLineendy = 405;
static const uint16 kLinepointer = 407;
static const uint16 kLinedirection = 408;
static const uint16 kLinelength = 409;
static const uint16 kCh0blockstocopy = 410;
static const uint16 kCh0playing = 412;
static const uint16 kCh0repeat = 413;
static const uint16 kCh1playing = 414;
static const uint16 kCh1blockstocopy = 415;
static const uint16 kSoundbufferwrite = 417;
static const uint16 kCurrentsample = 419;
static const uint16 kRoomssample = 420;
static const uint16 kBasicsample = 421;
static const uint16 kCurrentfile = 462;
static const uint16 kOplist = 537;
static const uint16 kInputline = 540;
static const uint16 kPresslist = 668;
static const uint16 kQuitrequested = 674;
static const uint16 kSubtitles = 675;
static const uint16 kForeignrelease = 676;
static const uint16 kBlocktextdat = (0); static const uint16 kBlocktextdat = (0);
static const uint16 kPersonframes = (0); static const uint16 kPersonframes = (0);
static const uint16 kDebuglevel1 = (0); static const uint16 kDebuglevel1 = (0);

View File

@ -77,8 +77,8 @@ void DreamBase::showKeypad() {
bool DreamBase::isItRight(uint8 digit0, uint8 digit1, uint8 digit2, uint8 digit3) { bool DreamBase::isItRight(uint8 digit0, uint8 digit1, uint8 digit2, uint8 digit3) {
return digit0 == data.byte(kPresslist+0) && digit1 == data.byte(kPresslist+1) return digit0 == _pressList[0] && digit1 == _pressList[1]
&& digit2 == data.byte(kPresslist+2) && digit3 == data.byte(kPresslist+3); && digit2 == _pressList[2] && digit3 == _pressList[3];
} }
void DreamBase::addToPressList() { void DreamBase::addToPressList() {
@ -88,7 +88,7 @@ void DreamBase::addToPressList() {
if (pressed == 10) if (pressed == 10)
pressed = 0; pressed = 0;
data.byte(kPresslist + data.word(kPresspointer)) = pressed; _pressList[data.word(kPresspointer)] = pressed;
++data.word(kPresspointer); ++data.word(kPresspointer);
} }