changeset 279:162bddbbc5d0

Protect against bad tilesets as well
author Neil Muller <drnlmuller@gmail.com>
date Thu, 15 Sep 2011 18:21:09 +0200
parents f10d06fc64b2
children cad653e4f59c
files mamba/habitats/editor.py
diffstat 1 files changed, 17 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/mamba/habitats/editor.py	Thu Sep 15 18:11:55 2011 +0200
+++ b/mamba/habitats/editor.py	Thu Sep 15 18:21:09 2011 +0200
@@ -233,7 +233,23 @@
 
     def change_tileset(self, ev, widget, new_name):
         self.level.update_tiles_ascii()
-        self.level.tileset = Tileset(new_name)
+        old_tileset = self.level.tileset
+        try:
+            self.level.tileset = Tileset(new_name)
+            self.level.restart()
+        except pygame.error, error:
+            self.level.tileset = old_tileset
+            message = MessageBox((300, 300),
+                    'Unable to change tileset:: %s' % error,
+                    self.refresh_display, color='red')
+            self.container.add(message)
+            message.grab_focus()
+            return True
+        self.clear_toolbar()
+        self.setup_toolbar()
+        return True
+
+    def refresh_display(self):
         self.level.restart()
         self.clear_toolbar()
         self.setup_toolbar()