started on better mobile support
[e-DoKo.git] / include / game.php
index 03dd259430f448812017daf2f539b8898c5de414..dcabc678220d2f65f0924ed29bce0ce0dea2381d 100644 (file)
@@ -79,6 +79,9 @@ if( $gamestatus == 'pre' )
   {
     /* always need to use Schweinchen to figure out for example who has poverty */
     $ok=1;
+    /* unless the gametype is set and we know that we are in poverty were schweinchen is not valid */
+    if( in_array( $gametype,array('poverty','dpoverty') ))
+      $ok=0;
   }
 else
   {
@@ -118,7 +121,7 @@ set_gametype('normal');
 echo "<form action=\"index.php?action=game&amp;me=$me\" method=\"post\">\n";
 
 /* handle user notes (only possible while game is running)*/
-if( $mystatus!='gameover'  )
+if( $mystatus!='gameover' )
   if(myisset('note'))
     {
       $note = $_REQUEST['note'];
@@ -127,15 +130,6 @@ if( $mystatus!='gameover'  )
        DB_insert_note($note,$gameid,$myid);
     };
 
-/* make sure that we don't show the notes to the wrong person
- * (e.g. other people looking at an old game)
- */
-if( $mystatus != 'gameover' ||
-    (  $mystatus == 'gameover' &&
-       isset($_SESSION['id'])  &&
-       $myid == $_SESSION['id']))
-  output_user_notes($myid,$gameid,$mystatus);
-
 /* handle calls, output a comment to show when the call was made */
 /* initialize comments */
 $comment  =  '';
@@ -341,8 +335,7 @@ switch($mystatus)
            $userids = DB_get_all_userid_by_gameid($gameid);
            foreach($userids as $user)
              {
-               $subject = 'Game '.DB_format_gameid($gameid).' canceled';
-               mymail($user,$subject,$message);
+               mymail($user,$gameid,GAME_CANCELED,$message);
              }
 
            /* update game status */
@@ -391,7 +384,7 @@ switch($mystatus)
 
                     $message = "It's your turn now in game ".DB_format_gameid($gameid).".\n".
                     "Use this link to go the game: ".$HOST.$INDEX."?action=game&me=".$hash."\n\n" ;
-                    mymail($who,"Ready, set, go... (game ".DB_format_gameid($gameid).") ",$message);
+                    mymail($who, $gameid, GAME_READY,$message);
                    */
                  }
              }
@@ -666,8 +659,7 @@ switch($mystatus)
            $userids = DB_get_all_userid_by_gameid($gameid);
            foreach($userids as $user)
              {
-               $subject = 'Game '.DB_format_gameid($gameid).' canceled';
-               mymail($user,$subject,$message);
+               mymail($user,$gameid, GAME_CANCELED, $message);
              }
 
            echo "</div>\n"; /* end div message */
@@ -804,8 +796,7 @@ switch($mystatus)
                    /* email startplayer */
                    $message = "It's your turn now in game ".DB_format_gameid($gameid).".\n".
                      "Use this link to play a card: ".$HOST.$INDEX."?action=game&me=".$hash."\n\n" ;
-                   $subject = 'Ready, set, go... (game '.DB_format_gameid($gameid).')';
-                   mymail($who,$subject,$message);
+                   mymail($who,$gameid,GAME_READY,$message);
                  }
              }
            else
@@ -830,8 +821,7 @@ switch($mystatus)
                    /* email player for poverty */
                    $message = "Poverty: It's your turn now in game ".DB_format_gameid($gameid).".\n".
                      "Use this link to play a card: ".$HOST.$INDEX."?action=game&me=".$whohash."\n\n" ;
-                   $subject = 'Poverty (game '.DB_format_gameid($gameid).') ';
-                   mymail($whoid,$subject,$message);
+                   mymail($whoid,$gameid,GAME_POVERTY,$message);
                  }
              }
          }
@@ -936,12 +926,12 @@ switch($mystatus)
                /* email startplayer */
                $message = "It's your turn now in game ".DB_format_gameid($gameid).".\n".
                  "Use this link to play a card: ".$HOST.$INDEX."?action=game&me=".$hash."\n\n" ;
