Commit Graph

27 Commits (06bf80cc3b6e9ebd4907f192b30a54766f334b98)

Author SHA1 Message Date
Alexei Kotov 6b93479bd3 Get rid of ESM4::SubRecordTypes
All my homies hate ESM4::SubRecordTypes
10 months ago
Alexei Kotov 1a62b2e6b5 ESM4: use switch-cases when relevant 1 year ago
Alexei Kotov 07c85addb2 Cleanup 1 year ago
Alexei Kotov 3b3545fa58 Fix cell grid and owner subrecord loading for FO4 1 year ago
Alexei Kotov 5a73b351e2 Maybe load FO4 cell records 1 year ago
Petr Mikheev 5d54ca6fdb Refactor components/esm4 1 year ago
elsid fd01b4cad7
Avoid casts to read cell flags 1 year ago
jvoisin 3152078c7e Restore missing std::endl removed by an overeager regex 2 years ago
jvoisin 0e33730f5d Remove useless logging
As suggested in https://gitlab.com/OpenMW/openmw/-/merge_requests/3086#note_1413234840
2 years ago
jvoisin a58dc6fd30 Use the logging system instead of std::cout in components/esm4
- Remove debug-related includes
- Add some trivial missing includes
- Remove useless {}
- Move the known-but-skipped-records are the end of the switch-cases
- Always throw on unknown records
2 years ago
jvoisin 44a65512e8 Replace another assert with a throw 2 years ago
florent.teppe 93b3d9238c mWater level disabled for skyrim. 2 years ago
florent.teppe 3de08e654f Better handling of water levels for exterior cells.
Especially for skyrim and it's weird water level values in exteriors.
If we don't have a valid exterior water level we use the world's water level
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 6895a452ef restores the concept of worldspace for MWWorld::Cell 2 years ago
florent.teppe 214cb8d8fe Only loads ESM4::reference when they are needed
and only those from the cell they are a part of.
The cell stores where it starts in the file for quick access later.
2 years ago
elsid 5bb088218e
Restore original formId
To make sure esmtool prints original value and not a result of conversion.
2 years ago
florent.teppe 3b2d9161c4 Applied review advice
better deals with templated functions meant for esm3 used by esm4s.
simplified loading of esm4 and dealing with unhandled record types.
2 years ago
florent.teppe 077cf97bc4 The esm4 reader logic is mutualised
to avoid copy pasting code, readerutils gives functions that take visitors as params to decide how a record must be handled

Check encoder exists, and get value of stateless encoder.

fixes code formatting conventions

Fixed output of record with RefId

also fixed readTypedRecord and readRecord to have the proper return types

Check if the type has a sRecordId
2 years ago
florent.teppe c721a6cafa Initial commit to load ESM4
Some data is actually loaded and store in ESM Store
Any new ESM4 will go through the same code path and be automatically sent to the right store
2 years ago
clang-format-bot ddb0522bbf
Apply clang-format to code base 2 years ago
Evil Eye a64979e25d Replace empty std::string assignments 3 years ago
elsid 4b28d51d5e
Remove virtual modifiers from ESM4 record functions
There is no need to have virtual functions.
3 years ago
elsid 2c9b6fffe5
Remove preloading logic from ESM4::Cell
This logic does not belong here. If client of ESM4::Cell needs to cache load
results it can be done separately.
3 years ago
elsid f516e34688
Remove used-defined constructors from ESM4 types
To avoid explicit initialization. It should happen in the load functions anyway.

* Move all non-zero initializations to corresponding class definition.
* Replace std::vector by std::array when it has constant size.
3 years ago
cc9cii ba3ae448d4 Initial import of esm4 by cc9cii 3 years ago