- FILE * file = try_fopen(savefile_tmp, "w", world, f_name);
- if ( write_uint32_bigendian(world->seed, file)
- || write_uint32_bigendian(world->turn, file)
- || write_uint16_bigendian(world->score, file)
- || write_uint16_bigendian(world->player->pos.y + 1, file)
- || write_uint16_bigendian(world->player->pos.x + 1, file)
- || write_uint8(world->player->hitpoints, file)
- || write_map_objects(world, world->monster, file)
- || write_map_objects(world, world->item, file))
- {
- exit_err(1, world, err_write);
- }
- try_fclose_unlink_rename(file, savefile_tmp, savefile, world, f_name);
+ FILE * file = try_fopen(savefile_tmp, "w", f_name);
+ char line[12];
+ sprintf(line, "%d\n", world.seed);
+ try_fwrite(line, strlen(line), 1, file, f_name);
+ sprintf(line, "%d\n", world.turn);
+ try_fwrite(line, strlen(line), 1, file, f_name);
+ sprintf(line, "%d\n", world.score);
+ try_fwrite(line, strlen(line), 1, file, f_name);
+ write_map_objects(file);
+ try_fclose_unlink_rename(file, savefile_tmp, savefile, f_name);
+}
+
+
+
+extern void load_game()
+{
+ char * f_name = "load_game2()";
+ char * filename = "savefile";
+ FILE * file = try_fopen(filename, "r", f_name);
+ uint16_t linemax = get_linemax(file, f_name);
+ char line[linemax + 1];
+ try_fgets(line, linemax + 1, file, f_name);
+ world.seed = atoi(line);
+ try_fgets(line, linemax + 1, file, f_name);
+ world.turn = atoi(line);
+ try_fgets(line, linemax + 1, file, f_name);
+ world.score = atoi(line);
+ read_map_objects(file, line, linemax);
+ try_fclose(file, f_name);