-               $subject = 'Ready, set, go... (game '.DB_format_gameid($gameid).') ';
-               mymail($who,$subject,$message);
+               mymail($who,$gameid,GAME_READY,$message);
              }
          }
        else
          echo "<div class=\"message\">Please, <a href=\"$INDEX?action=game&amp;me=$me\">start</a> the game.</div>\n";
+       echo '<div class="mycards"></div>'."\n"; /* needed to make sure the message area is in the right position */
       }
 
     /* the following is part A) of what needs to be done */
@@ -1019,8 +1009,7 @@ switch($mystatus)
                $userids = DB_get_all_userid_by_gameid($gameid);
                foreach($userids as $user)
                  {
-                   $subject = 'Game '.DB_format_gameid($gameid).' canceled (poverty not resolved)';
-                   mymail($user,$subject,$message);
+                   mymail($user, $gameid, GAME_CANCELED_POVERTY, $message);
                  }
 
                /* update game status */
@@ -1040,8 +1029,7 @@ switch($mystatus)
 
                $message = "Someone has poverty, it's your turn to decide, if you want to take the trump. Please visit:".
                  " ".$HOST.$INDEX."?action=game&me=".$userhash."\n\n" ;
-               $subject = 'Poverty (game '.DB_format_gameid($gameid).')';
-               mymail($userid,$subject,$message);
+               mymail($userid,$gameid, GAME_POVERTY, $message);
              }
          }
        else
@@ -1132,8 +1120,7 @@ switch($mystatus)
 
                    $message = "Two people have poverty, it's your turn to decide, if you want to take the trump. Please visit:".
                      " ".$HOST.$INDEX."?action=game&me=".$userhash."\n\n" ;
-                   $subject = 'Double poverty (game '.DB_format_gameid($gameid).')';
-                   mymail($userid,$subject,$message);
+                   mymail($userid,$gameid, GAME_DPOVERTY, $message);
                  }
              }
            echo "<div class=\"message\">Please, <a href=\"$INDEX?action=game&amp;me=$me\">continue</a> here.</div>\n";
@@ -1206,8 +1193,7 @@ switch($mystatus)
                /* email startplayer) */
                $message = "It's your turn now in game ".DB_format_gameid($gameid).".\n".
                  "Use this link to play a card: ".$HOST.$INDEX."?action=game&me=".$hash."\n\n" ;
-               $subject = 'Ready, set, go... (game '.DB_format_gameid($gameid).')';
-               mymail($who,$subject,$message);
+               mymail($who,$gameid, GAME_READY, $message);
              }
          }
       }
@@ -1660,8 +1646,7 @@ switch($mystatus)
                  "Use this link to play a card: ".$HOST.$INDEX."?action=game&me=".$next_hash."\n\n" ;
                if( DB_get_email_pref_by_uid($who)!='emailaddict' )
                  {
-                   $subject = 'A card has been played in game '.DB_format_gameid($gameid);
-                   mymail($who,$subject,$message);
+                   mymail($who,$gameid, GAME_YOUR_TURN, $message);
                  }
              }
            else /* send out final email */
@@ -1706,8 +1691,8 @@ switch($mystatus)
                 */
 
                /* get calls from re/contra */
