Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
ConstantTableReader.cs
Go to the documentation of this file.
2
4
5internal readonly struct ConstantTableReader
6{
7 internal readonly int NumberOfRows;
8
9 private readonly bool _IsHasConstantRefSizeSmall;
10
11 private readonly bool _IsBlobHeapRefSizeSmall;
12
13 private readonly int _TypeOffset;
14
15 private readonly int _ParentOffset;
16
17 private readonly int _ValueOffset;
18
19 internal readonly int RowSize;
20
21 internal readonly MemoryBlock Block;
22
23 internal ConstantTableReader(int numberOfRows, bool declaredSorted, int hasConstantRefSize, int blobHeapRefSize, MemoryBlock containingBlock, int containingBlockOffset)
24 {
25 NumberOfRows = numberOfRows;
26 _IsHasConstantRefSizeSmall = hasConstantRefSize == 2;
27 _IsBlobHeapRefSizeSmall = blobHeapRefSize == 2;
28 _TypeOffset = 0;
29 _ParentOffset = _TypeOffset + 1 + 1;
30 _ValueOffset = _ParentOffset + hasConstantRefSize;
31 RowSize = _ValueOffset + blobHeapRefSize;
32 Block = containingBlock.GetMemoryBlockAt(containingBlockOffset, RowSize * numberOfRows);
33 if (!declaredSorted && !CheckSorted())
34 {
36 }
37 }
38
40 {
41 int num = (handle.RowId - 1) * RowSize;
43 }
44
46 {
47 int num = (handle.RowId - 1) * RowSize;
49 }
50
56
62
67}
static EntityHandle ConvertToHandle(uint hasConstant)
static uint ConvertToTag(EntityHandle token)
static void TableNotSorted(TableIndex tableIndex)
Definition Throw.cs:250
unsafe MemoryBlock GetMemoryBlockAt(int offset, int length)
bool IsOrderedByReferenceAscending(int rowSize, int referenceOffset, bool isReferenceSmall)
int BinarySearchReference(int rowCount, int rowSize, int referenceOffset, uint referenceValue, bool isReferenceSmall)
int PeekHeapReference(int offset, bool smallRefSize)
uint PeekTaggedReference(int offset, bool smallRefSize)
static BlobHandle FromOffset(int heapOffset)
Definition BlobHandle.cs:34
static ConstantHandle FromRowId(int rowId)
ConstantTypeCode GetType(ConstantHandle handle)
ConstantHandle FindConstant(EntityHandle parentHandle)
ConstantTableReader(int numberOfRows, bool declaredSorted, int hasConstantRefSize, int blobHeapRefSize, MemoryBlock containingBlock, int containingBlockOffset)