示例#1
0
文件: Map.php 项目: rogiel/star-map
 /**
  * @return Minimap
  * @throws MapException
  */
 public function getMinimap()
 {
     if ($this->minimap != NULL) {
         return $this->minimap;
     }
     $stream = $this->file->openStream('Minimap.tga');
     if ($stream == NULL) {
         throw new MapException("Minimap.tga file not found on map MPQ file.");
     }
     $this->minimap = new Minimap($stream);
     return $this->minimap;
 }
示例#2
0
 /**
  * @return \Generator
  * @throws ReplayException
  */
 public function getTrackerEvents()
 {
     if (!$this->getVersion()->hasTrackerEvents()) {
         throw new ReplayException('Tracker events are not supported on this version.');
     }
     $stream = $this->file->openStream('replay.tracker.events');
     //        echo bin2hex($stream->readBytes(10));
     //        die();
     $stream = new BitStream($stream);
     $parser = new ReplayStreamParser($stream);
     $serializer = new VersionedSerializer($parser, $this->getVersion()->getTree(), $this->hydratorFactory);
     return $this->parseEventStream($serializer, $this->getVersion()->getTrackerEventMapping(), $this->getVersion()->getTrackerEventHeaderNode());
 }
示例#3
0
 private function readSector(Sector $sector)
 {
     $this->stream->seek($this->file->getUserDataOffset() + $this->block->getFilePos() + $sector->getStart());
     $compressedStream = $this->createCompressedStream($sector);
     return $compressedStream->readBytes($this->block->getSize());
 }
示例#4
0
 * are permitted provided that the following conditions are met:
 *
 * 1. Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above copyright notice,
 * this list of conditions and the following disclaimer in the documentation
 * and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 * THE POSSIBILITY OF SUCH DAMAGE.
 */
/*
 * You must run "composer install" in order to generate the class loader
 */
require_once __DIR__ . '/../vendor/autoload.php';
use Rogiel\MPQ\MPQFile;
$file = MPQFile::parseFile(__DIR__ . '/../../test.SC2Replay');
$stream = $file->openStream('replay.details');
while ($data = $stream->readBytes(100)) {
    echo $data;
}