private List <string> GetStats(NativePtrArray array) { var readPointersArray = M.ReadPointersArray(array.First, array.Last, ModsComponentOffsets.HumanStats); var result = new List <string>(); foreach (var pointer in readPointersArray) { result.Add(Cache.StringCache.Read($"{nameof(Mods)}{pointer}", () => M.ReadStringU(pointer))); } return(result); }
private List <Wing> GetWings(NativePtrArray source) { var wings = new List <Wing>(); var recordSize = HeistBlueprintComponentOffsets.WingRecordSize; for (var wingAddress = source.First; wingAddress < source.Last; wingAddress += recordSize) { wings.Add(GetObject <Wing>(wingAddress)); } return(wings); }
private string GetUniqueName(NativePtrArray source) { var words = new List <string>(); if (Address == 0) { return(string.Empty); } for (var first = source.First; first < source.Last; first += ModsComponentOffsets.NameRecordSize) { words.Add(M.ReadStringU(M.Read <long>(first, ModsComponentOffsets.NameOffset)).Trim()); } return(Cache.StringCache.Read($"{nameof(Mods)}{source.First}", () => string.Join(" ", words.ToArray()))); }
private List <string> GetStats(NativePtrArray source) { var stats = new List <string>(); if (Address == 0) { return(stats); } var readPointersArray = M.ReadPointersArray(source.First, source.Last, ModsComponentOffsets.StatRecordSize); foreach (var statAddress in readPointersArray) { stats.Add(Cache.StringCache.Read($"{nameof(Mods)}{statAddress}", () => M.ReadStringU(statAddress))); } return(stats); }
private IList <InventoryHolder> GetInventory(NativePtrArray inventories) { var first = inventories.First; var last = inventories.Last; if (first <= 0 || last <= 0) { return(new List <InventoryHolder>()); } var inventoryCount = (last - first) / InventoryHolder.StructSize; if (inventoryCount < 0 || inventoryCount > MaxElementsToScan) { return(new List <InventoryHolder>()); } return(M.ReadStructsArray <InventoryHolder>(first, last, InventoryHolder.StructSize, this).ToList()); }
private IList <ServerStashTab> GetStashTabs(NativePtrArray tabs) { var first = tabs.First; var last = tabs.Last; if (first <= 0 || last <= 0) { return(new List <ServerStashTab>()); } var tabCount = (last - first) / ServerStashTab.StructSize; if (tabCount <= 0 || tabCount > MaxElementsToScan) { return(new List <ServerStashTab>()); } return(M.ReadStructsArray <ServerStashTab>(first, last, ServerStashTab.StructSize, TheGame).ToList()); }
private List <ItemMod> GetMods(NativePtrArray source) { var mods = new List <ItemMod>(); if (Address == 0) { return(mods); } if (source.Size / ModsComponentOffsets.ItemModRecordSize > 12) { return(mods); } for (var modAddress = source.First; modAddress < source.Last; modAddress += ModsComponentOffsets.ItemModRecordSize) { mods.Add(GetObject <ItemMod>(modAddress)); } return(mods); }