X-Git-Url: https://plomlompom.com/repos/index.html?a=blobdiff_plain;f=src%2Fserver%2Fmap_objects.c;h=36fb9b79829d9667f2f984f361fe77d6a62d72e7;hb=316a56901b2249264b72992fd5aa63ce16fd3304;hp=b114750eef6dfcd0478c0ff35ec0dca81d66680b;hpb=cda9c65e89a5dfb0c8306cd7ac74427df29c3c21;p=plomrogue
diff --git a/src/server/map_objects.c b/src/server/map_objects.c
index b114750..36fb9b7 100644
--- a/src/server/map_objects.c
+++ b/src/server/map_objects.c
@@ -1,10 +1,11 @@
/* src/server/map_objects.c */
#include "map_objects.h"
+#include /* NULL */
#include /* FILE typedef */
#include /* uint8_t, uint16_t */
#include /* free(), atoi() */
-#include /* strlen(), memcpy(), strtok() */
+#include /* strlen(), memcpy(), strtok(), memset() */
#include "../common/readwrite.h" /* try_fopen(), try_fclose(), try_fgets(),
* textfile_sizes()
*/
@@ -66,6 +67,7 @@ static void add_map_object(uint8_t type)
char * f_name = "add_map_object()";
struct MapObjDef * mod = get_map_object_def(type);
struct MapObj * mo = try_malloc(sizeof(struct MapObj), f_name);
+ memset(mo, 0, sizeof(struct MapObj));
mo->id = world.map_obj_count++;
mo->type = mod->id;
mo->lifepoints = mod->lifepoints;
@@ -88,11 +90,6 @@ static void add_map_object(uint8_t type)
break;
}
}
- mo->progress = 0;
- mo->command = 0;
- mo->arg = 0;
- mo->owns = NULL;
- mo->next = NULL;
struct MapObj ** mo_ptr_ptr = &world.map_objs;
for (; NULL != * mo_ptr_ptr; mo_ptr_ptr = &(*mo_ptr_ptr)->next);
* mo_ptr_ptr = mo;
@@ -137,7 +134,6 @@ extern void free_map_object_defs(struct MapObjDef * mod_start)
free_map_object_defs(mod_start->next);
free(mod_start->name);
free(mod_start);
- mod_start = NULL;
}
@@ -162,10 +158,10 @@ extern void free_map_objects(struct MapObj * mo_start)
free_map_objects(mo_start->owns);
free_map_objects(mo_start->next);
free(mo_start);
- if (mo_start == world.map_objs)
- {
- world.map_objs = NULL;
- }
+ if (mo_start == world.map_objs) /* So add_map_objects()' NULL-delimited */
+ { /* map object iteration loop does not */
+ world.map_objs = NULL; /* iterate over freed memory when called */
+ } /* the 1st time after world re-seeding. */
}