enabled deck select at table preferences
[brisk.git] / web / briskin5 / Obj / briskin5.phh
index 5e22966..0bbd9d9 100644 (file)
@@ -32,6 +32,7 @@ define('BIN5_PROXY_PATH', PROXY_PATH."/bin5");
 
 require_once('rules.phh');
 
+// FOR TORNEO TURN IT TO BIN5_TOURNAMENT_TOGETHER17
 define('BIN5_TOURNAMENT_CURRENT', BIN5_TOURNAMENT_NO_DRAW);
 
 $mlang_bin5_bin5 = array(
@@ -67,6 +68,23 @@ $mlang_bin5_bin5 = array(
 $table_wellarr = Array( 'it' => Array ( 'Benvenuto al tavolo. Se almeno tre giocatori non sbloccano l\'uscita cliccando il lucchetto, chi esce non può risedersi a un qualunque tavolo per '.floor(BAN_TIME/60).' minuti.'),
                         'en' => Array ( 'EN Benvenuto al tavolo. Se almeno tre giocatori non sbloccano l\'uscita cliccando il lucchetto, chi esce non può risedersi a un qualunque tavolo per '.floor(BAN_TIME/60).' minuti.') );
 
+
+// FIXME - DYNAMIC WITH CACHE AND RELOAD FROM DB
+function deck_keys()
+{
+    return array('xx', 'yy');
+}
+
+function deck_id2descr($id, $lang)
+{
+    if ($id == 'xx')
+        return 'carte originali';
+    else if ($id == 'yy')
+        return 'carte strette';
+
+    return 'carte sconosciute';
+}
+
 function multoval($mult)
 {
     GLOBAL $G_lang;
@@ -88,7 +106,21 @@ function dom_select_rules()
     $ret = "<select id='select_rules'>\n";
     foreach (rules_keys() as $key) {
         $value = rules_id2descr($key, $G_lang);
-        $ret .= sprintf("<option value='%d'>%s</option>\n", $key, $value);
+        $ret .= sprintf("<option value='%d'%s>%s</option>\n", $key, ($key == BIN5_TOURNAMENT_CURRENT ? " selected='selected'" : ""), $value);
+    }
+    $ret .= "</select>\n";
+
+    echo "$ret";
+}
+
+function dom_select_deck($cur_sel)
+{
+    GLOBAL $G_lang;
+
+    $ret = "<select id='select_deck'>\n";
+    foreach (deck_keys() as $key) {
+        $value = deck_id2descr($key, $G_lang);
+        $ret .= sprintf("<option value='%s'%s>%s</option>\n", $key, ($key == $cur_sel ? " selected='selected'" : ""), $value);
     }
     $ret .= "</select>\n";
 
@@ -572,7 +604,7 @@ class Bin5_table extends Table {
             $this->mazzo = $match_data['mazzo_next'];
             $this->mult  = $match_data['mult_next'];
             $this->match_id = $match_id;
-            $this->game_init(&$bri->user);
+            $this->game_init($bri->user);
 
             /* reload of the page with the new layout */
             for ($i = 0 ; $i < BIN5_PLAYERS_N ; $i++) {
@@ -587,7 +619,7 @@ class Bin5_table extends Table {
                 $user_cur->comm[$user_cur->step % COMM_N] = "";
                 $user_cur->step_inc();
 
-                $user_cur->comm[$user_cur->step % COMM_N] = show_table(&$bri, &$user_cur, $user_cur->step+1, TRUE, FALSE);
+                $user_cur->comm[$user_cur->step % COMM_N] = show_table($bri, $user_cur, $user_cur->step+1, TRUE, FALSE);
                 $user_cur->step_inc();
             }
             return (TRUE);
@@ -685,7 +717,7 @@ class Bin5_table extends Table {
             $rules_name = rules_id2name($rules_id);
             $this->rules = new $rules_name($this);
 
-            // $this->game_init(&$bri->user);
+            // $this->game_init($bri->user);
 
             /* reload of the page with the new layout */
             for ($i = 0 ; $i < BIN5_PLAYERS_N ; $i++) {
@@ -702,7 +734,7 @@ class Bin5_table extends Table {
                 $user_cur->comm[$user_cur->step % COMM_N] = "";
                 $user_cur->step_inc();
 
-                $user_cur->comm[$user_cur->step % COMM_N] = show_table(&$bri, &$user_cur, $user_cur->step+1, TRUE, FALSE);
+                $user_cur->comm[$user_cur->step % COMM_N] = show_table($bri, $user_cur, $user_cur->step+1, TRUE, FALSE);
                 $user_cur->step_inc();
             }
             return (TRUE);
@@ -947,7 +979,7 @@ class Bin5_user extends User {
     protected function page_sync($sess, $page)
     {
         log_rd2("PAGE_SYNC");
-        printf("xXx BIN5_USER::PAGE_SYNC\n");
+        // printf("xXx BIN5_USER::PAGE_SYNC\n");
         return (sprintf('xstm.stop(); window.onbeforeunload = null; window.onunload = null; document.location.assign("%s");', $page));
     }
 
@@ -1004,8 +1036,8 @@ class Bin5_user extends User {
           if ($this->stat == 'table') {
               log_load("RESYNC");
               /* NOTE: $this->room is associated with the current $bri object */
-              printf("xXx CLASS NAME [%s]\n", get_class($this->room));
-              $ret = show_table(&$this->room, $this, $this->step, FALSE, FALSE);
+              // printf("xXx CLASS NAME [%s]\n", get_class($this->room));
+              $ret = show_table($this->room, $this, $this->step, FALSE, FALSE);
           }
           log_rd2("NEWSTAT: ".$this->stat);
 
@@ -1022,11 +1054,11 @@ class Bin5_user extends User {
                       if ($this->rd_stat != $this->stat) {
                           $to_stat = $this->stat;
                           log_load("RESYNC");
-                          printf("xXx BIN5_USER::MAINCHECK\n");
+                          // 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_rd2("lost history, refresh from scratch");
-                      printf("xXx LOST HISTORY!\n");
+                      // printf("xXx LOST HISTORY!\n");
                       $this->rd_step = -1;
                       break;
                   }
@@ -1117,7 +1149,7 @@ class Bin5 {
             $user[$table->player[$i]]->table_token = $table_token;
             $this->user[$i] = Bin5_user::spawn($user[$table->player[$i]], $this, $table_idx, $i, $get, $post, $cookie);
         }
-        $this->table[0] = Bin5_table::spawn(&$table);
+        $this->table[0] = Bin5_table::spawn($table);
 
         log_main("TABLE_OLD_WIN - Bin5:".$this->table[0]->old_asta_win);
 
@@ -1200,7 +1232,7 @@ class Bin5 {
                     ($user_cur->stat == 'table' && ($user_cur->subst == 'shutdowned' || $user_cur->subst == 'shutdowner')))
                     continue;
 
-                if ($user_cur->lacc + EXPIRE_TIME_RD < ($curtime - $delta)) { // Auto logout dell'utente
+                if ($user_cur->lacc + (($user_cur->ping_req ? 1.5 : 1.0) * EXPIRE_TIME_RD) < ($curtime - $delta)) { // Auto logout dell'utente
                     log_rd2($user_cur->sess." bin5 AUTO LOGOUT.");
 
                     if ($user_cur->stat == 'table') {
@@ -1210,7 +1242,7 @@ class Bin5 {
                         $user_cur->the_end = TRUE;
 
                         /* se gli altri utenti non erano d'accordo questo utente viene bannato */
-                        $remcalc = $this->table[0]->exitlock_calc(&$this->user, $user_cur->table_pos);
+                        $remcalc = $this->table[0]->exitlock_calc($this->user, $user_cur->table_pos);
                         if ($remcalc < 3) {
                             require_once("${G_base}Obj/hardban.phh");
                             Hardbans::add(($user_cur->is_auth() ? $user_cur->name : FALSE),
@@ -1403,7 +1435,7 @@ class Bin5 {
     {
         GLOBAL $G_ban_list, $G_black_list;
 
-        printf("NEW_SOCKET (root): %d\n", intval($new_socket));
+        // printf("NEW_SOCKET (root): %d\n", intval($new_socket));
 
         $enc = get_encoding($header);
         if (isset($header['User-Agent'])) {
@@ -1430,7 +1462,7 @@ class Bin5 {
         case "":
         case "index.php":
             ob_start();
-            bin5_index_main($transp_type, $header_out, $addr, $get, $post, $cookie);
+            bin5_index_main($transp_type, $header, $header_out, $addr, $get, $post, $cookie);
             $content = ob_get_contents();
             ob_end_clean();
 
@@ -1458,9 +1490,10 @@ class Bin5 {
 
             break;
         case "index_rd.php":
+        case "index_rd_wss.php":
             if (($transp  = gpcs_var('transp', $get, $post, $cookie)) === FALSE)
                 $transp = "iframe";
-            if ($transp == 'websocket')
+            if ($transp == 'websocket' || $transp == 'websocketsec')
                 $enc = 'plain';
 
             do {
@@ -1482,7 +1515,7 @@ class Bin5 {
                 if (($prev = $user->rd_socket_get()) != NULL) {
                     $s_a_p->socks_unset($user->rd_socket_get());
                     fclose($user->rd_socket_get());
-                    printf("CLOSE AND OPEN AGAIN ON IFRA2\n");
+                    // printf("CLOSE AND OPEN AGAIN ON IFRA2\n");
                     $user->rd_socket_set(NULL);
                 }
 
@@ -1505,7 +1538,7 @@ class Bin5 {
 
                 $s_a_p->socks_set($new_socket, $user, NULL);
                 $user->rd_socket_set($new_socket);
-                printf(" - qui ci siamo - ");
+                // printf(" - qui ci siamo - ");
                 return TRUE;
             } while (FALSE);
 
@@ -1560,7 +1593,7 @@ function show_table(&$bri, &$user, $sendstep, $is_transition, $is_again)
     $table_pos = $user->table_pos;
 
     $ret = "table_init();";
-    $ret .= $table->exitlock_show(&$bri->user, $table_pos);
+    $ret .= $table->exitlock_show($bri->user, $table_pos);
     if (!$is_again) {
         /* GENERAL STATUS */
         $user_rules = $user->rules_get();
@@ -1593,7 +1626,7 @@ function show_table(&$bri, &$user, $sendstep, $is_transition, $is_again)
     }
     /* NOTIFY FOR THE CARD MAKER */
     if ($is_transition) { //  && $user->subst ==  "asta" superfluo
-        $ret .= show_table_info(&$bri, &$table, $table_pos);
+        $ret .= show_table_info($bri, $table, $table_pos);
         $ret .= "setTimeout(preload_images, 500, g_preload_img_arr, g_imgct);";
     }
     else {
@@ -1603,7 +1636,7 @@ function show_table(&$bri, &$user, $sendstep, $is_transition, $is_again)
         $ret .= table_welcome($user);
 
     if ($is_transition && !$is_again) { // just sit, play cow
-        $ret .= playsound("cow.mp3");
+        $ret .= playsound("cow");
     }