Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
UserStringHeap.cs
Go to the documentation of this file.
2
4
5internal readonly struct UserStringHeap
6{
7 internal readonly MemoryBlock Block;
8
10 {
11 Block = block;
12 }
13
15 {
16 if (!Block.PeekHeapValueOffsetAndSize(handle.GetHeapOffset(), out var offset, out var size))
17 {
18 return string.Empty;
19 }
20 return Block.PeekUtf16(offset, size & -2);
21 }
22
24 {
25 if (!Block.PeekHeapValueOffsetAndSize(handle.GetHeapOffset(), out var offset, out var size))
26 {
27 return default(UserStringHandle);
28 }
29 int num = offset + size;
30 if (num >= Block.Length)
31 {
32 return default(UserStringHandle);
33 }
34 return UserStringHandle.FromOffset(num);
35 }
36}
unsafe string PeekUtf16(int offset, int byteCount)
bool PeekHeapValueOffsetAndSize(int index, out int offset, out int size)
UserStringHandle GetNextHandle(UserStringHandle handle)
static UserStringHandle FromOffset(int heapOffset)