home · contact · privacy
Server: Execute THINGS_HERE command only on existing worlds.
authorChristian Heller <c.heller@plomlompom.de>
Sun, 7 Dec 2014 02:35:51 +0000 (03:35 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Sun, 7 Dec 2014 02:35:51 +0000 (03:35 +0100)
SERVER_COMMANDS
src/server/run.c

index dba4b95cfff5ef2b5448800589d77a7b7ab46589..de6ad7be1a2b75d2b268ef9f90a02b049d9db3c4 100644 (file)
@@ -54,9 +54,9 @@ QUIT
 Shut down server.
 
 THINGS_HERE [0 to 255] [0 to 255]
-Write line-by-line list of items at y position of first argument, x position of
-second argument into ./server/out file, enclosed by two lines "THINGS_HERE START"
-and "THINGS_HERE END".
+If world exists, write line-by-line list of things at y position of first
+argument, x position of second argument of map into ./server/out file, enclosed
+by two lines "THINGS_HERE START" and "THINGS_HERE END".
 
 Player commands
 ---------------
index 9163ee05b4d125d22040be802ee44ba02e096c9e..d88d583041b3f5007686d42a1ac02a383ee9d549 100644 (file)
@@ -214,6 +214,11 @@ static uint8_t parse_command_meta(char * tok0)
         char * tok2 = token_from_line(NULL);
         if (tok1&&tok2 && !parsetest_int(tok1, '8')&&!parsetest_int(tok2, '8'))
         {
+            if (!world.exists)
+            {
+                err_line(1, "Command only works on existing worlds.");
+                return 0;
+            }
             send_to_outfile("THINGS_HERE START\n", 1);
             struct Thing * t;
             for (t = world.things; t; t = t->next)
@@ -411,7 +416,7 @@ extern uint8_t obey_msg(char * msg, uint8_t obey_state)
         }
         else if (!world.replay)
         {
-            err_line(1, "Unknown command/argument or bad number of tokens.");
+            err_line(1, "Invalid command/argument or bad number of tokens.");
         }
     }
     free(msg_copy);