OSDN Git Service

has_*がBIT_FLAGSを返しているのでif()内の判定で使うのがboolとなるよう修正
authordaradarach <daradarach@gmail.com>
Sun, 6 Feb 2022 01:34:00 +0000 (10:34 +0900)
committerdaradarach <daradarach@gmail.com>
Sun, 6 Feb 2022 01:34:00 +0000 (10:34 +0900)
src/player/player-status-resist.cpp

index 6d874f0..7c4fb8f 100644 (file)
@@ -475,12 +475,12 @@ PERCENTAGE calc_void_damage_rate(PlayerType *player_ptr, rate_calc_type_mode mod
 {
     (void)mode; // unused
     PERCENTAGE per = 100;
-    if (has_pass_wall(player_ptr)) {
+    if (has_pass_wall(player_ptr) == 0) {
         per = per * 3 / 2;
-    } else if (has_anti_tele(player_ptr)) {
+    } else if (has_anti_tele(player_ptr) == 0) {
         per *= 400;
         per /= randrate(4, 7, mode);
-    } else if (has_levitation(player_ptr)) {
+    } else if (has_levitation(player_ptr) == 0) {
         per = (per * 2) / 3;
     }
     return per;
@@ -494,10 +494,10 @@ PERCENTAGE calc_abyss_damage_rate(PlayerType *player_ptr, rate_calc_type_mode mo
     (void)mode; // unused
     PERCENTAGE per = 100;
 
-    if (has_resist_dark(player_ptr)) {
+    if (has_resist_dark(player_ptr) == 0) {
         per *= 400;
         per /= randrate(4, 7, mode);
-    } else if (!has_levitation(player_ptr) && has_anti_tele(player_ptr)) {
+    } else if (!(has_levitation(player_ptr) == 0) && (has_anti_tele(player_ptr) == 0)) {
         per = (per * 5) / 4;
     }
     return per;