1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-15 16:49:55 +00:00
Commit graph

5824 commits

Author SHA1 Message Date
jvoisin
e51669c05d Don't assign a variable passed by value 2021-05-21 18:15:31 +02:00
David Cernat
7a6dfc61ec Add OpenMW commits up to 21 May 2021
# Conflicts:
#   CMakeLists.txt
#   apps/openmw/mwscript/interpretercontext.cpp
#   components/CMakeLists.txt
2021-05-21 16:00:09 +02:00
CedricMocquillon
86d137363e Check if the archive is opened before adding a file to it and clear state on close 2021-05-20 21:28:52 +02:00
CedricMocquillon
b61249841e Update lookup only after sorting files 2021-05-19 18:38:42 +02:00
psi29a
c4fde03542 Merge branch 'ObjectPagingMergeIssue' into 'master'
Share state

See merge request OpenMW/openmw!879
2021-05-19 05:08:12 +00:00
Alexei Dobrohotov
fea5c0ac1a Merge branch 'armour_error_fix' into 'master'
Fixed data subrecord name for Armour record used in error

See merge request OpenMW/openmw!882
2021-05-18 22:02:30 +00:00
CedricMocquillon
d11a6bd92c Share state 2021-05-18 17:57:47 +02:00
Bret Curtis
523edd0723
Merge pull request #3093 from akortunov/light_crash
Fix crashes on exit in LightManager
2021-05-18 10:47:36 +02:00
psi29a
e73c0f92b8 Merge branch 'fix_present_tile_crash' into 'master'
Add missing synchronization for present tiles modification

See merge request OpenMW/openmw!878
2021-05-18 08:13:25 +00:00
psi29a
4bc7012104 Merge branch 'pack-default-settings' into 'master'
Pack default settings

Closes #5925

See merge request OpenMW/openmw!822
2021-05-18 08:11:13 +00:00
AnyOldName3
4cedb3549b Decode base64-packed settings files 2021-05-17 23:39:56 +01:00
Benjamin Winger
21f04f0d0f
Fixed data subrecord name for Armour record used in error 2021-05-17 18:36:59 -04:00
AnyOldName3
081650a2e5 Integrate Base64 library with build 2021-05-17 23:00:23 +01:00
elsid
a73ffc25c3
Add missing synchronization for present tiles modification
insert/erase can be done from multiple threads simultaneously. mMutex is
already used to synchronize reads so use it for writes too.
2021-05-17 17:44:31 +02:00
psi29a
f1f1703441 Merge branch 'fix_navmesh_wait' into 'master'
Fix redundant waiting until navmesh is generated

