Changeset 262:521f73061872


Ignore:
Timestamp:
Sep 4, 2013, 10:37:23 PM (7 years ago)
Author:
Neil Muller <drnlmuller@…>
Branch:
default
rebase_source:
a5259f6b550b790bfff68d63a20b06bf17bab98a
Message:

Better reporting of object errors. Fix incorrect assumption about ordering

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tools/area_editor.py

    r255 r262  
    198198        return getattr(mod, classname)
    199199
    200     def try_new_object(self, target, new, old=None):
     200    def try_new_object(self, classname, target, new, old=None):
    201201        if old in target:
    202202            target.remove(old)
     
    205205            self.reset_objs()
    206206            return True
    207         except Exception:
     207        except Exception as e:
    208208            target.remove(new)
    209209            if old is not None:
    210210                target.append(old)
    211211            self.reset_objs()
     212            alert("Failed to update object %s: %s" % (classname, e))
    212213        return False
    213214
     
    252253        title.rect = pygame.rect.Rect(100, 10, 600, 25)
    253254        self.add(title)
    254         requires = cls.requires()
     255        self.requires = cls.requires()
    255256        y = 40
    256257        self.fields = {}
    257258        index = 0
    258         for requirement, hint in requires:
     259        for requirement, hint in self.requires:
    259260            label = Label(requirement)
    260261            label.rect = pygame.rect.Rect(40, y, 200, 25)
     
    294295        # We arrange to bounce this through yaml'ish to convert
    295296        # stuff to the expected type
    296         for val in self.fields:
     297        for val, _ in self.requires:
    297298            text = self.fields[val].get_text()
    298299            if not text:
     
    504505            edited = self._edit_class(choice['classname'], cls, choice)
    505506            if edited is not None:
    506                 if not self.level.try_new_object(self.level._game_objects,
    507                                                  edited, choice):
    508                     alert('Failed to update GameObject %s'
    509                           % choice['classname'])
     507                self.level.try_new_object(choice["classname"],
     508                                          self.level._game_objects,
     509                                          edited, choice)
    510510        elif res == 'Delete':
    511511            self.level._game_objects.remove(choice)
     
    522522            edited = self._edit_class(choice['classname'], cls, choice)
    523523            if edited is not None:
    524                 if not self.level.try_new_object(self.level._enemies,
    525                                                  edited, choice):
    526                     alert('Failed to update Enemy %s'
    527                           % choice['classname'])
     524                self.level.try_new_object(choice["classname"],
     525                                          self.level._enemies, edited, choice)
    528526        elif res == 'Delete':
    529527            self.level._enemies.remove(choice)
     
    559557            new_cls = self._edit_class(classname, cls, None)
    560558            if new_cls is not None:
    561                 if not self.level.try_new_object(self.level._game_objects,
    562                                                  new_cls, None):
    563                     alert('Failed to add GameObject %s' % classname)
     559                self.level.try_new_object(classname, self.level._game_objects,
     560                                          new_cls, None)
    564561
    565562    def add_enemy(self):
     
    573570            new_cls = self._edit_class(classname, cls, None)
    574571            if new_cls is not None:
    575                 if not self.level.try_new_object(self.level._enemies,
    576                                                  new_cls, None):
    577                     alert('Failed to add Enemy %s' % classname)
     572                self.level.try_new_object(classname, self.level._enemies,
     573                                          new_cls, None)
    578574
    579575    def add_puzzler(self):
     
    587583            new_cls = self._edit_class(classname, cls, None)
    588584            if new_cls is not None:
    589                 if not self.level.try_new_object(self.level._game_objects,
    590                                                  new_cls, None):
    591                     alert('Failed to add Puzzler %s' % classname)
     585                self.level.try_new_object(classname, self.level._game_objects,
     586                                          new_cls, None)
    592587
    593588
Note: See TracChangeset for help on using the changeset viewer.