• R/O
  • HTTP
  • SSH
  • HTTPS

hengband: Commit

変愚蛮怒のメインリポジトリです


Commit MetaInfo

Revision95178088cf106b506ad7b25422eea93a28fd2a5c (tree)
Time2019-01-09 13:19:51
AuthorDeskull <deskull@user...>
CommiterDeskull

Log Message

[Refactor] #37353 vault_aux_battle() 関数を monster_can_enter_arena() に 改名してmonsterace-hook.c に移動。 / Rename vault_aux_battle() to monster_can_enter_arena() and move to monsterrace-hook.c.

Change Summary

Incremental Difference

--- a/src/bldg.c
+++ b/src/bldg.c
@@ -14,6 +14,7 @@
1414
1515 #include "angband.h"
1616 #include "object-hook.h"
17+#include "monsterrace-hook.h"
1718 #include "melee.h"
1819 #include "world.h"
1920
@@ -1341,43 +1342,6 @@ static bool gamble_comm(int cmd)
13411342 }
13421343
13431344 /*!
1344- * @brief モンスター闘技場に参加できるモンスターの判定
1345- * @param r_idx モンスターID
1346- * @details 基準はNEVER_MOVE MULTIPLY QUANTUM RF7_AQUATIC RF7_CHAMELEONのいずれも持たず、
1347- * 自爆以外のなんらかのHP攻撃手段を持っていること。
1348- * @return 参加できるか否か
1349- */
1350-static bool vault_aux_battle(MONRACE_IDX r_idx)
1351-{
1352- int i;
1353- HIT_POINT dam = 0;
1354-
1355- monster_race *r_ptr = &r_info[r_idx];
1356-
1357- /* Decline town monsters */
1358-/* if (!mon_hook_dungeon(r_idx)) return FALSE; */
1359-
1360- /* Decline unique monsters */
1361-/* if (r_ptr->flags1 & (RF1_UNIQUE)) return (FALSE); */
1362-/* if (r_ptr->flags7 & (RF7_NAZGUL)) return (FALSE); */
1363-
1364- if (r_ptr->flags1 & (RF1_NEVER_MOVE)) return (FALSE);
1365- if (r_ptr->flags2 & (RF2_MULTIPLY)) return (FALSE);
1366- if (r_ptr->flags2 & (RF2_QUANTUM)) return (FALSE);
1367- if (r_ptr->flags7 & (RF7_AQUATIC)) return (FALSE);
1368- if (r_ptr->flags7 & (RF7_CHAMELEON)) return (FALSE);
1369-
1370- for (i = 0; i < 4; i++)
1371- {
1372- if (r_ptr->blow[i].method == RBM_EXPLODE) return (FALSE);
1373- if (r_ptr->blow[i].effect != RBE_DR_MANA) dam += r_ptr->blow[i].d_dice;
1374- }
1375- if (!dam && !(r_ptr->flags4 & (RF4_BOLT_MASK | RF4_BEAM_MASK | RF4_BALL_MASK | RF4_BREATH_MASK)) && !(r_ptr->a_ability_flags1 & (RF5_BOLT_MASK | RF5_BEAM_MASK | RF5_BALL_MASK | RF5_BREATH_MASK)) && !(r_ptr->a_ability_flags2 & (RF6_BOLT_MASK | RF6_BEAM_MASK | RF6_BALL_MASK | RF6_BREATH_MASK))) return (FALSE);
1376-
1377- return (TRUE);
1378-}
1379-
1380-/*!
13811345 * @brief モンスター闘技場に参加するモンスターをリセットする。
13821346 * @return なし
13831347 */
@@ -1415,7 +1379,7 @@ void battle_monsters(void)
14151379 int j;
14161380 while (1)
14171381 {
1418- get_mon_num_prep(vault_aux_battle, NULL);
1382+ get_mon_num_prep(monster_can_entry_arena, NULL);
14191383 p_ptr->inside_battle = TRUE;
14201384 r_idx = get_mon_num(mon_level);
14211385 p_ptr->inside_battle = old_inside_battle;
--- a/src/monsterrace-hook.c
+++ b/src/monsterrace-hook.c
@@ -713,3 +713,40 @@ bool monster_is_fishing_target(MONRACE_IDX r_idx)
713713 else
714714 return FALSE;
715715 }
716+
717+/*!
718+ * @brief モンスター闘技場に参加できるモンスターの判定
719+ * @param r_idx モンスターID
720+ * @details 基準はNEVER_MOVE MULTIPLY QUANTUM RF7_AQUATIC RF7_CHAMELEONのいずれも持たず、
721+ * 自爆以外のなんらかのHP攻撃手段を持っていること。
722+ * @return 参加できるか否か
723+ */
724+bool monster_can_entry_arena(MONRACE_IDX r_idx)
725+{
726+ int i;
727+ HIT_POINT dam = 0;
728+
729+ monster_race *r_ptr = &r_info[r_idx];
730+
731+ /* Decline town monsters */
732+/* if (!mon_hook_dungeon(r_idx)) return FALSE; */
733+
734+ /* Decline unique monsters */
735+/* if (r_ptr->flags1 & (RF1_UNIQUE)) return (FALSE); */
736+/* if (r_ptr->flags7 & (RF7_NAZGUL)) return (FALSE); */
737+
738+ if (r_ptr->flags1 & (RF1_NEVER_MOVE)) return (FALSE);
739+ if (r_ptr->flags2 & (RF2_MULTIPLY)) return (FALSE);
740+ if (r_ptr->flags2 & (RF2_QUANTUM)) return (FALSE);
741+ if (r_ptr->flags7 & (RF7_AQUATIC)) return (FALSE);
742+ if (r_ptr->flags7 & (RF7_CHAMELEON)) return (FALSE);
743+
744+ for (i = 0; i < 4; i++)
745+ {
746+ if (r_ptr->blow[i].method == RBM_EXPLODE) return (FALSE);
747+ if (r_ptr->blow[i].effect != RBE_DR_MANA) dam += r_ptr->blow[i].d_dice;
748+ }
749+ if (!dam && !(r_ptr->flags4 & (RF4_BOLT_MASK | RF4_BEAM_MASK | RF4_BALL_MASK | RF4_BREATH_MASK)) && !(r_ptr->a_ability_flags1 & (RF5_BOLT_MASK | RF5_BEAM_MASK | RF5_BALL_MASK | RF5_BREATH_MASK)) && !(r_ptr->a_ability_flags2 & (RF6_BOLT_MASK | RF6_BEAM_MASK | RF6_BALL_MASK | RF6_BREATH_MASK))) return (FALSE);
750+
751+ return (TRUE);
752+}
--- a/src/monsterrace-hook.h
+++ b/src/monsterrace-hook.h
@@ -63,6 +63,7 @@ extern bool no_questor_or_bounty_uniques(MONRACE_IDX r_idx);
6363 extern bool monster_hook_human(MONRACE_IDX r_idx);
6464 extern bool get_nightmare(MONRACE_IDX r_idx);
6565 extern bool monster_is_fishing_target(MONRACE_IDX r_idx);
66+extern bool monster_can_entry_arena(MONRACE_IDX r_idx);
6667
6768
6869
Show on old repository browser