Update read and write streaming api to use the newest format

This commit is contained in:
Wojtek Figat
2024-12-29 23:00:40 +01:00
parent fee0ab74ff
commit 668f3fa68d
29 changed files with 444 additions and 378 deletions

View File

@@ -433,7 +433,7 @@ void VisualScriptExecutor::ProcessGroupFunction(Box* boxBase, Node* node, Value&
if (version == 4)
{
signature.IsStatic = stream.ReadBool();
stream.ReadVariantType(&signature.ReturnType);
stream.Read(signature.ReturnType);
int32 signatureParamsCount;
stream.ReadInt32(&signatureParamsCount);
signature.Params.Resize(signatureParamsCount);
@@ -443,7 +443,7 @@ void VisualScriptExecutor::ProcessGroupFunction(Box* boxBase, Node* node, Value&
int32 parameterNameLength;
stream.ReadInt32(&parameterNameLength);
stream.SetPosition(stream.GetPosition() + parameterNameLength * sizeof(Char));
stream.ReadVariantType(&param.Type);
stream.Read(param.Type);
param.IsOut = stream.ReadBool();
}
}
@@ -1317,13 +1317,13 @@ Asset::LoadResult VisualScript::load()
return LoadResult::MissingDataChunk;
MemoryReadStream metadataStream(metadataChunk->Get(), metadataChunk->Size());
int32 version;
metadataStream.ReadInt32(&version);
metadataStream.Read(version);
switch (version)
{
case 1:
{
metadataStream.ReadString(&Meta.BaseTypename, 31);
metadataStream.ReadInt32((int32*)&Meta.Flags);
metadataStream.Read(Meta.BaseTypename, 31);
metadataStream.Read((int32&)Meta.Flags);
break;
}
default:
@@ -1376,10 +1376,10 @@ Asset::LoadResult VisualScript::load()
{
case 1:
{
signatureStream.ReadStringAnsi(&method.Name, 71);
signatureStream.Read(method.Name, 71);
method.MethodFlags = (MethodFlags)signatureStream.ReadByte();
method.Signature.IsStatic = ((byte)method.MethodFlags & (byte)MethodFlags::Static) != 0;
signatureStream.ReadVariantType(&method.Signature.ReturnType);
signatureStream.Read(method.Signature.ReturnType);
int32 parametersCount;
signatureStream.ReadInt32(&parametersCount);
method.Signature.Params.Resize(parametersCount);
@@ -1387,8 +1387,8 @@ Asset::LoadResult VisualScript::load()
for (int32 i = 0; i < parametersCount; i++)
{
auto& param = method.Signature.Params[i];
signatureStream.ReadStringAnsi(&method.ParamNames[i], 13);
signatureStream.ReadVariantType(&param.Type);
signatureStream.Read(method.ParamNames[i], 13);
signatureStream.Read(param.Type);
param.IsOut = signatureStream.ReadByte() != 0;
bool hasDefaultValue = signatureStream.ReadByte() != 0;
}
@@ -1699,9 +1699,9 @@ ScriptingObject* VisualScriptingBinaryModule::VisualScriptObjectSpawn(const Scri
{
// Special case for C# object property in Visual Script so duplicate the object instead of cloning the reference to it
MemoryWriteStream writeStream;
writeStream.WriteVariant(param);
writeStream.Write(param);
MemoryReadStream readStream(writeStream.GetHandle(), writeStream.GetPosition());
readStream.ReadVariant(&param);
readStream.Read(param);
}
}
@@ -2227,9 +2227,9 @@ bool VisualScript::SaveSurface(const BytesContainer& data, const Metadata& meta)
// Set metadata
MemoryWriteStream metaStream(512);
{
metaStream.WriteInt32(1);
metaStream.WriteString(meta.BaseTypename, 31);
metaStream.WriteInt32((int32)meta.Flags);
metaStream.Write(1);
metaStream.Write(meta.BaseTypename, 31);
metaStream.Write((int32)meta.Flags);
}
GetOrCreateChunk(1)->Data.Copy(metaStream.GetHandle(), metaStream.GetPosition());