projects
/
brisk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of mop.mine.nu:brisk
[brisk.git]
/
web
/
briskin5
/
Obj
/
briskin5.phh
diff --git
a/web/briskin5/Obj/briskin5.phh
b/web/briskin5/Obj/briskin5.phh
index
9e29e01
..
256d6e8
100644
(file)
--- a/
web/briskin5/Obj/briskin5.phh
+++ b/
web/briskin5/Obj/briskin5.phh
@@
-339,11
+339,9
@@
class Bin5_table extends Table {
function multer($is_new)
{
if ($is_new) {
function multer($is_new)
{
if ($is_new) {
- // return (pow(2, $this->mult) * $this->asta2mult($this->asta_pnt));
return (static::s_multer($this->mult, $this->asta_pnt));
}
else {
return (static::s_multer($this->mult, $this->asta_pnt));
}
else {
- // return (pow(2, $this->old_mult) * $this->asta2mult($this->old_asta_pnt));
return (static::s_multer($this->old_mult, $this->old_asta_pnt));
}
}
return (static::s_multer($this->old_mult, $this->old_asta_pnt));
}
}
@@
-353,6
+351,11
@@
class Bin5_table extends Table {
return (pow(2, $mult) * static::asta2mult($pnt));
}
return (pow(2, $mult) * static::asta2mult($pnt));
}
+ static function s_point_calc($pnt_done, $mult, $pnt_req, $is_allpoints)
+ {
+ return ($pnt_done * static::s_multer($mult, $pnt_req) * ($is_allpoints ? 2 : 1));
+ }
+
// function bunch_create_old() function AND
// {
// $ret = array();
// function bunch_create_old() function AND
// {
// $ret = array();
@@
-509,15
+512,15
@@
class Bin5_table extends Table {
{
GLOBAL $G_all_points, $G_dbasetype;
{
GLOBAL $G_all_points, $G_dbasetype;
- $p
ts
= array();
+ $p
nts_sav
= array();
- $this->old_act = $action;
if ($action == BIN5_RULES_ALLPASS) { // return TRUE if all correct
if ($action == BIN5_RULES_ALLPASS) { // return TRUE if all correct
+ $this->old_act = $action;
$this->old_asta_win = -1;
$this->old_pnt = 0;
$this->mult_inc(1);
for ($i = 0 ; $i < PLAYERS_N ; $i++) {
$this->old_asta_win = -1;
$this->old_pnt = 0;
$this->mult_inc(1);
for ($i = 0 ; $i < PLAYERS_N ; $i++) {
- $p
ts
[$i] = 0;
+ $p
nts_sav
[$i] = 0;
}
$game_delta = 1;
}
$game_delta = 1;
@@
-525,13
+528,17
@@
class Bin5_table extends Table {
$this->game_init(&$bri->user);
}
else if ($action == BIN5_RULES_ABANDON) { // return TRUE if all correct
$this->game_init(&$bri->user);
}
else if ($action == BIN5_RULES_ABANDON) { // return TRUE if all correct
+ if (!($user->handpt <= 2)) {
+ return (FALSE);
+ }
+ $this->old_act = $action;
log_wr(sprintf("GIOCO FINITO !!!"));
$this->old_asta_win = $user->table_pos;
$this->old_pnt = 0;
$this->mult_inc(1);
for ($i = 0 ; $i < PLAYERS_N ; $i++) {
log_wr(sprintf("GIOCO FINITO !!!"));
$this->old_asta_win = $user->table_pos;
$this->old_pnt = 0;
$this->mult_inc(1);
for ($i = 0 ; $i < PLAYERS_N ; $i++) {
- $p
ts
[$i] = 0;
+ $p
nts_sav
[$i] = 0;
}
// Non si cambia mazzo se si abbandona la partita
}
// Non si cambia mazzo se si abbandona la partita
@@
-540,6
+547,7
@@
class Bin5_table extends Table {
$this->game_init(&$bri->user);
}
else if ($action == BIN5_RULES_FINISH) { // return TRUE if all correct
$this->game_init(&$bri->user);
}
else if ($action == BIN5_RULES_FINISH) { // return TRUE if all correct
+ $this->old_act = $action;
do {
$pro = 0;
do {
$pro = 0;
@@
-559,17
+567,17
@@
class Bin5_table extends Table {
log_wr(sprintf("PRO: [%d]", $pro));
// PATTA case !
log_wr(sprintf("PRO: [%d]", $pro));
// PATTA case !
- if (
$this->asta_pnt == 61 && $pro == 6
0) {
+ if (
game_result($this->asta_pnt, $pro) ==
0) {
$this->points[$this->points_n % MAX_POINTS] = array();
for ($i = 0 ; $i < BIN5_PLAYERS_N ; $i++) {
$this->points[$this->points_n % MAX_POINTS][$i] = 0;
$this->points[$this->points_n % MAX_POINTS] = array();
for ($i = 0 ; $i < BIN5_PLAYERS_N ; $i++) {
$this->points[$this->points_n % MAX_POINTS][$i] = 0;
- $p
ts
[$i] = 0;
+ $p
nts_sav
[$i] = 0;
}
$this->points_n++;
$this->old_pnt = $pro;
}
$this->points_n++;
$this->old_pnt = $pro;
+ $this->old_asta_win = $this->asta_win;
$this->mult_inc(1);
$this->mult_inc(1);
- // return($pts);
break;
}
break;
}
@@
-578,31
+586,29
@@
class Bin5_table extends Table {
else
$sig = -1;
else
$sig = -1;
+ // TAG: POINTS_MANAGEMENT
$this->points[$this->points_n % MAX_POINTS] = array();
for ($i = 0 ; $i < BIN5_PLAYERS_N ; $i++) {
if ($i == $this->asta_win)
$this->points[$this->points_n % MAX_POINTS] = array();
for ($i = 0 ; $i < BIN5_PLAYERS_N ; $i++) {
if ($i == $this->asta_win)
- $pt = ($i == $this->friend ? 4 : 2);
+ $p
n
t = ($i == $this->friend ? 4 : 2);
else if ($i == $this->friend)
else if ($i == $this->friend)
- $pt = 1;
+ $p
n
t = 1;
else
else
- $pt = -1;
+ $p
n
t = -1;
- log_wr(sprintf("PRO: pt[%d][%d] = %d", $this->points_n % MAX_POINTS, $i, $pt));
+ log_wr(sprintf("PRO: pt[%d][%d] = %d", $this->points_n % MAX_POINTS, $i, $p
n
t));
- $pt = $pt * $sig * $this->multer(TRUE) * ($pro == 120 ? 2 : 1);
+ $pnt_sav = static::s_point_calc($pnt * $sig, 0, $this->asta_pnt, ($pro == 120));
+ $pnt_tab = static::s_point_calc($pnt * $sig, $this->mult, $this->asta_pnt, ($pro == 120));
- log_wr(sprintf("PRO:[%d][%d][%d]", $sig, $this->multer(TRUE), ($pro == 120 ? 2 : 1)));
-
- $this->points[$this->points_n % MAX_POINTS][$i] = $pt;
- $this->total[$i] += $pt;
- $pts[$i] = $pt;
+ $this->points[$this->points_n % MAX_POINTS][$i] = $pnt_tab;
+ $this->total[$i] += $pnt_tab;
+ $pnts_sav[$i] = $pnt_sav;
}
$this->points_n++;
$this->old_pnt = $pro;
$this->old_asta_win = $this->asta_win;
$this->mult_set(0);
}
$this->points_n++;
$this->old_pnt = $pro;
$this->old_asta_win = $this->asta_win;
$this->mult_set(0);
-
- // return($pts);
} while (0);
$game_delta = 1;
}
} while (0);
$game_delta = 1;
}
@@
-621,7
+627,7
@@
class Bin5_table extends Table {
$ucodes[$i] = $user_cur->code_get();
/* pro log */
$ucodes[$i] = $user_cur->code_get();
/* pro log */
- $plist .= '|'.xcapelt($user_cur->name).'|'.$p
ts
[$i];
+ $plist .= '|'.xcapelt($user_cur->name).'|'.$p
nts_sav
[$i];
$codes .= '|'.xcapelt($user_cur->code_get());
}
$plist .= $codes;
$codes .= '|'.xcapelt($user_cur->code_get());
}
$plist .= $codes;
@@
-646,7
+652,7
@@
class Bin5_table extends Table {
require_once("../Obj/dbase_".$G_dbasetype.".phh");
if (($bdb = BriskDB::create()) != FALSE) {
require_once("../Obj/dbase_".$G_dbasetype.".phh");
if (($bdb = BriskDB::create()) != FALSE) {
- $bdb->bin5_points_save($curtime, $this, $user->table_orig, $action, $ucodes, $p
ts
);
+ $bdb->bin5_points_save($curtime, $this, $user->table_orig, $action, $ucodes, $p
nts_sav
);
unset($bdb);
}
else {
unset($bdb);
}
else {
@@
-1010,9
+1016,9
@@
class Bin5_user extends User {
return (sprintf('xstm.stop(); window.onbeforeunload = null; window.onunload = null; document.location.assign("%s");', $page));
}
return (sprintf('xstm.stop(); window.onbeforeunload = null; window.onunload = null; document.location.assign("%s");', $page));
}
- protected function maincheck($
cur_stat, $cur_subst, $cur_step, $
get, $post, $cookie)
+ protected function maincheck($get, $post, $cookie)
{
{
- GLOBAL $G_lang
, $mlang_indrd
;
+ GLOBAL $G_lang;
GLOBAL $G_with_splash, $G_splash_content, $G_splash_interval, $G_splash_idx;
GLOBAL $G_splash_w, $G_splash_h, $G_splash_timeout;
GLOBAL $G_with_splash, $G_splash_content, $G_splash_interval, $G_splash_idx;
GLOBAL $G_splash_w, $G_splash_h, $G_splash_timeout;
@@
-1024,14
+1030,14
@@
class Bin5_user extends User {
$curtime = time();
/* Nothing changed, return. */
$curtime = time();
/* Nothing changed, return. */
- if ($
cur
_step == $this->step)
+ if ($
this->rd
_step == $this->step)
return (FALSE);
return (FALSE);
- log_rd2("do other cur_stat[".$
cur_stat."] user->stat[".$this->stat."] cur_step[".$cur
_step."] user_step[".$this->step."]");
+ log_rd2("do other cur_stat[".$
this->rd_stat."] user->stat[".$this->stat."] cur_step[".$this->rd
_step."] user_step[".$this->step."]");
- if ($
cur
_step == -1) {
+ if ($
this->rd
_step == -1) {
/*
/*
- * if $
cur
_step == -1 load the current state from the main struct
+ * if $
this->rd
_step == -1 load the current state from the main struct
*/
$S_load_stat['wR_minusone']++;
*/
$S_load_stat['wR_minusone']++;
@@
-1042,7
+1048,7
@@
class Bin5_user extends User {
if ($this->trans_step != -1) {
log_rd2("TRANS USATO ".$this->trans_step);
if ($this->trans_step != -1) {
log_rd2("TRANS USATO ".$this->trans_step);
- $
cur
_step = $this->trans_step;
+ $
this->rd
_step = $this->trans_step;
$this->trans_step = -1;
}
else {
$this->trans_step = -1;
}
else {
@@
-1052,7
+1058,7
@@
class Bin5_user extends User {
/* this part I suppose is read only on $this->room structure */
/* this part I suppose is read only on $this->room structure */
- if ($
cur
_step == -1) {
+ if ($
this->rd
_step == -1) {
log_rd2("PRE-NEWSTAT");
/***************
log_rd2("PRE-NEWSTAT");
/***************
@@
-1071,17
+1077,17
@@
class Bin5_user extends User {
$this->rd_stat = $this->stat;
$this->rd_subst = $this->subst;
$this->rd_step = $this->step;
$this->rd_stat = $this->stat;
$this->rd_subst = $this->subst;
$this->rd_step = $this->step;
- } /* if ($
cur
_step == -1) { */
+ } /* if ($
this->rd
_step == -1) { */
else {
else {
- /* $sem =
Room
::lock_data(FALSE); */
+ /* $sem =
Brisk
::lock_data(FALSE); */
$S_load_stat['rU_heavy']++;
$S_load_stat['rU_heavy']++;
- if ($
cur
_step < $this->step) {
+ if ($
this->rd
_step < $this->step) {
do {
do {
- if ($
cur
_step + COMM_N < $this->step) {
- if (
($cur_stat != $this->stat)
) {
+ if ($
this->rd
_step + COMM_N < $this->step) {
+ if (
$this->rd_stat != $this->stat
) {
$to_stat = $this->stat;
$to_stat = $this->stat;
- /*
Room
::unlock_data($sem); */
+ /*
Brisk
::unlock_data($sem); */
log_load("RESYNC");
printf("xXx BIN5_USER::MAINCHECK\n");
return ($this->page_sync($this->sess, ($to_stat == "table" ? "index.php" : "../index.php"), $this->table, $this->table_token));
log_load("RESYNC");
printf("xXx BIN5_USER::MAINCHECK\n");
return ($this->page_sync($this->sess, ($to_stat == "table" ? "index.php" : "../index.php"), $this->table, $this->table_token));
@@
-1091,10
+1097,10
@@
class Bin5_user extends User {
$this->rd_step = -1;
break;
}
$this->rd_step = -1;
break;
}
- for ($i = $
cur
_step ; $i < $this->step ; $i++) {
+ for ($i = $
this->rd
_step ; $i < $this->step ; $i++) {
$ii = $i % COMM_N;
if ($this->comm[$ii] == "") {
$ii = $i % COMM_N;
if ($this->comm[$ii] == "") {
- if ($i == $
cur
_step)
+ if ($i == $
this->rd
_step)
continue;
else
break;
continue;
else
break;
@@
-1128,14
+1134,14
@@
class Bin5_user extends User {
} /* if ($this->the_end == TRUE) { ... */
} /* if ($this->the_end == TRUE) { ... */
} /* if ($this->the_end == TRUE) { ... */
} /* if ($this->the_end == TRUE) { ... */
- } /* if ($
cur
_step < $this->step) { */
+ } /* if ($
this->rd
_step < $this->step) { */
- /*
Room
::unlock_data($sem); */
- } /* else of if ($
cur
_step == -1) { */
+ /*
Brisk
::unlock_data($sem); */
+ } /* else of if ($
this->rd
_step == -1) { */
return ($ret);
return ($ret);
- } // function maincheck
(...
+ } // function maincheck(...
function continue_set($match_code)
{
function continue_set($match_code)
{
@@
-1151,6
+1157,7
@@
class Bin5_user extends User {
class Bin5 {
static $delta_t = array();
class Bin5 {
static $delta_t = array();
+ var $brisk;// room object reference
var $user;
var $table;
var $user;
var $table;
@@
-1167,7
+1174,7
@@
class Bin5 {
var $delay_mgr;
var $delay_mgr;
- function Bin5
($room
, $table_idx, $table_token, $get, $post, $cookie) {
+ function Bin5
($brisk
, $table_idx, $table_token, $get, $post, $cookie) {
$this->user = array();
$this->table = array();
$this->user = array();
$this->table = array();
@@
-1178,9
+1185,9
@@
class Bin5 {
exit;
}
exit;
}
- $
user = $room->user
;
- $
table = $room->table[$table_idx]
;
-
+ $
this->brisk = $brisk
;
+ $
user = $brisk->user
;
+ $table = $brisk->table[$table_idx];
log_wr("Bin5 constructor");
for ($i = 0 ; $i < $table->player_n ; $i++) {
log_wr("Bin5 constructor");
for ($i = 0 ; $i < $table->player_n ; $i++) {
@@
-1483,7
+1490,6
@@
class Bin5 {
break;
case "index_wr.php":
break;
case "index_wr.php":
- // FIXME $content can be unset
if (isset($table_idx) && isset($table_token)) {
if (($bri = $s_a_p->app->match_get($table_idx, $table_token)) != FALSE) {
ob_start();
if (isset($table_idx) && isset($table_token)) {
if (($bri = $s_a_p->app->match_get($table_idx, $table_token)) != FALSE) {
ob_start();
@@
-1521,6
+1527,8
@@
class Bin5 {
return TRUE;
break;
}
return TRUE;
break;
}
+ $bri->brisk->sess_cur_set($user->sess);
+
// close a previous opened index_read_ifra socket, if exists
if (($prev = $user->rd_socket_get()) != NULL) {
$s_a_p->socks_unset($user->rd_socket_get());
// close a previous opened index_read_ifra socket, if exists
if (($prev = $user->rd_socket_get()) != NULL) {
$s_a_p->socks_unset($user->rd_socket_get());
@@
-1839,6
+1847,7
@@
function show_table_info(&$bri, &$table, $table_pos)
$ret = "";
$user = $bri->user[$table->player[$table_pos]];
$ret = "";
$user = $bri->user[$table->player[$table_pos]];
+ // TAG: POINTS_MANAGEMENT
$pnt_min = $table->points_n - MAX_POINTS < 0 ? 0 : $table->points_n - MAX_POINTS;
$noty = sprintf('<table class=\"points\"><tr><th></th>');
$pnt_min = $table->points_n - MAX_POINTS < 0 ? 0 : $table->points_n - MAX_POINTS;
$noty = sprintf('<table class=\"points\"><tr><th></th>');
@@
-1968,10
+1977,11
@@
function briscola_show($bri, $table, $user)
function game_result($asta_pnt, $pnt)
{
function game_result($asta_pnt, $pnt)
{
+ $sixtee = 60;
if ($asta_pnt == 61) {
if ($asta_pnt == 61) {
- if ($pnt >
60
)
+ if ($pnt >
$sixtee
)
return (1);
return (1);
- else if ($pnt ==
60
)
+ else if ($pnt ==
$sixtee
)
return (0);
else
return (-1);
return (0);
else
return (-1);