diff options
| -rw-r--r-- | devtools/tasmrecover/dreamweb/dreamweb.asm | 1 | ||||
| -rw-r--r-- | devtools/tasmrecover/dreamweb/use.asm | 22 | ||||
| -rw-r--r-- | engines/dreamweb/detection.cpp | 1 | ||||
| -rw-r--r-- | engines/dreamweb/dreamgen.cpp | 19 | ||||
| -rw-r--r-- | engines/dreamweb/dreamgen.h | 3 | ||||
| -rw-r--r-- | engines/dreamweb/dreamweb.cpp | 2 | 
6 files changed, 40 insertions, 8 deletions
diff --git a/devtools/tasmrecover/dreamweb/dreamweb.asm b/devtools/tasmrecover/dreamweb/dreamweb.asm index d357c5cd73..edecad783e 100644 --- a/devtools/tasmrecover/dreamweb/dreamweb.asm +++ b/devtools/tasmrecover/dreamweb/dreamweb.asm @@ -6237,6 +6237,7 @@ savefiles	db	"DREAMWEB.D00",0  Recname	db	"DREAMWEB.DEM",0  Quitrequested	db 0 +Subtitles		db 0  ;-------------------------------------------------------End of code segment---- diff --git a/devtools/tasmrecover/dreamweb/use.asm b/devtools/tasmrecover/dreamweb/use.asm index 508e8bd4c1..08debfca56 100644 --- a/devtools/tasmrecover/dreamweb/use.asm +++ b/devtools/tasmrecover/dreamweb/use.asm @@ -3293,18 +3293,34 @@ Setuptimedtemp	proc	near  	if	cd  	cmp	ah,0  	jz	notloadspeech3 +	push ax +	push bx +	push cx +	push dx  	mov	dl,"T"  	mov	dh,ah -               	mov	cl,"T" +	mov	cl,"T"  	mov	ah,0  	call	loadspeech  	cmp	speechloaded,1 -	jnz	notloadspeech3 +	jnz	$1  	mov	al,50+12  	call	playchannel1 +$1: +	pop dx +	pop cx +	pop bx +	pop ax + +	cmp	speechloaded,1 +	jnz	notloadspeech3 ; failed to load speech +	cmp	subtitles, 1 +	jz	notloadspeech3  	ret +  notloadspeech3: -	endif +	endif	;if cd +  	cmp	timecount,0  	jnz	cantsetup2  	mov	timedy,bh diff --git a/engines/dreamweb/detection.cpp b/engines/dreamweb/detection.cpp index 18a2f899a8..f3d5b07835 100644 --- a/engines/dreamweb/detection.cpp +++ b/engines/dreamweb/detection.cpp @@ -85,6 +85,7 @@ bool DreamWebMetaEngine::hasFeature(MetaEngineFeature f) const {  bool DreamWeb::DreamWebEngine::hasFeature(EngineFeature f) const {  	switch(f) {  	case kSupportsRTL: +	case kSupportsSubtitleOptions:  		return true;  	default:  		return false; diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp index 462ae596f8..2485b5ad6a 100644 --- a/engines/dreamweb/dreamgen.cpp +++ b/engines/dreamweb/dreamgen.cpp @@ -13830,6 +13830,10 @@ void DreamGenContext::setuptimedtemp() {  	_cmp(ah, 0);  	if (flags.z())  		goto notloadspeech3; +	push(ax); +	push(bx); +	push(cx); +	push(dx);  	dl = 'T';  	dh = ah;  	cl = 'T'; @@ -13837,9 +13841,20 @@ void DreamGenContext::setuptimedtemp() {  	loadspeech();  	_cmp(data.byte(kSpeechloaded), 1);  	if (!flags.z()) -		goto notloadspeech3; +		goto _tmp1;  	al = 50+12;  	playchannel1(); +_tmp1: +	dx = pop(); +	cx = pop(); +	bx = pop(); +	ax = pop(); +	_cmp(data.byte(kSpeechloaded), 1); +	if (!flags.z()) +		goto notloadspeech3; +	_cmp(data.byte(kSubtitles),  1); +	if (flags.z()) +		goto notloadspeech3;  	return;  notloadspeech3:  	_cmp(data.word(kTimecount), 0); @@ -21942,7 +21957,7 @@ void DreamGenContext::__start() {  		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,   		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  -		0x00, 0x00, 0x00, }; +		0x00, 0x00, 0x00, 0x00, };  	ds.assign(src, src + sizeof(src));  dreamweb();   } diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h index b012663ab6..5a60327a43 100644 --- a/engines/dreamweb/dreamgen.h +++ b/engines/dreamweb/dreamgen.h @@ -487,7 +487,8 @@ public:  	const static uint16 kSavefiles = 8698;  	const static uint16 kRecname = 8789;  	const static uint16 kQuitrequested = 8802; -	const static uint16 kStak = 8803; +	const static uint16 kSubtitles = 8803; +	const static uint16 kStak = 8804;  	const static uint16 kBlocktextdat = (0);  	const static uint16 kPersonframes = (0);  	const static uint16 kDebuglevel1 = (0); diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp index 8be02dc90e..0b8c843e84 100644 --- a/engines/dreamweb/dreamweb.cpp +++ b/engines/dreamweb/dreamweb.cpp @@ -219,8 +219,6 @@ Common::Error DreamWebEngine::run() {  	_loadSavefile = Common::ConfigManager::instance().getInt("save_slot");  	getTimerManager()->installTimerProc(vSyncInterrupt, 1000000 / 70, this); -	//http://martin.hinner.info/vga/timing.html -  	_context.__start();  	_context.data.byte(DreamGen::DreamGenContext::kQuitrequested) = 0;  | 
