started entities

This commit is contained in:
Boki 2026-03-01 14:09:00 -05:00
parent 6e9d89b045
commit 69a8eaea62
5 changed files with 352 additions and 3 deletions

View file

@ -67,11 +67,31 @@ public sealed class TerrainOffsets
public int ServerDataOffset { get; set; } = 0x9F0;
/// <summary>AreaInstance → LocalPlayer entity pointer (dump: 0x9F0+0x20 = 0xA10 via LocalPlayerStruct.LocalPlayerPtr).</summary>
public int LocalPlayerDirectOffset { get; set; } = 0xA10;
/// <summary>AreaInstance → EntityListStruct offset (dump: 0xAF8). Contains StdMap AwakeEntities then SleepingEntities.</summary>
public int EntityListOffset { get; set; } = 0xAF8;
/// <summary>AreaInstance → EntityListStruct offset (dump: 0xAF8, CE confirmed: 0xB50). Contains StdMap AwakeEntities then SleepingEntities.</summary>
public int EntityListOffset { get; set; } = 0xB50;
/// <summary>Offset within StdMap to _Mysize (entity count). MSVC std::map: head(8) + size(8).</summary>
public int EntityCountInternalOffset { get; set; } = 0x08;
// ── Entity list node layout (MSVC std::map red-black tree) ──
// Node: _Left(+0x00), _Parent(+0x08), _Right(+0x10), _Color(+0x18), _Myval(+0x20)
// _Myval = pair<uint32 key, Entity* value>
/// <summary>Tree node → left child pointer.</summary>
public int EntityNodeLeftOffset { get; set; } = 0x00;
/// <summary>Tree node → parent pointer.</summary>
public int EntityNodeParentOffset { get; set; } = 0x08;
/// <summary>Tree node → right child pointer.</summary>
public int EntityNodeRightOffset { get; set; } = 0x10;
/// <summary>Tree node → entity pointer (pair value at +0x28).</summary>
public int EntityNodeValueOffset { get; set; } = 0x28;
/// <summary>Entity → uint ID offset (EntityOffsets: +0x80).</summary>
public int EntityIdOffset { get; set; } = 0x80;
/// <summary>Entity → IsValid byte offset (EntityOffsets: +0x84).</summary>
public int EntityFlagsOffset { get; set; } = 0x84;
/// <summary>Entity → EntityDetailsPtr (Head/MainObject pointer, +0x08).</summary>
public int EntityDetailsOffset { get; set; } = 0x08;
/// <summary>EntityDetails → std::string path (MSVC layout: ptr/SSO at +0, size at +0x10, capacity at +0x18). Offset within EntityDetails struct.</summary>
public int EntityPathStringOffset { get; set; } = 0x08;
// ServerData → fields
/// <summary>ServerData → LocalPlayer entity pointer (fallback if LocalPlayerDirectOffset is 0).</summary>
public int LocalPlayerOffset { get; set; } = 0x20;