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 fd039f9e1b59308a12e63de10c1e3fbc61da5224..2974b88b349adddc1bda0e41e072b0978f0d177b 100644
(file)
--- a/
erdslangetjie/level.py
+++ b/
erdslangetjie/level.py
@@
-179,7
+179,6
@@
class Level(object):
self._data[pos[1]][pos[0]]
except IndexError:
return False
self._data[pos[1]][pos[0]]
except IndexError:
return False
- print pos, self._data[pos[1]][pos[0]]
return True
def blocked(self, pos):
return True
def blocked(self, pos):
@@
-237,15
+236,23
@@
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()
if os.path.exists(filepath(line)):
level_file = load(line)
level_list = load(self.LEVELS)
for line in level_list:
line = line.strip()
if os.path.exists(filepath(line)):
level_file = load(line)
-
self.levels.append(Level(level_file)
)
+
level = Level(level_file
)
level_file.close()
level_file.close()
+ try:
+ level.validate()
+ self.levels.append(level)
+ except RuntimeError as err:
+ self.errors.append(
+ 'Invalid level %s in level_list: %s' % (line, err))
else:
else:
- print '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
@@
-255,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()