home · contact · privacy
Removed memory leak in client's reset_windows(). (Previously, not all Win
[plomrogue] / src / client / io.c
index 32843896143ae3202e17bc4b5074c8bcaf6b9072..998691cc9637e1b4be8236b79b1fe57d096d4339 100644 (file)
 #include "../common/readwrite.h" /* try_fopen(), try_fclose(), try_fgets(),
                                   * try_fgetc()
                                   */
-#include "control.h" /* meta_control(), player_control(), wingeom_control(),
-                      * winkeyb_control()
-                      */
+#include "control.h" /* try_key() */
 #include "map_window.h" /* for map_center() */
-#include "wincontrol.h" /* WinConf struct, get_winconf_by_win() */
+#include "misc.h" /* reset_windows() */
 #include "windows.h" /* draw_all_wins() */
 #include "world.h" /* world global */
 
@@ -260,6 +258,12 @@ extern char * io_loop()
     uint8_t change_in_client = 0;
     while (1)
     {
+        if (world.winch)
+        {
+            reset_windows();
+            world.winch = 0;
+            change_in_client++;
+        }
         if (read_world() || change_in_client)
         {
             draw_all_wins();
@@ -268,21 +272,11 @@ extern char * io_loop()
         int key = getch();
         if (ERR != key)
         {
-            change_in_client = meta_control(key);
+            change_in_client = try_key((uint16_t) key);
             if (2 == change_in_client)
             {
                 break;
             }
-            if (!change_in_client)
-            {
-                change_in_client = player_control(key);
-            }
-            if (!change_in_client)
-            {
-                struct WinConf * wc = get_winconf_by_win(world.wmeta.active);
-                change_in_client =    (1 == wc->view && wingeom_control(key))
-                                   || (2 == wc->view && winkeyb_control(key));
-            }
         }
     }
     try_send("QUIT");