OSDN Git Service

Merge pull request #750 from iks3/fix-autopick-judge-element-realms
[hengbandforosx/hengbandosx.git] / src / player / player-status-flags.cpp
index 14c035c..eaf812f 100644 (file)
@@ -377,7 +377,7 @@ BIT_FLAGS get_player_flags(player_type *creature_ptr, tr_type tr_flag)
     case TR_COWARDICE:
     case TR_LOW_MELEE:
     case TR_LOW_AC:
-    case TR_LOW_MAGIC:
+    case TR_HARD_SPELL:
     case TR_FAST_DIGEST:
     case TR_SLOW_REGEN:
         return check_equipment_flags(creature_ptr, tr_flag);
@@ -479,7 +479,7 @@ BIT_FLAGS has_infra_vision(player_type *creature_ptr)
     if (tmp_rp_ptr->infra > 0)
         result |= FLAG_CAUSE_RACE;
 
-    if (creature_ptr->muta3 & MUT3_INFRAVIS)
+    if (creature_ptr->muta.has(MUTA::INFRAVIS))
         result |= FLAG_CAUSE_MUTATION;
 
     if (creature_ptr->tim_infra)
@@ -631,7 +631,7 @@ BIT_FLAGS has_esp_telepathy(player_type *creature_ptr)
         result |= FLAG_CAUSE_BATTLE_FORM;
     }
 
