예제 #1
0
 private static function buildFileList()
 {
     self::log();
     self::log('reading MPQdata from ' . self::$srcDir . ' to list for first time use...');
     $setupDirs = glob('setup/*');
     foreach ($setupDirs as $sd) {
         if (substr(self::$srcDir, -1) == '/') {
             self::$srcDir = substr(self::$srcDir, 0, -1);
         }
         if (substr($sd, -1) == '/') {
             $sd = substr($sd, 0, -1);
         }
         if (strtolower($sd) == strtolower(self::$srcDir)) {
             self::$srcDir = $sd . '/';
             break;
         }
     }
     try {
         $iterator = new RecursiveDirectoryIterator(self::$srcDir);
         $iterator->setFlags(RecursiveDirectoryIterator::SKIP_DOTS);
         foreach (new RecursiveIteratorIterator($iterator, RecursiveIteratorIterator::SELF_FIRST) as $path) {
             $_ = str_replace('\\', '/', $path->getPathname());
             self::$mpqFiles[strtolower($_)] = $_;
         }
         self::log('done');
         self::log();
     } catch (UnexpectedValueException $e) {
         self::log('- mpqData dir ' . self::$srcDir . ' does not exist', self::LOG_ERROR);
         return false;
     }
     return true;
 }