y = py + ddy[dir];
x = px + ddx[dir];
c_ptr = &cave[y][x];
- if (c_ptr->feat == FEAT_RUBBLE)
+
+ if (!have_flag(f_info[get_feat_mimic(c_ptr)].flags, FF_CAN_DIG))
+ {
+#ifdef JP
+ msg_print("¤½¤³¤Ë¤Ï´äÀФ¬¤Ê¤¤¡£");
+#else
+ msg_print("You need pile of rubble.");
+#endif
+ return FALSE;
+ }
+ else if (!cave_have_flag_grid(c_ptr, FF_CAN_DIG) || !cave_have_flag_grid(c_ptr, FF_HURT_ROCK))
+ {
+#ifdef JP
+ msg_print("¹Å¤¹¤®¤ÆÊø¤»¤Ê¤«¤Ã¤¿¡£");
+#else
+ msg_print("You failed to make ammo.");
+#endif
+ }
+ else
{
/* Get local object */
q_ptr = &forge;
(void)inven_carry(q_ptr);
- object_desc(o_name, q_ptr, TRUE, 2);
+ object_desc(o_name, q_ptr, 0);
#ifdef JP
- msg_format("´äÀФòºï¤Ã¤Æ%s¤òºî¤Ã¤¿¡£",o_name);
+ msg_format("%s¤òºî¤Ã¤¿¡£", o_name);
#else
msg_print("You make some ammo.");
#endif
- (void)wall_to_mud(dir);
- p_ptr->update |= (PU_VIEW | PU_LITE | PU_FLOW | PU_MONSTERS | PU_MON_LITE);
- p_ptr->window |= (PW_OVERHEAD);
- }
- else
- {
-#ifdef JP
- msg_print("¤½¤³¤Ë¤Ï´äÀФ¬¤Ê¤¤¡£");
-#else
- msg_print("You need pile of rubble.");
-#endif
+ /* Destroy the wall */
+ cave_alter_feat(y, x, FF_HURT_ROCK);
+
+ p_ptr->update |= (PU_FLOW);
}
}
/**********Create arrows*********/
q_ptr->discount = 99;
- object_desc(o_name, q_ptr, TRUE, 2);
+ object_desc(o_name, q_ptr, 0);
#ifdef JP
msg_format("%s¤òºî¤Ã¤¿¡£", o_name);
#else
q_ptr->discount = 99;
- object_desc(o_name, q_ptr, TRUE, 2);
+ object_desc(o_name, q_ptr, 0);
#ifdef JP
msg_format("%s¤òºî¤Ã¤¿¡£", o_name);
#else
}
- if (!object_known_p(o_ptr))
+ if (!object_is_known(o_ptr))
{
#ifdef JP
msg_print("´ÕÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤È¼è¤ê¹þ¤á¤Ê¤¤¡£");
}
}
- object_desc(o_name, o_ptr, TRUE, 3);
+ object_desc(o_name, o_ptr, 0);
/* Message */
#ifdef JP
msg_format("%s¤ÎËâÎϤò¼è¤ê¹þ¤ó¤À¡£", o_name);
screen_load();
return FALSE;
}
- else if ((choice == 'a') || (choice == 'A') || (choice == ESCAPE))
+ else if ((choice == 'a') || (choice == 'A'))
{
if (p_ptr->action == ACTION_KAMAE)
{
screen_load();
return FALSE;
}
- else if ((choice == 'a') || (choice == 'A') || (choice == ESCAPE))
+ else if ((choice == 'a') || (choice == 'A'))
{
if (p_ptr->action == ACTION_KATA)
{
#else
msg_print("You are failed to run away.");
#endif
- else teleport_player(30);
+ else teleport_player(30, 0L);
}
else
{
}
case CLASS_MONK:
{
- if (empty_hands(TRUE) < 2)
+ if (!(empty_hands(TRUE) & EMPTY_HAND_RARM))
{
#ifdef JP
msg_print("ÁǼꤸ¤ã¤Ê¤¤¤È¤Ç¤¤Þ¤»¤ó¡£");
#endif
return FALSE;
}
+ if (p_ptr->riding)
+ {
+#ifdef JP
+ msg_print("¾èÇÏÃæ¤Ï¤Ç¤¤Þ¤»¤ó¡£");
+#else
+ msg_print("You need to get off a pet.");
+#endif
+ return FALSE;
+ }
if (command == -3)
{
- if (choose_kamae()) energy_use = 100;
- else energy_use = 0;
+ if (!choose_kamae()) return FALSE;
p_ptr->update |= (PU_BONUS);
- p_ptr->redraw |= (PR_ARMOR);
}
else if (command == -4)
{
}
else if (command == -4)
{
- if (!buki_motteruka(INVEN_RARM))
+ if (!buki_motteruka(INVEN_RARM) && !buki_motteruka(INVEN_LARM))
{
#ifdef JP
msg_print("Éð´ï¤ò»ý¤¿¤Ê¤¤¤È¤¤¤±¤Þ¤»¤ó¡£");
#endif
return FALSE;
}
- if (choose_kata()) energy_use = 100;
- else energy_use = 0;
+ if (!choose_kata()) return FALSE;
p_ptr->update |= (PU_BONUS);
- p_ptr->redraw |= (PR_ARMOR);
}
break;
}
{
if (command == -3)
{
- int x, y;
- for (x = 0; x < cur_wid; x++)
- {
- for (y = 0; y < cur_hgt; y++)
- {
- if (is_mirror_grid(&cave[y][x]))
- {
- remove_mirror(y, x);
- project(0, 2, y, x, p_ptr->lev / 2 + 5, GF_SHARDS,
- (PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL | PROJECT_JUMP | PROJECT_NO_HANGEKI), -1);
- }
- }
- }
+ /* Explode all mirrors */
+ remove_all_mirrors(TRUE);
}
else if (command == -4)
{
{
int type = (one_in_(2) ? GF_NETHER : GF_FIRE);
if (!get_aim_dir(&dir)) return FALSE;
+ if (music_singing_any()) stop_singing();
#ifdef JP
msg_format("¤¢¤Ê¤¿¤Ï%s¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£",((type == GF_NETHER) ? "ÃϹö" : "²Ð±ê"));
#else
x = px + ddx[dir];
c_ptr = &cave[y][x];
+ if (music_singing_any()) stop_singing();
+
if (!c_ptr->m_idx)
{
#ifdef JP
msg_print("Blink!");
#endif
- teleport_player(10);
+ teleport_player(10, 0L);
break;
case RACE_HALF_ORC:
case RACE_HALF_GIANT:
if (!get_aim_dir(&dir)) return FALSE;
-#ifdef JP
- msg_print("ÀФÎÊɤòᤤĤ±¤¿¡£");
-#else
- msg_print("You bash at a stone wall.");
-#endif
-
(void)wall_to_mud(dir);
break;
case RACE_YEEK:
if (!get_aim_dir(&dir)) return FALSE;
+ if (music_singing_any()) stop_singing();
#ifdef JP
msg_print("¿È¤ÎÌÓ¤â¤è¤À¤Ä¶«¤ÓÀ¼¤ò¾å¤²¤¿¡ª");
#else
case RACE_KLACKON:
if (!get_aim_dir(&dir)) return FALSE;
+ if (music_singing_any()) stop_singing();
#ifdef JP
msg_print("»À¤òÅǤ¤¤¿¡£");
#else
}
}
+ if (music_singing_any()) stop_singing();
+
#ifdef JP
msg_format("¤¢¤Ê¤¿¤Ï%s¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", Type_desc);
#else
x = px + ddx[dir];
c_ptr = &cave[y][x];
+ if (music_singing_any()) stop_singing();
+
if (!c_ptr->m_idx)
{
#ifdef JP
case RACE_SPECTRE:
if (!get_aim_dir(&dir)) return FALSE;
+ if (music_singing_any()) stop_singing();
#ifdef JP
msg_print("¤¢¤Ê¤¿¤Ï¤ª¤É¤í¤ª¤É¤í¤·¤¤¶«¤ÓÀ¼¤ò¤¢¤²¤¿¡ª");
#else
{
int type = (one_in_(2) ? GF_NETHER : GF_FIRE);
if (!get_aim_dir(&dir)) return FALSE;
+ if (music_singing_any()) stop_singing();
#ifdef JP
msg_format("¤¢¤Ê¤¿¤Ï%s¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£",((type == GF_NETHER) ? "ÃϹö" : "²Ð±ê"));
#else
#else
msg_print("You fire a rocket.");
#endif
- fire_ball(GF_ROCKET, dir, plev * 5, 2);
+ fire_rocket(GF_ROCKET, dir, plev * 5, 2);
}
break;