The online racing simulator
Searching in All forums
(13 results)
kanutron
S2 licensed
I don't know if this was discussed, but, the attached SPR is not valid in Y14 and Y15 but is a current WR.

It's valid on Y?
kanutron
S2 licensed
Know you this?
http://www.w3schools.com/xml/xml_cdata.asp

Put everything between CDATA tags could be the solution.
But just urlencoding the data seems ok.

EDIT: I think that the usual way to put binary data into a XML is to encode in base64. But not shure.
Last edited by kanutron, .
kanutron
S2 licensed
Maybe will help...
The function trys to return an array with car classes first and then individual cars.


<?php 
$cars 
= array(
  
'XFG' => array('name'=>'XF GTI'       ,'bit'=>1     ),
  
'XRG' => array('name'=>'XR GT'        ,'bit'=>2     ),
  
'XRT' => array('name'=>'XR GT Turbo'  ,'bit'=>4     ),
  
'RB4' => array('name'=>'RB4 GT'       ,'bit'=>8     ),
  
'FXO' => array('name'=>'FXO Turbo'    ,'bit'=>16    ),
  
'LX4' => array('name'=>'LX4'          ,'bit'=>32    ),
  
'LX6' => array('name'=>'LX6'          ,'bit'=>64    ),
  
'MRT' => array('name'=>'MTR5'         ,'bit'=>128   ),
  
'UF1' => array('name'=>'UF 1000'      ,'bit'=>256   ),
  
'RAC' => array('name'=>'RaceAbout'    ,'bit'=>512   ),
  
'FZ5' => array('name'=>'FZ50'         ,'bit'=>1024  ),
  
'FOX' => array('name'=>'Formula XR'   ,'bit'=>2048  ),
  
'XFR' => array('name'=>'XF GTR'       ,'bit'=>4096  ),
  
'UFR' => array('name'=>'UF GTR'       ,'bit'=>8192  ),
  
'FO8' => array('name'=>'Formula V8'   ,'bit'=>16384 ),
  
'FXR' => array('name'=>'FXO GTR'      ,'bit'=>32768 ),
  
'XRR' => array('name'=>'XR GTR'       ,'bit'=>65536 ),
  
'FZR' => array('name'=>'FZ50 GTR'     ,'bit'=>131072),
  
'BF1' => array('name'=>'BMW Sauber'   ,'bit'=>262144),
  
'FBM' => array('name'=>'Formula BMW'  ,'bit'=>524288),
);

$cars_c = array(
  
'ALL' => array('name'=>'All'          ,'bit'=>1048575),
  
'STD' => array('name'=>'STD Class'    ,'bit'=>259    ),
  
'TBO' => array('name'=>'TBO Class'    ,'bit'=>28     ),
  
'LRF' => array('name'=>'LRF Class'    ,'bit'=>1600   ),
  
'FWD' => array('name'=>'FWD Class'    ,'bit'=>12561  ),
  
'GTR' => array('name'=>'GTR Class'    ,'bit'=>229376 ),
  
'S-S' => array('name'=>'S-S Class'    ,'bit'=>804992 ),
);

function 
lfsw_get_host_cars_array($bits) {
  global 
$cars$cars_c;
  
$tmp = array();
  foreach (
$cars_c as $k => $class) {
    if ((
$class['bit'] & $bits) == $class['bit']) {
      
$tmp[$k] = &$cars_c[$k];
      
$bits -= $class['bit'];
      if (
$bits==0) {return $tmp;}
    }
  }
  foreach (
$cars as $k => $car) {
    if ((
$car['bit'] & $bits) == $car['bit']) {
      
$tmp[$k] = &$cars[$k];
      
$bits -= $car['bit'];
      if (
$bits==0) {return $tmp;}
    }
  }
  return 
$tmp;
}
?>

kanutron
S2 licensed
Quote from the_angry_angel :You could enforce gzipping on the heavier outputs - xml, json spring to mind particularly

+1
And +1 too for associative arrays.

