home · contact · privacy
Fix face pop-ups on non-faces.
[plomrogue2] / rogue_chat_curses.py
index 7d2a3b163b0d3a05f4c0a24ffe1f2e3b2b67d95a..fdfc2bcbfb12096dd8b36148f48b2b63454242d8 100755 (executable)
@@ -202,6 +202,7 @@ cmd_CHAT.argtypes = 'string'
 
 def cmd_CHATFACE(game, thing_id):
     game.tui.draw_face = thing_id
+    game.tui.do_refresh = True
 cmd_CHATFACE.argtypes = 'int:pos'
 
 def cmd_PLAYER_ID(game, player_id):
@@ -548,7 +549,6 @@ class TUI:
         self.fov = ''
         self.flash = False
         self.map_lines = []
-        self.draw_face = False
         self.offset = YX(0,0)
         curses.wrapper(self.loop)
 
@@ -643,6 +643,7 @@ class TUI:
 
         if self.mode and self.mode.name == 'control_tile_draw':
             self.log_msg('@ finished tile protection drawing.')
+        self.draw_face = False
         self.tile_draw = False
         if mode_name == 'command_thing' and\
            (not self.game.player.carrying or
@@ -965,22 +966,23 @@ class TUI:
 
         def draw_face_popup():
             t = self.game.get_thing(self.draw_face)
-            if not t:
+            if not t or not hasattr(t, 'face'):
                 self.draw_face = False
                 return
 
+            start_x = self.window_width - 10
             def draw_body_part(body_part, end_y):
-                start_x = self.window_width - 10
-                safe_addstr(end_y - 4, start_x, '+--------+')
+                safe_addstr(end_y - 4, start_x, ' ________ ')
                 safe_addstr(end_y - 3, start_x, '|        |')
                 safe_addstr(end_y - 2, start_x, '| ' + body_part[0:6] + ' |')
                 safe_addstr(end_y - 1, start_x, '| ' + body_part[6:12] + ' |')
                 safe_addstr(end_y, start_x, '| ' + body_part[12:18] + ' |')
 
             if hasattr(t, 'face'):
-                draw_body_part(t.face, self.size.y - 1)
+                draw_body_part(t.face, self.size.y - 2)
             if hasattr(t, 'hat'):
-                draw_body_part(t.hat, self.size.y - 4)
+                draw_body_part(t.hat, self.size.y - 5)
+            safe_addstr(self.size.y - 1, start_x, '|        |')
 
         def draw_help():
             content = "%s help\n\n%s\n\n" % (self.mode.short_desc,