case ACT_RUNE_EXPLO:
{
msg_print(_("明るい赤色に輝いている...", "It glows bright red..."));
- explosive_rune();
+ explosive_rune(user_ptr->current_floor_ptr, user_ptr->y, user_ptr->x);
break;
}
(void)teleport_swap(dir);
break;
case 15:
- explosive_rune();
+ explosive_rune(caster_ptr->current_floor_ptr, caster_ptr->y, caster_ptr->x);
break;
case 16:
(void)set_kabenuke(caster_ptr, randint1(plev/2) + plev/2, FALSE);
case RACE_HALF_OGRE:
msg_print(_("爆発のルーンを慎重に仕掛けた...", "You carefully set an explosive rune..."));
- explosive_rune();
+ explosive_rune(creature_ptr->current_floor_ptr, creature_ptr->y, creature_ptr->x);
break;
case RACE_HALF_GIANT:
if (cast)
{
- explosive_rune();
+ explosive_rune(caster_ptr->current_floor_ptr, caster_ptr->y, caster_ptr->x);
}
}
break;
* Leave an "explosive rune" which prevents monster movement
* @return 実際に設置が行われた場合TRUEを返す
*/
-bool explosive_rune(void)
+bool explosive_rune(floor_type *floor_ptr, POSITION y, POSITION x)
{
- if (!cave_clean_bold(p_ptr->y, p_ptr->x))
+ if (!cave_clean_bold(y, x))
{
msg_print(_("床上のアイテムが呪文を跳ね返した。", "The object resists the spell."));
return FALSE;
}
/* Create a glyph */
- p_ptr->current_floor_ptr->grid_array[p_ptr->y][p_ptr->x].info |= CAVE_OBJECT;
- p_ptr->current_floor_ptr->grid_array[p_ptr->y][p_ptr->x].mimic = feat_explosive_rune;
+ floor_ptr->grid_array[y][x].info |= CAVE_OBJECT;
+ floor_ptr->grid_array[y][x].mimic = feat_explosive_rune;
- note_spot(p_ptr->y, p_ptr->x);
- lite_spot(p_ptr->y, p_ptr->x);
+ note_spot(y, x);
+ lite_spot(y, x);
return TRUE;
}
extern void wiz_lite(player_type *caster_ptr, bool ninja);
extern void wiz_dark(player_type *caster_ptr);
extern bool warding_glyph(player_type *caster_ptr);
-extern bool explosive_rune(void);
+extern bool explosive_rune(floor_type *floor_ptr, POSITION y, POSITION x);
extern bool place_mirror(player_type *caster_ptr);
extern void stair_creation(player_type *caster_ptr);
extern void map_area(POSITION range);