diff --git a/components/esm3/esmreader.hpp b/components/esm3/esmreader.hpp index ffa7a94d7b..85e3f8a59a 100644 --- a/components/esm3/esmreader.hpp +++ b/components/esm3/esmreader.hpp @@ -265,7 +265,14 @@ public: // them from native encoding to UTF8 in the process. std::string getString(int size); - void skip(int bytes) { mEsm->seekg(getFileOffset()+bytes); }; + void skip(std::size_t bytes) + { + char buffer[4096]; + if (bytes > std::size(buffer)) + mEsm->seekg(getFileOffset() + bytes); + else + mEsm->read(buffer, bytes); + } /// Used for error handling [[noreturn]] void fail(const std::string &msg);