1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-01-19 20:53:52 +00:00
Commit graph

77 commits

Author SHA1 Message Date
Petr Mikheev
ff774d6406 Load more ESM4 records 2023-04-09 18:52:11 +02:00
Petr Mikheev
f09a689a4f Merge ESM::RefNum and ESM4::FormId 2023-04-09 00:23:32 +02:00
psi29a
aad9ce53db Merge branch 'esm4_gmst' into 'master'
Support loading ESM4 GMST records

See merge request OpenMW/openmw!2892
2023-04-04 09:51:02 +00:00
elsid
dbed00842e
Split components/esm4/common.hpp header 2023-04-04 10:12:20 +02:00
elsid
87ac85223a
Support loading ESM4 GMST records 2023-04-04 09:59:35 +02:00
florent.teppe
f99e65843a Removes most cellId.hpp include, simplifies id generation for cells. 2023-04-03 14:16:32 +02:00
florent.teppe
6895a452ef restores the concept of worldspace for MWWorld::Cell 2023-04-03 14:16:04 +02:00
florent.teppe
a3a7767093 applies review changes
filepos changed to an actual file pos
moved lambda declaration out of function call
2023-03-28 17:11:30 +02:00
florent.teppe
464092e323 fix oblivion and skyrim 2023-03-28 17:11:30 +02:00
florent.teppe
34dd24b261 Initial changes to detect when context isn't usable 2023-03-28 17:11:30 +02:00
elsid
90ed24f4c9
Split type traits for ESM4, ESM3 and unite common 2023-03-26 19:07:23 +02:00
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
2023-03-18 09:30:48 +00:00
Shi Han
a90e3b8c3b Move from std::atoi to std::from_char 2023-03-18 09:30:48 +00:00
elsid
67e96d48ba
Use relative to content file path to find strings file
To be used by esmtool when VFS is not used.
2023-03-18 03:00:18 +01:00
psi29a
a60f657f5a Merge branch 'fast_cell4_load' into 'master'
Lazy loading of ESM4::reference

See merge request OpenMW/openmw!2804
2023-03-17 21:46:37 +00:00
Alexei Dobrohotov
3d87bc185d Updates to ESM4::Ammunition loading 2023-03-13 01:36:07 +03:00
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.
2023-03-04 23:40:41 +01:00
Alexei Dobrohotov
540fa00f12 Don't use ESM4::Lighting fog power as fog density 2023-02-27 05:50:58 +03:00
Cédric Mocquillon
6e23ad82d5 Load esm files from vfs 2023-02-19 21:58:19 +01:00
florent.teppe
a71a86e64a Load light models in the engine. Doesn't emit light 2023-02-06 20:22:17 +01:00
psi29a
4032c447e9 Merge branch 'load-ESM4-Cell' into 'master'
Can load and coc into an interrior oblivion cell

See merge request OpenMW/openmw!2647
2023-02-06 08:56:23 +00:00
florent.teppe
1caed2de2a Applies some review comments.
Proper visit for ESM::CellVariant

Fixed MWWorldCell constructor
2023-02-04 17:09:54 +01:00
elsid
f1dbd9b959
Fix -Wduplicated-branches warnings 2023-02-04 00:10:30 +01:00
elsid
c79c14da91
Fix -Wnon-virtual-dtor warnings 2023-02-03 23:00:09 +01:00
Andrzej Głuszak
c9e5f0208d Replace boost::scoped_array with std::vector 2023-01-29 20:40:07 +01:00
elsid
d541436b15
Support parent, type and value fields in esmtool for ESM4 2023-01-29 03:02:00 +01:00
elsid
e7acced5e9
Move metafunctions to check ESM4 field existence to a separate header 2023-01-29 03:00:48 +01:00
elsid
5bb088218e
Restore original formId
To make sure esmtool prints original value and not a result of conversion.
2023-01-29 02:35:06 +01:00
florent.teppe
f9da66e9ee Greatly improved how the variant on MWWorld::CellRef works 2023-01-28 18:57:55 +01:00
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
2023-01-27 13:39:39 +01:00
florent.teppe
c896a2ca48 Crashfix on launch 2023-01-26 22:37:32 +01:00
florent.teppe
e81e278363 Implements some cell params + linux compile fix 2023-01-26 22:37:31 +01:00
florent.teppe
562e129bd0 encapsulations of esm3 cell and esm4 cells. 2023-01-26 22:37:31 +01:00
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.
2023-01-02 19:20:03 +01:00
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
2023-01-01 19:22:27 +01:00
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
2023-01-01 16:22:57 +01:00
elsid
baa39c06bb
Move fourCC to a separate file 2022-11-06 15:35:16 +01:00
elsid
843753da14
Remove unused includes 2022-10-09 16:44:18 +02:00
elsid
063fff7fa4
Fix and prevent -Wextra-semi warning 2022-10-06 00:26:43 +02:00
clang-format-bot
ddb0522bbf
Apply clang-format to code base 2022-09-22 21:35:26 +03:00
elsid
6f00641c8a
Fix reading array of zero terminated strings
NIFZ and KFFZ subrecords store multiple strings separated by \0 character.
2022-09-15 00:01:19 +02:00
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.
2022-09-12 01:42:01 +02:00
Project579
886b8c7af2 Fix build error with stdlibc++ due to includes shuffling. 2022-09-11 14:41:21 +02:00
Project579
a13709c510 Replace implicit convertions from std::filesystem::path to std::string with correctly converting functions. 2022-09-11 14:41:20 +02:00
Project579
e5c417c968 Make sure all paths are passed as std::filesystem::path instead of std::string where possible. 2022-09-11 14:41:15 +02:00
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.
2022-09-10 15:17:49 +02:00
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
2022-09-05 17:35:35 +02:00
AnyOldName3
4e8e2e1c60 Eliminate &thing[0] pattern 2022-09-03 16:41:35 +01:00
elsid
f99ed6f1db
Split components/misc/stringops.hpp into multiple headers
Replace all ciEqual overloads with one having std::string_view as argument.
2022-08-03 22:06:24 +02:00
elsid
6c8ed4d19c
Move Files::IStreamPtr alias to a separate header
To avoid transitive include of Windows.h all over the engine.
2022-07-17 11:35:39 +02:00