Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
ManifestResourceTableReader.cs
Go to the documentation of this file.
2
4
5internal readonly struct ManifestResourceTableReader
6{
7 internal readonly int NumberOfRows;
8
9 private readonly bool _IsImplementationRefSizeSmall;
10
11 private readonly bool _IsStringHeapRefSizeSmall;
12
13 private readonly int _OffsetOffset;
14
15 private readonly int _FlagsOffset;
16
17 private readonly int _NameOffset;
18
19 private readonly int _ImplementationOffset;
20
21 internal readonly int RowSize;
22
23 internal readonly MemoryBlock Block;
24
25 internal ManifestResourceTableReader(int numberOfRows, int implementationRefSize, int stringHeapRefSize, MemoryBlock containingBlock, int containingBlockOffset)
26 {
27 NumberOfRows = numberOfRows;
28 _IsImplementationRefSizeSmall = implementationRefSize == 2;
29 _IsStringHeapRefSizeSmall = stringHeapRefSize == 2;
30 _OffsetOffset = 0;
33 _ImplementationOffset = _NameOffset + stringHeapRefSize;
34 RowSize = _ImplementationOffset + implementationRefSize;
35 Block = containingBlock.GetMemoryBlockAt(containingBlockOffset, RowSize * numberOfRows);
36 }
37
43
49
51 {
52 int num = (handle.RowId - 1) * RowSize;
53 return Block.PeekUInt32(num + _OffsetOffset);
54 }
55
57 {
58 int num = (handle.RowId - 1) * RowSize;
60 }
61}
static EntityHandle ConvertToHandle(uint implementation)
unsafe MemoryBlock GetMemoryBlockAt(int offset, int length)
int PeekHeapReference(int offset, bool smallRefSize)
unsafe uint PeekUInt32(int offset)
uint PeekTaggedReference(int offset, bool smallRefSize)
ManifestResourceAttributes GetFlags(ManifestResourceHandle handle)
ManifestResourceTableReader(int numberOfRows, int implementationRefSize, int stringHeapRefSize, MemoryBlock containingBlock, int containingBlockOffset)
static StringHandle FromOffset(int heapOffset)