Skip to content

Commit

Permalink
Adds size parameter to SnapBufferReadVDF()
Browse files Browse the repository at this point in the history
  • Loading branch information
JujuAdams committed Apr 27, 2023
1 parent b9ae476 commit 73b773f
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 12 deletions.
4 changes: 2 additions & 2 deletions rooms/rMain/rMain.yy
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,15 @@
],
"layers": [
{"resourceType":"GMRInstanceLayer","resourceVersion":"1.0","name":"Instances","instances":[
{"resourceType":"GMRInstance","resourceVersion":"1.0","name":"inst_76616C","properties":[],"isDnd":false,"objectId":{"name":"oTestConfigJSON","path":"objects/oTestConfigJSON/oTestConfigJSON.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":1.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":32.0,"y":32.0,},
{"resourceType":"GMRInstance","resourceVersion":"1.0","name":"inst_53BCBEF","properties":[],"isDnd":false,"objectId":{"name":"oTestVDF","path":"objects/oTestVDF/oTestVDF.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":1.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":32.0,"y":32.0,},
],"visible":true,"depth":0,"userdefinedDepth":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"effectEnabled":true,"effectType":null,"properties":[],},
{"resourceType":"GMRBackgroundLayer","resourceVersion":"1.0","name":"Background","spriteId":null,"colour":4278190080,"x":0,"y":0,"htiled":false,"vtiled":false,"hspeed":0.0,"vspeed":0.0,"stretch":false,"animationFPS":15.0,"animationSpeedType":0,"userdefinedAnimFPS":false,"visible":true,"depth":100,"userdefinedDepth":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"effectEnabled":true,"effectType":null,"properties":[],},
],
"inheritLayers": false,
"creationCodeFile": "",
"inheritCode": false,
"instanceCreationOrder": [
{"name":"inst_76616C","path":"rooms/rMain/rMain.yy",},
{"name":"inst_53BCBEF","path":"rooms/rMain/rMain.yy",},
],
"inheritCreationOrder": false,
"sequenceId": null,
Expand Down
18 changes: 9 additions & 9 deletions scripts/SnapBufferReadVDF/SnapBufferReadVDF.gml
Original file line number Diff line number Diff line change
@@ -1,18 +1,21 @@
/// @return Nested struct data that represents the contents of the VDF string
///
/// @param buffer Buffer to read data from
/// @param offset Offset in the buffer to read data from
/// @param buffer Buffer to read data from
/// @param [offset=0] Offset in the buffer to read data from
/// @param [size=all] Number of bytes to read from the buffer. If not specified, the whole buffer is read
///
/// @jujuadams 2023-03-25

function SnapBufferReadVDF(_buffer, _inOffset = undefined)
function SnapBufferReadVDF(_buffer, _inOffset = undefined, _inSize = undefined)
{
if (_inOffset != undefined)
{
var _oldOffset = buffer_tell(_buffer);
buffer_seek(_buffer, buffer_seek_start, _inOffset);
}

var _size = _inSize ?? buffer_get_size(_buffer) - buffer_tell(_buffer);

var _cacheBuffer = undefined;

var _readStart = undefined;
Expand All @@ -23,17 +26,14 @@ function SnapBufferReadVDF(_buffer, _inOffset = undefined)
var _structKey = undefined;
var _inStructValue = false;

var _inComment = false;
var _inMultilineComment = false;
var _newComment = false;
var _newMultilineComment = false;
var _inComment = false;
var _inMultilineComment = false;

var _root = {};
var _stackTop = _root;
var _stack = [_stackTop];

var _bufferSize = buffer_get_size(_buffer);
while(buffer_tell(_buffer) < _bufferSize)
while(buffer_tell(_buffer) < _size)
{
var _byte = buffer_read(_buffer, buffer_u8);
if (_byte == 0x00) break;
Expand Down
2 changes: 1 addition & 1 deletion scripts/SnapFromVDF/SnapFromVDF.gml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ function SnapFromVDF(_string)
{
var _buffer = buffer_create(string_byte_length(_string), buffer_fixed, 1);
buffer_write(_buffer, buffer_text, _string);
var _data = SnapBufferReadVDF(_buffer, 0);
var _data = SnapBufferReadVDF(_buffer, 0, buffer_get_size(_buffer));
buffer_delete(_buffer);
return _data;
}

0 comments on commit 73b773f

Please sign in to comment.