-    if (creature_ptr->muta3 & MUT3_ESP) {
+    if (creature_ptr->muta.has(MUTA::ESP)) {
         result |= FLAG_CAUSE_MUTATION;
     }
 
@@ -689,8 +689,15 @@ void check_no_flowed(player_type *creature_ptr)
 
     creature_ptr->no_flowed = FALSE;
 
-    if (has_pass_wall(creature_ptr) && !has_kill_wall(creature_ptr))
+    if (has_pass_wall(creature_ptr) && !has_kill_wall(creature_ptr)) {
         creature_ptr->no_flowed = TRUE;
+        return;
+    }
+
+    if (!creature_ptr->realm1) {
+        creature_ptr->no_flowed = FALSE;
+        return;
+    }
 
     for (int i = 0; i < INVEN_PACK; i++) {
         if ((creature_ptr->inventory_list[i].tval == TV_NATURE_BOOK) && (creature_ptr->inventory_list[i].sval == 2))
@@ -797,7 +804,7 @@ BIT_FLAGS has_sh_fire(player_type *creature_ptr)
 {
     BIT_FLAGS result = 0L;
 
-    if (creature_ptr->muta3 & MUT3_FIRE_BODY) {
+    if (creature_ptr->muta.has(MUTA::FIRE_BODY)) {
         result |= FLAG_CAUSE_MUTATION;
     }
 
@@ -821,7 +828,7 @@ BIT_FLAGS has_sh_elec(player_type *creature_ptr)
 {
     BIT_FLAGS result = 0L;
 
-    if (creature_ptr->muta3 & MUT3_ELEC_TOUC)
+    if (creature_ptr->muta.has(MUTA::ELEC_TOUC))
         result |= FLAG_CAUSE_MUTATION;
 
     if (hex_spelling(creature_ptr, HEX_SHOCK_CLOAK) || creature_ptr->ult_res) {
@@ -940,7 +947,7 @@ BIT_FLAGS has_free_act(player_type *creature_ptr)
 {
     BIT_FLAGS result = 0L;
 
-    if (creature_ptr->muta3 & MUT3_MOTION)
+    if (creature_ptr->muta.has(MUTA::MOTION))
         result |= FLAG_CAUSE_MUTATION;
 
     if (is_specific_player_race(creature_ptr, RACE_GNOME) || is_specific_player_race(creature_ptr, RACE_GOLEM)
@@ -1110,7 +1117,7 @@ BIT_FLAGS has_levitation(player_type *creature_ptr)
 {
     BIT_FLAGS result = 0L;
 
-    if (creature_ptr->muta3 & MUT3_WINGS) {
+    if (creature_ptr->muta.has(MUTA::WINGS)) {
         result |= FLAG_CAUSE_MUTATION;
     }
 
@@ -1216,7 +1223,7 @@ BIT_FLAGS has_regenerate(player_type *creature_ptr)
         result |= FLAG_CAUSE_RACE;
     }
 
-    if (creature_ptr->muta3 & MUT3_REGEN)
+    if (creature_ptr->muta.has(MUTA::REGEN))
         result |= FLAG_CAUSE_MUTATION;
 
     if (creature_ptr->special_defense & KATA_MUSOU) {
@@ -1229,7 +1236,7 @@ BIT_FLAGS has_regenerate(player_type *creature_ptr)
 
     result |= check_equipment_flags(creature_ptr, TR_REGEN);
 
-    if (creature_ptr->muta3 & MUT3_FLESH_ROT)
+    if (creature_ptr->muta.has(MUTA::FLESH_ROT))
         result = 0L;
 
     return result;
@@ -1277,8 +1284,8 @@ void update_curses(player_type *creature_ptr)
             creature_ptr->cursed |= TRC_LOW_MELEE;
         if (has_flag(flgs, TR_LOW_AC))
             creature_ptr->cursed |= TRC_LOW_AC;
-        if (has_flag(flgs, TR_LOW_MAGIC))
-            creature_ptr->cursed |= TRC_LOW_MAGIC;
+        if (has_flag(flgs, TR_HARD_SPELL))
+            creature_ptr->cursed |= TRC_HARD_SPELL;
         if (has_flag(flgs, TR_FAST_DIGEST))
             creature_ptr->cursed |= TRC_FAST_DIGEST;
         if (has_flag(flgs, TR_SLOW_REGEN))
@@ -1369,7 +1376,7 @@ BIT_FLAGS has_resist_acid(player_type *creature_ptr)
 BIT_FLAGS has_vuln_acid(player_type *creature_ptr)
 {
     BIT_FLAGS result = 0L;
-    if (creature_ptr->muta3 & MUT3_VULN_ELEM) {
+    if (creature_ptr->muta.has(MUTA::VULN_ELEM)) {
         result |= FLAG_CAUSE_MUTATION;
     }
 
@@ -1408,7 +1415,7 @@ BIT_FLAGS has_resist_elec(player_type *creature_ptr)
 BIT_FLAGS has_vuln_elec(player_type *creature_ptr)
 {
     BIT_FLAGS result = 0L;
-    if (creature_ptr->muta3 & MUT3_VULN_ELEM) {
+    if (creature_ptr->muta.has(MUTA::VULN_ELEM)) {
         result |= FLAG_CAUSE_MUTATION;
     }
 
@@ -1457,7 +1464,7 @@ BIT_FLAGS has_resist_fire(player_type *creature_ptr)
 BIT_FLAGS has_vuln_fire(player_type *creature_ptr)
 {
     BIT_FLAGS result = 0L;
-    if (creature_ptr->muta3 & MUT3_VULN_ELEM) {
+    if (creature_ptr->muta.has(MUTA::VULN_ELEM)) {
         result |= FLAG_CAUSE_MUTATION;
     }
 
@@ -1510,7 +1517,7 @@ BIT_FLAGS has_resist_cold(player_type *creature_ptr)
 BIT_FLAGS has_vuln_cold(player_type *creature_ptr)
 {
     BIT_FLAGS result = 0L;
-    if (creature_ptr->muta3 & MUT3_VULN_ELEM) {
+    if (creature_ptr->muta.has(MUTA::VULN_ELEM)) {
         result |= FLAG_CAUSE_MUTATION;
     }
 
@@ -1853,7 +1860,7 @@ BIT_FLAGS has_resist_fear(player_type *creature_ptr)
 {
     BIT_FLAGS result = 0L;
 
-    if (creature_ptr->muta3 & MUT3_FEARLESS)
+    if (creature_ptr->muta.has(MUTA::FEARLESS))
         result |= FLAG_CAUSE_MUTATION;
 
     switch (creature_ptr->pclass) {
@@ -2166,7 +2173,7 @@ bool has_not_monk_weapon(player_type *creature_ptr, int i)
 
 bool has_good_luck(player_type *creature_ptr)
 {
-    return (creature_ptr->pseikaku == PERSONALITY_LUCKY) || (creature_ptr->muta3 & MUT3_GOOD_LUCK);
+    return (creature_ptr->pseikaku == PERSONALITY_LUCKY) || (creature_ptr->muta.has(MUTA::GOOD_LUCK));
 }
 
 BIT_FLAGS player_aggravate_state(player_type *creature_ptr)