Quote from the_angry_angel :
I will try to give the test pubstats a thrashing tomorrow

Lot of work today, but I'll try to test it really soon.

Thanks a lot!
kanutron
S2 licensed
Quote from the_angry_angel :There is no standard serialisation method across all languages though

You're right. :P

I mean "popular" or "easy to port", like JSON, that can be used in (almost) all languages or PHP serialize/unserialize that can be used in ASP too.

Providing an optional argument to serializing method would be great.

c=0|1|2|3 < for compression method
s=0|1|2|... < for serializing method

While 0 = the current way (text), 1 can be JSON and 2 PHPserialize and so on.
kanutron
S2 licensed
Quote from Dygear :Forget about JSON, they can do that client side (if it's really wanted, I will implement it on the LFSWorldSDK.)

Recebing responses from LFSW pubstats in a standard serializing method will clearify a lot the client side code.

What about PHP serialize/unserialize?
Tha arrays struct could be the LFSWorldSDK is using now.
kanutron
S2 licensed
In the Dygear data struct for PB it is not space for the timestamp.
I think the timestamp (how old is the record) is a cool data.
And this data could be great to know in HLs too.


requires: &racer=<racer>
optional: -
returns: <track> <car> [B]<split1> <split2> <split3>[/B] <time> <lapcount> <timestamp>

(same for HLs)
Timestamp as Unix time in an specific timezone (CEST?).

BTW: The fuel stats could be great to know from LFSW aswell but not really needed.

Rest of seggested structs are ok (country codes and TeamID).
kanutron
S2 licensed
Quote from St4Lk3R :
however, I do not know if iconv also supports the HTML-ENTITIES-codepage you talked about in your post.

Doesn't support.
You must use htmlentities() instead.
http://www.php.net/htmlentities

But results seems better with mbstring + UTF8.

If you're using UTF8, iconv is ok, but if you're using one-byte charset, iconv+htmlentites doesn't produce good output. At least for me.

Is hard to provide a universal solution for that, and converter v2 seems to be close.

Maybe a check with "function_exists" of the mbstring, and then do a fallback to iconv+htmlentities will improve the function.
kanutron
S2 licensed
Quote from Victor :...though i'm not sure about racer profiles.

Ok.

Quote from Victor :You can find the meaning of the bits in the official LFS InSim docs too btw.

Found! So...


<?php 
function lfsw_get_hotlap_flags_array($bits) {
  
$tmp = array();
  
$tmp['lhd'] =  (   $bits) ? TRUE FALSE// left hand
  
$tmp['r2'] =   (   $bits) ? TRUE FALSE// was change cut
  
$tmp['r4'] =   (   $bits) ? TRUE FALSE// was chabge blip
  
$tmp['ag'] =   (   $bits) ? TRUE FALSE// autogears
  
$tmp['sh'] =   (  16 $bits) ? TRUE FALSE// shifter
  
$tmp['r32'] =  (  32 $bits) ? TRUE FALSE// reserved
  
$tmp['bh'] =   (  64 $bits) ? TRUE FALSE// brake help
  
$tmp['cl'] =   ( 128 $bits) ? TRUE FALSE// axis clutch
  
$tmp['pits'] = ( 256 $bits) ? TRUE FALSE// in pits (hotlap?)
  
$tmp['ac'] =   ( 512 $bits) ? TRUE FALSE// autoclutch
  
$tmp['ms'] =   (1024 $bits) ? TRUE FALSE// mouse
  
$tmp['kn'] =   (2048 $bits) ? TRUE FALSE// keyboard no help
  
$tmp['ks'] =   (4096 $bits) ? TRUE FALSE// keyboard stabilished
  
$tmp['cv'] =   (8192 $bits) ? TRUE FALSE// custom view

  
$tmp['rhd'] = !$tmp['lhd'];
  
$tmp['w'] = (!$tmp['m'] && !$tmp['kn'] && !$tmp['ks']);
  return 
$tmp;
}

function 
lfsw_get_host_rules_array($bits) {
  
$tmp = array();
  
$tmp['vote'] =     (  $bits) ? TRUE FALSE;
  
$tmp['select'] =   (  $bits) ? TRUE FALSE;
  
$tmp['qual'] =     (  $bits) ? TRUE FALSE;
  
$tmp['private'] =  (  $bits) ? TRUE FALSE;
  
$tmp['modified'] = ( 16 $bits) ? TRUE FALSE;
  
$tmp['midrace'] =  ( 32 $bits) ? TRUE FALSE;
  
$tmp['mustpit'] =  ( 64 $bits) ? TRUE FALSE;
  
$tmp['canreset'] = (128 $bits) ? TRUE FALSE;
  
$tmp['fcv'] =      (256 $bits) ? TRUE FALSE;
  
$tmp['cruise'] =   (512 $bits) ? TRUE FALSE;
  return 
$tmp;
}

function 
lfsw_get_team_flags_array($bits) {
  
$tmp = array();
  
$tmp['race'] =     (  $bits) ? TRUE FALSE;
  
$tmp['drift'] =    (  $bits) ? TRUE FALSE;
  
$tmp['drag'] =     (  $bits) ? TRUE FALSE;
  
$tmp['canapply'] = (  $bits) ? TRUE FALSE;
  
$tmp['hashost'] =  ( 16 $bits) ? TRUE FALSE;
  
$tmp['demo'] =     ( 32 $bits) ? TRUE FALSE;
  
$tmp['s1'] =       ( 64 $bits) ? TRUE FALSE;
  
$tmp['s2'] =       (128 $bits) ? TRUE FALSE;
  
$tmp['s3'] =       (256 $bits) ? TRUE FALSE;
  return 
$tmp;
}
?>

Interesting... custom view flag is already stored in the hotlap. Cool.
kanutron
S2 licensed
Have you a release date for next release Victor?
I'm expecting pubstats to be updated with the exciting new features like:

* Online PB Split times, timestamp, etc.
* Hotlap options bits (there has changes since 0.5Y) like handicups usage, clutch, no helps (GC, GB...).
* Host bits, like for cruise option and so on... Or car usage bits for new car FBM (I guessed it, and it works). For car classes (S-S and ALL has new car). ;-)
* Racer profile data (Country, realname, birthdate, etc.)
* Team official ID (I currently using a md5 of the team name to index it on my DB).

