}
auto &quest_list = QuestList::get_instance();
- for (auto &[q_idx, q_ref] : quest_list) {
- q_ref.status = QuestStatusType::UNTAKEN;
- q_ref.cur_num = 0;
- q_ref.max_num = 0;
- q_ref.type = QuestKindType::NONE;
- q_ref.level = 0;
- q_ref.r_idx = MonsterRace::empty_id();
- q_ref.complev = 0;
- q_ref.comptime = 0;
+ for (auto &[q_idx, quest] : quest_list) {
+ quest.status = QuestStatusType::UNTAKEN;
+ quest.cur_num = 0;
+ quest.max_num = 0;
+ quest.type = QuestKindType::NONE;
+ quest.level = 0;
+ quest.r_idx = MonsterRace::empty_id();
+ quest.complev = 0;
+ quest.comptime = 0;
}
player_ptr->inven_cnt = 0;
leave_quest_check(player_ptr);
floor_ptr->quest_number = i2enum<QuestId>(g_ptr->special);
const auto quest_number = floor_ptr->quest_number;
- auto &q_ref = quest_list[quest_number];
- if (q_ref.status == QuestStatusType::UNTAKEN) {
- if (q_ref.type != QuestKindType::RANDOM) {
+ auto &quest = quest_list[quest_number];
+ if (quest.status == QuestStatusType::UNTAKEN) {
+ if (quest.type != QuestKindType::RANDOM) {
init_flags = INIT_ASSIGN;
parse_fixed_map(player_ptr, QUEST_DEFINITION_LIST, 0, 0, 0, 0);
}
- q_ref.status = QuestStatusType::TAKEN;
+ quest.status = QuestStatusType::TAKEN;
}
if (!inside_quest(quest_number)) {
}
const auto quest_number = player_ptr->current_floor_ptr->quest_number;
- auto &q_ref = quest_list[quest_number];
+ auto &quest = quest_list[quest_number];
- if (inside_quest(quest_number) && q_ref.type == QuestKindType::RANDOM) {
+ if (inside_quest(quest_number) && quest.type == QuestKindType::RANDOM) {
leave_quest_check(player_ptr);
player_ptr->current_floor_ptr->quest_number = QuestId::NONE;
}
- if (inside_quest(quest_number) && q_ref.type != QuestKindType::RANDOM) {
+ if (inside_quest(quest_number) && quest.type != QuestKindType::RANDOM) {
leave_quest_check(player_ptr);
player_ptr->current_floor_ptr->quest_number = i2enum<QuestId>(g_ptr->special);
player_ptr->current_floor_ptr->dun_level = 0;
this->make_reward(pos);
}
-static bool check_quest_completion(PlayerType *player_ptr, const QuestType &q_ref, MonsterEntity *m_ptr)
+static bool check_quest_completion(PlayerType *player_ptr, const QuestType &quest, MonsterEntity *m_ptr)
{
auto *floor_ptr = player_ptr->current_floor_ptr;
- if (q_ref.status != QuestStatusType::TAKEN) {
+ if (quest.status != QuestStatusType::TAKEN) {
return false;
}
- if (any_bits(q_ref.flags, QUEST_FLAG_PRESET)) {
+ if (any_bits(quest.flags, QUEST_FLAG_PRESET)) {
return false;
}
- if ((q_ref.level != floor_ptr->dun_level)) {
+ if ((quest.level != floor_ptr->dun_level)) {
return false;
}
- if ((q_ref.type == QuestKindType::FIND_ARTIFACT) || (q_ref.type == QuestKindType::FIND_EXIT)) {
+ if ((quest.type == QuestKindType::FIND_ARTIFACT) || (quest.type == QuestKindType::FIND_EXIT)) {
return false;
}
- auto kill_them_all = q_ref.type == QuestKindType::KILL_NUMBER;
- kill_them_all |= q_ref.type == QuestKindType::TOWER;
- kill_them_all |= q_ref.type == QuestKindType::KILL_ALL;
+ auto kill_them_all = quest.type == QuestKindType::KILL_NUMBER;
+ kill_them_all |= quest.type == QuestKindType::TOWER;
+ kill_them_all |= quest.type == QuestKindType::KILL_ALL;
if (kill_them_all) {
return true;
}
- auto is_target = (q_ref.type == QuestKindType::RANDOM) && (q_ref.r_idx == m_ptr->r_idx);
- if ((q_ref.type == QuestKindType::KILL_LEVEL) || is_target) {
+ auto is_target = (quest.type == QuestKindType::RANDOM) && (quest.r_idx == m_ptr->r_idx);
+ if ((quest.type == QuestKindType::KILL_LEVEL) || is_target) {
return true;
}
{
auto *floor_ptr = player_ptr->current_floor_ptr;
const auto &quest_list = QuestList::get_instance();
- for (const auto &[q_idx, q_ref] : quest_list) {
+ for (const auto &[q_idx, quest] : quest_list) {
MonsterRaceInfo *r_ptr;
BIT_FLAGS mode;
- auto no_quest_monsters = q_ref.status != QuestStatusType::TAKEN;
- no_quest_monsters |= (q_ref.type != QuestKindType::KILL_LEVEL && q_ref.type != QuestKindType::RANDOM);
- no_quest_monsters |= q_ref.level != floor_ptr->dun_level;
- no_quest_monsters |= player_ptr->dungeon_idx != q_ref.dungeon;
- no_quest_monsters |= any_bits(q_ref.flags, QUEST_FLAG_PRESET);
+ auto no_quest_monsters = quest.status != QuestStatusType::TAKEN;
+ no_quest_monsters |= (quest.type != QuestKindType::KILL_LEVEL && quest.type != QuestKindType::RANDOM);
+ no_quest_monsters |= quest.level != floor_ptr->dun_level;
+ no_quest_monsters |= player_ptr->dungeon_idx != quest.dungeon;
+ no_quest_monsters |= any_bits(quest.flags, QUEST_FLAG_PRESET);
if (no_quest_monsters) {
continue;
}
- r_ptr = &monraces_info[q_ref.r_idx];
+ r_ptr = &monraces_info[quest.r_idx];
if (r_ptr->kind_flags.has(MonsterKindType::UNIQUE) && (r_ptr->cur_num >= r_ptr->max_num)) {
continue;
}
mode |= PM_ALLOW_GROUP;
}
- for (int j = 0; j < (q_ref.max_num - q_ref.cur_num); j++) {
+ for (int j = 0; j < (quest.max_num - quest.cur_num); j++) {
int k;
for (k = 0; k < SAFE_MAX_ATTEMPTS; k++) {
POSITION x = 0;
return false;
}
- if (place_monster_aux(player_ptr, 0, y, x, q_ref.r_idx, mode)) {
+ if (place_monster_aux(player_ptr, 0, y, x, quest.r_idx, mode)) {
break;
} else {
continue;
{
const auto &quest_list = QuestList::get_instance();
/* Check if completed a quest */
- for (const auto &[q_idx, q_ref] : quest_list) {
- auto found_artifact = (q_ref.type == QuestKindType::FIND_ARTIFACT);
- found_artifact &= (q_ref.status == QuestStatusType::TAKEN);
- found_artifact &= (o_ptr->is_specific_artifact(q_ref.reward_artifact_idx));
+ for (const auto &[q_idx, quest] : quest_list) {
+ auto found_artifact = (quest.type == QuestKindType::FIND_ARTIFACT);
+ found_artifact &= (quest.status == QuestStatusType::TAKEN);
+ found_artifact &= (o_ptr->is_specific_artifact(quest.reward_artifact_idx));
if (found_artifact) {
complete_quest(player_ptr, q_idx);
}
return floor_ptr->quest_number;
}
- for (const auto &[q_idx, q_ref] : quest_list) {
- if (q_ref.status != QuestStatusType::TAKEN) {
+ for (const auto &[q_idx, quest] : quest_list) {
+ if (quest.status != QuestStatusType::TAKEN) {
continue;
}
- auto depth_quest = (q_ref.type == QuestKindType::KILL_LEVEL);
- depth_quest &= !(q_ref.flags & QUEST_FLAG_PRESET);
- depth_quest &= (q_ref.level == level);
- depth_quest &= (q_ref.dungeon == player_ptr->dungeon_idx);
+
+ auto depth_quest = (quest.type == QuestKindType::KILL_LEVEL);
+ depth_quest &= !(quest.flags & QUEST_FLAG_PRESET);
+ depth_quest &= (quest.level == level);
+ depth_quest &= (quest.dungeon == player_ptr->dungeon_idx);
if (depth_quest) {
return q_idx;
}
const auto &quest_list = QuestList::get_instance();
for (auto q_idx : EnumRange(QuestId::RANDOM_QUEST1, QuestId::RANDOM_QUEST10)) {
- const auto &q_ref = quest_list[q_idx];
- auto is_random_quest = (q_ref.type == QuestKindType::RANDOM);
- is_random_quest &= (q_ref.status == QuestStatusType::TAKEN);
- is_random_quest &= (q_ref.level == level);
- is_random_quest &= (q_ref.dungeon == DUNGEON_ANGBAND);
+ const auto &quest = quest_list[q_idx];
+ auto is_random_quest = (quest.type == QuestKindType::RANDOM);
+ is_random_quest &= (quest.status == QuestStatusType::TAKEN);
+ is_random_quest &= (quest.level == level);
+ is_random_quest &= (quest.dungeon == DUNGEON_ANGBAND);
if (is_random_quest) {
return q_idx;
}
{
auto quest_r_idx = MonsterRace::empty_id();
const auto &quest_list = QuestList::get_instance();
- for (const auto &[q_idx, q_ref] : quest_list) {
- auto quest_relating_monster = (q_ref.status == QuestStatusType::TAKEN);
- quest_relating_monster &= ((q_ref.type == QuestKindType::KILL_LEVEL) || (q_ref.type == QuestKindType::RANDOM));
- quest_relating_monster &= (q_ref.level == player_ptr->current_floor_ptr->dun_level);
- quest_relating_monster &= (player_ptr->dungeon_idx == q_ref.dungeon);
- quest_relating_monster &= !(q_ref.flags & QUEST_FLAG_PRESET);
+ for (const auto &[q_idx, quest] : quest_list) {
+ auto quest_relating_monster = (quest.status == QuestStatusType::TAKEN);
+ quest_relating_monster &= ((quest.type == QuestKindType::KILL_LEVEL) || (quest.type == QuestKindType::RANDOM));
+ quest_relating_monster &= (quest.level == player_ptr->current_floor_ptr->dun_level);
+ quest_relating_monster &= (player_ptr->dungeon_idx == quest.dungeon);
+ quest_relating_monster &= !(quest.flags & QUEST_FLAG_PRESET);
if (quest_relating_monster) {
- quest_r_idx = q_ref.r_idx;
+ quest_r_idx = quest.r_idx;
}
}
generate_encounter = false;
set_floor_and_wall(0);
auto &quest_list = QuestList::get_instance();
- for (auto &[q_idx, q_ref] : quest_list) {
- if (q_ref.status == QuestStatusType::REWARDED) {
- q_ref.status = QuestStatusType::FINISHED;
+ for (auto &[q_idx, quest] : quest_list) {
+ if (quest.status == QuestStatusType::REWARDED) {
+ quest.status = QuestStatusType::FINISHED;
}
}
}
const auto &quest_list = QuestList::get_instance();
std::vector<QuestId> quest_numbers;
- for (const auto &[q_idx, q_ref] : quest_list) {
+ for (const auto &[q_idx, quest] : quest_list) {
quest_numbers.push_back(q_idx);
}
int dummy;
auto old_quest = player_ptr->current_floor_ptr->quest_number;
const auto &quest_list = QuestList::get_instance();
- const auto &q_ref = quest_list[num];
- player_ptr->current_floor_ptr->quest_number = (q_ref.type == QuestKindType::RANDOM) ? QuestId::NONE : num;
+ const auto &quest = quest_list[num];
+ player_ptr->current_floor_ptr->quest_number = (quest.type == QuestKindType::RANDOM) ? QuestId::NONE : num;
init_flags = INIT_NAME_ONLY;
parse_fixed_map(player_ptr, QUEST_DEFINITION_LIST, 0, 0, 0, 0);
player_ptr->current_floor_ptr->quest_number = old_quest;
switch (type) {
case DIARY_FIX_QUEST_C: {
- if (any_bits(q_ref.flags, QUEST_FLAG_SILENT)) {
+ if (any_bits(quest.flags, QUEST_FLAG_SILENT)) {
break;
}
constexpr auto mes = _(" %2d:%02d %20s クエスト「%s」を達成した。\n", " %2d:%02d %20s completed quest '%s'.\n");
- fprintf(fff, mes, hour, min, note_level.data(), q_ref.name.data());
+ fprintf(fff, mes, hour, min, note_level.data(), quest.name.data());
break;
}
case DIARY_FIX_QUEST_F: {
- if (any_bits(q_ref.flags, QUEST_FLAG_SILENT)) {
+ if (any_bits(quest.flags, QUEST_FLAG_SILENT)) {
break;
}
constexpr auto mes = _(" %2d:%02d %20s クエスト「%s」から命からがら逃げ帰った。\n", " %2d:%02d %20s ran away from quest '%s'.\n");
- fprintf(fff, mes, hour, min, note_level.data(), q_ref.name.data());
+ fprintf(fff, mes, hour, min, note_level.data(), quest.name.data());
break;
}
case DIARY_RAND_QUEST_C: {
constexpr auto mes = _(" %2d:%02d %20s ランダムクエスト(%s)を達成した。\n", " %2d:%02d %20s completed random quest '%s'\n");
- fprintf(fff, mes, hour, min, note_level.data(), monraces_info[q_ref.r_idx].name.data());
+ fprintf(fff, mes, hour, min, note_level.data(), monraces_info[quest.r_idx].name.data());
break;
}
case DIARY_RAND_QUEST_F: {
constexpr auto mes = _(" %2d:%02d %20s ランダムクエスト(%s)から逃げ出した。\n", " %2d:%02d %20s ran away from quest '%s'.\n");
- fprintf(fff, mes, hour, min, note_level.data(), monraces_info[q_ref.r_idx].name.data());
+ fprintf(fff, mes, hour, min, note_level.data(), monraces_info[quest.r_idx].name.data());
break;
}
case DIARY_TO_QUEST: {
- if (any_bits(q_ref.flags, QUEST_FLAG_SILENT)) {
+ if (any_bits(quest.flags, QUEST_FLAG_SILENT)) {
break;
}
constexpr auto mes = _(" %2d:%02d %20s クエスト「%s」へと突入した。\n", " %2d:%02d %20s entered the quest '%s'.\n");
- fprintf(fff, mes, hour, min, note_level.data(), q_ref.name.data());
+ fprintf(fff, mes, hour, min, note_level.data(), quest.name.data());
break;
}
default:
fprintf(fff, _("《遂行中のクエスト》\n", "< Current Quest >\n"));
- for (const auto &[q_idx, q_ref] : quest_list) {
+ for (const auto &[q_idx, quest] : quest_list) {
if (q_idx == QuestId::NONE) {
continue;
}
- auto is_print = q_ref.status == QuestStatusType::TAKEN;
- is_print |= (q_ref.status == QuestStatusType::STAGE_COMPLETED) && (q_ref.type == QuestKindType::TOWER);
- is_print |= q_ref.status == QuestStatusType::COMPLETED;
+ auto is_print = quest.status == QuestStatusType::TAKEN;
+ is_print |= (quest.status == QuestStatusType::STAGE_COMPLETED) && (quest.type == QuestKindType::TOWER);
+ is_print |= quest.status == QuestStatusType::COMPLETED;
if (!is_print) {
continue;
}
init_flags = INIT_SHOW_TEXT;
parse_fixed_map(player_ptr, QUEST_DEFINITION_LIST, 0, 0, 0, 0);
player_ptr->current_floor_ptr->quest_number = old_quest;
- if (q_ref.flags & QUEST_FLAG_SILENT) {
+ if (quest.flags & QUEST_FLAG_SILENT) {
continue;
}
total++;
- if (q_ref.type != QuestKindType::RANDOM) {
+ if (quest.type != QuestKindType::RANDOM) {
std::string note;
- if (q_ref.status == QuestStatusType::TAKEN || q_ref.status == QuestStatusType::STAGE_COMPLETED) {
- switch (q_ref.type) {
+ if (quest.status == QuestStatusType::TAKEN || quest.status == QuestStatusType::STAGE_COMPLETED) {
+ switch (quest.type) {
case QuestKindType::KILL_LEVEL: {
- const auto &monrace = monraces_info[q_ref.r_idx];
- if (q_ref.max_num > 1) {
+ const auto &monrace = monraces_info[quest.r_idx];
+ if (quest.max_num > 1) {
#ifdef JP
- note = format(" - %d 体の%sを倒す。(あと %d 体)", (int)q_ref.max_num, monrace.name.data(), (int)(q_ref.max_num - q_ref.cur_num));
+ note = format(" - %d 体の%sを倒す。(あと %d 体)", (int)quest.max_num, monrace.name.data(), (int)(quest.max_num - quest.cur_num));
#else
auto monster_name(monrace.name);
plural_aux(monster_name.data());
- note = format(" - kill %d %s, have killed %d.", (int)q_ref.max_num, monster_name.data(), (int)q_ref.cur_num);
+ note = format(" - kill %d %s, have killed %d.", (int)quest.max_num, monster_name.data(), (int)quest.cur_num);
#endif
} else {
note = format(_(" - %sを倒す。", " - kill %s."), monrace.name.data());
}
case QuestKindType::FIND_ARTIFACT: {
std::string item_name("");
- if (q_ref.has_reward()) {
- const auto &artifact = q_ref.get_reward();
+ if (quest.has_reward()) {
+ const auto &artifact = quest.get_reward();
ItemEntity item;
auto bi_id = lookup_baseitem_id(artifact.bi_key);
item.prep(bi_id);
- item.fixed_artifact_idx = q_ref.reward_artifact_idx;
+ item.fixed_artifact_idx = quest.reward_artifact_idx;
item.ident = IDENT_STORE;
item_name = describe_flavor(player_ptr, &item, OD_NAME_ONLY);
}
break;
case QuestKindType::KILL_NUMBER:
#ifdef JP
- note = format(" - %d 体のモンスターを倒す。(あと %d 体)", (int)q_ref.max_num, (int)(q_ref.max_num - q_ref.cur_num));
+ note = format(" - %d 体のモンスターを倒す。(あと %d 体)", (int)quest.max_num, (int)(quest.max_num - quest.cur_num));
#else
- note = format(" - Kill %d monsters, have killed %d.", (int)q_ref.max_num, (int)q_ref.cur_num);
+ note = format(" - Kill %d monsters, have killed %d.", (int)quest.max_num, (int)quest.cur_num);
#endif
break;
}
}
- fprintf(fff, _(" %s (危険度:%d階相当)%s\n", " %s (Danger level: %d)%s\n"), q_ref.name.data(), (int)q_ref.level, note.data());
- if (q_ref.status == QuestStatusType::COMPLETED) {
+ fprintf(fff, _(" %s (危険度:%d階相当)%s\n", " %s (Danger level: %d)%s\n"), quest.name.data(), (int)quest.level, note.data());
+ if (quest.status == QuestStatusType::COMPLETED) {
fputs(_(" クエスト達成 - まだ報酬を受けとってない。\n", " Quest Completed - Unrewarded\n"), fff);
continue;
}
continue;
}
- if (q_ref.level >= rand_level) {
+ if (quest.level >= rand_level) {
continue;
}
- rand_level = q_ref.level;
+ rand_level = quest.level;
if (max_dlv[DUNGEON_ANGBAND] < rand_level) {
continue;
}
- const auto &monrace = monraces_info[q_ref.r_idx];
- if (q_ref.max_num <= 1) {
+ const auto &monrace = monraces_info[quest.r_idx];
+ if (quest.max_num <= 1) {
constexpr auto mes = _(" %s (%d 階) - %sを倒す。\n", " %s (Dungeon level: %d)\n Kill %s.\n");
- rand_tmp_str = format(mes, q_ref.name.data(), (int)q_ref.level, monrace.name.data());
+ rand_tmp_str = format(mes, quest.name.data(), (int)quest.level, monrace.name.data());
continue;
}
#ifdef JP
- rand_tmp_str = format(" %s (%d 階) - %d 体の%sを倒す。(あと %d 体)\n", q_ref.name.data(), (int)q_ref.level, (int)q_ref.max_num, monrace.name.data(),
- (int)(q_ref.max_num - q_ref.cur_num));
+ rand_tmp_str = format(" %s (%d 階) - %d 体の%sを倒す。(あと %d 体)\n", quest.name.data(), (int)quest.level, (int)quest.max_num, monrace.name.data(),
+ (int)(quest.max_num - quest.cur_num));
#else
auto monster_name(monrace.name);
plural_aux(monster_name.data());
- rand_tmp_str = format(" %s (Dungeon level: %d)\n Kill %d %s, have killed %d.\n", q_ref.name.data(), (int)q_ref.level, (int)q_ref.max_num,
- monster_name.data(), (int)q_ref.cur_num);
+ rand_tmp_str = format(" %s (Dungeon level: %d)\n Kill %d %s, have killed %d.\n", quest.name.data(), (int)quest.level, (int)quest.max_num,
+ monster_name.data(), (int)quest.cur_num);
#endif
}
static bool do_cmd_knowledge_quests_aux(PlayerType *player_ptr, FILE *fff, QuestId q_idx)
{
const auto &quest_list = QuestList::get_instance();
- const auto &q_ref = quest_list[q_idx];
+ const auto &quest = quest_list[q_idx];
auto *floor_ptr = player_ptr->current_floor_ptr;
auto is_fixed_quest = QuestType::is_fixed(q_idx);
init_flags = INIT_NAME_ONLY;
parse_fixed_map(player_ptr, QUEST_DEFINITION_LIST, 0, 0, 0, 0);
floor_ptr->quest_number = old_quest;
- if (q_ref.flags & QUEST_FLAG_SILENT) {
+ if (quest.flags & QUEST_FLAG_SILENT) {
return false;
}
}
- std::string playtime_str = format("%02d:%02d:%02d", q_ref.comptime / (60 * 60), (q_ref.comptime / 60) % 60, q_ref.comptime % 60);
+ std::string playtime_str = format("%02d:%02d:%02d", quest.comptime / (60 * 60), (quest.comptime / 60) % 60, quest.comptime % 60);
auto fputs_name_remain = [fff](const auto &name) {
for (auto i = 1U; i < name.size(); ++i) {
}
};
- if (is_fixed_quest || !MonsterRace(q_ref.r_idx).is_valid()) {
- auto name = str_separate(q_ref.name, 35);
- fprintf(fff, _(" %-35s (危険度:%3d階相当) - レベル%2d - %s\n", " %-35s (Danger level: %3d) - level %2d - %s\n"), name.front().data(), (int)q_ref.level,
- q_ref.complev, playtime_str.data());
+ if (is_fixed_quest || !MonsterRace(quest.r_idx).is_valid()) {
+ auto name = str_separate(quest.name, 35);
+ constexpr auto mes = _(" %-35s (危険度:%3d階相当) - レベル%2d - %s\n", " %-35s (Danger level: %3d) - level %2d - %s\n");
+ fprintf(fff, mes, name.front().data(), (int)quest.level, quest.complev, playtime_str.data());
fputs_name_remain(name);
return true;
}
- auto name = str_separate(monraces_info[q_ref.r_idx].name, 35);
- if (q_ref.complev == 0) {
- fprintf(fff, _(" %-35s (%3d階) - 不戦勝 - %s\n", " %-35s (Dungeon level: %3d) - Unearned - %s\n"),
- name.front().data(), (int)q_ref.level, playtime_str.data());
+ auto name = str_separate(monraces_info[quest.r_idx].name, 35);
+ if (quest.complev == 0) {
+ constexpr auto mes = _(" %-35s (%3d階) - 不戦勝 - %s\n", " %-35s (Dungeon level: %3d) - Unearned - %s\n");
+ fprintf(fff, mes, name.front().data(), (int)quest.level, playtime_str.data());
fputs_name_remain(name);
return true;
}
- fprintf(fff, _(" %-35s (%3d階) - レベル%2d - %s\n", " %-35s (Dungeon level: %3d) - level %2d - %s\n"), name.front().data(),
- (int)q_ref.level, q_ref.complev, playtime_str.data());
+ const auto mes = _(" %-35s (%3d階) - レベル%2d - %s\n", " %-35s (Dungeon level: %3d) - level %2d - %s\n");
+ fprintf(fff, mes, name.front().data(), (int)quest.level, quest.complev, playtime_str.data());
fputs_name_remain(name);
return true;
}
int16_t total = 0;
for (auto &q_idx : quest_numbers) {
const auto &quest_list = QuestList::get_instance();
- const auto &q_ref = quest_list[q_idx];
-
- if (q_ref.status == QuestStatusType::FINISHED && do_cmd_knowledge_quests_aux(player_ptr, fff, q_idx)) {
+ const auto &quest = quest_list[q_idx];
+ if (quest.status == QuestStatusType::FINISHED && do_cmd_knowledge_quests_aux(player_ptr, fff, q_idx)) {
++total;
}
}
int16_t total = 0;
for (auto &q_idx : quest_numbers) {
const auto &quest_list = QuestList::get_instance();
- const auto &q_ref = quest_list[q_idx];
-
- if (((q_ref.status == QuestStatusType::FAILED_DONE) || (q_ref.status == QuestStatusType::FAILED)) && do_cmd_knowledge_quests_aux(player_ptr, fff, q_idx)) {
+ const auto &quest = quest_list[q_idx];
+ if (((quest.status == QuestStatusType::FAILED_DONE) || (quest.status == QuestStatusType::FAILED)) && do_cmd_knowledge_quests_aux(player_ptr, fff, q_idx)) {
++total;
}
}
fprintf(fff, _("《残りのランダムクエスト》\n", "< Remaining Random Quest >\n"));
const auto &quest_list = QuestList::get_instance();
int16_t total = 0;
- for (const auto &[q_idx, q_ref] : quest_list) {
- if (q_ref.flags & QUEST_FLAG_SILENT) {
+ for (const auto &[q_idx, quest] : quest_list) {
+ if (quest.flags & QUEST_FLAG_SILENT) {
continue;
}
- if ((q_ref.type == QuestKindType::RANDOM) && (q_ref.status == QuestStatusType::TAKEN)) {
+ if ((quest.type == QuestKindType::RANDOM) && (quest.status == QuestStatusType::TAKEN)) {
total++;
constexpr auto mes = _(" %s (%d階, %s)\n", " %s (%d, %s)\n");
- fprintf(fff, mes, q_ref.name.data(), (int)q_ref.level, monraces_info[q_ref.r_idx].name.data());
+ fprintf(fff, mes, quest.name.data(), (int)quest.level, monraces_info[quest.r_idx].name.data());
}
}
std::vector<QuestId> quest_numbers;
const auto &quest_list = QuestList::get_instance();
- for (const auto &[q_idx, q_ref] : quest_list) {
+ for (const auto &[q_idx, quest] : quest_list) {
quest_numbers.push_back(q_idx);
}
int dummy;
tmp8u = MAX_RANDOM_QUEST - MIN_RANDOM_QUEST;
wr_byte(tmp8u);
- for (const auto &[q_idx, q_ref] : quest_list) {
+ for (const auto &[q_idx, quest] : quest_list) {
wr_s16b(enum2i(q_idx));
- wr_s16b(enum2i(q_ref.status));
- wr_s16b((int16_t)q_ref.level);
- wr_byte((byte)q_ref.complev);
- wr_u32b(q_ref.comptime);
+ wr_s16b(enum2i(quest.status));
+ wr_s16b((int16_t)quest.level);
+ wr_byte((byte)quest.complev);
+ wr_u32b(quest.comptime);
- auto is_quest_running = q_ref.status == QuestStatusType::TAKEN;
- is_quest_running |= q_ref.status == QuestStatusType::COMPLETED;
+ auto is_quest_running = quest.status == QuestStatusType::TAKEN;
+ is_quest_running |= quest.status == QuestStatusType::COMPLETED;
is_quest_running |= !QuestType::is_fixed(q_idx);
if (!is_quest_running) {
continue;
}
- wr_s16b((int16_t)q_ref.cur_num);
- wr_s16b((int16_t)q_ref.max_num);
- wr_s16b(enum2i(q_ref.type));
- wr_s16b(enum2i(q_ref.r_idx));
- wr_s16b(enum2i(q_ref.reward_artifact_idx));
- wr_byte((byte)q_ref.flags);
- wr_byte((byte)q_ref.dungeon);
+ wr_s16b((int16_t)quest.cur_num);
+ wr_s16b((int16_t)quest.max_num);
+ wr_s16b(enum2i(quest.type));
+ wr_s16b(enum2i(quest.r_idx));
+ wr_s16b(enum2i(quest.reward_artifact_idx));
+ wr_byte((byte)quest.flags);
+ wr_byte((byte)quest.dungeon);
}
wr_s32b(player_ptr->wilderness_x);
return;
}
for (auto q_idx : EnumRange(QuestId::RANDOM_QUEST1, QuestId::RANDOM_QUEST10)) {
- auto &q_ref = quest_list[q_idx];
- auto is_taken_quest = (q_ref.type == QuestKindType::RANDOM);
- is_taken_quest &= (q_ref.status == QuestStatusType::TAKEN);
- is_taken_quest &= (q_ref.level < player_ptr->current_floor_ptr->dun_level);
+ auto &quest = quest_list[q_idx];
+ auto is_taken_quest = (quest.type == QuestKindType::RANDOM);
+ is_taken_quest &= (quest.status == QuestStatusType::TAKEN);
+ is_taken_quest &= (quest.level < player_ptr->current_floor_ptr->dun_level);
if (!is_taken_quest) {
continue;
}
- q_ref.status = QuestStatusType::FAILED;
- q_ref.complev = (byte)player_ptr->lev;
+ quest.status = QuestStatusType::FAILED;
+ quest.complev = (byte)player_ptr->lev;
update_playtime();
- q_ref.comptime = w_ptr->play_time;
- monraces_info[q_ref.r_idx].flags1 &= ~(RF1_QUESTOR);
+ quest.comptime = w_ptr->play_time;
+ monraces_info[quest.r_idx].flags1 &= ~(RF1_QUESTOR);
}
}