OSDN Git Service

資材が大きく減少したときに表示が桁あふれするのを直す
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Sun, 21 Aug 2016 13:20:50 +0000 (22:20 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Sun, 21 Aug 2016 13:20:50 +0000 (22:20 +0900)
KancolleSniffer/MainForm.cs

index 214d64e..276ff4c 100644 (file)
@@ -495,12 +495,8 @@ namespace KancolleSniffer
         private void UpdateBucketHistory()\r
         {\r
             var count = _sniffer.Material.MaterialHistory[(int)Material.Bucket];\r
-            var day = count.Now - count.BegOfDay;\r
-            var week = count.Now - count.BegOfWeek;\r
-            if (day >= 1000)\r
-                day = 999;\r
-            if (week >= 1000)\r
-                week = 999;\r
+            var day = CutOverflow(count.Now - count.BegOfDay, 999);\r
+            var week = CutOverflow(count.Now - count.BegOfWeek, 999);\r
             labelBucketHistory.Text = $"{day:+#;-#;±0} 今日\n{week:+#;-#;±0} 今週";\r
         }\r
 \r
@@ -511,19 +507,22 @@ namespace KancolleSniffer
             for (var i = 0; i < labels.Length; i++)\r
             {\r
                 var count = _sniffer.Material.MaterialHistory[i];\r
-                var port = count.Now - _sniffer.Material.PrevPort[i];\r
-                if (port >= 100000)\r
-                    port = 99999;\r
-                var day = count.Now - count.BegOfDay;\r
-                if (day >= 100000)\r
-                    day = 99999;\r
-                var week = count.Now - count.BegOfWeek;\r
-                if (week >= 100000)\r
-                    week = 99999;\r
+                var port = CutOverflow(count.Now - _sniffer.Material.PrevPort[i], 99999);\r
+                var day = CutOverflow(count.Now - count.BegOfDay, 99999);\r
+                var week = CutOverflow(count.Now - count.BegOfWeek, 99999);\r
                 labels[i].Text = $"{text[i]}\n{port:+#;-#;±0}\n{day:+#;-#;±0}\n{week:+#;-#;±0}";\r
             }\r
         }\r
 \r
+        private int CutOverflow(int value, int limit)\r
+        {\r
+            if (value > limit)\r
+                return limit;\r
+            if (value < -limit)\r
+                return -limit;\r
+            return value;\r
+        }\r
+\r
         private void UpdateShipInfo()\r
         {\r
             UpdatePanelShipInfo();\r