Some samples of our usage of pubstats at our team website:
http://mktt.info/lfsw/team
http://mktt.info/lfsw/racer

http://mktt.info/lfsw/team/Michael%2BKnight%2BTribute%2BTeam
http://mktt.info/lfsw/racer/kanutron

BTW, I using this PHP arrays. Some one can confirm that are correct?


<?php 
    $lfsw_cache_cars 
= array(
      
'XFG' => array('name'=>'XF GTI'       ,'bit'=>1       ,'short_name'=>'XFG'),
      
'XRG' => array('name'=>'XR GT'        ,'bit'=>2       ,'short_name'=>'XRG'),
      
'XRT' => array('name'=>'XR GT Turbo'  ,'bit'=>4       ,'short_name'=>'XRT'),
      
'RB4' => array('name'=>'RB4 GT'       ,'bit'=>8       ,'short_name'=>'RB4'),
      
'FXO' => array('name'=>'FXO Turbo'    ,'bit'=>16      ,'short_name'=>'FXO'),
      
'LX4' => array('name'=>'LX4'          ,'bit'=>32      ,'short_name'=>'LX4'),
      
'LX6' => array('name'=>'LX6'          ,'bit'=>64      ,'short_name'=>'LX6'),
      
'MRT' => array('name'=>'MTR5'         ,'bit'=>128     ,'short_name'=>'MRT'),
      
'UF1' => array('name'=>'UF 1000'      ,'bit'=>256     ,'short_name'=>'UF1'),
      
'RAC' => array('name'=>'RaceAbout'    ,'bit'=>512     ,'short_name'=>'RAC'),
      
'FZ5' => array('name'=>'FZ50'         ,'bit'=>1024    ,'short_name'=>'FZ5'),
      
'FOX' => array('name'=>'Formula XR'   ,'bit'=>2048    ,'short_name'=>'FOX'),
      
'XFR' => array('name'=>'XF GTR'       ,'bit'=>4096    ,'short_name'=>'XFR'),
      
'UFR' => array('name'=>'UF GTR'       ,'bit'=>8192    ,'short_name'=>'UFR'),
      
'FO8' => array('name'=>'Formula V8'   ,'bit'=>16384   ,'short_name'=>'FO8'),
      
'FXR' => array('name'=>'FXO GTR'      ,'bit'=>32768   ,'short_name'=>'FXR'),
      
'XRR' => array('name'=>'XR GTR'       ,'bit'=>65536   ,'short_name'=>'XRR'),
      
'FZR' => array('name'=>'FZ50 GTR'     ,'bit'=>131072  ,'short_name'=>'FZR'),
      
'BF1' => array('name'=>'BMW Sauber'   ,'bit'=>262144  ,'short_name'=>'BF1'),
      
'FBM' => array('name'=>'Formula BMW'  ,'bit'=>524288  ,'short_name'=>'FBM'),
    );


    
