[gbrainy] Fixes bug with command line



commit 1c3495963f9643749976ed9eca6776e341633d24
Author: Jordi Mas <jmas softcatala org>
Date:   Fri Jul 23 17:26:39 2010 +0200

    Fixes bug with command line

 src/Clients/Classical/CommandLine.cs     |    3 +++
 src/Clients/Classical/Defines.cs.in      |    4 ++++
 src/Clients/Classical/gbrainy.cs         |   15 +++++++++------
 src/Core/Main/Defines.cs.in              |    1 -
 src/Core/Main/GameManager.cs             |   13 ++++++++-----
 src/Core/Main/Verbal/AnalogiesFactory.cs |    8 --------
 tests/Core/GameManagerTest.cs            |    1 +
 7 files changed, 25 insertions(+), 20 deletions(-)
---
diff --git a/src/Clients/Classical/CommandLine.cs b/src/Clients/Classical/CommandLine.cs
index 3dfb43d..acfa314 100644
--- a/src/Clients/Classical/CommandLine.cs
+++ b/src/Clients/Classical/CommandLine.cs
@@ -108,6 +108,8 @@ namespace gbrainy.Clients.Classical
 		{
 			GameManager.GameLocator [] games;
 			GameManager gm = new GameManager ();
+
+			GtkClient.GameManagerPreload (gm);
 			gm.GameType = GameSession.Types.AllGames;
 			games = gm.AvailableGames;
 
@@ -129,6 +131,7 @@ namespace gbrainy.Clients.Classical
 			Dictionary <string, int> dictionary;
 			GameManager.GameLocator [] games;
 			GameManager gm = new GameManager ();
+			GtkClient.GameManagerPreload (gm);
 			games = gm.AvailableGames;
 
 			// Create a hash to map from game name to locator
diff --git a/src/Clients/Classical/Defines.cs.in b/src/Clients/Classical/Defines.cs.in
index 7eee6ba..7e2c4ef 100644
--- a/src/Clients/Classical/Defines.cs.in
+++ b/src/Clients/Classical/Defines.cs.in
@@ -28,5 +28,9 @@ namespace gbrainy.Clients.Classical
 		public const string DATA_DIR = "@prefix@/share/games/gbrainy/";
 		public const string COPYRIGHT = "@COPYRIGHT@";
 		public const string BUILD_TIME = "@BUILD_TIME@";
+
+		public const string VERBAL_ANALOGIES = "verbal_analogies.xml";
+		public const string GAME_ASSEMBLY = "gbrainy.Games.dll";
+		public const string GAMES_FILE = "games.xml";
 	}
 }
diff --git a/src/Clients/Classical/gbrainy.cs b/src/Clients/Classical/gbrainy.cs
index ea8d67a..da425e0 100755
--- a/src/Clients/Classical/gbrainy.cs
+++ b/src/Clients/Classical/gbrainy.cs
@@ -98,13 +98,8 @@ namespace gbrainy.Clients.Classical
 
 		public void Initialize ()
 		{
-			const string ASSEMBLY = "gbrainy.Games.dll";
-
 			session = new GameSession ();
-
-			session.GameManager.LoadAssemblyGames (ASSEMBLY);
-			session.GameManager.LoadPlugins ();
-			session.GameManager.LoadGamesFromXml (System.IO.Path.Combine (Defines.DATA_DIR, "games.xml"));
+			GameManagerPreload (session.GameManager);
 			session.GameManager.ShowGamesSummary ();
 
 			session.GameManager.ColorBlind = Preferences.GetBoolValue (Preferences.ColorBlindKey);
@@ -116,6 +111,14 @@ namespace gbrainy.Clients.Classical
 			BuildUI ();
 		}
 
