mysimulation/server/FSO.Server.Protocol/Voltron/DataService/cITSOProperty.cs
Tony Bark 22191ce648 Removed NioTSO client and server
- NioTSO client isn't needed because we're using RayLib
- Added FreeSO's API server to handle most backend operations
2024-05-01 02:55:43 -04:00

41 lines
1.3 KiB
C#
Executable file

using System.Collections.Generic;
using Mina.Core.Buffer;
using FSO.Common.Serialization;
namespace FSO.Server.Protocol.Voltron.DataService
{
public class cITSOProperty : IoBufferSerializable
{
public uint StructType;
public List<cITSOField> StructFields;
/**cTSOValue<class cRZAutoRefCount<class cITSOProperty> > body:
* dword Body clsid (iid=896E3E90 or "GZIID_cITSOProperty"; clsid should be 0x89739A79 for cTSOProperty)
* dword Body
* dword Struct type (e.g. 0x3B0430BF for AvatarAppearance)
* dword Field count
* Fields - for each field:
* dword Field name (e.g. 0x1D530275 for AvatarAppearance_BodyOutfitID)
* dword cTSOValue clsid
* cTSOValue body**/
public void Serialize(IoBuffer output, ISerializationContext context)
{
output.PutUInt32(0x89739A79);
output.PutUInt32(StructType);
output.PutUInt32((uint)StructFields.Count);
foreach(var item in StructFields){
output.PutUInt32(item.ID);
output.PutUInt32(item.Value.Type);
output.PutSerializable(item.Value.Value, context);
}
}
}
public class cITSOField
{
public uint ID;
public cTSOValue Value;
}
}