00001 <?php
00013 require_once(dirname(__FILE__).'/base.php');
00014
00021 class LFSWorldHotlapLog extends LFSWorldDataProvider
00022 {
00027 var $m_sURL = 'http:
00028
00033 var $m_aSrcMetaData = array('lifeTime' => 60, 'actualTarpit' => 5);
00034
00045 function parse($rawList, &$outputList)
00046 {
00047 switch($this->m_nFormat)
00048 {
00049 case 2:
00050 $outputList = $rawList;
00051 break;
00052 case 3:
00053
00054 $offset = 0;
00055 while(true)
00056 {
00057 $chunk = substr($rawList, $offset, 88);
00058 $offset += 88;
00059
00060 if(strlen($chunk) == 88)
00061 {
00062 $data = unpack('l1time/a24racer/a32country/c1track/c1config/c1reversed/c1car/l4split/v1pos/v1flags/l1id', $chunk);
00063 $data['track'] = $data['track'].$data['config'].$data['reversed'];
00064 unset($data['config'], $data['reversed']);
00065
00066 $outputList[] = $data;
00067 }
00068 else
00069 {
00070 break;
00071 }
00072
00073 }
00074 break;
00075 case 1:
00076 default:
00077 if(is_array($outputList))
00078 {
00079 $outputList = array_merge($outputList, explode("\n", $rawList));
00080 }
00081 else
00082 {
00083 $outputList = explode("\n", $rawList);
00084 }
00085 break;
00086
00087 }
00088
00089 return true;
00090 }
00091
00099 function initParams(&$params)
00100 {
00101 if(!isset($params['version']) || $params['version'] < 1.2)
00102 $params['version'] = '1.2';
00103
00104 if(isset($params['format']))
00105 $this->m_nFormat = $params['format'];
00106 else
00107 $params['format'] = $this->m_nFormat = 3;
00108
00109 return parent::initParams($params);
00110 }
00111 }
00112
00113 ?>