jvoisin
5793f5cf18
Sprinkle a couple of std::move and a const
2021-08-16 13:11:22 +02:00
jvoisin
7a015d24c6
Sprinkle some const-ref
2021-08-15 19:50:28 +02:00
jvoisin
b01ef2629c
Fix two Wreorder clang warnings
2021-08-13 13:59:57 +02:00
psi29a
508682cda7
Merge branch 'serialize' into 'master'
...
Serialize NifOsg::MatrixTransform children properly
See merge request OpenMW/openmw!1127
2021-08-13 08:18:03 +00:00
Alexei Dobrohotov
839cf36bdd
Merge branch 'hidden_markers' into 'master'
...
Use common implementation to filter hidden markers
See merge request OpenMW/openmw!1132
2021-08-12 22:29:20 +00:00
elsid
46fa3ce083
Fix flags length for rcPolyMesh
...
recastnavigation documentation of rcPolyMesh is misleading. It says flags field
length is maxpolys when actually it's allocated as npolys.
2021-08-12 22:43:06 +02:00
elsid
54a676f2e3
Add functions to get length of recast type arrays
...
To avoid duplicating same formulas in multiple places.
2021-08-12 22:43:01 +02:00
elsid
05258ed644
Remove redundant TileCachedRecastMeshManager::hasTile function
...
It's used only for tests. getMesh is a valid replacement.
2021-08-12 22:40:06 +02:00
elsid
8ac8d56e8c
Mark TileCachedRecastMeshManager member functions as const where possible
2021-08-12 22:39:25 +02:00
elsid
3caf45807f
Use common implementation to filter hidden markers
2021-08-12 22:35:16 +02:00
elsid
09b1a2e3c6
Make unchanging Job fields const
2021-08-12 22:25:25 +02:00
elsid
21ce4fe637
Use structured binding
2021-08-12 22:25:25 +02:00
elsid
8bca9eec80
Use single set to store pushed tiles
2021-08-12 22:25:24 +02:00
elsid
a97b2ced27
Use single map to store last updates
2021-08-12 22:25:24 +02:00
elsid
bfcc430822
Use single map to store processing tiles
2021-08-12 22:25:24 +02:00
elsid
902b0f9f84
Store jobs in the same container until they are processed
...
Push to queue and reorder only iterators.
2021-08-12 22:24:02 +02:00
elsid
8db640289c
Use single set to store pushed jobs for tiles
2021-08-12 22:05:44 +02:00
elsid
a99266a60e
Do not measure total navmesh generation duration
...
This is not a useful thing anymore.
2021-08-12 21:44:10 +02:00
elsid
9460a8760e
Move operator<< for UpdateNavMeshStatus to header
2021-08-12 20:23:57 +02:00
Alexei Dobrohotov
b49f51cbfc
Serialize NifOsg::MatrixTransform children properly
2021-08-12 18:33:06 +03:00
psi29a
ee1ec53cd9
Merge branch 'fix_op_bzzt_whoopsie_2' into 'master'
...
Fixing another bzzt whoopsie
See merge request OpenMW/openmw!1118
2021-08-10 15:51:12 +00:00
Bret Curtis
436c640da2
the old switch-a-roo because we shoudl only StopTraversal when the node size is larger than 1 and not the other way around
2021-08-09 22:56:04 +02:00
Bret Curtis
c99bddc8dc
Revert "Move reference to the right cell according to its geographical position"
...
This reverts commit d0677c3f07
.
2021-08-09 22:11:00 +02:00
Alexei Dobrohotov
956edca524
Don't re-enable specularity w/ material controller for MW models
2021-08-09 21:17:13 +03:00
elsid
94e71d9b14
Avoid division by zero
2021-08-09 17:58:33 +02:00
elsid
0985d8e03d
Handle failed NavMesh allocation
2021-08-09 17:54:19 +02:00
elsid
a6260453ea
Add missing initialization
2021-08-09 17:54:19 +02:00
jvoisin
586d8684d0
Fix two coverity issues about uninitialised variables
2021-08-09 12:43:30 +02:00
psi29a
8ad3d3d792
Merge branch 'freezeandcool' into 'master'
...
Don't use FreezeOnCull for any particle system (#4744 )
Closes #4744
See merge request OpenMW/openmw!1103
2021-08-08 12:35:26 +00:00
psi29a
d939916369
Merge branch 'navmesh_save_cache_capacity' into 'master'
...
Do not cache navmesh when only object transformation is changed
See merge request OpenMW/openmw!1101
2021-08-08 12:31:58 +00:00
elsid
86e6d3dac8
Do not cache navmesh when only object transformation is changed
...
This saves cache capacity when a scene contains objects contantly transforming
by scripts and causing changes in navmesh. The probability to get cache hit for
such states is almost zero because even a constant change in a single float
value may give up to 2^32 different states.
2021-08-08 02:38:20 +02:00
Alexei Dobrohotov
1fc7cb8191
Don't use FreezeOnCull for any particle system ( #4744 )
2021-08-08 03:36:35 +03:00
elsid
3cbe93358a
Move dtNavMeshParams initialization to where it's required
2021-08-08 02:30:48 +02:00
elsid
fa1fb2a6b5
Reset mIsReleased before starting threads
...
To fix TSAN warning:
WARNING: ThreadSanitizer: data race (pid=68597)
Write of size 1 at 0x7b3800079234 by main thread:
#0 SceneUtil::WorkQueue::start(unsigned long) /home/elsid/dev/openmw/components/sceneutil/workqueue.cpp:51 (openmw+0x10daa10)
#1 SceneUtil::WorkQueue::WorkQueue(unsigned long) /home/elsid/dev/openmw/components/sceneutil/workqueue.cpp:39 (openmw+0x10dad97)
#2 OMW::Engine::prepareEngine(Settings::Manager&) /home/elsid/dev/openmw/apps/openmw/engine.cpp:700 (openmw+0xf7cb5a)
#3 OMW::Engine::go() /home/elsid/dev/openmw/apps/openmw/engine.cpp:949 (openmw+0xf82688)
#4 runApplication(int, char**) /home/elsid/dev/openmw/apps/openmw/main.cpp:316 (openmw+0xf62611)
#5 wrapApplication(int (*)(int, char**), int, char**, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/elsid/dev/openmw/components/debug/debugging.cpp:205 (openmw+0x125df1c)
#6 main /home/elsid/dev/openmw/apps/openmw/main.cpp:328 (openmw+0x596323)
Previous read of size 1 at 0x7b3800079234 by thread T10 (mutexes: write M19275778865205896):
#0 SceneUtil::WorkQueue::removeWorkItem() /home/elsid/dev/openmw/components/sceneutil/workqueue.cpp:86 (openmw+0x10d9e51)
#1 SceneUtil::WorkThread::run() /home/elsid/dev/openmw/components/sceneutil/workqueue.cpp:127 (openmw+0x10da52a)
#2 operator() /home/elsid/dev/openmw/components/sceneutil/workqueue.cpp:114 (openmw+0x10da664)
#3 __invoke_impl<void, SceneUtil::WorkThread::WorkThread(SceneUtil::WorkQueue&)::<lambda()> > /usr/include/c++/11.1.0/bits/invoke.h:61 (openmw+0x10da664)
#4 __invoke<SceneUtil::WorkThread::WorkThread(SceneUtil::WorkQueue&)::<lambda()> > /usr/include/c++/11.1.0/bits/invoke.h:96 (openmw+0x10da664)
#5 _M_invoke<0> /usr/include/c++/11.1.0/bits/std_thread.h:253 (openmw+0x10da664)
#6 operator() /usr/include/c++/11.1.0/bits/std_thread.h:260 (openmw+0x10da664)
#7 _M_run /usr/include/c++/11.1.0/bits/std_thread.h:211 (openmw+0x10da664)
#8 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:82 (libstdc++.so.6+0xd33c3)
Location is heap block of size 216 at 0x7b3800079220 allocated by main thread:
#0 operator new(unsigned long) /build/gcc/src/gcc/libsanitizer/tsan/tsan_new_delete.cpp:64 (libtsan.so.0+0x91824)
#1 OMW::Engine::prepareEngine(Settings::Manager&) /home/elsid/dev/openmw/apps/openmw/engine.cpp:700 (openmw+0xf7cb4c)
#2 OMW::Engine::go() /home/elsid/dev/openmw/apps/openmw/engine.cpp:949 (openmw+0xf82688)
#3 runApplication(int, char**) /home/elsid/dev/openmw/apps/openmw/main.cpp:316 (openmw+0xf62611)
#4 wrapApplication(int (*)(int, char**), int, char**, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/elsid/dev/openmw/components/debug/debugging.cpp:205 (openmw+0x125df1c)
#5 main /home/elsid/dev/openmw/apps/openmw/main.cpp:328 (openmw+0x596323)
Mutex M19275778865205896 is already destroyed.
Thread T10 (tid=68609, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors_posix.cpp:969 (libtsan.so.0+0x61c3a)
#1 std:🧵 :_M_start_thread(std::unique_ptr<std:🧵 :_State, std::default_delete<std:🧵 :_State> >, void (*)()) /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:663 (libstdc++.so.6+0xd36aa)
#2 std::_MakeUniq<SceneUtil::WorkThread>::__single_object std::make_unique<SceneUtil::WorkThread, SceneUtil::WorkQueue&>(SceneUtil::WorkQueue&) /usr/include/c++/11.1.0/bits/unique_ptr.h:962 (openmw+0x10da987)
#3 SceneUtil::WorkQueue::start(unsigned long) /home/elsid/dev/openmw/components/sceneutil/workqueue.cpp:50 (openmw+0x10da987)
#4 SceneUtil::WorkQueue::WorkQueue(unsigned long) /home/elsid/dev/openmw/components/sceneutil/workqueue.cpp:39 (openmw+0x10dad97)
#5 OMW::Engine::prepareEngine(Settings::Manager&) /home/elsid/dev/openmw/apps/openmw/engine.cpp:700 (openmw+0xf7cb5a)
#6 OMW::Engine::go() /home/elsid/dev/openmw/apps/openmw/engine.cpp:949 (openmw+0xf82688)
#7 runApplication(int, char**) /home/elsid/dev/openmw/apps/openmw/main.cpp:316 (openmw+0xf62611)
#8 wrapApplication(int (*)(int, char**), int, char**, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/elsid/dev/openmw/components/debug/debugging.cpp:205 (openmw+0x125df1c)
#9 main /home/elsid/dev/openmw/apps/openmw/main.cpp:328 (openmw+0x596323)
2021-08-08 02:28:59 +02:00
elsid
41b02ff1aa
Copy only required RecastMeshObject fields
2021-08-07 12:38:01 +02:00
elsid
c91ef34a70
Avoid using a specific type for stored ref_ptr to extend lifetime
2021-08-07 12:20:55 +02:00
glassmancody.info
cdf5b315c3
fix mac runner undefined macro
2021-08-05 16:52:40 -07:00
glassmancody.info
09e03fde2e
refactor and fix wobbly shores
2021-08-04 17:49:57 -07:00
glassmancody.info
cad0b151cb
enable shaders path and dehardcode depth formats
2021-08-04 17:39:11 -07:00
glassmancody.info
b457dfd8b8
fix water RTTs and minor math error in non-infinite projection matrix
2021-08-04 17:39:11 -07:00
glassmancody.info
70fac33940
initial reverse-z depth implementation
2021-08-04 17:39:11 -07:00
Petr Mikheev
a94072243b
Lua command core.quit
2021-08-04 19:14:24 +03:00
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.
2021-08-03 23:29:05 +00:00
psi29a
e10e9c0005
Merge branch 'navmesh_reduce_lock_wait' into 'master'
...
Reduce waiting duration on locks when updating navmesh object in the main thread (#6193 )
Closes #6193
See merge request OpenMW/openmw!1079
2021-08-03 23:05:39 +00:00
Petr Mikheev
3ce5e9e680
Improve error messages in components/lua/serialization.cpp
2021-08-03 16:42:26 +03:00
elsid
050b7d31aa
Create RecastMesh outside critical section
...
To not lock main thread when it tries to update objects.
2021-08-03 12:21:56 +02:00
elsid
c8987bda2f
Store reference to BulletShapeInstance for btCollisionShape
...
To keep btCollisionShape lifetime.
2021-08-03 12:21:56 +02:00
elsid
4574e5f565
Remove redundant Navigator API functions
2021-08-03 12:21:55 +02:00
glassmancody.info
1e52ca2b64
properly initialize light settings
2021-08-01 23:46:45 -07:00
AnyOldName3
4727ae4b3b
Make it possible to opt out of composing variables
2021-08-01 02:47:10 +01:00
fredzio
c76387162b
Add projectiles number to the resources stats
2021-07-31 23:08:50 +02:00
Cédric Mocquillon
d0677c3f07
Move reference to the right cell according to its geographical position
2021-07-30 18:28:29 +02:00
psi29a
8c36eb56cf
Merge branch 'stereo_friendly_water' into 'master'
...
Stereo friendly water and statesetupdater
See merge request OpenMW/openmw!563
2021-07-30 11:00:49 +00:00
Alexei Dobrohotov
11694ba87f
Correct dark map and detail map alpha handling
...
Comment texenv usage in NIF loader
2021-07-29 04:48:59 +03:00
Alexei Dobrohotov
66a1adc31e
Handle NiExtraData *properly*
2021-07-27 07:58:57 +03:00
madsbuvi
41c08b1c3b
Stereo friendly StateSetUpdater
...
(cherry picked from commit 496b3aef88b8fd867dcdd23a6ca43144573b1b2f)
Stereo friendly water
(cherry picked from commit 0e22c55e48a7f965367d3d430c1bef5357b22748)
Option to disable per view mapping.
Include memory header
De-hardcode settings and buffers.
formatting error
Update water.cpp (whitespace)
Update water.cpp (more whitespace)
include render order
c array -> c++ array
2021-07-26 14:01:02 +02:00
psi29a
44ceb9572a
Merge branch 'recast_mesh_heightfield' into 'master'
...
Reduce navmesh cache size by special handling for heightfields
See merge request OpenMW/openmw!1032
2021-07-26 11:49:30 +00:00
Alexei Dobrohotov
d5ab6e40ab
Handle NiExtraData
2021-07-26 04:46:03 +03:00
elsid
9a5ec5fd03
Store heightfields as array of heights instead of triangles
...
To reduce size of RecastMesh and therefore cache size.
2021-07-26 00:22:21 +02:00
elsid
fdee9db20c
Consider RecastMeshManager not empty when there is water
2021-07-26 00:22:21 +02:00
elsid
24b802b3d8
Simplify adding water to recast mesh
...
Remove redundant computations and conversions.
2021-07-26 00:22:21 +02:00
elsid
5d6c93566d
Rename DetourNavigator::Water -> Cell
2021-07-26 00:22:21 +02:00
elsid
753767d6d9
Store only water shift
...
Rotation is not used.
2021-07-26 00:22:20 +02:00
elsid
da4ec31cd8
Remove redundant RecastMeshManager::Water
2021-07-26 00:22:20 +02:00
elsid
a1549321d7
Move Water struct out of RecastMesh class
2021-07-26 00:22:20 +02:00
elsid
d60edb36aa
Make RecastMesh independent from recast scale factor
...
To avoid scaling until it's required by delaying coordinates conversion until
navmesh generation.
2021-07-26 00:22:20 +02:00
elsid
af7059373c
Make RecastMesh independent from the order of RecastMeshBuilder calls
...
To make sure RecastMesh objects are equal if built with the same data but in
different order. Will be used later when there will be more than one place
building RecasMesh objects.
2021-07-26 00:22:20 +02:00
elsid
07c70dfb73
Remove unused local variables
2021-07-26 00:22:20 +02:00
psi29a
6949dd89c2
Merge branch 'gui_shaders' into 'master'
...
Add shader path for mygui (#6162 )
See merge request OpenMW/openmw!1019
2021-07-25 21:37:39 +00:00
psi29a
56939b478e
Merge branch 'windowing-system-cleanup' into 'master'
...
sdlcursormanager: Clarify ANDROID check
See merge request OpenMW/openmw!556
2021-07-25 21:01:06 +00:00
glassmancody.info
e8c6f31e0c
add shader path for mygui ( #6162 )
2021-07-22 15:55:30 -07:00
Evil Eye
5f84494046
Fail on invalid water levels
2021-07-21 16:00:25 +00:00
jvoisin
7b32458aec
Improve a bit two esmreader logging call
2021-07-21 15:38:41 +02:00
elsid
d2b935684d
Add missing include
2021-07-21 11:37:50 +02:00
AnyOldName3
5ec2ddb4a0
Actually increment iterators to be erased.
2021-07-17 20:47:55 +01:00
psi29a
22068eed6b
Merge branch 'navmesh_cache_without_off_mesh' into 'master'
...
Do not use off mesh connections as a part of navmesh cache key
See merge request OpenMW/openmw!1016
2021-07-16 08:40:56 +00:00
elsid
beeb882ea8
Do not use off mesh connections as a part of navmesh cache key
...
To reduce cache size and make it more flexible.
Adding off mesh connections to the navmesh is the last step of navmesh
generation and it's very fast comparing to other steps (microseconds vs
milliseconds). Having less cache size makes get and set operations almost 2x
times faster that also have an order of microseconds. So in total there is
no performance impact.
2021-07-14 12:19:17 +02:00
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.
2021-07-12 18:56:45 +02:00
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.
2021-07-12 18:56:42 +02:00
psi29a
223216733d
Merge branch 'coverity_fix' into 'master'
...
Fix some coverity issues
See merge request OpenMW/openmw!1013
2021-07-12 14:06:44 +00:00
psi29a
1da644668f
Merge branch 'fix_work_queue' into 'master'
...
Fix hang on exit (#6145 )
Closes #6145
See merge request OpenMW/openmw!1004
2021-07-12 13:33:16 +00:00
Petr Mikheev
8ff8ec4abd
Fix coverity issues
2021-07-12 12:51:25 +02:00
elsid
d4a2dab9d9
Remove redundant else
2021-07-12 11:41:21 +02:00
elsid
eece47f70e
Avoid copying osg::ref_ptr when adding or removing item from work queue
...
Copy constructor does refcounting, and move constructor doesn't.
2021-07-12 11:41:21 +02:00
elsid
b8fcd6d3ba
Manage work item lifetime on the client side
...
Instead of explicit work queue stop before any possibly used engine manager
is destructed. Based on an assumption that any engine manager can be destructed
independently from the work queue destruction. This model is already used in
CellPreloader that conflicts with explicit work queue stop.
After the work queue is requested to be stopped, any client waiting for a not
started work item to be done will wait forever because the work item is dropped
from the queue. Therefore either clients should not wait for own work items to
be completed in destructor or the work queue should not drop items before
clients are destructed. Other approaches are possible but are not considered
due to increasing complexity.
CellPreloader already tries to wait for all created work items to be done so
keep it that way and extend the model to AsyncScreenCaptureOperation and Scene.
Additionally abort all scheduled work items when owner is destructed. This
prevents a long exit when multiple screenshots are scheduled right before
exiting the game.
2021-07-12 11:41:14 +02:00
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.
2021-07-11 21:43:40 +02:00
elsid
36ec877a8e
Add missing include from sol/sol.hpp
2021-07-10 01:01:50 +02:00
Petr Mikheev
702eb19271
Fixes and refactoring
2021-07-09 20:48:54 +02:00
Petr Mikheev
cc7dbabd19
Change argument of onKeyPress
2021-07-09 20:48:54 +02:00
Petr Mikheev
d5cda61855
Console command "reload lua"
2021-07-09 20:24:56 +02:00
Petr Mikheev
8c6d303730
Saving/loading for Lua scripts (saves format is changed)
2021-07-09 20:24:56 +02:00
Petr Mikheev
6db2450c90
Initial support of generated RefNums with negative mContentFile.
2021-07-09 20:03:27 +02:00
Petr Mikheev
b53667d555
Queries. Data structures and lua bindings.
2021-07-09 20:03:27 +02:00
Petr Mikheev
479856f812
Add components/lua/scriptscontainer and components/esm/luascripts
2021-07-09 20:03:27 +02:00
Petr Mikheev
8dbaf6022c
Add components/lua/serilalization
2021-07-09 20:03:27 +02:00
Petr Mikheev
4b068b27ca
Add components/lua/luastate and components/lua/utilpackage
2021-07-09 20:03:27 +02:00
elsid
5103120eef
Notify about saved screenshot
...
Show message about saved screenshot via schedule message box. Since screenshot
saving happens not in the main thread calling messageBox directly is unsafe.
WindowManager::scheduleMessageBox delays message box showing until next update
in the main thread.
2021-07-08 21:14:01 +02:00
elsid
f7a6be053d
Stop engine work queue before destructing environment
...
To avoid access to null and dangling pointers from active work items on
quitting.
2021-07-08 21:14:01 +02:00
elsid
f8e02000ec
Write screenshots to file asynchronously
2021-07-08 21:13:57 +02:00
elsid
33aa4d0822
Move WriteScreenshotToFileOperation to components
2021-07-08 20:27:19 +02:00
Evil Eye
eced6f2126
Implement the help command
2021-07-07 18:48:25 +02:00
psi29a
c372c239a6
Merge branch 'master' into 'OpenCS_Bug6017'
...
# Conflicts:
# CHANGELOG.md
2021-07-06 07:52:49 +00:00
cc9cii
a47ebf5c9e
For consistency with TES CS, force DELE record writes to be 4 bytes (currently writes 1 byte).
2021-07-06 14:57:58 +10:00
cc9cii
fea1ac2c0f
Remove dead code from commit 024ad3276b
.
2021-07-06 14:21:17 +10:00
cc9cii
f68c81e631
Merge branch 'master' into 'OpenCS_Bug6017'
2021-07-06 03:10:46 +00:00
cc9cii
4b3de46bfa
Use enums in place of magic numbers. Ensure Creature and NPC cell references are always saved as persistent.
2021-07-06 12:37:02 +10:00
Simon Meulenbeek
625744298b
change setValue to replace value instead of insert
2021-07-05 13:22:46 +00:00
psi29a
94be4eba18
Merge branch 'even-fixier-alpha' into 'master'
...
Correctly track added and removed state to fix various alpha testing issues
Closes #6119
See merge request OpenMW/openmw!989
2021-07-05 08:15:17 +00:00
psi29a
f2aeabed72
Merge branch 'navmesh_memory' into 'master'
...
Reduce memory usage by navmesh
See merge request OpenMW/openmw!994
2021-07-05 06:16:11 +00:00
AnyOldName3
84a9facedf
Disable coverage adjustment for blended objects
2021-07-04 23:29:22 +01:00
AnyOldName3
e42b3bf960
Adapt destination alpha factor for AMD
...
As discussed in the comment, it's unclear to me whether this is a driver
bug or mandatory behaviour only AMD implement.
Some more context is here:
https://gitlab.com/OpenMW/openmw/-/issues/6119#note_618245903
2021-07-04 23:00:33 +01:00
elsid
09f9075842
Use RecastMeshBuilder once to create RecastMesh
...
This allows to move all data out of the object instead of copying.
2021-07-04 22:18:05 +02:00
elsid
0193c95b26
Shrink to fit recast mesh data
2021-07-04 22:18:05 +02:00
elsid
91cece5cc4
Define ESM::Land static constants as constexpr
...
To avoid linking issues.
2021-07-04 22:17:44 +02:00
AnyOldName3
0e57622bbe
Correctly track added and removed state
2021-07-03 21:04:17 +01:00
elsid
94e460ba1e
Use proper check for distance
...
To avoid invalid results for r < 1.
2021-06-30 20:11:41 +02:00
elsid
a54c4bc2e9
Check dtNavMeshQuery::findStraightPath status
2021-06-30 20:10:57 +02:00
elsid
793c30ab8d
Check dtNavMeshQuery::getPolyHeight status
...
Otherwise when it fails a node with zero height will be added to a path.
2021-06-30 20:06:48 +02:00
elsid
7e1630a7ad
Remove redundant getPolyHeight wrapper
2021-06-30 20:04:16 +02:00
elsid
cc08a45c31
Move include where it is needed
2021-06-30 20:02:08 +02:00
elsid
a3942a1e0a
Remove redundant check for y coordinate in inRange function
2021-06-30 20:00:43 +02:00
cc9cii
f2a301653c
Remove redundant mPersistent member from ESM::NPC and ESM::Creature, replaced by mRecordFlags. Fixed the editing of the persistence flag value.
2021-06-30 08:20:29 +10:00
jvoisin
5c02e4dddc
Delete an outdated/irrelevant comment
2021-06-29 22:52:40 +02:00
Evil Eye
48f915f1fe
Merge branch 'fontloader' into 'master'
...
Clean the fontloader's hack for polish font up
See merge request OpenMW/openmw!895
2021-06-29 19:15:06 +00:00
Petr Mikheev
890eaabd4f
Merge branch 'clamp' into 'master'
...
Minor refactor making use of std::clamp
See merge request OpenMW/openmw!972
2021-06-29 18:14:12 +00:00
Petr Mikheev
4b98d460da
Merge branch 'const_moar' into 'master'
...
Sprinkle some const ref
See merge request OpenMW/openmw!963
2021-06-29 17:28:51 +00:00
jvoisin
8561245fda
Minor refactor making use of std::clamp
2021-06-29 18:43:47 +02:00
jvoisin
5470b3168b
Use a switch-case instead of a map, on elsid@' advice
...
elsid@ said:
> From my measurements static map + exceptions is slower than original code
when loading polish morrowind localization by 25% with GCC 10.2.0. Switch-based
solution is about 25x times faster than the original and static map with find
only is ~20x faster.
2021-06-29 18:24:40 +02:00
jvoisin
770f91de77
Clean the fontloader's hack for polish font up
...
- The map can be static and const
- The map can be initialized inline
- No need to do a `find` + `[]` instead of `at`
2021-06-29 18:24:40 +02:00
cc9cii
2a76634f5f
Moved persistence flag from references to the header flags of referenceables (e.g. Static, Weapon, etc). Editing widget is not fully working.
2021-06-29 23:25:26 +10:00
cc9cii
024ad3276b
Partial fix for #6017 . The persistence flag of the references are saved but it is not yet possible to modify it via OpenCS.
2021-06-29 19:20:01 +10:00
Evil Eye
4f264af5a9
Merge branch 'staticsload' into 'master'
...
Loads statics before actors II (#5379 )
See merge request OpenMW/openmw!588
2021-06-28 20:25:51 +00:00
psi29a
67f32263b2
Merge branch 'fix_malexa_escape' into 'master'
...
Inscribe physical bounding box into navmesh agent cylinder (#6114 )
Closes #6114
See merge request OpenMW/openmw!967
2021-06-28 14:26:08 +00:00
psi29a
07a7a903a7
Merge branch 'alpha-test-override' into 'master'
...
Ensure original (removed) state overrides replacement state when recreating shaders
Closes #6108
See merge request OpenMW/openmw!966
2021-06-28 13:54:28 +00:00
fredzio
c795e0bce6
Some actors are supposed to spawn on an object that belongs to an adjacent cell.
...
Since actors can be active in 3x3 grid around the player, we need to
first load all objects in a 5x5 grid around the player.
Split load and unloading in 2 phases. Add an mInactiveCells set into the
scene, which contains all cells inside the aforementioned 5x5 grid.
These cells contains only heightfields and non-animated physics objects.
Animated objects are tied to the scene graph, which doesn't exists yet
in these cells, so we skip them.
2021-06-28 09:36:04 +02:00
AnyOldName3
2147c18cf5
Do not overwrite old removed state with old dummy state
2021-06-28 00:11:31 +01:00
elsid
1552e7e3e3
Add pathgrid edges as one direction off mesh connection
2021-06-27 17:48:44 +02:00
elsid
ff1af5e8ec
Use only off mesh connections starting or ending in a given tile
2021-06-27 17:48:41 +02:00
elsid
a8ba9a0e2a
Cleanup unused tile positions from OffMeshConnectionsManager
2021-06-27 17:48:07 +02:00
elsid
81e569c3d9
Move OffMeshConnectionsManager implementation into cpp
2021-06-27 17:48:07 +02:00
elsid
7f65a2c4c2
Remove unused code
2021-06-27 17:48:07 +02:00
elsid
3e98db8d60
Fix styleguide
2021-06-27 17:48:06 +02:00
elsid
84d6dea277
Inscribe physical bounding box into navmesh agent cylinder
...
To disallow too narrow navmesh for a bounding box.
2021-06-27 13:44:38 +02:00
AnyOldName3
0e122b1e3d
Avoid copy and deep equality check
2021-06-27 01:48:06 +01:00
AnyOldName3
8a1b4bde8a
Ensure original (removed) state overrides replacement state when recreating shaders
...
When the shader visitor replaces state (e.g. changes the deprecated
alpha test to a shader-based one) it backs up the original state. If
shaders are recreated, we need to know what the canonical state was and
create shaders to implement that instead of creating shaders to
implement dummy replacement state.
This was actually usually working as the removed state got checked after
the active state, so overwrote anything derived from it. However, if the
active state had the override bit set, that would make it override the
removed state.
Skipping any active state that duplicates removed state fixes this case.
Resolves #6108
2021-06-27 00:12:07 +01:00
jvoisin
9db7d0278a
Sprinkle some const ref
2021-06-25 21:54:35 +02:00
jvoisin
2c8f328ac2
Use make_unique instead of unique_ptr+new
2021-06-25 20:55:38 +02:00
Evil Eye
080106e802
Merge branch 'inline' into 'master'
...
Inline a couple of methods in esmreader.cpp
See merge request OpenMW/openmw!945
2021-06-24 19:56:18 +00:00
jvoisin
b4cfa4328e
Merge branch 'keyword_soup' into 'master'
...
Strip quotes when treating keywords as strings
Closes #6066
See merge request OpenMW/openmw!921
2021-06-24 19:51:58 +00:00
Evil Eye
0998929608
Merge branch 'noreturn' into 'master'
...
Sprinkle some [[noreturn]] where possible
See merge request OpenMW/openmw!793
2021-06-24 19:21:29 +00:00
Evil Eye
822e331f64
Merge branch 'list_resources' into 'master'
...
Minor optimisation in VFS::FileSystemArchive::listResources
See merge request OpenMW/openmw!932
2021-06-24 19:11:46 +00:00
Evil Eye
2be27da791
Merge branch 'const_refs' into 'master'
...
Add a ton of const refs
See merge request OpenMW/openmw!954
2021-06-24 18:57:41 +00:00
Evil Eye
9f7980ecd7
Merge branch 'refenreces' into 'master'
...
Sprinkle some references where it makes sense
See merge request OpenMW/openmw!952
2021-06-24 17:40:36 +00:00
Evil Eye
1a421c3b2e
Merge branch 'multicast' into 'master'
...
Fix two excessive type casting instances
See merge request OpenMW/openmw!953
2021-06-24 17:32:25 +00:00
Evil Eye
7e9785941c
Merge branch 'default' into 'master'
...
Use `default` instead of empty constructors/destructors
See merge request OpenMW/openmw!957
2021-06-24 17:19:02 +00:00
Evil Eye
87c46fb3de
Merge branch 'useless_check' into 'master'
...
Simplify NodeMapVisitor::apply
See merge request OpenMW/openmw!955
2021-06-24 17:12:40 +00:00
jvoisin
cf11870b1c
Sprinkle some references where it makes sense
2021-06-24 00:28:09 +02:00
jvoisin
5840279f16
Use default
instead of empty constructors/destructors
...
See https://pvs-studio.com/en/docs/warnings/v832/ for details
2021-06-24 00:26:15 +02:00
jvoisin
b2c170efa0
Use initialization lists where possible
2021-06-23 23:36:43 +02:00
jvoisin
895864099c
Simplify NodeMapVisitor::apply
...
No need to run a find() before a std::replace
2021-06-23 23:29:14 +02:00
jvoisin
1123dc46ee
Add a ton of const refs
2021-06-23 23:13:59 +02:00
jvoisin
33e035cc95
Fix two excessive type casting instances
...
No need to to a string -> char* -> string dance.
2021-06-23 22:19:08 +02:00
jvoisin
5375b8e71b
Minor optimisation in VFS::FileSystemArchive::listResources
...
When there is no cache, we can fill the `out`
variable as we create it, instead of creating the
cache, and then iterating it to fill `out`.
Thanks to @cemoc for the help!
2021-06-23 12:46:44 +02:00
Evil Eye
df3a47187b
Merge branch 'more_constexpr' into 'master'
...
Some more constexpr in esm/variant.cpp
See merge request OpenMW/openmw!850
2021-06-22 18:40:06 +00:00
Evil Eye
22f7d4eee2
Strip quotes when treating keywords as strings
2021-06-22 16:54:35 +02:00
jvoisin
4dca2c0466
Replace a handrolled memcpy with an actual call to memcpy
2021-06-22 12:52:29 +02:00
jvoisin
2c3c603be2
Sprinkle some const in components/to_utf8
2021-06-22 12:52:29 +02:00
jvoisin
aec3c74fa5
Sprinkle some [[noreturn]] where possible
2021-06-22 12:51:08 +02:00
jvoisin
17e0c75d30
Some more constexpr in esm/variant.cpp
2021-06-22 12:49:09 +02:00
jvoisin
6140c9c3fd
Don't catch exceptions in EsmReader::getExact
2021-06-21 20:06:45 +00:00
jvoisin
cff11fbca9
Inline a couple of methods in esmreader.cpp
2021-06-21 14:22:26 +02:00
Evil Eye
67c8d73fe0
Allow scripts to fail per target
2021-06-19 19:26:55 +02:00
Evil Eye
c1177d7ffe
Allow unquoted string arguments to start with . and -
2021-06-19 11:21:37 +02:00
psi29a
afda721d4b
Merge branch 'race_floats' into 'master'
...
Display Race record height/weight as a float
See merge request OpenMW/openmw!880
2021-06-19 00:29:21 +00:00
psi29a
a6b695e15b
Merge branch 'esmcleanup' into 'master'
...
More ESM cleanup
See merge request OpenMW/openmw!903
2021-06-19 00:23:52 +00:00
psi29a
f66196588c
Merge branch 'object_paging_min_size_combo_box' into 'master'
...
Adding Object Paging Min Size combo box to Advanced -> Visuals
See merge request OpenMW/openmw!917
2021-06-19 00:20:29 +00:00
psi29a
7b6fc1a1f1
Merge branch 'name_shaders' into 'master'
...
Append filename to shader names
See merge request OpenMW/openmw!930
2021-06-19 00:16:36 +00:00
jvoisin
22153cca7b
Reduce a bit the code bloat in hot paths/small functions
...
There is no need to bloat hot/small functions with
a ton of function calls and involving locales
for simple error messages.
2021-06-15 17:57:14 +02:00
Bret Curtis
868a5b35e3
workaround shadow issue on macOS, https://gitlab.com/OpenMW/openmw/-/issues/6057
2021-06-12 00:10:55 +02:00
glassmancody.info
bb834fb44e
append filename to shader names
2021-06-05 18:21:03 -07:00
jvoisin
7f4f2c042e
Use sizeof(GLfloat) instead of sizeof(GL_FLOAT)
...
GL_FLOAT is an enum, with the value 0x1406, while GLFloat is the actual type.
Source: https://www.khronos.org/opengl/wiki/OpenGL_Type
2021-06-04 23:21:26 +02:00
Thunderforge
89950e5528
Preventing type conversion of double to float for objectPagingMinSize
2021-05-29 16:27:23 -05:00
elsid
d4f28ac979
Avoid resetting buffer object when configuring light buffer layout
...
Otherwise this casues RaceSelectionPreview to have no light until first change.
2021-05-28 10:46:42 +02:00
psi29a
9dfba37ce9
Merge branch 'fix_big_object_navmesh_update' into 'master'
...
Fix overwhelming recast mesh and navmesh updates for big rotating objects (#6060 )
Closes #6060
See merge request OpenMW/openmw!911
2021-05-27 21:08:33 +00:00
elsid
4a6961b365
Trigger navmesh update on moved player only when player tile has been changed
2021-05-27 16:52:42 +02:00
elsid
ed91cf9397
Replace unordered_map by map for storing objects
...
For small amount of items it gives better performance for find by key
for update.
2021-05-27 16:38:40 +02:00
elsid
22c2f106b7
Store object tiles position as sorted vector instead of set
2021-05-27 16:00:31 +02:00
elsid
f4f9fa4701
Limit oscillating recast mesh object AABB by tile bounds
...
AABB change outside recast mesh tile should not affect navmesh for this tile.
2021-05-27 12:40:29 +02:00
elsid
d122e184cc
Report navmesh change for not posted tiles
...
Corresponding recast mesh tiles can be updated but navmesh tiles may never
appear for them. Report back zero navmesh version to allow oscillating recast
objects detection to work. This version is always less than any generated
navmesh tile version so any report for generated navmesh will override it.
If zero navmesh version is reported after recast mesh tile got report about
generated navmesh tile it is a no-op since generated version is always greater
than zero.
2021-05-27 12:40:00 +02:00
elsid
3915e5d2cc
Always center loading screen progress bar by height when there is active message box
...
To fix all possible situations when active message box overlaps with loading
screen progress.
The only used condition to center loading screen progress by height is
number of message boxes > 0. No need to pass it through interface.
LoadingScreen can check it inside setLabel function.
2021-05-26 23:29:37 +02:00
Alexei Dobrohotov
6a7bc208de
Merge branch 'dont_assign' into 'master'
...
Don't assign a variable passed by value
See merge request OpenMW/openmw!897
2021-05-23 22:51:42 +00:00
Dobrohotov Alexei
e68a454fd8
More ESM cleanup
2021-05-23 16:02:05 +03:00
jvoisin
e51669c05d
Don't assign a variable passed by value
2021-05-21 18:15:31 +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
Benjamin Winger
41cfcfdc0f
Display Race record height/weight as a float
2021-05-17 18:33:02 -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
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