strcpy(player_ptr->history[i], "");
}
- for (auto &[q_idx, q_ref] : quest) {
+ for (auto &[q_idx, q_ref] : quest_map) {
q_ref.status = QuestStatusType::UNTAKEN;
q_ref.cur_num = 0;
q_ref.max_num = 0;
floor_ptr->quest_number = QuestId::RANDOM_QUEST1;
parse_fixed_map(player_ptr, "q_info.txt", 0, 0, 0, 0);
floor_ptr->quest_number = QuestId::NONE;
- for (auto q = quest.find(QuestId::RANDOM_QUEST10); q != quest.lower_bound(QuestId::RANDOM_QUEST1) && q != quest.end(); q--) {
+ for (auto q = quest_map.find(QuestId::RANDOM_QUEST10); q != quest_map.lower_bound(QuestId::RANDOM_QUEST1) && q != quest_map.end(); q--) {
auto *q_ptr = &q->second;
monster_race *quest_r_ptr;
q_ptr->status = QuestStatusType::TAKEN;
init_flags = INIT_ASSIGN;
floor_ptr->quest_number = QuestId::OBERON;
parse_fixed_map(player_ptr, "q_info.txt", 0, 0, 0, 0);
- quest[QuestId::OBERON].status = QuestStatusType::TAKEN;
+ quest_map[QuestId::OBERON].status = QuestStatusType::TAKEN;
floor_ptr->quest_number = QuestId::SERPENT;
parse_fixed_map(player_ptr, "q_info.txt", 0, 0, 0, 0);
- quest[QuestId::SERPENT].status = QuestStatusType::TAKEN;
+ quest_map[QuestId::SERPENT].status = QuestStatusType::TAKEN;
floor_ptr->quest_number = QuestId::NONE;
}
*/
static bool confirm_leave_level(PlayerType *player_ptr, bool down_stair)
{
- auto *q_ptr = &quest[player_ptr->current_floor_ptr->quest_number];
+ auto *q_ptr = &quest_map[player_ptr->current_floor_ptr->quest_number];
auto caution_in_tower = any_bits(q_ptr->flags, QUEST_FLAG_TOWER);
- caution_in_tower &= q_ptr->status != QuestStatusType::STAGE_COMPLETED || (down_stair && (quest[QuestId::TOWER1].status != QuestStatusType::COMPLETED));
+ caution_in_tower &= q_ptr->status != QuestStatusType::STAGE_COMPLETED || (down_stair && (quest_map[QuestId::TOWER1].status != QuestStatusType::COMPLETED));
auto caution_in_quest = q_ptr->type == QuestKindType::RANDOM;
caution_in_quest |= q_ptr->flags & QUEST_FLAG_ONCE && q_ptr->status != QuestStatusType::COMPLETED;
leave_quest_check(player_ptr);
player_ptr->current_floor_ptr->quest_number = i2enum<QuestId>(g_ptr->special);
const auto quest_number = player_ptr->current_floor_ptr->quest_number;
- if (quest[quest_number].status == QuestStatusType::UNTAKEN) {
- if (quest[quest_number].type != QuestKindType::RANDOM) {
+ if (quest_map[quest_number].status == QuestStatusType::UNTAKEN) {
+ if (quest_map[quest_number].type != QuestKindType::RANDOM) {
init_flags = INIT_ASSIGN;
parse_fixed_map(player_ptr, "q_info.txt", 0, 0, 0, 0);
}
- quest[quest_number].status = QuestStatusType::TAKEN;
+ quest_map[quest_number].status = QuestStatusType::TAKEN;
}
if (!inside_quest(quest_number)) {
const auto quest_number = player_ptr->current_floor_ptr->quest_number;
- if (inside_quest(quest_number) && quest[quest_number].type == QuestKindType::RANDOM) {
+ if (inside_quest(quest_number) && quest_map[quest_number].type == QuestKindType::RANDOM) {
leave_quest_check(player_ptr);
player_ptr->current_floor_ptr->quest_number = QuestId::NONE;
}
- if (inside_quest(quest_number) && quest[quest_number].type != QuestKindType::RANDOM) {
+ if (inside_quest(quest_number) && quest_map[quest_number].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;
leave_quest_check(player_ptr);
leave_tower_check(player_ptr);
player_ptr->current_floor_ptr->quest_number = i2enum<QuestId>(g_ptr->special);
- if (quest[player_ptr->current_floor_ptr->quest_number].status == QuestStatusType::UNTAKEN) {
- if (quest[player_ptr->current_floor_ptr->quest_number].type != QuestKindType::RANDOM) {
+ if (quest_map[player_ptr->current_floor_ptr->quest_number].status == QuestStatusType::UNTAKEN) {
+ if (quest_map[player_ptr->current_floor_ptr->quest_number].type != QuestKindType::RANDOM) {
init_flags = INIT_ASSIGN;
parse_fixed_map(player_ptr, "q_info.txt", 0, 0, 0, 0);
}
- quest[player_ptr->current_floor_ptr->quest_number].status = QuestStatusType::TAKEN;
+ quest_map[player_ptr->current_floor_ptr->quest_number].status = QuestStatusType::TAKEN;
}
if (!inside_quest(player_ptr->current_floor_ptr->quest_number)) {
disturb(player_ptr, true, true);
auto quest_num = quest_number(player_ptr, floor_ptr->dun_level);
if (inside_quest(quest_num)) {
- r_info[quest[quest_num].r_idx].flags1 |= RF1_QUESTOR;
+ r_info[quest_map[quest_num].r_idx].flags1 |= RF1_QUESTOR;
}
if (player_ptr->max_plv < player_ptr->lev) {
auto no_feeling_quest = (quest_num == QuestId::OBERON);
no_feeling_quest |= (quest_num == QuestId::SERPENT);
- no_feeling_quest |= none_bits(quest[quest_num].flags, QUEST_FLAG_PRESET);
+ no_feeling_quest |= none_bits(quest_map[quest_num].flags, QUEST_FLAG_PRESET);
if (inside_quest(quest_num) && quest_type::is_fixed(quest_num) && !no_feeling_quest) {
do_cmd_feeling(player_ptr);
}
}
}
- if ((inside_quest(quest_num)) && r_info[quest[quest_num].r_idx].kind_flags.has_not(MonsterKindType::UNIQUE)) {
- r_info[quest[quest_num].r_idx].flags1 &= ~RF1_QUESTOR;
+ if ((inside_quest(quest_num)) && r_info[quest_map[quest_num].r_idx].kind_flags.has_not(MonsterKindType::UNIQUE)) {
+ r_info[quest_map[quest_num].r_idx].flags1 &= ~RF1_QUESTOR;
}
if (player_ptr->playing && !player_ptr->is_dead) {
this->set_quest_idx();
auto create_stairs = false;
auto reward = false;
- if (inside_quest(this->quest_idx) && (quest[this->quest_idx].status == QuestStatusType::TAKEN)) {
- this->q_ptr = &quest[this->quest_idx];
+ if (inside_quest(this->quest_idx) && (quest_map[this->quest_idx].status == QuestStatusType::TAKEN)) {
+ this->q_ptr = &quest_map[this->quest_idx];
auto [tmp_create_stairs, tmp_reward] = this->switch_completion();
create_stairs = tmp_create_stairs;
reward = tmp_reward;
if (inside_quest(this->quest_idx)) {
return;
}
- auto q = std::find_if(quest.rbegin(), quest.rend(), [this](auto q) { return check_quest_completion(this->player_ptr, q.second, this->m_ptr); });
+ auto q = std::find_if(quest_map.rbegin(), quest_map.rend(), [this](auto q) { return check_quest_completion(this->player_ptr, q.second, this->m_ptr); });
- if (q != quest.rend()) {
+ if (q != quest_map.rend()) {
this->quest_idx = q->first;
} else {
this->quest_idx = QuestId::NONE;
}
this->q_ptr->status = QuestStatusType::STAGE_COMPLETED;
- auto is_tower_completed = quest[QuestId::TOWER1].status == QuestStatusType::STAGE_COMPLETED;
- is_tower_completed &= quest[QuestId::TOWER2].status == QuestStatusType::STAGE_COMPLETED;
- is_tower_completed &= quest[QuestId::TOWER3].status == QuestStatusType::STAGE_COMPLETED;
+ auto is_tower_completed = quest_map[QuestId::TOWER1].status == QuestStatusType::STAGE_COMPLETED;
+ is_tower_completed &= quest_map[QuestId::TOWER2].status == QuestStatusType::STAGE_COMPLETED;
+ is_tower_completed &= quest_map[QuestId::TOWER3].status == QuestStatusType::STAGE_COMPLETED;
if (is_tower_completed) {
complete_quest(this->player_ptr, QuestId::TOWER1);
}
bool place_quest_monsters(PlayerType *player_ptr)
{
auto *floor_ptr = player_ptr->current_floor_ptr;
- for (auto &[q_idx, q_ref] : quest) {
+ for (auto &[q_idx, q_ref] : quest_map) {
monster_race *r_ptr;
BIT_FLAGS mode;
#include "view/display-messages.h"
#include "world/world.h"
-std::map<QuestId, quest_type> quest; /*!< Quest info */
+std::map<QuestId, quest_type> quest_map; /*!< Quest info */
int16_t max_q_idx; /*!< Maximum number of quests */
char quest_text[10][80]; /*!< Quest text */
int quest_text_line; /*!< Current line of the quest text */
/*!
* @brief クエスト突入時のメッセージテーブル / Array of places to find an inscription
*/
-static concptr find_quest[] = {
+static concptr find_quest_map[] = {
_("床にメッセージが刻まれている:", "You find the following inscription in the floor"),
_("壁にメッセージが刻まれている:", "You see a message inscribed in the wall"),
_("メッセージを見つけた:", "There is a sign saying"),
*/
void complete_quest(PlayerType *player_ptr, QuestId quest_num)
{
- auto *const q_ptr = &quest[quest_num];
+ auto *const q_ptr = &quest_map[quest_num];
switch (q_ptr->type) {
case QuestKindType::RANDOM:
void check_find_art_quest_completion(PlayerType *player_ptr, ObjectType *o_ptr)
{
/* Check if completed a quest */
- for (auto &[q_idx, q_ref] : quest) {
+ for (auto &[q_idx, q_ref] : quest_map) {
auto found_artifact = (q_ref.type == QuestKindType::FIND_ARTIFACT);
found_artifact &= (q_ref.status == QuestStatusType::TAKEN);
found_artifact &= (q_ref.k_idx == o_ptr->fixed_artifact_idx);
*/
void quest_discovery(QuestId q_idx)
{
- auto *q_ptr = &quest[q_idx];
+ auto *q_ptr = &quest_map[q_idx];
auto *r_ptr = &r_info[q_ptr->r_idx];
MONSTER_NUMBER q_num = q_ptr->max_num;
GAME_TEXT name[MAX_NLEN];
strcpy(name, (r_ptr->name.c_str()));
- msg_print(find_quest[rand_range(0, 4)]);
+ msg_print(find_quest_map[rand_range(0, 4)]);
msg_print(nullptr);
if (q_num != 1) {
return floor_ptr->quest_number;
}
- for (auto &[q_idx, q_ref] : quest) {
+ for (auto &[q_idx, q_ref] : quest_map) {
if (q_ref.status != QuestStatusType::TAKEN) {
continue;
}
}
for (auto q_idx : EnumRange(QuestId::RANDOM_QUEST1, QuestId::RANDOM_QUEST10)) {
- auto &q_ref = quest[q_idx];
+ auto &q_ref = quest_map[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);
return;
}
- auto *const q_ptr = &quest[leaving_quest];
+ auto *const q_ptr = &quest_map[leaving_quest];
bool is_one_time_quest = ((q_ptr->flags & QUEST_FLAG_ONCE) || (q_ptr->type == QuestKindType::RANDOM)) && (q_ptr->status == QuestStatusType::TAKEN);
if (!is_one_time_quest) {
return;
/* Additional settings */
switch (q_ptr->type) {
case QuestKindType::TOWER:
- quest[QuestId::TOWER1].status = QuestStatusType::FAILED;
- quest[QuestId::TOWER1].complev = player_ptr->lev;
+ quest_map[QuestId::TOWER1].status = QuestStatusType::FAILED;
+ quest_map[QuestId::TOWER1].complev = player_ptr->lev;
break;
case QuestKindType::FIND_ARTIFACT:
a_info[q_ptr->k_idx].gen_flags.reset(ItemGenerationTraitType::QUESTITEM);
{
leaving_quest = player_ptr->current_floor_ptr->quest_number;
bool is_leaving_from_tower = inside_quest(leaving_quest);
- is_leaving_from_tower &= quest[leaving_quest].type == QuestKindType::TOWER;
- is_leaving_from_tower &= quest[QuestId::TOWER1].status != QuestStatusType::COMPLETED;
+ is_leaving_from_tower &= quest_map[leaving_quest].type == QuestKindType::TOWER;
+ is_leaving_from_tower &= quest_map[QuestId::TOWER1].status != QuestStatusType::COMPLETED;
if (!is_leaving_from_tower) {
return;
}
- if (quest[leaving_quest].type != QuestKindType::TOWER) {
+ if (quest_map[leaving_quest].type != QuestKindType::TOWER) {
return;
}
- quest[QuestId::TOWER1].status = QuestStatusType::FAILED;
- quest[QuestId::TOWER1].complev = player_ptr->lev;
+ quest_map[QuestId::TOWER1].status = QuestStatusType::FAILED;
+ quest_map[QuestId::TOWER1].complev = player_ptr->lev;
update_playtime();
- quest[QuestId::TOWER1].comptime = w_ptr->play_time;
+ quest_map[QuestId::TOWER1].comptime = w_ptr->play_time;
}
/*!
*/
void exe_enter_quest(PlayerType *player_ptr, QuestId quest_idx)
{
- if (quest[quest_idx].type != QuestKindType::RANDOM) {
+ if (quest_map[quest_idx].type != QuestKindType::RANDOM) {
player_ptr->current_floor_ptr->dun_level = 1;
}
player_ptr->current_floor_ptr->quest_number = quest_idx;
static bool is_fixed(QuestId quest_idx);
};
-extern std::map<QuestId, quest_type> quest;
+extern std::map<QuestId, quest_type> quest_map;
extern int16_t max_q_idx;
extern char quest_text[10][80];
extern int quest_text_line;
auto *floor_ptr = player_ptr->current_floor_ptr;
auto quest_monster = inside_quest(floor_ptr->quest_number);
- quest_monster &= (quest[floor_ptr->quest_number].type == QuestKindType::KILL_ALL);
+ quest_monster &= (quest_map[floor_ptr->quest_number].type == QuestKindType::KILL_ALL);
quest_monster &= !is_pet(em_ptr->m_ptr);
auto cannot_capture = quest_monster;
}
quest_type *q_ptr;
- q_ptr = &(quest[i2enum<QuestId>(atoi(zz[0]))]);
+ q_ptr = &(quest_map[i2enum<QuestId>(atoi(zz[0]))]);
if (parse_qtw_QQ(q_ptr, zz, num)) {
return PARSE_ERROR_NONE;
}
auto dungeon_quest = (quest_num == QuestId::OBERON);
dungeon_quest |= (quest_num == QuestId::SERPENT);
- dungeon_quest |= !(quest[quest_num].flags & QUEST_FLAG_PRESET);
+ dungeon_quest |= !(quest_map[quest_num].flags & QUEST_FLAG_PRESET);
auto feeling_quest = inside_quest(quest_num);
feeling_quest &= quest_type::is_fixed(quest_num);
}
}
- floor_ptr->base_level = quest[floor_ptr->quest_number].level;
+ floor_ptr->base_level = quest_map[floor_ptr->quest_number].level;
floor_ptr->dun_level = floor_ptr->base_level;
floor_ptr->object_level = floor_ptr->base_level;
floor_ptr->monster_level = floor_ptr->base_level;
static void preserve_info(PlayerType *player_ptr)
{
MONRACE_IDX quest_r_idx = 0;
- for (auto &[q_idx, q_ref] : quest) {
+ for (auto &[q_idx, q_ref] : quest_map) {
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);
auto *floor_ptr = player_ptr->current_floor_ptr;
auto is_fixed_quest = inside_quest(floor_ptr->quest_number);
is_fixed_quest &= quest_type::is_fixed(floor_ptr->quest_number);
- is_fixed_quest &= any_bits(quest[floor_ptr->quest_number].flags, QUEST_FLAG_PRESET);
+ is_fixed_quest &= any_bits(quest_map[floor_ptr->quest_number].flags, QUEST_FLAG_PRESET);
if (is_fixed_quest) {
return _("クエスト", "Quest");
} else if (player_ptr->wild_mode) {
} else if (f_ptr->flags.has(FloorFeatureType::MORE)) {
auto q_idx = quest_number(player_ptr, floor_ptr->dun_level);
if (floor_ptr->dun_level > 1 && inside_quest(q_idx)) {
- auto *r_ptr = &r_info[quest[q_idx].r_idx];
+ auto *r_ptr = &r_info[quest_map[q_idx].r_idx];
if (r_ptr->kind_flags.has_not(MonsterKindType::UNIQUE) || 0 < r_ptr->max_num) {
return true;
}
generate_encounter = false;
set_floor_and_wall(0);
- for (auto &[q_idx, q_ref] : quest) {
+ for (auto &[q_idx, q_ref] : quest_map) {
if (q_ref.status == QuestStatusType::REWARDED) {
q_ref.status = QuestStatusType::FINISHED;
}
sprintf(tmp, "%d", enum2i(leaving_quest));
v = tmp;
} else if (prefix(b + 1, "QUEST_TYPE")) {
- sprintf(tmp, "%d", enum2i(quest[i2enum<QuestId>(atoi(b + 11))].type));
+ sprintf(tmp, "%d", enum2i(quest_map[i2enum<QuestId>(atoi(b + 11))].type));
v = tmp;
} else if (prefix(b + 1, "QUEST")) {
- sprintf(tmp, "%d", enum2i(quest[i2enum<QuestId>(atoi(b + 6))].status));
+ sprintf(tmp, "%d", enum2i(quest_map[i2enum<QuestId>(atoi(b + 6))].status));
v = tmp;
} else if (prefix(b + 1, "RANDOM")) {
sprintf(tmp, "%d", (int)(w_ptr->seed_town % atoi(b + 7)));
}
} else if (zz[6][0] == '!') {
if (inside_quest(floor_ptr->quest_number)) {
- letter[index].artifact = quest[floor_ptr->quest_number].k_idx;
+ letter[index].artifact = quest_map[floor_ptr->quest_number].k_idx;
}
} else {
letter[index].artifact = (ARTIFACT_IDX)atoi(zz[6]);
}
} else if (zz[4][0] == '!') {
if (inside_quest(floor_ptr->quest_number)) {
- ARTIFACT_IDX a_idx = quest[floor_ptr->quest_number].k_idx;
+ ARTIFACT_IDX a_idx = quest_map[floor_ptr->quest_number].k_idx;
if (a_idx) {
auto *a_ptr = &a_info[a_idx];
if (a_ptr->gen_flags.has_not(ItemGenerationTraitType::INSTA_ART)) {
fprintf(fff, _("\n\n [クエスト情報]\n", "\n\n [Quest Information]\n"));
std::vector<QuestId> quest_numbers;
- for (auto &[q_idx, q_ref] : quest) {
+ for (auto &[q_idx, q_ref] : quest_map) {
quest_numbers.push_back(q_idx);
}
int dummy;
}
auto old_quest = player_ptr->current_floor_ptr->quest_number;
- player_ptr->current_floor_ptr->quest_number = (quest[num].type == QuestKindType::RANDOM) ? QuestId::NONE : num;
+ player_ptr->current_floor_ptr->quest_number = (quest_map[num].type == QuestKindType::RANDOM) ? QuestId::NONE : num;
init_flags = INIT_NAME_ONLY;
parse_fixed_map(player_ptr, "q_info.txt", 0, 0, 0, 0);
player_ptr->current_floor_ptr->quest_number = old_quest;
switch (type) {
case DIARY_FIX_QUEST_C: {
- if (quest[num].flags & QUEST_FLAG_SILENT) {
+ if (quest_map[num].flags & QUEST_FLAG_SILENT) {
break;
}
- fprintf(fff, _(" %2d:%02d %20s クエスト「%s」を達成した。\n", " %2d:%02d %20s completed quest '%s'.\n"), hour, min, note_level, quest[num].name);
+ fprintf(fff, _(" %2d:%02d %20s クエスト「%s」を達成した。\n", " %2d:%02d %20s completed quest '%s'.\n"), hour, min, note_level, quest_map[num].name);
break;
}
case DIARY_FIX_QUEST_F: {
- if (quest[num].flags & QUEST_FLAG_SILENT) {
+ if (quest_map[num].flags & QUEST_FLAG_SILENT) {
break;
}
- fprintf(fff, _(" %2d:%02d %20s クエスト「%s」から命からがら逃げ帰った。\n", " %2d:%02d %20s ran away from quest '%s'.\n"), hour, min, note_level, quest[num].name);
+ fprintf(fff, _(" %2d:%02d %20s クエスト「%s」から命からがら逃げ帰った。\n", " %2d:%02d %20s ran away from quest '%s'.\n"), hour, min, note_level, quest_map[num].name);
break;
}
case DIARY_RAND_QUEST_C: {
GAME_TEXT name[MAX_NLEN];
- strcpy(name, r_info[quest[num].r_idx].name.c_str());
+ strcpy(name, r_info[quest_map[num].r_idx].name.c_str());
fprintf(fff, _(" %2d:%02d %20s ランダムクエスト(%s)を達成した。\n", " %2d:%02d %20s completed random quest '%s'\n"), hour, min, note_level, name);
break;
}
case DIARY_RAND_QUEST_F: {
GAME_TEXT name[MAX_NLEN];
- strcpy(name, r_info[quest[num].r_idx].name.c_str());
+ strcpy(name, r_info[quest_map[num].r_idx].name.c_str());
fprintf(fff, _(" %2d:%02d %20s ランダムクエスト(%s)から逃げ出した。\n", " %2d:%02d %20s ran away from quest '%s'.\n"), hour, min, note_level, name);
break;
}
case DIARY_TO_QUEST: {
- if (quest[num].flags & QUEST_FLAG_SILENT) {
+ if (quest_map[num].flags & QUEST_FLAG_SILENT) {
break;
}
fprintf(fff, _(" %2d:%02d %20s クエスト「%s」へと突入した。\n", " %2d:%02d %20s entered the quest '%s'.\n"),
- hour, min, note_level, quest[num].name);
+ hour, min, note_level, quest_map[num].name);
break;
}
default:
fprintf(fff, _("《遂行中のクエスト》\n", "< Current Quest >\n"));
- for (auto &[q_idx, q_ref] : quest) {
+ for (auto &[q_idx, q_ref] : quest_map) {
bool 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;
{
char tmp_str[120];
char playtime_str[16];
- auto *const q_ptr = &quest[q_idx];
+ auto *const q_ptr = &quest_map[q_idx];
auto *floor_ptr = player_ptr->current_floor_ptr;
auto is_fixed_quest = quest_type::is_fixed(q_idx);
fprintf(fff, _("《達成したクエスト》\n", "< Completed Quest >\n"));
int16_t total = 0;
for (auto &q_idx : quest_numbers) {
- auto &q_ref = quest[q_idx];
+ auto &q_ref = quest_map[q_idx];
if (q_ref.status == QuestStatusType::FINISHED && do_cmd_knowledge_quests_aux(player_ptr, fff, q_idx)) {
++total;
fprintf(fff, _("《失敗したクエスト》\n", "< Failed Quest >\n"));
int16_t total = 0;
for (auto &q_idx : quest_numbers) {
- auto &q_ref = quest[q_idx];
+ auto &q_ref = quest_map[q_idx];
if (((q_ref.status == QuestStatusType::FAILED_DONE) || (q_ref.status == QuestStatusType::FAILED)) && do_cmd_knowledge_quests_aux(player_ptr, fff, q_idx)) {
++total;
fprintf(fff, _("《残りのランダムクエスト》\n", "< Remaining Random Quest >\n"));
GAME_TEXT tmp_str[120];
int16_t total = 0;
- for (auto &[q_idx, q_ref] : quest) {
+ for (auto &[q_idx, q_ref] : quest_map) {
if (q_ref.flags & QUEST_FLAG_SILENT) {
continue;
}
}
std::vector<QuestId> quest_numbers;
- for (auto &q : quest) {
+ for (auto &q : quest_map) {
quest_numbers.push_back(q.first);
}
int dummy;
{
if (player_ptr->is_dead) {
for (auto q_idx : EnumRange(QuestId::RANDOM_QUEST1, QuestId::RANDOM_QUEST10)) {
- r_info[quest[q_idx].r_idx].flags1 &= ~RF1_QUESTOR;
+ r_info[quest_map[q_idx].r_idx].flags1 &= ~RF1_QUESTOR;
}
return 0;
/* Quest 18 was removed */
if (h_older_than(1, 7, 0, 6)) {
- quest[i2enum<QuestId>(OLD_QUEST_WATER_CAVE)] = {};
- quest[i2enum<QuestId>(OLD_QUEST_WATER_CAVE)].status = QuestStatusType::UNTAKEN;
+ quest_map[i2enum<QuestId>(OLD_QUEST_WATER_CAVE)] = {};
+ quest_map[i2enum<QuestId>(OLD_QUEST_WATER_CAVE)].status = QuestStatusType::UNTAKEN;
}
load_wilderness_info(player_ptr);
q_ptr->r_idx = rd_s16b();
if ((q_ptr->type == QuestKindType::RANDOM) && (!q_ptr->r_idx)) {
- determine_random_questor(player_ptr, &quest[i2enum<QuestId>(loading_quest_index)]);
+ determine_random_questor(player_ptr, &quest_map[i2enum<QuestId>(loading_quest_index)]);
}
q_ptr->k_idx = rd_s16b();
if (q_ptr->k_idx) {
continue;
}
- auto *const q_ptr = &quest[i2enum<QuestId>(i)];
+ auto *const q_ptr = &quest_map[i2enum<QuestId>(i)];
load_quest_completion(q_ptr);
bool is_quest_running = (q_ptr->status == QuestStatusType::TAKEN);
is_quest_running |= (!h_older_than(0, 3, 14) && (q_ptr->status == QuestStatusType::COMPLETED));
void init_quests(void)
{
for (auto i = 0; i < max_q_idx; i++) {
- quest[i2enum<QuestId>(i)].status = QuestStatusType::UNTAKEN;
+ quest_map[i2enum<QuestId>(i)].status = QuestStatusType::UNTAKEN;
}
}
get_questinfo(player_ptr, questnum, do_init);
GAME_TEXT tmp_str[80];
- sprintf(tmp_str, _("クエスト情報 (危険度: %d 階相当)", "Quest Information (Danger level: %d)"), (int)quest[questnum].level);
+ sprintf(tmp_str, _("クエスト情報 (危険度: %d 階相当)", "Quest Information (Danger level: %d)"), (int)quest_map[questnum].level);
prt(tmp_str, 5, 0);
- prt(quest[questnum].name, 7, 0);
+ prt(quest_map[questnum].name, 7, 0);
for (int i = 0; i < 10; i++) {
c_put_str(TERM_YELLOW, quest_text[i], i + 8, 0);
}
quest_type *q_ptr;
- q_ptr = &quest[q_index];
+ q_ptr = &quest_map[q_index];
if (q_ptr->status == QuestStatusType::COMPLETED) {
q_ptr->status = QuestStatusType::REWARDED;
print_questinfo(player_ptr, q_index, false);
}
QuestId hoge = quest_number(player_ptr, floor_ptr->dun_level);
- if ((quest[hoge].type != QuestKindType::KILL_LEVEL) && (quest[hoge].type != QuestKindType::RANDOM)) {
+ if ((quest_map[hoge].type != QuestKindType::KILL_LEVEL) && (quest_map[hoge].type != QuestKindType::RANDOM)) {
return true;
}
- if (r_idx != quest[hoge].r_idx) {
+ if (r_idx != quest_map[hoge].r_idx) {
return true;
}
int number_mon = 0;
for (int i2 = 0; i2 < floor_ptr->width; ++i2) {
for (int j2 = 0; j2 < floor_ptr->height; j2++) {
auto quest_monster = (floor_ptr->grid_array[j2][i2].m_idx > 0);
- quest_monster &= (floor_ptr->m_list[floor_ptr->grid_array[j2][i2].m_idx].r_idx == quest[hoge].r_idx);
+ quest_monster &= (floor_ptr->m_list[floor_ptr->grid_array[j2][i2].m_idx].r_idx == quest_map[hoge].r_idx);
if (quest_monster) {
number_mon++;
}
}
}
- if (number_mon + quest[hoge].cur_num >= quest[hoge].max_num) {
+ if (number_mon + quest_map[hoge].cur_num >= quest_map[hoge].max_num) {
return false;
}
return true;
return false;
}
- auto a_idx = quest[quest_idx].k_idx;
+ auto a_idx = quest_map[quest_idx].k_idx;
if (a_idx == 0) {
return false;
}
energy.reset_player_turn();
command_new = SPECIAL_KEY_QUEST;
} else if (f_ptr->flags.has(FloorFeatureType::QUEST_EXIT)) {
- if (quest[floor_ptr->quest_number].type == QuestKindType::FIND_EXIT) {
+ if (quest_map[floor_ptr->quest_number].type == QuestKindType::FIND_EXIT) {
complete_quest(player_ptr, floor_ptr->quest_number);
}
leave_quest_check(player_ptr);
wr_byte(tmp8u);
for (short i = 0; i < max_q_idx; i++) {
- auto *const q_ptr = &quest[i2enum<QuestId>(i)];
+ auto *const q_ptr = &quest_map[i2enum<QuestId>(i)];
wr_s16b(enum2i(q_ptr->status));
wr_s16b((int16_t)q_ptr->level);
wr_byte((byte)q_ptr->complev);
DEPTH max_depth = d_info[select_dungeon].maxdepth;
if (select_dungeon == DUNGEON_ANGBAND) {
- if (quest[QuestId::OBERON].status != QuestStatusType::FINISHED) {
+ if (quest_map[QuestId::OBERON].status != QuestStatusType::FINISHED) {
max_depth = 98;
- } else if (quest[QuestId::SERPENT].status != QuestStatusType::FINISHED) {
+ } else if (quest_map[QuestId::SERPENT].status != QuestStatusType::FINISHED) {
max_depth = 99;
}
}
init_flags = INIT_NAME_ONLY;
parse_fixed_map(player_ptr, "q_info.txt", 0, 0, 0, 0);
player_ptr->current_floor_ptr->quest_number = old_quest;
- return format(msg.data(), quest[number].name, quest[number].level);
+ return format(msg.data(), quest_map[number].name, quest_map[number].level);
}
if (eg_ptr->f_ptr->flags.has(FloorFeatureType::BLDG) && !player_ptr->current_floor_ptr->inside_arena) {
(void)v;
QuestId *q_num = (QuestId *)u;
- auto *qa = &quest[q_num[a]];
- auto *qb = &quest[q_num[b]];
+ auto *qa = &quest_map[q_num[a]];
+ auto *qb = &quest_map[q_num[b]];
return (qa->comptime != qb->comptime) ? (qa->comptime < qb->comptime) : (qa->level <= qb->level);
}
init_flags = INIT_NAME_ONLY;
parse_fixed_map(player_ptr, "q_info.txt", 0, 0, 0, 0);
#ifdef JP
- return std::string(format("…あなたは、クエスト「%s」で%sに殺された。", quest[floor_ptr->quest_number].name, player_ptr->died_from));
+ return std::string(format("…あなたは、クエスト「%s」で%sに殺された。", quest_map[floor_ptr->quest_number].name, player_ptr->died_from));
#else
- return std::string(format("...You were killed by %s in the quest '%s'.", player_ptr->died_from, quest[floor_ptr->quest_number].name));
+ return std::string(format("...You were killed by %s in the quest '%s'.", player_ptr->died_from, quest_map[floor_ptr->quest_number].name));
#endif
}
quest_text_line = 0;
init_flags = INIT_NAME_ONLY;
parse_fixed_map(player_ptr, "q_info.txt", 0, 0, 0, 0);
- return std::string(format(_("…あなたは現在、 クエスト「%s」を遂行中だ。", "...Now, you are in the quest '%s'."), quest[floor_ptr->quest_number].name));
+ return std::string(format(_("…あなたは現在、 クエスト「%s」を遂行中だ。", "...Now, you are in the quest '%s'."), quest_map[floor_ptr->quest_number].name));
}
/*!
init_flags = i2enum<init_flags_type>(INIT_SHOW_TEXT | INIT_ASSIGN);
player_ptr->current_floor_ptr->quest_number = q_idx;
parse_fixed_map(player_ptr, "q_info.txt", 0, 0, 0, 0);
- quest[q_idx].status = QuestStatusType::TAKEN;
- if (quest[q_idx].dungeon == 0) {
+ quest_map[q_idx].status = QuestStatusType::TAKEN;
+ if (quest_map[q_idx].dungeon == 0) {
exe_enter_quest(player_ptr, q_idx);
}
}
return;
}
- if (quest[player_ptr->current_floor_ptr->quest_number].status == QuestStatusType::TAKEN) {
+ if (quest_map[player_ptr->current_floor_ptr->quest_number].status == QuestStatusType::TAKEN) {
complete_quest(player_ptr, player_ptr->current_floor_ptr->quest_number);
}
}
return;
}
for (auto q_idx : EnumRange(QuestId::RANDOM_QUEST1, QuestId::RANDOM_QUEST10)) {
- auto &q_ref = quest[q_idx];
+ auto &q_ref = quest_map[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);