home · contact · privacy
Fix game state change overwriting input fields.
[plomrogue2] / rogue_chat_curses.py
index 52f2f8c075552ec987037a1426a9c7c32602a659..2adbe3bb8c3e60cd7b08da5bca2ebbe948f78c8f 100755 (executable)
@@ -9,7 +9,7 @@ from plomrogue.parser import Parser
 from plomrogue.mapping import YX, MapGeometrySquare, MapGeometryHex
 from plomrogue.things import ThingBase
 from plomrogue.misc import quote
-from plomrogue.errors import BrokenSocketConnection
+from plomrogue.errors import BrokenSocketConnection, ArgError
 
 mode_helps = {
     'play': {
@@ -238,7 +238,6 @@ cmd_ANNOTATION_HINT.argtypes = 'yx_tuple:nonneg'
 
 def cmd_ANNOTATION(game, position, msg):
     game.info_db[position] = msg
-    game.tui.restore_input_values()
     if game.tui.mode.shows_info:
         game.tui.do_refresh = True
 cmd_ANNOTATION.argtypes = 'yx_tuple:nonneg string'
@@ -453,6 +452,7 @@ class TUI:
             self.disconnected = False
             self.game.thing_types = {}
             self.game.terrains = {}
+            time.sleep(0.1)  # give potential SSL negotation some time …
             self.socket.send('TASKS')
             self.socket.send('TERRAINS')
             self.socket.send('THING_TYPES')
@@ -466,8 +466,8 @@ class TUI:
     def reconnect(self):
         self.log_msg('@ attempting reconnect')
         self.send('QUIT')
-        time.sleep(0.1)  # FIXME necessitated by some some strange SSL race
-                         # conditions with ws4py, find out what exactly
+        # necessitated by some strange SSL race conditions with ws4py
+        time.sleep(0.1)  # FIXME find out why exactly necessary
         self.switch_mode('waiting_for_server')
         self.connect()
 
@@ -519,12 +519,12 @@ class TUI:
         if mode_name == 'admin_enter' and self.is_admin:
             mode_name = 'admin'
         self.mode = getattr(self, 'mode_' + mode_name)
-        if self.mode and self.mode.name == 'control_tile_draw':
+        if self.mode.name == 'control_tile_draw':
             self.log_msg('@ finished tile protection drawing.')
         if self.mode.name in {'control_tile_draw', 'control_tile_type',
                               'control_pw_type'}:
             self.map_mode = 'protections'
-        elif self.mode.name!= 'edit':
+        elif self.mode.name != 'edit':
             self.map_mode = 'terrain + things'
         if self.mode.shows_info or self.mode.name == 'control_tile_draw':
             player = self.game.get_thing(self.game.player_id)
@@ -723,7 +723,7 @@ class TUI:
             if type(self.game.map_geometry) == MapGeometryHex:
                 indent = 0
                 for line in map_lines_split:
-                    map_lines += [indent*' ' + ''.join(line)]
+                    map_lines += [indent * ' ' + ''.join(line)]
                     indent = 0 if indent else 1
             else:
                 for line in map_lines_split:
@@ -787,7 +787,7 @@ class TUI:
             for i in range(self.size.y):
                 safe_addstr(i,
                             self.window_width * (not self.mode.has_input_prompt),
-                            ' '*self.window_width)
+                            ' ' * self.window_width)
             lines = []
             for line in content.split('\n'):
                 lines += msg_into_lines_of_width(line, self.window_width)
@@ -815,7 +815,7 @@ class TUI:
                 draw_help()
 
         curses.curs_set(False)  # hide cursor
-        curses.use_default_colors();
+        curses.use_default_colors()
         stdscr.timeout(10)
         reset_screen_size()
         self.explorer = YX(0, 0)
@@ -976,7 +976,7 @@ class TUI:
                 if self.mode.mode_switch_on_key(self, key):
                     continue
                 elif key == self.keys['flatten'] and\
-                     'FLATTEN_SURROUNDINGS' in self.game.tasks:
+                    'FLATTEN_SURROUNDINGS' in self.game.tasks:
                     self.send('TASK:FLATTEN_SURROUNDINGS ' + quote(self.password))
                 elif key == self.keys['toggle_map_mode']:
                     self.toggle_map_mode()