DREAMWEB: Added subtitle option

This commit is contained in:
Vladimir Menshakov 2011-06-23 23:30:12 +04:00
parent 714976729d
commit e30b41b28e
6 changed files with 40 additions and 8 deletions

View file

@ -6237,6 +6237,7 @@ savefiles db "DREAMWEB.D00",0
Recname db "DREAMWEB.DEM",0
Quitrequested db 0
Subtitles db 0
;-------------------------------------------------------End of code segment----

View file

@ -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 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

View file

@ -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;

View file

@ -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();
}

View file

@ -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);

View file

@ -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;