-extern void * build_map_objects(struct World * world, void * start, char def_id,
- unsigned char n, size_t size,
- void (*) (struct MapObjDef *, void *));
-extern void build_map_objects_itemdata(struct MapObjDef * map_obj_def,
- void * start);
-extern void build_map_objects_monsterdata(struct MapObjDef * map_obj_def,
- void * start);
-
-
-
-/* Write to/read from file chain of map objects starting/to start in memory at
- * "start", use "w_typedata"()"/"r_typedata" for data specific to monsters
- * (pass "write_map_objects_monsterdata"/"read_map_objects_itemdata") or items
- * (currently they have no data specific only to them, so pass NULL). Use "size"
- * in read_map_objects() to pass the size of structs of the affected map object
- * type.
- *
- * TODO: the size of these structs should not need to be passed but instead be
- * available via the type id of the affected map object type. The TODO above
- * towards the function deciding its helper function by itself also applies.
+extern void read_map_objects(FILE * file, char * line, int linemax);
+
+/* Add object(s) ("n": how many?) of "type" to map on random position(s). New
+ * animate objects are never placed in the same square with other animate ones.