diff src/parpg/quest_engine.py @ 12:d60f1dab8469

Fixed resource path dependencies issue that caused PARPG to crash on start. * PARPG should now run without issue (system installation not tested). * Utilized FIFE's VFS module to remove path dependencies from most PARPG modules. * The new parpg.vfs module is a singleton with a single global variable, VFS, which is a reference to the global VFS instance. Although a singleton is not ideal it should be replaced once PARPG's core code is refactored. * The parpg.vfs singleton is initialized in the parpg.applicaiton.PARPGApplication class with the absolute path to the data directory via the parpg.settings module and corresponding configuration file. * A new DataPath entry was added to the default system configuration file template under the [parpg] section to support the new parpg.vfs module. * Updated the parpg-assets subrepo to revision 3 to fix some dialog file format issues (for details see commit message for parpg-assets). * Fixed a few bugs in the parpg.dialogueparsers.YAMLDialogueParser class related to exception handling.
author M. George Hansen <technopolitica@gmail.com>
date Mon, 06 Jun 2011 15:56:14 -1000
parents 1fd2201f5c36
children
line wrap: on
line diff
--- a/src/parpg/quest_engine.py	Tue May 31 02:46:20 2011 -0700
+++ b/src/parpg/quest_engine.py	Mon Jun 06 15:56:14 2011 -1000
@@ -14,8 +14,9 @@
 #   along with PARPG.  If not, see <http://www.gnu.org/licenses/>.
 
 import yaml
+
 from parpg.common.utils import locateFiles
-import os.path
+from parpg import vfs
 
 class Quest(object):
     """Class that holds the information for a quest"""
@@ -142,14 +143,14 @@
     
     def readQuests(self):
         """Reads in the quests in the quest directory"""
-        files = locateFiles("*.yaml", self.quest_dir)
+        filepaths = locateFiles("*.yaml", self.quest_dir)
         self.quests = {}
         self.active_quests = []
         self.finished_quests = []
         self.failed_quests = []
-        for quest_file in files:
-            quest_file = os.path.relpath(quest_file).replace("\\", "/")
-            tree = yaml.load(open(quest_file))
+        for filepath in filepaths:
+            quest_file = vfs.VFS.open(filepath)
+            tree = yaml.load(quest_file)
             quest_properties = tree["QUEST_PROPERTIES"]
             variable_defines = tree["DEFINES"]