diff options
author | Vladimir Menshakov | 2011-06-23 23:30:12 +0400 |
---|---|---|
committer | Vladimir Menshakov | 2011-06-23 23:30:12 +0400 |
commit | e30b41b28e536f18b3c5d2d323c0d808dc1328df (patch) | |
tree | aa795ddebc332696a9396882b3e041708b60977e | |
parent | 714976729d0badab3e7557f62036aac0b2e9cc4f (diff) | |
download | scummvm-rg350-e30b41b28e536f18b3c5d2d323c0d808dc1328df.tar.gz scummvm-rg350-e30b41b28e536f18b3c5d2d323c0d808dc1328df.tar.bz2 scummvm-rg350-e30b41b28e536f18b3c5d2d323c0d808dc1328df.zip |
DREAMWEB: Added subtitle option
-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; |