[Scummvm-cvs-logs] CVS: scummvm/scumm dialogs.cpp,1.92,1.93 dialogs.h,1.33,1.34 scumm.h,1.331,1.332 scummvm.cpp,2.502,2.503

Travis Howell kirben at users.sourceforge.net
Sun Dec 14 07:05:00 CET 2003


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv14982/scumm

Modified Files:
	dialogs.cpp dialogs.h scumm.h scummvm.cpp 
Log Message:

Always confirm restart


Index: dialogs.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/dialogs.cpp,v
retrieving revision 1.92
retrieving revision 1.93
diff -u -d -r1.92 -r1.93
--- dialogs.cpp	14 Dec 2003 10:46:08 -0000	1.92
+++ dialogs.cpp	14 Dec 2003 15:04:03 -0000	1.93
@@ -621,6 +621,21 @@
 		ScummDialog::handleKeyDown(ascii, keycode, modifiers);
 }
 
+ConfirmRestartDialog::ConfirmRestartDialog(ScummEngine *scumm)
+	: InfoDialog(scumm, "Do you really want to quit (y/n)?") {
+}
+
+void ConfirmRestartDialog::handleKeyDown(uint16 ascii, int keycode, int modifiers) {
+	if (tolower(ascii) == 'n') { // Close exit dialog if n key is pressed
+		setResult(0);
+		close();
+	} else if (tolower(ascii) == 'y') { // Quit if y key is pressed
+		setResult(1);
+		close();
+	} else
+		ScummDialog::handleKeyDown(ascii, keycode, modifiers);
+}
+
 #ifdef _WIN32_WCE
 
 #pragma mark -

Index: dialogs.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/dialogs.h,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -d -r1.33 -r1.34
--- dialogs.h	13 Dec 2003 17:10:46 -0000	1.33
+++ dialogs.h	14 Dec 2003 15:04:05 -0000	1.34
@@ -157,6 +157,12 @@
 	virtual void handleKeyDown(uint16 ascii, int keycode, int modifiers);
 };
 
+class ConfirmRestartDialog : public InfoDialog {
+public:
+	ConfirmRestartDialog(ScummEngine *scumm);
+	virtual void handleKeyDown(uint16 ascii, int keycode, int modifiers);
+};
+
 #ifdef _WIN32_WCE
 
 class KeysDialog : public ScummDialog {

Index: scumm.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scumm.h,v
retrieving revision 1.331
retrieving revision 1.332
diff -u -d -r1.331 -r1.332
--- scumm.h	11 Dec 2003 06:08:43 -0000	1.331
+++ scumm.h	14 Dec 2003 15:04:05 -0000	1.332
@@ -352,10 +352,12 @@
 	Dialog *_optionsDialog;
 	Dialog *_mainMenuDialog;
 	Dialog *_confirmExitDialog;
+	Dialog *_confirmRestartDialog;
 
 protected:
 	int runDialog(Dialog &dialog);
 	void confirmexitDialog();
+	void confirmrestartDialog();
 	void pauseDialog();
 	void mainMenuDialog();
 public:

Index: scummvm.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scummvm.cpp,v
retrieving revision 2.502
retrieving revision 2.503
diff -u -d -r2.502 -r2.503
--- scummvm.cpp	14 Dec 2003 14:32:12 -0000	2.502
+++ scummvm.cpp	14 Dec 2003 15:04:05 -0000	2.503
@@ -327,6 +327,7 @@
 	_optionsDialog = NULL;
 	_mainMenuDialog = NULL;
 	_confirmExitDialog = NULL;
+	_confirmRestartDialog = NULL;
 	_fastMode = 0;
 	_actors = NULL;
 	_inventory = NULL;
@@ -862,6 +863,7 @@
 	delete _optionsDialog;
 	delete _mainMenuDialog;
 	delete _confirmExitDialog;
+	delete _confirmRestartDialog;
 
 	delete _sound;
 	if (_musicEngine) {
@@ -1844,7 +1846,7 @@
 #endif
 
 	if (VAR_RESTART_KEY != 0xFF && _lastKeyHit == VAR(VAR_RESTART_KEY)) {
-		restart();
+		confirmrestartDialog();
 		return;
 	}
 
@@ -2580,6 +2582,15 @@
 
 	if (runDialog(*_confirmExitDialog)) {
 		_quit = true;
+	}
+}
+
+void ScummEngine::confirmrestartDialog() {
+	if (!_confirmRestartDialog)
+		_confirmRestartDialog = new ConfirmRestartDialog(this);
+
+	if (runDialog(*_confirmRestartDialog)) {
+		restart();
 	}
 }
 





More information about the Scummvm-git-logs mailing list