OSDN Git Service

[Refactor] struct player_type を class PlayerType に置換。
[hengbandforosx/hengbandosx.git] / src / realm / realm-sorcery.cpp
index 7aa99f0..a440450 100644 (file)
@@ -1,8 +1,8 @@
 #include "realm/realm-sorcery.h"
+#include "avatar/avatar.h"
 #include "cmd-action/cmd-spell.h"
 #include "core/asking-player.h"
 #include "player-info/self-info.h"
-#include "player-info/avatar.h"
 #include "spell-kind/magic-item-recharger.h"
 #include "spell-kind/spells-charm.h"
 #include "spell-kind/spells-detection.h"
 #include "spell-kind/spells-teleport.h"
 #include "spell-kind/spells-world.h"
 #include "spell-realm/spells-sorcery.h"
-#include "spell/spell-types.h"
+#include "effect/attribute-types.h"
 #include "spell/spells-status.h"
 #include "status/body-improvement.h"
 #include "status/buff-setter.h"
 #include "status/sight-setter.h"
+#include "system/player-type-definition.h"
 #include "target/target-getter.h"
 #include "view/display-messages.h"
 
 /*!
  * @brief 仙術領域魔法の各処理を行う
- * @param caster_ptr プレーヤーへの参照ポインタ
+ * @param player_ptr プレイヤーへの参照ポインタ
  * @param spell 魔法ID
- * @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST)
- * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はNULL文字列を返す。
+ * @param mode 処理内容 (SpellProcessType::NAME / SPELL_DESC / SpellProcessType::INFO / SpellProcessType::CAST)
+ * @return SpellProcessType::NAME / SPELL_DESC / SpellProcessType::INFO 時には文字列ポインタを返す。SpellProcessType::CAST時はnullptr文字列を返す。
  */
-concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mode)
+concptr do_sorcery_spell(PlayerType *player_ptr, SPELL_IDX spell, SpellProcessType mode)
 {
-    bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
-    bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
-    bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
-    bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
+    bool name = mode == SpellProcessType::NAME;
+    bool desc = mode == SpellProcessType::DESCRIPTION;
+    bool info = mode == SpellProcessType::INFO;
+    bool cast = mode == SpellProcessType::CAST;
 
     DIRECTION dir;
-    PLAYER_LEVEL plev = caster_ptr->lev;
+    PLAYER_LEVEL plev = player_ptr->lev;
 
     switch (spell) {
     case 0:
@@ -55,7 +56,7 @@ concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mo
                 return info_radius(rad);
 
             if (cast) {
-                detect_monsters_normal(caster_ptr, rad);
+                detect_monsters_normal(player_ptr, rad);
             }
         }
         break;
@@ -73,7 +74,7 @@ concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mo
                 return info_range(range);
 
             if (cast) {
-                teleport_player(caster_ptr, range, TELEPORT_SPONTANEOUS);
+                teleport_player(player_ptr, range, TELEPORT_SPONTANEOUS);
             }
         }
         break;
@@ -91,9 +92,9 @@ concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mo
                 return info_radius(rad);
 
             if (cast) {
-                detect_traps(caster_ptr, rad, TRUE);
-                detect_doors(caster_ptr, rad);
-                detect_stairs(caster_ptr, rad);
+                detect_traps(player_ptr, rad, true);
+                detect_doors(player_ptr, rad);
+                detect_stairs(player_ptr, rad);
             }
         }
         break;
@@ -113,7 +114,7 @@ concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mo
                 return info_damage(dice, sides, 0);
 
             if (cast) {
-                lite_area(caster_ptr, damroll(dice, sides), rad);
+                lite_area(player_ptr, damroll(dice, sides), rad);
             }
         }
         break;
@@ -131,10 +132,10 @@ concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mo
                 return info_power(power);
 
             if (cast) {
-                if (!get_aim_dir(caster_ptr, &dir))
-                    return NULL;
+                if (!get_aim_dir(player_ptr, &dir))
+                    return nullptr;
 
-                confuse_monster(caster_ptr, dir, power);
+                confuse_monster(player_ptr, dir, power);
             }
         }
         break;
@@ -152,7 +153,7 @@ concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mo
                 return info_range(range);
 
             if (cast) {
-                teleport_player(caster_ptr, range, TELEPORT_SPONTANEOUS);
+                teleport_player(player_ptr, range, TELEPORT_SPONTANEOUS);
             }
         }
         break;
