Commit Graph

991 Commits (db84d9e6490ccf01d6a32106255c91611490397f)

Author SHA1 Message Date
Evil Eye 61ea678a96 Implement ignored records 3 years ago
elsid 5eb8c4aebe
Avoid redundant conversion to const char* and use make_shared 3 years ago
psi29a 6d55317d57 Merge branch 'refactor/prng-2' into 'master'
Save random state and refactor usage of generators

See merge request OpenMW/openmw!1715
3 years ago
ζeh Matt b502dc12f0
Add prng to World instance and serialize state in Save 3 years ago
Petr Mikheev d251c4e2a1 [Lua] Change behavior of `obj.type` 3 years ago
duncanspumpkin 3a117cac22 Switch to a constexpr for FourCC constant
Add static asssert on wrong size
3 years ago
Bret Curtis 0f43455dc3 merge in master 3 years ago
elsid 139ae9325a Fix compile errors by using StatelessUtf8Encoder 3 years ago
elsid 3305b400dc
Use ESM::NAME instead of const char* and std::string as argument type 3 years ago
cc9cii ba3ae448d4 Initial import of esm4 by cc9cii 3 years ago
jvoisin 4cd6d2dacf Merge branch 'rework_fixed_string' into 'master'
Rework fixed string

See merge request OpenMW/openmw!1596
3 years ago
Petr Mikheev 68ef96410c Make ESM::Position not packed (should fix #6566) 3 years ago
elsid 45db56b382
Rework fixed string
* Avoid inheritance.
* Define equality operators out of the class definition.
* Replace toString with toStringView where it doesn't make sense to create a string.
3 years ago
Bret Curtis d1fb854521 move most of the files from esm to esm3, keep common code in esm; this is make space for a future with esm4
esm typo

esm typo
3 years ago
Petr Mikheev 2d1b100239 Change terminology of gameSecond/gameHour to simulationTime/gameTime 3 years ago
psi29a bafde5c9c4 Merge branch 'cleanup' into 'master'
Remove constant conditions

See merge request OpenMW/openmw!1527
3 years ago
jvoisin 421e6629ad Fix unnecessary-copy-initialization
> warning: the variable 'key' is copy-constructed from a const reference but is
only used as const reference; consider making it a const reference
[performance-unnecessary-copy-initialization]

Found by clang-tidy.
3 years ago
Evil Eye 5a7a3a0d2d Silence a signed/unsigned mismatch warning 3 years ago
Evil Eye bdfad27e05 Remove constant conditions 3 years ago
psi29a 0766e1310b Merge branch 'lunacy' into 'master'
Don't touch base stats when turning into a werewolf

Closes #6333

See merge request OpenMW/openmw!1511
3 years ago
Evil Eye 6f870a464b Replace magic numbers with enums 3 years ago
Evil Eye debdcf2953 Don't touch base stats when turning into a werewolf 3 years ago
Evil Eye c1f59b1221 Automatically drop workaround when the format is next updated 3 years ago
elsid 5a6b39f8e0
Store mesh source data in recast mesh 3 years ago
psi29a 53e14eb238 Merge branch 'reset' into 'master'
AI reset argument

Closes #6177 and #1465

See merge request OpenMW/openmw!1405
3 years ago
Evil Eye 3c57ffd81f Save repeat and duration 3 years ago
Evil Eye 231da19aa4 Load repeat flag and use reset argument 3 years ago
Petr Mikheev ded8997362 Avoid problems if `builtin.omwscripts` is above `Morrowind.esm` in content list. 3 years ago
Bo Svensson a62b22cd31
isolates groundcover content files (#3208)
Specifications developed in PR #3206 require that groundcover content files must not be allowed to corrupt normal content files. With this PR we simply isolate our existing loading logic by instantiating a separate `ESMStore` for `Groundcover`. In addition, we remove some outdated workarounds.
3 years ago
Evil Eye 5f406158b5 Zero initialize context index 3 years ago
Alexei Dobrohotov 7a0c13fcf8 Make better use of std::clamp 3 years ago
Bo Svensson 6cf74f7041
refactors ESM::Land (#3213)
With this PR we reduce coupling, simplify code, encapsulate a variable and separate actual `ESM` data from its context.
3 years ago
Bo Svensson 4657c655b1 refactors parentFileIndices (#3211)
This PR aims to start addressing `ESM` design issues that have silenced errors we incorporated into groundcover `ESM` loading approaches.

- We move the resolution of `parentFileIndices` from `ESMStore` to `ESMReader` as suggested in a `TODO` comment.
- We improve a highly misleading comment which downplayed the significance of `parentFileIndices`.
- We document important preconditions.
- We move a user facing error message to the highest level and improve its context.
- We remove an inappropriate `setGlobalReaderList` method. We now pass this reader list into the method that requires it.
- We remove a thoroughly pointless optimisation of `Store<ESM::LandTexture>`'s construction that has unnecessarily depended on `getGlobalReaderList`.

There should be no functional changes for `master`, but this PR should remove an issue blocking PR #3208.
3 years ago
psi29a 4c81518abb Merge branch 'puddle' into 'master'
Give each reflect and spell absorption effect a chance to apply

Closes #6255 and #6253

See merge request OpenMW/openmw!1279
3 years ago
Petr Mikheev 47c89567fb Load LuaScriptsCfg from both *.omwscripts and *.omwaddon files. 3 years ago
Petr Mikheev 6aab246879 Add ESM records that are needed to store Lua scripts configuration;
Use ptr.getType() (i.e. esm record names) instead of typeid(ptr.getClass()) in apps/openmw/mwlua.
3 years ago
Evil Eye 4ec927829f Give each reflect and spell absorption effect a chance to apply 3 years ago
Andrei Kortunov 0f3c0cb0a0 Fix argument types mismatch 3 years ago
elsid 18d3102148
Do not use union to access FIXED_STRING<4> as int
https://en.cppreference.com/w/cpp/language/union:
> It's undefined behavior to read from the member of the union that wasn't most recently written.
3 years ago
Petr Mikheev a8acc19988 Avoid copying std::string in MWWorld::Ptr::getTypeDescription() 3 years ago
Evil Eye dc1fe62dde Overhaul magic effects to work with onApply and onEnd events 3 years ago
cc9cii 7227a83e60 Preserve "blocked" record flags when saving with OpenCS. This will help outputs of OpenCS to be used with vanilla Morrowind.
Sample use case: users are using the Morrowind Code Patch feature that allows modders to enable this flag to differentiate editor-made potions from player crafted potions for tooltips.
3 years ago
Bret Curtis c99bddc8dc Revert "Move reference to the right cell according to its geographical position"
This reverts commit d0677c3f07.
3 years ago
psi29a 9b7e14ec00 Merge branch 'OpenCS-moved-reference' into 'master'
OpenCS - Fix moved reference - Issues #3514 and #4752

See merge request OpenMW/openmw!1051

(cherry picked from commit 2bee171c7990522da33c2667f7d079fa35f4ede0)

36c30f7f Fix for Issue #3514 where moving a reference to another cell is not handled properly.
40327681 Update the changelog.
3 years ago
Cédric Mocquillon d0677c3f07 Move reference to the right cell according to its geographical position 3 years ago
Evil Eye 5f84494046 Fail on invalid water levels 4 years ago
jvoisin 7b32458aec Improve a bit two esmreader logging call 4 years ago
elsid aec4e02417
Ignore only CellRefs with preceding MVRF subrecord
MVRF subrecord means that only single following FRMR subrecord is moved not the
rest of subrecords.
4 years ago
elsid cfdbd0d471
Indicate moved cell refs explicitly
This is less error prone approach than use of MovedCellRef fields.

Also make separate functions for skipping and reading moved cell refs to avoid
passing special flags  logic and null pointers for unused arguments.
4 years ago
jvoisin 5aaac8e47e Reduce a bit the size of getHT
Factoring common code parts outside of a template
is apparently a good practise to reduce code duplication
(and the size of openmw by around 0.5%),
and should improve a bit the performances,
since the whole `std::to_string` * 2 + string concatenation
dance results in quite a lot of code, preventing inlining on my machine.
4 years ago