OSDN Git Service

[Refactor] shoot.cのBIT_FLAGS演算をマクロを用いて整理
authordis- <dis.rogue@gmail.com>
Sat, 20 Feb 2021 11:29:06 +0000 (20:29 +0900)
committerdis- <dis.rogue@gmail.com>
Sat, 20 Feb 2021 11:42:16 +0000 (20:42 +0900)
可読性確保のため。このコミットでは動作をほぼ変更しない。
ただし826行はフラグ反転していたので、この機会に修正する。

src/combat/shoot.c

index 4bde8d5..fd605b0 100644 (file)
@@ -85,146 +85,146 @@ static MULTIPLY calc_shot_damage_with_slay(player_type *sniper_ptr, object_type
     case TV_SHOT:
     case TV_ARROW:
     case TV_BOLT: {
-        if ((has_flag(flgs, TR_SLAY_ANIMAL)) && (r_ptr->flags3 & RF3_ANIMAL)) {
+        if ((has_flag(flgs, TR_SLAY_ANIMAL)) && (test_bit(r_ptr->flags3, RF3_ANIMAL))) {
             if (is_original_ap_and_seen(sniper_ptr, m_ptr)) {
-                r_ptr->r_flags3 |= RF3_ANIMAL;
+                set_bit(r_ptr->r_flags3, RF3_ANIMAL);
             }
             if (mult < 17)
                 mult = 17;
         }
 
-        if ((has_flag(flgs, TR_KILL_ANIMAL)) && (r_ptr->flags3 & RF3_ANIMAL)) {
+        if ((has_flag(flgs, TR_KILL_ANIMAL)) && (test_bit(r_ptr->flags3, RF3_ANIMAL))) {
             if (is_original_ap_and_seen(sniper_ptr, m_ptr)) {
-                r_ptr->r_flags3 |= RF3_ANIMAL;
+                set_bit(r_ptr->r_flags3, RF3_ANIMAL);
             }
             if (mult < 27)
                 mult = 27;
         }
 
-        if ((has_flag(flgs, TR_SLAY_EVIL)) && (r_ptr->flags3 & RF3_EVIL)) {
+        if ((has_flag(flgs, TR_SLAY_EVIL)) && (test_bit(r_ptr->flags3, RF3_EVIL))) {
             if (is_original_ap_and_seen(sniper_ptr, m_ptr)) {
-                r_ptr->r_flags3 |= RF3_EVIL;
+                set_bit(r_ptr->r_flags3, RF3_EVIL);
             }
             if (mult < 15)
                 mult = 15;
         }
 
-        if ((has_flag(flgs, TR_KILL_EVIL)) && (r_ptr->flags3 & RF3_EVIL)) {
+        if ((has_flag(flgs, TR_KILL_EVIL)) && (test_bit(r_ptr->flags3, RF3_EVIL))) {
             if (is_original_ap_and_seen(sniper_ptr, m_ptr)) {
-                r_ptr->r_flags3 |= RF3_EVIL;
+                set_bit(r_ptr->r_flags3, RF3_EVIL);
             }
             if (mult < 25)
                 mult = 25;
         }
 
-        if ((has_flag(flgs, TR_SLAY_HUMAN)) && (r_ptr->flags2 & RF2_HUMAN)) {
+        if ((has_flag(flgs, TR_SLAY_HUMAN)) && (test_bit(r_ptr->flags2, RF2_HUMAN))) {
             if (is_original_ap_and_seen(sniper_ptr, m_ptr)) {
-                r_ptr->r_flags2 |= RF2_HUMAN;
+                set_bit(r_ptr->r_flags2, RF2_HUMAN);
             }
             if (mult < 17)
                 mult = 17;
         }
 
-        if ((has_flag(flgs, TR_KILL_HUMAN)) && (r_ptr->flags2 & RF2_HUMAN)) {
+        if ((has_flag(flgs, TR_KILL_HUMAN)) && (test_bit(r_ptr->flags2, RF2_HUMAN))) {
             if (is_original_ap_and_seen(sniper_ptr, m_ptr)) {
-                r_ptr->r_flags2 |= RF2_HUMAN;
+                set_bit(r_ptr->r_flags2, RF2_HUMAN);
             }
             if (mult < 27)
                 mult = 27;
         }
 
-        if ((has_flag(flgs, TR_SLAY_UNDEAD)) && (r_ptr->flags3 & RF3_UNDEAD)) {
+        if ((has_flag(flgs, TR_SLAY_UNDEAD)) && (test_bit(r_ptr->flags3, RF3_UNDEAD))) {
             if (is_original_ap_and_seen(sniper_ptr, m_ptr)) {
-                r_ptr->r_flags3 |= RF3_UNDEAD;
+                set_bit(r_ptr->r_flags3, RF3_UNDEAD);
             }
             if (mult < 20)
                 mult = 20;
         }
 
-        if ((has_flag(flgs, TR_KILL_UNDEAD)) && (r_ptr->flags3 & RF3_UNDEAD)) {
+        if ((has_flag(flgs, TR_KILL_UNDEAD)) && (test_bit(r_ptr->flags3, RF3_UNDEAD))) {
             if (is_original_ap_and_seen(sniper_ptr, m_ptr)) {
-                r_ptr->r_flags3 |= RF3_UNDEAD;
+                set_bit(r_ptr->r_flags3, RF3_UNDEAD);
             }
             if (mult < 30)
                 mult = 30;
         }
 
-        if ((has_flag(flgs, TR_SLAY_DEMON)) && (r_ptr->flags3 & RF3_DEMON)) {
+        if ((has_flag(flgs, TR_SLAY_DEMON)) && (test_bit(r_ptr->flags3, RF3_DEMON))) {
             if (is_original_ap_and_seen(sniper_ptr, m_ptr)) {
-                r_ptr->r_flags3 |= RF3_DEMON;
+                set_bit(r_ptr->r_flags3, RF3_DEMON);
             }
             if (mult < 20)
                 mult = 20;
         }
 
-        if ((has_flag(flgs, TR_KILL_DEMON)) && (r_ptr->flags3 & RF3_DEMON)) {
+        if ((has_flag(flgs, TR_KILL_DEMON)) && (test_bit(r_ptr->flags3, RF3_DEMON))) {
             if (is_original_ap_and_seen(sniper_ptr, m_ptr)) {
-                r_ptr->r_flags3 |= RF3_DEMON;
+                set_bit(r_ptr->r_flags3, RF3_DEMON);
             }
             if (mult < 30)
                 mult = 30;
         }
 
-        if ((has_flag(flgs, TR_SLAY_ORC)) && (r_ptr->flags3 & RF3_ORC)) {
+        if ((has_flag(flgs, TR_SLAY_ORC)) && (test_bit(r_ptr->flags3, RF3_ORC))) {
             if (is_original_ap_and_seen(sniper_ptr, m_ptr)) {
-                r_ptr->r_flags3 |= RF3_ORC;
+                set_bit(r_ptr->r_flags3, RF3_ORC);
             }
             if (mult < 20)
                 mult = 20;
         }
 
-        if ((has_flag(flgs, TR_KILL_ORC)) && (r_ptr->flags3 & RF3_ORC)) {
+        if ((has_flag(flgs, TR_KILL_ORC)) && (test_bit(r_ptr->flags3, RF3_ORC))) {
             if (is_original_ap_and_seen(sniper_ptr, m_ptr)) {
-                r_ptr->r_flags3 |= RF3_ORC;
+                set_bit(r_ptr->r_flags3, RF3_ORC);
             }
             if (mult < 30)
                 mult = 30;
         }
 
-        if ((has_flag(flgs, TR_SLAY_TROLL)) && (r_ptr->flags3 & RF3_TROLL)) {
+        if ((has_flag(flgs, TR_SLAY_TROLL)) && (test_bit(r_ptr->flags3, RF3_TROLL))) {
             if (is_original_ap_and_seen(sniper_ptr, m_ptr)) {
-                r_ptr->r_flags3 |= RF3_TROLL;
+                set_bit(r_ptr->r_flags3, RF3_TROLL);
             }
 
             if (mult < 20)
                 mult = 20;
         }
 
-        if ((has_flag(flgs, TR_KILL_TROLL)) && (r_ptr->flags3 & RF3_TROLL)) {
+        if ((has_flag(flgs, TR_KILL_TROLL)) && (test_bit(r_ptr->flags3, RF3_TROLL))) {
             if (is_original_ap_and_seen(sniper_ptr, m_ptr)) {
-                r_ptr->r_flags3 |= RF3_TROLL;
+                set_bit(r_ptr->r_flags3, RF3_TROLL);
             }
             if (mult < 30)
                 mult = 30;
         }
 
-        if ((has_flag(flgs, TR_SLAY_GIANT)) && (r_ptr->flags3 & RF3_GIANT)) {
+        if ((has_flag(flgs, TR_SLAY_GIANT)) && (test_bit(r_ptr->flags3, RF3_GIANT))) {
             if (is_original_ap_and_seen(sniper_ptr, m_ptr)) {
-                r_ptr->r_flags3 |= RF3_GIANT;
+                set_bit(r_ptr->r_flags3, RF3_GIANT);
             }
             if (mult < 20)
                 mult = 20;
         }
 
-        if ((has_flag(flgs, TR_KILL_GIANT)) && (r_ptr->flags3 & RF3_GIANT)) {
+        if ((has_flag(flgs, TR_KILL_GIANT)) && (test_bit(r_ptr->flags3, RF3_GIANT))) {
             if (is_original_ap_and_seen(sniper_ptr, m_ptr)) {
-                r_ptr->r_flags3 |= RF3_GIANT;
+                set_bit(r_ptr->r_flags3, RF3_GIANT);
             }
             if (mult < 30)
                 mult = 30;
         }
 
-        if ((has_flag(flgs, TR_SLAY_DRAGON)) && (r_ptr->flags3 & RF3_DRAGON)) {
+        if ((has_flag(flgs, TR_SLAY_DRAGON)) && (test_bit(r_ptr->flags3, RF3_DRAGON))) {
             if (is_original_ap_and_seen(sniper_ptr, m_ptr)) {
-                r_ptr->r_flags3 |= RF3_DRAGON;
+                set_bit(r_ptr->r_flags3, RF3_DRAGON);
             }
             if (mult < 20)
                 mult = 20;
         }
 
-        if ((has_flag(flgs, TR_KILL_DRAGON)) && (r_ptr->flags3 & RF3_DRAGON)) {
+        if ((has_flag(flgs, TR_KILL_DRAGON)) && (test_bit(r_ptr->flags3, RF3_DRAGON))) {
             if (is_original_ap_and_seen(sniper_ptr, m_ptr)) {
-                r_ptr->r_flags3 |= RF3_DRAGON;
+                set_bit(r_ptr->r_flags3, RF3_DRAGON);
             }
             if (mult < 30)
                 mult = 30;
@@ -234,9 +234,9 @@ static MULTIPLY calc_shot_damage_with_slay(player_type *sniper_ptr, object_type
 
         if (has_flag(flgs, TR_BRAND_ACID)) {
             /* Notice immunity */
-            if (r_ptr->flagsr & RFR_EFF_IM_ACID_MASK) {
+            if (test_bit(r_ptr->flagsr, RFR_EFF_IM_ACID_MASK)) {
                 if (is_original_ap_and_seen(sniper_ptr, m_ptr)) {
-                    r_ptr->r_flagsr |= (r_ptr->flagsr & RFR_EFF_IM_ACID_MASK);
+                    set_bit(r_ptr->r_flagsr, (r_ptr->flagsr & RFR_EFF_IM_ACID_MASK));
                 }
             } else {
                 if (mult < 17)
@@ -246,9 +246,9 @@ static MULTIPLY calc_shot_damage_with_slay(player_type *sniper_ptr, object_type
 
         if (has_flag(flgs, TR_BRAND_ELEC)) {
             /* Notice immunity */
-            if (r_ptr->flagsr & RFR_EFF_IM_ELEC_MASK) {
+            if (test_bit(r_ptr->flagsr, RFR_EFF_IM_ELEC_MASK)) {
                 if (is_original_ap_and_seen(sniper_ptr, m_ptr)) {
-                    r_ptr->r_flagsr |= (r_ptr->flagsr & RFR_EFF_IM_ELEC_MASK);
+                    set_bit(r_ptr->r_flagsr, (r_ptr->flagsr & RFR_EFF_IM_ELEC_MASK));
                 }
             } else {
                 if (mult < 17)
@@ -258,18 +258,18 @@ static MULTIPLY calc_shot_damage_with_slay(player_type *sniper_ptr, object_type
 
         if (has_flag(flgs, TR_BRAND_FIRE)) {
             /* Notice immunity */
-            if (r_ptr->flagsr & RFR_EFF_IM_FIRE_MASK) {
+            if (test_bit(r_ptr->flagsr, RFR_EFF_IM_FIRE_MASK)) {
                 if (is_original_ap_and_seen(sniper_ptr, m_ptr)) {
-                    r_ptr->r_flagsr |= (r_ptr->flagsr & RFR_EFF_IM_FIRE_MASK);
+                    set_bit(r_ptr->r_flagsr, (r_ptr->flagsr & RFR_EFF_IM_FIRE_MASK));
                 }
             }
             /* Otherwise, take the damage */
             else {
-                if (r_ptr->flags3 & RF3_HURT_FIRE) {
+                if (test_bit(r_ptr->flags3, RF3_HURT_FIRE)) {
                     if (mult < 25)
                         mult = 25;
                     if (is_original_ap_and_seen(sniper_ptr, m_ptr)) {
-                        r_ptr->r_flags3 |= RF3_HURT_FIRE;
+                        set_bit(r_ptr->r_flags3, RF3_HURT_FIRE);
                     }
                 } else if (mult < 17)
                     mult = 17;
@@ -278,18 +278,18 @@ static MULTIPLY calc_shot_damage_with_slay(player_type *sniper_ptr, object_type
 
         if (has_flag(flgs, TR_BRAND_COLD)) {
             /* Notice immunity */
-            if (r_ptr->flagsr & RFR_EFF_IM_COLD_MASK) {
+            if (test_bit(r_ptr->flagsr, RFR_EFF_IM_COLD_MASK)) {
                 if (is_original_ap_and_seen(sniper_ptr, m_ptr)) {
-                    r_ptr->r_flagsr |= (r_ptr->flagsr & RFR_EFF_IM_COLD_MASK);
+                    set_bit(r_ptr->r_flagsr, (r_ptr->flagsr & RFR_EFF_IM_COLD_MASK));
                 }
             }
             /* Otherwise, take the damage */
             else {
-                if (r_ptr->flags3 & RF3_HURT_COLD) {
+                if (test_bit(r_ptr->flags3, RF3_HURT_COLD)) {
                     if (mult < 25)
                         mult = 25;
                     if (is_original_ap_and_seen(sniper_ptr, m_ptr)) {
-                        r_ptr->r_flags3 |= RF3_HURT_COLD;
+                        set_bit(r_ptr->r_flags3, RF3_HURT_COLD);
                     }
                 } else if (mult < 17)
                     mult = 17;
@@ -298,9 +298,9 @@ static MULTIPLY calc_shot_damage_with_slay(player_type *sniper_ptr, object_type
 
         if (has_flag(flgs, TR_BRAND_POIS)) {
             /* Notice immunity */
-            if (r_ptr->flagsr & RFR_EFF_IM_POIS_MASK) {
+            if (test_bit(r_ptr->flagsr, RFR_EFF_IM_POIS_MASK)) {
                 if (is_original_ap_and_seen(sniper_ptr, m_ptr)) {
-                    r_ptr->r_flagsr |= (r_ptr->flagsr & RFR_EFF_IM_POIS_MASK);
+                    set_bit(r_ptr->r_flagsr, r_ptr->flagsr & RFR_EFF_IM_POIS_MASK);
                 }
             }
             /* Otherwise, take the damage */
@@ -312,7 +312,7 @@ static MULTIPLY calc_shot_damage_with_slay(player_type *sniper_ptr, object_type
 
         if ((has_flag(flgs, TR_FORCE_WEAPON)) && (sniper_ptr->csp > (sniper_ptr->msp / 30))) {
             sniper_ptr->csp -= (1 + (sniper_ptr->msp / 30));
-            sniper_ptr->redraw |= (PR_MANA);
+            set_bit(sniper_ptr->redraw, PR_MANA);
             mult = mult * 5 / 2;
         }
         break;
@@ -514,11 +514,11 @@ void exe_fire(player_type *shooter_ptr, INVENTORY_IDX item, object_type *j_ptr,
                 g_ptr = &shooter_ptr->current_floor_ptr->grid_array[ny][nx];
 
                 if (cave_has_flag_grid(g_ptr, FF_HURT_ROCK) && !g_ptr->m_idx) {
-                    if (g_ptr->info & (CAVE_MARK))
+                    if (test_bit(g_ptr->info, (CAVE_MARK)))
                         msg_print(_("岩が砕け散った。", "Wall rocks were shattered."));
                     /* Forget the wall */
-                    g_ptr->info &= ~(CAVE_MARK);
-                    shooter_ptr->update |= (PU_VIEW | PU_LITE | PU_FLOW | PU_MON_LITE);
+                    reset_bit(g_ptr->info, (CAVE_MARK));
+                    set_bit(shooter_ptr->update, PU_VIEW | PU_LITE | PU_FLOW | PU_MON_LITE);
 
                     /* Destroy the wall */
                     cave_alter_feat(shooter_ptr, ny, nx, FF_HURT_ROCK);
@@ -537,7 +537,7 @@ void exe_fire(player_type *shooter_ptr, INVENTORY_IDX item, object_type *j_ptr,
 
             /* Sniper */
             if (snipe_type == SP_LITE) {
-                shooter_ptr->current_floor_ptr->grid_array[ny][nx].info |= (CAVE_GLOW);
+                set_bit(shooter_ptr->current_floor_ptr->grid_array[ny][nx].info, CAVE_GLOW);
                 note_spot(shooter_ptr, ny, nx);
                 lite_spot(shooter_ptr, ny, nx);
             }
@@ -573,7 +573,7 @@ void exe_fire(player_type *shooter_ptr, INVENTORY_IDX item, object_type *j_ptr,
 
             /* Sniper */
             if (snipe_type == SP_EVILNESS) {
-                shooter_ptr->current_floor_ptr->grid_array[ny][nx].info &= ~(CAVE_GLOW | CAVE_MARK);
+                reset_bit(shooter_ptr->current_floor_ptr->grid_array[ny][nx].info, (CAVE_GLOW | CAVE_MARK));
                 note_spot(shooter_ptr, ny, nx);
                 lite_spot(shooter_ptr, ny, nx);
             }
@@ -599,9 +599,9 @@ void exe_fire(player_type *shooter_ptr, INVENTORY_IDX item, object_type *j_ptr,
                 hit_body = TRUE;
 
                 if (monster_csleep_remaining(m_ptr)) {
-                    if (!(r_ptr->flags3 & RF3_EVIL) || one_in_(5))
+                    if (!test_bit(r_ptr->flags3, RF3_EVIL) || one_in_(5))
                         chg_virtue(shooter_ptr, V_COMPASSION, -1);
-                    if (!(r_ptr->flags3 & RF3_EVIL) || one_in_(5))
+                    if (!test_bit(r_ptr->flags3, RF3_EVIL) || one_in_(5))
                         chg_virtue(shooter_ptr, V_HONOUR, -1);
                 }
 
@@ -618,7 +618,7 @@ void exe_fire(player_type *shooter_ptr, INVENTORY_IDX item, object_type *j_ptr,
                         else if (shooter_ptr->lev > 34)
                             amount = 2;
                         shooter_ptr->weapon_exp[0][j_ptr->sval] += amount;
-                        shooter_ptr->update |= (PU_BONUS);
+                        set_bit(shooter_ptr->update, PU_BONUS);
                     }
                 }
 
@@ -628,7 +628,7 @@ void exe_fire(player_type *shooter_ptr, INVENTORY_IDX item, object_type *j_ptr,
                             < r_info[shooter_ptr->current_floor_ptr->m_list[shooter_ptr->riding].r_idx].level)
                         && one_in_(2)) {
                         shooter_ptr->skill_exp[GINOU_RIDING] += 1;
-                        shooter_ptr->update |= (PU_BONUS);
+                        set_bit(shooter_ptr->update, PU_BONUS);
                     }
                 }
 
@@ -664,8 +664,8 @@ void exe_fire(player_type *shooter_ptr, INVENTORY_IDX item, object_type *j_ptr,
                     }
 
                     if (snipe_type == SP_NEEDLE) {
-                        if ((randint1(randint1(r_ptr->level / (3 + shooter_ptr->concent)) + (8 - shooter_ptr->concent)) == 1) && !(r_ptr->flags1 & RF1_UNIQUE)
-                            && !(r_ptr->flags7 & RF7_UNIQUE2)) {
+                        if ((randint1(randint1(r_ptr->level / (3 + shooter_ptr->concent)) + (8 - shooter_ptr->concent)) == 1) && !(test_bit(r_ptr->flags1, RF1_UNIQUE))
+                            && !(test_bit(r_ptr->flags7, RF7_UNIQUE2))) {
                             GAME_TEXT m_name[MAX_NLEN];
 
                             /* Get "the monster" or "it" */
@@ -702,7 +702,7 @@ void exe_fire(player_type *shooter_ptr, INVENTORY_IDX item, object_type *j_ptr,
 
                     /* Sniper */
                     if (snipe_type == SP_HOLYNESS) {
-                        shooter_ptr->current_floor_ptr->grid_array[ny][nx].info |= (CAVE_GLOW);
+                        set_bit(shooter_ptr->current_floor_ptr->grid_array[ny][nx].info, CAVE_GLOW);
                         note_spot(shooter_ptr, ny, nx);
                         lite_spot(shooter_ptr, ny, nx);
                     }
@@ -823,7 +823,7 @@ void exe_fire(player_type *shooter_ptr, INVENTORY_IDX item, object_type *j_ptr,
             object_copy(o_ptr, q_ptr);
 
             /* Forget mark */
-            o_ptr->marked &= OM_TOUCHED;
+            reset_bit(o_ptr->marked, OM_TOUCHED);
 
             /* Forget location */
             o_ptr->iy = o_ptr->ix = 0;
@@ -1187,4 +1187,4 @@ HIT_POINT calc_expect_crit(player_type *shooter_ptr, WEIGHT weight, int plus, HI
     }
 
     return num;
-}
\ No newline at end of file
+}