changeset 410:e83ec14163f2

Make level loading more robust
author Neil Muller <drnlmuller@gmail.com>
date Sat, 21 Nov 2009 11:04:16 +0000
parents 912b2a0ed014
children 03d5cb669298
files gamelib/level.py
diffstat 1 files changed, 10 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/gamelib/level.py	Sat Nov 21 09:54:03 2009 +0000
+++ b/gamelib/level.py	Sat Nov 21 11:04:16 2009 +0000
@@ -2,6 +2,7 @@
 
 import constants
 import data
+import os
 from animal import DEFAULT_FOX_WEIGHTINGS
 from ConfigParser import RawConfigParser
 
@@ -9,8 +10,16 @@
     """Container for level details"""
 
     def __init__(self, level_name):
+        level_info = None
         default_map = '%s.tga' % level_name
-        level_info = data.filepath('levels/%s.conf' % level_name)
+        for poss_file in ['levels/%s.conf' % level_name, '%s.conf' % level_name,
+                'levels/%s' % level_name, level_name]:
+            cand = data.filepath(poss_file)
+            if os.path.exists(cand):
+                level_info = cand
+                break
+        if not level_info:
+            raise RuntimeError('Unable to load %s' % level_name)
         # Load the level info file
         # setup defaults
         defaults = {