From b3274c1e3219d50cc67487684608c7b4bd456675 Mon Sep 17 00:00:00 2001
From: Christian Heller <c.heller@plomlompom.de>
Date: Fri, 11 Dec 2020 07:20:21 +0100
Subject: [PATCH] Improve chat face pop-up usability.

---
 rogue_chat.html      | 11 ++++++-----
 rogue_chat_curses.py | 11 ++++++-----
 2 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/rogue_chat.html b/rogue_chat.html
index 5e66398..781fc63 100644
--- a/rogue_chat.html
+++ b/rogue_chat.html
@@ -778,6 +778,7 @@ let tui = {
     if (this.mode && this.mode.name == 'control_tile_draw') {
         tui.log_msg('@ finished tile protection drawing.')
     }
+    this.draw_face = false;
     this.tile_draw = false;
       if (mode_name == 'command_thing' && (!game.player.carrying
                                            || !game.player.carrying.commandable)) {
@@ -1137,20 +1138,21 @@ let tui = {
           this.draw_face = false;
           return;
       }
+      const start_x = tui.window_width - 10;
       function draw_body_part(body_part, end_y) {
-          const start_x = tui.window_width - 10;
-          terminal.write(end_y - 4, start_x, '+--------+');
+          terminal.write(end_y - 4, start_x, ' ________ ');
           terminal.write(end_y - 3, start_x, '|        |');
           terminal.write(end_y - 2, start_x, '| ' + body_part.slice(0, 6) + ' |');
           terminal.write(end_y - 1, start_x, '| ' + body_part.slice(6, 12) + ' |');
           terminal.write(end_y, start_x, '| ' + body_part.slice(12, 18) + ' |');
       }
       if (t.face) {
-          draw_body_part(t.face, terminal.rows - 1);
+          draw_body_part(t.face, terminal.rows - 2);
       }
       if (t.hat) {
-          draw_body_part(t.hat, terminal.rows - 4);
+          draw_body_part(t.hat, terminal.rows - 5);
       }
+      terminal.write(terminal.rows - 1, start_x, '|        |');
   },
   draw_mode_line: function() {
       let help = 'hit [' + this.keys.help + '] for help';
@@ -1503,7 +1505,6 @@ document.onclick = function() {
 };
 tui.inputEl.addEventListener('keydown', (event) => {
     tui.show_help = false;
-    tui.draw_face = false;
     if (event.key == 'Enter') {
         event.preventDefault();
     }
diff --git a/rogue_chat_curses.py b/rogue_chat_curses.py
index 2858892..983a422 100755
--- a/rogue_chat_curses.py
+++ b/rogue_chat_curses.py
@@ -549,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)
 
@@ -644,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
@@ -970,18 +970,19 @@ class TUI:
                 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,
-- 
2.30.2