Calculate bonus time properly.
authorCMDR furrycat <elite@furrycat.net>
Sun, 24 Jan 2016 15:58:31 +0000 (10:58 -0500)
committerCMDR furrycat <elite@furrycat.net>
Sun, 24 Jan 2016 15:58:31 +0000 (10:58 -0500)
entry.js

index 1f893a5..a0f20f5 100644 (file)
--- a/entry.js
+++ b/entry.js
@@ -245,24 +245,28 @@ function calculate_bonus(laps) {
   var hull_start = 0;
   var hull_end = 0;
   var last_hull = 100;
-  var repaired = false;
+  var race_ineligible = false;
   for (var lap = 1; lap <= laps; lap++) {
+    var lap_ineligible = false;
     var input = document.getElementById('lap' + String(lap) + 'hullstart');
     if (input.value.match(input.pattern)) {
       hull_start = parseInt(input.value);
-      if (hull_start > last_hull) repaired = true;
+      if (hull_start > last_hull) race_ineligible = true;
+      last_hull = hull_start;
     }
+    else lap_ineligible = race_ineligible = true;
     input = document.getElementById('lap' + String(lap) + 'hullend');
     if (input.value.match(input.pattern)) {
       hull_end = parseInt(input.value);
-      if (hull_end > last_hull) repaired = true;
+      if (hull_end > last_hull) lap_ineligible = race_ineligible = true;
       last_hull = hull_end;
-      if (hull_end > hull_start) repaired = true;
-      else time += Math.floor(hull_end / 2);
+      if (hull_end > hull_start) lap_ineligible = race_ineligible = true;
+      if (! lap_ineligible) time += Math.floor(hull_end / 2);
     }
+    else race_ineligible = true;
   }
   /* Double bonus if no repairs at all. */
-  if (! repaired) time *= 2;
+  if (! race_ineligible) time *= 2;
   return time;
 }