[Scummvm-cvs-logs] SF.net SVN: scummvm: [30866] scummvm/trunk/engines/lure
dreammaster at users.sourceforge.net
dreammaster at users.sourceforge.net
Thu Feb 14 23:52:58 CET 2008
Revision: 30866
http://scummvm.svn.sourceforge.net/scummvm/?rev=30866&view=rev
Author: dreammaster
Date: 2008-02-14 14:52:57 -0800 (Thu, 14 Feb 2008)
Log Message:
-----------
Changed error dialog display to exit ScummVM through the standard execution path rather than using the exit() method
Modified Paths:
--------------
scummvm/trunk/engines/lure/lure.cpp
scummvm/trunk/engines/lure/lure.h
Modified: scummvm/trunk/engines/lure/lure.cpp
===================================================================
--- scummvm/trunk/engines/lure/lure.cpp 2008-02-14 19:59:51 UTC (rev 30865)
+++ scummvm/trunk/engines/lure/lure.cpp 2008-02-14 22:52:57 UTC (rev 30866)
@@ -58,6 +58,7 @@
int LureEngine::init() {
int_engine = this;
+ _initialised = false;
_system->beginGFXTransaction();
initCommonGFX(false);
@@ -67,19 +68,24 @@
// Check the version of the lure.dat file
Common::File f;
VersionStructure version;
- if (!f.open(SUPPORT_FILENAME))
+ if (!f.open(SUPPORT_FILENAME)) {
GUIError("Could not locate Lure support file");
+ return 1;
+ }
f.seek(0xbf * 8);
f.read(&version, sizeof(VersionStructure));
f.close();
- if (READ_LE_UINT16(&version.id) != 0xffff)
+ if (READ_LE_UINT16(&version.id) != 0xffff) {
GUIError("Error validating %s - file is invalid or out of date", SUPPORT_FILENAME);
- else if ((version.vMajor != LURE_DAT_MAJOR) || (version.vMinor != LURE_DAT_MINOR))
+ return 1;
+ } else if ((version.vMajor != LURE_DAT_MAJOR) || (version.vMinor != LURE_DAT_MINOR)) {
GUIError("Incorrect version of %s file - expected %d.%d but got %d.%d",
SUPPORT_FILENAME, LURE_DAT_MAJOR, LURE_DAT_MINOR,
version.vMajor, version.vMinor);
+ return 1;
+ }
_disk = new Disk();
_resources = new Resources();
@@ -91,6 +97,8 @@
Surface::initialise();
_room = new Room();
_fights = new FightsManager();
+
+ _initialised = true;
return 0;
}
@@ -98,17 +106,19 @@
// Remove all of our debug levels here
Common::clearAllSpecialDebugLevels();
- // Delete and deinitialise subsystems
- Surface::deinitialise();
- delete _fights;
- delete _room;
- delete _menu;
- delete _events;
- delete _mouse;
- delete _screen;
- delete _strings;
- delete _resources;
- delete _disk;
+ if (_initialised) {
+ // Delete and deinitialise subsystems
+ Surface::deinitialise();
+ delete _fights;
+ delete _room;
+ delete _menu;
+ delete _events;
+ delete _mouse;
+ delete _screen;
+ delete _strings;
+ delete _resources;
+ delete _disk;
+ }
}
LureEngine &LureEngine::getReference() {
@@ -233,7 +243,6 @@
va_end(va);
Engine::GUIErrorMessage(buffer);
- exit(1);
}
Common::String *LureEngine::detectSave(int slotNumber) {
Modified: scummvm/trunk/engines/lure/lure.h
===================================================================
--- scummvm/trunk/engines/lure/lure.h 2008-02-14 19:59:51 UTC (rev 30865)
+++ scummvm/trunk/engines/lure/lure.h 2008-02-14 22:52:57 UTC (rev 30866)
@@ -46,6 +46,7 @@
class LureEngine : public Engine {
private:
+ bool _initialised;
uint8 _saveVersion;
Disk *_disk;
Resources *_resources;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list