* @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST)
* @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はNULL文字列を返す。
*/
-cptr do_arcane_spell(SPELL_IDX spell, BIT_FLAGS mode)
+concptr do_arcane_spell(SPELL_IDX spell, BIT_FLAGS mode)
{
bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
if (desc) return _("電撃のボルトもしくはビームを放つ。", "Fires a bolt or beam of lightning.");
{
- int dice = 3 + (plev - 1) / 5;
- int sides = 3;
+ DICE_NUMBER dice = 3 + (plev - 1) / 5;
+ DICE_SID sides = 3;
if (info) return info_damage(dice, sides, 0);
if (desc) return _("光源が照らしている範囲か部屋全体を永久に明るくする。", "Lights up nearby area and the inside of a room permanently.");
{
- int dice = 2;
- int sides = plev / 2;
+ DICE_NUMBER dice = 2;
+ DICE_SID sides = plev / 2;
POSITION rad = plev / 10 + 1;
if (info) return info_damage(dice, sides, 0);
if (desc) return _("怪我と体力を少し回復させる。", "Heals cut and HP a little.");
{
- int dice = 2;
- int sides = 8;
+ DICE_NUMBER dice = 2;
+ DICE_SID sides = 8;
if (info) return info_heal(dice, sides, 0);
if (cast) (void)cure_light_wounds(dice, sides);
if (desc) return _("怪我と体力を中程度回復させる。", "Heals cut and HP more.");
{
- int dice = 4;
- int sides = 8;
+ DICE_NUMBER dice = 4;
+ DICE_SID sides = 8;
if (info) return info_heal(dice, sides, 0);
if (cast) (void)cure_serious_wounds(4, 8);
if (desc) return _("壁を溶かして床にする。", "Turns one rock square to mud.");
{
- int dice = 1;
- int sides = 30;
+ DICE_NUMBER dice = 1;
+ DICE_SID sides = 30;
int base = 20;
if (info) return info_damage(dice, sides, base);
if (desc) return _("光線を放つ。光りを嫌うモンスターに効果がある。", "Fires a beam of light which damages to light-sensitive monsters.");
{
- int dice = 6;
- int sides = 8;
+ DICE_NUMBER dice = 6;
+ DICE_SID sides = 8;
if (info) return info_damage(dice, sides, 0);
{
if (cast)
{
- if (!summon_specific(-1, p_ptr->y, p_ptr->x, plev, SUMMON_ELEMENTAL, (PM_ALLOW_GROUP | PM_FORCE_PET)))
+ if (!summon_specific(-1, p_ptr->y, p_ptr->x, plev, SUMMON_ELEMENTAL, (PM_ALLOW_GROUP | PM_FORCE_PET), '\0'))
{
msg_print(_("エレメンタルは現れなかった。", "No Elementals arrive."));
}
{
int base = 15;
- int sides = 20;
+ DICE_SID sides = 20;
if (info) return info_delay(base, sides);
if (cast)
{
- if (!word_of_recall()) return NULL;
+ if (!recall_player(p_ptr, randint0(21) + 15)) return NULL;
}
}
break;
{
int base = 25;
- int sides = 30;
+ DICE_SID sides = 30;
if (info) return info_duration(base, sides);