OSDN Git Service

[modify] #37914 (2.2.1.3) ブレス処理をfire_ball()からfire_breath()に分離。 / Separate fire_breath...
[hengband/hengband.git] / src / cmd6.c
index 8c8b59d..ecd16c9 100644 (file)
@@ -598,7 +598,7 @@ static bool item_tester_hook_eatable(object_type *o_ptr)
  */
 void do_cmd_eat_food(void)
 {
-       int         item;
+       OBJECT_IDX item;
        cptr        q, s;
 
 
@@ -1026,7 +1026,7 @@ static void do_cmd_quaff_potion_aux(int item)
                                }
                                for (; i < EATER_EXT*3; i++)
                                {
-                                       int k_idx = lookup_kind(TV_ROD, i-EATER_EXT*2);
+                                       KIND_OBJECT_IDX k_idx = lookup_kind(TV_ROD, i-EATER_EXT*2);
                                        p_ptr->magic_num1[i] -= ((p_ptr->magic_num2[i] < 10) ? EATER_ROD_CHARGE*3 : p_ptr->magic_num2[i]*EATER_ROD_CHARGE/3)*k_info[k_idx].pval;
                                        if (p_ptr->magic_num1[i] < 0) p_ptr->magic_num1[i] = 0;
                                }
@@ -1184,15 +1184,7 @@ static void do_cmd_quaff_potion_aux(int item)
                        do_cmd_rerate(FALSE);
                        get_max_stats();
                        p_ptr->update |= PU_BONUS;
-                       if (p_ptr->muta1 || p_ptr->muta2 || p_ptr->muta3)
-                       {
-                               chg_virtue(V_CHANCE, -5);
-                               msg_print(_("全ての突然変異が治った。", "You are cured of all mutations."));
-                               p_ptr->muta1 = p_ptr->muta2 = p_ptr->muta3 = 0;
-                               p_ptr->update |= PU_BONUS;
-                               handle_stuff();
-                               mutant_regenerate_mod = calc_mutant_regenerate_mod();
-                       }
+                       lose_all_mutations();
                        ident = TRUE;
                        break;
 
