/*
* Display quest information
*/
-static void get_questinfo(int questnum)
+static void get_questinfo(int questnum, bool do_init)
{
int i;
int old_quest;
p_ptr->inside_quest = questnum;
/* Get the quest text */
- init_flags = INIT_SHOW_TEXT | INIT_ASSIGN;
+ init_flags = INIT_SHOW_TEXT;
+ if (do_init) init_flags |= INIT_ASSIGN;
process_dungeon_file("q_info.txt", 0, 0, 0, 0);
/* Rewarded quest */
q_ptr->status = QUEST_STATUS_REWARDED;
- get_questinfo(q_index);
+ get_questinfo(q_index, FALSE);
reinit_wilderness = TRUE;
}
/* Failed quest */
else if (q_ptr->status == QUEST_STATUS_FAILED)
{
- get_questinfo(q_index);
+ get_questinfo(q_index, FALSE);
/* Mark quest as done (but failed) */
q_ptr->status = QUEST_STATUS_FAILED_DONE;
}
else
{
- get_questinfo(q_index);
+ get_questinfo(q_index, TRUE);
}
}
}
p_ptr->inside_quest = (quest[num].type == QUEST_TYPE_RANDOM) ? 0 : num;
/* Get the quest text */
- init_flags = INIT_ASSIGN;
+ init_flags = INIT_NAME_ONLY;
process_dungeon_file("q_info.txt", 0, 0, 0, 0);
p_ptr->inside_quest = q_idx;
/* Get the quest */
- init_flags = INIT_ASSIGN;
+ init_flags = INIT_NAME_ONLY;
process_dungeon_file("q_info.txt", 0, 0, 0, 0);
p_ptr->inside_quest = q_idx;
/* Get the quest text */
- init_flags = INIT_ASSIGN;
+ init_flags = INIT_NAME_ONLY;
process_dungeon_file("q_info.txt", 0, 0, 0, 0);
/*
* Initialization flags
*/
-#define INIT_SHOW_TEXT 0x01
-#define INIT_ASSIGN 0x02
-#define INIT_CREATE_DUNGEON 0x04
-#define INIT_ONLY_FEATURES 0x08
-#define INIT_ONLY_BUILDINGS 0x10
+#define INIT_NAME_ONLY 0x01
+#define INIT_SHOW_TEXT 0x02
+#define INIT_ASSIGN 0x04
+#define INIT_CREATE_DUNGEON 0x08
+#define INIT_ONLY_FEATURES 0x10
+#define INIT_ONLY_BUILDINGS 0x20
/*
* Quest flags
{
/* Get the quest text */
/* Bewere that INIT_ASSIGN resets the cur_num. */
- init_flags = INIT_ASSIGN;
+ init_flags = INIT_NAME_ONLY;
process_dungeon_file("q_info.txt", 0, 0, 0, 0);
quest_text_line = 0;
/* Get the quest text */
- init_flags = INIT_SHOW_TEXT;
+ init_flags = INIT_NAME_ONLY;
process_dungeon_file("q_info.txt", 0, 0, 0, 0);
/* Prepare allocation table */
get_mon_num_prep(get_monster_hook(), NULL);
- init_flags = INIT_CREATE_DUNGEON | INIT_ASSIGN;
+ init_flags = INIT_CREATE_DUNGEON;
process_dungeon_file("q_info.txt", 0, 0, MAX_HGT, MAX_WID);
}
/* Process "Q:<q_index>:N:<name>" -- quest name */
else if (zz[1][0] == 'N')
{
- if (init_flags & (INIT_ASSIGN | INIT_SHOW_TEXT))
+ if (init_flags & (INIT_ASSIGN | INIT_SHOW_TEXT | INIT_NAME_ONLY))
{
strcpy(q_ptr->name, zz[2]);
}
p_ptr->inside_quest = c_ptr->special;
/* Get the quest text */
- init_flags = INIT_SHOW_TEXT;
+ init_flags = INIT_NAME_ONLY;
process_dungeon_file("q_info.txt", 0, 0, 0, 0);