X-Git-Url: http://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2Fbriskin5%2FObj%2Fbriskin5.phh;h=3da15451732e63b85bf1304502167c5f396f7144;hb=8fe1e432c4661ebf186026f920d778d37dbe0953;hp=0c36306bbdc1e538322907493427c6fa5e36fdc8;hpb=9cbf3bfaad0cad7feaf6413eb53df0a1475c6303;p=brisk.git
diff --git a/web/briskin5/Obj/briskin5.phh b/web/briskin5/Obj/briskin5.phh
index 0c36306..3da1545 100644
--- a/web/briskin5/Obj/briskin5.phh
+++ b/web/briskin5/Obj/briskin5.phh
@@ -21,12 +21,13 @@
* Suite 330, Boston, MA 02111-1307, USA.
*
*/
-define(BRISKIN5_PLAYERS_N, 3);
-define(BRISKIN5_MAX_PLAYERS, BRISKIN5_PLAYERS_N);
-// define(BRISKIN5_SHM_MIN, (50000 * BRISKIN5_MAX_PLAYERS));
-define(BRISKIN5_SHM_MIN, 32768);
-define(BRISKIN5_SHM_MAX, (BRISKIN5_SHM_MIN + 1048576));
-define(BRISKIN5_SHM_DLT, 32768);
+define(BIN5_PLAYERS_N, 3);
+define(BIN5_MAX_PLAYERS, BIN5_PLAYERS_N);
+// define(BIN5_SHM_MIN, (50000 * BIN5_MAX_PLAYERS));
+define(BIN5_SHM_MIN, 32768);
+define(BIN5_SHM_MAX, (BIN5_SHM_MIN + 1048576));
+define(BIN5_SHM_DLT, 32768);
+define(BIN5_PROXY_PATH, PROXY_PATH."/bin5");
$mlang_bin5_bin5 = array(
'info_part' => array( 'it' => '
Nell\'ultima mano ha chiamato %s, il socio era %s,
',
@@ -137,7 +138,7 @@ class Card {
}
} // end class Card
-class Table_briskin5 extends Table {
+class Bin5_table extends Table {
var $card; // il mazzo di carte
var $mazzo; // chi e' di mazzo
var $gstart;
@@ -164,7 +165,7 @@ class Table_briskin5 extends Table {
var $old_win;
var $old_friend;
- function Table_briskin5()
+ function Bin5_table()
{
}
@@ -172,7 +173,7 @@ class Table_briskin5 extends Table {
/* CREATE() NOT USED
function create($idx)
{
- if (($thiz =& new Table_briskin5()) == FALSE)
+ if (($thiz =& new Bin5_table()) == FALSE)
return (FALSE);
$thiz->create($idx);
@@ -206,7 +207,7 @@ class Table_briskin5 extends Table {
/* CLONE() NOT USED
function myclone(&$from)
{
- if (($thiz =& new Table_briskin5()) == FALSE)
+ if (($thiz =& new Bin5_table()) == FALSE)
return (FALSE);
parent::copy($from);
@@ -248,7 +249,7 @@ class Table_briskin5 extends Table {
function spawn(&$from)
{
- if (($thiz =& new Table_briskin5()) == FALSE)
+ if (($thiz =& new Bin5_table()) == FALSE)
return (FALSE);
$thiz->parentcopy($from);
@@ -278,7 +279,7 @@ class Table_briskin5 extends Table {
// {
// $ret = array();
//
- // for ($i = 0 ; $i < (BRISKIN5_PLAYERS_N == 5 ? 40 : 24) ; $i++) {
+ // for ($i = 0 ; $i < (BIN5_PLAYERS_N == 5 ? 40 : 24) ; $i++) {
// // for ($i = 0 ; $i < 40 ; $i++) {
// $ret[$i] =& new Card($i, 'bunch', 'no_owner');
// }
@@ -291,7 +292,7 @@ class Table_briskin5 extends Table {
{
$ret = array();
- for ($i = 0 ; $i < (BRISKIN5_PLAYERS_N == 5 ? 40 : 24) ; $i++) {
+ for ($i = 0 ; $i < (BIN5_PLAYERS_N == 5 ? 40 : 24) ; $i++) {
$this->card[$i] = new Card($i, 'bunch', 'no_owner');
}
}
@@ -303,10 +304,10 @@ class Table_briskin5 extends Table {
mt_srand(make_seed());
- for ($i = (BRISKIN5_PLAYERS_N == 5 ? 40 : 24) - 1 ; $i >= 0 ; $i--)
+ for ($i = (BIN5_PLAYERS_N == 5 ? 40 : 24) - 1 ; $i >= 0 ; $i--)
$rest[$i] = $i;
- for ($i = (BRISKIN5_PLAYERS_N == 5 ? 40 : 24) - 1 ; $i >= 0 ; $i--) {
+ for ($i = (BIN5_PLAYERS_N == 5 ? 40 : 24) - 1 ; $i >= 0 ; $i--) {
$rn = rand(0, $i);
if ($rn == 0)
@@ -314,7 +315,7 @@ class Table_briskin5 extends Table {
$id = $rest[$rn];
- $owner = $i % BRISKIN5_PLAYERS_N;
+ $owner = $i % BIN5_PLAYERS_N;
$this->card[$id]->assign('hand', $owner);
$rest[$rn] = $rest[$i];
@@ -323,7 +324,7 @@ class Table_briskin5 extends Table {
log_main("bunch_make end");
}
- function init(&$userarr)
+ function init($userarr)
{
/* MOVED INTO SPAWN
$this->mazzo = rand(0,PLAYERS_N-1);
@@ -332,24 +333,24 @@ class Table_briskin5 extends Table {
$this->old_win = -1;
$this->old_reason = "";
*/
- for ($i = 0 ; $i < BRISKIN5_PLAYERS_N ; $i++) {
+ for ($i = 0 ; $i < BIN5_PLAYERS_N ; $i++) {
$this->total[$i] = 0;
- $user_cur = &$userarr[$this->player[$i]];
+ $user_cur = $userarr[$this->player[$i]];
$user_cur->exitislock = TRUE;
}
log_main("table::init: ci siamo");
}
- function game_init(&$userarr)
+ function game_init($userarr)
{
log_rd2("GSTART 4");
- $this->gstart = ($this->mazzo+1) % BRISKIN5_PLAYERS_N;
+ $this->gstart = ($this->mazzo+1) % BIN5_PLAYERS_N;
$this->bunch_make();
- $this->asta_pla_n = BRISKIN5_PLAYERS_N;
+ $this->asta_pla_n = BIN5_PLAYERS_N;
$this->asta_card = -1;
$this->asta_pnt = 60;
$this->asta_win = -1;
@@ -357,9 +358,9 @@ class Table_briskin5 extends Table {
$this->friend = -1;
$this->turn = 0;
- for ($i = 0 ; $i < BRISKIN5_PLAYERS_N ; $i++) {
+ for ($i = 0 ; $i < BIN5_PLAYERS_N ; $i++) {
$this->asta_pla[$i] = TRUE;
- $user_cur = &$userarr[$this->player[$i]];
+ $user_cur = $userarr[$this->player[$i]];
$user_cur->subst = 'asta';
$user_cur->asta_card = -2;
$user_cur->asta_pnt = -1;
@@ -371,7 +372,7 @@ class Table_briskin5 extends Table {
function game_next()
{
- $this->mazzo = ($this->mazzo + 1) % BRISKIN5_PLAYERS_N;
+ $this->mazzo = ($this->mazzo + 1) % BIN5_PLAYERS_N;
}
@@ -381,7 +382,7 @@ class Table_briskin5 extends Table {
$tot = 0;
- for ($i = 0 ; $i < (BRISKIN5_PLAYERS_N == 5 ? 40 : 24) ; $i++) {
+ for ($i = 0 ; $i < (BIN5_PLAYERS_N == 5 ? 40 : 24) ; $i++) {
// for ($i = 0 ; $i < 40 ; $i++) {
if ($this->card[$i]->owner != $idx)
continue;
@@ -394,9 +395,9 @@ class Table_briskin5 extends Table {
}
- function exitlock_show(&$userarr, $table_pos)
+ function exitlock_show($userarr, $table_pos)
{
- $ct = $this->exitlock_calc(&$userarr, $table_pos);
+ $ct = $this->exitlock_calc($userarr, $table_pos);
$ret = sprintf('exitlock_show(%d, %s);', $ct,
($userarr[$this->player[$table_pos]]->exitislock ? 'true' : 'false'));
@@ -414,100 +415,273 @@ class Table_briskin5 extends Table {
return ($ct);
}
-} // end class Table_briskin5
+} // end class Bin5_table
define(BIN5_USER_FLAG_RING_ENDAUCT, 0x01);
-class User_briskin5 extends User {
- var $asta_card; //
- var $asta_pnt; //
- var $handpt; // Total card points at the beginning of the current hand.
- var $exitislock; // Player can exit from the table ?
- var $privflags; // Flags for briskin5 only
-
- function User() {
- }
-
- /* CREATE NOT USED
- function create($name, $sess, $stat = "", $subst = "", $table = -1, $ip="0.0.0.0") {
- if (($thiz =& new User()) == FALSE)
- return (FALSE);
-
- $thiz->asta_card = -2;
- $thiz->asta_pnt = -1;
- $thiz->handpt = -1;
- $thiz->exitislock = TRUE;
- $thiz->privflags = 0;
-
- return ($thiz);
- }
- */
-
- function parentcopy(&$from)
- {
- parent::copy($from);
- }
-
- function copy(&$from)
- {
- $this->parentcopy($from);
-
- $this->asta_card = $from->asta_card;
- $this->asta_pnt = $from->asta_pnt;
- $this->handpt = $from->handpt;
- $this->exitislock = $from->exitislock;
- $this->privflags = $from->privflags;
- }
+class Bin5_user extends User {
+ var $asta_card; //
+ var $asta_pnt; //
+ var $handpt; // Total card points at the beginning of the current hand.
+ var $exitislock; // Player can exit from the table ?
+ var $privflags; // Flags for briskin5 only
+
+ function User() {
+ }
+
+ /* CREATE NOT USED
+ function create($name, $sess, $stat = "", $subst = "", $table = -1, $ip="0.0.0.0") {
+ if (($thiz =& new User()) == FALSE)
+ return (FALSE);
+
+ $thiz->asta_card = -2;
+ $thiz->asta_pnt = -1;
+ $thiz->handpt = -1;
+ $thiz->exitislock = TRUE;
+ $thiz->privflags = 0;
+
+ return ($thiz);
+ }
+ */
+
+ function parentcopy(&$from)
+ {
+ parent::copy($from);
+ }
+
+ function copy(&$from)
+ {
+ $this->parentcopy($from);
+
+ $this->asta_card = $from->asta_card;
+ $this->asta_pnt = $from->asta_pnt;
+ $this->handpt = $from->handpt;
+ $this->exitislock = $from->exitislock;
+ $this->privflags = $from->privflags;
+ }
+
+ /* CLONE NOT USED
+ function myclone(&$from)
+ {
+ if (($thiz =& new User()) == FALSE)
+ return (FALSE);
+
+ $thiz->copy($from);
+
+ return ($thiz);
+ }
+ */
+
+ function spawn($from, $table, $table_pos)
+ {
+ GLOBAL $CO_bin5_pref_ring_endauct;
+
+ if (($thiz = new Bin5_user()) == FALSE)
+ return (FALSE);
+
+ $thiz->parentcopy($from);
+
+ /* NOTE: at this moment idx and table_pos fields have the same value
+ but diffentent functions, we keep them separated for a while */
+ $thiz->idx = $table_pos;
+ $thiz->asta_card = -2;
+ $thiz->asta_pnt = -1;
+ $thiz->handpt = -1;
+ $thiz->exitislock = TRUE;
+
+ log_wr("Bin5 constructor");
+
+ $this->privflags = ($CO_bin5_pref_ring_endauct == "true" ? BIN5_USER_FLAG_RING_ENDAUCT : 0) | 0;
+
+ $thiz->table_orig = $table;
+ $thiz->table = 0;
+ $thiz->table_pos = $table_pos;
+
+ $thiz->step_inc();
+
+ return ($thiz);
+ }
- /* CLONE NOT USED
- function myclone(&$from)
- {
- if (($thiz =& new User()) == FALSE)
- return (FALSE);
+ function step_set($step)
+ {
+ $this->step = $step & 0x7fffffff;
+
+ return TRUE;
+ }
+
+ function step_inc($delta = 1) {
+ $this->step += $delta;
+ /* modularization because unpack() not manage unsigned 32bit int correctly */
+ $this->step &= 0x7fffffff;
+
+ return (TRUE);
+ }
- $thiz->copy($from);
+ static function load_step($sess)
+ {
+ $fp = FALSE;
+ do {
+ if (validate_sess($sess) == FALSE)
+ break;
+
+ if (file_exists(BIN5_PROXY_PATH) == FALSE)
+ mkdir(BIN5_PROXY_PATH, 0775, TRUE);
+ if (($fp = @fopen(BIN5_PROXY_PATH."/".$sess.".step", 'rb')) == FALSE)
+ break;
+ if (($s = fread($fp, 8)) == FALSE)
+ break;
+ if (mb_strlen($s, "ASCII") != 8)
+ break;
+ $arr = unpack('Ls/Li', $s);
+ fclose($fp);
+
+ // log_rd2("A0: ".$arr[0]." A1: ".$arr[1]);
+ return ($arr);
+ } while (0);
+
+ if ($fp != FALSE)
+ fclose($fp);
+
+ log_rd2("STEP_GET [".$sess."]: return false ");
+
+ return (FALSE);
+ }
- return ($thiz);
- }
- */
-
- function spawn(&$from, $table, $table_pos)
- {
- GLOBAL $CO_bin5_pref_ring_endauct;
+ function save_step()
+ {
+ do {
+ if (validate_sess($this->sess) == FALSE)
+ break;
+ if (file_exists(BIN5_PROXY_PATH) == FALSE)
+ mkdir(BIN5_PROXY_PATH, 0775, TRUE);
+ if (($fp = @fopen(BIN5_PROXY_PATH."/".$this->sess.".step", 'w')) == FALSE)
+ break;
+ fwrite($fp, pack("LL",$this->step, $this->idx));
+ fclose($fp);
+
+ log_main("step_set [".$this->sess. "] [".$this->step."]");
+
+ return (TRUE);
+ } while (0);
+
+ return (FALSE);
+ }
- if (($thiz =& new User_briskin5()) == FALSE)
- return (FALSE);
- $thiz->parentcopy($from);
-
- $thiz->asta_card = -2;
- $thiz->asta_pnt = -1;
- $thiz->handpt = -1;
- $thiz->exitislock = TRUE;
-
- log_wr("Briskin5 constructor");
+ static function load_data($tab_id, $id, $sess)
+ {
+ log_main("Bin5_user::load_data: tab_id [".$tab_id."] id [".$id."] sess [".($sess == FALSE ? "FALSE" : $sess)."] ");
+
+ do {
+ if (($tok = @ftok(FTOK_PATH."/bin5/table".$tab_id."/user".$id, "B")) == -1) {
+ log_main("ftok failed");
+ break;
+ }
+
+ if (($shm_sz = sharedmem_sz($tok)) == -1) {
+ log_main("shmop_open failed");
+ }
+
+ if ($shm_sz == -1)
+ $shm_sz = SHM_DIMS_U_MIN;
+
+ if ($shm = shm_attach($tok, $shm_sz)) {
+ $user = @shm_get_var($shm, $tok);
+
+ if ($sess != FALSE && $user->sess != $sess) {
+ break;
+ }
+ log_only("user == ".($user == FALSE ? "FALSE" : "TRUE")." user === ".($user === FALSE ? "FALSE" : "TRUE")." user isset ".(isset($user) ? "TRUE" : "FALSE"));
+
+ if ($user == FALSE) {
+ log_only("INIT MAIN DATA");
+
+ // SHSPLIT FIXME: init_data for User class ??
+ $user = User::create($id, "", "");
+ if (@shm_put_var($shm, $tok, $user) == FALSE) {
+ log_only("PUT_VAR FALLITA ".strlen(serialize($user)));
+ log_only(serialize($user));
+ }
+ }
+ else {
+ if ($sess != FALSE) {
+ // This part isn't strictly required but is good to verify
+ // the coerence of cached and User class saved value of step field.
+ $old_step = $user->step;
+ $arr = Bin5_user::load_step($sess);
+ $user->step = $arr['s'];
+ if ($old_step != $user->step) {
+ log_crit("Bin5:: steps are diffetents User->step ".$user->step." Old_step: ".$old_step);
+ }
+
+ }
+ }
+
+ $user->shm_sz = $shm_sz;
+
+ shm_detach($shm);
+ }
+
+ //
+ // SHSPLIT: load users from the shared memory
+ //
+ return ($user);
+ } while (0);
+
+ log_crit("Bin5_user::load_data:ret FALSE");
+
+ return (FALSE);
+ }
- $this->privflags = ($CO_bin5_pref_ring_endauct == "true" ? BIN5_USER_FLAG_RING_ENDAUCT : 0) | 0;
+ static function save_data($user, $tab_id, $id)
+ {
+ GLOBAL $sess;
+
+ $shm = FALSE;
+
+ if (($tok = @ftok(FTOK_PATH."/bin5/table".$tab_id."/user".$id, "B")) == -1) {
+ return (FALSE);
+ }
+ while ($user->shm_sz < SHM_DIMS_U_MAX) {
+ if (($shm = shm_attach($tok, $user->shm_sz)) == FALSE)
+ break;
+
+ // log_only("PUT_VAR DI ".strlen(serialize($user)));
+ if (shm_put_var($shm, $tok, $user) != FALSE) {
+ shm_detach($shm);
+ $user->save_step();
+ log_main("User[".$id."] saved.");
+ return (TRUE);
+ }
+ if (shm_remove($shm) === FALSE) {
+ log_only("REMOVE FALLITA");
+ break;
+ }
+ shm_detach($shm);
+ $user->shm_sz += SHM_DIMS_U_DLT;
+ }
+
+ if ($shm)
+ shm_detach($shm);
+
+ return (FALSE);
+ }
- $thiz->table_orig = $table;
- $thiz->table = 0;
- $thiz->table_pos = $table_pos;
+} // end class Bin5_user
- return ($thiz);
- }
-} // end class User_briskin5
+class Bin5 {
+ static $delta_t = array();
-class Briskin5 {
var $user;
var $table;
var $comm; // commands for many people
var $step; // current step of the comm array
- var $garbage_timeout;
+ // externalized var $garbage_timeout;
var $shm_sz;
var $table_idx;
@@ -516,35 +690,35 @@ class Briskin5 {
var $the_end;
var $tok;
- function Briskin5 (&$room, $table_idx, $table_token) {
+ function Bin5 ($room, $table_idx, $table_token) {
$this->user = array();
$this->table = array();
$this->the_end = FALSE;
- $this->shm_sz = BRISKIN5_SHM_MIN;
- if (($this->tok = @ftok(FTOK_PATH."/table".$table_idx, "B")) == -1) {
+ $this->shm_sz = BIN5_SHM_MIN;
+ if (($this->tok = @ftok(FTOK_PATH."/bin5/table".$table_idx."/table", "B")) == -1) {
echo "FTOK FAILED";
exit;
}
- $user =& $room->user;
- $table =& $room->table[$table_idx];
+ $user = $room->user;
+ $table = $room->table[$table_idx];
- log_wr("Briskin5 constructor");
+ log_wr("Bin5 constructor");
for ($i = 0 ; $i < $table->player_n ; $i++) {
$user[$table->player[$i]]->table_token = $table_token;
- $this->user[$i] =& User_briskin5::spawn(&$user[$table->player[$i]], $table_idx, $i);
+ $this->user[$i] = Bin5_user::spawn($user[$table->player[$i]], $table_idx, $i);
}
- $this->table[0] =& Table_briskin5::spawn(&$table);
+ $this->table[0] = Bin5_table::spawn(&$table);
- log_main("TABLE_OLD_WIN - Briskin5:".$this->table[0]->old_win);
+ log_main("TABLE_OLD_WIN - Bin5:".$this->table[0]->old_win);
$this->table_idx = $table_idx;
$this->table_token = $table_token;
- $this->garbage_timeout = 0;
+ Bin5::garbage_time_expire_set(0);
- log_wr("Briskin5 constructor end");
+ log_wr("Bin5 constructor end");
}
@@ -553,7 +727,7 @@ class Briskin5 {
GLOBAL $PHP_SELF;
if (validate_sess($sess)) {
- for ($i = 0 ; $i < BRISKIN5_MAX_PLAYERS ; $i++) {
+ for ($i = 0 ; $i < BIN5_MAX_PLAYERS ; $i++) {
if (strcmp($sess, $this->user[$i]->sess) == 0) {
// find it
$idx = $i;
@@ -562,7 +736,7 @@ class Briskin5 {
}
}
log_main(sprintf("get_user: Wrong sess from page [%s]",$PHP_SELF));
- // for ($i = 0 ; $i < BRISKIN5_MAX_PLAYERS ; $i++)
+ // for ($i = 0 ; $i < BIN5_MAX_PLAYERS ; $i++)
// log_main(sprintf("get_user: Wrong sess compared with [%s]",$this->user[$i]->sess));
}
else {
@@ -580,10 +754,10 @@ class Briskin5 {
/* Garbage collector degli utenti in timeout */
$ismod = FALSE;
$curtime = time();
- if ($force || $this->garbage_timeout < $curtime) {
-
- for ($i = 0 ; $i < BRISKIN5_MAX_PLAYERS ; $i++) {
- $user_cur = &$this->user[$i];
+ // externalized if ($force || $this->garbage_timeout < $curtime) {
+ if ($force || Bin5::garbage_time_is_expired($curtime)) {
+ for ($i = 0 ; $i < BIN5_MAX_PLAYERS ; $i++) {
+ $user_cur = $this->user[$i];
if ($user_cur->sess == "" ||
($user_cur->stat == 'table' && ($user_cur->subst == 'shutdowned' || $user_cur->subst == 'shutdowner')))
continue;
@@ -613,37 +787,31 @@ class Briskin5 {
}
// $user->bantime = $user->laccwr + BAN_TIME;
- $this->table_wakeup(&$user_cur);
+ $this->table_wakeup($user_cur);
}
}
}
log_rd2($user_cur->sess." GARBAGE UPDATED!");
- $this->garbage_timeout = $curtime + GARBAGE_TIMEOUT;
+ // externalized $this->garbage_timeout = $curtime + GARBAGE_TIMEOUT;
+ Bin5::garbage_time_expire_set($curtime + GARBAGE_TIMEOUT);
+
$ismod = TRUE;
}
return ($ismod);
}
-
-
-
- //
- // static functions
- //
- function load_data($table_idx, $table_token = "")
+ // Bin5::load_data
+ static function load_data($table_idx, $table_token = "")
{
- GLOBAL $G_false, $sess;
- $doexit = FALSE;
$shm = FALSE;
- log_wr("TABLE_IDX ".FTOK_PATH."/table".$table_idx);
+ log_wr("TABLE_FTOK ".FTOK_PATH."/bin5/table".$table_idx."/table");
do {
- if (($tok = @ftok(FTOK_PATH."/table".$table_idx, "B")) == -1) {
+ if (($tok = @ftok(FTOK_PATH."/bin5/table".$table_idx."/table", "B")) == -1) {
log_main("ftok failed");
- $doexit = TRUE;
break;
}
@@ -660,65 +828,82 @@ class Briskin5 {
if ($table_token != "" && $bri->table_token != $table_token) {
log_wr("bri->table_token: ".$bri->table_token."table_token: ".$table_token);
-
break;
}
$bri->tok = $tok;
shm_detach($shm);
-
- $ret = &$bri;
- return ($ret);
+
+ for ($i = 0 ; $i < BIN5_MAX_PLAYERS ; $i++) {
+ if (($bri->user[$i] = Bin5_user::load_data($table_idx, $i, FALSE)) == FALSE) {
+ log_crit("Bin5_user::load_data failed");
+ break;
+ }
+ }
+ if ($i < BIN5_MAX_PLAYERS) {
+ break;
+ }
+
+ return ($bri);
} while (FALSE);
if ($shm != FALSE)
shm_detach($shm);
log_wr("briskin5 load_data failed");
- if ($doexit)
- exit();
return (FALSE);
}
- function save_data(&$bri)
+ function save_data($bri)
{
- GLOBAL $sess;
-
- $ret = FALSE;
- $shm = FALSE;
-
- log_main("SAVE BRISKIN5 DATA");
-
- if (!isset($bri->tok))
- return (FALSE);
-
- while ($bri->shm_sz < BRISKIN5_SHM_MAX) {
- if (($shm = shm_attach($bri->tok, $bri->shm_sz)) == FALSE)
- break;
+ GLOBAL $sess;
+
+ $ret = FALSE;
+ $shm = FALSE;
+
+ log_main("SAVE BRISKIN5 DATA");
- if (@shm_put_var($shm, $bri->tok, $bri) != FALSE) {
- shm_detach($shm);
- return (TRUE);
+ if (!isset($bri->tok))
+ return (FALSE);
+
+ $user_park = array();
+ for ($i = 0 ; $i < BIN5_MAX_PLAYERS ; $i++) {
+ $user_park[$i] = $bri->user[$i];
+ $bri->user[$i] = FALSE;
}
- if (shm_remove($shm) === FALSE) {
- log_only("REMOVE FALLITA");
- break;
+
+ while ($bri->shm_sz < BIN5_SHM_MAX) {
+ if (($shm = shm_attach($bri->tok, $bri->shm_sz)) == FALSE)
+ break;
+
+ if (@shm_put_var($shm, $bri->tok, $bri) != FALSE) {
+ $ret = TRUE;
+ break;
+ }
+ if (shm_remove($shm) === FALSE) {
+ log_only("REMOVE FALLITA");
+ break;
+ }
+ shm_detach($shm);
+ $bri->shm_sz += BIN5_SHM_DLT;
+ }
+
+ if ($shm)
+ shm_detach($shm);
+
+ // SHSPLIT: reattach users to the room class
+ for ($i = 0 ; $i < BIN5_MAX_PLAYERS ; $i++) {
+ Bin5_user::save_data($user_park[$i], $bri->table_idx, $i);
+ $bri->user[$i] = $user_park[$i];
}
- shm_detach($shm);
- $bri->shm_sz += BRISKIN5_SHM_DLT;
- }
-
- log_crit("save data failed!");
-
- if ($shm)
- shm_detach($shm);
-
- return ($ret);
+ log_load("FINISH: ".($ret == TRUE ? "TRUE" : "FALSE"));
+
+ return ($ret);
}
-
+
function destroy_data($table_idx)
@@ -732,7 +917,7 @@ class Briskin5 {
do {
log_main("DESTROY2 BRISKIN5 DATA");
- if (($tok = @ftok(FTOK_PATH."/table".$table_idx, "B")) == -1)
+ if (($tok = @ftok(FTOK_PATH."/bin5/table".$table_idx."/table", "B")) == -1)
break;
if (($shm = @shmop_open($tok, 'a', 0, 0)) == FALSE)
@@ -760,11 +945,11 @@ class Briskin5 {
{
GLOBAL $sess;
- log_lock("LOCK_DATA ".FTOK_PATH."/table".$table_idx);
+ log_main("lockinfo: DATA ".FTOK_PATH."/bin5/table".$table_idx."/table");
// echo "LOCK: ".FTOK_PATH."/main";
// exit;
// WARNING monitor this step
- if (($tok = @ftok(FTOK_PATH."/table".$table_idx, "B")) == -1) {
+ if (($tok = @ftok(FTOK_PATH."/bin5/table".$table_idx."/table", "B")) == -1) {
return (FALSE);
}
// WARNING monitor this step
@@ -772,26 +957,31 @@ class Briskin5 {
return (FALSE);
}
if (sem_acquire($res)) {
- log_lock("LOCK table ".$table_idx."[res: ".$res."]");
- return ($res);
+ self::$delta_t[$table_idx] = microtime(TRUE);
+ log_lock("LOCK table [".$table_idx."] [".self::$delta_t[$table_idx]."]");
+
+ return (new Vect(array('res' => $res, 'tab' => $table_idx)));
}
else {
- log_lock("LOCK table ".$table_idx.":FAILED");
- return (FALSE);
+ log_lock("LOCK table ".$table_idx.":FAILED");
+ return (FALSE);
}
}
- function unlock_data($res)
+ function unlock_data($res_vect)
{
GLOBAL $sess;
-
- log_lock("UNLOCK table [res: ".$res."]");
+
+ $res = $res_vect->getbyid('res');
+ $tab = $res_vect->getbyid('tab');
+
+ log_lock("UNLOCK table [".$tab."] [".(microtime(TRUE) - (self::$delta_t[$tab]))."]");
return (sem_release($res));
}
- function chatt_send(&$user, $mesg)
+ function chatt_send($user, $mesg)
{
GLOBAL $mlang_brisk, $G_lang;
@@ -819,8 +1009,8 @@ class Briskin5 {
// change
// update local graph
// update remote graphs
- for ($i = 0 ; $i < BRISKIN5_MAX_PLAYERS ; $i++) {
- $user_cur = &$this->user[$i];
+ for ($i = 0 ; $i < BIN5_MAX_PLAYERS ; $i++) {
+ $user_cur = $this->user[$i];
// if ($user_cur->sess == '' || $user_cur->stat != 'room')
if ($user_cur->sess == '')
continue;
@@ -833,7 +1023,7 @@ class Briskin5 {
break;
}
}
- if ($i == BRISKIN5_MAX_PLAYERS) {
+ if ($i == BIN5_MAX_PLAYERS) {
if ($user->flags & USER_FLAG_AUTH && strcasecmp($user->name,$name_new) != 0) {
if ($this->table[$user->table]->auth_only == TRUE) {
$user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; ";
@@ -851,7 +1041,7 @@ class Briskin5 {
log_main($user->sess." chatt_send start set");
- for ($i = 0 ; $i < BRISKIN5_MAX_PLAYERS ; $i++) {
+ for ($i = 0 ; $i < BIN5_MAX_PLAYERS ; $i++) {
log_main($user->sess." chatt_send set loop");
$user_cur = &$this->user[$i];
@@ -863,20 +1053,20 @@ class Briskin5 {
$user_cur->comm[$user_cur->step % COMM_N] = "gst.st = ".($user_cur->step+1)."; ";
$user_cur->comm[$user_cur->step % COMM_N] .= sprintf('set_names([%d, "%s"], [%d, "%s"], [%d, "%s"], [%d, "%s"], [%d, "%s"]); ',
- $this->user[$table->player[($user_cur->table_pos) % BRISKIN5_PLAYERS_N]]->flags,
- xcape($this->user[$table->player[($user_cur->table_pos) % BRISKIN5_PLAYERS_N]]->name),
+ $this->user[$table->player[($user_cur->table_pos) % BIN5_PLAYERS_N]]->flags,
+ xcape($this->user[$table->player[($user_cur->table_pos) % BIN5_PLAYERS_N]]->name),
- $this->user[$table->player[($user_cur->table_pos+1) % BRISKIN5_PLAYERS_N]]->flags,
- xcape($this->user[$table->player[($user_cur->table_pos+1) % BRISKIN5_PLAYERS_N]]->name),
+ $this->user[$table->player[($user_cur->table_pos+1) % BIN5_PLAYERS_N]]->flags,
+ xcape($this->user[$table->player[($user_cur->table_pos+1) % BIN5_PLAYERS_N]]->name),
- $this->user[$table->player[($user_cur->table_pos+2) % BRISKIN5_PLAYERS_N]]->flags,
- xcape($this->user[$table->player[($user_cur->table_pos+2) % BRISKIN5_PLAYERS_N]]->name),
+ $this->user[$table->player[($user_cur->table_pos+2) % BIN5_PLAYERS_N]]->flags,
+ xcape($this->user[$table->player[($user_cur->table_pos+2) % BIN5_PLAYERS_N]]->name),
- (BRISKIN5_PLAYERS_N == 3 ? 0: $this->user[$table->player[($user_cur->table_pos+3) % BRISKIN5_PLAYERS_N]]->flags),
- (BRISKIN5_PLAYERS_N == 3 ? "" : xcape($this->user[$table->player[($user_cur->table_pos+3) % BRISKIN5_PLAYERS_N]]->name)),
+ (BIN5_PLAYERS_N == 3 ? 0: $this->user[$table->player[($user_cur->table_pos+3) % BIN5_PLAYERS_N]]->flags),
+ (BIN5_PLAYERS_N == 3 ? "" : xcape($this->user[$table->player[($user_cur->table_pos+3) % BIN5_PLAYERS_N]]->name)),
- (BRISKIN5_PLAYERS_N == 3 ? 0: $this->user[$table->player[($user_cur->table_pos+4) % BRISKIN5_PLAYERS_N]]->flags),
- (BRISKIN5_PLAYERS_N == 3 ? "" : xcape($this->user[$table->player[($user_cur->table_pos+4) % BRISKIN5_PLAYERS_N]]->name)));
+ (BIN5_PLAYERS_N == 3 ? 0: $this->user[$table->player[($user_cur->table_pos+4) % BIN5_PLAYERS_N]]->flags),
+ (BIN5_PLAYERS_N == 3 ? "" : xcape($this->user[$table->player[($user_cur->table_pos+4) % BIN5_PLAYERS_N]]->name)));
if ($user_cur == $user) {
$itin = ($user->flags & USER_FLAG_AUTH ? "" : "");
$itou = ($user->flags & USER_FLAG_AUTH ? "" : "");
@@ -889,7 +1079,7 @@ class Briskin5 {
}
}
else {
- for ($i = 0 ; $i < ($user->stat == 'room' ? BRISKIN5_MAX_PLAYERS : BRISKIN5_PLAYERS_N) ; $i++) {
+ for ($i = 0 ; $i < ($user->stat == 'room' ? BIN5_MAX_PLAYERS : BIN5_PLAYERS_N) ; $i++) {
if ($user->stat == 'room') {
$user_cur = &$this->user[$i];
if ($user_cur->sess == '' || $user_cur->stat != 'room')
@@ -908,15 +1098,15 @@ class Briskin5 {
}
}
- function table_wakeup(&$user)
+ function table_wakeup($user)
{
$table = &$this->table[0];
- log_main("BRISKIN5_WAKEUP begin function table stat: ".$user->stat." subst: ".$user->subst);
+ log_main("BIN5_WAKEUP begin function table stat: ".$user->stat." subst: ".$user->subst);
$curtime = time();
- log_main("BRISKIN5_WAKEUP from table [".$user->table."] nplayers_n: ".$this->table[$user->table]->player_n);
+ log_main("BIN5_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[$i];
@@ -931,7 +1121,7 @@ class Briskin5 {
$ret = "gst.st = ".($user_cur->step+1)."; ";
$ret .= 'gst.st_loc++; the_end=true; window.onbeforeunload = null; window.onunload = null; document.location.assign("../index.php");|';
- log_wr($user_cur->sess." BRISKIN5_WAKEUP: ".$ret);
+ log_wr($user_cur->sess." BIN5_WAKEUP: ".$ret);
$user_cur->comm[$user_cur->step % COMM_N] = $ret;
$user_cur->step_inc();
}
@@ -960,7 +1150,51 @@ class Briskin5 {
return ($is_ab);
}
-} // end class Briskin5
+
+
+ static function garbage_time_is_expired($tm)
+ {
+ $ret = TRUE;
+ $fp = FALSE;
+ do {
+ if (file_exists(BIN5_PROXY_PATH) == FALSE)
+ mkdir(BIN5_PROXY_PATH, 0775, TRUE);
+ if (($fp = @fopen(BIN5_PROXY_PATH."/garbage_time.expired", 'rb')) == FALSE)
+ break;
+ if (($s = fread($fp, 4)) == FALSE)
+ break;
+ if (mb_strlen($s, "ASCII") != 4)
+ break;
+ $arr = unpack('Le', $s);
+ if ($arr['e'] > $tm)
+ $ret = FALSE;
+ } while (0);
+
+ if ($fp != FALSE)
+ fclose($fp);
+
+ log_rd2("END: return ".($ret ? "TRUE" : "FALSE"));
+
+ return ($ret);
+ }
+
+ static function garbage_time_expire_set($tm)
+ {
+ do {
+ if (file_exists(BIN5_PROXY_PATH) == FALSE)
+ mkdir(BIN5_PROXY_PATH, 0775, TRUE);
+ if (($fp = @fopen(BIN5_PROXY_PATH."/garbage_time.expired", 'wb')) == FALSE)
+ break;
+ fwrite($fp, pack("L",$tm));
+ fclose($fp);
+
+ return (TRUE);
+ } while (0);
+
+ return (FALSE);
+ }
+
+} // end class Bin5
function locshm_exists($tok)
{
@@ -1013,7 +1247,7 @@ function calculate_points(&$table)
$table->old_asta_pnt = $table->asta_pnt;
$table->old_mult = $table->mult;
- for ($i = 0 ; $i < (BRISKIN5_PLAYERS_N == 5 ? 40 : 24) ; $i++) {
+ for ($i = 0 ; $i < (BIN5_PLAYERS_N == 5 ? 40 : 24) ; $i++) {
// for ($i = 0 ; $i < 40 ; $i++) {
$ctt = $table->card[$i]->value % 10;
$own = $table->card[$i]->owner;
@@ -1026,7 +1260,7 @@ function calculate_points(&$table)
if ($table->asta_pnt == 61 && $pro == 60) { // PATTA !
$table->points[$table->points_n % MAX_POINTS] = array();
- for ($i = 0 ; $i < BRISKIN5_PLAYERS_N ; $i++) {
+ for ($i = 0 ; $i < BIN5_PLAYERS_N ; $i++) {
$table->points[$table->points_n % MAX_POINTS][$i] = 0;
$ret[$i] = 0;
}
@@ -1045,7 +1279,7 @@ function calculate_points(&$table)
$gamult = asta2mult($table->asta_pnt);
$table->points[$table->points_n % MAX_POINTS] = array();
- for ($i = 0 ; $i < BRISKIN5_PLAYERS_N ; $i++) {
+ for ($i = 0 ; $i < BIN5_PLAYERS_N ; $i++) {
if ($i == $table->asta_win)
$pt = ($i == $table->friend ? 4 : 2);
else if ($i == $table->friend)
@@ -1085,7 +1319,7 @@ Examples of $is_transition, $is_again:
function show_table(&$room, &$user, $sendstep, $is_transition, $is_again)
{
$table_idx = $user->table;
- $table = &$room->table[$table_idx];
+ $table = $room->table[$table_idx];
$table_pos = $user->table_pos;
$ret = "table_init();";
@@ -1106,20 +1340,20 @@ function show_table(&$room, &$user, $sendstep, $is_transition, $is_again)
$ret .= sprintf('$("myname").innerHTML = "%s%s%s";', $itin, xcape($user->name), $itou);
$ret .= sprintf('set_names([%d, "%s"], [%d, "%s"], [%d, "%s"], [%d, "%s"], [%d, "%s"]); ',
- $room->user[$table->player[($table_pos) % BRISKIN5_PLAYERS_N]]->flags,
- xcape($room->user[$table->player[($table_pos) % BRISKIN5_PLAYERS_N]]->name),
+ $room->user[$table->player[($table_pos) % BIN5_PLAYERS_N]]->flags,
+ xcape($room->user[$table->player[($table_pos) % BIN5_PLAYERS_N]]->name),
- $room->user[$table->player[($table_pos+1) % BRISKIN5_PLAYERS_N]]->flags,
- xcape($room->user[$table->player[($table_pos+1) % BRISKIN5_PLAYERS_N]]->name),
+ $room->user[$table->player[($table_pos+1) % BIN5_PLAYERS_N]]->flags,
+ xcape($room->user[$table->player[($table_pos+1) % BIN5_PLAYERS_N]]->name),
- $room->user[$table->player[($table_pos+2) % BRISKIN5_PLAYERS_N]]->flags,
- xcape($room->user[$table->player[($table_pos+2) % BRISKIN5_PLAYERS_N]]->name),
+ $room->user[$table->player[($table_pos+2) % BIN5_PLAYERS_N]]->flags,
+ xcape($room->user[$table->player[($table_pos+2) % BIN5_PLAYERS_N]]->name),
- (BRISKIN5_PLAYERS_N == 3 ? 0 : $room->user[$table->player[($table_pos+3) % BRISKIN5_PLAYERS_N]]->flags),
- (BRISKIN5_PLAYERS_N == 3 ? "" : xcape($room->user[$table->player[($table_pos+3) % BRISKIN5_PLAYERS_N]]->name)),
+ (BIN5_PLAYERS_N == 3 ? 0 : $room->user[$table->player[($table_pos+3) % BIN5_PLAYERS_N]]->flags),
+ (BIN5_PLAYERS_N == 3 ? "" : xcape($room->user[$table->player[($table_pos+3) % BIN5_PLAYERS_N]]->name)),
- (BRISKIN5_PLAYERS_N == 3 ? 0 : $room->user[$table->player[($table_pos+4) % BRISKIN5_PLAYERS_N]]->flags),
- (BRISKIN5_PLAYERS_N == 3 ? "" : xcape($room->user[$table->player[($table_pos+4) % BRISKIN5_PLAYERS_N]]->name)));
+ (BIN5_PLAYERS_N == 3 ? 0 : $room->user[$table->player[($table_pos+4) % BIN5_PLAYERS_N]]->flags),
+ (BIN5_PLAYERS_N == 3 ? "" : xcape($room->user[$table->player[($table_pos+4) % BIN5_PLAYERS_N]]->name)));
}
/* NOTIFY FOR THE CARD MAKER */
if ($is_transition) { // && $user->subst == "asta" superfluo
@@ -1138,11 +1372,11 @@ function show_table(&$room, &$user, $sendstep, $is_transition, $is_again)
$ret .= "|";
for ($i = 0 ; $i < 8 ; $i++) {
- for ($e = 0 ; $e < BRISKIN5_PLAYERS_N ; $e++) {
+ for ($e = 0 ; $e < BIN5_PLAYERS_N ; $e++) {
$ct = 0;
- for ($o = 0 ; $o < (BRISKIN5_PLAYERS_N == 5 ? 40 : 24) && $ct < $i+1 ; $o++) {
+ for ($o = 0 ; $o < (BIN5_PLAYERS_N == 5 ? 40 : 24) && $ct < $i+1 ; $o++) {
// for ($o = 0 ; $o < 40 && $ct < $i+1 ; $o++) {
- if ($table->card[$o]->owner == (($e + $table->gstart) % BRISKIN5_PLAYERS_N)) {
+ if ($table->card[$o]->owner == (($e + $table->gstart) % BIN5_PLAYERS_N)) {
$ct++;
if ($ct == $i+1)
break;
@@ -1150,10 +1384,10 @@ function show_table(&$room, &$user, $sendstep, $is_transition, $is_again)
}
log_rd("O ".$o." VAL ".$table->card[$o]->value." Owner: ".$table->card[$o]->owner);
- $ret .= sprintf( ' card_send(%d,%d,%d,%8.2f,%d);|', ($table->gstart + $e) % BRISKIN5_PLAYERS_N,
- $i, ((($e + BRISKIN5_PLAYERS_N - $table_pos + $table->gstart) % BRISKIN5_PLAYERS_N) == 0 ?
+ $ret .= sprintf( ' card_send(%d,%d,%d,%8.2f,%d);|', ($table->gstart + $e) % BIN5_PLAYERS_N,
+ $i, ((($e + BIN5_PLAYERS_N - $table_pos + $table->gstart) % BIN5_PLAYERS_N) == 0 ?
$table->card[$o]->value : -1),
- ($i == 7 && $e == (BRISKIN5_PLAYERS_N - 1) ? 1 : 0.5),$i+1);
+ ($i == 7 && $e == (BIN5_PLAYERS_N - 1) ? 1 : 0.5),$i+1);
}
}
}
@@ -1163,7 +1397,7 @@ function show_table(&$room, &$user, $sendstep, $is_transition, $is_again)
$ontabl = array(-1,-1,-1,-1,-1);
$cards = array();
- for ($i = 0 ; $i < (BRISKIN5_PLAYERS_N == 5 ? 40 : 24) ; $i++) {
+ for ($i = 0 ; $i < (BIN5_PLAYERS_N == 5 ? 40 : 24) ; $i++) {
// for ($i = 0 ; $i < 40 ; $i++) {
if ($table->card[$i]->stat == 'hand') {
if ($table->card[$i]->owner == $table_pos) {
@@ -1180,7 +1414,7 @@ function show_table(&$room, &$user, $sendstep, $is_transition, $is_again)
}
}
$logg = "\n";
- for ($i = 0 ; $i < BRISKIN5_PLAYERS_N ; $i++) {
+ for ($i = 0 ; $i < BIN5_PLAYERS_N ; $i++) {
$logg .= sprintf("INHAND: %d IN TABLE %d TAKED %d\n", $inhand[$i], $ontabl[$i], $taked[$i]);
}
log_main("Stat table: ".$logg);
@@ -1194,7 +1428,7 @@ function show_table(&$room, &$user, $sendstep, $is_transition, $is_again)
$ret .= sprintf('card_setours(%s);', $oursarg);
/* Dispose all cards */
- for ($i = 0 ; $i < BRISKIN5_PLAYERS_N ; $i++) {
+ for ($i = 0 ; $i < BIN5_PLAYERS_N ; $i++) {
/* Qui sotto al posto di + 1 c'era + ->gstart ... credo in modo errato */
$ret .= sprintf('cards_dispose(%d,%d,%d);', $i,
($inhand[$i] <= 8 ? $inhand[$i] : 8) , $taked[$i]);
@@ -1212,12 +1446,12 @@ function show_table(&$room, &$user, $sendstep, $is_transition, $is_again)
/* show users auction status */
$showst = "";
- for ($i = 0 ; $i < BRISKIN5_PLAYERS_N ; $i++) {
+ for ($i = 0 ; $i < BIN5_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 (BRISKIN5_PLAYERS_N == 3)
+ if (BIN5_PLAYERS_N == 3)
$showst .= ",-2,-2";
$ret .= sprintf('document.title = "Brisk - Tavolo %d (asta)";', $user->table_orig);
$ret .= sprintf('show_astat(%s);', $showst);
@@ -1229,7 +1463,7 @@ function show_table(&$room, &$user, $sendstep, $is_transition, $is_again)
}
else {
/* show auction */
- if ($table_pos == ($table->gstart % BRISKIN5_PLAYERS_N) &&
+ if ($table_pos == ($table->gstart % BIN5_PLAYERS_N) &&
$table->asta_win == -1)
$ret .= sprintf('dispose_asta(%d,%d, %s);',
$table->asta_card + 1, $table->asta_pnt+1, ($user->handpt <= 2 ? "true" : "false"));
@@ -1240,7 +1474,7 @@ function show_table(&$room, &$user, $sendstep, $is_transition, $is_again)
/* Remark */
if ($table->asta_win == -1) { // auction case
- if ($table_pos == ($table->gstart % BRISKIN5_PLAYERS_N))
+ if ($table_pos == ($table->gstart % BIN5_PLAYERS_N))
$ret .= "remark_on();";
else
$ret .= "remark_off();";
@@ -1254,7 +1488,7 @@ function show_table(&$room, &$user, $sendstep, $is_transition, $is_again)
}
else if ($user->subst == 'game') {
/* HIGHLIGHT */
- if (($table->gstart + $table->turn) % BRISKIN5_PLAYERS_N == $table_pos)
+ if (($table->gstart + $table->turn) % BIN5_PLAYERS_N == $table_pos)
$ret .= "is_my_time = true; remark_on();";
else
$ret .= "remark_off();";
@@ -1275,7 +1509,7 @@ function calculate_winner(&$table)
$cur_val = 100;
$cur_seed = $table->briscola - ($table->briscola % 10);
- for ($i = 0 ; $i < (BRISKIN5_PLAYERS_N == 5 ? 40 : 24) ; $i++) {
+ for ($i = 0 ; $i < (BIN5_PLAYERS_N == 5 ? 40 : 24) ; $i++) {
// for ($i = 0 ; $i < 40 ; $i++) {
if ($table->card[$i]->stat != "table")
continue;
@@ -1296,7 +1530,7 @@ function calculate_winner(&$table)
$cur_seed = $cur_val - ($cur_val % 10);
}
- for ($i = 0 ; $i < BRISKIN5_PLAYERS_N ; $i++) {
+ for ($i = 0 ; $i < BIN5_PLAYERS_N ; $i++) {
if (($ontab[$i] - ($ontab[$i] % 10)) == $cur_seed) {
if ($ontab[$i] < $cur_val) {
$cur_val = $ontab[$i];
@@ -1305,7 +1539,7 @@ function calculate_winner(&$table)
}
}
- for ($i = 0 ; $i < BRISKIN5_PLAYERS_N ; $i++) {
+ for ($i = 0 ; $i < BIN5_PLAYERS_N ; $i++) {
$table->card[$ontid[$i]]->owner = $cur_win;
$table->card[$ontid[$i]]->stat = "take"; // Card stat
}
@@ -1317,13 +1551,13 @@ function show_table_info(&$room, &$table, $table_pos)
GLOBAL $G_lang, $mlang_bin5_bin5;
$ret = "";
- $user = &$room->user[$table->player[$table_pos]];
+ $user = $room->user[$table->player[$table_pos]];
$pnt_min = $table->points_n - MAX_POINTS < 0 ? 0 : $table->points_n - MAX_POINTS;
$noty = sprintf(' | ');
// Names.
- for ($i = 0 ; $i < BRISKIN5_PLAYERS_N ; $i++)
+ for ($i = 0 ; $i < BIN5_PLAYERS_N ; $i++)
$noty .= sprintf('%s | ', xcape($room->user[$table->player[$i]]->name));
$noty .= sprintf("
");
@@ -1332,14 +1566,14 @@ function show_table_info(&$room, &$table, $table_pos)
for ($i = $pnt_min ; $i < $table->points_n ; $i++) {
$noty .= sprintf('%d | ', $i+1);
- for ($e = 0 ; $e < BRISKIN5_PLAYERS_N ; $e++)
+ for ($e = 0 ; $e < BIN5_PLAYERS_N ; $e++)
$noty .= sprintf('%d | ', $table->points[$i % MAX_POINTS][$e]);
$noty .= "
";
}
// Total points.
$noty .= 'Tot. | ';
- for ($e = 0 ; $e < BRISKIN5_PLAYERS_N ; $e++)
+ for ($e = 0 ; $e < BIN5_PLAYERS_N ; $e++)
$noty .= sprintf('%d | ', $table->total[$e]);
$noty .= "
---|
";
@@ -1401,12 +1635,12 @@ function show_table_info(&$room, &$table, $table_pos)
if ($user->subst == 'asta') {
if ($table->asta_win == -1) // auction case
- $curplayer = $table->gstart % BRISKIN5_PLAYERS_N;
+ $curplayer = $table->gstart % BIN5_PLAYERS_N;
else
$curplayer = $table->asta_win;
}
else if ($user->subst == 'game') {
- $curplayer = ($table->gstart + $table->turn) % BRISKIN5_PLAYERS_N;
+ $curplayer = ($table->gstart + $table->turn) % BIN5_PLAYERS_N;
}
/* MLANG: " tocca a te giocare.", " tocca a $unam giocare.", " La partita vale %s.", "torna alla partita" */
@@ -1464,7 +1698,7 @@ function briscola_show($room, $table, $user)
$ret .= sprintf($prestr,
xcape($room->user[$table->player[$table->asta_win]]->name), $ptnadd);
}
- $ret .= sprintf('set_iscalling(%d);', ($table->asta_win - $user->table_pos + BRISKIN5_PLAYERS_N) % BRISKIN5_PLAYERS_N);
+ $ret .= sprintf('set_iscalling(%d);', ($table->asta_win - $user->table_pos + BIN5_PLAYERS_N) % BIN5_PLAYERS_N);
$ret .= sprintf('$("caller").style.backgroundImage = \'url("img/brisk_caller_sand%d.png")\';',
$table->asta_win);
@@ -1497,7 +1731,7 @@ function game_result($asta_pnt, $pnt)
}
}
-function log_points($curtime, &$user, $where, $mesg)
+function log_points($curtime, $user, $where, $mesg)
{
GLOBAL $_SERVER;