+ $curtime = time();
+ $user_wup = array();
+ $user_wup_n = 0;
+ log_main("JOIN WAKEUP: from table [".$user->table."] nplayers_n: ".$this->table[$user->table]->player_n);
+
+ for ($i = 0 ; $i < $table->player_n ; $i++) {
+ $user_cur = &$this->user[$table->player[$i]];
+ log_main("PREIMPOST INLOOP name: ".$user_cur->name);
+ if ($user_cur->sess != "") {
+ if ($update_lacc == TRUE) {
+ $user_cur->laccwr = $curtime;
+ }
+ log_main("cur: ".$user_cur->name." subst: ".$user_cur->subst);
+ if ($user_cur->subst == "shutdowned") {
+ $user_cur->stat_set("room");
+ $user_cur->subst = "sitdown";
+ }
+ else if ($user_cur->subst == "shutdowner") {
+ $user_cur->stat_set("room");
+ $user_cur->subst = "standup";
+ $user_cur->table = -1;
+ $user_wup[$user_wup_n++] = &$user_cur;
+ }
+ }
+ }
+
+ for ($wup_idx = 0 ; $wup_idx < $user_wup_n ; $wup_idx++)
+ $table->user_rem(&$this, &$user_wup[$wup_idx]);
+
+ /* aggiorna l'array dei giocatori al tavolo. */
+
+ for ($i = 0 ; $i < MAX_PLAYERS ; $i++) {
+ log_main("START LOOP");
+ $user_cur = &$this->user[$i];
+ if ($user_cur->sess == '' || $user_cur->stat != 'room') {
+ log_main("name: ".$user_cur->name."skip subst: ".$user_cur->subst);
+ continue;
+ }
+
+ log_main("___");
+ log_main("VALORI name: ".$user_cur->name." tab: ".$user_cur->table." taix: ".$table_idx." ucur: ".$user_cur." us: ".$user);
+
+ $ret = "gst.st = ".($user_cur->step+1)."; ";
+ if ($user_cur->stat == "room") {
+ log_main("DOCUMENT.index.php from table");
+
+ $ret .= table_content($this, $user_cur, $table_idx);
+ $ret .= standup_content($this, $user_cur);
+
+ $act_content = table_act_content(FALSE, 0, $table_idx, $user_cur->table);
+ $ret .= sprintf('$("table_act%d").innerHTML = "%s";', $table_idx, $act_content);
+
+ for ($wup_idx = 0 ; $wup_idx < $user_wup_n ; $wup_idx++)
+ if ($user_cur == $user_wup[$wup_idx])
+ break;
+
+ log_main("JOIN_WAKEUP wup_idx ".$wup_idx." wup_n ".$user_wup_n);
+
+ if ($wup_idx < $user_wup_n) {
+ log_main("JOIN_WAKEUP less");
+ // set the new status
+ $ret .= 'subst = "standup"; ';
+ // clean the action buttons in other tables
+ for ($e = 0 ; $e < TABLES_N ; $e++) {
+ if ($this->table[$e]->player_n < PLAYERS_N)
+ $ret .= sprintf('$("table_act%d").innerHTML = "%s";', $e, table_act_content(TRUE, 0, $e, $user_cur->table));
+ }
+ log_main("JOIN_WAKEUP end less");
+ }
+ else {
+ log_main("JOIN_WAKEUP more");
+ $act_content = table_act_content(($user_cur->subst == 'standup'), $table->player_n, $table_idx, $user_cur->table);
+ $ret .= sprintf('$("table_act%d").innerHTML = "%s";', $table_idx, $act_content);
+ log_main("JOIN_WAKEUP end more");
+ }
+ }
+ log_wr("ROOM_JOIN_WAKEUP: ".$ret);
+ $user_cur->comm[$user_cur->step % COMM_N] = $ret;
+ $user_cur->step_inc();
+ }
+ }