case BACT_RUMORS: /* Listen for rumors */
{
- char Rumor[1024];
-
-#ifdef JP
- if (!get_rnd_line_jonly("rumors_j.txt", 0, Rumor, 10))
-#else
- if (!get_rnd_line("rumors.txt", 0, Rumor))
-#endif
-
- msg_format("%s", Rumor);
+ display_rumor(TRUE);
break;
}
}
/*
* 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);
}
}
}
static s16b calc_expext_cirt(int weight, int plus, int dam, s16b meichuu, bool dokubari)
{
- long i, num;
+ long i,k, num;
if(dokubari) return dam;
i = weight + (meichuu * 3 + plus * 5) + (p_ptr->lev * 3);
+ k = weight;
num=0;
- if (i < 400) num += (2 * dam + 5) * (400 - i);
- if (i < 700) num += (2 * dam + 10) * (700 - MAX(400, i));
- if (i > (700-650) && i < 900) num += (3 * dam + 15) * (900 - MAX(700, i));
- if (i > (900-650) && i < 1300) num += (3 * dam + 20) * (1300 - MAX(900, i));
- if (i > (1300-650)) num += (7 * dam / 2 + 25) * (i - (1300-650));
+ if (k < 400) num += (2 * dam + 5) * (400 - k);
+ if (k < 700) num += (2 * dam + 10) * (MIN(700, k+650) - MAX(400, k));
+ if (k > (700-650) && k < 900) num += (3 * dam + 15) * (MIN(900, k+650) - MAX(700, k));
+ if (k > (900-650) && k < 1300) num += (3 * dam + 20) * (MIN(1300, k+650) - MAX(900, k));
+ if (k > (1300-650)) num += (7 * dam / 2 + 25) * MIN(650, k-(1300-650));
if(p_ptr->pclass == CLASS_NINJA)
{
}
else if ((which == 2) && p_ptr->inside_arena)
{
- if (!p_ptr->exit_bldg)
+ if (!p_ptr->exit_bldg && m_cnt > 0)
{
#ifdef JP
prt("¥²¡¼¥È¤ÏÊĤޤäƤ¤¤ë¡£¥â¥ó¥¹¥¿¡¼¤¬¤¢¤Ê¤¿¤òÂԤäƤ¤¤ë¡ª", 0, 0);