$lfsw_cache_cars_classes = array(
      
'ALL' => array('name'=>'All Cars Allowed'          ,'bit'=>1048575 ,'short_name'=>'ALL'),
      
'STD' => array('name'=>'STD: UF1,XFG,XRG'          ,'bit'=>259     ,'short_name'=>'STD'),
      
'TBO' => array('name'=>'TBO: RB4,FXO,XRT'          ,'bit'=>28      ,'short_name'=>'TBO'),
      
'LRF' => array('name'=>'LRF: LX6,RAC,FZ5'          ,'bit'=>1600    ,'short_name'=>'LRF'),
      
'FWD' => array('name'=>'FWD: UF1,XFG,FXO,UFR,XFR'  ,'bit'=>12561   ,'short_name'=>'FWD'),
      
'GTR' => array('name'=>'GTR: FXR,XRR,FZR'          ,'bit'=>229376  ,'short_name'=>'GTR'),
      
'S-S' => array('name'=>'S-S: MRT,FBM,FOX,FO8,BF1'  ,'bit'=>804992  ,'short_name'=>'S-S'),
    );


    
$lfsw_cache_tracks = array(
      
'BL1' => array('name'=>'Blackwood',  'config'=>'GP Track',       'direction'=>'Standard',     'kms'=>3.3'lfsw_code'=>'000''short_name'=>'BL1'),
      
'BL1R'=> array('name'=>'Blackwood',  'config'=>'GP Track',       'direction'=>'Reversed',     'kms'=>3.3'lfsw_code'=>'001''short_name'=>'BL1R'),
      
'BL2' => array('name'=>'Blackwood',  'config'=>'Rally Cross',    'direction'=>'Standard',     'kms'=>1.8'lfsw_code'=>'010''short_name'=>'BL2'),
      
'BL2R'=> array('name'=>'Blackwood',  'config'=>'Rally Cross',    'direction'=>'Reversed',     'kms'=>1.8'lfsw_code'=>'011''short_name'=>'BL2R'),
      
'BL3' => array('name'=>'Blackwood',  'config'=>'Car Park',       'direction'=>'Arena',        'kms'=>0.3'lfsw_code'=>'020''short_name'=>'BL3'),
      
'SO1' => array('name'=>'South City''config'=>'Classic',        'direction'=>'Standard',     'kms'=>2.0'lfsw_code'=>'100''short_name'=>'SO1'),
      
'SO1R'=> array('name'=>'South City''config'=>'Classic',        'direction'=>'Reversed',     'kms'=>2.0'lfsw_code'=>'101''short_name'=>'SO1R'),
      
'SO2' => array('name'=>'South City''config'=>'Sprint Track 1''direction'=>'Standard',     'kms'=>2.0'lfsw_code'=>'110''short_name'=>'SO2'),
      
'SO2R'=> array('name'=>'South City''config'=>'Sprint Track 1''direction'=>'Reversed',     'kms'=>2.0'lfsw_code'=>'111''short_name'=>'SO2R'),
      
'SO3' => array('name'=>'South City''config'=>'Sprint Track 2''direction'=>'Standard',     'kms'=>1.3'lfsw_code'=>'120''short_name'=>'SO3'),
      
'SO3R'=> array('name'=>'South City''config'=>'Sprint Track 2''direction'=>'Reversed',     'kms'=>1.3'lfsw_code'=>'121''short_name'=>'SO3R'),
      
'SO4' => array('name'=>'South City''config'=>'Long',           'direction'=>'Standard',     'kms'=>4.0'lfsw_code'=>'130''short_name'=>'SO4'),
      
'SO4R'=> array('name'=>'South City''config'=>'Long',           'direction'=>'Reversed',     'kms'=>4.0'lfsw_code'=>'131''short_name'=>'SO4R'),
      
'SO5' => array('name'=>'South City''config'=>'Town Course',    'direction'=>'Standard',     'kms'=>3.1'lfsw_code'=>'140''short_name'=>'SO5'),
      
'SO5R'=> array('name'=>'South City''config'=>'Town Course',    'direction'=>'Reversed',     'kms'=>3.1'lfsw_code'=>'141''short_name'=>'SO5R'),
      
'SO6' => array('name'=>'South City''config'=>'Chicane Route',  'direction'=>'Standard',     'kms'=>2.9'lfsw_code'=>'150''short_name'=>'SO6'),
      
'SO6R'=> array('name'=>'South City''config'=>'Chicane Route',  'direction'=>'Reversed',     'kms'=>2.9'lfsw_code'=>'151''short_name'=>'SO6R'),
      
'FE1' => array('name'=>'Fern Bay',   'config'=>'Club',           'direction'=>'Standard',     'kms'=>1.6'lfsw_code'=>'200''short_name'=>'FE1'),
      
'FE1R'=> array('name'=>'Fern Bay',   'config'=>'Club',           'direction'=>'Reversed',     'kms'=>1.6'lfsw_code'=>'201''short_name'=>'FE1R'),
      
'FE2' => array('name'=>'Fern Bay',   'config'=>'Green Track',    'direction'=>'Standard',     'kms'=>3.1'lfsw_code'=>'210''short_name'=>'FE2'),
      
'FE2R'=> array('name'=>'Fern Bay',   'config'=>'Green Track',    'direction'=>'Reversed',     'kms'=>3.1'lfsw_code'=>'211''short_name'=>'FE2R'),
      
'FE3' => array('name'=>'Fern Bay',   'config'=>'Gold Track',     'direction'=>'Standard',     'kms'=>3.5'lfsw_code'=>'220''short_name'=>'FE3'),
      
'FE3R'=> array('name'=>'Fern Bay',   'config'=>'Gold Track',     'direction'=>'Reversed',     'kms'=>3.5'lfsw_code'=>'221''short_name'=>'FE3R'),
      
'FE4' => array('name'=>'Fern Bay',   'config'=>'Black Track',    'direction'=>'Standard',     'kms'=>6.6'lfsw_code'=>'230''short_name'=>'FE4'),
      
'FE4R'=> array('name'=>'Fern Bay',   'config'=>'Black Track',    'direction'=>'Reversed',     'kms'=>6.6'lfsw_code'=>'231''short_name'=>'FE4R'),
      
'FE5' => array('name'=>'Fern Bay',   'config'=>'Rally Cross',    'direction'=>'Standard',     'kms'=>2.0'lfsw_code'=>'240''short_name'=>'FE5'),
      
'FE5R'=> array('name'=>'Fern Bay',   'config'=>'Rally Cross',    'direction'=>'Reversed',     'kms'=>2.0'lfsw_code'=>'241''short_name'=>'FE5R'),
      
'FE6' => array('name'=>'Fern Bay',   'config'=>'RallyX Green',   'direction'=>'Standard',     'kms'=>0.7'lfsw_code'=>'250''short_name'=>'FE6'),
      
'FE6R'=> array('name'=>'Fern Bay',   'config'=>'RallyX Green',   'direction'=>'Reversed',     'kms'=>0.7'lfsw_code'=>'251''short_name'=>'FE6R'),
      
'AU1' => array('name'=>'Autocross',  'config'=>'Autocross',      'direction'=>'Arena',        'kms'=>0.3'lfsw_code'=>'300''short_name'=>'AU1'),
      
'AU2' => array('name'=>'Autocross',  'config'=>'Slod Pad',       'direction'=>'Arena',        'kms'=>0.1'lfsw_code'=>'310''short_name'=>'AU2'),
      
'AU3' => array('name'=>'Autocross',  'config'=>'Drag Strip',     'direction'=>'Single Stage''kms'=>0.7'lfsw_code'=>'320''short_name'=>'AU3'),
      
'AU4' => array('name'=>'Autocross',  'config'=>'8 Lane Drag',    'direction'=>'Single Stage''kms'=>0.7'lfsw_code'=>'330''short_name'=>'AU4'),
      
'KY1' => array('name'=>'Kyoto Ring''config'=>'Oval',           'direction'=>'Standard',     'kms'=>3.0'lfsw_code'=>'400''short_name'=>'KY1'),
      
'KY1R'=> array('name'=>'Kyoto Ring''config'=>'Oval',           'direction'=>'Reversed',     'kms'=>3.0'lfsw_code'=>'401''short_name'=>'KY1R'),
      
'KY2' => array('name'=>'Kyoto Ring''config'=>'National',       'direction'=>'Standard',     'kms'=>5.1'lfsw_code'=>'410''short_name'=>'KY2'),
      
'KY2R'=> array('name'=>'Kyoto Ring''config'=>'National',       'direction'=>'Reversed',     'kms'=>5.1'lfsw_code'=>'411''short_name'=>'KY2R'),
      
'KY3' => array('name'=>'Kyoto Ring''config'=>'GP Long',        'direction'=>'Standard',     'kms'=>7.4'lfsw_code'=>'420''short_name'=>'KY3'),
      
'KY3R'=> array('name'=>'Kyoto Ring''config'=>'GP Long',        'direction'=>'Reversed',     'kms'=>7.4'lfsw_code'=>'421''short_name'=>'KY3R'),
      
'WE1' => array('name'=>'Westhill',   'config'=>'International',  'direction'=>'Standard',     'kms'=>5.2'lfsw_code'=>'500''short_name'=>'WE1'),
      
'WE1R'=> array('name'=>'Westhill',   'config'=>'International',  'direction'=>'Reversed',     'kms'=>5.2'lfsw_code'=>'501''short_name'=>'WE1R'),
      
'AS1' => array('name'=>'Aston',      'config'=>'Cadet',          'direction'=>'Standard',     'kms'=>1.9'lfsw_code'=>'600''short_name'=>'AS1'),
      
'AS1R'=> array('name'=>'Aston',      'config'=>'Cadet',          'direction'=>'Reversed',     'kms'=>1.9'lfsw_code'=>'601''short_name'=>'AS1R'),
      
'AS2' => array('name'=>'Aston',      'config'=>'Club',           'direction'=>'Standard',     'kms'=>3.1'lfsw_code'=>'610''short_name'=>'AS2'),
      
'AS2R'=> array('name'=>'Aston',      'config'=>'Club',           'direction'=>'Reversed',     'kms'=>3.1'lfsw_code'=>'611''short_name'=>'AS2R'),
      
'AS3' => array('name'=>'Aston',      'config'=>'National',       'direction'=>'Standard',     'kms'=>5.6'lfsw_code'=>'620''short_name'=>'AS3'),
      
'AS3R'=> array('name'=>'Aston',      'config'=>'National',       'direction'=>'Reversed',     'kms'=>5.6'lfsw_code'=>'621''short_name'=>'AS3R'),
      
'AS4' => array('name'=>'Aston',      'config'=>'Historic',       'direction'=>'Standard',     'kms'=>8.1'lfsw_code'=>'630''short_name'=>'AS4'),
      
'AS4R'=> array('name'=>'Aston',      'config'=>'Historic',       'direction'=>'Reversed',     'kms'=>8.1'lfsw_code'=>'631''short_name'=>'AS4R'),
      
'AS5' => array('name'=>'Aston',      'config'=>'Grand Prix',     'direction'=>'Standard',     'kms'=>8.8'lfsw_code'=>'640''short_name'=>'AS5'),
      
'AS5R'=> array('name'=>'Aston',      'config'=>'Grand Prix',     'direction'=>'Reversed',     'kms'=>8.8'lfsw_code'=>'641''short_name'=>'AS5R'),
      
'AS6' => array('name'=>'Aston',      'config'=>'Grand Touring',  'direction'=>'Standard',     'kms'=>8.0'lfsw_code'=>'650''short_name'=>'AS6'),
      
'AS6R'=> array('name'=>'Aston',      'config'=>'Grand Touring',  'direction'=>'Reversed',     'kms'=>8.0'lfsw_code'=>'651''short_name'=>'AS6R'),
      
'AS7' => array('name'=>'Aston',      'config'=>'North',          'direction'=>'Standard',     'kms'=>5.2'lfsw_code'=>'660''short_name'=>'AS7'),
      
'AS7R'=> array('name'=>'Aston',      'config'=>'North',          'direction'=>'Reversed',     'kms'=>5.2'lfsw_code'=>'661''short_name'=>'AS7R'),
    );
    
