cleanup
authorMatteo Nastasi (mop) <nastasi@alternativeoutput.it>
Thu, 14 Feb 2008 20:23:10 +0000 (20:23 +0000)
committerMatteo Nastasi (mop) <nastasi@alternativeoutput.it>
Thu, 14 Feb 2008 20:23:10 +0000 (20:23 +0000)
web/Obj/brisk.phh
web/briskin5/Obj/briskin5.phh
web/briskin5/index_rd.php
web/briskin5/index_wr.php
web/index.php
web/index_rd.php
web/index_wr.php

index f679d00..34adcd1 100644 (file)
@@ -146,7 +146,7 @@ class Card {
     $this->stat = 'take'; // Card stat
     $this->owner = $newown;
   }
-}
+} // end class Card
 
 class Table {
   var $player;
@@ -187,12 +187,12 @@ class Table {
   {
     GLOBAL $G_false;
 
-    if (($thiz = new Table()) == FALSE)
+    if (($thiz =& new Table()) == FALSE)
       return ($G_false);
 
     $thiz->player    =   array();
     $thiz->player_n  =   0;
-    $thiz->card      =  &$thiz->bunch_create();
+    $thiz->card      =   FALSE;
     $thiz->asta_pla  =   array(); // TRUE: in auction, FALSE: out of the auction
     $thiz->asta_pla_n=  -1;
     $thiz->asta_card =  -1;
@@ -221,7 +221,7 @@ class Table {
   {
     GLOBAL $G_false;
     
-    if (($thiz = new Table()) == FALSE)
+    if (($thiz =& new Table()) == FALSE)
       return ($G_false);
     
     $thiz->player = array();
@@ -267,7 +267,7 @@ class Table {
       return ($G_false);
     
     $thiz->player_n = $from->player_n;
-    $thiz->card = $from->card;
+    $thiz->card = &$thiz->bunch_create();
     $thiz->mazzo = $from->mazzo;
     $thiz->gstart = $from->gstart;
     $thiz->turn = $from->turn;
@@ -463,7 +463,7 @@ class Table {
 
     return ($ct);
   }
-} // End class Table
+} // end class Table
   
 class User {
   var $name;       // name of the user
@@ -522,7 +522,7 @@ class User {
   {
     GLOBAL $G_false;
     
-    if (($thiz = new User()) == FALSE)
+    if (($thiz =& new User()) == FALSE)
       return ($G_false);
     
     $thiz->name       = $from->name;
@@ -636,7 +636,8 @@ class User {
     
     return (FALSE);
   }
-}
+} // end class User
+
 
 function step_get($sess) {
   $fp = FALSE;
@@ -724,6 +725,9 @@ class Room {
            }
            
            if ($bri != FALSE) {
+             //
+             //  SPAWN: JOIN
+             //
              log_main("garbage_manager: bri loaded successfully.");
              $bri->garbage_manager(TRUE);
              
@@ -744,6 +748,7 @@ class Room {
                  $user_cur->trans_step = $bri_user->step;
                  $user_cur->lacc       = $bri_user->lacc;
                  $user_cur->laccwr     = $bri_user->lacc;
+                 $user_cur->bantime    = $bri_user->bantime;
                }
              
                $this->room_join_wakeup(&$user_cur); 
index 283e398..b4001cb 100644 (file)
@@ -429,7 +429,7 @@ class Briskin5 {
 
     return ($is_ab);
   }
-} // end of class Briskin5
+} // end class Briskin5
 
 function locshm_exists($tok)
 {
index 540892e..43e2a0d 100644 (file)
@@ -185,16 +185,12 @@ function maincheck($sess, $cur_stat, $cur_subst, $cur_step, &$new_stat, &$new_su
   if ($cur_step == -1) {
     log_rd2("PRE-NEWSTAT.");
 
-    if ($user->stat == 'room') {
-      log_rd("roomma");
-      $ret .= show_room(&$bri, &$user);
-    }
     /***************
      *             *
      *    TABLE    *
      *             *
      ***************/
-    else if ($user->stat == 'table') {      
+    if ($user->stat == "table") {      
       $ret = show_table(&$bri,&$user,$user->step,FALSE,FALSE);
 
       log_rd2("SENDED TO THE STREAM: ".$ret);
@@ -221,7 +217,7 @@ function maincheck($sess, $cur_stat, $cur_subst, $cur_step, &$new_stat, &$new_su
            $to_stat = $user->stat;
            Briskin5::unlock_data($sem);
            ignore_user_abort(FALSE);
-           return (page_sync($user->sess, $to_stat == "table" ? "table.php" : "index.php"));
+           return (page_sync($user->sess, $to_stat == "table" ? "index.php" : "../index.php"));
          }
          log_rd2("lost history, refresh from scratch");
          $new_step = -1;
index 3836a56..7c6bc65 100644 (file)
@@ -52,179 +52,17 @@ $argz = explode('|', $mesg);
 log_wr('POSTSPLIT: '.$argz[0]);
 
 if ($argz[0] == 'shutdown') {
-  log_auth($user_cur->sess, "Shutdown session.");
-  $tmp_sess = $user->sess;
-  $user->sess = "";
-  step_unproxy($tmp_sess);
-  $user->name = "";
-  $user->the_end = FALSE;
+  log_auth($user_cur->sess, "Shutdown session. delegate to room gc the autologout");
   
   log_rd2("AUTO LOGOUT.");
-  if ($user->subst == 'sitdown' || $user->stat == 'table')
+  if ($user->stat == 'table') {
     $bri->table_wakeup(&$user);
-  else if ($user->subst == 'standup')
-    $bri->room_outstandup(&$user);
+    // to force the logout
+    $user->lacc = 0;
+  }
   else
     log_rd2("SHUTDOWN FROM WHAT ???");
 }
-/******************
- *                *
- *   STAT: room   *
- *                *
- ******************/
-else if ($user->stat == 'room') {
-  $user->laccwr = time();
-
-  if ($argz[0] == 'help') {
-    $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; ";
-    $user->comm[$user->step % COMM_N] .=  show_notify(str_replace("\n", " ", $G_room_help), 0, "torna ai tavoli", 600, 500);
-
-    log_wr($user->comm[$user->step % COMM_N]);
-    $user->step_inc();
-    
-  }
-  else if ($argz[0] == 'about') {
-    $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; ";
-    $user->comm[$user->step % COMM_N] .=  show_notify(str_replace("\n", " ", $G_room_about), 0, "torna ai tavoli", 400, 200);
-
-    log_wr($user->comm[$user->step % COMM_N]);
-    $user->step_inc();
-    
-  }
-  else if ($argz[0] == 'chatt') {
-    $bri->chatt_send(&$user,$mesg);
-  }
-  /**********************
-   *                    *
-   *   SUBST: standup   *
-   *                    *
-   **********************/
-  else if ($user->subst == 'standup') {
-   
-    if ($argz[0] == 'sitdown') {
-      log_wr("SITDOWN command");
-
-      if ($user->the_end == TRUE) {
-       log_wr("INFO:SKIP:argz == sitdown && the_end == TRUE => ignore request.");
-       Briskin5::unlock_data($sem);
-       exit;
-      }
-      /* TODO: refact to a function */
-      if ($user->bantime > $user->laccwr) {
-       $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; ";
-       $user->comm[$user->step % COMM_N] .= show_notify("<br>Ti sei alzato da un tavolo senza il consenso degli altri giocatori. Dovrai aspettare ancora ".secstoword($user->bantime - $user->laccwr)." prima di poterti sedere nuovamente.", 2000, "Torna in piedi.", 400, 100);
-       
-       $user->step_inc();
-       Briskin5::save_data($bri);
-       Briskin5::unlock_data($sem);
-       exit;
-      }
-    
-      // Take parameters
-      $table_idx = $argz[1];
-      $table = &$bri->table[$table_idx];
-    
-      if ($table->player_n == PLAYERS_N) {
-       log_wr("WARN:FSM: Sitdown unreachable, table full.");
-       Briskin5::unlock_data($sem);
-       exit;
-      } 
-      
-      // set new status
-      $user->subst = "sitdown";
-      $user->table = $table_idx;
-      $user->table_pos = $table->user_add($idx);
-      
-      log_wr("MOP before");
-
-      if ($table->player_n == PLAYERS_N) {
-       log_wr("MOP inall");
-
-       // Start game for this table.
-       log_wr("Start game!");
-       
-       //
-       //  START THE SPAWN HERE!!!!
-       //
-
-       if (TRUE) { // WITH SPAWN
-         $curtime = time();
-         // Create new spawned table
-         $us = array();
-         for ($i = 0 ; $i < BRISCOLAIN5_PLAYERS_N ; $i++)
-           $us[$i] = &$bri->user[$table->player[$i]];
-         if (($bri =& new Briskin5(&$us, &$table, $table_idx)) == FALSE)
-           log_wr("bri create: FALSE");
-         else
-           log_wr("bri create: ".serialize($bri));
-       
-
-         // Set root table and users
-       }
-       else { // BEFORE SPAWN
-         // init table
-         $table->init(&$bri->user);
-         $table->game_init(&$bri->user);
-         $curtime = time();
-         
-         // init users
-         for ($i = 0 ; $i < $table->player_n ; $i++) {
-           $user_cur = &$bri->user[$table->player[$i]];
-           log_wr("Pre if!");
-           
-           $ret = "";
-           $ret .= sprintf('gst.st_loc++; gst.st=%d; the_end=true; window.onunload = null ; document.location.assign("table.php");|', $user_cur->step+1);
-           
-           $user_cur->comm[$user_cur->step % COMM_N] = $ret;
-           $user_cur->trans_step = $user_cur->step + 1;
-           log_wr("TRANS ATTIVATO");
-           
-           
-           $user_cur->stat_set('table');
-           $user_cur->subst = 'asta';
-           $user_cur->laccwr = $curtime;
-           $user_cur->step_inc();
-           
-           $user_cur->comm[$user_cur->step % COMM_N] = show_table(&$bri,&$user_cur,$user_cur->step+1,TRUE, FALSE);
-           $user_cur->step_inc();
-         }
-       } // end else {  BEFORE SPAWN
-       
-       log_wr("MOP after");
-
-      }
-      // change room
-      $bri->room_sitdown(&$user, $table_idx);
-
-      log_wr("MOP finish");
-
-      
-    }
-    else if ($argz[0] == 'logout') {
-      $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; ";
-      $user->comm[$user->step % COMM_N] .= sprintf('postact_logout();');
-      $user->the_end = TRUE;
-      $user->step_inc();
-    }
-  }
-  /**********************
-   *                    *
-   *   SUBST: sitdown   *
-   *                    *
-   **********************/
-  else if ($user->subst == 'sitdown') {
-    if ($argz[0] == 'wakeup') {
-      $bri->table_wakeup(&$user);      
-    }
-    else if ($argz[0] == 'logout') {
-      $bri->table_wakeup(&$user);      
-      $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; ";
-      $user->comm[$user->step % COMM_N] .= sprintf('postact_logout();');
-      $user->the_end = TRUE;
-      $user->step_inc();
-    }
-  }
-}
 /*********************
  *                   *
  *    STAT: table    *
index bb31b6e..e0db3d2 100644 (file)
@@ -63,7 +63,7 @@ function main()
          Room::unlock_data($sem);
          setcookie("table_token", $user->table_token, $curtime + 31536000);
          setcookie("table_idx", $user->table, $curtime + 31536000);
-         header ("Location: briskin5/briskin5.php");
+         header ("Location: briskin5/index.php");
          exit;
        }
        $ACTION = "room";
index a335462..e2516ea 100644 (file)
@@ -51,15 +51,16 @@ function unrecerror()
   return (sprintf('the_end=true; window.onunload = null; document.location.assign("index.php");'));
 }
 
-function page_sync($sess, $page)
+function page_sync($sess, $page, $table_idx, $table_token)
 {
   GLOBAL $is_page_streaming;
 
   log_rd2("page_sync:".var_export(debug_backtrace()));
 
   $is_page_streaming = TRUE;
+
   log_rd2("PAGE_SYNC");
-  return (sprintf('the_end=true; window.onunload = null; document.location.assign("%s");', $page));
+  return (sprintf('createCookie("table_idx", %d, 24*365, cookiepath); createCookie("table_token", "%s", 24*365, cookiepath); the_end=true; window.onunload = null; document.location.assign("%s");', $table_idx, $table_token, $page));
 }
 
 
@@ -142,7 +143,7 @@ function maincheck($sess, $cur_stat, $cur_subst, $cur_step, &$new_stat, &$new_su
 
   /* Nothing changed, return. */
   if ($cur_step == $user->step) 
-    return;
+    return (FALSE);
 
   log_rd2("do other ++".$cur_stat."++".$user->stat."++".$cur_step."++".$user->step);
 
@@ -195,25 +196,11 @@ function maincheck($sess, $cur_stat, $cur_subst, $cur_step, &$new_stat, &$new_su
      *    TABLE    *
      *             *
      ***************/
-    else if ($user->stat == 'table') {      
-      /* FIXME we need to decide what do in this case 
-
-      if ($user->subst != "shutdowned" && $user->subst != "shutdowner")
-       $ret = show_table(&$room,&$user,$user->step,FALSE,FALSE);
-
-      log_rd2("SENDED TO THE STREAM: ".$ret);
-
-
-      $new_stat =  $user->stat;
-      $new_subst = $user->subst;
-      $new_step =  $user->step;
-      */
-      log_rd2("ALL COMMENTED: ".$ret);
-
-
+    else if ($user->stat == 'table') {
+      log_load("RESYNC");
+      return (page_sync($user->sess, "briskin5/index.php", $user->table, $user->table_token));
     }
     log_rd2("NEWSTAT: ".$user->stat);
-
   }
   else {
     ignore_user_abort(TRUE);
@@ -232,7 +219,7 @@ function maincheck($sess, $cur_stat, $cur_subst, $cur_step, &$new_stat, &$new_su
            Room::unlock_data($sem);
            ignore_user_abort(FALSE);
            log_load("RESYNC");
-           return (page_sync($user->sess, $to_stat == "table" ? "table.php" : "index.php"));
+           return (page_sync($user->sess, $to_stat == "table" ? "briskin5/index.php" : "index.php"));
          }
          log_rd2("lost history, refresh from scratch");
          $new_step = -1;
index 1a56e98..57142d6 100644 (file)
@@ -186,7 +186,7 @@ else if ($user->stat == 'room') {
            log_wr("Pre if!");
            
            $ret = "";
-           $ret .= sprintf('gst.st_loc++; gst.st=%d; createCookie("table_idx", %d, 24*365, cookiepath); createCookie("table_token", "%s", 24*365, cookiepath); the_end=true; window.onunload = null ; document.location.assign("briskin5/briskin5.php");|', $user_cur->step+1, $table_idx, $table_token);
+           $ret .= sprintf('gst.st_loc++; gst.st=%d; createCookie("table_idx", %d, 24*365, cookiepath); createCookie("table_token", "%s", 24*365, cookiepath); the_end=true; window.onunload = null ; document.location.assign("briskin5/index.php");|', $user_cur->step+1, $table_idx, $table_token);
            
            $user_cur->comm[$user_cur->step % COMM_N] = $ret;
            $user_cur->trans_step = $user_cur->step + 1;
@@ -267,408 +267,6 @@ else if ($user->stat == 'room') {
     }
   }
 }
-/*********************
- *                   *
- *    STAT: table    *
- *                   *
- *********************/
-else if ($user->stat == 'table') {
-  $user->laccwr = time();
-  $table = &$room->table[$user->table];
-
-  if ($argz[0] == 'tableinfo') {
-    log_wr("PER DI TABLEINFO");
-    $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; ";
-    $user->comm[$user->step % COMM_N] .= show_table_info(&$room, &$table, $user->table_pos);
-    log_wr($user->comm[$user->step % COMM_N]);
-    $user->step_inc();
-  }
-  else if ($argz[0] == 'chatt') {
-    $room->chatt_send(&$user,$mesg);
-  }
-  else if ($argz[0] == 'logout') {
-    $remcalc = $argz[1];
-
-    if ($user->exitislock == TRUE) {
-      $remcalc++;
-      $user->exitislock = FALSE;
-    }
-
-    $logout_cont = TRUE;
-    if ($remcalc >= 3) {
-      $lockcalc = $table->exitlock_calc(&$room->user, $user->table_pos);
-      if ($lockcalc < 3) {
-       $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; ";
-       $user->comm[$user->step % COMM_N] .= $table->exitlock_show(&$room->user, $user->table_pos);
-       $user->comm[$user->step % COMM_N] .=  show_notify("<br>I dati presenti sul server non erano allineati con quelli inviati dal tuo browser, adesso lo sono. Riprova ora.", 2000, "Torna alla partita.", 400, 100);
-       
-       log_wr($user->comm[$user->step % COMM_N]);
-       $user->step_inc();
-       $logout_cont = FALSE;
-      }
-    }
-    else 
-      $user->bantime = $user->laccwr + BAN_TIME;
-    
-    if ($logout_cont == TRUE) {
-      $room->room_wakeup(&$user);
-    }
-  }
-  else if ($argz[0] == 'exitlock') {
-    $user->exitislock = ($user->exitislock == TRUE ? FALSE : TRUE);
-    for ($ct = 0, $i = 0 ; $i < PLAYERS_N ; $i++) {    
-      $user_cur[$i] = &$room->user[$table->player[$i]];
-      if ($user_cur[$i]->exitislock == FALSE)
-       $ct++;
-    }
-    for ($i = 0 ; $i < PLAYERS_N ; $i++) {
-      $ret = sprintf('gst.st = %d;', $user_cur[$i]->step+1);
-      $ret .= sprintf('exitlock_show(%d, %s);', $ct, 
-                    ($user_cur[$i]->exitislock ? 'true' : 'false'));
-      $user_cur[$i]->comm[$user_cur[$i]->step % COMM_N] = $ret;
-      log_wr($user_cur[$i]->comm[$user_cur[$i]->step % COMM_N]);
-      $user_cur[$i]->step_inc();
-    }
-  }
-  else if ($user->subst == 'asta') {
-    if ($argz[0] == 'lascio' && $user->handpt <= 2) {
-      $index_cur = $table->gstart % PLAYERS_N;
-    
-      log_wr(sprintf("GIOCO FINITO !!!"));
-    
-      $table->mult *= 2; 
-      $table->old_reason = sprintf("Ha lasciato %s perche` aveva al massimo 2 punti.", $user->name);
-
-      $table->game_next();
-      $table->game_init(&$room->user);
-    
-      for ($i = 0 ; $i < PLAYERS_N ; $i++) {   
-       $user_cur = &$room->user[$table->player[$i]];
-
-       $ret = sprintf('gst.st = %d;', $user_cur->step+1);
-       $ret .= show_table(&$room,&$user_cur,$user_cur->step+1, TRUE, TRUE);
-       $user_cur->comm[$user_cur->step % COMM_N] = $ret;
-       $user_cur->step_inc();      
-      }
-    }
-    else if ($argz[0] == 'asta') {
-      $again = TRUE;
-    
-      $index_cur = $table->gstart % PLAYERS_N;
-      if ($user->table_pos == $index_cur &&
-         $table->asta_pla[$index_cur]) {
-       $a_card = $argz[1];
-       $a_pnt  = $argz[2];
-      
-       log_wr("CI SIAMO  a_card ".$a_card."  asta_card ".$table->asta_card);
-      
-       // Abbandono dell'asta
-       if ($a_card <= -1) {
-         log_wr("Abbandona l'asta.");
-         $table->asta_pla[$index_cur] = FALSE;
-         $user->asta_card  = -1;
-         $table->asta_pla_n--;
-         $again = FALSE;
-       }
-       else if ($a_card <= 9) {
-         if ($a_card >= 0 && $a_card < 9 && $a_card > $table->asta_card)
-           $again = FALSE;
-         else if ($a_card == 9 && $a_pnt > ($table->asta_pnt >= 61 ? $table->asta_pnt : 60) && $a_pnt <= 120)
-           $again = FALSE;
-         
-
-         if ($again == FALSE) {
-           log_wr("NUOVI ORZI.");
-           $user->asta_card  = $a_card;
-           $table->asta_card = $a_card;
-           if ($a_card == 9) {
-             $user->asta_pnt   = $a_pnt;
-             $table->asta_pnt  = $a_pnt;
-           }
-         }
-       }
-      
-      
-      
-       if ($again) { // Qualcosa non andato bene, rifare
-         $ret = sprintf('gst.st = %d; asta_pnt_set(%d);', $user->step+1, 
-                         ($table->asta_pnt > 60 ? $table->asta_pnt + 1 : 61) );
-         $user->comm[$user->step % COMM_N] = $ret;
-         $user->step_inc();
-
-         log_wr("Ripetere.");
-       }
-       else {
-         /* next step */
-         $showst = "show_astat("; 
-         for ($i = 0 ; $i < PLAYERS_N ; $i++) {
-           $user_cur = &$room->user[$table->player[$i]];
-           $showst .= sprintf("%s%d", ($i == 0 ? "" : ", "), 
-                              ($user_cur->asta_card < 9 ? $user_cur->asta_card : $user_cur->asta_pnt));
-         }
-         if (PLAYERS_N == 3)
-           $showst .= ",-2,-2";
-         $showst .= ");";
-
-         $maxcard = -2;
-         for ($i = 0 ; $i < PLAYERS_N ; $i++) {
-           $user_cur = &$room->user[$table->player[$i]];
-           if ($maxcard < $user_cur->asta_card)
-             $maxcard = $user_cur->asta_card;
-         }
-
-         if (($table->asta_pla_n > ($maxcard > -1 ? 1 : 0)) &&
-             !($table->asta_card == 9 && $table->asta_pnt == 120)) {
-           log_wr("ALLOPPA QUI");
-           for ($i = 1 ; $i < PLAYERS_N ; $i++) {
-             $index_next = ($table->gstart + $i) % PLAYERS_N;
-             if ($table->asta_pla[$index_next]) {
-               log_wr("GSTART 1");
-               $table->gstart += $i;
-               break;
-             }
-           }
-         
-         
-           for ($i = 0 ; $i < PLAYERS_N ; $i++) {
-             $user_cur = &$room->user[$table->player[$i]];
-             $ret = sprintf('gst.st = %d; %s', $user_cur->step+1, $showst);
-             if ($user_cur->table_pos == ($table->gstart % PLAYERS_N)) 
-               $ret .= sprintf('dispose_asta(%d,%d, %s); remark_on();', 
-                               $table->asta_card + 1, $table->asta_pnt+1, ($user_cur->handpt <= 2 ? "true" : "false"));
-             else
-               $ret .= sprintf('dispose_asta(%d,%d, %s); remark_off();',
-                               $table->asta_card + 1, -($table->asta_pnt+1), ($user_cur->handpt <= 2 ? "true" : "false"));
-             $user_cur->comm[$user_cur->step % COMM_N] = $ret;
-             $user_cur->step_inc();
-           }
-         }
-         else if ($table->asta_pla_n == 0) {
-           log_wr("PASSANO TUTTI!");
-
-           log_wr(sprintf("GIOCO FINITO !!!"));
-         
-           $table->old_reason = "Hanno passato tutti.";
-           $table->mult *= 2; 
-
-           $table->game_next();
-           $table->game_init(&$room->user);
-         
-           for ($i = 0 ; $i < PLAYERS_N ; $i++) {      
-             $user_cur = &$room->user[$table->player[$i]];
-
-             $ret = sprintf('gst.st = %d;', $user_cur->step+1);
-             $ret .= show_table(&$room,&$user_cur,$user_cur->step+1, TRUE, TRUE);
-             $user_cur->comm[$user_cur->step % COMM_N] = $ret;
-             $user_cur->step_inc();        
-           }
-         }
-         else {
-           log_wr("FINITA !");
-           // if a_pnt == 120 supergame ! else abbandono
-           if ($a_pnt == 120 || $user->asta_card != -1) {
-             $chooser = $index_cur;
-             for ($i = 1 ; $i < PLAYERS_N ; $i++) 
-               if ($i != $chooser)
-                 $table->asta_pla[$i] = FALSE;
-           }
-           else {
-             //"gst.st = ".($user->step+1)."; dispose_asta(".($table->asta_card + 1).",".-($table->asta_pnt).", true); remark_off();";
-             $user->comm[$user->step % COMM_N] = sprintf( "gst.st = %d; dispose_asta(%d, %d, false); remark_off();", $user->step+1, $table->asta_card + 1,-($table->asta_pnt));
-             $user->step_inc();
-             for ($i = 1 ; $i < PLAYERS_N ; $i++) {
-               $chooser = ($table->gstart + $i) % PLAYERS_N;
-               if ($table->asta_pla[$chooser]) {
-                 break;
-               }
-             }
-           }
-           $table->asta_win = $chooser;
-
-           for ($i = 0 ; $i < PLAYERS_N ; $i++) {
-             $user_cur = &$room->user[$table->player[$i]];
-             $ret = sprintf('gst.st = %d; %s', $user_cur->step+1, $showst);
-
-             if ($i == $chooser) {
-               $ret .= "choose_seed(". $table->asta_card."); \$(\"asta\").style.visibility = \"hidden\"; remark_on();";
-             }
-             else {
-               $ret .= "remark_off();";
-             }
-
-             $user_cur->comm[$user_cur->step % COMM_N] = $ret;
-             $user_cur->step_inc();        
-           }
-         }
-       }
-      }
-      else {
-       log_wr("NON CI SIAMO");
-      }
-    }
-    /*  asta::choose */
-    else if ($argz[0] == 'choose') {
-      if ($table->asta_win > -1 && 
-         $user->table_pos == $table->asta_win) {
-       $a_brisco = $argz[1];
-       if ($a_brisco >= 0 && $a_brisco < 40) {
-         $table->briscola = $a_brisco;
-         $table->friend   = $table->card[$a_brisco]->owner;
-         log_wr("GSTART 2");
-         $table->gstart = ($table->mazzo+1) % PLAYERS_N;
-         log_wr("Setta la briscola a ".$a_brisco);
-
-         $chooser = $table->asta_win;
-         $user_chooser = &$room->user[$table->player[$chooser]];
-         for ($i = 0 ; $i < PLAYERS_N ; $i++) {
-           $user_cur = &$room->user[$table->player[$i]];
-           $user_cur->subst = 'game';
-           $ret = sprintf('gst.st = %d; subst = "game";', $user_cur->step+1);
-         
-
-           /* bg of caller cell */
-           $ret .= briscola_show($room, $table, $user_cur);
-
-           /* first gamer */
-           if ($i == ($table->gstart % PLAYERS_N))
-             $ret .= "is_my_time = true; remark_on();";
-           else
-             $ret .= "is_my_time = false; remark_off();";
-
-           $user_cur->comm[$user_cur->step % COMM_N] = $ret;
-           $user_cur->step_inc();          
-         }
-         /*
-            TUTTE LE VARIABILI DI STATO PER PASSARE A GIOCARE E LE
-            VAR PER PASSARE ALLA FASE DI GIOCO
-         */
-       
-       }
-      }
-    }
-  }
-  else if ($user->subst == 'game') {
-    log_wr("state: table::game".$argz[0]);
-
-    if ($argz[0] == 'play') {
-      $a_play = $argz[1];
-      $a_x =    $argz[2];
-      $a_y =    $argz[3];
-
-      if (strpos($a_x, "px") != FALSE)
-       $a_x = substr($a_x,0,-2);
-      if (strpos($a_y, "px") != FALSE)
-       $a_y = substr($a_y,0,-2);
-
-      $loggo = sprintf("A_play %s, table_pos %d == %d, mazzo %d, gstart %d, card_stat %d, card_own %d",
-                      $a_play, $user->table_pos, ($table->gstart % PLAYERS_N),
-                      $table->mazzo, $table->gstart,
-                      $table->card[$a_play]->stat, $table->card[$a_play]->owner);
-      log_wr("CIC".$loggo);
-                         
-      /* se era il suo turno e la carta era sua ed era in mano */
-      if ($a_play >=0 && $a_play < 40 &&
-         ($user->table_pos == (($table->gstart + $table->turn) % PLAYERS_N)) &&
-         $table->card[$a_play]->stat == 'hand' &&
-         $table->card[$a_play]->owner == $user->table_pos) {
-       log_wr(sprintf("User: %s Play: %d",$user->name, $a_play));
-
-       /* Change the card status. */
-       $table->card[$a_play]->play($a_x, $a_y);
-
-       /*
-        *  !!!! TURN INCREMENTED BEFORE !!!!
-        */
-       $turn_cur = ($table->gstart + $table->turn) % PLAYERS_N;
-       $table->turn++;
-
-       $card_play = sprintf("card_play(%d,%d,%d,%d);|",
-                            $user->table_pos, $a_play, $a_x, $a_y);
-       if (($table->turn % PLAYERS_N) != 0) {     /* manche not finished */
-         $turn_nex = ($table->gstart + $table->turn) % PLAYERS_N;
-
-         $player_cur = "remark_off();";
-         $player_nex = $card_play . "is_my_time = true; remark_on();";
-         $player_oth = $card_play;
-       }
-       else if ($table->turn <= (PLAYERS_N * 8)) { /* manche finished */
-         $winner = calculate_winner($table);
-         log_wr("GSTART 3");
-         $table->gstart = $winner;
-         $turn_nex = ($table->gstart + $table->turn) % PLAYERS_N;
-
-         log_wr(sprintf("The winner is: [%d] [%s]", $winner, $room->user[$table->player[$winner]]->name));
-         $card_take = sprintf("sleep(gst,2000);|cards_take(%d);|cards_hidetake($d);",
-                              $winner, $winner);
-         $player_cur = "remark_off();" . $card_take . "|"; 
-         if ($turn_cur != $turn_nex)
-           $player_nex = $card_play . $card_take . "|";
-         else
-           $player_nex = "";
-         if ($table->turn < (PLAYERS_N * 8))  /* game NOT finished */
-           $player_nex .= "is_my_time = true; remark_on();";
-         $player_oth = $card_play . $card_take;
-       }
-
-       log_wr(sprintf("Turn Cur %d Turn Nex %d",$turn_cur, $turn_nex));
-       for ($i = 0 ; $i < PLAYERS_N ; $i++) {  
-         $user_cur = &$room->user[$table->player[$i]];
-
-         $ret = sprintf('gst.st = %d; ', $user_cur->step+1);
-
-       
-         if ($i == $turn_cur) {
-           $ret .= $player_cur;          
-         }
-         if ($i == $turn_nex) {
-           $ret .= $player_nex;          
-         }
-         if ($i != $turn_cur && $i != $turn_nex) {
-           $ret .= $player_oth;
-         }
-
-         $retar[$i] = $ret;
-       }
-
-
-
-
-       if ($table->turn == (PLAYERS_N * 8)) { /* game finished */
-         log_wr(sprintf("GIOCO FINITO !!!"));
-
-         /* ************************************************ */
-         /*    PRIMA LA PARTE PER LO SHOW DI CHI HA VINTO    */
-         /* ************************************************ */
-         calculate_points(&$table);
-
-         $table->game_next();
-         $table->game_init(&$room->user);
-         
-         for ($i = 0 ; $i < PLAYERS_N ; $i++) {
-           $user_cur = &$room->user[$table->player[$i]];
-           $retar[$i] .= show_table(&$room,&$user_cur,$user_cur->step+1,TRUE, TRUE);
-         }
-       }
-
-
-       for ($i = 0 ; $i < PLAYERS_N ; $i++) {  
-         $user_cur = &$room->user[$table->player[$i]];
-       
-         $user_cur->comm[$user_cur->step % COMM_N] = $retar[$i];
-         $user_cur->step_inc();            
-       }
-
-       log_wr(sprintf("TURN: %d",$table->turn));
-       /* Have played all the players ? */
-       /* NO:  switch the focus and enable the next player to play. */
-      
-       /* YES: calculate who win and go to the next turn. */
-      }
-    }
-    else
-      log_wr("NOSENSE");
-  }
-}
 log_wr("before save data");
 Room::save_data($room);