home · contact · privacy
Changed the way the end of the map object list is identified.
authorChristian Heller <c.heller@plomlompom.de>
Wed, 2 Oct 2013 09:24:10 +0000 (11:24 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Wed, 2 Oct 2013 09:24:10 +0000 (11:24 +0200)
src/main.c
src/main.h
src/map_objects.c

index adeddceec5753080b9416d704b59aec3074631ca..68b1ebbfae6a88af9a3245e9e7468160b78b1879 100644 (file)
@@ -135,7 +135,6 @@ int main(int argc, char *argv[])
     if (0 == world.turn)
     {
         world.map_objs = NULL;
-        world.last_map_obj = NULL;
         add_map_objects(&world, 0, 1);
         add_map_objects(&world, 1, 1 + rrand() % 27);
         add_map_objects(&world, 2, 1 + rrand() % 9);
index cd6e6c0657e950b173c2fff4f75c334f246d62ce..56d458ba4c0e933174f6b4d9bab76182c60e488a 100644 (file)
@@ -37,7 +37,6 @@ struct World
     uint8_t map_obj_count;            /* Counts map objects generated so far. */
     struct MapObjDef * map_obj_defs;  /* Map object type definitions chain. */
     struct MapObj * map_objs;         /* Pointer to map objects chain start. */
-    struct MapObj * last_map_obj;     /* Pointer to map objects chain end. */
 };
 
 
index 93f46841447aec667f1ddd0322268a0a330c0d6d..ed41d93ac62f30ab65c5fd194182782a8d034156 100644 (file)
@@ -96,7 +96,6 @@ extern void read_map_objects(struct World * world, FILE * file, char * line,
         * mo_ptr_ptr = mo;
         mo_ptr_ptr = &mo->next;
     }
-    world->last_map_obj = mo;
 }
 
 
@@ -132,15 +131,14 @@ extern void add_map_object(struct World * world, uint8_t type)
         }
     }
     mo->next = NULL;
-    if (NULL == world->last_map_obj)
+    struct MapObj ** last_ptr_ptr = &world->map_objs;
+    struct MapObj * mo_ptr;
+    while (NULL != * last_ptr_ptr)
     {
-        world->map_objs = mo;
+        mo_ptr = * last_ptr_ptr;
+        last_ptr_ptr = & mo_ptr->next;
     }
-    else
-    {
-        world->last_map_obj->next = mo;
-    }
-    world->last_map_obj = mo;
+    * last_ptr_ptr = mo;
 }