@@ -170,10 +171,10 @@ concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mo
                 return info_power(power);
 
             if (cast) {
-                if (!get_aim_dir(caster_ptr, &dir))
-                    return NULL;
+                if (!get_aim_dir(player_ptr, &dir))
+                    return nullptr;
 
-                sleep_monster(caster_ptr, dir, plev);
+                sleep_monster(player_ptr, dir, plev);
             }
         }
         break;
@@ -191,8 +192,8 @@ concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mo
                 return info_power(power);
 
             if (cast) {
-                if (!recharge(caster_ptr, power))
-                    return NULL;
+                if (!recharge(player_ptr, power))
+                    return nullptr;
             }
         }
         break;
@@ -210,7 +211,7 @@ concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mo
                 return info_radius(rad);
 
             if (cast) {
-                map_area(caster_ptr, rad);
+                map_area(player_ptr, rad);
             }
         }
         break;
@@ -223,8 +224,8 @@ concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mo
 
         {
             if (cast) {
-                if (!ident_spell(caster_ptr, FALSE, TV_NONE))
-                    return NULL;
+                if (!ident_spell(player_ptr, false))
+                    return nullptr;
             }
         }
         break;
@@ -242,10 +243,10 @@ concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mo
                 return info_power(power);
 
             if (cast) {
-                if (!get_aim_dir(caster_ptr, &dir))
-                    return NULL;
+                if (!get_aim_dir(player_ptr, &dir))
+                    return nullptr;
 
-                slow_monster(caster_ptr, dir, plev);
+                slow_monster(player_ptr, dir, plev);
             }
         }
         break;
@@ -263,7 +264,7 @@ concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mo
                 return info_power(power);
 
             if (cast) {
-                sleep_monsters(caster_ptr, plev);
+                sleep_monsters(player_ptr, plev);
             }
         }
         break;
@@ -281,10 +282,10 @@ concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mo
                 return info_power(power);
 
             if (cast) {
-                if (!get_aim_dir(caster_ptr, &dir))
-                    return NULL;
+                if (!get_aim_dir(player_ptr, &dir))
+                    return nullptr;
 
-                fire_beam(caster_ptr, GF_AWAY_ALL, dir, power);
+                fire_beam(player_ptr, AttributeType::AWAY_ALL, dir, power);
             }
         }
         break;
@@ -303,7 +304,7 @@ concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mo
                 return info_duration(base, sides);
 
             if (cast) {
-                set_fast(caster_ptr, randint1(sides) + base, FALSE);
+                set_fast(player_ptr, randint1(sides) + base, false);
             }
         }
         break;
@@ -322,7 +323,7 @@ concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mo
                 return info_radius(rad);
 
             if (cast) {
-                detect_all(caster_ptr, rad);
+                detect_all(player_ptr, rad);
             }
         }
         break;
@@ -335,8 +336,8 @@ concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mo
 
         {
             if (cast) {
-                if (!identify_fully(caster_ptr, FALSE, TV_NONE))
-                    return NULL;
+                if (!identify_fully(player_ptr, false))
+                    return nullptr;
             }
         }
         break;
@@ -354,9 +355,9 @@ concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mo
                 return info_radius(rad);
 
             if (cast) {
-                detect_objects_normal(caster_ptr, rad);
-                detect_treasure(caster_ptr, rad);
-                detect_objects_gold(caster_ptr, rad);
+                detect_objects_normal(player_ptr, rad);
+                detect_treasure(player_ptr, rad);
+                detect_objects_gold(player_ptr, rad);
             }
         }
         break;
@@ -374,10 +375,10 @@ concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mo
                 return info_power(power);
 
             if (cast) {
-                if (!get_aim_dir(caster_ptr, &dir))
-                    return NULL;
+                if (!get_aim_dir(player_ptr, &dir))
+                    return nullptr;
 
-                charm_monster(caster_ptr, dir, plev);
+                charm_monster(player_ptr, dir, plev);
             }
         }
         break;
@@ -396,7 +397,7 @@ concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mo
                 return info_duration(base, sides);
 
             if (cast) {
-                set_tim_esp(caster_ptr, randint1(sides) + base, FALSE);
+                set_tim_esp(player_ptr, randint1(sides) + base, false);
             }
         }
         break;
