From: CMDR furrycat Date: Mon, 8 Feb 2016 16:46:43 +0000 (-0500) Subject: Stack raced times. X-Git-Url: http://git.furryclan.net/?a=commitdiff_plain;h=40a9986cd30792b5a312fc40815c7a36bab57301;p=furrycat%2Frace-o-matic.git Stack raced times. --- diff --git a/lib/race.php b/lib/race.php index 33a7bc3..71b04f8 100644 --- a/lib/race.php +++ b/lib/race.php @@ -459,6 +459,13 @@ return $ret; } + function by_raced($a, $b) { + $A = 0; foreach ($a as $time) $A += $time; + $B = 0; foreach ($b as $time) $B += $time; + if ($A == $B) return 0; + return ($A < $B) ? 1 : -1; + } + function module_race($action, $args) { if ($_POST['add_race']) { if (add_race($_POST["name"], $_POST["allotted_time"])) unset($_POST); @@ -730,8 +737,8 @@ $ship = $entry->getShip(); $cmdr_name = $ship->getCompetitor()->getCmdrName(); $hull_name = $ship->getHull()->getName(); - if (! array_key_exists($cmdr_name, $time_raced)) $time_raced[$cmdr_name] = 0; - $time_raced[$cmdr_name] += $entry->getRacedTime(); + if (! array_key_exists($cmdr_name, $time_raced)) $time_raced[$cmdr_name] = array(); + $time_raced[$cmdr_name][] = $entry->getRacedTime(); $lap_count = $entry->getCompleteLaps(); $lap_count = sprintf("%d lap%s", $lap_count, ($lap_count == 1) ? "" : "s"); $lap_distance = format_distance($entry->getLapDistance()) . "Ly"; @@ -790,12 +797,7 @@ ) ); $raced_times = array( - "raced_times" => array( - "x" => array(), - "y" => array(), - "name" => "Time raced", - "type" => "bar" - ) + "raced_times" => array() ); $dbh = Propel::getConnection(); /* Average station to station speed. */ @@ -822,11 +824,18 @@ $laps["fastest_laps"]["x"][] = "Lap " . $row["lap_number"]; $laps["fastest_laps"]["y"][] = (int) $row["n"]; } - arsort($time_raced); - foreach ($time_raced as $cmdr_name => $time) { - $raced_times["raced_times"]["x"][] = $cmdr_name; - $raced_times["raced_times"]["y"][] = "2000-01-01 " . format_time($time); + uasort($time_raced, "by_raced"); + $raced_times_bars = array(); + foreach ($time_raced as $cmdr_name => $times) { + for ($n = 0; $n < count($times); $n++) { + $time = (int) $times[$n]; + if (count($raced_times_bars) <= $n) $raced_times_bars[] = array("x" => array(), "y" => array(), "name" => "Entry " . ($n + 1), "text" => array(), "type" => "bar"); + $raced_times_bars[$n]["x"][] = $cmdr_name; + $raced_times_bars[$n]["y"][] = $time; + $raced_times_bars[$n]["text"][] = format_time($time); + } } + $raced_times = $raced_times_bars; /* Time raced. */ echo "