-               $call_re     = NULL;
-               $call_contra = NULL;
+               $call_re     = -1;
+               $call_contra = -1;
                foreach($userids as $user)
                  {
                    $hash  = DB_get_hash_from_gameid_and_userid($gameid,$user);
@@ -1720,14 +1705,14 @@ switch($mystatus)
 
                        if($party=='re')
                          {
-                           if($call_re==NULL)
+                           if($call_re== -1)
                              $call_re = $call;
                            else if( $call < $call_re)
                              $call_re = $call;
                          }
                        else if($party=='contra')
                          {
-                           if($call_contra==NULL)
+                           if($call_contra== -1)
                              $call_contra = $call;
                            else if( $call < $call_contra)
                              $call_contra = $call;
@@ -1738,7 +1723,7 @@ switch($mystatus)
                /* figure out who one */
                $winning_party = NULL;
 
-               if($call_re == NULL && $call_contra==NULL)
+               if($call_re == -1 && $call_contra == -1)
                  {
                    /* nobody made a call, so it's easy to figure out who won */
                    if($re>120)
@@ -1752,7 +1737,7 @@ switch($mystatus)
                     * if only one party made a call, the other one wins,
                     * if the first one didn't make it
                     */
-                   if($call_re)
+                   if($call_re != -1)
                      {
                        $offset = 120 - $call_re;
                        if($call_re == 0)
@@ -1760,11 +1745,11 @@ switch($mystatus)
 
                        if($re > 120+$offset)
                          $winning_party='re';
-                       else if ($call_contra == NULL )
+                       else if ($call_contra == -1 )
                          $winning_party='contra';
                      }
 
-                   if($call_contra)
+                   if($call_contra != -1)
                      {
                        $offset = 120 - $call_contra;
                        if($call_contra == 0)
@@ -1772,7 +1757,7 @@ switch($mystatus)
 
                        if($contra > 120+$offset)
                          $winning_party='contra';
-                       else if ($call_re == NULL )
+                       else if ($call_re == -1 )
                          $winning_party='re';
                      }
                  }
@@ -1780,7 +1765,7 @@ switch($mystatus)
                /* one point for each call of the other party in case the other party didn't win
                 * and one point each in case the party made more than points than one of the calls
                 */
-               if($winning_party!='contra' && $call_contra!=NULL)
+               if($winning_party!='contra' && $call_contra!= -1)
                  {
                    for( $p=$call_contra;$p<=120; $p+=30 )
                      {
@@ -1795,7 +1780,7 @@ switch($mystatus)
                                     " VALUES( NULL,NULL,$gameid,'re',NULL,NULL,'made$p')");
                        }
                    }
-                 if($winning_party!='re' and $call_re!=NULL)
+                 if($winning_party!='re' and $call_re!= -1)
                    {
                      for( $p=$call_re;$p<=120; $p+=30 )
                        {
@@ -1824,7 +1809,7 @@ switch($mystatus)
                      foreach(array(120,150,180,210,240) as $p)
                        {
                          $offset = 0;
-                         if($p==240 || $call_contra!=NULL)
+                         if($p==240 || $call_contra != -1)
                            $offset = 1;
 
                          if($re>$p-$offset)
@@ -1834,7 +1819,7 @@ switch($mystatus)
                      /* re called something and won */
                      foreach(array(0,30,60,90,120) as $p)
                        {
-                         if($call_re!=NULL && $call_re<$p+1)
+                         if($call_re!= -1 && $call_re<$p+1)
                            DB_query("INSERT INTO Score".
                                     " VALUES( NULL,NULL,$gameid,'re',NULL,NULL,'call$p')");
                        }
@@ -1844,7 +1829,7 @@ switch($mystatus)
                      foreach(array(120,150,180,210,240) as $p)
                        {
                          $offset = 0;
-                         if($p==240 || $call_re!=NULL)
+                         if($p==240 || $call_re != -1)
                            $offset = 1;
 
                          if($contra>$p-$offset)
@@ -1854,7 +1839,7 @@ switch($mystatus)
                      /* re called something and won */
                      foreach(array(0,30,60,90,120) as $p)
                        {
-                         if($call_contra!=NULL && $call_contra<$p+1)
+                         if($call_contra != -1 && $call_contra<$p+1)
                            DB_query("INSERT INTO Score".
                                     " VALUES( NULL,NULL,$gameid,'contra',NULL,NULL,'call$p')");
                        }
@@ -1903,8 +1888,7 @@ switch($mystatus)
                      $message .= $link;
                    }
                  $message .= "\n\n (you can use reply all on this email to reach all the players.)\n\n";
-                 $subject = ' Game over (game '.DB_format_gameid($gameid).') ';
-                 mymail($userids,$subject,$message);
+                 mymail($userids,$gameid, GAME_OVER, $message);
              }
          }
        else
@@ -2184,6 +2168,15 @@ if(sizeof($other_game_ids)>0 && $mystatus=='gameover')
 
 echo "</div>\n"; /* end gameinfo */
 
+/* make sure that we don't show the notes to the wrong person
+ * (e.g. other people looking at an old game)
+ */
+if( $mystatus != 'gameover' ||
+    (  $mystatus == 'gameover' &&
+       isset($_SESSION['id'])  &&
+       $myid == $_SESSION['id']))
+  output_user_notes($myid,$gameid,$mystatus);
+
 echo "</form>\n";
 
 $gamestatus = DB_get_game_status_by_gameid($gameid);