Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
PrimitiveArray.cs
Go to the documentation of this file.
2
4
5internal sealed class PrimitiveArray
6{
7 private readonly InternalPrimitiveTypeE _code;
8
9 private readonly bool[] _booleanA;
10
11 private readonly char[] _charA;
12
13 private readonly double[] _doubleA;
14
15 private readonly short[] _int16A;
16
17 private readonly int[] _int32A;
18
19 private readonly long[] _int64A;
20
21 private readonly sbyte[] _sbyteA;
22
23 private readonly float[] _singleA;
24
25 private readonly ushort[] _uint16A;
26
27 private readonly uint[] _uint32A;
28
29 private readonly ulong[] _uint64A;
30
32 {
33 _code = code;
34 switch (code)
35 {
36 case InternalPrimitiveTypeE.Boolean:
37 _booleanA = (bool[])array;
38 break;
39 case InternalPrimitiveTypeE.Char:
40 _charA = (char[])array;
41 break;
42 case InternalPrimitiveTypeE.Double:
43 _doubleA = (double[])array;
44 break;
45 case InternalPrimitiveTypeE.Int16:
46 _int16A = (short[])array;
47 break;
48 case InternalPrimitiveTypeE.Int32:
49 _int32A = (int[])array;
50 break;
51 case InternalPrimitiveTypeE.Int64:
52 _int64A = (long[])array;
53 break;
54 case InternalPrimitiveTypeE.SByte:
55 _sbyteA = (sbyte[])array;
56 break;
57 case InternalPrimitiveTypeE.Single:
58 _singleA = (float[])array;
59 break;
60 case InternalPrimitiveTypeE.UInt16:
61 _uint16A = (ushort[])array;
62 break;
63 case InternalPrimitiveTypeE.UInt32:
64 _uint32A = (uint[])array;
65 break;
66 case InternalPrimitiveTypeE.UInt64:
67 _uint64A = (ulong[])array;
68 break;
69 case InternalPrimitiveTypeE.Byte:
70 case InternalPrimitiveTypeE.Currency:
71 case InternalPrimitiveTypeE.Decimal:
72 case InternalPrimitiveTypeE.TimeSpan:
73 case InternalPrimitiveTypeE.DateTime:
74 break;
75 }
76 }
77
78 internal void SetValue(string value, int index)
79 {
80 switch (_code)
81 {
82 case InternalPrimitiveTypeE.Boolean:
83 _booleanA[index] = bool.Parse(value);
84 break;
85 case InternalPrimitiveTypeE.Char:
86 if (value[0] == '_' && value.Equals("_0x00_"))
87 {
88 _charA[index] = '\0';
89 }
90 else
91 {
92 _charA[index] = char.Parse(value);
93 }
94 break;
95 case InternalPrimitiveTypeE.Double:
97 break;
98 case InternalPrimitiveTypeE.Int16:
100 break;
101 case InternalPrimitiveTypeE.Int32:
103 break;
104 case InternalPrimitiveTypeE.Int64:
106 break;
107 case InternalPrimitiveTypeE.SByte:
109 break;
110 case InternalPrimitiveTypeE.Single:
112 break;
113 case InternalPrimitiveTypeE.UInt16:
115 break;
116 case InternalPrimitiveTypeE.UInt32:
118 break;
119 case InternalPrimitiveTypeE.UInt64:
121 break;
122 case InternalPrimitiveTypeE.Byte:
123 case InternalPrimitiveTypeE.Currency:
124 case InternalPrimitiveTypeE.Decimal:
125 case InternalPrimitiveTypeE.TimeSpan:
126 case InternalPrimitiveTypeE.DateTime:
127 break;
128 }
129 }
130}
static CultureInfo InvariantCulture
PrimitiveArray(InternalPrimitiveTypeE code, Array array)