From 87b8e08add4c032f4f0aa7f07f4964719bbc4236 Mon Sep 17 00:00:00 2001
From: Christian Heller <c.heller@plomlompom.de>
Date: Fri, 11 Dec 2020 00:51:47 +0100
Subject: [PATCH] On name thing prohibition, switch back to edit mode;
 disappear help in curses client upon key press.

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

diff --git a/rogue_chat.html b/rogue_chat.html
index fe78f6b..51e8078 100644
--- a/rogue_chat.html
+++ b/rogue_chat.html
@@ -764,10 +764,10 @@ let tui = {
   },
   switch_mode: function(mode_name) {
 
-    function fail(msg) {
+    function fail(msg, return_mode) {
         tui.log_msg('? ' + msg);
         terminal.blink_screen();
-        this.switch_mode('play');
+        this.switch_mode(return_mode);
     }
 
     if (this.mode && this.mode.name == 'control_tile_draw') {
@@ -776,13 +776,13 @@ let tui = {
     this.tile_draw = false;
       if (mode_name == 'command_thing' && (!game.player.carrying
                                            || !game.player.carrying.commandable)) {
-        return fail('not carrying anything commandable');
+        return fail('not carrying anything commandable', 'play');
     };
     if (mode_name == 'take_thing' && game.player.carrying) {
-        return fail('already carrying something');
+        return fail('already carrying something', 'play');
     };
     if (mode_name == 'drop_thing' && !game.player.carrying) {
-        return fail('not carrying anything droppable');
+        return fail('not carrying anything droppable', 'play');
     }
     if (mode_name == 'admin_enter' && this.is_admin) {
         mode_name = 'admin';
@@ -800,7 +800,7 @@ let tui = {
             }
         }
         if (!thing_id) {
-            return fail('not standing over thing');
+            return fail('not standing over thing', 'fail');
         } else {
             this.selected_thing_id = thing_id;
         }
diff --git a/rogue_chat_curses.py b/rogue_chat_curses.py
index f75877a..8eb70d6 100755
--- a/rogue_chat_curses.py
+++ b/rogue_chat_curses.py
@@ -629,10 +629,10 @@ class TUI:
 
     def switch_mode(self, mode_name):
 
-        def fail(msg):
+        def fail(msg, return_mode='play'):
             self.log_msg('? ' + msg)
             self.flash = True
-            self.switch_mode('play')
+            self.switch_mode(return_mode)
 
         if self.mode and self.mode.name == 'control_tile_draw':
             self.log_msg('@ finished tile protection drawing.')
@@ -655,7 +655,7 @@ class TUI:
                 thing = t
                 break
             if not thing:
-                return fail('not standing over thing')
+                return fail('not standing over thing', 'edit')
             else:
                 self.thing_selected = thing
         self.mode = getattr(self, 'mode_' + mode_name)
@@ -1087,6 +1087,7 @@ class TUI:
             keycode = None
             if len(key) == 1:
                 keycode = ord(key)
+            self.show_help = False
             if key == 'KEY_RESIZE':
                 reset_screen_size()
             elif self.mode.has_input_prompt and key == 'KEY_BACKSPACE':
-- 
2.30.2