- map_obj = get_next_map_obj(start, &first, size, map_obj);
- map_obj->pos.y = test - 1;
- map_obj->pos.x = read_uint16_bigendian(file) - 1;
- map_obj->type = fgetc(file);
- if (r_typedata)
+ fseek(file, pos, SEEK_SET);
+ if (read_uint8(file, &type))
+ {
+ return 1;
+ }
+ mod = get_map_obj_def(world, type);
+ if ('m' == mod->m_or_i)
+ {
+ size = sizeof(struct Monster);
+ }
+ else
+ {
+ size = sizeof(struct Item);
+ }
+ map_obj = get_next_map_obj(world, start, &first, size, map_obj);
+ exit_err(NULL == map_obj, world, err);
+ map_obj->type = type;
+ if ( read_uint8(file, &map_obj->id)
+ || read_uint16_bigendian(file, &map_obj->pos.y)
+ || read_uint16_bigendian(file, &map_obj->pos.x))
+ {
+ return 1;
+ }
+ map_obj->pos.y--;
+ map_obj->pos.x--;
+ if ('m' == mod->m_or_i)