projects
/
erdslangetjie.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Display dialog of levels with errors at startup, rather than crashing
[erdslangetjie.git]
/
erdslangetjie
/
level.py
diff --git
a/erdslangetjie/level.py
b/erdslangetjie/level.py
index e4bc0e09a58072ea9c28dccdd2e4f8a790d9a6fb..2974b88b349adddc1bda0e41e072b0978f0d177b 100644
(file)
--- a/
erdslangetjie/level.py
+++ b/
erdslangetjie/level.py
@@
-236,6
+236,7
@@
class LevelList(object):
def __init__(self):
self.levels = []
def __init__(self):
self.levels = []
+ self.errors = []
level_list = load(self.LEVELS)
for line in level_list:
line = line.strip()
level_list = load(self.LEVELS)
for line in level_list:
line = line.strip()
@@
-245,12
+246,13
@@
class LevelList(object):
level_file.close()
try:
level.validate()
level_file.close()
try:
level.validate()
+ self.levels.append(level)
except RuntimeError as err:
except RuntimeError as err:
-
raise RuntimeError
(
+
self.errors.append
(
'Invalid level %s in level_list: %s' % (line, err))
'Invalid level %s in level_list: %s' % (line, err))
- self.levels.append(level)
else:
else:
- raise RuntimeError('Level list includes non-existant level %s' % line)
+ self.errors.append(
+ 'Level list includes non-existant level %s' % line)
level_list.close()
self._cur_level = 0
level_list.close()
self._cur_level = 0
@@
-260,6
+262,9
@@
class LevelList(object):
else:
return None
else:
return None
+ def get_errors(self):
+ return self.errors
+
def advance_to_next_level(self):
self._cur_level += 1
return self.get_current_level()
def advance_to_next_level(self):
self._cur_level += 1
return self.get_current_level()