home · contact · privacy
Ensure that multiple inanimate objects on a map cell are always treated as a
[plomrogue] / src / server / map_object_actions.c
index 476ba91e26b2c09fff5c46e0e0746183eaaaf2f6..0cbc1bf5f3e4b24c5827b2b916829f75dfb7d1a8 100644 (file)
@@ -219,10 +219,10 @@ static void playerbonus_use(uint8_t no_object, uint8_t wrong_object)
 
 
 
-extern void init_map_object_actions(char * path)
+extern void init_map_object_actions()
 {
     char * f_name = "init_map_object_actions()";
-    FILE * file = try_fopen(path, "r", f_name);
+    FILE * file = try_fopen(world.path_map_obj_acts, "r", f_name);
     uint16_t linemax = textfile_sizes(file, NULL);
     char line[linemax + 1];
     struct MapObjAct ** moa_ptr_ptr = &world.map_obj_acts;
@@ -364,12 +364,13 @@ extern void actor_drop(struct MapObj * mo)
 
 extern void actor_pick(struct MapObj * mo)
 {
-    struct MapObj * picked;
-    for (picked = world.map_objs; NULL != picked; picked = picked->next)
+    struct MapObj * picked = NULL;
+    struct MapObj * mo_i;
+    for (mo_i = world.map_objs; NULL != mo_i; mo_i = mo_i->next)
     {
-        if (picked != mo && yx_uint16_cmp(&picked->pos, &mo->pos))
+        if (mo_i != mo && yx_uint16_cmp(&mo_i->pos, &mo->pos))
         {
-            break;
+            picked = mo_i;
         }
     }
     if (NULL != picked)