{
char ext[32];
strnfmt(ext, sizeof(ext), ".F%02d", level);
- return std::string(savefile).append(ext);
+ return savefile.string().append(ext);
}
static void check_saved_tmp_files(const int fd, bool *force)
void init_saved_floors(PlayerType *player_ptr, bool force)
{
auto fd = -1;
- for (int i = 0; i < MAX_SAVED_FLOORS; i++) {
- saved_floor_type *sf_ptr = &saved_floors[i];
- std::string floor_savefile = get_saved_floor_name(i);
- safe_setuid_grab(player_ptr);
- fd = fd_make(floor_savefile.data());
- safe_setuid_drop();
- check_saved_tmp_files(fd, &force);
- safe_setuid_grab(player_ptr);
- (void)fd_kill(floor_savefile.data());
- safe_setuid_drop();
- sf_ptr->floor_id = 0;
+ if (!savefile.empty()) {
+ for (int i = 0; i < MAX_SAVED_FLOORS; i++) {
+ saved_floor_type *sf_ptr = &saved_floors[i];
+ auto floor_savefile = get_saved_floor_name(i);
+ safe_setuid_grab();
+ fd = fd_make(floor_savefile);
+ safe_setuid_drop();
+ check_saved_tmp_files(fd, &force);
+ safe_setuid_grab();
+ (void)fd_kill(floor_savefile);
+ safe_setuid_drop();
+ sf_ptr->floor_id = 0;
+ }
}
max_floor_id = 1;
continue;
}
- safe_setuid_grab(player_ptr);
- (void)fd_kill(get_saved_floor_name(i).data());
+ safe_setuid_grab();
+ (void)fd_kill(get_saved_floor_name(i));
safe_setuid_drop();
}
}
return;
}
- safe_setuid_grab(player_ptr);
- (void)fd_kill(get_saved_floor_name((int)sf_ptr->savefile_id).data());
+ safe_setuid_grab();
+ (void)fd_kill(get_saved_floor_name((int)sf_ptr->savefile_id));
safe_setuid_drop();
sf_ptr->floor_id = 0;
}