/** * Map constructor. * @param $file string|MPQFile the map file name or MPQFile instance * @throws MapException if the file given is not a string or a mpq file */ public function __construct($file) { if (is_string($file)) { $file = MPQFile::parseFile($file); } if (!$file instanceof MPQFile) { throw new MapException("Invalid map file given"); } $this->file = $file; $this->file->parse(); }
/** * Replay constructor. * @param $file string|MPQFile the replay file name or MPQFile instance * @throws ReplayException if the file given is not a string or a mpq file */ public function __construct($file) { if (is_string($file)) { $file = MPQFile::parseFile($file); } if (!$file instanceof MPQFile) { throw new ReplayException("Invalid replay file given"); } $this->file = $file; $this->versionLoader = new VersionLoader(); $this->hydratorFactory = new GeneratedHydratorFactory(); }
* 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; }