public string ReadString(uint index)
{
if (!table.ContainsKey(index))
{
Log.Warning("String not found in string table: " + index);
return string.Empty;
}
lock (reader)
{
reader.BaseStream.Seek(table[index], SeekOrigin.Begin);
if (MustIgnoreStringLength)
reader.BaseStream.Seek(4, SeekOrigin.Current);
return reader.ReadStringZeroTerminated();
}
}
private string GetStringFromReader(StringTableReader reader, uint index) { if (reader != null) { return(reader.ReadString(index)); } else { throw new InvalidDataException("One or more locale string file(s) could not be located for plugin: " + plugin.FileName); } }