Commit Graph

183 Commits (db84d9e6490ccf01d6a32106255c91611490397f)

Author SHA1 Message Date
elsid 39da3bfef8
Ignore player when checking whether AiTravel destination is occupied by other actor 3 years ago
elsid 2d5ccc804b
Exchange binary messages between navmeshtool and launcher 3 years ago
ζeh Matt d7de17a1ac
Add a comment explaining the pick of the prng 3 years ago
ζeh Matt 5df76f5051
Remove unnecessary debug output 3 years ago
ζeh Matt f8f3bb2421
Use std::minstd_rand and split serialization from save/load 3 years ago
ζeh Matt 151770ccf1
Separate global vs world rng functions and use custom prng 3 years ago
ζeh Matt 08fae7be6e
Pass the prng from world where appropriate 3 years ago
ζeh Matt d83a381f79
Refactor and rename some things around Misc::Rng 3 years ago
Bret Curtis 6601274992 constify weakcache overloaded operators 3 years ago
elsid 42d6032c8b
Support compilation with c++20 3 years ago
elsid 1b2954f2db
Remove unused z coordinate 3 years ago
elsid b0f192d878
Fix warning: maybe-uninitialized
../../components/misc/color.cpp: In static member function 'static Misc::Color Misc::Color::fromHex(std::string_view)':
../../components/misc/color.cpp:36:24: error: 'v' may be used uninitialized in this function [-Werror=maybe-uninitialized]
   36 |             rgb[i] = v / 255.0f;
      |                      ~~^~~~~~~~
