Commit Graph

240 Commits (master)

Author SHA1 Message Date
Petr Mikheev be26fbdacb Explicitly intialize the fields in `ESM4::Cell` that don't have default constructors. 2 years ago
Petr Mikheev 61232f4b75 Fix uninitialized mWaterLevel in esm4/loadwrld.cpp 2 years ago
elsid 15f3e3ae71
Support ESM4 IDLE record 2 years ago
elsid 584c0dbcdc
Support reading bool GMST by ESM4 2 years ago
elsid 010db45a10
Read ESM::FormId using ESM4::Reader::getFormId 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
florent.teppe a62e75fd19 Initial attempt at loading esm4 exteriors 2 years ago
Bret Curtis 95fff7b77b show which file is not found 2 years ago
jvoisin c7a3f43915 Minor header cleanup
This has been done via CLion's "unused include directive",
set to "detect completely unused".
2 years ago
Petr Mikheev 7b6f0cefb9 Fix regressions in ESM4 reader caused by !2902 2 years ago
Petr Mikheev 3546d2b3e5 Make Store<ESM4::Reference> to use FormId instead of RefId 2 years ago
Petr Mikheev 00beb06391 Initial Lua bindings for ESM4 types; bindings for ESM4Door. 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
psi29a aad9ce53db Merge branch 'esm4_gmst' into 'master'
Support loading ESM4 GMST records

See merge request OpenMW/openmw!2892
2 years ago
elsid dbed00842e
Split components/esm4/common.hpp header 2 years ago
elsid 87ac85223a
Support loading ESM4 GMST records 2 years ago
florent.teppe f99e65843a Removes most cellId.hpp include, simplifies id generation for cells. 2 years ago
florent.teppe 6895a452ef restores the concept of worldspace for MWWorld::Cell 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
florent.teppe 464092e323 fix oblivion and skyrim 2 years ago
florent.teppe 34dd24b261 Initial changes to detect when context isn't usable 2 years ago
elsid 90ed24f4c9
Split type traits for ESM4, ESM3 and unite common 2 years ago
psi29a d64eea2fc6 Merge branch '7113-move-from-std-atoi-to-std-from_char' into 'master'
Move from std::atoi to std::from_char

Closes #7113

See merge request OpenMW/openmw!2760
2 years ago
Shi Han a90e3b8c3b Move from std::atoi to std::from_char 2 years ago
elsid 67e96d48ba
Use relative to content file path to find strings file
To be used by esmtool when VFS is not used.
2 years ago
psi29a a60f657f5a Merge branch 'fast_cell4_load' into 'master'
Lazy loading of ESM4::reference

See merge request OpenMW/openmw!2804
2 years ago
Alexei Dobrohotov 3d87bc185d Updates to ESM4::Ammunition loading 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
Alexei Dobrohotov 540fa00f12 Don't use ESM4::Lighting fog power as fog density 2 years ago
Cédric Mocquillon 6e23ad82d5 Load esm files from vfs 2 years ago
florent.teppe a71a86e64a Load light models in the engine. Doesn't emit light 2 years ago
psi29a 4032c447e9 Merge branch 'load-ESM4-Cell' into 'master'
Can load and coc into an interrior oblivion cell

See merge request OpenMW/openmw!2647
2 years ago
florent.teppe 1caed2de2a Applies some review comments.
Proper visit for ESM::CellVariant

Fixed MWWorldCell constructor
2 years ago
elsid f1dbd9b959
Fix -Wduplicated-branches warnings 2 years ago
elsid c79c14da91
Fix -Wnon-virtual-dtor warnings 2 years ago
Andrzej Głuszak c9e5f0208d Replace boost::scoped_array with std::vector 2 years ago
elsid d541436b15
Support parent, type and value fields in esmtool for ESM4 2 years ago
elsid e7acced5e9
Move metafunctions to check ESM4 field existence to a separate header 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 f9da66e9ee Greatly improved how the variant on MWWorld::CellRef works 2 years ago
florent.teppe 531e55e04c Better handling of the esm3 vs esm4 cell problem
Common attribute are in one structure that has two constructors, one for ESM3 vs ESM4 Cell
Mood part of MWWorld::Cell
2 years ago
florent.teppe c896a2ca48 Crashfix on launch 2 years ago
florent.teppe e81e278363 Implements some cell params + linux compile fix 2 years ago
florent.teppe 562e129bd0 encapsulations of esm3 cell and esm4 cells. 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
elsid baa39c06bb
Move fourCC to a separate file 2 years ago
elsid 843753da14
Remove unused includes 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
elsid 4f7dcd5ae5
Fix conversion to UTF8 for ESM4 Reader strings
toUtf8 returns a string view to the input when input string is ASCII and nothing
is written to the buffer which means output string of Reader::getStringImpl is
not modified.

Move input to the output string and resize it in this case.
2 years ago
Project579 886b8c7af2 Fix build error with stdlibc++ due to includes shuffling. 2 years ago
Project579 a13709c510 Replace implicit convertions from std::filesystem::path to std::string with correctly converting functions. 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
florent.teppe 252550d86f Added records for ESM4s the throw std:: logic error ensures at compile time that there is no collision
static_assert doesn't work because the function can be called at run time
2 years ago
AnyOldName3 4e8e2e1c60 Eliminate &thing[0] pattern 2 years ago
elsid f99ed6f1db
Split components/misc/stringops.hpp into multiple headers
Replace all ciEqual overloads with one having std::string_view as argument.
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
Andrei Kortunov 14b5674d32 Init missing data members 3 years ago
Andrei Kortunov 523ad825c2 There is no point to compare an unsigned value with 0 3 years ago
jvoisin aeb3733e57 Remove boost:: constructs
Namely boost::scoped_array and boost::to_lower_copy.
3 years ago
jvoisin 4e4debb1cb Remove even more of boost::filesystem 3 years ago
jvoisin 331363d469 Merge branch 'fix_uninit' into 'master'
Fix uninitialized coverity warnings

See merge request OpenMW/openmw!1819
3 years ago
Evil Eye a64979e25d Replace empty std::string assignments 3 years ago
jvoisin 143dcad0e8 Use an `if` instead of an assert 3 years ago
elsid b67a0a8f2b
Fix uninitialized coverity warnings 3 years ago
elsid d2510284ec
Support TES4 in esmtool dump 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 13c970b37a
Add const modifier to encoder type 3 years ago
elsid c7ba4100e1
Remove undefined and redundant ESM4 record type constructors 3 years ago
psi29a f99f818c0c Merge branch 'esm4_cleanup' into 'master'
ESM4 cleanup

See merge request OpenMW/openmw!1792
3 years ago
elsid 4a49bc4941
Remove undefined constructor declaration 3 years ago
elsid d71a1efa92
Rename components/esm4/acti.hpp -> components/esm4/loadacti.hpp 3 years ago
elsid d5fb2f8091
Use ESM::fourCC to define ESM4 record types 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 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
psi29a 1c1581bdab Merge branch 'check_esm4_compilation' into 'master'
Check ESM4 compilation

See merge request OpenMW/openmw!1677
3 years ago
elsid 96463cbb02
Remove malformed and unused esm4/records.hpp file 3 years ago
elsid cccfb14785
Remove user-defined constructor from ESM4::Quest
To avoid explicit initialization. It should happen in the load functions anyway.
3 years ago
elsid 139ae9325a Fix compile errors by using StatelessUtf8Encoder 3 years ago
Bret Curtis 8113620dce handle a few wearnings raised as errors 3 years ago
cc9cii ba3ae448d4 Initial import of esm4 by cc9cii 3 years ago