[Scummvm-cvs-logs] scummvm master -> 311e1c495c323f4250bd890c769331ee2a707347

digitall digitall at scummvm.org
Thu Dec 29 00:38:23 CET 2011


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
311e1c495c DREAMWEB: Minor clean up and removal of goto usage in dreamweb().


Commit: 311e1c495c323f4250bd890c769331ee2a707347
    https://github.com/scummvm/scummvm/commit/311e1c495c323f4250bd890c769331ee2a707347
Author: D G Turner (digitall at scummvm.org)
Date: 2011-12-28T15:37:16-08:00

Commit Message:
DREAMWEB: Minor clean up and removal of goto usage in dreamweb().

Changed paths:
    engines/dreamweb/dreamweb.h
    engines/dreamweb/stubs.cpp



diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index 7e6ca1d..c0f518d 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -940,6 +940,7 @@ public:
 	void searchForFiles(const char *filesString);
 	void triggerMessage(uint16 index);
 	void processTrigger();
+	void dreamwebFinalize();
 	void dreamweb();
 	void screenUpdate();
 	void startup1();
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index 3602558..9aa6135 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -456,6 +456,44 @@ static const Atmosphere g_atmosphereList[] = {
 
 };
 
+void DreamWebEngine::dreamwebFinalize() {
+	// The engine will need some cleaner finalization (destructor?), let's put it here for now
+
+	// FIXME: This triggers "Deallocating non existent segment" errors when
+	// quitting from a menu.
+	getRidOfAll();
+
+	_icons1.clear();
+	_icons2.clear();
+	_charset1.clear();
+	_tempGraphics.clear();
+	_tempGraphics2.clear();
+	_tempGraphics3.clear();
+	_tempCharset.clear();
+	_mainSprites.clear();
+
+	_exFrames.clear();
+	_exText.clear();
+
+	_setFrames.clear();
+	_freeFrames.clear();
+	_reel1.clear();
+	_reel2.clear();
+	_reel3.clear();
+	_setDesc.clear();
+	_blockDesc.clear();
+	_roomDesc.clear();
+	_freeDesc.clear();
+	_personText.clear();
+
+	_textFile1.clear();
+	_textFile2.clear();
+	_textFile3.clear();
+	_travelText.clear();
+	_puzzleText.clear();
+	_commandText.clear();
+}
+
 void DreamWebEngine::dreamweb() {
 	switch(getLanguage()) {
 	case Common::EN_ANY:
@@ -491,13 +529,11 @@ void DreamWebEngine::dreamweb() {
 	int savegameId = Common::ConfigManager::instance().getInt("save_slot");
 
 	while (true) {
-
 		uint count = scanForNames();
 
 		bool startNewGame = true;
 
 		if (firstLoop && savegameId >= 0) {
-
 			// loading a savegame requested from launcher/command line
 
 			cls();
@@ -527,12 +563,13 @@ void DreamWebEngine::dreamweb() {
 			cls();
 			setMode();
 			decide();
-			if (_quitRequested)
-				goto done;
+			if (_quitRequested) {
+				dreamwebFinalize();
+				return;
+			}
 
 			if (_getBack == 4)
 				startNewGame = false; // savegame has been loaded
-
 		}
 
 		firstLoop = false;
@@ -547,15 +584,19 @@ void DreamWebEngine::dreamweb() {
 			if (!_quitRequested) // "titlesearly"
 				intro();
 
-			if (_quitRequested)
-				goto done;
+			if (_quitRequested) {
+				dreamwebFinalize();
+				return;
+			}
 
 			// "credits"
 			clearPalette();
 			realCredits();
 
-			if (_quitRequested)
-				goto done;
+			if (_quitRequested) {
+				dreamwebFinalize();
+				return;
+			}
 
 			clearChanges();
 			setMode();
@@ -581,13 +622,17 @@ void DreamWebEngine::dreamweb() {
 
 		// main loop
 		while (true) {
-			if (_quitRequested)
-				goto done;
+			if (_quitRequested) {
+				dreamwebFinalize();
+				return;
+			}
 
 			screenUpdate();
 
-			if (_quitRequested)
-				goto done;
+			if (_quitRequested) {
+				dreamwebFinalize();
+				return;
+			}
 
 			if (_wonGame) {
 				// "endofgame"
@@ -596,7 +641,8 @@ void DreamWebEngine::dreamweb() {
 				hangOn(200);
 				endGame();
 				quickQuit2();
-				goto done;
+				dreamwebFinalize();
+				return;
 			}
 
 			if (_vars._manDead == 1 || _vars._manDead == 2)
@@ -636,40 +682,8 @@ void DreamWebEngine::dreamweb() {
 		hangOn(100);
 
 	}
-done: // The engine will need some cleaner finalization, let's put it here for now
-	// FIXME: This triggers "Deallocating non existent segment" errors when
-	// quitting from a menu.
-	getRidOfAll();
-
-	_icons1.clear();
-	_icons2.clear();
-	_charset1.clear();
-	_tempGraphics.clear();
-	_tempGraphics2.clear();
-	_tempGraphics3.clear();
-	_tempCharset.clear();
-	_mainSprites.clear();
 
-	_exFrames.clear();
-	_exText.clear();
-
-	_setFrames.clear();
-	_freeFrames.clear();
-	_reel1.clear();
-	_reel2.clear();
-	_reel3.clear();
-	_setDesc.clear();
-	_blockDesc.clear();
-	_roomDesc.clear();
-	_freeDesc.clear();
-	_personText.clear();
-
-	_textFile1.clear();
-	_textFile2.clear();
-	_textFile3.clear();
-	_travelText.clear();
-	_puzzleText.clear();
-	_commandText.clear();
+	dreamwebFinalize();
 }
 
 void DreamWebEngine::loadTextFile(TextFile &file, const char *fileName)






More information about the Scummvm-git-logs mailing list