See merge request OpenMW/openmw!861
2021-05-17 10:54:23 +00:00
Andrei Kortunov
11c57978b6 Fix crashes on exit in the LightManager (bug #6044) 2021-05-17 13:01:15 +04:00
Andrei Kortunov
c54ef55ebb Revert "Replace raw pointer by observer_ptr to avoid dangling pointer dereferencing"
This reverts commit 5373cf1cd5.
2021-05-17 12:40:55 +04:00
elsid
d520b440aa
Copy LightBuffer data into a new object when changing layout
Before this change LightBuffer copy constructor copied only mData pointer into
a new object. Then memcpy was applied to an overlapping source and destination
that is UB.

Replace configureLayout function by a special constructor. That copies all
mData values and a pointer to a buffer object into a newly allocated object.
2021-05-16 22:37:31 +02:00
Bret Curtis
fef9e91510
Merge pull request #3090 from akortunov/warnfix
Fix warning in assert - size_t can not be negative
2021-05-16 20:25:46 +02:00
Andrei Kortunov
e38063dcdb Discard button press events during save loading (bug #5619) 2021-05-16 16:04:28 +04:00
elsid
1e2aae8095
Use stable sort+unique to collect RefIDs for ESMStore records counting
The idea is to avoid std::map lookup for each CellRef. Instead generate a
sequence of added and removed RefNums into a vector then order them by RefNum
using a stable sort that preserves relative order of elements with the same
RefNum. RefIDs are stored in a different vector to avoid std::string move ctor
calls when swapping elements while sorting. Reversed iteration over added and
removed RefNums for each unique RefNum is an equivalent to what map-based
algorithm produces. The main benefit from sorting a vector is a data locality
that means less cache misses for each access. Reduces ESMStore::countRecords
perf cycles by 25%.
2021-05-15 18:45:22 +02:00
Andrei Kortunov
b717103fe0 Fix warning in assert - size_t can not be negative 2021-05-15 19:56:14 +04:00
elsid
5373cf1cd5
Replace raw pointer by observer_ptr to avoid dangling pointer dereferencing
When game exit is requests when initial loading screen is active LightManager
can be destructed in the main thread before LightManagerStateAttribute::apply
is completed by different thread. Given that it uses raw pointer at some point
it becomes dangling because object is destructed this leads to UB and eventual
SIGSEGV.
2021-05-15 15:23:28 +02:00
elsid
eeba92d48b Merge branch 'includes_detournavigator' into 'master'
Remove some superfluous includes in components/detournavigator

See merge request OpenMW/openmw!860
2021-05-14 21:09:22 +00:00
elsid
59f89d22f8
Apply min distance only for not present tiles
To avoid waiting when navmesh update is triggered by transformed object for
already present tiles.
2021-05-14 22:41:11 +02:00
elsid
d0ea9c482a
Reorder async navmesh updater jobs when player tile changes
When player tile changes distance to player that is part of jobs priority is
invalidated. So jobs are no longer in the right order. This can lead to
processing of farests tiles first.

Sort queue each time player tile is changed.
2021-05-14 22:41:05 +02:00
Bret Curtis
66a527c3de
Merge pull request #3075 from akortunov/warnfix
Fix MSVC's C4244 and C4267 warnings
2021-05-14 21:28:56 +02:00
jvoisin
28d5e5e8be Remove some superfluous includes in components/detournavigator 2021-05-14 20:45:59 +02:00
glassmancody.info
4bbbbb00f6 use particle data for particle system quota 2021-05-14 10:52:19 -07:00
psi29a
d843ec321e Merge branch 'DoNotSearchTwice' into 'master'
Search only in the niffilemanager for nif files

See merge request OpenMW/openmw!823
2021-05-13 17:11:57 +00:00
psi29a
fd89582e0c Merge branch 'navmesh_wait' into 'master'
Wait until navmesh is generated within given distance around player (#5500)

Closes #5500

See merge request OpenMW/openmw!819
2021-05-13 16:56:39 +00:00
Petr Mikheev
4a7147e222 Merge branch 'constexpr_esm' into 'master'
Use a constexpr for esm cc

See merge request OpenMW/openmw!849
2021-05-13 13:30:01 +00:00
jvoisin
bcd8190516 Fix a crash in aipackage.cpp 2021-05-13 14:19:12 +02:00
jvoisin
89f721fad3 Use a constexpr for esm cc 2021-05-12 22:35:00 +02:00
Andrei Kortunov
963e1b8b3f Fix MSVC's C4244 warnings 2021-05-12 10:34:40 +04:00
Andrei Kortunov
f9d42ed396 Fix MSVC's C4267 warnings 2021-05-12 10:34:39 +04:00
Andrei Kortunov
54c8375672 Recreate a special case for IntersectionVisitor on QuadTreeWorld 2021-05-11 16:34:02 +04:00
Bret Curtis
340801e08b
Merge pull request #3084 from akortunov/master
Return check for distance when we try to reuse data
2021-05-11 11:30:23 +02:00
psi29a
f7b8c817f8 Merge branch 'performance-faster-string-find' into 'master'
Fixing performance-faster-string-find issues

See merge request OpenMW/openmw!842
2021-05-11 08:42:01 +00:00
Andrei Kortunov
3e281f625d Return check for distance when we try to reuse data (bug #6026) 2021-05-11 09:36:46 +04:00
Thunderforge
339d347aea Fixing performance-faster-string-find issues
This addresses the Clang Tidy check [performance-faster-string-find](https://clang.llvm.org/extra/clang-tidy/checks/performance-faster-string-find.html).
2021-05-10 22:44:07 -05:00
Bret Curtis
f84e9f5fb9
Merge pull request #3082 from akortunov/warnfix2
Add new scene nodes to scene graph serializer blacklist
2021-05-10 09:21:42 +02:00
AnyOldName3
09f39b29f0 Load defaults.bin instead of settings-default.cfg. Do not decode yet. 2021-05-09 21:14:06 +01:00
AnyOldName3
92325976e9 Update documentation to refer to defaults.bin 2021-05-09 21:13:34 +01:00
Petr Mikheev
e65b285f06 Merge branch 'use_min' into 'master'
Use existing min implementation

See merge request OpenMW/openmw!828
2021-05-09 13:05:39 +00:00
elsid
b806445a36
Use existing min implementation 2021-05-09 13:58:05 +02:00
Frederic Chardon
caf382c19f Merge branch 'barrier' into 'master'
Do not store callback inside Misc::Barrier

See merge request OpenMW/openmw!821
2021-05-07 22:21:44 +00:00
Andrei Kortunov
2e8873af51 Add new scene nodes to scene graph serializer blacklist 2021-05-07 19:27:23 +04:00
psi29a
08e1a8e0fb Merge branch 'esm_opti' into 'master'
Teensy optimisation for esmtool

See merge request OpenMW/openmw!826
2021-05-07 14:21:37 +00:00
jvoisin
8a56ba6aaa Fix compilation 2021-05-07 13:58:30 +02:00
elsid
fbeccc2908 Apply 1 suggestion(s) to 1 file(s) 2021-05-07 09:28:47 +00:00
Bret Curtis
e720a56030
Merge pull request #3080 from akortunov/fix_ci
Add missing include for std::inserter
2021-05-07 11:18:33 +02:00
Andrei Kortunov
8d4a374516 Add missing include for std::inserter 2021-05-07 11:30:10 +04:00
psi29a
6263ade01a Merge branch 'esmcleanup' into 'master'
Minor ESM code cleanup

See merge request OpenMW/openmw!825
2021-05-07 06:47:45 +00:00
David Cernat
ea6d5c68ae Add OpenMW commits up to 6 May 2021
# Conflicts:
#   CMakeLists.txt
#   components/CMakeLists.txt
2021-05-06 23:32:48 +02:00
jvoisin
e97e4d07dd Teensy optimisation for esmtool
- Use an unordered_set instead of a list to
  keep track of skipped records.
- Reduce the number of conditions when parsing 4-letters
  records by using a switch-case instead of cascading conditions.
- Add a const
2021-05-06 22:41:20 +02:00
CedricMocquillon
a885134868 Do not search if it is not used 2021-05-06 13:28:06 +02:00
elsid
626e032931
Do not store callback inside Misc::Barrier
The only wait method can be provided with it so pass it as a template
parameter there.
2021-05-05 23:42:47 +02:00
CedricMocquillon
813b8ee0d1 Search only in the niffilemanager for nif files 2021-05-05 23:19:08 +02:00
CedricMocquillon
e378159ea8 Use O(log(n)) search instead of O(n) 2021-05-05 23:10:24 +02:00
Dobrohotov Alexei
57c372a50e ESM code cleanup 2021-05-05 22:23:06 +03:00
elsid
7a51d0db18
Wait until navmesh is generated within given distance around player
Add a setting to change this distance.

To prevent situations when there is not enough navmesh generated and actors
can't find path correctly.
2021-05-05 19:44:16 +02:00
elsid
f169f8e6f0
Wait until navmesh is generated for interior cells
Add special loading progress bar.

It should be fast enough to not keep loading screen for noticably long but
will provide better pathfinding for actors inside interior cells.
2021-05-05 19:27:49 +02:00
psi29a
110001d47f Merge branch 'nullroots' into 'master'
Improve null root handling

Closes #5963

See merge request OpenMW/openmw!818
2021-05-05 07:24:43 +00:00
Dobrohotov Alexei
19f0b80983 Improve null root handling 2021-05-05 02:41:30 +03:00
psi29a
6513c38875 Merge branch 'clean_navigator' into 'master'
Remove redundant and useless code from navigator

See merge request OpenMW/openmw!815
2021-05-04 21:57:16 +00:00
psi29a
e94181b2b2 Merge branch 'constexpr' into 'master'
Sprinkle a couple of constexpr found by VS

See merge request OpenMW/openmw!800

(cherry picked from commit 5e8ea624bc85acebf457592dd10b790124ecf6ef)

5704b2ac Sprinkle a couple of constexpr found by VS
2021-05-04 21:09:20 +00:00
psi29a
e6b097085b Merge branch 'const_ref' into 'master'
Sprinkle some const-ref to avoid unnecessary copies

See merge request OpenMW/openmw!803
2021-05-04 21:02:14 +00:00
elsid
87ada56edd Various fixes for niftest 2021-05-04 20:58:01 +00:00
elsid
865ef56a09
Replace include by RecastMesh forward declaration
To reduce dependency between navigator interface and implementation.
2021-05-04 13:00:06 +02:00
elsid
ec87b3f8f7
Remove redundant ChunkyTriMesh
This AABB tree required when need to filter out input mesh that has not
influence navmesh tile output. This filtering is already done before. Each
recast mesh corresponds to a single navmesh tile and has appropriate bounds.
2021-05-04 13:00:06 +02:00
elsid
bce06df254
Add missing array header 2021-05-04 13:00:06 +02:00
elsid
22aebcea74
Remove useless rcMarkWalkableTriangles call
It fills areas.data with walkable triangles but right after it's overwritten
and rcClearUnwalkableTriangles is called instead that fills areas.data with
unwalkable triangles.
2021-05-04 02:23:07 +02:00
Gleb Mazovetskiy
e3a6cb1695 Remove OsIdentity.cmake
Removes the OsIdentity.cmake file and uses a cross-compilation friendly
and OS-independent method of detecting system double-precision bullet
instead.
2021-05-03 00:08:47 +01:00
psi29a
7f7041656d Merge branch 'enforce_double_bullet' into 'master'
Remove support for single-precision Bullet, fail during configuration instead of during linking (#5980)

See merge request OpenMW/openmw!806
2021-05-02 20:52:57 +00:00
David Cernat
a3f304107b Add OpenMW commits up to 2 May 2021
# Conflicts:
#   components/CMakeLists.txt
2021-05-02 20:55:49 +02:00
fredzio
6fd04cb8f6 Remove support for single-precision Bullet, fail during configuration instead of during linking. 2021-05-02 17:48:50 +02:00
jvoisin
d4d111a709 Don't use std::move on const 2021-05-02 15:50:44 +02:00
jvoisin
d45184a730 Sprinkle some const-ref to avoid unnecessary copies 2021-05-02 14:43:46 +02:00
jvoisin
813969a46e Fix an off-by-one in windows_crashcatcher.cpp 2021-05-02 11:21:54 +00:00
Chris Djali
f0cef87cd8
Merge pull request #3069 from akortunov/msvc_warnings
Rework warnings settings
2021-05-01 19:03:43 +01:00
psi29a
0e50349192 Merge branch 'uvcontroller' into 'master'
Fix NiUVController UV offset calculations (bug #5995)

Closes #5995

See merge request OpenMW/openmw!795
2021-04-30 21:27:01 +00:00
Dobrohotov Alexei
971ba81ed2 Use higher level transformations in UVController 2021-04-30 18:28:03 +03:00
Alexei Dobrohotov
e9ff90f3de Merge branch 'pgrd_overflow' into 'master'
Fix a heap overflow in loadpgrd.cpp

See merge request OpenMW/openmw!784
2021-04-30 12:04:41 +00:00
jvoisin
5f65583a3a Fix a heap overflow in loadpgrd.cpp 2021-04-30 12:04:41 +00:00
Dobrohotov Alexei
24f4bf9c28 Fix NiUVController UV offset calculations (bug #5995) 2021-04-30 14:38:16 +03:00
Andrei Kortunov
18a4c81b5c Merge branch 'fix_toggleborders' into 'master'
Fix ToggleBorders debug view with 'Shaders' lighting method

See merge request OpenMW/openmw!792
2021-04-30 08:35:58 +00:00
AnyOldName3
ceb6a280ff Fix typo
Hopefully this will actually let us make better use of shadow bounds,
but I wouldn't count on it.
2021-04-29 21:35:31 +00:00
glassmancody.info
9f314d1d6f Fix ToggleBorders 2021-04-29 12:11:49 -07:00
Roman Siromakha
68ddde84fe
Merge pull request #3074 from akortunov/warnfix
Declare separate constructors with const reference and rvalue arguments for OscillatingRecastMeshObject
2021-04-28 17:15:29 +02:00
psi29a
16bb3919d1 Merge branch 'navmesh_cache_simplification' into 'master'
Simplify navmesh cache

See merge request OpenMW/openmw!691
2021-04-28 08:01:06 +00:00
Andrei Kortunov
0bc0cfce5f Declare separate constructors with const reference and rvalue arguments for OscillatingRecastMeshObject 2021-04-28 11:49:57 +04:00
Evil Eye
abb120b439 Don't log a warning for reading to the end of the subrecord 2021-04-27 14:57:07 +02:00
Alexei Dobrohotov
add04a4ea0 Merge branch 'fix_esm' into 'master'
Fix a read head-buffer-overflow in esm

See merge request OpenMW/openmw!751
2021-04-25 21:56:52 +00:00
Andrei Kortunov
6d351b2bdd Fix MSVC 4706 warnings 2021-04-23 22:53:59 +04:00
Andrei Kortunov
2d869ca9ff Fix node masks signed/unsigned mismatch 2021-04-20 10:52:51 +04:00
Bret Curtis
50d6cd2a34
Merge pull request #3070 from akortunov/coverity
Fix an another portion of Coverity warnings
2021-04-20 07:33:03 +02:00
Bret Curtis
c6c92b5712
Merge pull request #3071 from akortunov/master
Fix an another batch of MSVC complaints
2021-04-20 07:31:56 +02:00
David Cernat
bf0a42fdad [General] Implement ActorSpellsActive packet, part 1
The packet can now set the active spells of DedicatedActors.
2021-04-20 03:25:14 +02:00
AnyOldName3
ff46eceabe Merge branch 'maybe-reintroduce-5904' into 'master'
Fix crash on startup

See merge request OpenMW/openmw!709
2021-04-19 19:31:21 +00:00