#include "angband.h"
#include "cmd-spell.h"
+#include "melee.h"
+#include "monsterrace-hook.h"
/*!
* @brief 剣術の各処理を行う
* @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_CAST)
* @return SPELL_NAME / SPELL_DESC 時には文字列ポインタを返す。SPELL_CAST時はNULL文字列を返す。
*/
-cptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
+concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
{
bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
DIRECTION cdir;
POSITION y, x;
- if (!get_rep_dir2(&dir)) return NULL;
+ if (!get_direction(&dir, FALSE, FALSE)) return NULL;
if (dir == 5) return NULL;
for (cdir = 0; cdir < 8; cdir++)
{
POSITION y, x;
- if (!get_rep_dir2(&dir)) return NULL;
+ if (!get_direction(&dir, FALSE, FALSE)) return NULL;
if (dir == 5) return NULL;
y = p_ptr->y + ddy[dir];
{
POSITION y, x;
- if (!get_rep_dir2(&dir)) return NULL;
+ if (!get_direction(&dir, FALSE, FALSE)) return NULL;
if (dir == 5) return NULL;
y = p_ptr->y + ddy[dir];
return NULL;
}
- if (!get_rep_dir2(&dir)) return NULL;
+ if (!get_direction(&dir, FALSE, FALSE)) return NULL;
if (dir == 5) return NULL;
y = p_ptr->y + ddy[dir];
{
POSITION y, x;
- if (!get_rep_dir2(&dir)) return NULL;
+ if (!get_direction(&dir, FALSE, FALSE)) return NULL;
if (dir == 5) return NULL;
y = p_ptr->y + ddy[dir];
{
POSITION y, x;
- if (!get_rep_dir2(&dir)) return NULL;
+ if (!get_direction(&dir, FALSE, FALSE)) return NULL;
if (dir == 5) return NULL;
y = p_ptr->y + ddy[dir];
{
POSITION y, x;
- if (!get_rep_dir2(&dir)) return NULL;
+ if (!get_direction(&dir, FALSE, FALSE)) return NULL;
if (dir == 5) return NULL;
y = p_ptr->y + ddy[dir];
POSITION oy = y, ox = x;
MONSTER_IDX m_idx = cave[y][x].m_idx;
monster_type *m_ptr = &m_list[m_idx];
- char m_name[80];
+ GAME_TEXT m_name[MAX_NLEN];
monster_desc(m_name, m_ptr, 0);
m_ptr->fy = ty;
m_ptr->fx = tx;
- update_mon(m_idx, TRUE);
+ update_monster(m_idx, TRUE);
lite_spot(oy, ox);
lite_spot(ty, tx);
{
POSITION y, x;
- if (!get_rep_dir2(&dir)) return NULL;
+ if (!get_direction(&dir, FALSE, FALSE)) return NULL;
if (dir == 5) return NULL;
y = p_ptr->y + ddy[dir];
{
POSITION y, x;
- if (!get_rep_dir2(&dir)) return NULL;
+ if (!get_direction(&dir, FALSE, FALSE)) return NULL;
if (dir == 5) return NULL;
y = p_ptr->y + ddy[dir];
{
POSITION y, x;
- if (!get_rep_dir2(&dir)) return NULL;
+ if (!get_direction(&dir, FALSE, FALSE)) return NULL;
if (dir == 5) return NULL;
y = p_ptr->y + ddy[dir];
{
POSITION y, x;
- if (!get_rep_dir2(&dir)) return NULL;
+ if (!get_direction(&dir, FALSE, FALSE)) return NULL;
if (dir == 5) return NULL;
y = p_ptr->y + ddy[dir];
{
POSITION y, x;
- if (!get_rep_dir2(&dir)) return NULL;
+ if (!get_direction(&dir, FALSE, FALSE)) return NULL;
if (dir == 5) return NULL;
y = p_ptr->y + ddy[dir];
{
POSITION y, x;
- if (!get_rep_dir2(&dir)) return NULL;
+ if (!get_direction(&dir, FALSE, FALSE)) return NULL;
if (dir == 5) return NULL;
y = p_ptr->y + ddy[dir];
/* Hack -- attack monsters */
if (c_ptr->m_idx && (m_ptr->ml || cave_have_flag_bold(y, x, FF_PROJECT)))
{
- if (!monster_living(&r_info[m_ptr->r_idx]))
+ if (!monster_living(m_ptr->r_idx))
{
- char m_name[80];
+ GAME_TEXT m_name[MAX_NLEN];
monster_desc(m_name, m_ptr, 0);
msg_format(_("%sには効果がない!", "%s is unharmed!"), m_name);
{
POSITION y, x;
- if (!get_rep_dir2(&dir)) return NULL;
+ if (!get_direction(&dir, FALSE, FALSE)) return NULL;
if (dir == 5) return NULL;
y = p_ptr->y + ddy[dir];
if (cast)
{
msg_print(_("雄叫びをあげた!", "You roar out!"));
- project_hack(GF_SOUND, randint1(plev * 3));
+ project_all_los(GF_SOUND, randint1(plev * 3));
aggravate_monsters(0);
}
break;
{
int i;
- if (!get_rep_dir2(&dir)) return NULL;
+ if (!get_direction(&dir, FALSE, FALSE)) return NULL;
if (dir == 5) return NULL;
for (i = 0; i < 3; i++)
m_ptr->fy = ny;
m_ptr->fx = nx;
- update_mon(m_idx, TRUE);
+ update_monster(m_idx, TRUE);
/* Redraw the old spot */
lite_spot(y, x);
{
POSITION y, x;
- if (!get_rep_dir2(&dir)) return NULL;
+ if (!get_direction(&dir, FALSE, FALSE)) return NULL;
if (dir == 5) return NULL;
y = p_ptr->y + ddy[dir];
if (cast)
{
msg_print(_("武器を不規則に揺らした...", "You irregularly wave your weapon..."));
- project_hack(GF_ENGETSU, plev * 4);
- project_hack(GF_ENGETSU, plev * 4);
- project_hack(GF_ENGETSU, plev * 4);
+ project_all_los(GF_ENGETSU, plev * 4);
+ project_all_los(GF_ENGETSU, plev * 4);
+ project_all_los(GF_ENGETSU, plev * 4);
}
break;
BIT_FLAGS flgs[TR_FLAG_SIZE];
object_type *o_ptr;
- if (!get_rep_dir2(&dir)) return NULL;
+ if (!get_direction(&dir, FALSE, FALSE)) return NULL;
if (dir == 5) return NULL;
y = p_ptr->y + ddy[dir];
{
POSITION y, x;
- if (!get_rep_dir2(&dir)) return NULL;
+ if (!get_direction(&dir, FALSE, FALSE)) return NULL;
if (dir == 5) return NULL;
y = p_ptr->y + ddy[dir];