From eb55338d33c4ce736b2ec86d9bca3288d332cb99 Mon Sep 17 00:00:00 2001 From: "Matteo Nastasi (mop)" Date: Sat, 19 Apr 2008 14:34:18 +0000 Subject: [PATCH] Updated copyright, add shutdown check brisk status, check for wakeup_timeout to allow users of finished table to wakeup, removed old code. --- web/index_wr.php | 185 ++++++++++++++++++++--------------------------- 1 file changed, 80 insertions(+), 105 deletions(-) diff --git a/web/index_wr.php b/web/index_wr.php index 6493201..51fc94a 100644 --- a/web/index_wr.php +++ b/web/index_wr.php @@ -2,7 +2,10 @@ /* * brisk - index_wr.php * - * Copyright (C) 2006 matteo.nastasi@milug.org + * Copyright (C) 2006-2008 Matteo Nastasi + * mailto: nastasi@alternativeoutput.it + * matteo.nastasi@milug.org + * web: http://www.alternativeoutput.it * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -122,12 +125,26 @@ else if ($user->stat == 'room') { if ($argz[0] == 'sitdown') { log_wr("SITDOWN command"); - if ($G_shutdown) { + if ($user->the_end == TRUE) { + log_wr("INFO:SKIP:argz == sitdown && the_end == TRUE => ignore request."); + Room::unlock_data($sem); + exit; + } + + // Take parameters + $table_idx = $argz[1]; + $table = &$room->table[$table_idx]; + + $curtime = time(); + + if ($G_shutdown || $table->wakeup_time > $curtime) { $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; - $timecur = time(); - $dt = date("H:i ", $timecur); - $user->comm[$user->step % COMM_N] .= sprintf('chatt_sub("%s","Il server sta per essere riavviato, non possono avere inizio nuove partite.");', $dt.NICKSERV); + $dt = date("H:i ", $curtime); + if ($G_shutdown) + $user->comm[$user->step % COMM_N] .= sprintf('chatt_sub("%s","Il server sta per essere riavviato, non possono avere inizio nuove partite.");', $dt.NICKSERV); + else + $user->comm[$user->step % COMM_N] .= sprintf('chatt_sub("%s","Il tavolo si è appena liberato, ci si potrà sedere tra %d secondi.");', $dt.NICKSERV, $table->wakeup_time - $curtime); $user->step_inc(); Room::save_data($room); @@ -135,11 +152,6 @@ else if ($user->stat == 'room') { exit; } - if ($user->the_end == TRUE) { - log_wr("INFO:SKIP:argz == sitdown && the_end == TRUE => ignore request."); - Room::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)."; "; @@ -151,10 +163,6 @@ else if ($user->stat == 'room') { exit; } - // Take parameters - $table_idx = $argz[1]; - $table = &$room->table[$table_idx]; - if ($table->player_n == PLAYERS_N) { log_wr("WARN:FSM: Sitdown unreachable, table full."); Room::unlock_data($sem); @@ -178,98 +186,65 @@ else if ($user->stat == 'room') { // START THE SPAWN HERE!!!! // - if (TRUE) { // WITH SPAWN - $curtime = time(); - // Create new spawned table - $bri_sem = Briskin5::lock_data($table_idx); - $table_token = uniqid(""); - $room->table[$table_idx]->table_token = $table_token; - $room->table[$table_idx]->table_start = $curtime; - - if (($bri =& new Briskin5(&$room, $table_idx, $table_token)) == FALSE) - log_wr("bri create: FALSE"); - else - log_wr("bri create: ".serialize($bri)); + $curtime = time(); + // Create new spawned table + $bri_sem = Briskin5::lock_data($table_idx); + $table_token = uniqid(""); + $room->table[$table_idx]->table_token = $table_token; + $room->table[$table_idx]->table_start = $curtime; + + if (($bri =& new Briskin5(&$room, $table_idx, $table_token)) == FALSE) + log_wr("bri create: FALSE"); + else + log_wr("bri create: ".serialize($bri)); - // init table - $bri_table =& $bri->table[0]; - $bri_table->init(&$bri->user); - $bri_table->game_init(&$bri->user); - // - // Init spawned users. - // - for ($i = 0 ; $i < $table->player_n ; $i++) { - $bri_user_cur = &$bri->user[$i]; - $user_cur = &$room->user[$table->player[$i]]; - - $bri_user_cur->stat_set('table'); - $bri_user_cur->subst = 'asta'; - $bri_user_cur->laccwr = $curtime; - - $bri_user_cur->trans_step = $user_cur->step + 1; - $bri_user_cur->comm[$bri_user_cur->step % COMM_N] = ""; - $bri_user_cur->step_inc(); - $bri_user_cur->comm[$bri_user_cur->step % COMM_N] = show_table(&$bri,&$bri_user_cur,$bri_user_cur->step+1,TRUE, FALSE); - - $bri_user_cur->step_inc(); - - log_wr("TRY PRESAVE: ".$bri_user_cur->step." TRANS STEP: ".$bri_user_cur->trans_step); - - log_wr("Pre if!"); - -// ARRAY_POP DISABLED -// // CHECK - while (array_pop($user_cur->comm) != NULL); - - $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/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; - log_wr("TRANS ATTIVATO"); - - - $user_cur->stat_set('table'); - $user_cur->subst = 'asta'; - $user_cur->laccwr = $curtime; - $user_cur->step_inc(); - } - log_wr("presave bri"); - Briskin5::save_data($bri); - Briskin5::unlock_data($bri_sem); - log_wr("postsave bri"); - } - else { // BEFORE SPAWN - // init table - $table->init(&$room->user); - $table->game_init(&$room->user); - $curtime = time(); - - // init users - for ($i = 0 ; $i < $table->player_n ; $i++) { - $user_cur = &$room->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(&$room,&$user_cur,$user_cur->step+1,TRUE, FALSE); - $user_cur->step_inc(); - } - } // end else { BEFORE SPAWN - - log_wr("MOP after"); - + // init table + $bri_table =& $bri->table[0]; + $bri_table->init(&$bri->user); + $bri_table->game_init(&$bri->user); + // + // Init spawned users. + // + for ($i = 0 ; $i < $table->player_n ; $i++) { + $bri_user_cur = &$bri->user[$i]; + $user_cur = &$room->user[$table->player[$i]]; + + $bri_user_cur->stat_set('table'); + $bri_user_cur->subst = 'asta'; + $bri_user_cur->laccwr = $curtime; + + $bri_user_cur->trans_step = $user_cur->step + 1; + $bri_user_cur->comm[$bri_user_cur->step % COMM_N] = ""; + $bri_user_cur->step_inc(); + $bri_user_cur->comm[$bri_user_cur->step % COMM_N] = show_table(&$bri,&$bri_user_cur,$bri_user_cur->step+1,TRUE, FALSE); + + $bri_user_cur->step_inc(); + + log_wr("TRY PRESAVE: ".$bri_user_cur->step." TRANS STEP: ".$bri_user_cur->trans_step); + + log_wr("Pre if!"); + + // ARRAY_POP DISABLED + // // CHECK + while (array_pop($user_cur->comm) != NULL); + + $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/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; + log_wr("TRANS ATTIVATO"); + + + $user_cur->stat_set('table'); + $user_cur->subst = 'asta'; + $user_cur->laccwr = $curtime; + $user_cur->step_inc(); + } + log_wr("presave bri"); + Briskin5::save_data($bri); + Briskin5::unlock_data($bri_sem); + log_wr("postsave bri"); } // change room $room->room_sitdown(&$user, $table_idx); -- 2.17.1