- if ( write_uint8(map_obj->type, file)
- || write_uint16_bigendian(map_obj->pos.y + 1, file)
- || write_uint16_bigendian(map_obj->pos.x + 1, file))
- {
- return 1;
- }
- mod = get_map_obj_def(world, map_obj->type);
- if ('m' == mod->m_or_i)
+ struct MapObj * mo = try_malloc(sizeof(struct MapObj), f_name);
+ mo->next = NULL;
+ mo->id = atoi(strtok(line, delim));
+ mo->type = atoi(strtok(NULL, delim));
+ mo->lifepoints = atoi(strtok(NULL, delim));
+ mo->pos.y = atoi(strtok(NULL, delim));
+ mo->pos.x = atoi(strtok(NULL, delim));
+ mo->command = atoi(strtok(NULL, delim));;
+ mo->arg = atoi(strtok(NULL, delim));;
+ mo->progress = atoi(strtok(NULL, delim));;
+ mo->owns = NULL;
+ * mo_ptr_ptr = mo;
+ mo_ptr_ptr = &mo->next;
+ }
+ exit_err(-1 == fsetpos(file, &pos), f_name);
+ while (try_fgets(line, linemax + 1, file, f_name))
+ {
+ uint8_t id = atoi(strtok(line, delim));
+ uint8_t i;
+ for (i = 0; i < 7; i++, strtok(NULL, delim));
+ char * owned = strtok(NULL, "\n");
+ if (NULL != owned)