Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
TypeRefTableReader.cs
Go to the documentation of this file.
2
4
5internal readonly struct TypeRefTableReader
6{
7 internal readonly int NumberOfRows;
8
9 private readonly bool _IsResolutionScopeRefSizeSmall;
10
11 private readonly bool _IsStringHeapRefSizeSmall;
12
13 private readonly int _ResolutionScopeOffset;
14
15 private readonly int _NameOffset;
16
17 private readonly int _NamespaceOffset;
18
19 internal readonly int RowSize;
20
21 internal readonly MemoryBlock Block;
22
23 internal TypeRefTableReader(int numberOfRows, int resolutionScopeRefSize, int stringHeapRefSize, MemoryBlock containingBlock, int containingBlockOffset)
24 {
25 NumberOfRows = numberOfRows;
26 _IsResolutionScopeRefSizeSmall = resolutionScopeRefSize == 2;
27 _IsStringHeapRefSizeSmall = stringHeapRefSize == 2;
29 _NameOffset = _ResolutionScopeOffset + resolutionScopeRefSize;
30 _NamespaceOffset = _NameOffset + stringHeapRefSize;
31 RowSize = _NamespaceOffset + stringHeapRefSize;
32 Block = containingBlock.GetMemoryBlockAt(containingBlockOffset, RowSize * numberOfRows);
33 }
34
40
46
52}
static EntityHandle ConvertToHandle(uint resolutionScope)
unsafe MemoryBlock GetMemoryBlockAt(int offset, int length)
int PeekHeapReference(int offset, bool smallRefSize)
uint PeekTaggedReference(int offset, bool smallRefSize)
EntityHandle GetResolutionScope(TypeReferenceHandle handle)
StringHandle GetName(TypeReferenceHandle handle)
StringHandle GetNamespace(TypeReferenceHandle handle)
TypeRefTableReader(int numberOfRows, int resolutionScopeRefSize, int stringHeapRefSize, MemoryBlock containingBlock, int containingBlockOffset)
static StringHandle FromOffset(int heapOffset)