Commit Graph

28 Commits (master)

Author SHA1 Message Date
Alexei Kotov 6b93479bd3 Get rid of ESM4::SubRecordTypes
All my homies hate ESM4::SubRecordTypes
10 months ago
elsid 199d97d32a
Use forward declaration for VFS::Manager 11 months ago
Alexei Kotov 8d655054f1 esmtool: Print human-readable ESM4 file format version 1 year ago
Alexei Kotov 8c27dca1df ESM4: add a way to get the current form version
Differentiate between Fallout 4 and TES4 version 1.0 plugins
1 year ago
Petr Mikheev 5d54ca6fdb Refactor components/esm4 1 year ago
elsid 2f18da08d7
Add missing include 2 years ago
elsid e537d1d0d4
Ignore missing localization string files by esmtool
Dawnguard.esm from Skyrim depends on files stored in Dawnguard.bsa which is not
processed by esmtool.
2 years ago
elsid 358b7ad3ec
Keep ESM4 localized strings in memory
Size of the files is in order of megabytes at max. Storing offset lookup table
to read from file on demand is less efficient than reading from memory for such
size.

Read and store offsets first. Sort them to read values sequentially. Memoize
last offset and value to avoid reading the same value twice. Use seek only when
current possition does not match offset. Optimize seek for short distance by
calling read instead.
2 years ago
elsid 010db45a10
Read ESM::FormId using ESM4::Reader::getFormId 2 years ago
Petr Mikheev ff774d6406 Load more ESM4 records 2 years ago
Petr Mikheev f09a689a4f Merge ESM::RefNum and ESM4::FormId 2 years ago
elsid dbed00842e
Split components/esm4/common.hpp header 2 years ago
florent.teppe a3a7767093 applies review changes
filepos changed to an actual file pos
moved lambda declaration out of function call
2 years ago
Cédric Mocquillon 6e23ad82d5 Load esm files from vfs 2 years ago
elsid 063fff7fa4
Fix and prevent -Wextra-semi warning 2 years ago
clang-format-bot ddb0522bbf
Apply clang-format to code base 2 years ago
elsid 6f00641c8a
Fix reading array of zero terminated strings
NIFZ and KFFZ subrecords store multiple strings separated by \0 character.
2 years ago
Project579 886b8c7af2 Fix build error with stdlibc++ due to includes shuffling. 2 years ago
Project579 e5c417c968 Make sure all paths are passed as std::filesystem::path instead of std::string where possible. 2 years ago
elsid ac1688f9c1
Remove ESM::Reader base class
This class does not serve any useful purpose now. It was added as a first step
in attempt to define common interface for ESM3 and ESM4 readers. But this is not
going to happen.
2 years ago
elsid 6c8ed4d19c
Move Files::IStreamPtr alias to a separate header
To avoid transitive include of Windows.h all over the engine.
2 years ago
elsid 13c970b37a
Add const modifier to encoder type 3 years ago
psi29a f99f818c0c Merge branch 'esm4_cleanup' into 'master'
ESM4 cleanup

See merge request OpenMW/openmw!1792
3 years ago
elsid 3abcf3dd0d
Fix style guide 3 years ago
elsid 94c1d0cced
Use unique_ptr to store istream 3 years ago
elsid 5eb8c4aebe
Avoid redundant conversion to const char* and use make_shared 3 years ago
elsid 139ae9325a Fix compile errors by using StatelessUtf8Encoder 3 years ago
cc9cii ba3ae448d4 Initial import of esm4 by cc9cii 3 years ago