³¹¤Ï¥¢¥¤¥Æ¥à¤ò°·¤¦Å¹¤È¤½¤Î¾¤Î¥µ¡¼¥Ó¥¹¤òÄ󶡤¹¤ë·úʪ¤«¤é¤Ê¤ê¤Þ¤¹¡£
»¨²ß²°(1): ¿©ÎÁ¡¢¾¾ÌÀ¡¢ÃƤ䤽¤Î¾¤ÎɬÍפʤâ¤Î¤ò°·¤Ã¤Æ¤¤¤ë¡£
-Éð´ïŹ(2): ¿Ï¤Î¤¢¤ëÉð´ï¡¢´È¾õ¤ÎÉð´ï¤ò°·¤Ã¤Æ¤¤¤ë¡£Éð·Ý¤Î½ñ¤â°·¤¦¡£
-ËɶñŹ(3): ÌÂµÜ¤Ç¤Î´í¸±¤«¤é¿È¤ò¼é¤ëÁõÈ÷¤Ï¤³¤³¤Ç¼ê¤ËÆþ¤ì¤é¤ì¤ë¡£
+ËɶñŹ(2): ÌÂµÜ¤Ç¤Î´í¸±¤«¤é¿È¤ò¼é¤ëÁõÈ÷¤Ï¤³¤³¤Ç¼ê¤ËÆþ¤ì¤é¤ì¤ë¡£
+Éð´ïŹ(3): ¿Ï¤Î¤¢¤ëÉð´ï¡¢´È¾õ¤ÎÉð´ï¤ò°·¤Ã¤Æ¤¤¤ë¡£Éð·Ý¤Î½ñ¤â°·¤¦¡£
»û±¡(4): µ§Åø½ñ¤ä½ý¤òľ¤¹ÌôÅù¿ÀÀ»¤Ê¥¢¥¤¥Æ¥à¤òÇä¤Ã¤Æ¤¤¤ë¡£
Ï£¶â½Ñ¤ÎŹ(5): ÍÍ¡¹¤Ê¼ïÎà¤Î´¬Êª¤äÌô¤òÇä¤Ã¤Æ¤¤¤Þ¤¹¡£
ËâË¡¤ÎŹ(6): ¥ï¥ó¥É¡¢¥¹¥¿¥Ã¥Õ¡¢»ØÎØ¡¢¥¢¥ß¥å¥ì¥Ã¥È¤Ê¤É¤òÇä¤Ã¤Æ¤¤¤Þ¤¹¡£
previous_char.quests = number_of_quests;
previous_char.quick_ok = TRUE;
+ /* Process the player name */
+ process_player_name(FALSE);
+
/* Accept */
return (TRUE);
}
/* Feature code (applying "mimic" field) */
feat = c_ptr->mimic ? c_ptr->mimic : f_info[c_ptr->feat].mimic;
- /* Non-wall grids are not known walls */
- if (feat <= FEAT_DOOR_TAIL) return (FALSE);
-
- if ((feat >= FEAT_DEEP_WATER) &&
- (feat <= FEAT_GRASS)) return (FALSE);
-
- if ((feat >= FEAT_SHOP_HEAD) &&
- (feat <= FEAT_SHOP_TAIL)) return (FALSE);
-
- if (feat == FEAT_DEEP_GRASS) return (FALSE);
- if (feat == FEAT_FLOWER) return (FALSE);
-
- if (feat == FEAT_MUSEUM) return (FALSE);
-
- if ((feat >= FEAT_BLDG_HEAD) &&
- (feat <= FEAT_BLDG_TAIL)) return (FALSE);
-
-/* if (feat == FEAT_TREES) return (FALSE); */
-
/* Must be known to the player */
- if (!(c_ptr->info & (CAVE_MARK))) return (FALSE);
+ if (c_ptr->info & (CAVE_MARK))
+ {
+ /* Rubble, Magma, Quartz, Wall, Perm wall */
+ if (feat >= FEAT_RUBBLE && feat <= FEAT_PERM_SOLID) return TRUE;
- if (feat >= FEAT_TOWN) return (FALSE);
+ /* Tree */
+ if (feat == FEAT_TREES) return TRUE;
- /* Default */
- return (TRUE);
+ /* Mountain */
+ if (feat == FEAT_MOUNTAIN) return TRUE;
+ }
+
+ return FALSE;
}
object_copy(ol_ptr, or_ptr);
object_copy(or_ptr, otmp_ptr);
#ifdef JP
- msg_format("%s¤ò±¦¼ê¤Ë¹½¤¨¤Ê¤ª¤·¤¿¡£", ol_name);
+ msg_format("%s¤ò%s¤Ë¹½¤¨¤Ê¤ª¤·¤¿¡£", ol_name, left_hander ? "º¸¼ê" : "±¦¼ê");
#else
- msg_format("You wield %s at right hand.", ol_name);
+ msg_format("You wield %s at %s hand.", ol_name, left_hander ? "left" : "right");
#endif
slot = INVEN_LARM;
strcpy(player_name, "PLAYER");
}
- /* Process the player name */
- process_player_name(FALSE);
-
strcpy(tmp,ap_ptr->title);
#ifdef JP
if(ap_ptr->no == 1)
/* Load the dungeon data */
for (x = y = 0; y < ymax; )
{
+ u16b info;
+
/* Grab RLE info */
rd_byte(&count);
if (z_older_than(10,3,6))
+ {
rd_byte(&tmp8u);
+ info = (u16b)tmp8u;
+ }
else
- rd_s16b(&tmp16s);
+ {
+ rd_u16b(&info);
+
+ /* Decline invalid flags */
+ info &= ~(CAVE_LITE | CAVE_VIEW | CAVE_MNLT);
+ }
/* Apply the RLE info */
for (i = count; i > 0; i--)
c_ptr = &cave[y][x];
/* Extract "info" */
- if (z_older_than(10,3,6))
- c_ptr->info = tmp8u;
- else c_ptr->info = tmp16s;
+ c_ptr->info = info;
/* Advance/Wrap */
if (++x >= xmax)
#define HORDE_NOEVIL 0x02
bool is_kage = FALSE;
-u16b horde_align = 0;
cptr horror_desc[MAX_SAN_HORROR] =
{
}
if (d_ptr->flags1 & DF1_NO_MAGIC)
{
- if (r_idx == MON_CHAMELEON) return TRUE;
- if (r_ptr->freq_spell && !(r_ptr->flags4 & RF4_NOMAGIC_MASK) && !(r_ptr->flags5 & RF5_NOMAGIC_MASK) && !(r_ptr->flags6 & RF6_NOMAGIC_MASK))
+ if (r_idx != MON_CHAMELEON &&
+ r_ptr->freq_spell &&
+ !(r_ptr->flags4 & RF4_NOMAGIC_MASK) &&
+ !(r_ptr->flags5 & RF5_NOMAGIC_MASK) &&
+ !(r_ptr->flags6 & RF6_NOMAGIC_MASK))
return FALSE;
- else return TRUE;
}
if (d_ptr->flags1 & DF1_NO_MELEE)
{
!(r_ptr->flags5 & (RF5_BOLT_MASK | RF5_BEAM_MASK | RF5_BALL_MASK | RF5_CAUSE_1 | RF5_CAUSE_2 | RF5_CAUSE_3 | RF5_CAUSE_4 | RF5_MIND_BLAST | RF5_BRAIN_SMASH)) &&
!(r_ptr->flags6 & (RF6_BOLT_MASK | RF6_BEAM_MASK | RF6_BALL_MASK)))
return FALSE;
- else return TRUE;
}
if (d_ptr->flags1 & DF1_BEGINNER)
{
if (r_ptr->level > dun_level)
return FALSE;
- else return TRUE;
}
if (d_ptr->special_div == 64) return TRUE;
}
if (attempts < 1) return FALSE;
- if (r_ptr->flags3 & RF3_GOOD) horde_align |= HORDE_NOEVIL;
- if (r_ptr->flags3 & RF3_EVIL) horde_align |= HORDE_NOGOOD;
-
attempts = 1000;
while (--attempts)
if (place_monster_aux(0, y, x, r_idx, 0L)) break;
}
- if (attempts < 1) {horde_align = 0;return FALSE;}
+ if (attempts < 1) return FALSE;
m_idx = cave[y][x].m_idx;
x = cx;
}
- horde_align = 0;
return TRUE;
}
((p_ptr->align < -9) && (r_ptr->flags3 & RF3_GOOD))))
return FALSE;
- if ((horde_align & HORDE_NOGOOD) && (r_ptr->flags3 & RF3_GOOD)) return FALSE;
- if ((horde_align & HORDE_NOEVIL) && (r_ptr->flags3 & RF3_EVIL)) return FALSE;
-
if ((r_ptr->flags7 & RF7_CHAMELEON) && (d_info[dungeon_type].flags1 & DF1_CHAMELEON)) return TRUE;
return (summon_specific_aux(r_idx));
}
else
{
-#ifdef JP
-mon_take_hit_mon(FALSE, t_idx, dam, &fear, "¤Ï»à¤ó¤À¡£", m_idx);
-#else
- mon_take_hit_mon(FALSE, t_idx, dam, &fear, " is destroyed.", m_idx);
-#endif
-
+ mon_take_hit_mon(FALSE, t_idx, dam, &fear, NULL, m_idx);
}
wake_up = TRUE;
}
else
{
-#ifdef JP
-mon_take_hit_mon(FALSE, t_idx, dam, &fear, "¤Ï»à¤ó¤À¡£", m_idx);
-#else
- mon_take_hit_mon(FALSE, t_idx, dam, &fear, " is destroyed.", m_idx);
-#endif
+ mon_take_hit_mon(FALSE, t_idx, dam, &fear, NULL, m_idx);
}
}
else
{
-#ifdef JP
-mon_take_hit_mon(FALSE, t_idx, dam, &fear, "¤Ï»à¤ó¤À¡£", m_idx);
-#else
- mon_take_hit_mon(FALSE, t_idx, dam, &fear, " is destroyed.", m_idx);
-#endif
-
+ mon_take_hit_mon(FALSE, t_idx, dam, &fear, NULL, m_idx);
}
wake_up = TRUE;
}
else
{
-#ifdef JP
-mon_take_hit_mon(FALSE, t_idx, dam, &fear, "¤Ï»à¤ó¤À¡£", m_idx);
-#else
- mon_take_hit_mon(FALSE, t_idx, dam, &fear, " is destroyed.", m_idx);
-#endif
-
+ mon_take_hit_mon(FALSE, t_idx, dam, &fear, NULL, m_idx);
}
wake_up = TRUE;
{"¥¢¥ó¥Ç¥Ã¥É", vault_aux_undead, NULL, 75, 5},
{NULL, NULL, NULL, 0, 0},
#else
- {"clone", vault_aux_clone, vault_prep_clone, 7, 3},
- {"jelly", vault_aux_jelly, NULL, 7, 6},
+ {"clone", vault_aux_clone, vault_prep_clone, 5, 3},
+ {"jelly", vault_aux_jelly, NULL, 5, 6},
{"symbol good",vault_aux_symbol_g, vault_prep_symbol, 25, 2},
{"symbol evil",vault_aux_symbol_e, vault_prep_symbol, 25, 2},
- {"mimic", vault_aux_mimic, NULL, 45, 6},
- {"lovecraftian",vault_aux_cthulhu, NULL, 80, 2},
- {"kennel", vault_aux_kennel, NULL, 50, 2},
- {"animal", vault_aux_animal, NULL, 50, 4},
- {"chapel", vault_aux_chapel_g, NULL, 90, 2},
- {"undead", vault_aux_undead, NULL, 90, 4},
+ {"mimic", vault_aux_mimic, NULL, 30, 4},
+ {"lovecraftian",vault_aux_cthulhu, NULL, 70, 2},
+ {"kennel", vault_aux_kennel, NULL, 45, 4},
+ {"animal", vault_aux_animal, NULL, 35, 5},
+ {"chapel", vault_aux_chapel_g, NULL, 75, 4},
+ {"undead", vault_aux_undead, NULL, 75, 5},
{NULL, NULL, NULL, 0, 0},
#endif
};
{"¥Ç¡¼¥â¥ó", vault_aux_demon, NULL, 80, 6},
{NULL, NULL, NULL, 0, 0},
#else
- {"orc", vault_aux_orc, NULL, 7, 4},
- {"troll", vault_aux_troll, NULL, 35, 4},
- {"giant", vault_aux_giant, NULL, 70, 4},
- {"lovecraftian",vault_aux_cthulhu, NULL, 90, 4},
- {"symbol good",vault_aux_symbol_g, vault_prep_symbol, 25, 2},
- {"symbol evil",vault_aux_symbol_e, vault_prep_symbol, 25, 2},
- {"chapel", vault_aux_chapel_g, NULL, 85, 1},
- {"dragon", vault_aux_dragon, vault_prep_dragon, 80, 4},
- {"demon", vault_aux_demon, NULL, 90, 4},
+ {"orc", vault_aux_orc, NULL, 5, 6},
+ {"troll", vault_aux_troll, NULL, 20, 6},
+ {"giant", vault_aux_giant, NULL, 50, 6},
+ {"lovecraftian",vault_aux_cthulhu, NULL, 80, 2},
+ {"symbol good",vault_aux_symbol_g, vault_prep_symbol, 70, 1},
+ {"symbol evil",vault_aux_symbol_e, vault_prep_symbol, 70, 1},
+ {"chapel", vault_aux_chapel_g, NULL, 65, 2},
+ {"dragon", vault_aux_dragon, vault_prep_dragon, 70, 6},
+ {"demon", vault_aux_demon, NULL, 80, 6},
{NULL, NULL, NULL, 0, 0},
#endif
};
/* Sometimes stop at non-initial monsters/players */
if (flg & (PROJECT_STOP))
{
- if ((n > 0) && (cave[y][x].m_idx != 0)) break;
+ if ((n > 0) &&
+ ((y == py && x == px) || cave[y][x].m_idx != 0))
+ break;
}
if (!in_bounds(y, x)) break;
/* Sometimes stop at non-initial monsters/players */
if (flg & (PROJECT_STOP))
{
- if ((n > 0) && (cave[y][x].m_idx != 0)) break;
+ if ((n > 0) &&
+ ((y == py && x == px) || cave[y][x].m_idx != 0))
+ break;
}
if (!in_bounds(y, x)) break;
/* Sometimes stop at non-initial monsters/players */
if (flg & (PROJECT_STOP))
{
- if ((n > 0) && (cave[y][x].m_idx != 0)) break;
+ if ((n > 0) &&
+ ((y == py && x == px) || cave[y][x].m_idx != 0))
+ break;
}
if (!in_bounds(y, x)) break;
{
if (cur_store_num == STORE_HOME)
#ifdef JP
-msg_print("²æ¤¬²È¤Ë¤Ï²¿¤âÃÖ¤¤¤Æ¤¢¤ê¤Þ¤»¤ó¡£");
+ msg_print("²æ¤¬²È¤Ë¤Ï²¿¤âÃÖ¤¤¤Æ¤¢¤ê¤Þ¤»¤ó¡£");
#else
msg_print("Your home is empty.");
#endif
- if (cur_store_num == STORE_MUSEUM)
+ else if (cur_store_num == STORE_MUSEUM)
#ifdef JP
-msg_print("Çîʪ´Û¤Ë¤Ï²¿¤âÃÖ¤¤¤Æ¤¢¤ê¤Þ¤»¤ó¡£");
+ msg_print("Çîʪ´Û¤Ë¤Ï²¿¤âÃÖ¤¤¤Æ¤¢¤ê¤Þ¤»¤ó¡£");
#else
msg_print("Museum is empty.");
#endif
else
#ifdef JP
-msg_print("¸½ºß¾¦Éʤκ߸ˤòÀڤ餷¤Æ¤¤¤Þ¤¹¡£");
+ msg_print("¸½ºß¾¦Éʤκ߸ˤòÀڤ餷¤Æ¤¤¤Þ¤¹¡£");
#else
msg_print("I am currently out of stock.");
#endif
{ TR_DRAIN_EXP, "Drains Experience" },
{ TR_AGGRAVATE, "Aggravates" },
{ TR_BLESSED, "Blessed Blade" },
- { TR_DEC_MANA, "Decrease Shouhi Mana" },
+ { TR_DEC_MANA, "Decrease Mana Consumption Rate" },
#endif
};
{
o_ptr = &o_list[0 - item];
}
-
-
+
/* The item was not changed */
changed = FALSE;
/* Message */
msg_print("Changes accepted.");
+ /* Recalcurate object's weight */
+ if (item >= 0)
+ {
+ p_ptr->total_weight += (q_ptr->weight * q_ptr->number)
+ - (o_ptr->weight * o_ptr->number);
+ }
+
/* Change */
object_copy(o_ptr, q_ptr);
+
/* Recalculate bonuses */
p_ptr->update |= (PU_BONUS);
#ifdef JP
return "¥¢¥ê¡¼¥Ê";
#else
- return "Monster Arena";
+ return "Arena";
#endif
else if (p_ptr->inside_battle)
#ifdef JP
return "Æ®µ»¾ì";
#else
- return "Arena";
+ return "Monster Arena";
#endif
else if (!dun_level && p_ptr->town_num)
return town[p_ptr->town_num].name;
have_kabe = FALSE;
for (i = 0; i < INVEN_PACK; i++)
{
- if ((inventory[i].tval == TV_SORCERY_BOOK) && (inventory[i].sval == 3)) have_dd_s = TRUE;
+ if ((inventory[i].tval == TV_SORCERY_BOOK) && (inventory[i].sval == 2)) have_dd_s = TRUE;
if ((inventory[i].tval == TV_TRUMP_BOOK) && (inventory[i].sval == 1)) have_dd_t = TRUE;
if ((inventory[i].tval == TV_NATURE_BOOK) && (inventory[i].sval == 2)) have_sw = TRUE;
if ((inventory[i].tval == TV_ENCHANT_BOOK) && (inventory[i].sval == 2)) have_kabe = TRUE;