Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
BinaryObjectWithMapTyped.cs
Go to the documentation of this file.
2
3internal sealed class BinaryObjectWithMapTyped : IStreamable
4{
6
7 internal int _objectId;
8
9 internal string _name;
10
11 internal int _numMembers;
12
13 internal string[] _memberNames;
14
16
17 internal object[] _typeInformationA;
18
19 internal int[] _memberAssemIds;
20
21 internal int _assemId;
22
24 {
25 }
26
31
32 internal void Set(int objectId, string name, int numMembers, string[] memberNames, BinaryTypeEnum[] binaryTypeEnumA, object[] typeInformationA, int[] memberAssemIds, int assemId)
33 {
36 _name = name;
43 _binaryHeaderEnum = ((assemId > 0) ? BinaryHeaderEnum.ObjectWithMapTypedAssemId : BinaryHeaderEnum.ObjectWithMapTyped);
44 }
45
47 {
48 output.WriteByte((byte)_binaryHeaderEnum);
49 output.WriteInt32(_objectId);
50 output.WriteString(_name);
51 output.WriteInt32(_numMembers);
52 for (int i = 0; i < _numMembers; i++)
53 {
54 output.WriteString(_memberNames[i]);
55 }
56 for (int j = 0; j < _numMembers; j++)
57 {
58 output.WriteByte((byte)_binaryTypeEnumA[j]);
59 }
60 for (int k = 0; k < _numMembers; k++)
61 {
63 }
64 if (_assemId > 0)
65 {
66 output.WriteInt32(_assemId);
67 }
68 }
69
70 public void Read(BinaryParser input)
71 {
72 _objectId = input.ReadInt32();
73 _name = input.ReadString();
74 _numMembers = input.ReadInt32();
75 _memberNames = new string[_numMembers];
77 _typeInformationA = new object[_numMembers];
79 for (int i = 0; i < _numMembers; i++)
80 {
81 _memberNames[i] = input.ReadString();
82 }
83 for (int j = 0; j < _numMembers; j++)
84 {
86 }
87 for (int k = 0; k < _numMembers; k++)
88 {
89 if (_binaryTypeEnumA[k] != BinaryTypeEnum.ObjectUrt && _binaryTypeEnumA[k] != BinaryTypeEnum.ObjectUser)
90 {
92 }
93 else
94 {
96 }
97 }
98 if (_binaryHeaderEnum == BinaryHeaderEnum.ObjectWithMapTypedAssemId)
99 {
100 _assemId = input.ReadInt32();
101 }
102 }
103}
void Set(int objectId, string name, int numMembers, string[] memberNames, BinaryTypeEnum[] binaryTypeEnumA, object[] typeInformationA, int[] memberAssemIds, int assemId)
static object ReadTypeInfo(BinaryTypeEnum binaryTypeEnum, BinaryParser input, out int assemId)
static void WriteTypeInfo(BinaryTypeEnum binaryTypeEnum, object typeInformation, int assemId, BinaryFormatterWriter output)