home · contact · privacy
On world (re-)generation, server sends 'NEW_WORLD', client clears log.
authorChristian Heller <c.heller@plomlompom.de>
Thu, 20 Nov 2014 21:37:29 +0000 (22:37 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Thu, 20 Nov 2014 21:37:29 +0000 (22:37 +0100)
SERVER_COMMANDS
src/client/io.c
src/server/init.c

index 6d011c7e83d0b41fbc8e50214e9f72bbdcaaee24..5760e54fae36bdff19e36317c325310a59ce4f3b 100644 (file)
@@ -99,7 +99,8 @@ MAKE_WORLD [0 to 4294967296]
 Set map seed and randomness seed to argument. Remove all things. (Re-)generate
 map. Add to map things specified in thing types table in quantity defined there
 by START_NUMBER command, with first thing (of thing ID of 0) of type defined as
-player type by PLAYER_TYPE command. Set world turn to 1. Activate world.
+player type by PLAYER_TYPE command. Set world turn to 1. Activate world. Answer
+with 'NEW_WORLD' message in ./server/out file.
 
 MAP_LENGTH [1 to 256]
 Deactivate world. Remove ./server/worldstate file. Remove all things. Remove
index 233a60c78043bd8e6c7de7e54c0e98eed511bcdf..45008155098ac03150c1ad53bf6a9ea8f503866c 100644 (file)
@@ -80,7 +80,7 @@ static uint8_t read_worldstate();
  */
 static void test_and_poll_server();
 
-/* Read queue, act on them (as of right now only: derive log messages). */
+/* Read messages from queue, act on them. */
 static uint8_t read_queue();
 
 
@@ -237,7 +237,14 @@ static uint8_t read_queue()
     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);
index ee9f9c276872897e121c7acca1b7268bd4ec3c27..f4c191b8c72ff52d8a6bbe05d509ac33fa14a341 100644 (file)
@@ -31,7 +31,7 @@
 #include "things.h" /* Thing, ThingType, free_things(), add_things(),
                      * get_thing_id_action_id_by_name()
                      */
-#include "run.h" /* obey_msg(), io_loop(), record() */
+#include "run.h" /* obey_msg(), io_loop(), record(), send_to_outfile() */
 #include "world.h" /* global world */
 
 
@@ -226,6 +226,7 @@ extern uint8_t remake_world()
     world.turn = 1;
     world.do_update = 1;
     world.exists = 1;
+    send_to_outfile("NEW_WORLD\n");
     return 0;
 }