#include <fcntl.h> /* open() */
#include <limits.h> /* PIPE_BUF */
#include <ncurses.h> /* halfdelay(), getch() */
+#include <stddef.h> /* NULL */
#include <stdint.h> /* uint8_t, uint16_t, uint32_t */
#include <stdio.h> /* FILE, sprintf(), fseek() */
#include <string.h> /* strcmp(), strlen(), memcpy() */
#include "../common/readwrite.h" /* try_fopen(), try_fclose(), try_fgets(),
* try_fgetc()
*/
-#include "control.h" /* meta_control(), player_control(), wingeom_control(),
- * winkeyb_control()
- */
-#include "map_window.h" /* for map_center() */
-#include "wincontrol.h" /* WinConf struct, get_winconf_by_win() */
-#include "windows.h" /* draw_all_wins() */
+#include "control.h" /* try_key() */
+#include "map_window.h" /* map_center() */
+#include "misc.h" /* reset_windows() */
+#include "windows.h" /* reset_windows_on_winch(), draw_all_wins() */
#include "world.h" /* world global */
char * f_name = "read_inventory()";
char * delimiter = "%\n";
free(world.player_inventory);
- world.player_inventory = NULL;
+ world.player_inventory = NULL; /* Avoids illegal strlen() below. */
while (1)
{
try_fgets(read_buf, linemax + 1, file, f_name);
uint8_t change_in_client = 0;
while (1)
{
+ if (world.winch)
+ {
+ reset_windows_on_winch();
+ world.winch = 0;
+ change_in_client++;
+ }
if (read_world() || change_in_client)
{
draw_all_wins();
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");