Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
HasCustomAttributeTag.cs
Go to the documentation of this file.
2
4
5internal static class HasCustomAttributeTag
6{
7 internal const int NumberOfBits = 5;
8
9 internal const int LargeRowSize = 2048;
10
11 internal const uint MethodDef = 0u;
12
13 internal const uint Field = 1u;
14
15 internal const uint TypeRef = 2u;
16
17 internal const uint TypeDef = 3u;
18
19 internal const uint Param = 4u;
20
21 internal const uint InterfaceImpl = 5u;
22
23 internal const uint MemberRef = 6u;
24
25 internal const uint Module = 7u;
26
27 internal const uint DeclSecurity = 8u;
28
29 internal const uint Property = 9u;
30
31 internal const uint Event = 10u;
32
33 internal const uint StandAloneSig = 11u;
34
35 internal const uint ModuleRef = 12u;
36
37 internal const uint TypeSpec = 13u;
38
39 internal const uint Assembly = 14u;
40
41 internal const uint AssemblyRef = 15u;
42
43 internal const uint File = 16u;
44
45 internal const uint ExportedType = 17u;
46
47 internal const uint ManifestResource = 18u;
48
49 internal const uint GenericParam = 19u;
50
51 internal const uint GenericParamConstraint = 20u;
52
53 internal const uint MethodSpec = 21u;
54
55 internal const uint TagMask = 31u;
56
57 internal const uint InvalidTokenType = uint.MaxValue;
58
59 internal static uint[] TagToTokenTypeArray = new uint[32]
60 {
61 100663296u, 67108864u, 16777216u, 33554432u, 134217728u, 150994944u, 167772160u, 0u, 234881024u, 385875968u,
62 335544320u, 285212672u, 436207616u, 452984832u, 536870912u, 587202560u, 637534208u, 654311424u, 671088640u, 704643072u,
63 738197504u, 721420288u, 4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
64 4294967295u, 4294967295u
65 };
66
67 internal const TableMask TablesReferenced = TableMask.Module | TableMask.TypeRef | TableMask.TypeDef | TableMask.Field | TableMask.MethodDef | TableMask.Param | TableMask.InterfaceImpl | TableMask.MemberRef | TableMask.DeclSecurity | TableMask.StandAloneSig | TableMask.Event | TableMask.Property | TableMask.ModuleRef | TableMask.TypeSpec | TableMask.Assembly | TableMask.AssemblyRef | TableMask.File | TableMask.ExportedType | TableMask.ManifestResource | TableMask.GenericParam | TableMask.MethodSpec | TableMask.GenericParamConstraint;
68
69 [MethodImpl(MethodImplOptions.AggressiveInlining)]
70 internal static EntityHandle ConvertToHandle(uint hasCustomAttribute)
71 {
72 uint num = TagToTokenTypeArray[hasCustomAttribute & 0x1F];
73 uint num2 = hasCustomAttribute >> 5;
74 if (num == uint.MaxValue || (num2 & 0xFF000000u) != 0)
75 {
77 }
78 return new EntityHandle(num | num2);
79 }
80
81 internal static uint ConvertToTag(EntityHandle handle)
82 {
83 uint type = handle.Type;
84 uint rowId = (uint)handle.RowId;
85 return (type >> 24) switch
86 {
87 6u => (rowId << 5) | 0u,
88 4u => (rowId << 5) | 1u,
89 1u => (rowId << 5) | 2u,
90 2u => (rowId << 5) | 3u,
91 8u => (rowId << 5) | 4u,
92 9u => (rowId << 5) | 5u,
93 10u => (rowId << 5) | 6u,
94 0u => (rowId << 5) | 7u,
95 14u => (rowId << 5) | 8u,
96 23u => (rowId << 5) | 9u,
97 20u => (rowId << 5) | 0xAu,
98 17u => (rowId << 5) | 0xBu,
99 26u => (rowId << 5) | 0xCu,
100 27u => (rowId << 5) | 0xDu,
101 32u => (rowId << 5) | 0xEu,
102 35u => (rowId << 5) | 0xFu,
103 38u => (rowId << 5) | 0x10u,
104 39u => (rowId << 5) | 0x11u,
105 40u => (rowId << 5) | 0x12u,
106 42u => (rowId << 5) | 0x13u,
107 44u => (rowId << 5) | 0x14u,
108 43u => (rowId << 5) | 0x15u,
109 _ => 0u,
110 };
111 }
112}
static EntityHandle ConvertToHandle(uint hasCustomAttribute)
static void InvalidCodedIndex()
Definition Throw.cs:201