OSDN Git Service

[Refactor] #38997 cast_wonder() に player_type * 引数を追加. / Add player_type * argument...
authordeskull <deskull@users.sourceforge.jp>
Sat, 14 Dec 2019 07:02:22 +0000 (16:02 +0900)
committerdeskull <deskull@users.sourceforge.jp>
Sat, 14 Dec 2019 07:02:22 +0000 (16:02 +0900)
src/realm-chaos.c
src/spells.h
src/spells2.c

index 362c82d..b91f127 100644 (file)
@@ -199,7 +199,7 @@ concptr do_chaos_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode)
 
                                if (!get_aim_dir(&dir)) return NULL;
 
-                               cast_wonder(dir);
+                               cast_wonder(caster_ptr, dir);
                        }
                }
                break;
index fbd511e..41a2078 100644 (file)
@@ -252,7 +252,7 @@ extern void ring_of_power(player_type *caster_ptr, DIRECTION dir);
 extern void wild_magic(player_type *caster_ptr, int spell);
 extern void cast_meteor(HIT_POINT dam, POSITION rad);
 extern bool cast_wrath_of_the_god(player_type *caster_ptr, HIT_POINT dam, POSITION rad);
-extern void cast_wonder(DIRECTION dir);
+extern void cast_wonder(player_type *caster_ptr, DIRECTION dir);
 extern void cast_invoke_spirits(player_type *caster_ptr, DIRECTION dir);
 extern void cast_shuffle(player_type *caster_ptr);
 extern void stop_mouth(void);
index e36b82f..e6328f2 100644 (file)
@@ -3436,26 +3436,26 @@ bool cast_wrath_of_the_god(player_type *caster_ptr, HIT_POINT dam, POSITION rad)
 * while keeping the results quite random.  It also allows some potent\n
 * effects only at high level.
 */
-void cast_wonder(DIRECTION dir)
+void cast_wonder(player_type *caster_ptr, DIRECTION dir)
 {
-       PLAYER_LEVEL plev = p_ptr->lev;
+       PLAYER_LEVEL plev = caster_ptr->lev;
        int die = randint1(100) + plev / 5;
-       int vir = virtue_number(p_ptr, V_CHANCE);
+       int vir = virtue_number(caster_ptr, V_CHANCE);
 
        if (vir)
        {
-               if (p_ptr->virtues[vir - 1] > 0)
+               if (caster_ptr->virtues[vir - 1] > 0)
                {
-                       while (randint1(400) < p_ptr->virtues[vir - 1]) die++;
+                       while (randint1(400) < caster_ptr->virtues[vir - 1]) die++;
                }
                else
                {
-                       while (randint1(400) < (0 - p_ptr->virtues[vir - 1])) die--;
+                       while (randint1(400) < (0 - caster_ptr->virtues[vir - 1])) die--;
                }
        }
 
        if (die < 26)
-               chg_virtue(p_ptr, V_CHANCE, 1);
+               chg_virtue(caster_ptr, V_CHANCE, 1);
 
        if (die > 100)
        {
@@ -3492,15 +3492,15 @@ void cast_wonder(DIRECTION dir)
        else if (die < 101) hypodynamic_bolt(dir, 100 + plev);
        else if (die < 104)
        {
-               earthquake(p_ptr, p_ptr->y, p_ptr->x, 12, 0);
+               earthquake(caster_ptr, caster_ptr->y, caster_ptr->x, 12, 0);
        }
        else if (die < 106)
        {
-               (void)destroy_area(p_ptr->current_floor_ptr, p_ptr->y, p_ptr->x, 13 + randint0(5), FALSE);
+               (void)destroy_area(caster_ptr->current_floor_ptr, caster_ptr->y, caster_ptr->x, 13 + randint0(5), FALSE);
        }
        else if (die < 108)
        {
-               symbol_genocide(p_ptr, plev + 50, TRUE);
+               symbol_genocide(caster_ptr, plev + 50, TRUE);
        }
        else if (die < 110) dispel_monsters(120);
        else /* RARE */
@@ -3508,7 +3508,7 @@ void cast_wonder(DIRECTION dir)
                dispel_monsters(150);
                slow_monsters(plev);
                sleep_monsters(plev);
-               hp_player(p_ptr, 300);
+               hp_player(caster_ptr, 300);
        }
 }