Slightly better required keys displaying (now required keys are always shown).
[naja.git] / naja / widgets / info_area.py
index 40dcdc031d68267388f52b32644107a0811495ba..d8e77b9b8103bbbfc6df76f0672b8b8b579ac006 100644 (file)
@@ -7,7 +7,7 @@ import pygame.locals as pgl
 from naja.constants import (
     INFO_SIZE, ACT, KEYS, EXAMINE, PALETTE,
     ACTION_TEXT_OFFSET, INFO_LEFT_PADDING,
-    INFO_RIGHT_PADDING, BIT_SIZE)
+    INFO_RIGHT_PADDING, BIT_SIZE, BITS)
 from naja.events import finish_event
 from naja.resources import resources
 from naja.resources.mutators import EIGHT_BIT, blender
@@ -138,8 +138,10 @@ class InfoAreaWidget(Widget):
                               [(x_offset, y_offset), (right, y_offset),
                                (right, bottom), (x_offset, bottom)], 4)
 
-        if action.required_bits in BIT_MAP:
-            img_name = BIT_MAP[action.required_bits].replace(
+        required_keys = action.required_bits & frozenset([
+            BITS.RED, BITS.GREEN, BITS.BLUE])
+        if required_keys in BIT_MAP:
+            img_name = BIT_MAP[required_keys].replace(
                 '.png', '_small.png')
             img = resources.get_image(img_name,
                                       transforms=(EIGHT_BIT,))
@@ -153,9 +155,9 @@ class InfoAreaWidget(Widget):
                 glyph, transforms=(EIGHT_BIT, blender(PALETTE.GREY)))
             self.surface.blit(img, (glyphs_x_offset, glyphs_y_offset - 4))
             glyphs_x_offset += img.get_width()
-        if action.MSB_GLYPH is not None:
+        if action.get_msb_glyph() is not None:
             img = resources.get_image(
-                action.MSB_GLYPH,
+                action.get_msb_glyph(),
                 transforms=(EIGHT_BIT, blender(PALETTE.LIGHT_VIOLET)))
             self.surface.blit(img, (glyphs_x_offset, glyphs_y_offset - 4))