OSDN Git Service

[Refactor] #40514 has_warning() を BIT_FLAGS 返り値持ちに仕様変更. / has_warning() was changed...
authordeskull <deskull@users.sourceforge.jp>
Tue, 1 Sep 2020 16:15:21 +0000 (01:15 +0900)
committerdeskull <deskull@users.sourceforge.jp>
Tue, 1 Sep 2020 16:15:21 +0000 (01:15 +0900)
src/player/player-status-flags.c
src/player/player-status-flags.h
src/player/player-status.c
src/player/player-status.h

index 2eb5b60..b1be5de 100644 (file)
@@ -315,13 +315,12 @@ BIT_FLAGS has_reflect(player_type *creature_ptr)
 
 BIT_FLAGS has_see_nocto(player_type *creature_ptr) { return creature_ptr->pclass == CLASS_NINJA ? FLAG_CAUSE_CLASS : 0L; }
 
-void has_warning(player_type *creature_ptr)
+BIT_FLAGS has_warning(player_type *creature_ptr)
 {
+    BIT_FLAGS result = 0L;
     object_type *o_ptr;
     BIT_FLAGS flgs[TR_FLAG_SIZE];
 
-    creature_ptr->warning = FALSE;
-
     for (inventory_slot_type i = INVEN_RARM; i < INVEN_TOTAL; i++) {
         o_ptr = &creature_ptr->inventory_list[i];
         if (!o_ptr->k_idx)
@@ -331,9 +330,10 @@ void has_warning(player_type *creature_ptr)
 
         if (has_flag(flgs, TR_WARNING)) {
             if (!o_ptr->inscription || !(angband_strchr(quark_str(o_ptr->inscription), '$')))
-                creature_ptr->warning = TRUE;
+                result |= 0x01 << (i - INVEN_RARM);
         }
     }
+    return result;
 }
 
 BIT_FLAGS has_anti_magic(player_type *creature_ptr)
@@ -468,25 +468,16 @@ BIT_FLAGS has_see_inv(player_type *creature_ptr)
 
     if (creature_ptr->mimic_form == MIMIC_DEMON || creature_ptr->mimic_form == MIMIC_DEMON_LORD || creature_ptr->mimic_form == MIMIC_VAMPIRE) {
         result |= FLAG_CAUSE_RACE;
-    }
-    else if (is_specific_player_race(creature_ptr, RACE_HIGH_ELF)
-        || is_specific_player_race(creature_ptr, RACE_GOLEM)
-        || is_specific_player_race(creature_ptr, RACE_SKELETON)
-        || is_specific_player_race(creature_ptr, RACE_ZOMBIE)
-        || is_specific_player_race(creature_ptr, RACE_SPECTRE)
-        || is_specific_player_race(creature_ptr, RACE_ARCHON))
-    {
+    } else if (is_specific_player_race(creature_ptr, RACE_HIGH_ELF) || is_specific_player_race(creature_ptr, RACE_GOLEM)
+        || is_specific_player_race(creature_ptr, RACE_SKELETON) || is_specific_player_race(creature_ptr, RACE_ZOMBIE)
+        || is_specific_player_race(creature_ptr, RACE_SPECTRE) || is_specific_player_race(creature_ptr, RACE_ARCHON)) {
         result |= FLAG_CAUSE_RACE;
-    }
-    else if (is_specific_player_race(creature_ptr, RACE_DARK_ELF) && creature_ptr->lev > 19) {
+    } else if (is_specific_player_race(creature_ptr, RACE_DARK_ELF) && creature_ptr->lev > 19) {
+        result |= FLAG_CAUSE_RACE;
+    } else if (is_specific_player_race(creature_ptr, RACE_MIND_FLAYER) && creature_ptr->lev > 14) {
+        result |= FLAG_CAUSE_RACE;
+    } else if ((is_specific_player_race(creature_ptr, RACE_IMP) || is_specific_player_race(creature_ptr, RACE_BALROG)) && creature_ptr->lev > 9) {
         result |= FLAG_CAUSE_RACE;
-    }
-    else if (is_specific_player_race(creature_ptr, RACE_MIND_FLAYER) && creature_ptr->lev > 14) {
-            result |= FLAG_CAUSE_RACE;
-    }
-    else if ((is_specific_player_race(creature_ptr, RACE_IMP) || is_specific_player_race(creature_ptr, RACE_BALROG))
-        && creature_ptr->lev > 9) {
-            result |= FLAG_CAUSE_RACE;
     }
 
     if (creature_ptr->special_defense & KATA_MUSOU) {
@@ -497,9 +488,8 @@ BIT_FLAGS has_see_inv(player_type *creature_ptr)
         result |= FLAG_CAUSE_MAGIC_TIME_EFFECT;
     }
 
-       result |= check_equipment_flags(creature_ptr, TR_SEE_INVIS);
+    result |= check_equipment_flags(creature_ptr, TR_SEE_INVIS);
     return result;
-
 }
 
 BIT_FLAGS has_free_act(player_type *creature_ptr)
@@ -772,10 +762,10 @@ BIT_FLAGS has_regenerate(player_type *creature_ptr)
     }
 
     if (creature_ptr->pclass == CLASS_WARRIOR && creature_ptr->lev > 44) {
-        result |= FLAG_CAUSE_RACE;    
-       }
+        result |= FLAG_CAUSE_RACE;
+    }
 
