minor cleanup
[e-DoKo.git] / index.php
index eded836ac1c86f532853864c5cecc121c2269720..7addf0ef375a7f371238ffda434f372b3c2fbef9 100644 (file)
--- a/index.php
+++ b/index.php
@@ -49,6 +49,7 @@ if(myisset("new"))
     if($EmailA=="" || $EmailB=="" || $EmailC=="" || $EmailD=="")
       {
        echo "couldn't find one of the names, please start a new game";
+       output_footer();
        exit();
       }
     
@@ -66,6 +67,7 @@ if(myisset("new"))
     if($ruleset <0) 
       {
        echo "Error defining ruleset: $ruleset";
+       output_footer();
        exit();
       };
     
@@ -157,6 +159,7 @@ else if(myisset("cancle","me"))
       {
        echo "Can't find you in the database, please check the url.<br />\n";
        echo "perhaps the game has been cancled, check by login in <a href=\"$host\">here</a>.";
+       output_footer();
        exit();
       }
     
@@ -203,6 +206,7 @@ else if(myisset("me"))
       {
        echo "Can't find you in the database, please check the url.<br />\n";
        echo "perhaps the game has been cancled, check by login in <a href=\"$host\">here</a>.";
+       output_footer();
        exit();
       }
     
@@ -214,21 +218,47 @@ else if(myisset("me"))
     $mystatus = DB_get_status_by_hash($me);
     $mypos    = DB_get_pos_by_hash($me);
     
-    /* display the game number */
-    echo "<p class=\"gamenumber\"> Game $gameid </p>\n";
 
     /* display rule set */
-    echo "<div class=\"ruleset\">\n Rules: <br />";
+    echo "<div class=\"ruleset\">\n";
     $result = mysql_query("SELECT * FROM Rulesets LEFT JOIN Game ON Game.ruleset=Rulesets.id WHERE Game.id='$gameid'" );
     $r      = mysql_fetch_array($result,MYSQL_NUM);
 
     $RULES["dullen"]=$r[2];
     $RULES["schweinchen"]=$r[3];
-
-    echo "10ofhearts : ".$r[2]."<br />";
-    echo "schweinchen: ".$r[3]."<br />";
+    
+    /* get some infos about the game */
+    $gametype = DB_get_gametype_by_gameid($gameid);
+    $gamestatus = DB_get_game_status_by_gameid($gameid);
+    $GT = $gametype;
+    if($gametype=="solo")
+      {
+       $gametype = DB_get_solo_by_gameid($gameid);
+       $GT = $gametype." ".$GT;
+      }
+    else
+      $gametype="normal";
+    
+    if($gamestatus != 'pre')
+      echo " Gametype: $GT <br />\n";
+    
+    echo "Rules: <br />\n";
+    echo "10ofhearts : ".$r[2]."<br />\n";
+    echo "schweinchen: ".$r[3]."<br />\n";
     echo "</div>\n";
     
+    /* does anyone have both foxes */
+    $GAME["schweinchen"]=0; 
+    for($i=1;$i<5;$i++)
+      {
+       $hash  = DB_get_hash_from_game_and_pos($gameid,$i);
+       $cards = DB_get_all_hand($hash);
+       if( in_array("19",$cards) && in_array("20",$cards) )
+         {
+           $GAME["schweinchen"]=1;
+           $GAME["schweinchen-who"]=$hash;
+         }
+      };
 
     /* mystatus gets the player through the different stages of a game.
      * start:    yes/no
@@ -400,6 +430,7 @@ else if(myisset("me"))
              
              /* delete everything from the dB */
              DB_cancel_game($me);
+             output_footer();
              exit();
            }
 
@@ -486,17 +517,16 @@ else if(myisset("me"))
                break;
              if($usersick == "solo" && $gametype =="solo")
                break;
-           };    
+                         
+           };
+
+         if( $gametype != "solo")
+           if($GAME["schweinchen"] && $RULES["schweinchen"]=="both" )
+             echo DB_get_name_by_hash($GAME["schweinchen-who"])." has Schweinchen. <br />";
+         
          echo "<br />\n";
          
