New smartcard type supported
[brisk.git] / web / Obj / brisk.phh
index cbdf698..4444722 100644 (file)
@@ -128,12 +128,12 @@ $G_false = FALSE;
 $G_lng = langtolng($G_lang);
 
 $G_all_points = array( 11,10,4,3,2, 0,0,0,0,0 );
-$G_brisk_version = "2.4.0 - trusty";
+$G_brisk_version = "2.4.1 - trusty";
 
 /* MLANG: ALL THE INFO STRINGS IN brisk.phh */
-$root_wellarr = array( 'it' => array ( 'Brisk (Ver. '.$G_brisk_version.'), <b>NOVITA\'</b>: modalità isolamento, splash window, migliorate le classifiche.',
+$root_wellarr = array( 'it' => array ( 'Brisk (Ver. '.$G_brisk_version.'), <b>NOVITA\'</b>: completato mod. isolamento, aggiunto stato coniglio aggiunte preferenze in partita.',
                                        'Se vuoi iscriverti alla <a target="_blank" href="http://www.milug.org/cgi-bin/mailman/listinfo/ml-briscola">Mailing List</a>, cliccala!' ),
-                       'en' => array ( 'Brisk (Ver. '.$G_brisk_version.'), <b>NEWS</b>: isolation mode, splash window, placings enhanced.',
+                       'en' => array ( 'Brisk (Ver. '.$G_brisk_version.'), <b>NEWS</b>: completed isolation mode, bunny status added, preferences added during play.',
                                        'If you want to subscribe our <a target="_blank" href="http://www.milug.org/cgi-bin/mailman/listinfo/ml-briscola">Mailing List</a>, click it!' ) );
 
 $G_room_help = array( 'it' => '
@@ -208,6 +208,7 @@ Attualmente ci sono due metodi per ottenere una password sul sito:<br><br>
 <dir>
 <li>Carta Regionale dei Servizi della Lombardia (la tessera sanitaria)
 <li>Carta Regionale dei Servizi del Friuli Venezia Giulia (la tessera sanitaria)
+<li>Smart card di InfoCamere
 </dir>
 <br>
 <b>Per auto-garantisi occorre possedere:</b><br><br>
@@ -290,19 +291,20 @@ function csplitter($in, $sep)
   $out = array();
   $out[$id] = "";
   for ($i = 0 ; $i < strlen($in) ; $i++) {
+    $ini = substr($in, $i, 1);
     if ($st == 0) {
-      if ($in{$i} == '\\')
+      if ($ini == '\\')
         $st = 1;
-      else if ($in{$i} == $sep) {
+      else if ($ini == $sep) {
         $id++;
         $out[$id] = "";
       }
       else {
-        $out[$id] .= $in{$i};
+        $out[$id] .= $ini;
       }
     }
     else if ($st == 1) {
-      $out[$id] .= $in{$i};
+      $out[$id] .= $ini;
       $st = 0;
     }
   }
@@ -310,7 +312,6 @@ function csplitter($in, $sep)
   return ($out);
 }
 
-
 function xcape($s)
 {
   $from = array (   '\\',     '@',        '|' );
@@ -563,6 +564,7 @@ define(USER_FLAG_S_EAT,   0x400); // done
 define(USER_FLAG_S_WRK,   0x500); // done
 define(USER_FLAG_S_SMK,   0x600); // done
 define(USER_FLAG_S_EYE,   0x700); // done
+define(USER_FLAG_S_RABB,  0x800); // done
 
 define(USER_FLAG_S_ALL,   0xf00); // done
 
@@ -1413,7 +1415,7 @@ class Room {
     $to_room     = FALSE;
     $to_tabl     = FALSE;
     $is_normchat = FALSE;
-    $is_ticker   = FALSE;
+    /* for old isolation management $is_ticker   = FALSE; */
     $update_room = FALSE;
 
     if (strcmp($msg,  "/tav") == 0 || 
@@ -1452,7 +1454,7 @@ class Room {
         $table->wag_set($user, $msg);
         $to_user = sprintf('tra.add(%d, "%s");', $user->table, xcape(sprintf("%s: %s", $user->name, $msg)));
         $to_room = $to_user;
-        $is_ticker = TRUE;
+        /* for old isolation management $is_ticker = TRUE; */
       } while (0);
     } // /tav chat command
 
@@ -1491,6 +1493,7 @@ class Room {
       $arg = substr($msg, 8);
 
       if (strcasecmp($arg, "isolation") == 0) {
+        $flags_old = 0;
         if ($user->stat == 'room' && $user->subst == 'sitdown' &&
             $user->table >= TABLES_AUTH_N) {
           $to_user = sprintf('chatt_sub("%s", [2, "%s"],"%s");', $dt, NICKSERV, $mlang_brisk['listmust'][$G_lang]);
@@ -1503,13 +1506,21 @@ class Room {
         }
       }
       else if (strcasecmp($arg, "auth") == 0) {
+        $flags_old = $user->flags;
         $user->flags &= ~USER_FLAG_MAP_AUTH;
         $user->flags |= USER_FLAG_LISTAUTH;
         $to_user = 'list_set(\'auth\', true, \''.$mlang_brisk['tit_onauth'][$G_lang].'\'); ';
       }
       else {
+        $flags_old = $user->flags;
         $user->flags &= ~USER_FLAG_MAP_AUTH;
         $to_user = 'list_set(\'all\', true, \'\'); ';
+        
+      }
+      // if from isolation redraw standup area
+      if (($flags_old ^ $user->flags) & USER_FLAG_ISOLAUTH) {
+        $to_user .= 'standup_data_old = null; '.$this->standup_content($user);
+        
       }
     }
     else if (strcmp($msg, "/authreq") == 0) {
@@ -1620,6 +1631,9 @@ class Room {
         else if (strcasecmp($st_str, "presente") == 0) {
           $st = USER_FLAG_S_EYE;
         }
+        else if (strcasecmp($st_str, "coniglio") == 0) {
+          $st = USER_FLAG_S_RABB;
+        }
         else {
           /* MLANG: "Questo stato non esiste." */
           $to_user = sprintf('chatt_sub("%s", [2,"%s"],"%s");', $dt, NICKSERV, $mlang_brisk['statunkn'][$G_lang]);
@@ -1704,13 +1718,14 @@ class Room {
             }
           }
         }
+        /*
         else if ($is_ticker) {
           if (($user_cur->flags & USER_FLAG_MAP_AUTH) == USER_FLAG_ISOLAUTH) {
             if ($user->table >= TABLES_AUTH_N)
               continue;
           }
         }
-
+        */
         $user_cur->comm[$user_cur->step % COMM_N] =  "gst.st = ".($user_cur->step+1)."; ";
         $user_cur->comm[$user_cur->step % COMM_N] .= $to_room; 
         $user_cur->step_inc();