aboutsummaryrefslogtreecommitdiff
path: root/engines/dreamweb
diff options
context:
space:
mode:
authorVladimir Menshakov2011-06-19 15:49:49 +0400
committerVladimir Menshakov2011-06-19 15:50:22 +0400
commit4ede98d748d1d3a52714cf84da17ccd83b50d35b (patch)
treee8955461b497d48d3c16ebf5e58372a68f4802d5 /engines/dreamweb
parent41159c68ab35abea23e95974cedc286f530b11c9 (diff)
downloadscummvm-rg350-4ede98d748d1d3a52714cf84da17ccd83b50d35b.tar.gz
scummvm-rg350-4ede98d748d1d3a52714cf84da17ccd83b50d35b.tar.bz2
scummvm-rg350-4ede98d748d1d3a52714cf84da17ccd83b50d35b.zip
DREAMWEB: Removed getback = 4 hack, added clean exit from every menus and credits
Diffstat (limited to 'engines/dreamweb')
-rw-r--r--engines/dreamweb/dreamgen.cpp47
-rw-r--r--engines/dreamweb/dreamgen.h1
-rw-r--r--engines/dreamweb/dreamweb.cpp1
3 files changed, 37 insertions, 12 deletions
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 35721d3d4b..7c9c88136c 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 94b7607087..d7cf4677e3 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 0dc25afab0..7e1b9833dc 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() {