internal static int GetDependenciesSize(ExternalOffset dependency, List <ExternalOffset> offsets) { // If Empty Then It's Usually Dynamic Pointer (Like `Data` Member In `TArray`) List <ExternalOffset> dOffsets = offsets.Where(off => off.Dependency == dependency).ToList(); if (!dOffsets.Any()) { return(0); } // Get Biggest Offset int biggestOffset = dOffsets.Max(unrealOffset => unrealOffset.Offset); // Get Offset ExternalOffset offset = offsets.Find(off => off.Dependency == dependency && off.Offset == biggestOffset); // Get Size Of Data int valueSize = offset.OffsetType switch { OffsetType.String => ExternalMemorySharp.MaxStringLen, _ => offset.Size }; return(biggestOffset + valueSize); }
protected override void InitOffsets() { base.InitOffsets(); _index = new ExternalOffset <int>(ExternalOffset.None, 0x00); _number = new ExternalOffset <int>(ExternalOffset.None, 0x04); }
protected override void InitOffsets() { base.InitOffsets(); _stringPointer = new ExternalOffset <UIntPtr>(0x00); _stringData = new ExternalOffset <string>(_stringPointer, 0x00); }
protected override void InitOffsets() { base.InitOffsets(); int curOff = 0x0; _data = new ExternalOffset <UIntPtr>(ExternalOffset.None, curOff); curOff += Ems.Is64BitGame ? 0x8 : 0x4; _count = new ExternalOffset <int>(ExternalOffset.None, curOff); curOff += 0x4; _max = new ExternalOffset <int>(ExternalOffset.None, curOff); }
protected override void InitOffsets() { base.InitOffsets(); _enumVal = new ExternalOffset <byte>(ExternalOffset.None, 0x00); }