$lfsw_cache_tracks['000'] = &$lfsw_cache_tracks['BL1'];
    
$lfsw_cache_tracks['001'] = &$lfsw_cache_tracks['BL1R'];
    
$lfsw_cache_tracks['010'] = &$lfsw_cache_tracks['BL2'];
    
$lfsw_cache_tracks['011'] = &$lfsw_cache_tracks['BL2R'];
    
$lfsw_cache_tracks['020'] = &$lfsw_cache_tracks['BL3'];
    
$lfsw_cache_tracks['100'] = &$lfsw_cache_tracks['SO1'];
    
$lfsw_cache_tracks['101'] = &$lfsw_cache_tracks['SO1R'];
    
$lfsw_cache_tracks['110'] = &$lfsw_cache_tracks['SO2'];
    
$lfsw_cache_tracks['111'] = &$lfsw_cache_tracks['SO2R'];
    
$lfsw_cache_tracks['120'] = &$lfsw_cache_tracks['SO3'];
    
$lfsw_cache_tracks['121'] = &$lfsw_cache_tracks['SO3R'];
    
$lfsw_cache_tracks['130'] = &$lfsw_cache_tracks['SO4'];
    
$lfsw_cache_tracks['131'] = &$lfsw_cache_tracks['SO4R'];
    
