+ {
+ $message .= " ".$r[0]." ".$r[1]."\n";
+ if($r[0] == "re")
+ $re = $r[1];
+ else if($r[0] == "contra")
+ $contra = $r[1];
+ }
+ /* save score in database */
+ // get calls from re/contra
+ $call_re = NULL;
+ $call_contra = NULL;
+ foreach($userids as $user)
+ {
+ $hash = DB_get_hash_from_gameid_and_userid($gameid,$user);
+ $call = DB_get_call_by_hash($hash);
+ $party = DB_get_party_by_hash($hash);
+
+ if($call!=NULL)
+ {
+ $call = (int) $call;
+
+ if($party=="re")
+ {
+ if($call_re==NULL)
+ $call_re = $call;
+ else if( $call < $call_re)
+ $call_re = $call;
+ }
+ else if($party=="contra")
+ {
+ if($call_contra==NULL)
+ $call_contra = $call;
+ else if( $call < $call_re)
+ $call_contra = $call;
+ }
+ }
+ }
+ // no call, check 120:120
+ if($call_re == NULL && $call_contra==NULL)
+ if($re==120)
+ mysql_query("INSERT INTO Score".
+ " VALUES( NULL,NULL,$gameid,'contra',NULL,NULL,'againstqueens')");
+
+ // no call or one call do scoring
+ if($call_re != NULL && $call_contra!=NULL)
+ {
+ // two calls: not sure what to do yet
+ }
+ else
+ {
+ $offset = 0;
+
+ if($call_re!=NULL)
+ $offset = 120 - $call_re;
+ else if($call_contra!=NULL)
+ $offset = -1*(120 - $call_contra)-1;
+
+ if($call_re==0)
+ $offset -= 1;
+
+ if($call_contra==0)
+ $offset += 1;
+
+ if($re > 120 + $offset)
+ {
+ /* re won */
+
+ /* normal win */
+ foreach(array(120,150,180,210,240) as $p)
+ {
+ $offset = 0;
+ if($p==240)
+ $offset = 1;
+
+ if($re>$p-$offset)
+ mysql_query("INSERT INTO Score".
+ " VALUES( NULL,NULL,$gameid,'re',NULL,NULL,'".(240-$p)."')");
+ }
+
+ /* re called something and won */
+ if($call_re!=NULL)
+ foreach(array(0,30,60,90,120) as $p)
+ {
+ if($call_re<$p+1)
+ mysql_query("INSERT INTO Score".
+ " VALUES( NULL,NULL,$gameid,'re',NULL,NULL,'call$p')");
+ }
+ }
+ else
+ {
+ /* contra won */
+ mysql_query("INSERT INTO Score".
+ " VALUES( NULL,NULL,$gameid,'contra',NULL,NULL,'againstqueens')");
+
+ /* normal win */
+ foreach(array(120,150,180,210,240) as $p)
+ {
+ $offset = 0;
+ if($p==240)
+ $offset = 1;
+
+ if($re>$p-$offset)
+ mysql_query("INSERT INTO Score".
+ " VALUES( NULL,NULL,$gameid,'contra',NULL,NULL,'".(240-$p)."')");
+ }
+
+ /* contra called something and won */
+ if($call_contra!=NULL)
+ foreach(array(0,30,60,90,120) as $p)
+ {
+ if($call_contra<$p+1)
+ mysql_query("INSERT INTO Score".
+ " VALUES( NULL,NULL,$gameid,'contra',NULL,NULL,'call$p')");
+ }
+ }
+ }