changeset 163:0d6e23dcd3af

fixed redrawing
author Adrianna Pińska <adrianna.pinska@gmail.com>
date Thu, 03 Sep 2009 22:22:57 +0000
parents fa57868123d7
children ab90040013a7
files gamelib/animal.py
diffstat 1 files changed, 6 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/gamelib/animal.py	Thu Sep 03 22:19:34 2009 +0000
+++ b/gamelib/animal.py	Thu Sep 03 22:22:57 2009 +0000
@@ -61,16 +61,19 @@
 
     def equip(self, item):
         self.equipment.append(item)
-        self.redraw_equipment()
+        self.redraw()
 
     def unequip(self, item):
         self.equipment = [e for e in self.equipment if e != item]
-        self.redraw_equipment()
+        self.redraw()
 
-    def redraw_equipment(self):
+    def redraw(self):
+        self.image_left = self._image_left.copy()
+        self.image_right = self._image_right.copy()
         self.equipment.sort(key=lambda x: x.DRAW_LAYER)
         for item in self.equipment:
             self.draw_equipment(item)
+        self._set_image_facing(self.facing)
 
     def draw_equipment(self, item):
         if not hasattr(self, 'EQUIPMENT_IMAGE_ATTRIBUTE'):
@@ -82,7 +85,6 @@
         eq_image_right = imagecache.load_image(eq_image_attr, ("right_facing",))
         self.image_left.blit(eq_image_left, (0, 0))
         self.image_right.blit(eq_image_right, (0, 0))
-        self._set_image_facing(self.facing)
 
     def weapons(self):
         return [e for e in self.equipment if equipment.is_weapon(e)]