# HG changeset patch # User Neil Muller # Date 1378054219 -7200 # Node ID 26d7bb8c09c89558233501b1df86ea80d0d2bc77 # Parent 2c1b85b6f457c90ed532d107ce681b37973859d9 Only save levels if the loops are closed diff -r 2c1b85b6f457 -r 26d7bb8c09c8 tools/area_editor.py --- a/tools/area_editor.py Sun Sep 01 18:46:05 2013 +0200 +++ b/tools/area_editor.py Sun Sep 01 18:50:19 2013 +0200 @@ -89,15 +89,32 @@ surface.blit(self._surface, (0, 0), surface_area) def save(self): + closed = True + for poly in self.polygons.values(): + if len(poly) == 0: + # We ignore empty polygons + continue + elif len(poly) == 1: + closed = False + print "\033[31mError: polygon too small\033[0m" + elif poly[-1] != poly[0]: + closed = False + print "\033[31mError: polygon not closed\033[0m" + if not closed: + print 'Not saving the level' + return levelfile = resources.get_resource_path(self.name) with file(levelfile, 'w') as f: f.write('X-Size: %s\n' % self.x) f.write('Y-Size: %s\n' % self.y) f.write('Base tile: %s\n' % self.basetile) for i, poly in self.polygons.items(): + if len(poly) == 0: + continue f.write('Polygon %d : %d\n' % (i, len(poly))) for point in poly: f.write('Point: %d %d\n' % point) + print 'level %s saved' % self.name class Editor(object):