X-Git-Url: http://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2Findex.php;h=475d3cfa94d4db0d060783bad8f9a81a2a680120;hb=a2924d2335ec5325dc322600fe373625575ac8e2;hp=73868dde5e38ef61b6124a56668e3e101f9c80b9;hpb=1f106d3bc82e9719222d91313cd8e9e433ea099d;p=brisk.git diff --git a/web/index.php b/web/index.php index 73868dd..475d3cf 100644 --- a/web/index.php +++ b/web/index.php @@ -32,7 +32,7 @@ log_load((isset($sess) ? $sess : "XXX"), "LOAD: index.php"); function main() { - GLOBAL $sess, $name, $table_idx, $BRISK_SHOWHTML, $BRISK_DEBUG, $_SERVER; + GLOBAL $sess, $name, $table_idx, $table_token, $BRISK_SHOWHTML, $BRISK_DEBUG, $_SERVER; $body = ""; $tables = ""; @@ -53,46 +53,70 @@ function main() $change_page = TRUE; log_load($sess, "resync from index.php"); - if (isset($table_idx)) { - $table_idx = (int)$table_idx; - log_load($sess, "SET TABLE_IDX ".TABLES_N); - if ($table_idx >= 0 && $table_idx < TABLES_N) { - log_load($sess, "SET TABLE_IDX GOOD VALUE"); - $bri_sem = Briskin5::lock_data($table_idx); - $bri = &Briskin5::load_data($table_idx); - - if (($bri_user = &$bri->get_user($sess, &$bri_idx)) != FALSE) { - if ($bri_user->subst == "shutdowned" || $bri_user->subst == "shutdowner") { - // QUI WAKEUP - $table = &$room->table[$user->table]; - $bri_table = &$bri->table[0]; - - for ($i = 0 ; $i < $bri_table->player_n ; $i++) { - $room->user[$table->player[$i]]->subst = $bri->user[$i]->subst; - $room->user[$table->player[$i]]->step = $bri->user[$i]->step; - $room->user[$table->player[$i]]->trans_step = $bri->user[$i]->step+1; - log_load($sess, "from table bri subst[".$i."]: ".$bri->user[$i]->subst); - log_load($sess, "from table roo subst[".$i."]: ".$room->user[$table->player[$i]]->subst); - } - - $room->room_join_wakeup(&$user); - - if (Room::save_data(&$room) == FALSE) { - echo "ERRORE SALVATAGGIO\n"; - exit; - } - - $change_page = FALSE; - } - log_load($sess, "from table subst: ".$bri_user->subst); + log_load($sess, "SET TABLE_IDX table.">".TABLES_N); + + log_load($sess, "SET TABLE_IDX GOOD VALUE"); + $bri_sem = Briskin5::lock_data($user->table); + if (($bri = &Briskin5::load_data($user->table, $table_token)) == FALSE) { + // table data error: recovery + + log_load($sess, "table data error: recovery".$user->table); + + $table = &$room->table[$user->table]; + for ($i = 0 ; $i < $table->player_n ; $i++) { + $user_cur = &$room->user[$table->player[$i]]; + $user_cur->subst = "shutdowner"; + $user_cur->step_inc(); + $user_cur->trans_step = $user_cur->step; + + $ret = sprintf('stat = "%s"; subst = "%s";', $cur_user->stat, $cur_user->subst); + $ret .= "gst.st = ".($user_cur->step+1)."; "; + $ret .= show_notify("
I dati del tavolo n°".$user->table." sono inconsistenti, verranno resettati.

Torni in piedi.

", 2000, "Chiudi.", 400, 110); + $user_cur->comm[$user_cur->step % COMM_N] = $ret; + $user_cur->step_inc(); + } + + $room->room_join_wakeup(&$user); + + if (Room::save_data(&$room) == FALSE) { + echo "ERRORE SALVATAGGIO\n"; + exit; + } + + $change_page = FALSE; + } + else if (($bri_user = &$bri->get_user($sess, &$bri_idx)) != FALSE) { + if ($bri_user->subst == "shutdowned" || $bri_user->subst == "shutdowner") { + // QUI WAKEUP + $table = &$room->table[$user->table]; + $bri_table = &$bri->table[0]; + + for ($i = 0 ; $i < $bri_table->player_n ; $i++) { + $room->user[$table->player[$i]]->subst = $bri->user[$i]->subst; + $room->user[$table->player[$i]]->step = $bri->user[$i]->step; + $room->user[$table->player[$i]]->trans_step = $bri->user[$i]->step+1; + log_load($sess, "from table bri subst[".$i."]: ".$bri->user[$i]->subst); + log_load($sess, "from table roo subst[".$i."]: ".$room->user[$table->player[$i]]->subst); + } + + $room->room_join_wakeup(&$user); + + if (Room::save_data(&$room) == FALSE) { + echo "ERRORE SALVATAGGIO\n"; + exit; } - Briskin5::unlock_data($bri_sem); + + $change_page = FALSE; + Briskin5::destroy_data(&$bri); } + log_load($sess, "from table subst: ".$bri_user->subst); } + Briskin5::unlock_data($bri_sem); + log_load($sess, "unlock Room"); if ($change_page) { Room::unlock_data($sem); - header ("Location: table.php"); + header ("Location: briskin5/briskin5.php"); exit; } }