From 18a9878bdd82cd144f7bbb3efaa6a806a4169841 Mon Sep 17 00:00:00 2001 From: Lukasz Gromanowski Date: Sat, 21 Dec 2013 09:33:05 +0100 Subject: [PATCH] Fixes #1042: TES3 header data wrong encoding Changed loading of HEDR structure from all-in-once to field-by-field so author and descryption could be converted to UTF-8. Signed-off-by: Lukasz Gromanowski --- components/esm/loadtes3.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/components/esm/loadtes3.cpp b/components/esm/loadtes3.cpp index 87a8d1d57e..262d4f6faa 100644 --- a/components/esm/loadtes3.cpp +++ b/components/esm/loadtes3.cpp @@ -19,7 +19,15 @@ void ESM::Header::blank() void ESM::Header::load (ESMReader &esm) { - esm.getHNT (mData, "HEDR", 300); + if (esm.isNextSub("HEDR")) + { + esm.getSubHeader(); + esm.getT(mData.version); + esm.getT(mData.type); + mData.author.assign(esm.getString(sizeof(mData.author.name))); + mData.desc.assign(esm.getString(sizeof(mData.desc.name))); + esm.getT(mData.records); + } if (esm.isNextSub ("FORM")) { @@ -52,4 +60,4 @@ void ESM::Header::save (ESMWriter &esm) esm.writeHNCString ("MAST", iter->name); esm.writeHNT ("DATA", iter->size); } -} \ No newline at end of file +}