diff options
| -rwxr-xr-x | devtools/tasmrecover/tasm-recover | 4 | ||||
| -rw-r--r-- | engines/dreamweb/dreamgen.cpp | 215 | ||||
| -rw-r--r-- | engines/dreamweb/dreamgen.h | 48 | ||||
| -rw-r--r-- | engines/dreamweb/stubs.cpp | 46 | ||||
| -rw-r--r-- | engines/dreamweb/stubs.h | 2 | 
5 files changed, 147 insertions, 168 deletions
diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover index 8780aaa88c..e73ba4962a 100755 --- a/devtools/tasmrecover/tasm-recover +++ b/devtools/tasmrecover/tasm-recover @@ -143,6 +143,8 @@ p = parser(skip_binary_data = [  	'idname',  	'samplename',  	# 'basicsample', # This can't be removed due to tasm-recover limitations +	'endtextname', +	'gungraphic',  	])  p.strip_path = 3  context = p.parse('dreamweb/dreamweb.asm') @@ -296,6 +298,7 @@ generator = cpp(context, "DreamGen", blacklist = [  	'edeninbath',  	'edenscdplayer',  	'enablesoundint', +	'endgame',  	'endpaltostart',  	'entercode',  	'entersymbol', @@ -623,6 +626,7 @@ generator = cpp(context, "DreamGen", blacklist = [  	'showframe',  	'showgamereel',  	'showgroup', +	'showgun',  	'showicon',  	'showkeypad',  	'showleftpage', diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp index 5ee2397d36..f5e4f27379 100644 --- a/engines/dreamweb/dreamgen.cpp +++ b/engines/dreamweb/dreamgen.cpp @@ -928,60 +928,6 @@ halfend:  	data.byte(kNumtofade) = 32;  } -void DreamGenContext::showGun() { -	STACK_CHECK; -	data.byte(kAddtored) = 0; -	data.byte(kAddtogreen) = 0; -	data.byte(kAddtoblue) = 0; -	palToStartPal(); -	palToEndPal(); -	greyscaleSum(); -	data.byte(kFadedirection) = 1; -	data.byte(kFadecount) = 63; -	data.byte(kColourpos) = 0; -	data.byte(kNumtofade) = 128; -	cx = 130; -	hangOn(); -	endPalToStart(); -	clearEndPal(); -	data.byte(kFadedirection) = 1; -	data.byte(kFadecount) = 63; -	data.byte(kColourpos) = 0; -	data.byte(kNumtofade) = 128; -	cx = 200; -	hangOn(); -	data.byte(kRoomssample) = 34; -	loadRoomsSample(); -	data.byte(kVolume) = 0; -	dx = 1055; -	loadIntoTemp(); -	createPanel2(); -	ds = data.word(kTempgraphics); -	al = 0; -	ah = 0; -	di = 100; -	bx = 4; -	showFrame(); -	ds = data.word(kTempgraphics); -	al = 1; -	ah = 0; -	di = 158; -	bx = 106; -	showFrame(); -	workToScreen(); -	getRidOfTemp(); -	fadeScreenUp(); -	cx = 160; -	hangOn(); -	al = 12; -	ah = 0; -	playChannel0(); -	dx = 1029; -	loadTempText(); -	rollEndCredits2(); -	getRidOfTempText(); -} -  void DreamGenContext::rollEndCredits2() {  	STACK_CHECK;  	rollEm(); @@ -1222,24 +1168,11 @@ void DreamGenContext::initialMonCols() {  	showGroup();  } -void DreamGenContext::endGame() { -	STACK_CHECK; -	dx = 1029; -	loadTempText(); -	monkSpeaking(); -	gettingShot(); -	getRidOfTempText(); -	data.byte(kVolumeto) = 7; -	data.byte(kVolumedirection) = 1; -	cx = 200; -	hangOn(); -} -  void DreamGenContext::monkSpeaking() {  	STACK_CHECK;  	data.byte(kRoomssample) = 35;  	loadRoomsSample(); -	dx = 1068; +	dx = 1042;  	loadIntoTemp();  	clearWork();  	showMonk(); @@ -3287,14 +3220,14 @@ void DreamGenContext::getDestInfo() {  	push(ax);  	dx = data;  	es = dx; -	si = 1433; +	si = 1407;  	_add(si, ax);  	cl = es.byte(si);  	ax = pop();  	push(cx);  	dx = data;  	es = dx; -	si = 1449; +	si = 1423;  	_add(si, ax);  	ax = pop();  } @@ -3346,7 +3279,7 @@ clearedlocations:  	bx = ax;  	dx = data;  	es = dx; -	_add(bx, 1433); +	_add(bx, 1407);  	es.byte(bx) = 0;  } @@ -3382,7 +3315,7 @@ void DreamGenContext::execCommand() {  	es = cs;  	bx = offset_comlist;  	ds = cs; -	si = 1467; +	si = 1441;  	al = ds.byte(si);  	_cmp(al, 0);  	if (!flags.z()) @@ -3475,7 +3408,7 @@ dirroot:  	si = offset_rootdir;  	_inc(si);  	es = cs; -	di = 1290; +	di = 1264;  	_inc(di);  	cx = 12;  	_movsb(cx, true); @@ -3577,7 +3510,7 @@ notyetassigned:  	push(bx);  	_add(bx, 2);  	ds = cs; -	si = 1467; +	si = 1441;  checkpass:  	_lodsw();  	ah = es.byte(bx); @@ -3648,7 +3581,7 @@ void DreamGenContext::read() {  	return;  okcom:  	es = cs; -	di = 1290; +	di = 1264;  	ax = data.word(kTextfile1);  	data.word(kMonsource) = ax;  	ds = ax; @@ -3778,7 +3711,7 @@ keyok2:  	ds = cs;  	si = offset_operand1+1;  	es = cs; -	di = 1290+1; +	di = 1264+1;  	cx = 12;  	_movsb(cx, true);  	monitorLogo(); @@ -3905,7 +3838,7 @@ void DreamGenContext::parser() {  	al = '=';  	_stosb();  	ds = cs; -	si = 1467; +	si = 1441;  notspace1:  	_lodsw();  	_cmp(al, 32); @@ -5739,7 +5672,7 @@ void DreamGenContext::getNamePos() {  	_mul(cx);  	dx = data;  	es = dx; -	bx = 1601; +	bx = 1575;  	_add(bx, ax);  	al = data.byte(kCursorpos);  	ah = 0; @@ -5835,7 +5768,7 @@ void DreamGenContext::showNames() {  	STACK_CHECK;  	dx = data;  	es = dx; -	si = 1601+1; +	si = 1575+1;  	di = (60)+21;  	bx = (52)+10;  	cl = 0; @@ -6211,7 +6144,7 @@ void DreamGenContext::clearChanges() {  	di = 0;  	_stosw(cx, true);  	es = cs; -	di = 1433; +	di = 1407;  	al = 1;  	_stosb(2);  	al = 0; @@ -6532,61 +6465,61 @@ void DreamGenContext::__start() {  		//0x03e0: EAMW EB.V 99.D REAM  		0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, 0x34, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42,   		//0x03f0: WEB. G14. DREA MWEB -		0x2e, 0x54, 0x35, 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x38,  -		//0x0400: .T51 .DRE AMWE B.T8 -		0x33, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x56, 0x4f, 0x4c, 0x00, 0x44,  -		//0x0410: 3.DR EAMW EB.V OL.D -		0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, 0x33, 0x00, 0x44, 0x52, 0x45, 0x41,  -		//0x0420: REAM WEB. G13. DREA -		0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, 0x35, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45,  -		//0x0430: MWEB .G15 .DRE AMWE -		0x42, 0x2e, 0x49, 0x30, 0x37, 0x00, 0x00, 0x01, 0x45, 0x58, 0x49, 0x54, 0x20, 0x20, 0x20, 0x20,  -		//0x0440: B.I0 7... EXIT      -		0x20, 0x20, 0x48, 0x45, 0x4c, 0x50, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x49, 0x53, 0x54,  -		//0x0450:   HE LP        LIST -		0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x45, 0x41, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,  -		//0x0460:        RE AD        -		0x4c, 0x4f, 0x47, 0x4f, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x45, 0x59, 0x53, 0x20, 0x20,  -		//0x0470: LOGO N      KE YS   -		0x20, 0x20, 0x20, 0x20, 0x01, 0x00, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x20, 0x20, 0x20,  -		//0x0480:      ..PU BLIC      -		0x20, 0x20, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00,  -		//0x0490:   PU BLIC       ... -		0x42, 0x4c, 0x41, 0x43, 0x4b, 0x44, 0x52, 0x41, 0x47, 0x4f, 0x4e, 0x20, 0x52, 0x59, 0x41, 0x4e,  -		//0x04a0: BLAC KDRA GON  RYAN -		0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x48, 0x45, 0x4e, 0x44, 0x52, 0x49,  -		//0x04b0:         . ..HE NDRI -		0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x4f, 0x55, 0x49, 0x53, 0x20, 0x20, 0x20, 0x20, 0x20,  -		//0x04c0: X      LO UIS       -		0x20, 0x00, 0x00, 0x00, 0x53, 0x45, 0x50, 0x54, 0x49, 0x4d, 0x55, 0x53, 0x20, 0x20, 0x20, 0x20,  -		//0x04d0:  ... SEPT IMUS      -		0x42, 0x45, 0x43, 0x4b, 0x45, 0x54, 0x54, 0x20, 0x20, 0x20, 0x20, 0x00, 0xff, 0xff, 0x20, 0x20,  -		//0x04e0: BECK ETT     . ..   -		0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x22, 0x52, 0x4f, 0x4f,  -		//0x04f0:              . "ROO -		0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20,  -		//0x0500: T          ."       -		0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x30, 0x30, 0x30, 0x30, 0x00, 0x30, 0x30, 0x00,  -		//0x0510:         . 0000 .00. -		0x0d, 0x0a, 0x0d, 0x0a, 0x24, 0x53, 0x50, 0x45, 0x45, 0x43, 0x48, 0x52, 0x32, 0x34, 0x43, 0x30,  -		//0x0520: .... $SPE ECHR 24C0 -		0x30, 0x30, 0x35, 0x2e, 0x52, 0x41, 0x57, 0x00, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x20, 0x4e,  -		//0x0530: 005. RAW. OBJE CT N -		0x41, 0x4d, 0x45, 0x20, 0x4f, 0x4e, 0x45, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,  -		//0x0540: AME  ONE            +		0x2e, 0x54, 0x35, 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x56, 0x4f,  +		//0x0400: .T51 .DRE AMWE B.VO +		0x4c, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, 0x35, 0x00, 0x44,  +		//0x0410: L.DR EAMW EB.G 15.D +		0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x37, 0x00, 0x00, 0x01, 0x45, 0x58,  +		//0x0420: REAM WEB. I07. ..EX +		0x49, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x48, 0x45, 0x4c, 0x50, 0x20, 0x20, 0x20, 0x20,  +		//0x0430: IT        HELP      +		0x20, 0x20, 0x4c, 0x49, 0x53, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x45, 0x41, 0x44,  +		//0x0440:   LI ST        READ +		0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x4f, 0x47, 0x4f, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20,  +		//0x0450:        LO GON       +		0x4b, 0x45, 0x59, 0x53, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x01, 0x00, 0x50, 0x55, 0x42, 0x4c,  +		//0x0460: KEYS        .. PUBL +		0x49, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x20,  +		//0x0470: IC        PUBL IC   +		0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x42, 0x4c, 0x41, 0x43, 0x4b, 0x44, 0x52, 0x41, 0x47, 0x4f,  +		//0x0480:    . ..BL ACKD RAGO +		0x4e, 0x20, 0x52, 0x59, 0x41, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00,  +		//0x0490: N RY AN         ... +		0x48, 0x45, 0x4e, 0x44, 0x52, 0x49, 0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x4f, 0x55, 0x49,  +		//0x04a0: HEND RIX       LOUI +		0x53, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x53, 0x45, 0x50, 0x54, 0x49, 0x4d,  +		//0x04b0: S       . ..SE PTIM +		0x55, 0x53, 0x20, 0x20, 0x20, 0x20, 0x42, 0x45, 0x43, 0x4b, 0x45, 0x54, 0x54, 0x20, 0x20, 0x20,  +		//0x04c0: US     BE CKET T    +		0x20, 0x00, 0xff, 0xff, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,  +		//0x04d0:  ...                +		0x20, 0x00, 0x22, 0x52, 0x4f, 0x4f, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,  +		//0x04e0:  ."R OOT          . +		0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x30, 0x30,  +		//0x04f0: "               .00 +		0x30, 0x30, 0x00, 0x30, 0x30, 0x00, 0x0d, 0x0a, 0x0d, 0x0a, 0x24, 0x53, 0x50, 0x45, 0x45, 0x43,  +		//0x0500: 00.0 0... ..$S PEEC +		0x48, 0x52, 0x32, 0x34, 0x43, 0x30, 0x30, 0x30, 0x35, 0x2e, 0x52, 0x41, 0x57, 0x00, 0x4f, 0x42,  +		//0x0510: HR24 C000 5.RA W.OB +		0x4a, 0x45, 0x43, 0x54, 0x20, 0x4e, 0x41, 0x4d, 0x45, 0x20, 0x4f, 0x4e, 0x45, 0x20, 0x20, 0x20,  +		//0x0520: JECT  NAM E ON E     		0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,  -		//0x0550:                     -		0x00, 0x10, 0x12, 0x12, 0x11, 0x10, 0x10, 0x10, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,  -		//0x0560: .... .... .... .... -		0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x44, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00,  -		//0x0570: .... .... .D:. .... -		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +		//0x0530:                     +		0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x10, 0x12, 0x12, 0x11, 0x10, 0x10, 0x10, 0x01, 0x01,  +		//0x0540:        .. .... .... +		0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x44,  +		//0x0550: .... .... .... ...D +		0x3a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +		//0x0560: :... .... .... .... +		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,  +		//0x0570: .... .... .... .... +		0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05,   		//0x0580: .... .... .... .... -		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00,  +		0x00, 0x03, 0x02, 0x04, 0x01, 0x0a, 0x09, 0x08, 0x06, 0x0b, 0x04, 0x07, 0x07, 0x00, 0x00, 0x00,   		//0x0590: .... .... .... .... -		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x02, 0x04, 0x01, 0x0a,  +		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   		//0x05a0: .... .... .... .... -		0x09, 0x08, 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,   		//0x05b0: .... .... .... ....  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   		//0x05c0: .... .... .... .... @@ -6600,25 +6533,23 @@ void DreamGenContext::__start() {  		//0x0600: .... .... .... ....  		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, 0x00, 0x00, 0x00,  +		0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,   		//0x0620: .... .... .... .... -		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,  +		0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,   		//0x0630: .... .... .... .... -		0xff, 0x02, 0x00, 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, 0x01,   		//0x0640: .... .... .... .... -		0x01, 0x01, 0x02, 0x00, 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,   		//0x0650: .... .... .... .... -		0x01, 0x01, 0x01, 0x02, 0x00, 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,   		//0x0660: .... .... .... .... -		0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 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,   		//0x0670: .... .... .... .... -		0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 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,   		//0x0680: .... .... .... .... -		0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,  +		0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00,   		//0x0690: .... .... .... .... -		0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,  -		//0x06a0: .... .... .... .... -		0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, }; +		0x00, };  	ds.assign(src, src + sizeof(src));  	dreamweb();   } diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h index 775cfdecbd..0956076b36 100644 --- a/engines/dreamweb/dreamgen.h +++ b/engines/dreamweb/dreamgen.h @@ -32,15 +32,15 @@  namespace DreamGen { -static const uint16 offset_money1poke = 0x0518; -static const uint16 offset_comlist = 0x0448; -static const uint16 offset_openchangesize = 0x0446; -static const uint16 offset_operand1 = 0x04ee; -static const uint16 offset_commandline = 0x0538; -static const uint16 offset_money2poke = 0x051d; -static const uint16 offset_speechfile = 0x052b; -static const uint16 offset_rootdir = 0x04fc; -static const uint16 offset_keys = 0x0484; +static const uint16 offset_commandline = 0x051e; +static const uint16 offset_rootdir = 0x04e2; +static const uint16 offset_money2poke = 0x0503; +static const uint16 offset_openchangesize = 0x042c; +static const uint16 offset_keys = 0x046a; +static const uint16 offset_comlist = 0x042e; +static const uint16 offset_money1poke = 0x04fe; +static const uint16 offset_speechfile = 0x0511; +static const uint16 offset_operand1 = 0x04d4;  static const uint16 kStartvars = 0;  static const uint16 kProgresspoints = 1;  static const uint16 kWatchon = 2; @@ -416,21 +416,19 @@ static const uint16 kCharacterset3 = 977;  static const uint16 kBasicsample = 990;  static const uint16 kDiarygraphic = 1003;  static const uint16 kDiarytext = 1016; -static const uint16 kEndtextname = 1029; -static const uint16 kVolumetabname = 1042; -static const uint16 kGungraphic = 1055; -static const uint16 kMonkface = 1068; -static const uint16 kTitle7graphics = 1081; -static const uint16 kCurrentfile = 1290; -static const uint16 kRoomscango = 1433; -static const uint16 kRoompics = 1449; -static const uint16 kOplist = 1464; -static const uint16 kInputline = 1467; -static const uint16 kPresslist = 1595; -static const uint16 kSavenames = 1601; -static const uint16 kQuitrequested = 1720; -static const uint16 kSubtitles = 1721; -static const uint16 kForeignrelease = 1722; +static const uint16 kVolumetabname = 1029; +static const uint16 kMonkface = 1042; +static const uint16 kTitle7graphics = 1055; +static const uint16 kCurrentfile = 1264; +static const uint16 kRoomscango = 1407; +static const uint16 kRoompics = 1423; +static const uint16 kOplist = 1438; +static const uint16 kInputline = 1441; +static const uint16 kPresslist = 1569; +static const uint16 kSavenames = 1575; +static const uint16 kQuitrequested = 1694; +static const uint16 kSubtitles = 1695; +static const uint16 kForeignrelease = 1696;  static const uint16 kBlocktextdat = (0);  static const uint16 kPersonframes = (0);  static const uint16 kDebuglevel1 = (0); @@ -566,7 +564,6 @@ public:  	void useAltar();  	void startTalk();  	void getAnyAd(); -	void endGame();  	void usePipe();  	void reminders();  	void runTap(); @@ -636,7 +633,6 @@ public:  	void useOpened();  	void fillOpen();  	void signOn(); -	void showGun();  	void locationPic();  	void triggerMessage();  	void swapWithOpen(); diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp index 3e37e55016..4b53f88f47 100644 --- a/engines/dreamweb/stubs.cpp +++ b/engines/dreamweb/stubs.cpp @@ -4118,4 +4118,50 @@ void DreamGenContext::hangOnPQ() {  	flags._c = false;   } +void DreamGenContext::endGame() { +	loadTempText("DREAMWEB.T83"); +	monkSpeaking(); +	gettingShot(); +	getRidOfTempText(); +	data.byte(kVolumeto) = 7; +	data.byte(kVolumedirection) = 1; +	hangOn(200); +} + +void DreamGenContext::showGun() { +	data.byte(kAddtored) = 0; +	data.byte(kAddtogreen) = 0; +	data.byte(kAddtoblue) = 0; +	palToStartPal(); +	palToEndPal(); +	greyscaleSum(); +	data.byte(kFadedirection) = 1; +	data.byte(kFadecount) = 63; +	data.byte(kColourpos) = 0; +	data.byte(kNumtofade) = 128; +	hangOn(130); +	endPalToStart(); +	clearEndPal(); +	data.byte(kFadedirection) = 1; +	data.byte(kFadecount) = 63; +	data.byte(kColourpos) = 0; +	data.byte(kNumtofade) = 128; +	hangOn(200); +	data.byte(kRoomssample) = 34; +	loadRoomsSample(); +	data.byte(kVolume) = 0; +	loadIntoTemp("DREAMWEB.G13"); +	createPanel2(); +	showFrame(tempGraphics(), 100, 4, 0, 0); +	showFrame(tempGraphics(), 158, 106, 1, 0); +	workToScreen(); +	getRidOfTemp(); +	fadeScreenUp(); +	hangOn(160); +	playChannel0(12, 0); +	loadTempText("DREAMWEB.T83"); +	rollEndCredits2(); +	getRidOfTempText(); +} +  } // End of namespace DreamGen diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h index e093c2ee91..3d29351df7 100644 --- a/engines/dreamweb/stubs.h +++ b/engines/dreamweb/stubs.h @@ -560,5 +560,7 @@  	void doSaveLoad();  	void useDiary();  	void hangOnPQ(); +	void showGun(); +	void endGame();  #endif  | 
