From 4f071bca22b8de9212e458a846624469d81417ac Mon Sep 17 00:00:00 2001 From: deskull Date: Fri, 3 Jan 2020 23:48:42 +0900 Subject: [PATCH] =?utf8?q?[Refactor]=20#38997=20teleport=5Fswap()=20?= =?utf8?q?=E3=81=AB=20player=5Ftype=20*=20=E5=BC=95=E6=95=B0=E3=82=92?= =?utf8?q?=E8=BF=BD=E5=8A=A0=EF=BC=8E=20/=20Add=20player=5Ftype=20*=20argu?= =?utf8?q?ment=20to=20teleport=5Fswap().?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- src/mind.c | 2 +- src/mutation.c | 2 +- src/realm-trump.c | 2 +- src/spells.h | 2 +- src/spells2.c | 18 +++++++++--------- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/mind.c b/src/mind.c index 4b682dc67..a575f1c4e 100644 --- a/src/mind.c +++ b/src/mind.c @@ -1709,7 +1709,7 @@ static bool cast_ninja_spell(player_type *caster_ptr, int spell) } project_length = 0; - (void)teleport_swap(dir); + (void)teleport_swap(caster_ptr, dir); break; case 15: explosive_rune(caster_ptr->current_floor_ptr, caster_ptr->y, caster_ptr->x); diff --git a/src/mutation.c b/src/mutation.c index 18d809b6c..24c89b42c 100644 --- a/src/mutation.c +++ b/src/mutation.c @@ -2164,7 +2164,7 @@ bool exe_mutation_power(player_type *creature_ptr, int power) project_length = 0; return FALSE; } - (void)teleport_swap(dir); + (void)teleport_swap(creature_ptr, dir); project_length = 0; break; diff --git a/src/realm-trump.c b/src/realm-trump.c index fab670f1d..c3ae2e457 100644 --- a/src/realm-trump.c +++ b/src/realm-trump.c @@ -347,7 +347,7 @@ concptr do_trump_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode) if (!result) return NULL; - teleport_swap(dir); + teleport_swap(caster_ptr, dir); } } break; diff --git a/src/spells.h b/src/spells.h index 89adc7c45..b1cc1fac1 100644 --- a/src/spells.h +++ b/src/spells.h @@ -240,7 +240,7 @@ extern bool control_one_undead(DIRECTION dir, PLAYER_LEVEL plev); extern bool control_one_demon(DIRECTION dir, PLAYER_LEVEL plev); extern bool charm_animal(DIRECTION dir, PLAYER_LEVEL plev); extern bool mindblast_monsters(HIT_POINT dam); -extern bool teleport_swap(DIRECTION dir); +extern bool teleport_swap(player_type *caster_ptr, DIRECTION dir); extern bool project_hook(player_type *caster_ptr, EFFECT_ID typ, DIRECTION dir, HIT_POINT dam, BIT_FLAGS flg); extern bool project_all_los(player_type *caster_ptr, EFFECT_ID typ, HIT_POINT dam); extern bool eat_magic(player_type *caster_ptr, int power); diff --git a/src/spells2.c b/src/spells2.c index 83f0f77a1..74ae97fc0 100644 --- a/src/spells2.c +++ b/src/spells2.c @@ -2135,7 +2135,7 @@ bool fire_blast(player_type *caster_ptr, EFFECT_ID typ, DIRECTION dir, DICE_NUMB * @param dir 方向(5ならばグローバル変数 target_col/target_row の座標を目標にする) * @return 作用が実際にあった場合TRUEを返す */ -bool teleport_swap(DIRECTION dir) +bool teleport_swap(player_type *caster_ptr, DIRECTION dir) { POSITION tx, ty; grid_type* g_ptr; @@ -2149,30 +2149,30 @@ bool teleport_swap(DIRECTION dir) } else { - tx = p_ptr->x + ddx[dir]; - ty = p_ptr->y + ddy[dir]; + tx = caster_ptr->x + ddx[dir]; + ty = caster_ptr->y + ddy[dir]; } - g_ptr = &p_ptr->current_floor_ptr->grid_array[ty][tx]; + g_ptr = &caster_ptr->current_floor_ptr->grid_array[ty][tx]; - if (p_ptr->anti_tele) + if (caster_ptr->anti_tele) { msg_print(_("不思議な力がテレポートを防いだ!", "A mysterious force prevents you from teleporting!")); return FALSE; } - if (!g_ptr->m_idx || (g_ptr->m_idx == p_ptr->riding)) + if (!g_ptr->m_idx || (g_ptr->m_idx == caster_ptr->riding)) { msg_print(_("それとは場所を交換できません。", "You can't trade places with that!")); return FALSE; } - if ((g_ptr->info & CAVE_ICKY) || (distance(ty, tx, p_ptr->y, p_ptr->x) > p_ptr->lev * 3 / 2 + 10)) + if ((g_ptr->info & CAVE_ICKY) || (distance(ty, tx, caster_ptr->y, caster_ptr->x) > caster_ptr->lev * 3 / 2 + 10)) { msg_print(_("失敗した。", "Failed to swap.")); return FALSE; } - m_ptr = &p_ptr->current_floor_ptr->m_list[g_ptr->m_idx]; + m_ptr = &caster_ptr->current_floor_ptr->m_list[g_ptr->m_idx]; r_ptr = &r_info[m_ptr->r_idx]; (void)set_monster_csleep(g_ptr->m_idx, 0); @@ -2187,7 +2187,7 @@ bool teleport_swap(DIRECTION dir) sound(SOUND_TELEPORT); /* Swap the player and monster */ - (void)move_player_effect(p_ptr, ty, tx, MPE_FORGET_FLOW | MPE_HANDLE_STUFF | MPE_DONT_PICKUP); + (void)move_player_effect(caster_ptr, ty, tx, MPE_FORGET_FLOW | MPE_HANDLE_STUFF | MPE_DONT_PICKUP); /* Success */ return TRUE; -- 2.11.0