{
msg_print(_("鼓動している...", "It pulsates..."));
if (!get_aim_dir(&dir)) return FALSE;
- wall_to_mud(dir, 20 + randint1(30));
+ wall_to_mud(user_ptr, dir, 20 + randint1(30));
break;
}
case SV_ROD_TELEPORT_AWAY:
{
int distance = MAX_SIGHT * (powerful ? 8 : 5);
- if (teleport_monster(dir, distance)) ident = TRUE;
+ if (teleport_monster(creature_ptr, dir, distance)) ident = TRUE;
break;
}
case SV_ROD_DISARMING:
{
- if (disarm_trap(dir)) ident = TRUE;
+ if (disarm_trap(creature_ptr, dir)) ident = TRUE;
if (powerful && disarm_traps_touch()) ident = TRUE;
break;
}
case SV_ROD_STONE_TO_MUD:
{
HIT_POINT dam = powerful ? 40 + randint1(60) : 20 + randint1(30);
- if (wall_to_mud(dir, dam)) ident = TRUE;
+ if (wall_to_mud(creature_ptr, dir, dam)) ident = TRUE;
break;
}
case SV_WAND_TELEPORT_AWAY:
{
int distance = MAX_SIGHT * (powerful ? 8 : 5);
- if (teleport_monster(dir, distance)) ident = TRUE;
+ if (teleport_monster(creature_ptr, dir, distance)) ident = TRUE;
break;
}
case SV_WAND_DISARMING:
{
- if (disarm_trap(dir)) ident = TRUE;
+ if (disarm_trap(creature_ptr, dir)) ident = TRUE;
if (powerful && disarm_traps_touch()) ident = TRUE;
break;
}
case SV_WAND_TRAP_DOOR_DEST:
{
- if (destroy_door(dir)) ident = TRUE;
+ if (destroy_door(creature_ptr, dir)) ident = TRUE;
if (powerful && destroy_doors_touch()) ident = TRUE;
break;
}
case SV_WAND_STONE_TO_MUD:
{
HIT_POINT dam = powerful ? 40 + randint1(60) : 20 + randint1(30);
- if (wall_to_mud(dir, dam)) ident = TRUE;
+ if (wall_to_mud(creature_ptr, dir, dam)) ident = TRUE;
break;
}
case RACE_HALF_GIANT:
if (!get_aim_dir(&dir)) return FALSE;
- (void)wall_to_mud(dir, 20 + randint1(30));
+ (void)wall_to_mud(creature_ptr, dir, 20 + randint1(30));
break;
case RACE_HALF_TITAN:
{
if (!get_aim_dir(&dir)) return NULL;
- wizard_lock(dir);
+ wizard_lock(caster_ptr, dir);
}
}
break;
{
if (!get_aim_dir(&dir)) return NULL;
- destroy_door(dir);
+ destroy_door(caster_ptr, dir);
}
}
break;
{
if (!get_aim_dir(&dir)) return NULL;
- wall_to_mud(dir, 20 + randint1(30));
+ wall_to_mud(caster_ptr, dir, 20 + randint1(30));
}
}
break;
{
if (!get_aim_dir(&dir)) return NULL;
- destroy_door(dir);
+ destroy_door(caster_ptr, dir);
}
}
break;
{
if (!get_aim_dir(&dir)) return NULL;
- death_ray(dir, plev);
+ death_ray(caster_ptr, dir, plev);
}
}
break;
{
if (!get_aim_dir(&dir)) return NULL;
- wall_to_mud(dir, 20 + randint1(30));
+ wall_to_mud(caster_ptr, dir, 20 + randint1(30));
}
}
break;
extern bool fire_bolt_or_beam(player_type *caster_ptr, PERCENTAGE prob, EFFECT_ID typ, DIRECTION dir, HIT_POINT dam);
extern bool lite_line(player_type *caster_ptr, DIRECTION dir, HIT_POINT dam);
extern bool hypodynamic_bolt(player_type *caster_ptr, DIRECTION dir, HIT_POINT dam);
-extern bool death_ray(DIRECTION dir, PLAYER_LEVEL plev);
-extern bool wall_to_mud(DIRECTION dir, HIT_POINT dam);
-extern bool destroy_door(DIRECTION dir);
-extern bool disarm_trap(DIRECTION dir);
-extern bool wizard_lock(DIRECTION dir);
-extern bool teleport_monster(DIRECTION dir, int distance);
+extern bool death_ray(player_type *caster_ptr, DIRECTION dir, PLAYER_LEVEL plev);
+extern bool wall_to_mud(player_type *caster_ptr, DIRECTION dir, HIT_POINT dam);
+extern bool destroy_door(player_type *caster_ptr, DIRECTION dir);
+extern bool disarm_trap(player_type *caster_ptr, DIRECTION dir);
+extern bool wizard_lock(player_type *caster_ptr, DIRECTION dir);
+extern bool teleport_monster(player_type *caster_ptr, DIRECTION dir, int distance);
extern bool door_creation(player_type *caster_ptr, POSITION y, POSITION x);
extern bool trap_creation(player_type *caster_ptr, POSITION y, POSITION x);
extern bool tree_creation(player_type *caster_ptr, POSITION y, POSITION x);
* @param dam 威力
* @return 作用が実際にあった場合TRUEを返す
*/
-bool wall_to_mud(DIRECTION dir, HIT_POINT dam)
+bool wall_to_mud(player_type *caster_ptr, DIRECTION dir, HIT_POINT dam)
{
BIT_FLAGS flg = PROJECT_BEAM | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL;
- return (project_hook(p_ptr, GF_KILL_WALL, dir, dam, flg));
+ return (project_hook(caster_ptr, GF_KILL_WALL, dir, dam, flg));
}
* @param dir 方向(5ならばグローバル変数 target_col/target_row の座標を目標にする)
* @return 作用が実際にあった場合TRUEを返す
*/
-bool wizard_lock(DIRECTION dir)
+bool wizard_lock(player_type *caster_ptr, DIRECTION dir)
{
BIT_FLAGS flg = PROJECT_BEAM | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL;
- return (project_hook(p_ptr, GF_JAM_DOOR, dir, 20 + randint1(30), flg));
+ return (project_hook(caster_ptr, GF_JAM_DOOR, dir, 20 + randint1(30), flg));
}
* @param dir 方向(5ならばグローバル変数 target_col/target_row の座標を目標にする)
* @return 作用が実際にあった場合TRUEを返す
*/
-bool destroy_door(DIRECTION dir)
+bool destroy_door(player_type *caster_ptr, DIRECTION dir)
{
BIT_FLAGS flg = PROJECT_BEAM | PROJECT_GRID | PROJECT_ITEM;
- return (project_hook(p_ptr, GF_KILL_DOOR, dir, 0, flg));
+ return (project_hook(caster_ptr, GF_KILL_DOOR, dir, 0, flg));
}
* @param dir 方向(5ならばグローバル変数 target_col/target_row の座標を目標にする)
* @return 作用が実際にあった場合TRUEを返す
*/
-bool disarm_trap(DIRECTION dir)
+bool disarm_trap(player_type *caster_ptr, DIRECTION dir)
{
BIT_FLAGS flg = PROJECT_BEAM | PROJECT_GRID | PROJECT_ITEM;
- return (project_hook(p_ptr, GF_KILL_TRAP, dir, 0, flg));
+ return (project_hook(caster_ptr, GF_KILL_TRAP, dir, 0, flg));
}
* @param plev プレイヤーレベル(効力はplev*200)
* @return 作用が実際にあった場合TRUEを返す
*/
-bool death_ray(DIRECTION dir, PLAYER_LEVEL plev)
+bool death_ray(player_type *caster_ptr, DIRECTION dir, PLAYER_LEVEL plev)
{
BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE;
- return (project_hook(p_ptr, GF_DEATH_RAY, dir, plev * 200, flg));
+ return (project_hook(caster_ptr, GF_DEATH_RAY, dir, plev * 200, flg));
}
* @param distance 移動距離
* @return 作用が実際にあった場合TRUEを返す
*/
-bool teleport_monster(DIRECTION dir, int distance)
+bool teleport_monster(player_type *caster_ptr, DIRECTION dir, int distance)
{
BIT_FLAGS flg = PROJECT_BEAM | PROJECT_KILL;
- return (project_hook(p_ptr, GF_AWAY_ALL, dir, distance, flg));
+ return (project_hook(caster_ptr, GF_AWAY_ALL, dir, distance, flg));
}