A handy tool for working with binary data used in BlitzMax.
composer require ernestpasnik/blitzmaxstream
Method | Description |
---|---|
readByte($offset = null) | Reads a single byte from the buffer. |
readShort($offset = null) | Reads a 16-bit integer from the buffer. |
readInt($offset = null) | Reads a 32-bit integer from the buffer. |
readLong($offset = null) | Reads a 64-bit integer from the buffer. |
readFloat($offset = null) | Reads a 32-bit floating-point number from the buffer. |
readDouble($offset = null) | Reads a 64-bit floating-point number from the buffer. |
readLine($offset = null) | Reads a line of text from the buffer until a newline character is encountered. |
readString($length) | Reads a specified number of characters from the buffer as a string. |
readStringNT($length) | Reads a null-terminated string from the buffer, excluding the null byte. |
Method | Description |
---|---|
writeByte($value) | Writes a single byte to the buffer. |
writeShort($value) | Writes a 16-bit integer to the buffer. |
writeInt($value) | Writes a 32-bit integer to the buffer. |
writeLong($value) | Writes a 64-bit integer to the buffer. |
writeFloat($value) | Writes a 32-bit floating-point number to the buffer. |
writeDouble($value) | Writes a 64-bit floating-point number to the buffer. |
writeLine($value) | Writes a line of text followed by a newline character to the buffer. |
writeString($value) | Writes a string to the buffer. |
writeStringNT($value) | Writes a null-terminated string to the buffer, including the null byte. |
Method | Description |
---|---|
setPosition($position) | Sets the buffer position to the specified value. |
skipBytes($count) | Skips a specified number of bytes in the stream. |
position() | Returns the current buffer position. |
remaining() | Returns the number of bytes remaining in the buffer. |
close() | Returns the portion of the buffer written to so far. |
size() | Returns the size of the buffer. |
clear() | Clears and resets the buffer. |
This library can be used to read Unreal Software's CS2D map file, specification can be found here.
$mapData = file_get_contents('de_dust2.map');
$buffer = new BlitzMaxStream($mapData);
$header = [];
$header['header'] = $buffer->readLine();
$header['scrollMap'] = $buffer->readByte();
$header['useModifiers'] = $buffer->readByte();
$header['saveTileHeights'] = $buffer->readByte();
$header['use64pxTiles'] = $buffer->readByte();
$buffer->skipBytes(6);
$header['sysUptime'] = $buffer->readInt();
$header['authorUSGN'] = $buffer->readInt();
$header['daylightTime'] = $buffer->readInt();
$buffer->skipBytes(28);
$header['authorName'] = $buffer->readLine();
$header['programUsed'] = $buffer->readLine();
$buffer->skipBytes(16);
$header['infoString'] = $buffer->readLine();
$header['tilesetImage'] = $buffer->readLine();
$header['tileCount'] = $buffer->readByte();
$header['mapWidth'] = $buffer->readInt();
$header['mapHeight'] = $buffer->readInt();
$header['backgroundImage'] = $buffer->readLine();
$header['bgScrollX'] = $buffer->readInt();
$header['bgScrollY'] = $buffer->readInt();
$header['bgColorRed'] = $buffer->readByte();
$header['bgColorGreen'] = $buffer->readByte();
$header['bgColorBlue'] = $buffer->readByte();
$header['headerTest'] = $buffer->readLine();
This package is licensed under the MIT License.