Make startup phase smoother: less reloading of pages and less text messages to the...
[e-DoKo.git] / include / game.php
index 541c70a184a2a627a16bd684d4e78f51cc6380de..15f2e68f83b134aa8653414802052b30b5e20898 100644 (file)
@@ -46,6 +46,7 @@ global $GAME,$RULES,$CARDS;
 /**************************************
  * get some information from the DB
  **************************************/
+start:
 $gameid   = DB_get_gameid_by_hash($me);
 $myname   = DB_get_name('hash',$me);
 $mystatus = DB_get_status_by_hash($me);
@@ -561,9 +562,7 @@ switch($mystatus)
            break;
          }
        else
-         {
-           /* everything is ok, save what user said and proceed */
-           $messages[] = _('Processing what you selected in the last step...');
+         { /* everything is ok, save what user said and proceed */
 
            /* check if this sickness needs to be handled first */
            $startplayer = DB_get_startplayer_by_gameid($gameid); /* need this to check which solo goes first */
@@ -634,8 +633,6 @@ switch($mystatus)
      * this can therefore only be handled once all players finished the last stage
      */
 
-    $messages[] = _('Checking if someone else selected solo, nines, wedding or poverty.');
-
     /* check if everyone has reached this stage */
     $userids = DB_get_all_userid_by_gameid($gameid);
     $ok = 1;
@@ -663,10 +660,8 @@ switch($mystatus)
         * are playing, in case there are any solos this already
         * will have the correct information in it */
 
-       $messages[] = _('Ok, everyone is done... figuring out what kind of game we are playing.');
-
        /* gametype for displaying it (hides hidden solo)*/
-       $GT           = get_display_gametype($gameid);
+       $GT          = get_display_gametype($gameid);
 
        $startplayer = DB_get_startplayer_by_gameid($gameid);
 
@@ -791,7 +786,6 @@ switch($mystatus)
            $gametype     = 'wedding';
          };
        /* now the gametype is set correctly in the database */
-       $messages[] = _('Got it').' :)';
 
        /* loop over all players, set re/contra if possible and start the game if possible */
        $userids = DB_get_all_userid_by_gameid($gameid);
@@ -889,8 +883,10 @@ switch($mystatus)
                  }
              }
            else
-             $messages[] = sprintf(_('Please, <a href="%s">start</a> the game.'),$INDEX."?action=game&amp;me=$me").
-               "<br />\n";
+             {
+               $mystatus = 'play';
+               goto play;
+             }
          }
        else
          {
@@ -900,8 +896,10 @@ switch($mystatus)
 
            $whoid = DB_get_userid('gameid-position',$gameid,$who);
            if($whoid==$myid)
-             $messages[] = sprintf(_('Please, <a href="%s">start</a> the game.'),$INDEX."?action=game&amp;me=$me").
-               "<br /\n";
+             {
+               $mystatus = 'poverty';
+               goto poverty;
+             }
            else
              {
                $whohash = DB_get_hash_from_game_and_pos($gameid,$who);
@@ -922,6 +920,7 @@ switch($mystatus)
     break;
 
   case 'poverty':
+  poverty:
     /* user only gets here in a poverty game, several things have to be handled here:
      * A) ask, if user wants to take trump
      *      yes-> take trump,
@@ -991,7 +990,10 @@ switch($mystatus)
              }
          }
        else
-         $messages[]= sprintf(_('Please, <a href="%s">start</a> the game.'),$INDEX."?action=game&amp;me=$me");
+         {
+           $mystatus = 'play';
+           goto play;
+         }
       }
 
     /* the following is part A) of what needs to be done */
@@ -1196,6 +1198,7 @@ switch($mystatus)
 
   case 'play':
   case 'gameover':
+  play:
     /* both entries here,  so that the tricks are visible for both.
      * in case of 'play' there is a break later that skips the last part
      */