@@ -1217,11 +1209,7 @@ static void do_cmd_quaff_potion_aux(int item)
                case SV_POTION_POLYMORPH:
                        if ((p_ptr->muta1 || p_ptr->muta2 || p_ptr->muta3) && one_in_(23))
                        {
-                               chg_virtue(V_CHANCE, -5);
-                               msg_print(_("全ての突然変異が治った。", "You are cured of all mutations."));
-                               p_ptr->muta1 = p_ptr->muta2 = p_ptr->muta3 = 0;
-                               p_ptr->update |= PU_BONUS;
-                               handle_stuff();
+                               lose_all_mutations();
                        }
                        else
                        {
@@ -1345,7 +1333,7 @@ static bool item_tester_hook_quaff(object_type *o_ptr)
  */
 void do_cmd_quaff_potion(void)
 {
-       int  item;
+       OBJECT_IDX item;
        cptr q, s;
 
        if (p_ptr->special_defense & (KATA_MUSOU | KATA_KOUKIJIN))
@@ -1988,7 +1976,7 @@ static bool item_tester_hook_readable(object_type *o_ptr)
 void do_cmd_read_scroll(void)
 {
        object_type *o_ptr;
-       int  item;
+       OBJECT_IDX item;
        cptr q, s;
 
        if (p_ptr->special_defense & (KATA_MUSOU | KATA_KOUKIJIN))
@@ -2547,7 +2535,7 @@ static void do_cmd_use_staff_aux(int item)
  */
 void do_cmd_use_staff(void)
 {
-       int  item;
+       OBJECT_IDX item;
        cptr q, s;
 
        if (p_ptr->special_defense & (KATA_MUSOU | KATA_KOUKIJIN))
@@ -2609,7 +2597,7 @@ static int wand_effect(OBJECT_SUBTYPE_VALUE sval, int dir, bool powerful, bool m
        {
                case SV_WAND_HEAL_MONSTER:
                {
-                       int dam = damroll((powerful ? 20 : 10), 10);
+                       HIT_POINT dam = damroll((powerful ? 20 : 10), 10);
                        if (heal_monster(dir, dam)) ident = TRUE;
                        break;
                }
@@ -2649,14 +2637,14 @@ static int wand_effect(OBJECT_SUBTYPE_VALUE sval, int dir, bool powerful, bool m
 
                case SV_WAND_STONE_TO_MUD:
                {
-                       int dam = powerful ? 40 + randint1(60) : 20 + randint1(30);
+                       HIT_POINT dam = powerful ? 40 + randint1(60) : 20 + randint1(30);
                        if (wall_to_mud(dir, dam)) ident = TRUE;
                        break;
                }
 
                case SV_WAND_LITE:
                {
-                       int dam = damroll((powerful ? 12 : 6), 8);
+                       HIT_POINT dam = damroll((powerful ? 12 : 6), 8);
                        msg_print(_("青く輝く光線が放たれた。", "A line of blue shimmering light appears."));
                        (void)lite_line(dir, dam);
                        ident = TRUE;
@@ -2687,9 +2675,9 @@ static int wand_effect(OBJECT_SUBTYPE_VALUE sval, int dir, bool powerful, bool m
                        break;
                }
 
-               case SV_WAND_DRAIN_LIFE:
+               case SV_WAND_HYPODYNAMIA:
                {
-                       if (drain_life(dir, 80 + lev)) ident = TRUE;
+                       if (hypodynamic_bolt(dir, 80 + lev)) ident = TRUE;
                        break;
                }
 
@@ -2777,21 +2765,21 @@ static int wand_effect(OBJECT_SUBTYPE_VALUE sval, int dir, bool powerful, bool m
 
                case SV_WAND_DRAGON_FIRE:
                {
-                       fire_ball(GF_FIRE, dir, (powerful ? 300 : 200), -3);
+                       fire_breath(GF_FIRE, dir, (powerful ? 300 : 200), 3);
                        ident = TRUE;
                        break;
                }
 
                case SV_WAND_DRAGON_COLD:
                {
-                       fire_ball(GF_COLD, dir, (powerful ? 270 : 180), -3);
+                       fire_breath(GF_COLD, dir, (powerful ? 270 : 180), 3);
                        ident = TRUE;
                        break;
                }
 
                case SV_WAND_DRAGON_BREATH:
                {
-                       int dam;
+                       HIT_POINT dam;
                        int typ;
 
                        switch (randint1(5))
@@ -3020,7 +3008,7 @@ static void do_cmd_aim_wand_aux(int item)
  */
 void do_cmd_aim_wand(void)
 {
-       int     item;
+       OBJECT_IDX item;
        cptr    q, s;
 
        /* Restrict choices to wands */
@@ -3182,7 +3170,7 @@ static int rod_effect(OBJECT_SUBTYPE_VALUE sval, int dir, bool *use_charge, bool
 
                case SV_ROD_LITE:
                {
-                       int dam = damroll((powerful ? 12 : 6), 8);
+                       HIT_POINT dam = damroll((powerful ? 12 : 6), 8);
                        msg_print(_("青く輝く光線が放たれた。", "A line of blue shimmering light appears."));
                        (void)lite_line(dir, dam);
                        ident = TRUE;
@@ -3201,9 +3189,9 @@ static int rod_effect(OBJECT_SUBTYPE_VALUE sval, int dir, bool *use_charge, bool
                        break;
                }
 
-               case SV_ROD_DRAIN_LIFE:
+               case SV_ROD_HYPODYNAMIA:
                {
-                       if (drain_life(dir, 70 + 3 * lev / 2)) ident = TRUE;
+                       if (hypodynamic_bolt(dir, 70 + 3 * lev / 2)) ident = TRUE;
                        break;
                }
 
@@ -3278,7 +3266,7 @@ static int rod_effect(OBJECT_SUBTYPE_VALUE sval, int dir, bool *use_charge, bool
 
                case SV_ROD_STONE_TO_MUD:
                {
-                       int dam = powerful ? 40 + randint1(60) : 20 + randint1(30);
+                       HIT_POINT dam = powerful ? 40 + randint1(60) : 20 + randint1(30);
                        if (wall_to_mud(dir, dam)) ident = TRUE;
                        break;
                }
@@ -3450,7 +3438,7 @@ static void do_cmd_zap_rod_aux(int item)
  */
 void do_cmd_zap_rod(void)
 {
-       int item;
+       OBJECT_IDX item;
        cptr q, s;
 
        if (p_ptr->special_defense & (KATA_MUSOU | KATA_KOUKIJIN))
@@ -3791,9 +3779,9 @@ static void do_cmd_activate_aux(int item)
                        if(fire_ball(GF_CAPTURE, dir, 0, 0))
                        {
                                o_ptr->pval = (PARAMETER_VALUE)cap_mon;
-                               o_ptr->xtra3 = cap_mspeed;
-                               o_ptr->xtra4 = cap_hp;
-                               o_ptr->xtra5 = cap_maxhp;
+                               o_ptr->xtra3 = (XTRA8)cap_mspeed;
+                               o_ptr->xtra4 = (XTRA16)cap_hp;
+                               o_ptr->xtra5 = (XTRA16)cap_maxhp;
                                if (cap_nickname)
                                {
                                        cptr t;
@@ -3923,7 +3911,7 @@ static void do_cmd_activate_aux(int item)
  */
 void do_cmd_activate(void)
 {
-       int     item;
+       OBJECT_IDX item;
        cptr    q, s;
 
 
@@ -4011,7 +3999,7 @@ static bool item_tester_hook_use(object_type *o_ptr)
  */
 void do_cmd_use(void)
 {
-       int         item;
+       OBJECT_IDX item;
        object_type *o_ptr;
        cptr        q, s;
 
@@ -4281,7 +4269,7 @@ static OBJECT_SUBTYPE_VALUE select_magic_eater(bool only_browse)
                {
                        byte y, x = 0;
                        OBJECT_SUBTYPE_VALUE ctr;
-                       int chance;
+                       PERCENTAGE chance;
                        IDX k_idx;
                        char dummy[80];
                        POSITION x1, y1;
@@ -4584,7 +4572,8 @@ static OBJECT_SUBTYPE_VALUE select_magic_eater(bool only_browse)
 bool do_cmd_magic_eater(bool only_browse, bool powerful)
 {
        OBJECT_SUBTYPE_VALUE item;
-       int chance, level;
+       PERCENTAGE chance;
+       DEPTH level;
        IDX k_idx;
        OBJECT_TYPE_VALUE tval;
        OBJECT_SUBTYPE_VALUE sval;