3 years ago
psi29a 7bab714825 Merge branch 'fix_circling_fargoth' into 'master'
Remove unnecessary loops from path (#6510)

Closes #6510

See merge request OpenMW/openmw!1584
3 years ago
elsid 7ec7c57879
Remove unnecessary loops from path
This prevents actors going back when a new shortest path includes a point
behind them where they were right before. Such situation can happen when path
includes off mesh connection. Resulting cost of such path can be lower than
the real one because off mesh connections are straight lines and walking
surface usually is not a plane but a surface.

Skip to path point where distance from current position to the line between
previous and this point is less than point tolerance. Which means actor is
standing very close to the edge between those points. Additionally check by
navmesh raycasting to make sure there is actually a valid path.
3 years ago
Bret Curtis 74e7cfc023 remove unused includes: part1
remove unused imports: part2

revert one tidy we will keep for c++20
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
elsid a2002bc983
Support frequency of ProgressReporter calls lower than interval 3 years ago
uramer d1d8f058ac Lua bindings for Colours 3 years ago
elsid aaf6c82e33
Do not write shapes to navmeshdb when writing is disabled 3 years ago
elsid 5a6b39f8e0
Store mesh source data in recast mesh 3 years ago
psi29a adc3bab51e Merge branch 'Embedded-error-marker' into 'master'
Embed marker error

See merge request OpenMW/openmw!1383
3 years ago
Cédric Mocquillon 40656b3135 Embed error marker in osgt format inside a string defined in misc/errorMarker.hpp.
Use the embed error marker we fail to load a mesh.
3 years ago
Evil Eye 6daefe3ddc Cast to the unsigned char expected by cctype functions 3 years ago
Evil Eye f23bd51175 Don't check bounds when the type is unambiguously a char 3 years ago
Evil Eye c6470f33d3 Use string_view 3 years ago
Evil Eye 751e8cf76b Do a bounds check before calling functions defined in cctype 3 years ago
Evil Eye 8f48a1f030 Handle non-ASCII characters while saving without triggering an assertion 3 years ago
elsid 08a25c2b1f
Support seed type different from std::size_t for hashCombine 3 years ago
psi29a 41bd20e358 Merge branch 'bullet_shape_hash' into 'master'
Store BulletShape source file name and content hash

See merge request OpenMW/openmw!1379
3 years ago
elsid d7041613ef
Store BulletShape source file name and content hash 3 years ago
Cédric Mocquillon 512d64e514 Extract correctSoundPath method to avoid code duplication. Add unit test for the new method 3 years ago
elsid 3f80725ebe
Remove duplicated implementation of Misc::Convert::toOsg 3 years ago
Bo Svensson 1960e976e2
refactors stringops.hpp (#3192)
With this PR we refactor `StringUtils::replaceAll` to accept `string_view` as suggested in a code comment. In addition, while we are touching this rebuild happy file, we slim it down a bit by moving a few sparingly used functions elsewhere.
3 years ago
Bo Svensson 0371072631
removes lowerCaseInPlace (#3217)
This PR removes unneeded `lowerCaseInPlace` calls in in a hot path of `objectpaging.cpp` that are no longer necessary after PR #3197. In addition, I have been informed that these changes should by coincidence address a compiler specific compilation error we currently experience.
3 years ago
Petr Mikheev 33d71be81f Add LuaUtil::ScriptsConfiguration 3 years ago
Bo Svensson 7f9beac3a7
refactors a case insensitive map (#3184)
This PR aims to spark the retirement of a questionable pattern I have found all over our code base. I will illustrate how this pattern encourages code duplication, lacks type safety, requires documentation and can be prone to bugs.
```
std::map<std::string, Object> mMap; // Stored in all lowercase for a case-insensitive lookup

std::string lowerKey = Misc::StringUtils::lowerCase(key);
mMap.emplace(lowerKey, object);

std::string lowerKey = Misc::StringUtils::lowerCase(key);
mMap.find(lowerKey);

mMap.find(key); // Not found. Oops!
```
An alternative approach produces no such issues.
```
std::unordered_map<std::string, Object, Misc::StringUtils::CiHash, Misc::StringUtils::CiEqual> mMap;

mMap.emplace(key, object);

mMap.find(key);
```
Of course, such an alternative will work for a `map` as well, but an `unordered_map` is generally preferable over a `map` with these changes because we have moved `lowerCase` into the comparison operator. 

In this PR I have refactored `Animation::mNodeMap` accordingly. I have reviewed and adapted all direct and indirect usage of `Animation::mNodeMap` to ensure we do not change behaviour with this PR.
3 years ago
elsid e5413c0664
Add functions to compress/decompress vector of bytes 3 years ago
elsid bb26ba30b6
Add progress reporter type
To log/report progress of long duration operations using given time period.
3 years ago
psi29a 207a7245bc Merge branch 'navigator_settings' into 'master'
Initialize navigator max climb and max slope settings in makeSettingsFromSettingsManager

See merge request OpenMW/openmw!1283
3 years ago
elsid 405e814190
Move btCollisionObject creation for MWPhysics::Object into components 3 years ago
elsid 6986feb81b
Initialize navigator max climb and max slope settings in makeSettingsFromSettingsManager
To avoid having multiple places to initialize them when they will be required
by multiple binaries.
3 years ago
fredzio 21dbe314bf Use common function for sync and async case. Now both cases follow the
same flow, synchronous simulation is just a special case.
3 years ago
Cédric Mocquillon 6817282097 Move getFileExtension to common header and use instead of repeating same code 3 years ago
elsid 6b7434ca69
Pass std::string_view instead of const std::string&
* Starting with Actor::getBodyPartMesh and ending with
  Misc::StringUtils::ciEqual.
* Add tests for Misc::StringUtils::ciEqual.
3 years ago
elsid 3caf45807f
Use common implementation to filter hidden markers 3 years ago
jvoisin 9db7d0278a Sprinkle some const ref 4 years ago
Evil Eye 2be27da791 Merge branch 'const_refs' into 'master'
Add a ton of const refs

See merge request OpenMW/openmw!954
4 years ago
Evil Eye 9f7980ecd7 Merge branch 'refenreces' into 'master'
Sprinkle some references where it makes sense

See merge request OpenMW/openmw!952
4 years ago
jvoisin cf11870b1c Sprinkle some references where it makes sense 4 years ago
jvoisin 5840279f16 Use `default` instead of empty constructors/destructors
See https://pvs-studio.com/en/docs/warnings/v832/ for details
4 years ago