if (autosave_l) do_cmd_save_game(TRUE);
- if (p_ptr->inside_quest)
+ /* For a random quest */
+ if (p_ptr->inside_quest &&
+ quest[p_ptr->inside_quest].type == QUEST_TYPE_RANDOM)
{
leave_quest_check();
- if (quest[leaving_quest].type != QUEST_TYPE_RANDOM)
- {
- p_ptr->inside_quest = c_ptr->special;
- dun_level = 0;
- }
- else
- {
- p_ptr->inside_quest = 0;
- }
+ p_ptr->inside_quest = 0;
+ }
+
+ /* For a fixed quest */
+ if (p_ptr->inside_quest &&
+ quest[p_ptr->inside_quest].type != QUEST_TYPE_RANDOM)
+ {
+ leave_quest_check();
+ p_ptr->inside_quest = c_ptr->special;
+ dun_level = 0;
up_num = 0;
}
+
+ /* For normal dungeon and random quest */
else
{
/* New depth */
#ifdef JP
if (record_stair) do_cmd_write_nikki(NIKKI_STAIR, 0-up_num, "³¬Ãʤò¾å¤Ã¤¿");
#else
- if (record_stair) do_cmd_write_nikki(NIKKI_STAIR, 0-up_num, "go up the stairs to");
+ if (record_stair) do_cmd_write_nikki(NIKKI_STAIR, 0-up_num, "climbed up the stairs to");
#endif
/* Success */
if (record_stair)
{
#ifdef JP
- if (fall_trap) do_cmd_write_nikki(NIKKI_STAIR, down_num, "Í¸Í¤ËÍî¤Á¤¿");
+ if (fall_trap) do_cmd_write_nikki(NIKKI_STAIR, down_num, "Íî¤Ȥ·¸Í¤ËÍî¤Á¤¿");
else do_cmd_write_nikki(NIKKI_STAIR, down_num, "³¬Ãʤò²¼¤ê¤¿");
#else
- if (fall_trap) do_cmd_write_nikki(NIKKI_STAIR, down_num, "fall from trap door");
- else do_cmd_write_nikki(NIKKI_STAIR, down_num, "go down the stairs to");
+ if (fall_trap) do_cmd_write_nikki(NIKKI_STAIR, down_num, "fell through a trap door");
+ else do_cmd_write_nikki(NIKKI_STAIR, down_num, "climbed down the stairs to");
#endif
}
if (fall_trap)
{
#ifdef JP
- msg_print("¤ï¤¶¤ÈÍ¸Í¤ËÍî¤Á¤¿¡£");
+ msg_print("¤ï¤¶¤ÈÍî¤Ȥ·¸Í¤ËÍî¤Á¤¿¡£");
#else
msg_print("You deliberately jump through the trap door.");
#endif
int number;
bool small;
- bool great = FALSE;
+ u32b mode = AM_GOOD;
object_type forge;
object_type *q_ptr;
{
number = 5;
small = FALSE;
- great = TRUE;
+ mode |= AM_GREAT;
object_level = o_ptr->xtra3;
}
else
else
{
/* Make a good object */
- if (!make_object(q_ptr, TRUE, great)) continue;
+ if (!make_object(q_ptr, mode)) continue;
}
/* If chest scatters its contents, pick any floor square. */
msg_print("A puff of green gas surrounds you!");
#endif
- if (!(p_ptr->resist_pois || p_ptr->oppose_pois))
+ if (!(p_ptr->resist_pois || IS_OPPOSE_POIS()))
{
(void)set_poisoned(p_ptr->poisoned + 10 + randint1(20));
}
else
{
#ifdef JP
- msg_print("±²´¬¤«¹çÂΤ·¡¢ÇËÎö¤·¤¿¡ª");
+ msg_print("±²´¬¤¬¹çÂΤ·¡¢ÇËÎö¤·¤¿¡ª");
#else
msg_print("Vortices coalesce and wreak destruction!");
#endif
/* Message. */
#ifdef JP
- msg_print("¶²¤·¤¤À¼¤¬¶Á¤¤¤¿: ¡Ö°Å°Ç¤¬Æò¤ò¤Ä¤Ä¤Þ¤ó¡ª¡×");
+ msg_print("¶²¤í¤·¤¤À¼¤¬¶Á¤¤¤¿: ¡Ö°Å°Ç¤¬Æò¤ò¤Ä¤Ä¤Þ¤ó¡ª¡×");
#else
msg_print("Hideous voices bid: 'Let the darkness have thee!'");
#endif
if (!(c_ptr->info & (CAVE_MARK))) continue;
/* Feature code (applying "mimic" field) */
- feat = c_ptr->mimic ? c_ptr->mimic : f_info[c_ptr->feat].mimic;
-
+ feat = f_info[c_ptr->mimic ? c_ptr->mimic : c_ptr->feat].mimic;
+
/* Not looking for this feature */
if (!((*test)(feat))) continue;
c_ptr = &cave[y][x];
/* Feature code (applying "mimic" field) */
- feat = c_ptr->mimic ? c_ptr->mimic : f_info[c_ptr->feat].mimic;
-
+ feat = f_info[c_ptr->mimic ? c_ptr->mimic : c_ptr->feat].mimic;
+
/* Check for chest */
o_idx = chest_check(y, x);
c_ptr = &cave[y][x];
/* Seeing true feature code (ignore mimic) */
-
+
/* Broken door */
if (c_ptr->feat == FEAT_BROKEN)
{
c_ptr = &cave[y][x];
/* Feature code (applying "mimic" field) */
- feat = c_ptr->mimic ? c_ptr->mimic : f_info[c_ptr->feat].mimic;
-
+ feat = f_info[c_ptr->mimic ? c_ptr->mimic : c_ptr->feat].mimic;
+
/* Require open/broken door */
if ((feat != FEAT_OPEN) && (feat != FEAT_BROKEN))
{
c_ptr = &cave[y][x];
/* Feature code (applying "mimic" field) */
- feat = c_ptr->mimic ? c_ptr->mimic : f_info[c_ptr->feat].mimic;
+ feat = f_info[c_ptr->mimic ? c_ptr->mimic : c_ptr->feat].mimic;
/* Sound */
sound(SOUND_DIG);
}
- /* No tunnelling through mountains */
- else if (feat == FEAT_MOUNTAIN)
- {
-#ifdef JP
- msg_print("¤½¤³¤Ï·¡¤ì¤Ê¤¤!");
-#else
- msg_print("You can't tunnel through that!");
-#endif
-
- }
-
/* Map border (mimiccing Permanent wall) */
else if ((c_ptr->feat >= FEAT_PERM_EXTRA &&
c_ptr->feat <= FEAT_PERM_SOLID) ||
#else
msg_print("You have finished the tunnel.");
#endif
- chg_virtue(V_DILIGENCE, 1);
- chg_virtue(V_NATURE, -1);
}
+
+ chg_virtue(V_DILIGENCE, 1);
+ chg_virtue(V_NATURE, -1);
}
/* Failure (quartz) */
if (randint0(100) < (15 - dun_level/2))
{
/* Create a simple object */
- place_object(y, x, FALSE, FALSE);
+ place_object(y, x, 0L);
/* Observe new object */
if (player_can_see_bold(y, x))
c_ptr = &cave[y][x];
/* Feature code (applying "mimic" field) */
- feat = c_ptr->mimic ? c_ptr->mimic : f_info[c_ptr->feat].mimic;
+ feat = f_info[c_ptr->mimic ? c_ptr->mimic : c_ptr->feat].mimic;
/* No tunnelling through doors */
if (((feat >= FEAT_DOOR_HEAD) && (feat <= FEAT_DOOR_TAIL)) ||
cave_set_feat(y, x, FEAT_OPEN);
/* Update some things */
- p_ptr->update |= (PU_VIEW | PU_LITE | PU_MONSTERS);
+ p_ptr->update |= (PU_VIEW | PU_LITE | PU_MONSTERS | PU_MON_LITE);
/* Sound */
sound(SOUND_OPENDOOR);
cave_set_feat(y, x, FEAT_OPEN);
/* Update some things */
- p_ptr->update |= (PU_VIEW | PU_LITE | PU_MONSTERS);
+ p_ptr->update |= (PU_VIEW | PU_LITE | PU_MONSTERS | PU_MON_LITE);
/* Sound */
sound(SOUND_OPENDOOR);
c_ptr = &cave[y][x];
/* Feature code (applying "mimic" field) */
- feat = c_ptr->mimic ? c_ptr->mimic : f_info[c_ptr->feat].mimic;
+ feat = f_info[c_ptr->mimic ? c_ptr->mimic : c_ptr->feat].mimic;
/* Check for chests */
o_idx = chest_check(y, x);
move_player(dir, FALSE, FALSE);
/* Update some things */
- p_ptr->update |= (PU_VIEW | PU_LITE);
+ p_ptr->update |= (PU_VIEW | PU_LITE | PU_MON_LITE);
p_ptr->update |= (PU_DISTANCE);
}
c_ptr = &cave[y][x];
/* Feature code (applying "mimic" field) */
- feat = c_ptr->mimic ? c_ptr->mimic : f_info[c_ptr->feat].mimic;
+ feat = f_info[c_ptr->mimic ? c_ptr->mimic : c_ptr->feat].mimic;
/* Nothing useful */
if (!((feat >= FEAT_DOOR_HEAD) &&
c_ptr = &cave[y][x];
/* Feature code (applying "mimic" field) */
- feat = c_ptr->mimic ? c_ptr->mimic : f_info[c_ptr->feat].mimic;
+ feat = f_info[c_ptr->mimic ? c_ptr->mimic : c_ptr->feat].mimic;
/* Take a turn */
energy_use = 100;
c_ptr = &cave[y][x];
/* Feature code (applying "mimic" field) */
- feat = c_ptr->mimic ? c_ptr->mimic : f_info[c_ptr->feat].mimic;
+ feat = f_info[c_ptr->mimic ? c_ptr->mimic : c_ptr->feat].mimic;
/* Require closed door */
if (!((feat >= FEAT_DOOR_HEAD) &&
if ((have_flag(flgs, TR_SLAY_ANIMAL)) &&
(r_ptr->flags3 & RF3_ANIMAL))
{
- if (m_ptr->ml)
+ if (m_ptr->ml && is_original_ap(m_ptr))
{
r_ptr->r_flags3 |= RF3_ANIMAL;
}
if ((have_flag(flgs, TR_KILL_ANIMAL)) &&
(r_ptr->flags3 & RF3_ANIMAL))
{
- if (m_ptr->ml)
+ if (m_ptr->ml && is_original_ap(m_ptr))
{
r_ptr->r_flags3 |= RF3_ANIMAL;
}
if ((have_flag(flgs, TR_SLAY_EVIL)) &&
(r_ptr->flags3 & RF3_EVIL))
{
- if (m_ptr->ml)
+ if (m_ptr->ml && is_original_ap(m_ptr))
{
r_ptr->r_flags3 |= RF3_EVIL;
}
if ((have_flag(flgs, TR_KILL_EVIL)) &&
(r_ptr->flags3 & RF3_EVIL))
{
- if (m_ptr->ml)
+ if (m_ptr->ml && is_original_ap(m_ptr))
{
r_ptr->r_flags3 |= RF3_EVIL;
}
if ((have_flag(flgs, TR_SLAY_HUMAN)) &&
(r_ptr->flags2 & RF2_HUMAN))
{
- if (m_ptr->ml)
+ if (m_ptr->ml && is_original_ap(m_ptr))
{
r_ptr->r_flags2 |= RF2_HUMAN;
}
if ((have_flag(flgs, TR_KILL_HUMAN)) &&
(r_ptr->flags2 & RF2_HUMAN))
{
- if (m_ptr->ml)
+ if (m_ptr->ml && is_original_ap(m_ptr))
{
r_ptr->r_flags2 |= RF2_HUMAN;
}
if ((have_flag(flgs, TR_SLAY_UNDEAD)) &&
(r_ptr->flags3 & RF3_UNDEAD))
{
- if (m_ptr->ml)
+ if (m_ptr->ml && is_original_ap(m_ptr))
{
r_ptr->r_flags3 |= RF3_UNDEAD;
}
if ((have_flag(flgs, TR_KILL_UNDEAD)) &&
(r_ptr->flags3 & RF3_UNDEAD))
{
- if (m_ptr->ml)
+ if (m_ptr->ml && is_original_ap(m_ptr))
{
r_ptr->r_flags3 |= RF3_UNDEAD;
}
if ((have_flag(flgs, TR_SLAY_DEMON)) &&
(r_ptr->flags3 & RF3_DEMON))
{
- if (m_ptr->ml)
+ if (m_ptr->ml && is_original_ap(m_ptr))
{
r_ptr->r_flags3 |= RF3_DEMON;
}
if ((have_flag(flgs, TR_KILL_DEMON)) &&
(r_ptr->flags3 & RF3_DEMON))
{
- if (m_ptr->ml)
+ if (m_ptr->ml && is_original_ap(m_ptr))
{
r_ptr->r_flags3 |= RF3_DEMON;
}
if ((have_flag(flgs, TR_SLAY_ORC)) &&
(r_ptr->flags3 & RF3_ORC))
{
- if (m_ptr->ml)
+ if (m_ptr->ml && is_original_ap(m_ptr))
{
r_ptr->r_flags3 |= RF3_ORC;
}
if ((have_flag(flgs, TR_KILL_ORC)) &&
(r_ptr->flags3 & RF3_ORC))
{
- if (m_ptr->ml)
+ if (m_ptr->ml && is_original_ap(m_ptr))
{
r_ptr->r_flags3 |= RF3_ORC;
}
if ((have_flag(flgs, TR_SLAY_TROLL)) &&
(r_ptr->flags3 & RF3_TROLL))
{
- if (m_ptr->ml)
+ if (m_ptr->ml && is_original_ap(m_ptr))
{
r_ptr->r_flags3 |= RF3_TROLL;
}
if ((have_flag(flgs, TR_KILL_TROLL)) &&
(r_ptr->flags3 & RF3_TROLL))
{
- if (m_ptr->ml)
+ if (m_ptr->ml && is_original_ap(m_ptr))
{
r_ptr->r_flags3 |= RF3_TROLL;
}
if ((have_flag(flgs, TR_SLAY_GIANT)) &&
(r_ptr->flags3 & RF3_GIANT))
{
- if (m_ptr->ml)
+ if (m_ptr->ml && is_original_ap(m_ptr))
{
r_ptr->r_flags3 |= RF3_GIANT;
}
if ((have_flag(flgs, TR_KILL_GIANT)) &&
(r_ptr->flags3 & RF3_GIANT))
{
- if (m_ptr->ml)
+ if (m_ptr->ml && is_original_ap(m_ptr))
{
r_ptr->r_flags3 |= RF3_GIANT;
}
if ((have_flag(flgs, TR_SLAY_DRAGON)) &&
(r_ptr->flags3 & RF3_DRAGON))
{
- if (m_ptr->ml)
+ if (m_ptr->ml && is_original_ap(m_ptr))
{
r_ptr->r_flags3 |= RF3_DRAGON;
}
if ((have_flag(flgs, TR_KILL_DRAGON)) &&
(r_ptr->flags3 & RF3_DRAGON))
{
- if (m_ptr->ml)
+ if (m_ptr->ml && is_original_ap(m_ptr))
{
r_ptr->r_flags3 |= RF3_DRAGON;
}
}
/* Brand (Acid) */
- if ((have_flag(flgs, TR_BRAND_ACID)) || (p_ptr->special_attack & (ATTACK_ACID)))
+ if (have_flag(flgs, TR_BRAND_ACID))
{
/* Notice immunity */
- if (r_ptr->flags3 & RF3_IM_ACID)
+ if (r_ptr->flagsr & RFR_EFF_IM_ACID_MASK)
{
- if (m_ptr->ml)
+ if (m_ptr->ml && is_original_ap(m_ptr))
{
- r_ptr->r_flags3 |= RF3_IM_ACID;
+ r_ptr->r_flagsr |= (r_ptr->flagsr & RFR_EFF_IM_ACID_MASK);
}
}
}
/* Brand (Elec) */
- if ((have_flag(flgs, TR_BRAND_ELEC)) || (p_ptr->special_attack & (ATTACK_ELEC)))
+ if (have_flag(flgs, TR_BRAND_ELEC))
{
/* Notice immunity */
- if (r_ptr->flags3 & RF3_IM_ELEC)
+ if (r_ptr->flagsr & RFR_EFF_IM_ELEC_MASK)
{
- if (m_ptr->ml)
+ if (m_ptr->ml && is_original_ap(m_ptr))
{
- r_ptr->r_flags3 |= RF3_IM_ELEC;
+ r_ptr->r_flagsr |= (r_ptr->flagsr & RFR_EFF_IM_ELEC_MASK);
}
}
}
/* Brand (Fire) */
- if ((have_flag(flgs, TR_BRAND_FIRE)) || (p_ptr->special_attack & (ATTACK_FIRE)))
+ if (have_flag(flgs, TR_BRAND_FIRE))
{
/* Notice immunity */
- if (r_ptr->flags3 & RF3_IM_FIRE)
+ if (r_ptr->flagsr & RFR_EFF_IM_FIRE_MASK)
{
- if (m_ptr->ml)
+ if (m_ptr->ml && is_original_ap(m_ptr))
{
- r_ptr->r_flags3 |= RF3_IM_FIRE;
+ r_ptr->r_flagsr |= (r_ptr->flagsr & RFR_EFF_IM_FIRE_MASK);
}
}
/* Otherwise, take the damage */
else
{
- if (mult < 17) mult = 17;
+ if (r_ptr->flags3 & RF3_HURT_FIRE)
+ {
+ if (mult < 25) mult = 25;
+ if (m_ptr->ml && is_original_ap(m_ptr))
+ {
+ r_ptr->r_flags3 |= RF3_HURT_FIRE;
+ }
+ }
+ else if (mult < 17) mult = 17;
}
}
/* Brand (Cold) */
- if ((have_flag(flgs, TR_BRAND_COLD)) || (p_ptr->special_attack & (ATTACK_COLD)))
+ if (have_flag(flgs, TR_BRAND_COLD))
{
/* Notice immunity */
- if (r_ptr->flags3 & RF3_IM_COLD)
+ if (r_ptr->flagsr & RFR_EFF_IM_COLD_MASK)
{
- if (m_ptr->ml)
+ if (m_ptr->ml && is_original_ap(m_ptr))
{
- r_ptr->r_flags3 |= RF3_IM_COLD;
+ r_ptr->r_flagsr |= (r_ptr->flagsr & RFR_EFF_IM_COLD_MASK);
}
}
/* Otherwise, take the damage */
else
{
- if (mult < 17) mult = 17;
+ if (r_ptr->flags3 & RF3_HURT_COLD)
+ {
+ if (mult < 25) mult = 25;
+ if (m_ptr->ml && is_original_ap(m_ptr))
+ {
+ r_ptr->r_flags3 |= RF3_HURT_COLD;
+ }
+ }
+ else if (mult < 17) mult = 17;
}
}
/* Brand (Poison) */
- if ((have_flag(flgs, TR_BRAND_POIS)) || (p_ptr->special_attack & (ATTACK_POIS)))
+ if (have_flag(flgs, TR_BRAND_POIS))
{
/* Notice immunity */
- if (r_ptr->flags3 & RF3_IM_POIS)
+ if (r_ptr->flagsr & RFR_EFF_IM_POIS_MASK)
{
- if (m_ptr->ml)
+ if (m_ptr->ml && is_original_ap(m_ptr))
{
- r_ptr->r_flags3 |= RF3_IM_POIS;
+ r_ptr->r_flagsr |= (r_ptr->flagsr & RFR_EFF_IM_POIS_MASK);
}
}
/* Actually "fire" the object */
bonus = (p_ptr->to_h_b + o_ptr->to_h + j_ptr->to_h);
if ((j_ptr->sval == SV_LIGHT_XBOW) || (j_ptr->sval == SV_HEAVY_XBOW))
- chance = (p_ptr->skill_thb + ((p_ptr->weapon_exp[0][j_ptr->sval])/400 + bonus) * BTH_PLUS_ADJ);
+ chance = (p_ptr->skill_thb + (p_ptr->weapon_exp[0][j_ptr->sval] / 400 + bonus) * BTH_PLUS_ADJ);
else
- chance = (p_ptr->skill_thb + ((p_ptr->weapon_exp[0][j_ptr->sval]-4000)/200 + bonus) * BTH_PLUS_ADJ);
+ chance = (p_ptr->skill_thb + ((p_ptr->weapon_exp[0][j_ptr->sval] - (WEAPON_EXP_MASTER / 2)) / 200 + bonus) * BTH_PLUS_ADJ);
energy_use = bow_energy(j_ptr->sval);
tmul = bow_tmul(j_ptr->sval);
return;
}
- project_length = 0; /* reset to default */
/* Get local object */
q_ptr = &forge;
ty = target_row;
}
+ project_length = 0; /* reset to default */
/* Hack -- Handle stuff */
handle_stuff();
if (now_exp < s_info[p_ptr->pclass].w_max[0][j_ptr->sval])
{
int amount = 0;
- if (now_exp < 4000) amount = 80;
- else if (now_exp < 6000) amount = 25;
- else if ((now_exp < 7000) && (p_ptr->lev > 19)) amount = 10;
+ if (now_exp < WEAPON_EXP_BEGINNER) amount = 80;
+ else if (now_exp < WEAPON_EXP_SKILLED) amount = 25;
+ else if ((now_exp < WEAPON_EXP_EXPERT) && (p_ptr->lev > 19)) amount = 10;
else if (p_ptr->lev > 34) amount = 2;
p_ptr->weapon_exp[0][j_ptr->sval] += amount;
p_ptr->update |= (PU_BONUS);
if (p_ptr->riding)
{
- if (p_ptr->skill_exp[GINOU_RIDING] < s_info[p_ptr->pclass].s_max[GINOU_RIDING] && ((p_ptr->skill_exp[GINOU_RIDING] - 1000) / 200 < r_info[m_list[p_ptr->riding].r_idx].level) && one_in_(2))
+ if ((p_ptr->skill_exp[GINOU_RIDING] < s_info[p_ptr->pclass].s_max[GINOU_RIDING])
+ && ((p_ptr->skill_exp[GINOU_RIDING] - (RIDING_EXP_BEGINNER * 2)) / 200 < r_info[m_list[p_ptr->riding].r_idx].level)
+ && one_in_(2))
{
- p_ptr->skill_exp[GINOU_RIDING]+=1;
+ p_ptr->skill_exp[GINOU_RIDING] += 1;
p_ptr->update |= (PU_BONUS);
}
}
{
bool fear = FALSE;
- /* Assume a default death */
-#ifdef JP
- cptr note_dies = "¤Ï»à¤ó¤À¡£";
-#else
- cptr note_dies = " dies.";
-#endif
-
- /* Some monsters get "destroyed" */
- if (!monster_living(r_ptr))
- {
- int i;
- bool explode = FALSE;
-
- for (i = 0; i < 4; i++)
- {
- if (r_ptr->blow[i].method == RBM_EXPLODE) explode = TRUE;
- }
-
- /* Special note at death */
- if (explode)
-#ifdef JP
-note_dies = "¤ÏÇúȯ¤·¤ÆÊ´¡¹¤Ë¤Ê¤Ã¤¿¡£";
-#else
- note_dies = " explodes into tiny shreds.";
-#endif
- else
-#ifdef JP
- note_dies = "¤òÅݤ·¤¿¡£";
-#else
- note_dies = " is destroyed.";
-#endif
-
- }
-
/* Handle unseen monster */
if (!visible)
{
}
/* Hit the monster, check for death */
- if (mon_take_hit(c_ptr->m_idx, tdam, &fear, note_dies))
+ if (mon_take_hit(c_ptr->m_idx, tdam, &fear, extract_note_dies(real_r_ptr(m_ptr))))
{
/* Dead monster */
}
return FALSE;
}
- if (p_ptr->inside_arena)
+ if (p_ptr->inside_arena && !boomerang)
{
- if (o_ptr->tval != 5)
+ if (o_ptr->tval != TV_SPIKE)
{
#ifdef JP
msg_print("¥¢¥ê¡¼¥Ê¤Ç¤Ï¥¢¥¤¥Æ¥à¤ò»È¤¨¤Ê¤¤¡ª");
/* Get a direction (or cancel) */
if (!get_aim_dir(&dir)) return FALSE;
- project_length = 0; /* reset to default */
-
/* Predict the "target" location */
tx = px + 99 * ddx[dir];
ty = py + 99 * ddy[dir];
tx = target_col;
ty = target_row;
}
+
+ project_length = 0; /* reset to default */
}
if ((q_ptr->name1 == ART_MJOLLNIR) ||
inven_item_describe(item);
inven_item_optimize(item);
}
-
+
/* Reduce and describe floor item */
else
{
equiped_item = TRUE;
p_ptr->redraw |= (PR_EQUIPPY);
}
-
+
/* Take a turn */
energy_use = 100;
{
bool fear = FALSE;
- /* Assume a default death */
-#ifdef JP
- cptr note_dies = "¤Ï»à¤ó¤À¡£";
-#else
- cptr note_dies = " dies.";
-#endif
-
-
- /* Some monsters get "destroyed" */
- if (!monster_living(r_ptr))
- {
- int i;
- bool explode = FALSE;
-
- for (i = 0; i < 4; i++)
- {
- if (r_ptr->blow[i].method == RBM_EXPLODE) explode = TRUE;
- }
-
- /* Special note at death */
- if (explode)
-#ifdef JP
-note_dies = "¤ÏÇúȯ¤·¤ÆÊ´¡¹¤Ë¤Ê¤Ã¤¿¡£";
-#else
- note_dies = " explodes into tiny shreds.";
-#endif
- else
-#ifdef JP
- note_dies = "¤òÅݤ·¤¿¡£";
-#else
- note_dies = " is destroyed.";
-#endif
-
- }
-
-
/* Handle unseen monster */
if (!visible)
{
/* Hack -- Base damage from thrown object */
tdam = damroll(q_ptr->dd, q_ptr->ds);
/* Apply special damage XXX XXX XXX */
- tdam = tot_dam_aux(q_ptr, tdam, m_ptr, 0);
+ tdam = tot_dam_aux(q_ptr, tdam, m_ptr, 0, TRUE);
tdam = critical_shot(q_ptr->weight, q_ptr->to_h, tdam);
if (q_ptr->to_d > 0)
tdam += q_ptr->to_d;
}
/* Hit the monster, check for death */
- if (mon_take_hit(c_ptr->m_idx, tdam, &fear, note_dies))
+ if (mon_take_hit(c_ptr->m_idx, tdam, &fear, extract_note_dies(real_r_ptr(m_ptr))))
{
/* Dead monster */
}