private void FixNameFNV1A(ref CR2WName name) { var str = m_dictionary[name.value]; var hash = FNV1A32HashAlgorithm.HashString(str, Encoding.ASCII, true); name.hash = hash; }
public CR2WName ToCR2WName() { return(new CR2WName { hash = FNV1A32HashAlgorithm.HashString(str), value = offset }); }
public ushort AddName(string value) { var hash = FNV1A32HashAlgorithm.HashString(value); var index = names.FindIndex(n => n.hash == hash); if (index >= 0) { return(Convert.ToUInt16(index)); } names.Add(new SName { offset = AddString(value), hash = hash, }); return(Convert.ToUInt16(names.Count - 1)); }
public void Write(BinaryWriter file) { file.Write(offset); file.Write(FNV1A32HashAlgorithm.HashString(str)); }
void GetNames() { names = new List <SName>(); var start = tableheaders[1].Offset; var size = tableheaders[1].Size; BaseStream.Seek(start, SeekOrigin.Begin); for (int i = 0; i < size; i++) { var o = ReadUInt32(); var h = ReadUInt32(); var v = strings[o]; names.Add(new SName() { Offset = o, Hash = h, Value = v, }); } Writer.WriteLine("\n"); Writer.WriteLine("\tTable 2"); Writer.WriteLine("\tSize {0}", size); Writer.WriteLine("\tOffset {0}", start); Writer.WriteLine("\n"); Writer.WriteLine("|Offset |Hash |Computed |Value"); Writer.WriteLine("|----------|-----------|-----------|---------------------------"); foreach (var r in names) { Writer.WriteLine("|{0,-10}|0x{1,-9:X8}|0x{2,-9:X8}|{3}", r.Offset, r.Hash, FNV1A32HashAlgorithm.HashString(r.Value, Encoding.ASCII, true), r.Value); } }
void GetNames() { names = new List <SName>(); var start = tableheaders[1].Offset; var size = tableheaders[1].Size; BaseStream.Seek(start, SeekOrigin.Begin); for (int i = 0; i < size; i++) { var o = ReadUInt32(); var h = ReadUInt32(); var v = strings[o]; names.Add(new SName() { Offset = o, Hash = h, Value = v, }); } Writer.WriteLine("\n"); Writer.WriteLine("\tTable 2"); Writer.WriteLine("\tSize {0}", size); Writer.WriteLine("\tOffset {0}", start); Writer.WriteLine("\n"); Writer.WriteLine("|Offset |Hash |Computed |Value"); Writer.WriteLine("|----------|---------------|---------------|---------------------------"); foreach (var r in names) { Writer.WriteLine("|{0}|{1}|{2}|{3}", Convert.ToString(r.Offset).PadRight(10), $"0x{r.Hash:X}".PadRight(15), $"0x{FNV1A32HashAlgorithm.HashString(r.Value):X}".PadRight(15), r.Value); } }