$lfsw_cache_tracks['140'] = &$lfsw_cache_tracks['SO5'];
    
$lfsw_cache_tracks['141'] = &$lfsw_cache_tracks['SO5R'];
    
$lfsw_cache_tracks['150'] = &$lfsw_cache_tracks['SO6'];
    
$lfsw_cache_tracks['151'] = &$lfsw_cache_tracks['SO6R'];
    
$lfsw_cache_tracks['200'] = &$lfsw_cache_tracks['FE1'];
    
$lfsw_cache_tracks['201'] = &$lfsw_cache_tracks['FE1R'];
    
$lfsw_cache_tracks['210'] = &$lfsw_cache_tracks['FE2'];
    
$lfsw_cache_tracks['211'] = &$lfsw_cache_tracks['FE2R'];
    
$lfsw_cache_tracks['220'] = &$lfsw_cache_tracks['FE3'];
    
$lfsw_cache_tracks['221'] = &$lfsw_cache_tracks['FE3R'];
    
$lfsw_cache_tracks['230'] = &$lfsw_cache_tracks['FE4'];
    
$lfsw_cache_tracks['231'] = &$lfsw_cache_tracks['FE4R'];
    
$lfsw_cache_tracks['240'] = &$lfsw_cache_tracks['FE5'];
    
