comparison gamelib/level.py @ 410:e83ec14163f2

Make level loading more robust
author Neil Muller <drnlmuller@gmail.com>
date Sat, 21 Nov 2009 11:04:16 +0000
parents bb75979b58e6
children 1e24eedbf40f
comparison
equal deleted inserted replaced
409:912b2a0ed014 410:e83ec14163f2
1 # level.py 1 # level.py
2 2
3 import constants 3 import constants
4 import data 4 import data
5 import os
5 from animal import DEFAULT_FOX_WEIGHTINGS 6 from animal import DEFAULT_FOX_WEIGHTINGS
6 from ConfigParser import RawConfigParser 7 from ConfigParser import RawConfigParser
7 8
8 class Level(object): 9 class Level(object):
9 """Container for level details""" 10 """Container for level details"""
10 11
11 def __init__(self, level_name): 12 def __init__(self, level_name):
13 level_info = None
12 default_map = '%s.tga' % level_name 14 default_map = '%s.tga' % level_name
13 level_info = data.filepath('levels/%s.conf' % level_name) 15 for poss_file in ['levels/%s.conf' % level_name, '%s.conf' % level_name,
16 'levels/%s' % level_name, level_name]:
17 cand = data.filepath(poss_file)
18 if os.path.exists(cand):
19 level_info = cand
20 break
21 if not level_info:
22 raise RuntimeError('Unable to load %s' % level_name)
14 # Load the level info file 23 # Load the level info file
15 # setup defaults 24 # setup defaults
16 defaults = { 25 defaults = {
17 'map' : default_map, 26 'map' : default_map,
18 'level name' : level_name, 27 'level name' : level_name,