mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-14 21:59:17 +00:00
DREAMWEB: Port 'talk' to C++. Remove decidelist and talklist offsets
This commit is contained in:
parent
0db0bf4504
commit
4fdaba7e5e
@ -52,7 +52,8 @@ p = parser(skip_binary_data = [
|
||||
# newplace.asm
|
||||
'destlist',
|
||||
# object.asm
|
||||
'invlist1', 'invlist1continued',
|
||||
'invlist1',
|
||||
'invlist1continued',
|
||||
'examlist',
|
||||
'withlist1',
|
||||
# saveload.asm
|
||||
@ -71,6 +72,7 @@ p = parser(skip_binary_data = [
|
||||
'gameinfo',
|
||||
'endgametext1',
|
||||
'savefiles',
|
||||
'decidelist',
|
||||
# sblaster.asm
|
||||
'dmaaddresses',
|
||||
# sprite.asm
|
||||
@ -81,6 +83,8 @@ p = parser(skip_binary_data = [
|
||||
'r0','r1','r2','r6','r8','r9','r10','r11','r12','r13','r14',
|
||||
'r20','r22','r23','r25','r26','r27','r28','r29',
|
||||
'r45','r46','r47','r52','r53','r55',
|
||||
#talk.asm
|
||||
'talklist',
|
||||
# titles.asm
|
||||
'introtextname',
|
||||
'title0graphics',
|
||||
@ -301,12 +305,12 @@ generator = cpp(context, "DreamGen", blacklist = [
|
||||
'facerightway',
|
||||
'fadecalculation',
|
||||
'fadedos',
|
||||
'fadefromwhite',
|
||||
'fadescreenup',
|
||||
'fadescreenups',
|
||||
'fadescreenuphalf',
|
||||
'fadescreendown',
|
||||
'fadescreendowns',
|
||||
'fadefromwhite',
|
||||
'fadetowhite',
|
||||
'fadeupmonfirst',
|
||||
'fadeupyellows',
|
||||
@ -663,6 +667,7 @@ generator = cpp(context, "DreamGen", blacklist = [
|
||||
'storeit',
|
||||
'switchryanoff',
|
||||
'switchryanon',
|
||||
'talk',
|
||||
'tattooman',
|
||||
'textforend',
|
||||
'textformonk',
|
||||
|
@ -2967,60 +2967,6 @@ dogetback:
|
||||
data.byte(kPickup) = 0;
|
||||
}
|
||||
|
||||
void DreamGenContext::talk() {
|
||||
STACK_CHECK;
|
||||
data.byte(kTalkpos) = 0;
|
||||
data.byte(kInmaparea) = 0;
|
||||
al = data.byte(kCommand);
|
||||
data.byte(kCharacter) = al;
|
||||
createPanel();
|
||||
showPanel();
|
||||
showMan();
|
||||
showExit();
|
||||
underTextLine();
|
||||
convIcons();
|
||||
startTalk();
|
||||
data.byte(kCommandtype) = 255;
|
||||
readMouse();
|
||||
showPointer();
|
||||
workToScreen();
|
||||
waittalk:
|
||||
delPointer();
|
||||
readMouse();
|
||||
animPointer();
|
||||
showPointer();
|
||||
vSync();
|
||||
dumpPointer();
|
||||
dumpTextLine();
|
||||
data.byte(kGetback) = 0;
|
||||
bx = offset_talklist;
|
||||
checkCoords();
|
||||
_cmp(data.byte(kQuitrequested), 0);
|
||||
if (!flags.z())
|
||||
goto finishtalk;
|
||||
_cmp(data.byte(kGetback), 0);
|
||||
if (flags.z())
|
||||
goto waittalk;
|
||||
finishtalk:
|
||||
bx = data.word(kPersondata);
|
||||
es = cs;
|
||||
_cmp(data.byte(kTalkpos), 4);
|
||||
if (flags.c())
|
||||
goto notnexttalk;
|
||||
al = es.byte(bx+7);
|
||||
_or(al, 128);
|
||||
es.byte(bx+7) = al;
|
||||
notnexttalk:
|
||||
redrawMainScrn();
|
||||
workToScreenM();
|
||||
_cmp(data.byte(kSpeechloaded), 1);
|
||||
if (!flags.z())
|
||||
return /* (nospeech) */;
|
||||
cancelCh1();
|
||||
data.byte(kVolumedirection) = -1;
|
||||
data.byte(kVolumeto) = 0;
|
||||
}
|
||||
|
||||
void DreamGenContext::startTalk() {
|
||||
STACK_CHECK;
|
||||
data.byte(kTalkmode) = 0;
|
||||
@ -3434,14 +3380,14 @@ void DreamGenContext::getDestInfo() {
|
||||
push(ax);
|
||||
dx = data;
|
||||
es = dx;
|
||||
si = 1655;
|
||||
si = 1581;
|
||||
_add(si, ax);
|
||||
cl = es.byte(si);
|
||||
ax = pop();
|
||||
push(cx);
|
||||
dx = data;
|
||||
es = dx;
|
||||
si = 1671;
|
||||
si = 1597;
|
||||
_add(si, ax);
|
||||
ax = pop();
|
||||
}
|
||||
@ -3493,7 +3439,7 @@ clearedlocations:
|
||||
bx = ax;
|
||||
dx = data;
|
||||
es = dx;
|
||||
_add(bx, 1655);
|
||||
_add(bx, 1581);
|
||||
es.byte(bx) = 0;
|
||||
}
|
||||
|
||||
@ -3529,7 +3475,7 @@ void DreamGenContext::execCommand() {
|
||||
es = cs;
|
||||
bx = offset_comlist;
|
||||
ds = cs;
|
||||
si = 1689;
|
||||
si = 1615;
|
||||
al = ds.byte(si);
|
||||
_cmp(al, 0);
|
||||
if (!flags.z())
|
||||
@ -3622,7 +3568,7 @@ dirroot:
|
||||
si = offset_rootdir;
|
||||
_inc(si);
|
||||
es = cs;
|
||||
di = 1344;
|
||||
di = 1312;
|
||||
_inc(di);
|
||||
cx = 12;
|
||||
_movsb(cx, true);
|
||||
@ -3724,7 +3670,7 @@ notyetassigned:
|
||||
push(bx);
|
||||
_add(bx, 2);
|
||||
ds = cs;
|
||||
si = 1689;
|
||||
si = 1615;
|
||||
checkpass:
|
||||
_lodsw();
|
||||
ah = es.byte(bx);
|
||||
@ -3795,7 +3741,7 @@ void DreamGenContext::read() {
|
||||
return;
|
||||
okcom:
|
||||
es = cs;
|
||||
di = 1344;
|
||||
di = 1312;
|
||||
ax = data.word(kTextfile1);
|
||||
data.word(kMonsource) = ax;
|
||||
ds = ax;
|
||||
@ -3925,7 +3871,7 @@ keyok2:
|
||||
ds = cs;
|
||||
si = offset_operand1+1;
|
||||
es = cs;
|
||||
di = 1344+1;
|
||||
di = 1312+1;
|
||||
cx = 12;
|
||||
_movsb(cx, true);
|
||||
monitorLogo();
|
||||
@ -4052,7 +3998,7 @@ void DreamGenContext::parser() {
|
||||
al = '=';
|
||||
_stosb();
|
||||
ds = cs;
|
||||
si = 1689;
|
||||
si = 1615;
|
||||
notspace1:
|
||||
_lodsw();
|
||||
_cmp(al, 32);
|
||||
@ -6025,7 +5971,7 @@ void DreamGenContext::getNamePos() {
|
||||
_mul(cx);
|
||||
dx = data;
|
||||
es = dx;
|
||||
bx = 1823;
|
||||
bx = 1749;
|
||||
_add(bx, ax);
|
||||
al = data.byte(kCursorpos);
|
||||
ah = 0;
|
||||
@ -6121,7 +6067,7 @@ void DreamGenContext::showNames() {
|
||||
STACK_CHECK;
|
||||
dx = data;
|
||||
es = dx;
|
||||
si = 1823+1;
|
||||
si = 1749+1;
|
||||
di = (60)+21;
|
||||
bx = (52)+10;
|
||||
cl = 0;
|
||||
@ -6497,7 +6443,7 @@ void DreamGenContext::clearChanges() {
|
||||
di = 0;
|
||||
_stosw(cx, true);
|
||||
es = cs;
|
||||
di = 1655;
|
||||
di = 1581;
|
||||
al = 1;
|
||||
_stosb(2);
|
||||
al = 0;
|
||||
@ -6828,111 +6774,101 @@ void DreamGenContext::__start() {
|
||||
//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
|
||||
//0x0450: |... @... .... ..EX
|
||||
0x49, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x48, 0x45, 0x4c, 0x50, 0x20, 0x20, 0x20, 0x20,
|
||||
//0x0480: IT HELP
|
||||
//0x0460: IT HELP
|
||||
0x20, 0x20, 0x4c, 0x49, 0x53, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x45, 0x41, 0x44,
|
||||
//0x0490: LI ST READ
|
||||
//0x0470: LI ST READ
|
||||
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x4f, 0x47, 0x4f, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20,
|
||||
//0x04a0: LO GON
|
||||
//0x0480: LO GON
|
||||
0x4b, 0x45, 0x59, 0x53, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x01, 0x00, 0x50, 0x55, 0x42, 0x4c,
|
||||
//0x04b0: KEYS .. PUBL
|
||||
//0x0490: KEYS .. PUBL
|
||||
0x49, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x20,
|
||||
//0x04c0: IC PUBL IC
|
||||
//0x04a0: IC PUBL IC
|
||||
0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x42, 0x4c, 0x41, 0x43, 0x4b, 0x44, 0x52, 0x41, 0x47, 0x4f,
|
||||
//0x04d0: . ..BL ACKD RAGO
|
||||
//0x04b0: . ..BL ACKD RAGO
|
||||
0x4e, 0x20, 0x52, 0x59, 0x41, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00,
|
||||
//0x04e0: N RY AN ...
|
||||
//0x04c0: N RY AN ...
|
||||
0x48, 0x45, 0x4e, 0x44, 0x52, 0x49, 0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x4f, 0x55, 0x49,
|
||||
//0x04f0: HEND RIX LOUI
|
||||
//0x04d0: HEND RIX LOUI
|
||||
0x53, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x53, 0x45, 0x50, 0x54, 0x49, 0x4d,
|
||||
//0x0500: S . ..SE PTIM
|
||||
//0x04e0: S . ..SE PTIM
|
||||
0x55, 0x53, 0x20, 0x20, 0x20, 0x20, 0x42, 0x45, 0x43, 0x4b, 0x45, 0x54, 0x54, 0x20, 0x20, 0x20,
|
||||
//0x0510: US BE CKET T
|
||||
//0x04f0: US BE CKET T
|
||||
0x20, 0x00, 0xff, 0xff, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
|
||||
//0x0520: ...
|
||||
//0x0500: ...
|
||||
0x20, 0x00, 0x22, 0x52, 0x4f, 0x4f, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
|
||||
//0x0530: ."R OOT .
|
||||
//0x0510: ."R OOT .
|
||||
0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x30, 0x30,
|
||||
//0x0540: " .00
|
||||
//0x0520: " .00
|
||||
0x30, 0x30, 0x00, 0x30, 0x30, 0x00, 0xba, 0x00, 0xca, 0x00, 0x9d, 0x00, 0xad, 0x00, 0x1c, 0xc8,
|
||||
//0x0550: 00.0 0... .... ....
|
||||
//0x0530: 00.0 0... .... ....
|
||||
0xf3, 0x00, 0x03, 0x01, 0x83, 0x00, 0x93, 0x00, 0x18, 0xc8, 0x0c, 0x01, 0x1c, 0x01, 0xa8, 0x00,
|
||||
//0x0560: .... .... .... ....
|
||||
//0x0540: .... .... .... ....
|
||||
0xb8, 0x00, 0x50, 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff,
|
||||
//0x0570: ..P. ..@. .... ....
|
||||
//0x0550: ..P. ..@. .... ....
|
||||
0x77, 0x00, 0xae, 0x00, 0x52, 0x00, 0x80, 0x00, 0x34, 0xc8, 0x46, 0x00, 0x89, 0x00, 0x3e, 0x00,
|
||||
//0x0580: w... R... 4.F. ..>.
|
||||
//0x0560: w... R... 4.F. ..>.
|
||||
0x6f, 0x00, 0x80, 0xc8, 0xbc, 0x00, 0xfa, 0x00, 0x44, 0x00, 0x98, 0x00, 0x4c, 0xc8, 0x00, 0x00,
|
||||
//0x0590: o... .... D... L...
|
||||
//0x0570: o... .... D... L...
|
||||
0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x77, 0x00, 0xae, 0x00, 0x52, 0x00,
|
||||
//0x05a0: @... .... ..w. ..R.
|
||||
//0x0580: @... .... ..w. ..R.
|
||||
0x80, 0x00, 0x44, 0xc8, 0x46, 0x00, 0x8b, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0x50, 0xc8, 0xec, 0x00,
|
||||
//0x05b0: ..D. F... >.o. P...
|
||||
//0x0590: ..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,
|
||||
//0x05a0: ..p. ..H. ..@. ....
|
||||
0xa0, 0xca, 0xff, 0xff, 0x0d, 0x0a, 0x0d, 0x0a, 0x24, 0x53, 0x50, 0x45, 0x45, 0x43, 0x48, 0x52,
|
||||
//0x05b0: .... .... $SPE ECHR
|
||||
0x32, 0x34, 0x43, 0x30, 0x30, 0x30, 0x35, 0x2e, 0x52, 0x41, 0x57, 0x00, 0x4f, 0x42, 0x4a, 0x45,
|
||||
//0x05c0: 24C0 005. RAW. OBJE
|
||||
0x43, 0x54, 0x20, 0x4e, 0x41, 0x4d, 0x45, 0x20, 0x4f, 0x4e, 0x45, 0x20, 0x20, 0x20, 0x20, 0x20,
|
||||
//0x05d0: CT N AME ONE
|
||||
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
|
||||
//0x05e0:
|
||||
0x20, 0x20, 0x20, 0x20, 0x00, 0x10, 0x12, 0x12, 0x11, 0x10, 0x10, 0x10, 0x01, 0x01, 0x01, 0x01,
|
||||
//0x05f0: .... .... ....
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x44, 0x3a, 0x00,
|
||||
//0x0600: .... .... .... .D:.
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
//0x0610: .... .... .... ....
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00,
|
||||
//0x0620: .... .... .... ....
|
||||
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03,
|
||||
//0x0630: .... .... .... ....
|
||||
0x02, 0x04, 0x01, 0x0a, 0x09, 0x08, 0x06, 0x0b, 0x04, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
//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,
|
||||
//0x0650: .... .... .... ....
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
//0x0660: .... .... .... ....
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
//0x0670: .... .... .... ....
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x02, 0x04, 0x01, 0x0a, 0x09, 0x08,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
//0x0680: .... .... .... ....
|
||||
0x06, 0x0b, 0x04, 0x07, 0x07, 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,
|
||||
//0x0690: .... .... .... ....
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
//0x06a0: .... .... .... ....
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
//0x06b0: .... .... .... ....
|
||||
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, 0xff,
|
||||
//0x06c0: .... .... .... ....
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
//0x06d0: .... .... .... ....
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
//0x06e0: .... .... .... ....
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
//0x06f0: .... .... .... ....
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
//0x0700: .... .... .... ....
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x02,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
//0x0710: .... .... .... ....
|
||||
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, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01,
|
||||
//0x0720: .... .... .... ....
|
||||
0x02, 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, 0x02, 0x00, 0x01, 0x01, 0x01,
|
||||
//0x0730: .... .... .... ....
|
||||
0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
//0x0740: .... .... .... ....
|
||||
0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
//0x0750: .... .... .... ....
|
||||
0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
//0x0760: .... .... .... ....
|
||||
0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
//0x0770: .... .... .... ....
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
//0x0780: .... .... .... ....
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, };
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, };
|
||||
ds.assign(src, src + sizeof(src));
|
||||
dreamweb();
|
||||
}
|
||||
|
@ -32,20 +32,19 @@
|
||||
|
||||
namespace DreamGen {
|
||||
|
||||
static const uint16 offset_money1poke = 0x054e;
|
||||
static const uint16 offset_talklist = 0x0448;
|
||||
static const uint16 offset_discopslist = 0x05aa;
|
||||
static const uint16 offset_opslist = 0x0560;
|
||||
static const uint16 offset_operand1 = 0x0504;
|
||||
static const uint16 offset_money1poke = 0x052e;
|
||||
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 offset_discopslist = 0x058a;
|
||||
static const uint16 offset_commandline = 0x05cc;
|
||||
static const uint16 offset_comlist = 0x045e;
|
||||
static const uint16 offset_speechfile = 0x05bf;
|
||||
static const uint16 offset_diarylist = 0x0536;
|
||||
static const uint16 offset_rootdir = 0x0512;
|
||||
static const uint16 offset_money2poke = 0x0533;
|
||||
static const uint16 offset_keys = 0x049a;
|
||||
static const uint16 offset_quitlist = 0x0448;
|
||||
static const uint16 kStartvars = 0;
|
||||
static const uint16 kProgresspoints = 1;
|
||||
static const uint16 kWatchon = 2;
|
||||
@ -426,16 +425,16 @@ 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 kCurrentfile = 1312;
|
||||
static const uint16 kRoomscango = 1581;
|
||||
static const uint16 kRoompics = 1597;
|
||||
static const uint16 kOplist = 1612;
|
||||
static const uint16 kInputline = 1615;
|
||||
static const uint16 kPresslist = 1743;
|
||||
static const uint16 kSavenames = 1749;
|
||||
static const uint16 kQuitrequested = 1868;
|
||||
static const uint16 kSubtitles = 1869;
|
||||
static const uint16 kForeignrelease = 1870;
|
||||
static const uint16 kBlocktextdat = (0);
|
||||
static const uint16 kPersonframes = (0);
|
||||
static const uint16 kDebuglevel1 = (0);
|
||||
@ -575,7 +574,6 @@ public:
|
||||
void usePipe();
|
||||
void reminders();
|
||||
void runTap();
|
||||
void talk();
|
||||
void showMonk();
|
||||
void checkForExit();
|
||||
void lookInInterface();
|
||||
|
@ -1676,16 +1676,6 @@ void DreamGenContext::checkCoords() {
|
||||
// FIXME: Move all these lists to the callers
|
||||
|
||||
switch ((uint16)bx) {
|
||||
case offset_talklist: {
|
||||
RectWithCallback talkList[] = {
|
||||
{ 273,320,157,198,&DreamGenContext::getBack1 },
|
||||
{ 240,290,2,44,&DreamGenContext::moreTalk },
|
||||
{ 0,320,0,200,&DreamGenContext::blank },
|
||||
{ 0xFFFF,0,0,0,0 }
|
||||
};
|
||||
checkCoords(talkList);
|
||||
break;
|
||||
}
|
||||
case offset_quitlist: {
|
||||
RectWithCallback quitList[] = {
|
||||
{ 273,320,157,198,&DreamGenContext::getBack1 },
|
||||
@ -3982,4 +3972,56 @@ void DreamGenContext::decide() {
|
||||
data.byte(kTextlen) = 240;
|
||||
}
|
||||
|
||||
void DreamGenContext::talk() {
|
||||
data.byte(kTalkpos) = 0;
|
||||
data.byte(kInmaparea) = 0;
|
||||
data.byte(kCharacter) = data.byte(kCommand);
|
||||
createPanel();
|
||||
showPanel();
|
||||
showMan();
|
||||
showExit();
|
||||
underTextLine();
|
||||
convIcons();
|
||||
startTalk();
|
||||
data.byte(kCommandtype) = 255;
|
||||
readMouse();
|
||||
showPointer();
|
||||
workToScreen();
|
||||
|
||||
RectWithCallback talkList[] = {
|
||||
{ 273,320,157,198,&DreamGenContext::getBack1 },
|
||||
{ 240,290,2,44,&DreamGenContext::moreTalk },
|
||||
{ 0,320,0,200,&DreamGenContext::blank },
|
||||
{ 0xFFFF,0,0,0,0 }
|
||||
};
|
||||
|
||||
do {
|
||||
delPointer();
|
||||
readMouse();
|
||||
animPointer();
|
||||
showPointer();
|
||||
vSync();
|
||||
dumpPointer();
|
||||
dumpTextLine();
|
||||
data.byte(kGetback) = 0;
|
||||
checkCoords(talkList);
|
||||
if (data.byte(kQuitrequested))
|
||||
break;
|
||||
} while (!data.byte(kGetback));
|
||||
|
||||
bx = data.word(kPersondata);
|
||||
es = cs;
|
||||
|
||||
if (data.byte(kTalkpos) >= 4)
|
||||
es.byte(bx+7) |= 128;
|
||||
|
||||
redrawMainScrn();
|
||||
workToScreenM();
|
||||
if (data.byte(kSpeechloaded) == 1) {
|
||||
cancelCh1();
|
||||
data.byte(kVolumedirection) = -1;
|
||||
data.byte(kVolumeto) = 0;
|
||||
}
|
||||
}
|
||||
|
||||
} // End of namespace DreamGen
|
||||
|
@ -555,5 +555,6 @@
|
||||
void getUnderZoom();
|
||||
void putUnderZoom();
|
||||
void decide();
|
||||
void talk();
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user