From: Christian Heller <c.heller@plomlompom.de>
Date: Wed, 9 Dec 2020 04:08:43 +0000 (+0100)
Subject: Add escape key "panic button" to return to play mode, whatever.
X-Git-Url: https://plomlompom.com/repos/%7B%7Bprefix%7D%7D/static/%7B%7B%20web_path%20%7D%7D/te&quot;st.html?a=commitdiff_plain;h=1750783da9cd6fd4f80d6484a3b714c352eef126;p=plomrogue2

Add escape key "panic button" to return to play mode, whatever.
---

diff --git a/rogue_chat.html b/rogue_chat.html
index c871b6a..ebe64f2 100644
--- a/rogue_chat.html
+++ b/rogue_chat.html
@@ -1472,11 +1472,12 @@ tui.inputEl.addEventListener('keydown', (event) => {
     if (event.key == 'Enter') {
         event.preventDefault();
     }
-    if (tui.mode.has_input_prompt && event.key == 'Enter'
-        && tui.inputEl.value.length == 0
-        && ['chat', 'command_thing', 'take_thing', 'drop_thing',
-            'admin_enter'].includes(tui.mode.name)) {
-        if (tui.mode.name != 'chat') {
+    if ((!tui.mode.is_intro && event.key == 'Escape')
+        || (tui.mode.has_input_prompt && event.key == 'Enter'
+            && tui.inputEl.value.length == 0
+            && ['chat', 'command_thing', 'take_thing', 'drop_thing',
+                'admin_enter'].includes(tui.mode.name))) {
+        if (!['chat', 'play', 'study', 'edit'].includes(tui.mode.name)) {
             tui.log_msg('@ aborted');
         }
         tui.switch_mode('play');
diff --git a/rogue_chat_curses.py b/rogue_chat_curses.py
index 6f13638..8fc2817 100755
--- a/rogue_chat_curses.py
+++ b/rogue_chat_curses.py
@@ -1086,15 +1086,20 @@ class TUI:
                 self.do_refresh = True
             except curses.error:
                 continue
-            self.show_help = False
+            keycode = None
+            if len(key) == 1:
+                keycode = ord(key)
             if key == 'KEY_RESIZE':
                 reset_screen_size()
             elif self.mode.has_input_prompt and key == 'KEY_BACKSPACE':
                 self.input_ = self.input_[:-1]
-            elif self.mode.has_input_prompt and key == '\n' and self.input_ == ''\
-                 and self.mode.name in {'chat', 'command_thing', 'take_thing',
-                                        'drop_thing', 'admin_enter'}:
-                if self.mode.name != 'chat':
+            elif (((not self.mode.is_intro) and keycode == 27)  # Escape
+                  or (self.mode.has_input_prompt and key == '\n'
+                      and self.input_ == ''\
+                      and self.mode.name in {'chat', 'command_thing',
+                                             'take_thing', 'drop_thing',
+                                             'admin_enter'})):
+                if self.mode.name not in {'chat', 'play', 'study', 'edit'}:
                     self.log_msg('@ aborted')
                 self.switch_mode('play')
             elif self.mode.has_input_prompt and key == '\n' and self.input_ == '/help':