fix for language entry length issue

This commit is contained in:
MattNL
2022-08-24 03:37:41 -04:00
parent 61450dec37
commit 6ddfbe0d65

View File

@@ -24,7 +24,7 @@ namespace PckStudio.Classes.IO.LOC
WriteInt(stream, type);
WriteInt(stream, _locfile.Languages.Count);
if (type == 2) WriteLocKeys(stream);
WriteLanguages(stream);
WriteLanguages(stream, type);
WriteLanguageEntries(stream, type);
}
@@ -37,12 +37,27 @@ namespace PckStudio.Classes.IO.LOC
WriteString(stream, key);
}
private void WriteLanguages(Stream stream)
private void WriteLanguages(Stream stream, int type)
{
_locfile.Languages.ForEach(language =>
{
WriteString(stream, language);
WriteInt(stream, 0);
//Calculate the size of the language entry
int size = 0;
size += sizeof(int); // null long
size += sizeof(byte); // null byte
size += (sizeof(short) + Encoding.UTF8.GetByteCount(language)); // language name string
size += sizeof(int); // key count
foreach (var locKey in _locfile.LocKeys.Keys)
{
if (type == 0) size += (2 + Encoding.UTF8.GetByteCount(locKey)); // loc key string
size += (2 + Encoding.UTF8.GetByteCount(_locfile.LocKeys[locKey][language])); // loc key string
}
WriteInt(stream, size);
});
}