+		public static void GameManagerPreload (GameManager gm)
+		{
+			gm.LoadAssemblyGames (Defines.GAME_ASSEMBLY);
+			gm.LoadVerbalAnalogies (System.IO.Path.Combine (Defines.DATA_DIR, Defines.VERBAL_ANALOGIES));
+			gm.LoadGamesFromXml (System.IO.Path.Combine (Defines.DATA_DIR, Defines.GAMES_FILE));
+			gm.LoadPlugins ();
+		}
+
 		void BuildUI ()
 		{
 			bool show_toolbar;
diff --git a/src/Core/Main/Defines.cs.in b/src/Core/Main/Defines.cs.in
index 294a202..a76f718 100644
--- a/src/Core/Main/Defines.cs.in
+++ b/src/Core/Main/Defines.cs.in
@@ -25,7 +25,6 @@ namespace gbrainy.Core.Main
 	{
 		public const string VERSION = "@VERSION@";
 		public const string DATA_DIR = "@prefix@/share/games/gbrainy/";
-		public const string VERBAL_ANALOGIES = "verbal_analogies.xml";
 		public const string CONFIG_DIR = "gbrainy"; // like .config/gbrainy
 	}
 }
diff --git a/src/Core/Main/GameManager.cs b/src/Core/Main/GameManager.cs
index f50d8e2..d302408 100644
--- a/src/Core/Main/GameManager.cs
+++ b/src/Core/Main/GameManager.cs
@@ -82,11 +82,6 @@ namespace gbrainy.Core.Main
 			play_list = new List <int> ();
 			cnt_logic = cnt_memory = cnt_calculation = cnt_verbal = 0;
 			RandomOrder = true;
-
-			// Load Analogies
-			cnt_verbal += AddVerbalGamesAndVariations (VerbalAnalogiesInternal);
-
-			LoadPlugins ();
 #if PDF_DUMP
 			GeneratePDF ();
 #endif
@@ -247,6 +242,7 @@ namespace gbrainy.Core.Main
 			}
 		}
 
+		// Load Mono plugins
 		public void LoadPlugins ()
 		{
 
@@ -300,6 +296,13 @@ namespace gbrainy.Core.Main
 	#endif
 		}
 
+		// Load an XML file with analogies
+		public void LoadVerbalAnalogies (string file)
+		{
+			AnalogiesFactory.Read (file);
+			cnt_verbal += AddVerbalGamesAndVariations (VerbalAnalogiesInternal);
+		}
+
 		// Unload previous assembly, xml and verbal analogies loaded games
 		public void ResetAvailableGames ()
 		{
diff --git a/src/Core/Main/Verbal/AnalogiesFactory.cs b/src/Core/Main/Verbal/AnalogiesFactory.cs
index caa0b97..96ed1c1 100644
--- a/src/Core/Main/Verbal/AnalogiesFactory.cs
+++ b/src/Core/Main/Verbal/AnalogiesFactory.cs
@@ -44,17 +44,9 @@ namespace gbrainy.Core.Main.Verbal
 
 		static public Dictionary <int, Analogy> Get (Analogy.Type type)
 		{
-			if (read == false)
-				Read ();
-
 			return analogies_arrays [(int) type];
 		}
 
-		static void Read ()
-		{
-			Read (Path.Combine (Defines.DATA_DIR, Defines.VERBAL_ANALOGIES));
-		}			
-
 		static public void Read (string file)
 		{
 			Analogy analogy;
diff --git a/tests/Core/GameManagerTest.cs b/tests/Core/GameManagerTest.cs
index d191a29..b581d75 100644
--- a/tests/Core/GameManagerTest.cs
+++ b/tests/Core/GameManagerTest.cs
@@ -144,6 +144,7 @@ namespace gbrainyTest
 		{
 			GameManager manager = new GameManager ();
 			manager.GameType = GameSession.Types.AllGames;
+			manager.LoadAssemblyGames ("gbrainy.Games.dll");
 			Assert.AreNotEqual (0, manager.AvailableGames.Length);
 
 			manager.ResetAvailableGames ();



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]