Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
HasConstantTag.cs
Go to the documentation of this file.
2
4
5internal static class HasConstantTag
6{
7 internal const int NumberOfBits = 2;
8
9 internal const int LargeRowSize = 16384;
10
11 internal const uint Field = 0u;
12
13 internal const uint Param = 1u;
14
15 internal const uint Property = 2u;
16
17 internal const uint TagMask = 3u;
18
19 internal const TableMask TablesReferenced = TableMask.Field | TableMask.Param | TableMask.Property;
20
21 internal const uint TagToTokenTypeByteVector = 1509380u;
22
23 [MethodImpl(MethodImplOptions.AggressiveInlining)]
24 internal static EntityHandle ConvertToHandle(uint hasConstant)
25 {
26 uint num = (uint)(1509380 >>> (int)((hasConstant & 3) << 3) << 24);
27 uint num2 = hasConstant >> 2;
28 if (num == 0 || (num2 & 0xFF000000u) != 0)
29 {
31 }
32 return new EntityHandle(num | num2);
33 }
34
35 internal static uint ConvertToTag(EntityHandle token)
36 {
37 HandleKind kind = token.Kind;
38 uint rowId = (uint)token.RowId;
39 return kind switch
40 {
41 HandleKind.FieldDefinition => (rowId << 2) | 0u,
42 HandleKind.Parameter => (rowId << 2) | 1u,
43 HandleKind.PropertyDefinition => (rowId << 2) | 2u,
44 _ => 0u,
45 };
46 }
47}
static EntityHandle ConvertToHandle(uint hasConstant)
static uint ConvertToTag(EntityHandle token)
static void InvalidCodedIndex()
Definition Throw.cs:201