home · contact · privacy
Copy bugfixed version of erlehmann's redo script.
[plomrogue] / src / server / run.c
index 8c1297d1da1172a51a802578c5d01c5ce99f016a..b715ca4e74329617085f9dc4317e4f4202d060b2 100644 (file)
@@ -1,4 +1,9 @@
-/* src/server/run.c */
+/* src/server/run.c
+ *
+ * This file is part of PlomRogue. PlomRogue is licensed under the GPL version 3
+ * or any later version. For details on its copyright, license, and warranties,
+ * see the file NOTICE in the root directory of the PlomRogue source package.
+ */
 
 #define _POSIX_C_SOURCE 200809L
 #include "run.h"
@@ -20,7 +25,7 @@
 #include "../common/try_malloc.h" /* try_malloc() */
 #include "ai.h" /* ai() */
 #include "cleanup.h" /* unset_cleanup_flag() */
-#include "god_commands.h" /* parse_god_command_1arg(),parse_god_command_2arg()*/
+#include "god_commands.h" /* parse_god_command_(1|2|3)arg() */
 #include "hardcoded_strings.h" /* s */
 #include "io.h" /* io_round(), save_world() */
 #include "things.h" /* Thing, get_thing_action_id_by_name(), get_player() */
@@ -75,8 +80,7 @@ static uint8_t player_commands_allowed()
 {
     if (!world.exists)
     {
-        err_line(1, "No world exists in which to run player commands.");
-        return 0;
+        return !err_line(1, "No world exists in which to run player commands.");
     }
     return 1;
 }
@@ -165,6 +169,14 @@ static uint8_t parse_command(char * tok0)
             {
                 return 1;
             }
+            else
+            {
+                char * tok3 = token_from_line(NULL);
+                if (tok2 && parse_god_command_3arg(tok0, tok1, tok2, tok3))
+                {
+                    return 1;
+                }
+            }
         }
     }
     return 0;
@@ -200,7 +212,7 @@ static void turn_over()
     while (    0 < player->lifepoints
            || (0 == player->lifepoints && start_turn == world.turn))
     {
-        if (NULL == thing)
+        if (!thing)
         {
             world.turn++;
             thing = world.things;
@@ -277,7 +289,7 @@ extern void obey_msg(char * msg, uint8_t do_record, uint8_t do_verbose)
     set_err_line_options("Trouble with message: ", msg, 0);
     char * msg_copy = strdup(msg);
     char * tok0 = token_from_line(msg_copy);
-    if (NULL != tok0)
+    if (tok0)
     {
 
         if (parse_command(tok0))
@@ -291,7 +303,7 @@ extern void obey_msg(char * msg, uint8_t do_record, uint8_t do_verbose)
                 record(msg, 0);
             }
             char * tokplus = token_from_line(NULL);
-            err_line(NULL != tokplus, "Too many arguments, ignoring overflow.");
+            err_line(!(!tokplus), "Too many arguments, ignoring overflow.");
             free(msg_copy);
             return;
         }
@@ -308,7 +320,7 @@ extern uint8_t io_loop()
     {
         char * msg = io_round();
         server_test();
-        if (NULL == msg)
+        if (!msg)
         {
             continue;
         }