highlight the call if this is the last round where you can make this call
[e-DoKo.git] / include / game.php
index f612b202870aec926035dedd1a9cfc4fe3319e77..de19cabb8b0c20b7a36bb4b3bedc5abdc9d20d3f 100644 (file)
@@ -67,7 +67,7 @@ if( $gamestatus == 'pre' )
 else
   {
     /* in a game Schweinchen is not valid in all types of games */
-    if( $gametype == 'normal' || $gametype == 'silent' || $gametype=='trump' || $gametype=='wedding')
+    if( in_array($gametype,array('normal','wedding','trump','silent') ))
       if( in_array($RULES['schweinchen'],array('both','second','secondaftercall')) )
        $ok=1;
   }
@@ -595,8 +595,8 @@ switch($mystatus)
        else if($nines)
          {
            /* cancel game */
-           $message = "the game has been canceled because ".DB_get_name('userid',$nines).
-             "has five or more nines and nobody is playing solo.\n\n".
+           $message = "The game has been canceled because ".DB_get_name('userid',$nines).
+             " has five or more nines and nobody is playing solo.\n\n".
              "To redeal either start a new game or, in case the game was part of a tournament,\n".
              "go to the last game and use the link at the bottom of the page to redeal.\n\n";
 
@@ -610,9 +610,10 @@ switch($mystatus)
            /* update game status */
            cancel_game('nines',$gameid);
 
-           echo "The game has been canceled because ".DB_get_name('userid',$nines).
-             " has five or more nines and nobody is playing solo.\n";
-           return;
+           echo "<p>The game has been canceled because ".DB_get_name('userid',$nines).
+             " has five or more nines and nobody is playing solo.</p>\n";
+           echo "</div>\n";
+           break;
          }
        else if($poverty==1) /* one person has poverty */
          {
@@ -957,8 +958,8 @@ switch($mystatus)
                /* update game status */
                cancel_game('trump',$gameid);
 
-               echo "<p style=\"background-color:red\";>Game ".DB_format_gameid($gameid)." has been canceled.<br /><br /></p>";
-               return;
+               echo "<p class=\"message\";>Game ".DB_format_gameid($gameid)." has been canceled.<br /><br /></p>";
+               break;
              }
            else
              {
@@ -1419,7 +1420,10 @@ switch($mystatus)
                $play   = DB_get_cards_by_trick($trickid);
                $winner = get_winner($play,$gametype); /* returns the position */
 
-               /* check if someone caught a fox */
+               /*
+                * check if someone caught a fox
+                *******************************/
+
                /* first check if we should account for solos at all,
                 * since it doesn't make sense in some games
                 */
@@ -1452,7 +1456,10 @@ switch($mystatus)
                          }
                    }
 
-               /* check for karlchen (jack of clubs in the last trick)*/
+               /*
+                * check for karlchen (jack of clubs in the last trick)
+                ******************************************************/
+
                /* same as for foxes, karlchen doesn't always make sense
                 * check what kind of game it is and set karlchen accordingly */
                $ok = 1; /* default: karlchen should be accounted for */
@@ -1477,7 +1484,10 @@ switch($mystatus)
                          DB_query("INSERT INTO Score".
                                   " VALUES( NULL,NULL,$gameid,'$party1',$uid1,NULL,'karlchen')");
                        }
-               /* check for doppelopf (>40 points)*/
+               /*
+                * check for doppelopf (>40 points)
+                ***********************************/
+
                $points = 0;
                foreach($play as $played)
                  {
@@ -1492,6 +1502,10 @@ switch($mystatus)
                             " VALUES( NULL,NULL,$gameid,'$party1',$uid1,NULL,'doko')");
                  }
 
+               /*
+                * set winner (for this trick)
+                */
+
                if($winner>0)
                  DB_query("UPDATE Trick SET winner='$winner' WHERE id='$trickid'");
                else
@@ -1915,11 +1929,17 @@ switch($mystatus)
             * also check if we have both schweinchen, in that case only display on of them as playable
             */
            if( ($followsuit && !same_type($card,$firstcard)) ||
-               ( (int)($card)==19 && !$GAME['schweinchen-first'] &&
-                 ($RULES['schweinchen']=='second'||
-                  ( $RULES['schweinchen']=='secondaftercall' &&
-                    (DB_get_call_by_hash($GAME['schweinchen-who']) || DB_get_partner_call_by_hash($GAME['schweinchen-who']) )))
-                 && $GAME['schweinchen-who']==$me  )
+               ( (int)($card)==19 &&
+                 !$GAME['schweinchen-first'] &&
+                 ( $RULES['schweinchen']=='second' ||
+                   ( $RULES['schweinchen']=='secondaftercall' &&
+                    (DB_get_call_by_hash($GAME['schweinchen-who']) ||
+                     DB_get_partner_call_by_hash($GAME['schweinchen-who']) )
+                   )
+                 ) &&
+                 $GAME['schweinchen-who']==$me &&
+                 in_array($gametype,array('normal','wedding','trump','silent'))
+                 )
                )
              display_card($card,$PREF['cardset']);
            else