diff options
author | Vladimir Menshakov | 2011-06-19 15:49:49 +0400 |
---|---|---|
committer | Vladimir Menshakov | 2011-06-19 15:50:22 +0400 |
commit | 4ede98d748d1d3a52714cf84da17ccd83b50d35b (patch) | |
tree | e8955461b497d48d3c16ebf5e58372a68f4802d5 /engines/dreamweb/dreamgen.cpp | |
parent | 41159c68ab35abea23e95974cedc286f530b11c9 (diff) | |
download | scummvm-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/dreamgen.cpp')
-rw-r--r-- | engines/dreamweb/dreamgen.cpp | 47 |
1 files changed, 37 insertions, 10 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; |