$lfsw_cache_tracks['241'] = &$lfsw_cache_tracks['FE5R'];
    
$lfsw_cache_tracks['250'] = &$lfsw_cache_tracks['FE6'];
    
$lfsw_cache_tracks['251'] = &$lfsw_cache_tracks['FE6R'];
    
$lfsw_cache_tracks['300'] = &$lfsw_cache_tracks['AU1'];
    
$lfsw_cache_tracks['310'] = &$lfsw_cache_tracks['AU2'];
    
$lfsw_cache_tracks['320'] = &$lfsw_cache_tracks['AU3'];
    
$lfsw_cache_tracks['330'] = &$lfsw_cache_tracks['AU4'];
    
$lfsw_cache_tracks['400'] = &$lfsw_cache_tracks['KY1'];
    
$lfsw_cache_tracks['401'] = &$lfsw_cache_tracks['KY1R'];
    
$lfsw_cache_tracks['410'] = &$lfsw_cache_tracks['KY2'];
    
$lfsw_cache_tracks['411'] = &$lfsw_cache_tracks['KY2R'];
    
$lfsw_cache_tracks['420'] = &$lfsw_cache_tracks['KY3'];
    
$lfsw_cache_tracks['421'] = &$lfsw_cache_tracks['KY3R'];
    