-       if (creature_ptr->pclass == CLASS_BERSERKER) {
+    if (creature_ptr->pclass == CLASS_BERSERKER) {
         result |= FLAG_CAUSE_RACE;
     }
 
@@ -912,11 +902,9 @@ BIT_FLAGS has_resist_acid(player_type *creature_ptr)
 
     if (creature_ptr->mimic_form == MIMIC_DEMON_LORD) {
         result |= FLAG_CAUSE_RACE;
-    }
-    else if (is_specific_player_race(creature_ptr, RACE_YEEK) || is_specific_player_race(creature_ptr, RACE_KLACKON)) {
+    } else if (is_specific_player_race(creature_ptr, RACE_YEEK) || is_specific_player_race(creature_ptr, RACE_KLACKON)) {
         result |= FLAG_CAUSE_RACE;
-    }
-    else if (is_specific_player_race(creature_ptr, RACE_DRACONIAN) && creature_ptr->lev > 14) {
+    } else if (is_specific_player_race(creature_ptr, RACE_DRACONIAN) && creature_ptr->lev > 14) {
         result |= FLAG_CAUSE_RACE;
     }
 
@@ -932,7 +920,6 @@ BIT_FLAGS has_resist_acid(player_type *creature_ptr)
 
     result |= check_equipment_flags(creature_ptr, TR_RES_ACID);
     return result;
-
 }
 
 BIT_FLAGS has_resist_elec(player_type *creature_ptr)
@@ -941,8 +928,7 @@ BIT_FLAGS has_resist_elec(player_type *creature_ptr)
 
     if (creature_ptr->mimic_form == MIMIC_DEMON_LORD) {
         result |= FLAG_CAUSE_RACE;
-    }
-    else if (is_specific_player_race(creature_ptr, RACE_DRACONIAN) && creature_ptr->lev > 19) {
+    } else if (is_specific_player_race(creature_ptr, RACE_DRACONIAN) && creature_ptr->lev > 19) {
         result |= FLAG_CAUSE_RACE;
     }
 
@@ -981,7 +967,7 @@ BIT_FLAGS has_resist_fire(player_type *creature_ptr)
 
     if (creature_ptr->ult_res) {
         result |= FLAG_CAUSE_MAGIC_TIME_EFFECT;
-       }
+    }
 
     result |= check_equipment_flags(creature_ptr, TR_RES_FIRE);
     result |= has_immune_fire(creature_ptr);
@@ -1379,7 +1365,7 @@ BIT_FLAGS has_immune_elec(player_type *creature_ptr)
 {
     BIT_FLAGS result = 0L;
 
-       if (creature_ptr->ele_immune) {
+    if (creature_ptr->ele_immune) {
         if (creature_ptr->special_defense & DEFENSE_ELEC)
             result |= FLAG_CAUSE_MAGIC_TIME_EFFECT;
     }
@@ -1392,7 +1378,7 @@ BIT_FLAGS has_immune_fire(player_type *creature_ptr)
 {
     BIT_FLAGS result = 0L;
 
-       if (creature_ptr->ele_immune) {
+    if (creature_ptr->ele_immune) {
         if (creature_ptr->special_defense & DEFENSE_FIRE)
             result |= FLAG_CAUSE_MAGIC_TIME_EFFECT;
     }
@@ -1405,9 +1391,9 @@ BIT_FLAGS has_immune_cold(player_type *creature_ptr)
 {
     BIT_FLAGS result = 0L;
 
-       if (creature_ptr->ele_immune) {
+    if (creature_ptr->ele_immune) {
         if (creature_ptr->special_defense & DEFENSE_COLD)
-           result |= FLAG_CAUSE_MAGIC_TIME_EFFECT;
+            result |= FLAG_CAUSE_MAGIC_TIME_EFFECT;
     }
 
     result |= check_equipment_flags(creature_ptr, TR_IM_COLD);
index 2cd9551..07875d3 100644 (file)
@@ -46,7 +46,7 @@ BIT_FLAGS has_mighty_throw(player_type *creature_ptr);
 BIT_FLAGS has_dec_mana(player_type *creature_ptr);
 BIT_FLAGS has_reflect(player_type *creature_ptr);
 BIT_FLAGS has_see_nocto(player_type *creature_ptr);
-void has_warning(player_type *creature_ptr);
+BIT_FLAGS has_warning(player_type *creature_ptr);
 BIT_FLAGS has_anti_magic(player_type *creature_ptr);
 BIT_FLAGS has_anti_tele(player_type *creature_ptr);
 BIT_FLAGS has_sh_fire(player_type *creature_ptr);
index bfe9cae..cf1b939 100644 (file)
@@ -343,7 +343,7 @@ void calc_bonuses(player_type *creature_ptr)
     creature_ptr->dec_mana = has_dec_mana(creature_ptr);
     creature_ptr->reflect = has_reflect(creature_ptr);
     creature_ptr->see_nocto = has_see_nocto(creature_ptr);
-    has_warning(creature_ptr);
+    creature_ptr->warning = has_warning(creature_ptr);
     creature_ptr->anti_magic = has_anti_magic(creature_ptr);
     creature_ptr->anti_tele = has_anti_tele(creature_ptr);
     creature_ptr->sh_fire = has_sh_fire(creature_ptr);
index 69a7427..267a576 100644 (file)
@@ -439,7 +439,7 @@ typedef struct player_type {
     BIT_FLAGS dec_mana;
     BIT_FLAGS easy_spell;
     BIT_FLAGS heavy_spell;
-    bool warning;
+    BIT_FLAGS warning;
     BIT_FLAGS mighty_throw;
     BIT_FLAGS see_nocto; /* Noctovision */
     bool invoking_midnight_curse;