home · contact · privacy
Server: In get_message_from_queue(), retry if 1st chunk starts with \0.
[plomrogue] / src / server / run.c
index 808be55398a3a03e7f1d69d67c104d3850ebaffd..4f93669066464c3bc5b6ea466437c98e9b5b9586 100644 (file)
@@ -227,7 +227,7 @@ static int16_t * build_whitelist()
     for (; t; t = t->next, i_things++);
     int16_t * whitelist = try_malloc(i_things * sizeof(int16_t), __func__);
     for (i_things = 0, t = world.things; t;
-         whitelist[i_things] = t->id, t = t->next, i_things++)
+         whitelist[i_things] = t->id, t = t->next, i_things++);
     whitelist[i_things] = -1;
     return whitelist;
 }
@@ -236,7 +236,7 @@ static int16_t * build_whitelist()
 
 static uint8_t thing_in_whitelist(uint8_t id, int16_t * whitelist)
 {
-    int16_t i;
+    uint16_t i;
     for (i = 0; -1 < whitelist[i]; i++)
     {
         if ((int16_t) id == whitelist[i])
@@ -253,18 +253,16 @@ static void turn_over()
 {
     struct Thing * player = get_player();
     struct Thing * thing = player;
-    uint16_t start_turn = world.turn;
     int16_t * whitelist = build_whitelist();
-    while (    0 < player->lifepoints
-           || (0 == player->lifepoints && start_turn == world.turn))
-    {             /* TODO: check meaning and refactorability of 2nd condition */
+    while (0 < player->lifepoints)
+    {
         if (!thing)
         {
             world.turn++;
             thing = world.things;
             free(whitelist);
-            whitelist = build_whitelist();
-        }
+            whitelist = build_whitelist();/* The whitelist excludes things    */
+        }                                 /* that appear only during the turn.*/
         if (thing_in_whitelist(thing->id, whitelist))
         {
             if (0 < thing->lifepoints)