-         /* check for Schweinchen (cards 21,22) */
-         if($RULES["schweinchen"]=="both")
-           {
-             set_gametype($gametype);
-             echo "TODO: check if one user has both foxes and output here ";
-           }    
-
-         /* finished the setup, go to next stage unless there is a case of poverty*/
+         /* finished the setup, set re/contra parties if possible, go to next stage unless there is a case of poverty*/
          switch($gametype)
            {
            case "solo":
@@ -509,7 +539,8 @@ else if(myisset("me"))
              DB_set_hand_status_by_hash($me,'play');
              break;
            case "wedding":
-             echo "Don't know who will be Re and Contra, you need to figure that out at the end of the game yourself <br />\n";
+             echo "Don't know who will be Re and Contra, you need to ".
+               "figure that out at the end of the game yourself <br />\n";
              DB_set_hand_status_by_hash($me,'play');
              break;
            case "normal":
@@ -522,8 +553,23 @@ else if(myisset("me"))
              DB_set_hand_status_by_hash($me,'play');
              break;
            case "poverty":
+             /* figure out who has poverty */
+             /* check who was asked already 
+              *   everyone or trump was taken? 
+              *      trump was taken, start game 
+              *      trump was not taken, cancle game
+              *
+              *   not everyone, figure out who is next in the list
+              *   is the next person this one?
+              *      no, display wait message, e.g. player X is asked at the moment
+              *      yes, display trump, ask if he wants to take it
+              *        no, set player asked to true, email next player
+              *        yes, display all cards, ask for N return cards
+              *          set re/contra 
+              *        
+              */
            case "dpoverty":
-             echo "TODO: handle poverty here";
+             echo "TODO: handle double poverty here";
              DB_set_hand_status_by_hash($me,'play');
            };
        }
@@ -567,37 +613,18 @@ else if(myisset("me"))
       else
        $gametype="normal";
       
-      set_gametype($gametype);
+      set_gametype($gametype); /* this sets the $CARDS variable */
       
       /* get some infos about the game */
       $gamestatus = DB_get_game_status_by_gameid($gameid);
       
       /* display useful things in divs */
       
-      /* display local time */
-      echo "<div class=\"time\">\n Local times:<table>";
-      $users = array();
-      $users = DB_get_all_userid_by_gameid($gameid);
-      foreach($users as $user)
-       {
-         $offset = DB_get_user_timezone($user);
-         $zone   = return_timezone($offset);
-         date_default_timezone_set($zone);
-         $name   = DB_get_name_by_userid($user);
-         
-         echo "<tr> <td>$name</td> <td>".date("Y-m-d H:i:s")."</td></tr>\n";
-       };
-      echo "</table>\n</div>\n";
-      
-      if($gamestatus != 'pre')
-       display_status($GT);
-      
       /* display links to the users status page */
       $result = mysql_query("SELECT email,password from User WHERE id='$myid'" );
       $r      = mysql_fetch_array($result,MYSQL_NUM);
-      output_link_to_user_page($r[0],$r[1]);
       
-      display_news();
+      display_links($r[0],$r[1]);
       
       /* end display useful things*/
       
