X-Git-Url: https://plomlompom.com/repos/%7B%7Bprefix%7D%7D/copy_structured?a=blobdiff_plain;f=src%2Fclient%2Fio.c;h=45008155098ac03150c1ad53bf6a9ea8f503866c;hb=25cb881d3f6b7f98d4b52e084c75b6322c57f2bc;hp=35e42e77c2340f3088ce9ea374c40d97a16962a0;hpb=e2788e0bb81b5b9bfe7d3662a3c55883100558a1;p=plomrogue diff --git a/src/client/io.c b/src/client/io.c index 35e42e7..4500815 100644 --- a/src/client/io.c +++ b/src/client/io.c @@ -80,8 +80,8 @@ static uint8_t read_worldstate(); */ static void test_and_poll_server(); -/* Read server out file for messages, act on them (i.e. derive log messages). */ -static uint8_t read_outfile(); +/* Read messages from queue, act on them. */ +static uint8_t read_queue(); @@ -230,14 +230,21 @@ static void test_and_poll_server() -static uint8_t read_outfile() +static uint8_t read_queue() { uint8_t ret = 0; char * msg; while (NULL != (msg = get_message_from_queue(&world.queue))) { char * log_prefix = "LOG "; - if (!strncmp(msg, log_prefix, strlen(log_prefix))) + char * new_world = "NEW_WORLD"; + if (!strcmp(msg, new_world)) + { + ret = 1; + free(world.log); + world.log = NULL; + } + else if (!strncmp(msg, log_prefix, strlen(log_prefix))) { ret = 1; char * log_msg = msg + strlen(log_prefix); @@ -288,7 +295,7 @@ extern char * io_loop() world.winch = 0; change_in_client++; } - if (change_in_client || read_worldstate() || read_outfile()) + if (change_in_client || read_worldstate() || read_queue()) { if (world.turn != last_focused_turn && world.focus_each_turn) {