$lfsw_cache_tracks['500'] = &$lfsw_cache_tracks['WE1'];
    
$lfsw_cache_tracks['501'] = &$lfsw_cache_tracks['WE1R'];
    
$lfsw_cache_tracks['600'] = &$lfsw_cache_tracks['AS1'];
    
$lfsw_cache_tracks['601'] = &$lfsw_cache_tracks['AS1R'];
    
$lfsw_cache_tracks['610'] = &$lfsw_cache_tracks['AS2'];
    
$lfsw_cache_tracks['611'] = &$lfsw_cache_tracks['AS2R'];
    
$lfsw_cache_tracks['620'] = &$lfsw_cache_tracks['AS3'];
    
$lfsw_cache_tracks['621'] = &$lfsw_cache_tracks['AS3R'];
    
$lfsw_cache_tracks['630'] = &$lfsw_cache_tracks['AS4'];
    
$lfsw_cache_tracks['631'] = &$lfsw_cache_tracks['AS4R'];
    
$lfsw_cache_tracks['640'] = &$lfsw_cache_tracks['AS5'];
    
$lfsw_cache_tracks['641'] = &$lfsw_cache_tracks['AS5R'];
    
$lfsw_cache_tracks['650'] = &$lfsw_cache_tracks['AS6'];
    
$lfsw_cache_tracks['651'] = &$lfsw_cache_tracks['AS6R'];
    
$lfsw_cache_tracks['660'] = &$lfsw_cache_tracks['AS7'];
    
$lfsw_cache_tracks['661'] = &$lfsw_cache_tracks['AS7R'];
?>

kanutron
S2 licensed
Quote from dadge :so i take it you have never helped another lfs driver (spannish or not) drive a track faster or wiser? i think hammilton helps alonso all the time

No man, all that I want to say is not means if I'm the best driver of LFS aver the world, never touching fences or even do not any mistake when racing if, another racer slighty hits my side and I go to fly so far away (in a unrealistic way).

And I heleped other (specially not spanish drivers) to drive best at some combos. ;-)

Ah, and its Alonso helping Hamilton all the time, man! :P
kanutron
S2 licensed
Quote from AlfaLover :Or
Scawen could not fix number 1 , and people learn to fix number 2.

You can fix your 2, but not my own. In other words, you only can drive for your self, not for others.
kanutron
S2 licensed


That's sounds good...
Joining forces maybe we can develop so fast.
What about to open a Source forge project?
FGED GREDG RDFGDR GSFDG