@@ -611,7 +638,8 @@ else if(myisset("me"))
       
       /* display the table and the names */
       $result = mysql_query("SELECT  User.fullname as name,".
-                           "        Hand.position as position ".
+                           "        Hand.position as position, ".
+                           "        User.id ".
                            "FROM Hand ".
                            "LEFT JOIN User ON User.id=Hand.user_id ".
                            "WHERE Hand.game_id='".$gameid."' ".
@@ -623,11 +651,20 @@ else if(myisset("me"))
        {
          $name = $r[0];
          $pos  = $r[1];
-         
-         echo " <span class=\"table".($pos-1)."\">$name</span>\n";
+         $user = $r[2];
+
+         $offset = DB_get_user_timezone($user);
+         $zone   = return_timezone($offset);
+         date_default_timezone_set($zone);
+
+         echo " <span class=\"table".($pos-1)."\">\n";
+         echo " $name <br />\n";
+         echo " local time: ".date("Y-m-d H:i:s")."\n";
+         echo " </span>\n";
+
        }
       echo  "</div>\n";
-      
+
       /* get everything relevant to display the tricks */
       $result = mysql_query("SELECT Hand_Card.card_id as card,".
                            "       Hand.position as position,".
@@ -651,7 +688,7 @@ else if(myisset("me"))
       $firstcard = ""; /* first card in a trick */
       
       echo "\n<ul class=\"tricks\">\n";
-      echo "  <li> Hello $myname!   History: </li>\n";
+      echo "  <li class=\"nohighlight\"> Game $gameid: </li>\n";
       
       while($r = mysql_fetch_array($result,MYSQL_NUM))
        {
@@ -660,6 +697,10 @@ else if(myisset("me"))
          $trick   = $r[3];
          $comment = $r[4];
          
+         /* check if first schweinchen has been played */
+         if($r[0] == 19 || $r[0] == 20 )
+           $GAME["schweinchen"]++;
+         
          /* save card to be able to find the winner of the trick later */
          $play[$seq] = array("card"=>$r[0],"pos"=>$pos); 
          
@@ -669,14 +710,14 @@ else if(myisset("me"))
              if($trick!=$lasttrick)
                {
                  /* start of an old trick? */
-                 echo "  <li onclick=\"hl('$trickNR');\"><a href=\"#\">Trick $trickNR</a>\n".
+                 echo "  <li onclick=\"hl('$trickNR');\" class=\"old\"><a href=\"#\">Trick $trickNR</a>\n".
                    "    <div class=\"trick\" id=\"trick".$trickNR."\">\n".
                    "      <img class=\"arrow\" src=\"pics/arrow".($pos-1).".png\" alt=\"table\" />\n";
                }
              else if($trick==$lasttrick)
                {
                  /* start of a last trick? */
-                 echo "  <li onclick=\"hl('$trickNR');\"><a href=\"#\">Current Trick</a>\n".
+                 echo "  <li onclick=\"hl('$trickNR');\" class=\"current\"><a href=\"#\">Trick $trickNR</a>\n".
                    "    <div class=\"trick\" id=\"trick".$trickNR."\">\n".
                    "      <img class=\"arrow\" src=\"pics/arrow".($pos-1).".png\" alt=\"table\" />\n";
                };
@@ -744,10 +785,24 @@ else if(myisset("me"))
          
          if($handcardid)
            {
+             $comment = "";
+
              /* mark card as played */
              mysql_query("UPDATE Hand_Card SET played='true' WHERE hand_id='$handid' AND card_id=".
                          DB_quote_smart($card));
              
+             /* check for schweinchen */
+             echo "schweinchen = ".$GAME["schweinchen"]." --$card-<br />";
+             if($card == 19 || $card == 20 )
+               {
+                 $GAME["schweinchen"]++;
+                 if($GAME["schweinchen"]==3 && $RULES["schweinchen"]=="second" )
+                   $comment="Schweinchen! ";
+                 if($RULES["schweinchen"]=="both" )
+                   $comment="Schweinchen! ";
+                 echo "schweinchen = ".$GAME["schweinchen"]." ---<br />";
+               }
+
              /* get trick id or start new trick */
              $a = DB_get_current_trickid($gameid);
              $trickid  = $a[0];
@@ -758,9 +813,11 @@ else if(myisset("me"))
              /* check for coment */
              if(myisset("comment"))
                {
-                 DB_insert_comment($_REQUEST["comment"],$playid,$myid);
+                 $comment.=$_REQUEST["comment"];
                };  
-             
+             if($comment != "")
+               DB_insert_comment($comment,$playid,$myid);
+
              /* display played card */
              echo "<div class=\"card\">";
              echo " you played  <br />";
@@ -981,6 +1038,7 @@ else if(myisset("me"))
     default:
       echo "error in testing the status";
     }
+    output_footer();
   exit();
  } 
 /* user status page */ 
@@ -1020,7 +1078,7 @@ else if(myisset("me"))
             echo "<a href=\"".$host."?me=".$r[0]."\">game #".$r[1]." </a>";
             if(time()-strtotime($r[2]) > 60*60*24*30)
               echo " The game has been running for over a month.".
-                " Do you want to cancel it? <a href=\"$host?cancle=1&me=".$r[0]."\">yes</a>".
+                " Do you want to cancel it? <a href=\"$host?cancle=1&amp;me=".$r[0]."\">yes</a>".
                 " (clicking here is final and can't be restored)";
             echo "<br />";
           }
@@ -1045,6 +1103,7 @@ else if(myisset("me"))
        {
         echo "sorry email and password don't match <br />";
        }
+     output_footer();
      exit();
    }
 /* page for registration */
@@ -1082,7 +1141,14 @@ else if(myisset("me"))
 /* default login page */
  else
    { 
-     output_home_page();
+     $pre=0;$game=0;$done=0;
+     $r=mysql_query("SELECT COUNT(id) FROM Game GROUP BY status");
+     if($r) {
+       $pre = mysql_fetch_array($r,MYSQL_NUM);     
+       $game = mysql_fetch_array($r,MYSQL_NUM);     
+       $done = mysql_fetch_array($r,MYSQL_NUM);     
+     }
+     output_home_page($pre[0],$game[0],$done[0]);
    }
 
 output_footer();