@@ -409,8 +410,8 @@ concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mo
 
         {
             if (cast) {
-                if (!tele_town(caster_ptr))
-                    return NULL;
+                if (!tele_town(player_ptr))
+                    return nullptr;
             }
         }
         break;
@@ -424,7 +425,7 @@ concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mo
 
         {
             if (cast) {
-                self_knowledge(caster_ptr);
+                self_knowledge(player_ptr);
             }
         }
         break;
@@ -438,8 +439,8 @@ concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mo
         {
             if (cast) {
                 if (!get_check(_("本当に他の階にテレポートしますか?", "Are you sure? (Teleport Level)")))
-                    return NULL;
-                teleport_level(caster_ptr, 0);
+                    return nullptr;
+                teleport_level(player_ptr, 0);
             }
         }
         break;
@@ -459,8 +460,8 @@ concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mo
                 return info_delay(base, sides);
 
             if (cast) {
-                if (!recall_player(caster_ptr, randint0(21) + 15))
-                    return NULL;
+                if (!recall_player(player_ptr, randint0(21) + 15))
+                    return nullptr;
             }
         }
         break;
@@ -479,8 +480,8 @@ concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mo
 
             if (cast) {
                 msg_print(_("次元の扉が開いた。目的地を選んで下さい。", "You open a dimensional gate. Choose a destination."));
-                if (!dimension_door(caster_ptr))
-                    return NULL;
+                if (!dimension_door(player_ptr))
+                    return nullptr;
             }
         }
         break;
@@ -493,7 +494,7 @@ concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mo
 
         {
             if (cast) {
-                probing(caster_ptr);
+                probing(player_ptr);
             }
         }
         break;
@@ -514,7 +515,7 @@ concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mo
                 return info_damage(dice, sides, base);
 
             if (cast) {
-                create_rune_explosion(caster_ptr, caster_ptr->y, caster_ptr->x);
+                create_rune_explosion(player_ptr, player_ptr->y, player_ptr->x);
             }
         }
         break;
@@ -532,10 +533,10 @@ concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mo
                 return info_weight(weight);
 
             if (cast) {
-                if (!get_aim_dir(caster_ptr, &dir))
-                    return NULL;
+                if (!get_aim_dir(player_ptr, &dir))
+                    return nullptr;
 
-                fetch_item(caster_ptr, dir, weight, FALSE);
+                fetch_item(player_ptr, dir, weight, false);
             }
         }
         break;
@@ -555,13 +556,13 @@ concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mo
                 return info_duration(base, sides);
 
             if (cast) {
-                chg_virtue(caster_ptr, V_KNOWLEDGE, 1);
-                chg_virtue(caster_ptr, V_ENLIGHTEN, 1);
+                chg_virtue(player_ptr, V_KNOWLEDGE, 1);
+                chg_virtue(player_ptr, V_ENLIGHTEN, 1);
 
-                wiz_lite(caster_ptr, FALSE);
+                wiz_lite(player_ptr, false);
 
-                if (!caster_ptr->telepathy) {
-                    set_tim_esp(caster_ptr, randint1(sides) + base, FALSE);
+                if (!player_ptr->telepathy) {
+                    set_tim_esp(player_ptr, randint1(sides) + base, false);
                 }
             }
         }
@@ -580,7 +581,7 @@ concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mo
                 return info_power(power);
 
             if (cast) {
-                charm_monsters(caster_ptr, power);
+                charm_monsters(player_ptr, power);
             }
         }
         break;
@@ -593,8 +594,8 @@ concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mo
 
         {
             if (cast) {
-                if (!alchemy(caster_ptr))
-                    return NULL;
+                if (!alchemy(player_ptr))
+                    return nullptr;
             }
         }
         break;
@@ -612,7 +613,7 @@ concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mo
                 return info_power(power);
 
             if (cast) {
-                banish_monsters(caster_ptr, power);
+                banish_monsters(player_ptr, power);
             }
         }
         break;
@@ -632,7 +633,7 @@ concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mo
                 return info_duration(base, base);
 
             if (cast) {
-                set_invuln(caster_ptr, randint1(base) + base, FALSE);
+                set_invuln(player_ptr, randint1(base) + base, false);
             }
         }
         break;