5 years ago 26 commits to master since this release
Version 1.0.0
* First beta version of library, with most functions for extracting/patching already implemented
Version 1.0.2
* Fixed issue when some text files were patched but didn't appear in game ("<string error DID.." error due to incomplete dictionary update)
Version 1.0.5
* Fixed issue when some files were replaced by new files, because of incorrect fragmentation journal, which cause "Unable to send request" error in game launcher
Version 2.0.0
* Added support for maintaining both original and patched versions of subfiles in .dat file, and switching between these versions.
Version 2.1.0
* Changed structure of project in order to use it as library. Added basic API functions for easier library management
Version 3.0.0
* Added support for dividing files into categories and activating/deactivating them in DatFile
Version 3.1.0
* Fixed issue with incorrect applying patch to files with inactive category
* Minor code improvement and fixes for capability to work with extractor
Version 3.2.0
* Added checkers for situations when .dat file wasn't patched at all or was patched by old launcher
Version 3.3.0
* Added check and repair functions for situation, when .dat file was patched by LotRO launcher because of official update
Version 4.0.0
* Refactored most functions of DatFile class - they throw much less exceptions and base on returning special error values
* Added Easylogging++ library and implememted it fully in DatFile class
* Improved stability and constantly of library with using ordered locale sets and maps
Version 4.1.0
* Some minor fixes and stability improvements, which should cause less library critical errors.
Version 4.2.0
* Fixed critical bug, which caused .dat file corruption, if 2 different texts less than 256 bytes size were patched with different versions.
Version 5.0.0
* Changed subfile dictionary structure as it wasn't completely correct and caused problems with game updates.
* Changed structure of patch applies so that there's no need in function CommitChanges.
* Optimised code and speed of library.
* Removing all fragmentation journal on startup.
* Using buffered data in .dat file when writing to the end, which increases speed of patching.
Version 5.1.0
* Added additional compilation flags in order to improve speed.
* Changed locales' file structure and placement. Old structure made .dat file have a chance to break while game updating.
* Improved stability and safety while reading files' data.
Version 5.1.1
* Improved locales' file commit process. Now fixed place in .dat file is reserved for locales, they won't 'eat' more data after every patch apply.
Version 5.2.0
* Fixed (maybe) problem, when game update caused .dat file corruption ("Unable to send request" error after update).
* Fixed (maybe) incorrect work with iterations list
* Improved speed of opening .dat file by visiting each directory only once.
* Removed DatException class and all it's calls. Throwing exceptions changed to returning special null data.
Version 7.0.0
* Everything except some simpliest modules or structures was rewritten
* Logic part divided into submodules (DatIO, DatFileSystem, DatBackupManager, DatExporter, DatLocaleManager, DatPatcher, DatStatus)
* Slightly improved stability, added extra features (normal backup, operation status & percentage and so on)
Version 7.1.0
* Improved security, added special fields, which help to recognize whether .dat file was broken
Version 7.2.0
* Minor security fixes
* Reimplemented categories support
Version 7.2.1
* Bug fixes (Text files used incorrect fragments during import, if there was no fragment in patch with specified id)
Version 7.2.2
* Small fixes, added one more protection layer: locales dictionary now contains hash of header at the moment of last patch applying. So that system can easily detect if file was modified and there's a need to update patches.