[Scummvm-cvs-logs] scummvm master -> 4ede98d748d1d3a52714cf84da17ccd83b50d35b
whoozle
whoozle at yandex.ru
Sun Jun 19 13:52:00 CEST 2011
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
41159c68ab DREAMWEB: removed hack from openfile
4ede98d748 DREAMWEB: Removed getback = 4 hack, added clean exit from every menus and credits
Commit: 41159c68ab35abea23e95974cedc286f530b11c9
https://github.com/scummvm/scummvm/commit/41159c68ab35abea23e95974cedc286f530b11c9
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-19T04:50:22-07:00
Commit Message:
DREAMWEB: removed hack from openfile
Changed paths:
engines/dreamweb/stubs.cpp
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index be6dab5..7eeeabe 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -162,10 +162,6 @@ void DreamGenContext::openfilefromc() {
void DreamGenContext::openfile() {
Common::String name = getFilename(*this);
- if (name.empty()) { //fixme: this happens if you quit from new game/load screen
- flags._c = true;
- return;
- }
debug(1, "opening file: %s", name.c_str());
engine->openFile(name);
cs.word(kHandle) = 1; //only one handle
@@ -361,6 +357,7 @@ void DreamGenContext::generalerror() {
}
void DreamGenContext::dosreturn() {
+
_cmp(data.byte(kCommandtype), 250);
if (!flags.z()) {
data.byte(kCommandtype) = 250;
Commit: 4ede98d748d1d3a52714cf84da17ccd83b50d35b
https://github.com/scummvm/scummvm/commit/4ede98d748d1d3a52714cf84da17ccd83b50d35b
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-19T04:50:22-07:00
Commit Message:
DREAMWEB: Removed getback = 4 hack, added clean exit from every menus and credits
Changed paths:
devtools/tasmrecover/dreamweb/dreamweb.asm
devtools/tasmrecover/dreamweb/saveload.asm
devtools/tasmrecover/dreamweb/titles.asm
engines/dreamweb/dreamgen.cpp
engines/dreamweb/dreamgen.h
engines/dreamweb/dreamweb.cpp
diff --git a/devtools/tasmrecover/dreamweb/dreamweb.asm b/devtools/tasmrecover/dreamweb/dreamweb.asm
index 5d2a60a..a3c165a 100644
--- a/devtools/tasmrecover/dreamweb/dreamweb.asm
+++ b/devtools/tasmrecover/dreamweb/dreamweb.asm
@@ -135,13 +135,24 @@ Dreamweb proc near
dodecisions: call cls
call setmode
call decide
+
+ cmp quitrequested, 0
+ jnz exitgame
+
cmp getback,4
jz mainloop
call titles
+
+ cmp quitrequested, 0
+ jnz exitgame
+
call credits
-playgame: call clearchanges
+playgame:
+ cmp quitrequested, 0
+ jnz exitgame
+ call clearchanges
call setmode
call loadpalfromiff
mov location,255
@@ -196,9 +207,8 @@ alreadyloaded: mov newlocation,255
mainloop:
cmp quitrequested, 0
- jz $1
- ret
-$1:
+ jnz exitgame
+
call screenupdate
cmp wongame,0
jnz endofgame
@@ -240,7 +250,9 @@ endofgame: call clearbeforeload
call hangon
call endgame
jmp quickquit2
-
+
+exitgame:
+ ret
endp
diff --git a/devtools/tasmrecover/dreamweb/saveload.asm b/devtools/tasmrecover/dreamweb/saveload.asm
index f10d871..9a34a76 100644
--- a/devtools/tasmrecover/dreamweb/saveload.asm
+++ b/devtools/tasmrecover/dreamweb/saveload.asm
@@ -109,7 +109,11 @@ restartops: call showopbox
call showmainops
call worktoscreenm
donefirstops: mov getback,0
-waitops: call readmouse
+waitops:
+ cmp quitrequested, 0
+ jnz justret
+
+ call readmouse
call showpointer
call vsync
call dumppointer
@@ -260,7 +264,11 @@ doload: mov loadingorsave,1
call namestoold
mov getback,0
-loadops: call delpointer
+loadops:
+ cmp quitrequested, 0
+ jnz quitloaded
+
+ call delpointer
call readmouse
call showpointer
call vsync
@@ -354,7 +362,11 @@ dodiscops: call scanfornames
call worktoscreenm
mov getback,0
-discopsloop: call delpointer
+discopsloop:
+ cmp quitrequested, 0
+ jnz quitdiscops
+
+ call delpointer
call readmouse
call showpointer
call vsync
@@ -364,6 +376,7 @@ discopsloop: call delpointer
call checkcoords
cmp getback,0
jz discopsloop
+quitdiscops:
ret
discopslist: dw opsx+59,opsx+114,opsy+30,opsy+76,loadgame
@@ -411,7 +424,11 @@ dosave: mov loadingorsave,2
mov getback,0
-saveops: call delpointer
+saveops:
+ cmp quitrequested, 0
+ jnz quitsavegame
+
+ call delpointer
call checkinput
call readmouse
call showpointer
@@ -423,6 +440,7 @@ saveops: call delpointer
call checkcoords
cmp getback,0
jz saveops
+quitsavegame:
ret
savelist: dw opsx+176,opsx+192,opsy+60,opsy+76,getbacktoops
@@ -1398,7 +1416,12 @@ Decide proc near
call fadescreenup
mov getback,0
-waitdecide: call readmouse
+waitdecide:
+ cmp quitrequested, 0
+ jz $1
+ ret
+$1:
+ call readmouse
call showpointer
call vsync
call dumppointer
@@ -1482,6 +1505,8 @@ alreadyloadold: mov ax,mousebutton
call doload
cmp getback,4
jz noloadold
+ cmp quitrequested, 0
+ jnz noloadold
call showdecisions
call worktoscreenm
mov getback,0
diff --git a/devtools/tasmrecover/dreamweb/titles.asm b/devtools/tasmrecover/dreamweb/titles.asm
index a47f31a..acaeefa 100644
--- a/devtools/tasmrecover/dreamweb/titles.asm
+++ b/devtools/tasmrecover/dreamweb/titles.asm
@@ -9,7 +9,10 @@ Titles proc near
else
call clearpalette
call biblequote
+ cmp quitrequested, 0
+ jnz titlesearly
call intro
+titlesearly:
ret
endif
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 35721d3..7c9c881 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -4165,11 +4165,6 @@ deloneloop:
goto deloneloop;
}
-void DreamGenContext::width160() {
- STACK_CHECK;
- _movsw(161);
-}
-
void DreamGenContext::doblocks() {
STACK_CHECK;
es = data.word(kWorkspace);
@@ -5169,6 +5164,9 @@ void DreamGenContext::titles() {
STACK_CHECK;
clearpalette();
biblequote();
+ _cmp(data.byte(kQuitrequested), 0);
+ if (!flags.z())
+ return /* (titlesearly) */;
intro();
}
@@ -15958,6 +15956,9 @@ restartops:
donefirstops:
data.byte(kGetback) = 0;
waitops:
+ _cmp(data.byte(kQuitrequested), 0);
+ if (!flags.z())
+ goto justret;
readmouse();
showpointer();
vsync();
@@ -16083,6 +16084,9 @@ doload:
namestoold();
data.byte(kGetback) = 0;
loadops:
+ _cmp(data.byte(kQuitrequested), 0);
+ if (!flags.z())
+ return /* (quitloaded) */;
delpointer();
readmouse();
showpointer();
@@ -16164,6 +16168,9 @@ dodiscops:
worktoscreenm();
data.byte(kGetback) = 0;
discopsloop:
+ _cmp(data.byte(kQuitrequested), 0);
+ if (!flags.z())
+ return /* (quitdiscops) */;
delpointer();
readmouse();
showpointer();
@@ -16210,6 +16217,9 @@ dosave:
data.word(kBufferout) = 0;
data.byte(kGetback) = 0;
saveops:
+ _cmp(data.byte(kQuitrequested), 0);
+ if (!flags.z())
+ return /* (quitsavegame) */;
delpointer();
checkinput();
readmouse();
@@ -16833,6 +16843,11 @@ void DreamGenContext::decide() {
fadescreenup();
data.byte(kGetback) = 0;
waitdecide:
+ _cmp(data.byte(kQuitrequested), 0);
+ if (flags.z())
+ goto _tmp1;
+ return;
+_tmp1:
readmouse();
showpointer();
vsync();
@@ -16895,6 +16910,9 @@ void DreamGenContext::doload() {
namestoold();
data.byte(kGetback) = 0;
loadops:
+ _cmp(data.byte(kQuitrequested), 0);
+ if (!flags.z())
+ return /* (quitloaded) */;
delpointer();
readmouse();
showpointer();
@@ -16945,6 +16963,9 @@ alreadyloadold:
_cmp(data.byte(kGetback), 4);
if (flags.z())
return /* (noloadold) */;
+ _cmp(data.byte(kQuitrequested), 0);
+ if (!flags.z())
+ return /* (noloadold) */;
showdecisions();
worktoscreenm();
data.byte(kGetback) = 0;
@@ -21319,12 +21340,21 @@ dodecisions:
cls();
setmode();
decide();
+ _cmp(data.byte(kQuitrequested), 0);
+ if (!flags.z())
+ return /* (exitgame) */;
_cmp(data.byte(kGetback), 4);
if (flags.z())
goto mainloop;
titles();
+ _cmp(data.byte(kQuitrequested), 0);
+ if (!flags.z())
+ return /* (exitgame) */;
credits();
playgame:
+ _cmp(data.byte(kQuitrequested), 0);
+ if (!flags.z())
+ return /* (exitgame) */;
clearchanges();
setmode();
loadpalfromiff();
@@ -21364,10 +21394,8 @@ loadnew:
data.byte(kCommandtype) = 255;
mainloop:
_cmp(data.byte(kQuitrequested), 0);
- if (flags.z())
- goto _tmp1;
- return;
-_tmp1:
+ if (!flags.z())
+ return /* (exitgame) */;
screenupdate();
_cmp(data.byte(kWongame), 0);
if (!flags.z())
@@ -22120,7 +22148,6 @@ void DreamGenContext::__dispatch_call(uint16 addr) {
case 0xc20c: doshake(); break;
case 0xc210: zoom(); break;
case 0xc214: delthisone(); break;
- case 0xc224: width160(); break;
case 0xc228: doblocks(); break;
case 0xc22c: showframe(); break;
case 0xc230: frameoutv(); break;
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index 94b7607..d7cf467 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -964,7 +964,6 @@ public:
void createpanel();
void turnpathon();
void showmainops();
- void width160dosreturn();
void madmanstelly();
void constant();
void loadroomssample();
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 0dc25af..7e1b983 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -102,7 +102,6 @@ void DreamWebEngine::waitForVSync() {
void DreamWebEngine::quit() {
_context.data.byte(DreamGen::DreamGenContext::kQuitrequested) = 1;
_context.data.byte(DreamGen::DreamGenContext::kLasthardkey) = 1;
- _context.data.byte(DreamGen::DreamGenContext::kGetback) = 4;
}
void DreamWebEngine::processEvents() {
More information about the Scummvm-git-logs
mailing list