[Scummvm-cvs-logs] scummvm master -> a559e64ca629a2e488c13d72bc4435daf4ebb5c5

dreammaster dreammaster at scummvm.org
Sun Nov 24 20:11:08 CET 2013


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:
a559e64ca6 TSAGE: Fix to prevent saving or loading when conversation dialogs are active


Commit: a559e64ca629a2e488c13d72bc4435daf4ebb5c5
    https://github.com/scummvm/scummvm/commit/a559e64ca629a2e488c13d72bc4435daf4ebb5c5
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2013-11-24T11:10:33-08:00

Commit Message:
TSAGE: Fix to prevent saving or loading when conversation dialogs are active

Changed paths:
    engines/tsage/converse.cpp



diff --git a/engines/tsage/converse.cpp b/engines/tsage/converse.cpp
index 2298d28..f7c1dd2 100644
--- a/engines/tsage/converse.cpp
+++ b/engines/tsage/converse.cpp
@@ -451,6 +451,13 @@ int ConversationChoiceDialog::execute(const Common::StringArray &choiceList) {
 	draw();
 	g_globals->_events.showCursor();
 
+	// WORKAROUND: On-screen dialogs are really meant to use a GfxManager instance
+	// for their lifetime, which prevents saving or loading. Since I don't want to spend a lot
+	// of time refactoring this already working dialog, fake it by putting a dummy gfxmanager at
+	// the end of the gfx manager list so as to prevent saving or loading
+	GfxManager gfxManager;
+	GLOBALS._gfxManagers.push_back(&gfxManager);
+
 	// Event handling loop
 	Event event;
 	while (!g_vm->shouldQuit()) {
@@ -502,6 +509,7 @@ int ConversationChoiceDialog::execute(const Common::StringArray &choiceList) {
 
 	// Remove the dialog
 	remove();
+	GLOBALS._gfxManagers.remove(&gfxManager);
 
 	return _selectedIndex;
 }






More information about the Scummvm-git-logs mailing list