author Steinar H. Gunderson Thu, 17 Feb 2005 19:12:00 +0000 (19:12 +0000) committer Steinar H. Gunderson Thu, 17 Feb 2005 19:12:00 +0000 (19:12 +0000)

@@ -63,7 +63,7 @@ for my \$score (@\$scores) {
\$player = \$score->{'nick'};
push @\$pl, { player => \$score->{'player'}, nick => \$player, songs => [], total => 0, rank => 1 };
}
-
+
push @{\$pl->[\$#\$pl]->{'songs'}}, \$score;

if (defined(\$score->{'score'})) {
@@ -71,6 +71,24 @@ for my \$score (@\$scores) {
}
}

+# Find the rank of all the players in every group, via simple insertion-like
+# sort
+for my \$r (@rounds) {
+       for my \$p (@{\$r->{'parallels'}}) {
+               my \$pls = \$p->{'players'};
+               for my \$i (0..\$#\$pls) {
+                       my \$rank = 1;
+                       for my \$j (0..(\$i-1)) {
+                               if (\$pls->[\$i]->{'total'} < \$pls->[\$j]->{'total'}) {
+                                       \$pls->[\$i]->{'rank'}++;
+                               } elsif (\$pls->[\$i]->{'total'} > \$pls->[\$j]->{'total'}) {
+                                       \$pls->[\$j]->{'rank'}++;
+                               }
+                       }
+               }
+       }
+}
+
# FIXME: In some odd cases, there _might_ be an empty group right at the end. Fix this when
#        we are able to add/delete people in groups.