#include "inventory/inventory-slot-types.h"
#include "io/files-util.h"
#include "io/report.h"
#include "io/uid-checker.h"
#include "inventory/inventory-slot-types.h"
#include "io/files-util.h"
#include "io/report.h"
#include "io/uid-checker.h"
#include "monster/monster-compaction.h"
#include "monster/monster-status.h"
#include "player/player-status.h"
#include "monster/monster-compaction.h"
#include "monster/monster-status.h"
#include "player/player-status.h"
#include "save/save-util.h"
#include "store/store-owners.h"
#include "store/store-util.h"
#include "save/save-util.h"
#include "store/store-owners.h"
#include "store/store-util.h"
#include "system/artifact-type-definition.h"
#include "system/baseitem-info.h"
#include "system/item-entity.h"
#include "system/monster-race-info.h"
#include "system/player-type-definition.h"
#include "util/angband-files.h"
#include "system/artifact-type-definition.h"
#include "system/baseitem-info.h"
#include "system/item-entity.h"
#include "system/monster-race-info.h"
#include "system/player-type-definition.h"
#include "util/angband-files.h"
{
compact_objects(player_ptr, 0);
compact_monsters(player_ptr, 0);
uint32_t now = (uint32_t)time((time_t *)0);
{
compact_objects(player_ptr, 0);
compact_monsters(player_ptr, 0);
uint32_t now = (uint32_t)time((time_t *)0);
- wr_u32b(w_ptr->sf_system);
- wr_u32b(w_ptr->sf_when);
- wr_u16b(w_ptr->sf_lives);
- wr_u16b(w_ptr->sf_saves);
+ wr_u32b(world.sf_system);
+ wr_u32b(world.sf_when);
+ wr_u16b(world.sf_lives);
+ wr_u16b(world.sf_saves);
- const auto &quest_list = QuestList::get_instance();
- tmp16u = static_cast<uint16_t>(quest_list.size());
+ const auto &quests = QuestList::get_instance();
+ tmp16u = static_cast<uint16_t>(quests.size());
- for (const auto &[q_idx, quest] : quest_list) {
- wr_s16b(enum2i(q_idx));
+ for (const auto &[quest_id, quest] : quests) {
+ wr_s16b(enum2i(quest_id));
wr_s16b(enum2i(quest.status));
wr_s16b((int16_t)quest.level);
wr_byte((byte)quest.complev);
wr_s16b(enum2i(quest.status));
wr_s16b((int16_t)quest.level);
wr_byte((byte)quest.complev);
auto is_quest_running = quest.status == QuestStatusType::TAKEN;
is_quest_running |= quest.status == QuestStatusType::COMPLETED;
auto is_quest_running = quest.status == QuestStatusType::TAKEN;
is_quest_running |= quest.status == QuestStatusType::COMPLETED;
wr_s16b((int16_t)quest.max_num);
wr_s16b(enum2i(quest.type));
wr_s16b(enum2i(quest.r_idx));
wr_s16b((int16_t)quest.max_num);
wr_s16b(enum2i(quest.type));
wr_s16b(enum2i(quest.r_idx));
wr_s32b(player_ptr->wilderness_y);
wr_bool(player_ptr->wild_mode);
wr_bool(player_ptr->ambush_flag);
wr_s32b(player_ptr->wilderness_y);
wr_bool(player_ptr->wild_mode);
wr_bool(player_ptr->ambush_flag);
- wr_s32b(w_ptr->max_wild_x);
- wr_s32b(w_ptr->max_wild_y);
- for (int i = 0; i < w_ptr->max_wild_x; i++) {
- for (int j = 0; j < w_ptr->max_wild_y; j++) {
+ wr_s32b(world.max_wild_x);
+ wr_s32b(world.max_wild_y);
+ for (int i = 0; i < world.max_wild_x; i++) {
+ for (int j = 0; j < world.max_wild_y; j++) {
- wr_u32b(w_ptr->sf_play_time);
- wr_FlagGroup(w_ptr->sf_winner, wr_byte);
- wr_FlagGroup(w_ptr->sf_retired, wr_byte);
+ wr_u32b(world.sf_play_time);
+ wr_FlagGroup(world.sf_winner, wr_byte);
+ wr_FlagGroup(world.sf_retired, wr_byte);
- counts_write(player_ptr, 0, w_ptr->play_time);
- w_ptr->character_saved = true;
+ auto &world = AngbandWorld::get_instance();
+ counts_write(player_ptr, 0, world.play_time);
+ world.character_saved = true;
- update_playtime();
- bool result = false;
- if (save_player_aux(player_ptr, savefile_new.data(), type)) {
+ auto &world = AngbandWorld::get_instance();
+ world.update_playtime();
+ auto result = false;
+ if (save_player_aux(player_ptr, savefile_new.data())) {
std::stringstream ss_old;
ss_old << savefile.string() << ".old";
auto savefile_old = ss_old.str();
safe_setuid_grab();
fd_kill(savefile_old);
std::stringstream ss_old;
ss_old << savefile.string() << ".old";
auto savefile_old = ss_old.str();
safe_setuid_grab();
fd_kill(savefile_old);
- const auto &path = type == SaveType::DEBUG ? debug_savefile : savefile;
- fd_move(path, savefile_old);
- fd_move(savefile_new, path);
+ fd_move(savefile, savefile_old);
+ fd_move(savefile_new, savefile);