public static int FindOffsetForItem(string itemName) { try { int indexOfItemName = PddbItemListNames.IndexOf(itemName); int index2 = List0.IndexOf(List1[indexOfItemName]); return(ItemOffsets[index2]); } catch { return(0); } }
public static void GetPddbItemOffset(ref byte[] byte3, ref byte[] byte4, ref StringBuilder stringBuilder0, ref bool bool0, ref int int0, int int1) { try { if (bool0 || byte4[0] >= 16) { return; } Console.Write(stringBuilder0.ToString()); if (byte4[0] == 7) { if (byte3[1] >= 128 && byte3[1] <= 129) { List0.Add((int)ReverseEndedness(0U, 2U, byte3)); ItemOffsets.Add(int1); } else { ItemOffsets.Add(int1); List0.Add((int)ReverseEndedness(0U, 1U, byte3)); } } else if (byte3[1] <= sbyte.MaxValue) { ItemOffsets.Add(int1); List0.Add((int)ReverseEndedness(0U, 1U, byte3)); } else if (byte3[1] <= 129) { ItemOffsets.Add(int1); List0.Add((int)ReverseEndedness(0U, 2U, byte3)); } ++int0; } catch { } }
private static void GetPddbItemListNames(string filePath) { try { if (!File.Exists(filePath)) { return; } var fs = new FileStream(filePath, FileMode.Open); var ebr = new EndianBinaryReader(new BigEndianBitConverter(), fs); fs.Position = PddbStartOffsetReadStart; _pddbTableLength = ebr.ReadUInt32(); fs.Position = PddbFirstItemOffset; _pddbSymbolsOffset = _pddbTableLength + SaveFileHeaderLength; byte pdddbDataType = 0; var sb = new StringBuilder(string.Empty); bool bool0 = false; int int0 = 0; var byte4 = new byte[5]; var byte5 = new byte[2]; while (fs.Position < _pddbSymbolsOffset) { ReadPddbValues(fs, pdddbDataType, byte4, byte5, ref sb, ref bool0, ref int0); } List1 = List0.Distinct().ToList(); List1.Sort(); int num2 = 0; foreach (int num3 in List1) { PddbItemListNames.Add(ReadPddbSymbols(fs, num2++)); } fs.Close(); } catch { } }