Andrei Kortunov
d3da09878d
Drop line about non-existent UnrefQueue
2022-07-12 17:41:07 +04:00
elsid
22ed6d5c1e
Use unsigned to define number of threads
2022-07-12 15:19:52 +02:00
psi29a
54db3a97bb
Merge branch 'multiview-refactor' into 'master'
...
[Multiview] refactoring
See merge request OpenMW/openmw!2122
2022-07-12 08:44:43 +00:00
Petr Mikheev
9fbcc5df5e
Merge branch 'localization' into 'master'
...
Use Lua's YAML-based localization for MyGUI
See merge request OpenMW/openmw!2099
2022-07-12 08:13:33 +00:00
Andrei Kortunov
ccbb5e03fb
Use YAML files to translate MyGUI's localization tags
2022-07-12 08:20:40 +04:00
Mads Buvik Sandvei
b277fa48c7
Refactor multiview to avoid littering OSG_HAS_MULTIVIEW and multiview-related uniforms around the code, keep them all in multiview.cpp.
2022-07-11 17:27:05 +02:00
psi29a
aaaeed572a
Merge branch 'fix_6841' into 'master'
...
Treat empty `RootCollisionNode` in NIF as NC flag and generate VisualOnly collision shape
Closes #6841
See merge request OpenMW/openmw!2084
2022-07-11 08:31:59 +00:00
Petr Mikheev
8b8c304953
Treat empty RootCollisionNode
in NIF as NCC flag and generate CameraOnly collision shape
2022-07-10 00:46:11 +02:00
Petr Mikheev
dc3ba3a75b
Fix #6862
2022-07-09 23:19:38 +02:00
elsid
9ac3bb753e
Move declaration private static member variables of LightManager to .cpp
...
There is no need to expose them to other translation units.
2022-07-08 17:21:01 +02:00
elsid
4211cf1c24
Use uniform indent and apply openmw naming policy
2022-07-08 17:14:13 +02:00
psi29a
510a9b9a5e
Merge branch 'navmeshtilescache_find' into 'master'
...
Avoid redundant copy when finding item in NavMeshTilesCache
See merge request OpenMW/openmw!2109
2022-07-06 13:48:24 +00:00
elsid
6fb7af3b63
Avoid redundant copy when finding item in NavMeshTilesCache
...
std::make_tuple returns a tuple for types with removed references which makes it
to copy arguments. std::tie leaves references.
2022-07-06 14:23:07 +02:00
elsid
b4f12aace1
Explicitly ignore result of std::unique_ptr::release call
...
components/nifbullet/bulletnifloader.cpp:206:13: warning: the value returned by this function should be used [bugprone-unused-return-value]
boxShape.release();
^~~~~~~~~~~~~~~~~~
components/nifbullet/bulletnifloader.cpp:232:13: warning: the value returned by this function should be used [bugprone-unused-return-value]
child.release();
^~~~~~~~~~~~~~~
components/nifbullet/bulletnifloader.cpp:233:13: warning: the value returned by this function should be used [bugprone-unused-return-value]
mStaticMesh.release();
^~~~~~~~~~~~~~~~~~~~~
components/nifbullet/bulletnifloader.cpp:240:9: warning: the value returned by this function should be used [bugprone-unused-return-value]
mStaticMesh.release();
^~~~~~~~~~~~~~~~~~~~~
components/nifbullet/bulletnifloader.cpp:246:9: warning: the value returned by this function should be used [bugprone-unused-return-value]
mAvoidStaticMesh.release();
^~~~~~~~~~~~~~~~~~~~~~~~~~
components/nifbullet/bulletnifloader.cpp:411:9: warning: the value returned by this function should be used [bugprone-unused-return-value]
childMesh.release();
^~~~~~~~~~~~~~~~~~~
components/nifbullet/bulletnifloader.cpp:425:9: warning: the value returned by this function should be used [bugprone-unused-return-value]
childShape.release();
^~~~~~~~~~~~~~~~~~~~
2022-07-06 13:52:29 +02:00
elsid
72bda2bd10
Avoid redundant initialization
...
components/nifbullet/bulletnifloader.cpp:79:24: warning: Value stored to 'a' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
unsigned short a = strip[0], b = strip[0], c = strip[1];
^ ~~~~~~~~
2022-07-06 13:52:28 +02:00
elsid
5b9ca3b979
Avoid possible division by zero
...
components/detournavigator/navmeshdb.cpp:183:43: warning: Division by zero [clang-analyzer-core.DivideZero]
setMaxPageCount(*mDb, maxFileSize / dbPageSize + static_cast<std::uint64_t>((maxFileSize % dbPageSize) != 0));
~~~~~~~~~~~~^~~~~~~~~~~~
components/detournavigator/navmeshdb.cpp:182:33: note: Calling 'getPageSize'
const auto dbPageSize = getPageSize(*mDb);
^~~~~~~~~~~~~~~~~
components/detournavigator/navmeshdb.cpp:144:13: note: 'value' initialized to 0
std::uint64_t value = 0;
^~~~~~~~~~~~~~~~~~~
components/detournavigator/navmeshdb.cpp:145:13: note: Calling 'request<DetourNavigator::(anonymous namespace)::GetPageSize, unsigned long *, >'
request(db, statement, &value, 1);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
components/sqlite3/request.hpp:254:64: note: Left side of '&&' is false
for (std::size_t i = 0; executeStep(db, statement) && i < max; ++i)
^
components/detournavigator/navmeshdb.cpp:145:13: note: Returning from 'request<DetourNavigator::(anonymous namespace)::GetPageSize, unsigned long *, >'
request(db, statement, &value, 1);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
components/detournavigator/navmeshdb.cpp:146:13: note: Returning zero (loaded from 'value')
return value;
^~~~~~~~~~~~
components/detournavigator/navmeshdb.cpp:182:33: note: Returning from 'getPageSize'
const auto dbPageSize = getPageSize(*mDb);
^~~~~~~~~~~~~~~~~
components/detournavigator/navmeshdb.cpp:182:9: note: 'dbPageSize' initialized to 0
const auto dbPageSize = getPageSize(*mDb);
^~~~~~~~~~~~~~~~~~~~~
components/detournavigator/navmeshdb.cpp:183:43: note: Division by zero
setMaxPageCount(*mDb, maxFileSize / dbPageSize + static_cast<std::uint64_t>((maxFileSize % dbPageSize) != 0));
~~~~~~~~~~~~^~~~~~~~~~~~
2022-07-06 13:52:28 +02:00
AnyOldName3
2bb28b5e27
Merge branch 'fix_typo' into 'master'
...
Fix particle flags typo (#6857 )
Closes #6857
See merge request OpenMW/openmw!2102
2022-07-05 19:31:37 +00:00
glassmancody.info
0954597fa7
fix typo with wrong flags in particle nifloader
2022-07-05 11:00:28 -07:00
Andrei Kortunov
38042fd7a2
Init missing variables
2022-07-05 17:47:52 +04:00
Andrei Kortunov
aed0da46a9
Check a result of dynamic_cast
2022-07-05 17:47:49 +04:00
jvoisin
f451b09f10
Merge branch 'rm_stream_include' into 'master'
...
Remove redundant ostream, istream, iostream and sstream includes
See merge request OpenMW/openmw!2097
2022-07-05 11:00:50 +00:00
psi29a
9003e83470
Merge branch 'particle_vertex' into 'master'
...
Soft enforce vertex lighting on particle systems (i.e. with exception of normal maps)
See merge request OpenMW/openmw!2098
2022-07-05 10:15:36 +00:00
psi29a
85a8359b36
Merge branch 'only_when_necassary' into 'master'
...
Conditional soft particles
See merge request OpenMW/openmw!2078
2022-07-05 10:14:32 +00:00
glassmancody.info
7bed2208e9
only force ppl on particles with normal maps
2022-07-04 18:28:29 -07:00
elsid
bef15edf0b
Remove redundant ostream, istream, iostream and sstream includes
...
* Replace by std::to_string and operator+ where possible.
* Move the code requiring to include <sstream> from .hpp to .cpp files.
2022-07-05 01:41:28 +02:00
elsid
782d3d9680
Avoid calling getMultiview from ~StereoFrustumManager
...
Otherwise coverity complains about a function throwing exceptions called from a
destructor.
2022-07-04 20:44:41 +02:00
Andrei Kortunov
f6a07ab603
Merge branch 'fix_image_button_scale' into 'master'
...
Use float based scale factor for ImageButton texture (#6849 )
Closes #6849
See merge request OpenMW/openmw!2076
2022-07-03 17:46:51 +00:00
elsid
a16c55c93f
Use float based scale factor for ImageButton texture
2022-07-03 19:41:13 +02:00
jvoisin
bbcc12262f
Merge branch 'fix_icu_from_utf8_debug_crash' into 'master'
...
Avoid constructing icu::StringPiece from std::string directly (#6782 )
Closes #6782
See merge request OpenMW/openmw!2073
2022-07-03 17:37:00 +00:00
jvoisin
498a835b77
Merge branch 'coverity' into 'master'
...
Fix some Coverity issues
See merge request OpenMW/openmw!2082
2022-07-03 16:29:05 +00:00
Andrei Kortunov
fe785ea788
Don't cast away const when we can avoid it
2022-07-03 16:36:41 +04:00
Andrei Kortunov
14b5674d32
Init missing data members
2022-07-03 15:44:50 +04:00
Andrei Kortunov
124db67496
Add an assert to detect possible nullptr dereference
2022-07-03 15:44:50 +04:00
Andrei Kortunov
5d94a94a98
Use a Boost API to resolve symlinks instead of low-level code
2022-07-03 15:44:50 +04:00
Andrei Kortunov
7cce341822
Fix initializer
2022-07-03 15:44:50 +04:00
Andrei Kortunov
d2a1cc954f
Remove unused variable
2022-07-03 15:44:50 +04:00
Andrei Kortunov
aa349f2ed9
Initialize some missing variables
2022-07-03 15:44:50 +04:00
Andrei Kortunov
523ad825c2
There is no point to compare an unsigned value with 0
2022-07-03 15:44:31 +04:00
glassmancody.info
a0265ffb89
only enable soft particles when enabled in settings
2022-07-02 09:42:15 -07:00
AnyOldName3
6609243c87
Merge branch 'dont_notice_me_launcher_senpai' into 'master'
...
Don't load content entries from global and local configs
Closes #6441
See merge request OpenMW/openmw!2068
2022-07-02 16:02:10 +00:00
Petr Mikheev
11d1a54626
Merge branch 'more-stereo-woes' into 'master'
...
More stereo-postprocessing integration
See merge request OpenMW/openmw!2054
2022-07-02 15:26:35 +00:00
Mads Buvik Sandvei
6dc727cf8f
More stereo-postprocessing integration
2022-07-02 15:26:35 +00:00
florent.teppe
4f832f479b
Fixes compressed BSA loading
...
When creating the folders map, the folder name without / is hashed, but when trying to get a file record, when looking for a folder it was hashed wit the /
So now in getFileRecord parent_path is used instead
2022-07-02 15:37:26 +02:00
AnyOldName3
58593a1e62
Merge branch 'disable_crash_catcher' into 'master'
...
Allow to disable crash catcher on Windows
See merge request OpenMW/openmw!2072
2022-07-01 23:17:32 +00:00
elsid
d2ed62ec3a
Allow to disable crash catcher on Windows
2022-07-01 22:44:03 +02:00
elsid
316f666e77
Avoid constructing icu::StringPiece from std::string directly
...
Otherwise it causes a crash on Windows when OpenMW is built in debug
mode but ICU not.
2022-07-01 22:31:06 +02:00
elsid
5891d58f63
Fix C4456 msvc warning
...
declaration of 'it' hides previous local declaration
2022-07-01 18:47:44 +02:00
elsid
8544aa481c
Fix C4459 msvc warning
...
declaration of 'navMeshVersion' hides global declaration
2022-07-01 18:47:40 +02:00
elsid
2d6e048d88
Fix C4589 msvc warning
...
Constructor of abstract class 'SceneUtil::KeyframeController' ignores initializer for virtual base class 'osg::Object'
2022-07-01 18:47:06 +02:00
elsid
7e6c13630a
Use target_precompile_headers for the most expensive headers
2022-07-01 14:05:17 +00:00
Evil Eye
c081b8cfa9
Don't load content entries from global and local configs
2022-06-30 20:57:51 +02:00
psi29a
56187ad977
Merge branch 'soften_me_up_like_one_of_your_french_meshes' into 'master'
...
Allow soft particle effect on any NIF
See merge request OpenMW/openmw!2015
2022-06-30 13:46:22 +00:00
glassmancody.info
b09411d396
allow soft particles on meshes and add extra data extensions
2022-06-29 18:15:12 -07:00
Petr Mikheev
d0deb37f5c
Fix several issues with sky blending
2022-06-27 21:51:41 +02:00
elsid
1a5932a669
Move std::ostream& operator<< to .cpp
2022-06-26 22:43:53 +02:00
elsid
10fbf170a2
Reduce number of includes for boost/program_options
2022-06-25 18:32:10 +02:00
psi29a
c3599ada2e
Merge branch 'imayhaverunoutofclevernifbranchnames' into 'master'
...
Clean up NIF record flags/modes
See merge request OpenMW/openmw!2047
2022-06-22 21:15:14 +00:00
psi29a
ede09309a6
Merge branch 'groundcover_progress' into 'master'
...
Show groundcover loading progress
See merge request OpenMW/openmw!1978
2022-06-22 13:02:22 +00:00
Alexei Kotov
e673f9fa76
Clean up NIF flags
2022-06-22 01:58:16 +03:00
elsid
6abb963bd9
Use string_view for StringUtils functions
2022-06-21 19:40:28 +02:00
psi29a
1a478875f0
Merge branch 'navmesh_agent_bounds' into 'master'
...
Support different agent collision shape type for pathfinding
See merge request OpenMW/openmw!2030
2022-06-21 16:13:41 +00:00
psi29a
736ea1a8a0
Merge branch 'fix_new_children_visibility' into 'master'
...
Add missing workaround for a MyGUI visibility bug
Closes #6783
See merge request OpenMW/openmw!2041
2022-06-21 16:08:05 +00:00
psi29a
feef257584
Merge branch 'postprocessor-stereo' into 'master'
...
[Postprocessing] Stereo integration
See merge request OpenMW/openmw!1988
2022-06-21 15:55:06 +00:00
Mads Buvik Sandvei
b0e4c7e76a
[Postprocessing] Stereo integration
2022-06-21 15:55:06 +00:00
psi29a
a822044199
Merge branch 'riggeoosgaext' into 'master'
...
custom class for osgAnimation::RigGeometry, Collada animated deforming body parts
See merge request OpenMW/openmw!1682
2022-06-21 15:27:34 +00:00
Nelsson Huotari
334c6dde0b
custom class for osgAnimation::RigGeometry, Collada animated deforming body parts
2022-06-21 15:27:34 +00:00
elsid
1a12c453d6
Support different agent collision shape type for pathfinding
...
Actors may have different collision shapes. Currently there are axis-aligned
bounding boxes and rotating bounding boxes. With AABB it's required to use
bounding cylinder for navmesh agent to avoid providing paths where actor can't
pass. But for rotating bounding boxes cylinder with diameter equal to the front
face width should be used to not reduce of available paths. For example rats
have rotating bounding box as collision shape because of the difference between
front and side faces width.
* Add agent bounds to navmesh tile db cache key. This is required to distinguish
tiles for agents with different bounds.
* Increase navmesh version because navmesh tile db cache key and data has changed.
* Move navmesh version to the code to avoid misconfiguration by users.
* Fix all places where wrong half extents were used for pathfinding.
2022-06-21 12:57:32 +02:00
Petr Mikheev
3bf18c601c
Better fog
2022-06-21 02:21:20 +02:00
uramer
591fa9b700
Add missing workaround for a MyGUI visibility bug
2022-06-20 21:43:17 +02:00
psi29a
aeed99ca2c
Merge branch 'clean_qt_headers' into 'master'
...
Clean up Qt includes
See merge request OpenMW/openmw!2027
2022-06-20 14:05:33 +00:00
Cody Glassman
66aa546e97
[Postprocessing] Small cleanup
2022-06-20 06:58:40 +00:00
psi29a
e40461a8e3
Merge branch 'niboundingvolume' into 'master'
...
Correct NiBoundingVolume loading (#6710 )
Closes #6710
See merge request OpenMW/openmw!2029
2022-06-19 11:35:15 +00:00
psi29a
2a789de8d3
Merge branch 'hacky-windows-unicode-fixes' into 'master'
...
Hacky windows unicode fixes
See merge request OpenMW/openmw!2024
2022-06-19 11:30:23 +00:00
AnyOldName3
c3d23b4948
Extra hack to make this build on Ubuntu with old CMake
2022-06-18 22:43:12 +01:00
elsid
e03e0db55d
Use std::string_view to access settings
...
There is no more need to copy std::string into a pair when need to call
std::map::find.
Remove unused resetPendingChange function.
2022-06-18 17:54:24 +02:00
Alexei Kotov
e6f7a2f1ef
Correct NiBoundingVolume loading
2022-06-17 14:35:33 +03:00
jvoisin
8b9ed57348
Clean up Qt includes
2022-06-17 11:56:54 +02:00
AnyOldName3
bdcac26d8c
Fix regressions from https://gitlab.com/OpenMW/openmw/-/merge_requests/1917
2022-06-16 00:30:11 +01:00
AnyOldName3
6a5ad4ca43
Fix regression from https://gitlab.com/OpenMW/openmw/-/merge_requests/1776
2022-06-16 00:28:41 +01:00
elsid
fdd84265b3
Use proper agent height and radius when render actor path
...
That are based on half extents used to find path over navmesh which is different
for interior and exterior cells.
Use common functions to get agent height and radius for actor path rendering and
navmesh generation.
2022-06-15 01:11:11 +02:00
uramer
1fb136a417
Correct icon and mesh paths in Lua records
2022-06-12 11:30:29 +02:00
psi29a
bb0dad7c08
Update to C++20 and see if our CI can handle it.
2022-06-12 08:00:11 +00:00
uramer
6d2dcaea50
Lua UI: Enable autoSize for single line text edit
2022-06-11 22:24:20 +02:00
psi29a
9c1970dce4
Merge branch 'lua_esm' into 'master'
...
Advanced Lua scripts configuration in omwaddon
See merge request OpenMW/openmw!1947
2022-06-11 18:48:23 +00:00
Alexei Kotov
dd758f8fd1
Always update the current matrix in KeyframeController
2022-06-11 05:56:28 +03:00
psi29a
d7641ce943
Merge branch 'keyframe' into 'master'
...
Encapsulate NIF transformations, round 2 (#6709 )
Closes #6709
See merge request OpenMW/openmw!1989
2022-06-09 20:44:55 +00:00
psi29a
ee89eccb06
Merge branch 'reload_l10n' into 'master'
...
Console command `reloadlua` also reloads l10n used by Lua scripts
See merge request OpenMW/openmw!1984
2022-06-09 12:17:38 +00:00
psi29a
f687827f98
Merge branch 'compile-times' into 'master'
...
Improve compile time a bit
See merge request OpenMW/openmw!1985
2022-06-08 12:07:30 +00:00
Alexei Kotov
21f6e2e419
Encapsulate NIF transformations, round 2 (task #6709 )
2022-06-08 07:05:35 +03:00
ζeh Matt
38b6927b31
Fix missing includes
2022-06-07 02:08:50 +03:00
ζeh Matt
e185d186bf
Move Log implementation to cpp, remove expensive mutex include in hpp
2022-06-07 01:41:27 +03:00
ζeh Matt
14bf9af056
Move implementation details of debugging.hpp to cpp, reduce includes
2022-06-07 01:22:43 +03:00
Petr Mikheev
1240b60a24
Console command reloadlua
also reloads l10n used by Lua scripts
2022-06-06 23:56:08 +02:00
uramer
6c9c832927
Lua UI: Support autosized multiline text
2022-06-06 21:52:55 +00:00
ζeh Matt
d5ec959449
Create platform component for platform specific things
2022-06-06 20:45:51 +03:00
psi29a
5aeee0a520
Merge branch 'threading_gone_wrong' into 'master'
...
[Postprocessing] Fix race condition when techniques are dirtied
See merge request OpenMW/openmw!1979
2022-06-06 16:32:35 +00:00
psi29a
5725b5a29c
Merge branch 'close_lights' into 'master'
...
[Postprocessing] Pass sorted lights and ones with associated geometry
See merge request OpenMW/openmw!1976
2022-06-06 16:29:48 +00:00
Evil Eye
10e4eb8e8e
Append orphaned dialogue instead of always appending it
2022-06-06 10:12:36 +02:00
glassmancody.info
acc209c294
fix threading issue when dispatching frame dependent data
2022-06-05 15:46:25 -07:00
elsid
9c93de65be
Show groundcover loading progress
2022-06-05 22:21:12 +02:00
psi29a
c7449dc272
Merge branch 'bullet_includes' into 'master'
...
Clean up bullet includes
See merge request OpenMW/openmw!1974
2022-06-05 10:17:57 +00:00
glassmancody.info
8146b05c92
pass only lights with visible geometry
2022-06-04 21:01:01 -07:00
glassmancody.info
327b8ecdcb
pass sorted lights to light postprocess light buffers
2022-06-04 20:33:21 -07:00
Petr Mikheev
a70d5831c5
Lua scripts configuration in omwaddon
2022-06-05 01:36:39 +02:00
psi29a
58fd560ce9
Merge branch 'esm_readers_cache' into 'master'
...
Limit the number of simultaneously open not actively used content files (#6756 )
Closes #6756
See merge request OpenMW/openmw!1966
2022-06-04 19:11:27 +00:00
psi29a
70f0aae14d
Merge branch 'const_sRecordId' into 'master'
...
Make the sRedcordId constexpr
See merge request OpenMW/openmw!1973
2022-06-04 19:09:32 +00:00
psi29a
22ad2615e3
Merge branch 'mygui_includes' into 'master'
...
Clean up MyGUI includes
See merge request OpenMW/openmw!1972
2022-06-04 19:07:28 +00:00
jvoisin
72a6d1f69f
Clean up bullet includes
2022-06-04 20:15:10 +02:00
jvoisin
df0cd86cf4
Use the proper types
2022-06-04 16:34:23 +02:00
jvoisin
6c71071083
Make the sRedcordId constexpr
2022-06-04 16:07:59 +02:00
jvoisin
33c66e3d5e
Merge branch 'light_origin' into 'master'
...
Attach lights at origin when missing AttachLight node
Closes #6794
See merge request OpenMW/openmw!1970
2022-06-04 13:35:27 +00:00
Cody Glassman
ce49aa1202
Attach lights at origin when missing AttachLight node
2022-06-04 13:35:27 +00:00
Cody Glassman
bc0eed9843
[Postprocessing] Typos in docs and state attributes
2022-06-04 13:33:35 +00:00
jvoisin
0cc304e659
Clean up MyGUI includes
...
This should improve incremental compilation.
2022-06-04 15:26:36 +02:00
jvoisin
075ecc8558
Merge branch 'minor_simp_multidircoll' into 'master'
...
Minor simplification in multidircollection.cpp
See merge request OpenMW/openmw!1963
2022-06-03 17:22:19 +00:00
elsid
3affe9913f
Limit the number of simultaneously open not actively used content files
...
Use LRU cache for ESMReaders. When cache capacity is reached close least
recently used ESMReader. Remember the file name if a reader was open. Once the
reader requested again open the file if there is stored name for it. Put
released ESMReader to the back of the free items list. Close ESMReader's from
the front of the free items list.
Cached item can be used only by one client at the same time. If the same item is
requested twice exception is thrown. This should never happen in practice. If
this happens need to fix the client logic.
It's allowed to go over the capacity limit when requesting different readers.
Ideally this should never happen but there will be system error anyway
signalizing about too many open files. Need to fix client logic in this case.
All places that were using a vector of ESMReaders now using the cache. Cache is
local for each use case and there is no need for a thread safety.
2022-06-03 01:29:03 +02:00
jvoisin
a204f392c9
Minor simplification in multidircollection.cpp
2022-06-02 20:23:19 +02:00
Petr Mikheev
23f1d21e48
Make the behaviour of omw.weatherTransition
in omwfx more reasonable
2022-06-02 01:35:39 +02:00
glassmancody.info
4dee9acd1e
fill bars to postprocess hud
2022-05-31 16:26:51 -07:00
Cody Glassman
447b586d7d
[Postprocessing] Fix a couple awkward issues with Lua API
2022-05-31 08:45:27 +00:00
AnyOldName3
e24a85419a
Merge branch 'master' into 'master'
...
When building Win32 (VS 2019), there are problems in line 45.
See merge request OpenMW/openmw!1953
2022-05-30 20:20:53 +00:00
jvoisin
4366ec11fc
Merge branch 'blank_is_bad' into 'master'
...
0 initialize mRecordFlags
Closes #6719
See merge request OpenMW/openmw!1949
2022-05-29 21:23:45 +00:00
psi29a
1712a8779c
Merge branch 'remove_moar_booooost' into 'master'
...
Remove boost:: constructs
See merge request OpenMW/openmw!1948
2022-05-29 20:33:17 +00:00
Evil Eye
bb495bffeb
0 initialize mRecordFlags
2022-05-29 22:12:30 +02:00
jvoisin
aeb3733e57
Remove boost:: constructs
...
Namely boost::scoped_array and boost::to_lower_copy.
2022-05-29 21:21:51 +02:00
psi29a
fc24ffcaab
Merge branch 'folllllllowup' into 'master'
...
Replace a `c_str()` with an `native()`
See merge request OpenMW/openmw!1938
2022-05-29 19:18:57 +00:00
Evil Eye
a95b6e050a
Replace new with make_unique in components
2022-05-29 13:24:32 +02:00
jvoisin
bd5ccaac3c
Followup to 21efb74b58
2022-05-27 19:09:34 +02:00
jvoisin
21efb74b58
Remove even most boost::
2022-05-26 16:13:07 +02:00
psi29a
d74ee0f3fe
Merge branch 'postprocess_hud' into 'master'
...
[Postprocessing] Improve HUD
See merge request OpenMW/openmw!1933
2022-05-26 06:24:36 +00:00
cody glassman
424b828ff8
add ability to use display names
2022-05-25 19:17:31 -07:00
cody glassman
11845e7d9b
improve layout of postprocessor hud
2022-05-25 19:07:01 -07:00
jvoisin
cb226e00f9
Remove some more of boost::
2022-05-25 21:16:26 +02:00
Petr Mikheev
29328867dc
Merge branch 'moar_noboost' into 'master'
...
Remove even more of boost::filesystem
See merge request OpenMW/openmw!1927
2022-05-25 18:29:04 +00:00
jvoisin
4e4debb1cb
Remove even more of boost::filesystem
2022-05-25 18:29:02 +00:00
psi29a
a14285bff5
Merge branch 'light_tweaks' into 'master'
...
[Postprocessing] Tweaks to light collection
See merge request OpenMW/openmw!1928
2022-05-25 07:51:17 +00:00
cody glassman
30a64ee82a
move to world space, fix bug with uniform size updates
2022-05-24 22:30:25 -07:00
jvoisin
6feb92a9bf
Remove boost::filesystem from a couple of files
2022-05-24 21:18:21 +00:00
psi29a
a737b05d84
Merge branch 'faster_toLower' into 'master'
...
Improve the speed of toLower
See merge request OpenMW/openmw!1889
2022-05-24 07:53:01 +00:00
glassmancody.info
a987b01717
don't resize user defined samplers to power of 2
2022-05-23 19:44:39 -07:00
jvoisin
998f1c960e
Improve the speed of toLower
...
This significantly improves the speed of my fuzzer,
by something like 15%.
2022-05-23 21:24:17 +02:00
Petr Mikheev
a4b23aad05
Validate l10n context name
2022-05-23 19:25:30 +02:00
elsid
5b592e09e6
Log more information when navmeshtool fails on not enough space
2022-05-23 13:01:30 +02:00
cody glassman
6093cb5f2c
postprocessing lua api extensions
2022-05-22 18:53:38 -07:00
psi29a
e3f891c0b0
Merge branch 'fix_boost' into 'master'
...
Fix build with lld linker
See merge request OpenMW/openmw!1903
2022-05-22 20:53:57 +00:00
psi29a
f17d7fc00b
Merge branch 'string_view' into 'master'
...
Make getStringLiteral return a string_view
See merge request OpenMW/openmw!1896
2022-05-22 20:50:04 +00:00
jvoisin
fb732d74a2
Remove boost::filesystem from bsatool
2022-05-22 18:53:10 +02:00
elsid
ea295a2ac3
Fix build with lld linker
...
Boost.Filesystem started to depend on Boost.Atomic on 1.77.0 version but lld
can't find library on its own:
libboost_atomic.so.1.79.0 => not found
2022-05-22 15:27:48 +02:00
psi29a
8dd3e53a30
Merge branch 'string_view' into 'master'
...
Move a couple of files from `const std::string&` to `std::string_view`
See merge request OpenMW/openmw!1901
2022-05-22 10:45:35 +00:00
Evil Eye
ac78b537d2
Address feedback
2022-05-22 09:29:03 +02:00
Petr Mikheev
7f8d433775
Initialize log recorder right after initializing the logging
2022-05-22 02:47:58 +02:00
elsid
ea107bdd53
Remove unused boost include
2022-05-22 02:42:01 +02:00
jvoisin
02cafc3b98
And one more
2022-05-21 22:08:20 +02:00
jvoisin
9ce26ef4b6
Move to_utf8 from const std::string&
to std::string_view
2022-05-21 21:44:47 +02:00
jvoisin
23eccebe9e
Convert esmtool from const std::string&
to std::string_view
2022-05-21 21:39:26 +02:00
Evil Eye
15fda78ddf
Include string
2022-05-21 12:00:15 +02:00
Evil Eye
e79f803402
Change includes
2022-05-21 10:48:32 +02:00
Matt
395de4b251
Refactor PostProcessor code
2022-05-21 06:42:05 +00:00
Evil Eye
c6ca0e78c9
Make getStringLiteral return a string_view
2022-05-21 01:21:55 +02:00
uramer
1fe794d935
Changing setting renderer arguments
2022-05-19 19:49:14 +00:00
uramer
9042f47f0a
Use an anonymous namespace in element.cpp
2022-05-19 16:10:49 +02:00
uramer
5d7fc0ab17
Limit maximum Lua UI layout depth to prevent stack overflow
2022-05-19 16:10:05 +02:00
psi29a
d4e2000d5b
Merge branch 'render_targets' into 'master'
...
Bind custom render targets per pass
See merge request OpenMW/openmw!1884
2022-05-19 11:03:02 +00:00
glassmancody.info
3d03052717
dont bind rendertargets unless we use them, otherwise texture limit will be reached quickly
2022-05-18 19:45:09 -07:00
psi29a
b9b4f1c3c2
Merge branch 'console_log' into 'master'
...
In-game log viewer
See merge request OpenMW/openmw!1799
2022-05-18 07:57:59 +00:00
psi29a
d3f331793e
Merge branch 'sol' into 'master'
...
Update sol. Replace combined sol.hpp with loose files.
See merge request OpenMW/openmw!1851
2022-05-18 07:57:32 +00:00
ζeh Matt
18f16eac4c
Refactor DetourNavigator to pass prng along, use world prng for AiWander
2022-05-17 20:37:15 +03:00
elsid
18d05c8f1a
Use proper variable to check in if condition
2022-05-17 13:19:39 +02:00
psi29a
2f75acc34e
Merge branch 'navmesh_render_update_frequency' into 'master'
...
Add navmesh debug render mode to show update frequency
See merge request OpenMW/openmw!1685
2022-05-17 07:32:08 +00:00
psi29a
bbcdac6b18
Merge branch 'fix_mygui_data_manager_includes' into 'master'
...
Add includes for used types and functions (#6744 )
See merge request OpenMW/openmw!1870
2022-05-17 07:28:35 +00:00
elsid
215b46503c
Support rendering for navmesh update frequency as a heatmap
...
Useful when need to find tiles with high number of updates.
Add debug Lua package with new functions to toggle render mode and set navmesh
render mode.
2022-05-17 01:54:20 +02:00
cody glassman
915eaa4c91
highp is not available in version 120
2022-05-16 16:17:39 -07:00
elsid
5f2e282359
Add includes for used types and functions
2022-05-17 00:58:24 +02:00
Petr Mikheev
cf49b46d64
Show logs in the debug window
...
Some part of UI code is written by @andrew-app
2022-05-16 20:50:44 +02:00
Alexei Kotov
8140cceb3e
Merge branch 'construct_me_not' into 'master'
...
Address feedback on !1857
See merge request OpenMW/openmw!1865
2022-05-16 16:58:43 +00:00
Petr Mikheev
7ee796b481
Merge branch 'fix_pairs' into 'master'
...
Fix Lua pairs and ipairs
See merge request OpenMW/openmw!1864
2022-05-16 15:52:42 +00:00
Evil Eye
134dc2b21b
Address feedback on !1857
2022-05-16 17:37:55 +02:00
psi29a
f092d8da9a
Merge branch 'post_malone' into 'master'
...
Post Processing
See merge request OpenMW/openmw!1124
2022-05-16 14:51:13 +00:00
uramer
22994af728
Fix Lua pairs and ipairs
2022-05-16 16:32:18 +02:00
psi29a
dd0e0fea72
Merge branch 'lua_strict_index' into 'master'
...
[Lua] makeStrictReadOnly for enums
See merge request OpenMW/openmw!1859
2022-05-16 10:59:20 +00:00
psi29a
d8eb9d6818
Merge branch 'smooth_my_nodes' into 'master'
...
Better support BSPArrayController
See merge request OpenMW/openmw!1858
2022-05-16 08:25:18 +00:00
psi29a
65c95d97c3
Merge branch 'disable_navmeshdb_write_on_lock' into 'master'
...
Disable writes to navmeshdb on database is locked error
See merge request OpenMW/openmw!1837
2022-05-16 07:38:12 +00:00
Petr Mikheev
7ccbf95503
[Lua] makeStrictReadOnly for enums
2022-05-16 00:16:26 +02:00
cody glassman
72fdf40e06
better support for particle arrays when spawning at node positions
2022-05-15 13:41:52 -07:00
Petr Mikheev
d16fa553c8
Fix LuaUtil::Callback
2022-05-15 21:34:48 +02:00
cody glassman
dae0914820
workarounds for gl4es
2022-05-15 10:03:58 -07:00
cody glassman
ac6089a430
skip flipping of 3D textures which is unsupported in OSG
2022-05-15 10:03:58 -07:00
cody glassman
0cb63ca4e6
experimental point light bindings
2022-05-15 10:03:58 -07:00
cody glassman
04843fed6d
moddable post-processing pipeline
2022-05-15 10:03:58 -07:00
Evil Eye
c0cc5feecd
Initialize DialInfo::DATAstruct with the proper blank values
2022-05-15 14:52:44 +02:00
uramer
1766f89c4d
Fix a typo
2022-05-14 16:55:11 +02:00
uramer
52d05be04b
Styling for Settings
2022-05-14 10:27:30 +00:00
ShadIK02
9649bfc4cb
When building Win32 (VS 2019), there are problems in line 45.
...
This change solves the problem.
Special thanks to AnyOldName3 for the hint :)
2022-05-13 21:59:47 +00:00
uramer
e92c88a133
Make the documentation clearer, match the documentation when no buttons are pressed for an event
2022-05-10 20:00:42 +02:00
elsid
a75c7c49f0
Disable writes to navmeshdb on database is locked error
...
Simultaneously writing to sqlite3 database is not possible. Process exclusively
locks the database for this. Another process will fail to perform any request
when database is locked. Alternatively it can wait. Handling this situation
properly requires complexity that is not really needed. Users are not expected
to run multiple openmw processes simultaneously using the same navmeshdb.
Before this change running multiple openmw processes using the same navmeshdb
can lead to a crash when first transaction fails to start because there is
exception thrown and not catched.
Remove use of explicit transactions from DbWorker. Handling all possible
transaction states due to different errors brings unnecessary complexity.
Initially they were introduced to increase time between flushes to disk. This
makes sense for navmeshtool because of massive number of writes but for the
engine this is not an issue.
2022-05-09 22:54:46 +02:00
cody glassman
ad139f2f9a
rename to windowed fullscreen
2022-05-08 22:56:39 -07:00
cody glassman
05901a2480
add borderless windows, deprecate fullscreen mode
2022-05-08 22:56:39 -07:00
uramer
1f5e3b78d4
Use Flex, don't force re-renders on layout table changes
2022-05-08 11:15:17 +02:00
uramer
aea2c019de
Fix content names for layouts inserted with :add()
2022-05-08 11:15:16 +02:00
psi29a
49487a17e6
Merge branch 'environment' into 'master'
...
Make Environment a storage of referencing pointers instead of owned
See merge request OpenMW/openmw!1830
2022-05-08 08:47:34 +00:00
psi29a
c0ffb289ab
Merge branch 'ptmikheev-master-patch-72894' into 'master'
...
Fix #6731
Closes #6731
See merge request OpenMW/openmw!1832
2022-05-08 08:33:43 +00:00
elsid
79676aee15
Make Environment a storage of referencing pointers instead of owned
...
Engine controls lifetime of managers therefore it should own them. Environment
is only access provider.
This allows to avoid redundant virtual calls and also some functions from
managers base classes can be removed if they are used only by Engine.
2022-05-06 23:44:01 +02:00
Petr Mikheev
70c7f1880d
[Lua] pairs and ipairs for ObjectList ( resolves #6732 )
2022-05-06 23:11:47 +02:00
Petr Mikheev
86d6ab593e
Fix #6731
2022-05-06 19:57:41 +00:00
jvoisin
331363d469
Merge branch 'fix_uninit' into 'master'
...
Fix uninitialized coverity warnings
See merge request OpenMW/openmw!1819
2022-05-05 17:35:16 +00:00
Evil Eye
a64979e25d
Replace empty std::string assignments
2022-05-04 22:33:39 +02:00
uramer
03659bef86
MWUI interface (resolve https://gitlab.com/OpenMW/openmw/-/issues/6594 )
2022-05-03 17:36:49 +00:00
jvoisin
143dcad0e8
Use an if
instead of an assert
2022-05-02 21:17:24 +00:00
elsid
b67a0a8f2b
Fix uninitialized coverity warnings
2022-05-01 18:36:16 +02:00
elsid
92538dde89
End SNAM record as SNAM record
2022-05-01 15:45:22 +02:00
psi29a
275bebb066
Merge branch 'Stereo-MR' into 'master'
...
Stereo
See merge request OpenMW/openmw!1757
2022-04-30 16:40:09 +00:00
Evil Eye
9a96d64611
Use subrecord size instead of version to load WEAT
2022-04-30 10:11:49 +02:00
madsbuvi
31a97141b7
Mac
2022-04-29 21:59:26 +02:00
madsbuvi
79577f37de
Rebase artifacts + cleaned up the remaining unnecessary exposures of stereo awareness.
2022-04-29 17:35:24 +02:00
psi29a
a707f5b0e0
Merge branch 'portable' into 'master'
...
Make OpenMW more portable (follow up of !1555 )
See merge request OpenMW/openmw!1805
2022-04-28 19:35:29 +00:00
Mads Buvik Sandvei
606a795a54
multiview linker-method
2022-04-28 21:09:06 +02:00
madsbuvi
dd5901d351
Initial commit
...
Multiview shaders.
Refactor Frustum management
Rewrite shared shadow map
cull mask should respect stereo
Stereo savegame screencap
LocalMap refactoring
use the vertex buffer hint instead of the display list patch to enable/disable display lists
Character preview fixes
2022-04-28 21:05:34 +02:00
fredzio
bab5e56768
Make the launcher dara directory and bsa list play nicer with dark
...
themes.
Known issue: the padding icon for disabled data directories is of wrong
color.
2022-04-28 15:19:54 +02:00
Petr Mikheev
c7ab67c2c1
Allow relative paths in openmw.cfg; support --replace=config.
2022-04-28 00:39:41 +02:00
psi29a
07056802eb
Merge branch 'esmtool_tes4' into 'master'
...
Support esmtool dump for TES4
See merge request OpenMW/openmw!1800
2022-04-27 21:07:25 +00:00
psi29a
dad9f24867
Merge branch 'link-shaders' into 'master'
...
Shader linking
See merge request OpenMW/openmw!1803
2022-04-27 21:04:08 +00:00
psi29a
66a96bfa5e
Merge branch 'launcher-datadirs' into 'master'
...
Make launcher handle data dirs #2858 and BSA
See merge request OpenMW/openmw!192
2022-04-27 17:31:52 +00:00
madsbuvi
dc3045c970
mono-only version of the shader linking system introduced in the stereo MR
2022-04-26 19:54:24 +02:00
elsid
d2510284ec
Support TES4 in esmtool dump
2022-04-25 17:35:26 +02:00
elsid
4b28d51d5e
Remove virtual modifiers from ESM4 record functions
...
There is no need to have virtual functions.
2022-04-25 17:35:25 +02:00
elsid
2c9b6fffe5
Remove preloading logic from ESM4::Cell
...
This logic does not belong here. If client of ESM4::Cell needs to cache load
results it can be done separately.
2022-04-25 17:35:25 +02:00
elsid
13c970b37a
Add const modifier to encoder type
2022-04-25 17:35:25 +02:00
elsid
c7ba4100e1
Remove undefined and redundant ESM4 record type constructors
2022-04-25 17:35:25 +02:00
psi29a
c930aabf17
Merge branch 'fix_windows_build' into 'master'
...
Fix build on Windows
See merge request OpenMW/openmw!1796
2022-04-25 06:38:33 +00:00
elsid
0dcb1f5aac
Fix build on Windows
...
Use wrapper header over Windows.h to undefine far and near in a single place.
2022-04-25 00:25:46 +02:00
Petr Mikheev
eae1e87081
[Lua] Update openmw.storage
2022-04-23 18:55:12 +02:00
psi29a
f99f818c0c
Merge branch 'esm4_cleanup' into 'master'
...
ESM4 cleanup
See merge request OpenMW/openmw!1792
2022-04-23 15:27:28 +00:00
fredzio
b88d32ff5b
Add 3 tabs in the "Data Files" page
...
1 with the data directories
2 with the BSA archives
3 with the content selector
When user select a directory to be added, first we walk the directory
hierarchy to make a list of all potential data= entries. If we find
none, the selected directory is added.
If more than one data directory is found, user is presented with a
directory list to check which one(s) are to be added.
Directories containing one or more content file are marked with an icon.
data= and fallback-archive= lines are handled like content= lines:
- they are part of the profile in launcher.cfg, prefixed by the profile
name
- they are updated in openmw.cfg when profile is selected / created
Directories can be moved in the list by drag and drop or by buttons.
Insertion is possible anywhere in the list.
Global data path and data local are shown but are greyed out, as they
are always included.
No attempt is made to ensure that the user choice are valid
(dependencies, overwrite of content).
After a profile is loaded, any added content is highlighted in green.
2022-04-23 09:54:45 +02:00
elsid
4a49bc4941
Remove undefined constructor declaration
2022-04-23 01:27:45 +02:00
elsid
d71a1efa92
Rename components/esm4/acti.hpp -> components/esm4/loadacti.hpp
2022-04-23 00:40:45 +02:00
elsid
d5fb2f8091
Use ESM::fourCC to define ESM4 record types
2022-04-23 00:32:52 +02:00
elsid
761a04ce00
Remove duplicated enum definition
2022-04-23 00:32:52 +02:00
elsid
3abcf3dd0d
Fix style guide
2022-04-23 00:32:52 +02:00
elsid
94c1d0cced
Use unique_ptr to store istream
2022-04-22 18:27:17 +02:00
elsid
c94d8be7bf
Add generic StreamWithBuffer owning the underlying buffer
2022-04-22 18:27:17 +02:00
elsid
9d6d0c6ffb
Move ConstrainedStreamBuf into separate file
2022-04-22 18:27:17 +02:00
elsid
e777e35414
Use system_clock for time in logs
...
high_resolution_clock may not give real time. MSVC implements it as
steady_clock that is basically CPU time which is usually desynchronized with
real time.
2022-04-21 23:03:40 +02:00
psi29a
c14796fc57
Merge branch 'ncc' into 'master'
...
#6496 Handle NCC flag in Nif files
See merge request OpenMW/openmw!1516
2022-04-17 20:29:41 +00:00
fredzio
d05a2facf3
Handle NCC flag in Nif files. Objects with this flag will collide only with camera.
...
Expose objects with NC flag to be used by Lua mods.
2022-04-17 20:03:00 +02:00
Evil Eye
22d02e86b0
Respect ignored flag in navmeshtool and groundcover
2022-04-17 09:23:09 +02:00
Evil Eye
61ea678a96
Implement ignored records
2022-04-16 16:28:39 +02:00
elsid
fbc853804d
Fix recover from errors in Files::getHash
2022-04-15 21:43:54 +02:00
elsid
b09570692e
Use ifstream for ESMReader
...
ESMReader reads the whole file, there is no need in the ConstrainedFileStream.
2022-04-15 02:58:57 +02:00
psi29a
ea6b84ce1f
Merge branch 'fix_esm_loader_prepare_records' into 'master'
...
Fix loading order in EsmLoader (#6671 )
Closes #6671
See merge request OpenMW/openmw!1774
2022-04-14 18:26:40 +00:00
Petr Mikheev
45c9635e94
Fix getmetatable, fix pairsForReadonly, add util.loadCode, _G
2022-04-14 01:00:02 +02:00
elsid
194c11f214
Fix loading order in EsmLoader
...
Need to load the last present record from a sequence of loaded records. That
means reverse should be called before unique or unique should be applied for
a reversed range. Since unique keeps only the first element from a sub
sequence of equal elements.
Use forEachUnique with reversed range to avoid redundant container
modifications.
2022-04-13 09:33:24 +02:00
psi29a
9809b873a0
Merge branch 'esm_namespace_qualifiers' into 'master'
...
Remove ESM:: namespace qualifier in components/esm3/ and tests
See merge request OpenMW/openmw!1769
2022-04-12 08:08:31 +00:00
elsid
4447ab0ed7
Remove ESM:: namespace qualifier in components/esm3/ and tests
2022-04-12 02:04:24 +02:00
elsid
39da3bfef8
Ignore player when checking whether AiTravel destination is occupied by other actor
2022-04-11 19:30:54 +02:00
Bret Curtis
7fe6c39aa2
const the key/value
2022-04-11 16:59:46 +02:00
Bret Curtis
db3f9da08a
coverity fixes and other bits
2022-04-11 14:37:22 +02:00
psi29a
5820e5701a
Merge branch 'refactor/shadowtechnique' into 'master'
...
Cleanup code in mwshadowtechnique.cpp
See merge request OpenMW/openmw!1756
2022-04-11 11:15:27 +00:00
psi29a
03806eb75e
Merge branch 'esm_rm_redundant_include' into 'master'
...
Remove redundant include from esm3/esmreader.hpp
See merge request OpenMW/openmw!1761
2022-04-11 07:47:48 +00:00
psi29a
cf1764f255
Merge branch 'constrained_file_stream' into 'master'
...
Avoid redundant conversion to const char* and use make_shared
See merge request OpenMW/openmw!1763
2022-04-11 07:26:53 +00:00
elsid
6481324eb1
Read when need to skip few bytes
2022-04-11 01:55:05 +02:00
elsid
5eb8c4aebe
Avoid redundant conversion to const char* and use make_shared
2022-04-10 22:33:08 +02:00
elsid
db44f91fd5
Remove redundant include from esm3/esmreader.hpp
2022-04-10 22:16:32 +02:00
ζeh Matt
b39aea4346
Move extremeEdges into queue instead of copying
2022-04-10 20:56:52 +03:00
ζeh Matt
19df9c3d17
Use vector for edge queue
2022-04-10 20:38:59 +03:00
elsid
c3a924de23
Fix skip DATA in cell ref loading
2022-04-10 19:16:30 +02:00
ζeh Matt
0790af962e
Cleanup code in mwshadowtechnique.cpp
2022-04-10 20:16:15 +03:00
elsid
6b464a9330
Check ESMReader value size in compile time
2022-04-10 19:16:11 +02:00
Benjamin Winger
21ffbcc4b4
Lua i18n updates
2022-04-10 07:57:02 +00:00
elsid
4509b05bc8
Use std::make_shared instead of new
...
make_shared allocates single storage for ref counter and the object.
std::shared_ptr<T>(new T) allocates 2 storages.
2022-04-08 22:50:09 +02:00
elsid
bbfdb347bd
Skip load cell ref when there is no need
...
Primarily to avoid temporary allocations by ESMReader::getHString.
2022-04-08 19:16:38 +02:00
elsid
7038c82690
Configure mav navmeshdb file size from the launcher
2022-04-07 16:38:01 +02:00
psi29a
1ac7eaa6b0
Merge branch 'NiFltAnimationNode' into 'master'
...
Add NiFltAnimationNode support
Closes #6684
See merge request OpenMW/openmw!1732
2022-04-06 23:59:04 +00:00
psi29a
fc5605fc7f
Merge branch 'navmeshtool_binary_log' into 'master'
...
Send status of navmeshtool to launcher using type binary messages
See merge request OpenMW/openmw!1630
2022-04-06 23:40:45 +00:00
psi29a
f5bc78cac3
Merge branch 'lua_ui_flex' into 'master'
...
Lua UI Flex widget
Closes #6646
See merge request OpenMW/openmw!1743
2022-04-06 23:29:23 +00:00
psi29a
8d3d01902a
Merge branch 'optimizer' into 'master'
...
Optimizer-related fixes
See merge request OpenMW/openmw!1744
2022-04-06 23:00:17 +00:00
Wolfgang Lieff
373776170d
refactor for NiFltAnimationNode
2022-04-07 00:49:08 +02:00
Bret Curtis
af41560c3f
reverse the reverse flag check; set duration to 0.2f which matches openmw to morrowind speed which is measured in 1/5 seconds
2022-04-07 00:09:11 +02:00
Bret Curtis
0db5415976
refactor to use mInternal, support Flag_Reverse and updated changelog/authors.md
2022-04-07 00:09:11 +02:00
Wolfgang Lieff
ead73fce31
initial NiFltAnimationNode support
2022-04-07 00:09:11 +02:00
uramer
02bbd226b8
Less primary/secondary coordinate boilerplate in Flex
2022-04-06 23:36:44 +02:00
Petr Mikheev
eca64b48e8
Bitwise operations in Lua
2022-04-06 21:55:05 +02:00
Alexei Dobrohotov
eafa66ff40
Don't consider NiCollisionSwitch unoptimizeable
2022-04-06 06:42:06 +03:00
Alexei Dobrohotov
81e9212db9
Slightly optimize MergeGroupsVisitor's xenophobia
2022-04-06 06:37:42 +03:00
uramer
3c74a20335
Refactor horizontal/vertical cases in Flex
2022-04-05 17:51:04 +02:00
Alexei Dobrohotov
c28f997c87
Make NiPlanarCollider finite-size
2022-04-05 01:33:36 +03:00
Alexei Dobrohotov
9d8f6064a1
Detail the unused parts of controlled.cpp defs
2022-04-05 01:33:36 +03:00
uramer
788745e004
Make coordinate calculation more robust, implement Flex widget type
2022-04-04 23:10:03 +02:00
elsid
2d5ccc804b
Exchange binary messages between navmeshtool and launcher
2022-03-30 19:24:54 +02:00
Petr Mikheev
fbc84465c5
Merge branch 'futureproof_layers' into 'master'
...
Add layer size, make layers API more flexible
See merge request OpenMW/openmw!1724
2022-03-29 20:11:11 +00:00
psi29a
1f14f97d17
Merge branch 'navmeshdb_max_file_size' into 'master'
...
Limit max navmeshdb file size (#6649 )
Closes #6649
See merge request OpenMW/openmw!1716
2022-03-27 09:07:56 +00:00
psi29a
1542a0392c
Merge branch 'gloss' into 'master'
...
Gloss-mapping
Closes #6541
See merge request OpenMW/openmw!1552
2022-03-24 11:22:58 +00:00
uramer
5d1fe6c2bc
Add layer size, make layers API more flexible
2022-03-23 15:04:49 +01:00
psi29a
6d55317d57
Merge branch 'refactor/prng-2' into 'master'
...
Save random state and refactor usage of generators
See merge request OpenMW/openmw!1715
2022-03-23 09:50:54 +00:00
psi29a
d2f2393de8
Merge branch 'opacity_color_bindings' into 'master'
...
Bindings for image color and widget alpha (#6654 )
Closes #6654
See merge request OpenMW/openmw!1723
2022-03-23 08:32:15 +00:00
ζeh Matt
d7de17a1ac
Add a comment explaining the pick of the prng
2022-03-22 17:09:36 +02:00
Cody Glassman
b3e0275e89
Lua UI API: Let image manager handle missing textures
2022-03-22 05:41:26 +00:00
glassmancody.info
26c7e308ed
mygui bindings for color and alpha
2022-03-21 22:00:32 -07:00
ζeh Matt
5df76f5051
Remove unnecessary debug output
2022-03-21 17:49:42 +02:00
ζeh Matt
f8f3bb2421
Use std::minstd_rand and split serialization from save/load
2022-03-21 17:49:42 +02:00
ζeh Matt
151770ccf1
Separate global vs world rng functions and use custom prng
2022-03-21 17:49:42 +02:00
ζeh Matt
08fae7be6e
Pass the prng from world where appropriate
2022-03-21 17:49:42 +02:00
ζeh Matt
b502dc12f0
Add prng to World instance and serialize state in Save
2022-03-21 17:49:42 +02:00
uramer
8e81b6c645
Fix updating UI image resource
2022-03-19 21:26:02 +01:00
psi29a
40b1d81050
Merge branch 'order_please' into 'master'
...
Base dialogue order solely on mPrev
Closes #6670
See merge request OpenMW/openmw!1714
2022-03-19 12:24:42 +00:00
elsid
5b9dd10cbe
Limit max navmeshdb file size
...
Use "pragma max_page_count" to define max allowed file size in combination with
"pragma page_size" based on a new setting "max navmeshdb file size".
* Stop navmeshtool on the first db error.
* Disable writes to db in the engine on first "database or disk is full"
SQLite3 error. There is no special error code for this error.
* Change default "write to navmeshdb" to true.
* Use time intervals for transaction duration instead of number of changes.
2022-03-18 19:08:46 +01:00
Evil Eye
484a7c7b7e
Base dialogue order solely on mPrev
2022-03-16 18:09:21 +01:00
Petr Mikheev
fa115418eb
[Lua] Remove queries
2022-03-15 23:35:36 +01:00
Petr Mikheev
d251c4e2a1
[Lua] Change behavior of obj.type
2022-03-15 23:35:36 +01:00
uramer
36c46ada6f
Pass unhandled Lua UI events to the parent
2022-03-14 19:07:23 +00:00
AnyOldName3
696be1cc39
Merge branch 'fix_6589' into 'master'
...
Add default value for `user-data` in openmw.cfg
Closes #6589
See merge request OpenMW/openmw!1632
2022-03-13 18:51:34 +00:00
duncanspumpkin
3a117cac22
Switch to a constexpr for FourCC constant
...
Add static asssert on wrong size
2022-03-08 14:48:37 +00:00
jvoisin
8a182c130a
Merge branch 'refactor/prng' into 'master'
...
Refactor and rename some things around Misc::Rng
See merge request OpenMW/openmw!1710
2022-03-07 10:19:41 +00:00
Matt
54e114d83e
Avoid string copies for ESM::Variant::getString
2022-03-06 17:38:58 +00:00
ζeh Matt
d83a381f79
Refactor and rename some things around Misc::Rng
2022-03-06 17:28:28 +02:00
Martin Otto
96e48e5492
Make settings loader differentiate between engine and editor ( fixes #6658 ).
2022-03-04 09:44:52 +00:00
psi29a
3afa46b25e
Merge branch 'CPP20_support' into 'master'
...
Support C++20
See merge request OpenMW/openmw!1705
2022-03-01 11:11:37 +00:00
Bret Curtis
6601274992
constify weakcache overloaded operators
2022-03-01 10:53:01 +01:00
psi29a
3558196098
Merge branch 'Newer-Bsa-formats-no-longer-load' into 'master'
...
#6651 Newer bsa formats no longer load
Closes #6651
See merge request OpenMW/openmw!1703
2022-03-01 07:22:04 +00:00
Cédric Mocquillon
ff7ad93bac
Avoid missusing of CompressedBSAFile with private inheritance
2022-02-27 20:40:35 +01:00
uramer
67879bac55
MR feedack
2022-02-26 17:01:46 +01:00
Cédric Mocquillon
fe13fa850e
Fix bug on memorystream
2022-02-26 14:38:33 +01:00
uramer
a7bb87d8a1
Use StringUtils::format
2022-02-25 18:18:27 +01:00
uramer
e7ed709e5e
Fix Lua TextEdit skin
2022-02-25 18:18:26 +01:00
uramer
fc50724f5c
Render text and images correctly in templates with slots
2022-02-25 18:18:26 +01:00
uramer
e092ee2624
Document the Lua Image widget, add UI texture resources
2022-02-25 18:18:26 +01:00
elsid
42d6032c8b
Support compilation with c++20
2022-02-24 00:49:40 +01:00
elsid
3c66a927d8
Fix coverity issue about uninitialized members of LevelledListBase
...
* Remove explicit constructor.
* Use static constexpr where possible.
* Use CRTP to get RecName.
2022-02-23 20:39:05 +01:00
elsid
595c2e0a8e
Use unique_ptr to manage AiPackage lifetime
2022-02-23 00:39:30 +01:00
elsid
f516e34688
Remove used-defined constructors from ESM4 types
...
To avoid explicit initialization. It should happen in the load functions anyway.
* Move all non-zero initializations to corresponding class definition.
* Replace std::vector by std::array when it has constant size.
2022-02-22 20:11:45 +01:00
Petr Mikheev
ff7ac7192b
Merge branch 'ui_pairs' into 'master'
...
Implement pairs and ipairs for ui.content and ui.layers. Document all iterable types in a uniform way.
See merge request OpenMW/openmw!1643
2022-02-21 20:43:29 +00:00
uramer
a1abc84f59
Implement pairs and ipairs for ui.content and ui.layers. Document all iterable types in a uniform way.
2022-02-21 20:43:27 +00:00
uramer
cc6dce5443
Support controller touchpads (Resolves https://gitlab.com/OpenMW/openmw/-/issues/6639 )
2022-02-21 19:49:00 +00:00
jvoisin
a55f1ad103
Merge branch 'bullet_object_tool' into 'master'
...
Add a tool to load and print information about all bullet objects in all cells
See merge request OpenMW/openmw!1627
2022-02-20 14:09:26 +00:00
psi29a
b03f9e430c
Merge branch 'navmesh_disk_rm_unused_tiles' into 'master'
...
Add navmeshtool flag to remove unused tiles from navmesh disk cache
See merge request OpenMW/openmw!1671
2022-02-19 13:56:44 +00:00
psi29a
1c1581bdab
Merge branch 'check_esm4_compilation' into 'master'
...
Check ESM4 compilation
See merge request OpenMW/openmw!1677
2022-02-19 12:18:43 +00:00
psi29a
fd2b2e4871
Merge branch 'fix_esm4_quest_init' into 'master'
...
Remove user-defined constructor from ESM4::Quest
See merge request OpenMW/openmw!1676
2022-02-19 12:15:43 +00:00
psi29a
dbab48d7da
Merge branch 'nif' into 'master'
...
NIF stuff
See merge request OpenMW/openmw!1674
2022-02-19 12:12:40 +00:00
psi29a
6f5c6171dd
Merge branch 'navmeshdb_sqlite_open_nomutex' into 'master'
...
Use SQLITE_OPEN_NOMUTEX for navmeshdb
See merge request OpenMW/openmw!1673
2022-02-19 12:09:20 +00:00
elsid
57c1f2e231
Make sure everything compiles in ESM4
2022-02-19 02:52:49 +01:00
elsid
96463cbb02
Remove malformed and unused esm4/records.hpp file
2022-02-19 02:52:49 +01:00
elsid
cccfb14785
Remove user-defined constructor from ESM4::Quest
...
To avoid explicit initialization. It should happen in the load functions anyway.
2022-02-19 02:08:30 +01:00
Alexei Dobrohotov
54df5031b7
Add XYZ rotation axis order support
2022-02-19 02:22:08 +03:00
elsid
8b4362ece7
Disable navmesh disk cache when db is failed to open
2022-02-18 22:41:45 +01:00
elsid
5913036638
Use SQLITE_OPEN_NOMUTEX
2022-02-18 22:39:26 +01:00
Alexei Dobrohotov
76ba5025e3
Clarify root node transformation discard
2022-02-19 00:39:02 +03:00
elsid
ab1a6e034e
Add navmeshtool flag to remove unused tiles from navmesh disk cache
...
* Remove tiles outside processing range. Useful when new content profile map
has different bounds.
* Remove ignored tiles. For a case when content profile maps have intersection
but there is no more data for navmesh.
* Remove older tiles at the same worldspace position. If navmesh tile data has
changed with new content, the old ones unlikely to be used.
* Vacuum the database when there are modifications. SQLite leaves empty pages
in the file on database modification. Vacuum cleans up unused pages reducing
the file size.
2022-02-18 21:57:23 +01:00
elsid
67741402b5
Replace reference to const std::string by std::string_view for navmeshdb related arguments
2022-02-18 21:45:50 +01:00
elsid
52b3a87dae
Make constexpr variable defined in header inline
2022-02-18 21:01:53 +01:00
elsid
9584cb7ac2
Use fixed size types for serialization
2022-02-18 21:01:53 +01:00
Alexei Dobrohotov
dd473d06df
Implement gloss-mapping (feature #6541 )
2022-02-18 06:24:06 +03:00
psi29a
b011809056
Merge branch 'master' into 'sort_me_baby_one_more_time'
...
# Conflicts:
# components/nif/niffile.cpp
2022-02-17 09:24:50 +00:00
psi29a
b73eaadf20
Merge branch 'use_utf8_string_view' into 'master'
...
Avoid extra copy for Utf8Encoder::getUtf8 result
See merge request OpenMW/openmw!1661
2022-02-16 20:58:12 +00:00
psi29a
3af037d2ae
Merge branch 'esm4' into 'master'
...
ESM4 Support
See merge request OpenMW/openmw!1610
2022-02-16 20:57:24 +00:00
elsid
b96c41df07
Initialize string_view with explicit size
...
Otherwise size is detected by null terminating character.
2022-02-16 17:11:25 +01:00
Bret Curtis
0f43455dc3
merge in master
2022-02-16 16:57:59 +01:00
elsid
139ae9325a
Fix compile errors by using StatelessUtf8Encoder
2022-02-16 16:41:23 +01:00
elsid
4a06351c3b
update to_utf8 and translation to make use of new stateless utf8
2022-02-16 10:48:49 +01:00
elsid
875d9dcead
Fix buffer resizing by StatelessUtf8Encoder
2022-02-15 23:02:32 +01:00
psi29a
8a0fb4d633
Merge branch 'stateless_utf8_encoder' into 'master'
...
Add StatelessUtf8Encoder to support caller provided buffer for output
See merge request OpenMW/openmw!1660
2022-02-15 08:35:31 +00:00
psi29a
776b286286
Merge branch 'esm_name' into 'master'
...
Use ESM::NAME instead of const char* and std::string as argument type
See merge request OpenMW/openmw!1659
2022-02-15 08:11:12 +00:00
elsid
3305b400dc
Use ESM::NAME instead of const char* and std::string as argument type
2022-02-14 23:40:40 +01:00
elsid
c044bef6a7
Add StatelessUtf8Encoder to support caller provided buffer for output
2022-02-14 23:19:49 +01:00
elsid
fbbf871067
Avoid extra copy for Utf8Encoder::getUtf8 result
2022-02-14 23:01:32 +01:00
elsid
b617d0aec4
Merge branch 'fix_empty_utf8' into 'master'
...
Fix out of bounds access for std::string_view
See merge request OpenMW/openmw!1658
2022-02-14 21:42:10 +00:00
elsid
071ab3f650
Fix out of bounds access for std::string_view
2022-02-14 19:56:50 +01:00
Evil Eye
649c2f8286
Fix stats not working right for saves started before version 17
2022-02-14 18:38:37 +01:00
psi29a
149ef56b60
Merge branch 'utf8_encoder_tests' into 'master'
...
Add tests for Utf8Encoder
See merge request OpenMW/openmw!1654
2022-02-14 06:39:39 +00:00
elsid
7884a01026
Add tests for Utf8Encoder
2022-02-13 17:19:08 +01:00
psi29a
a2a741c71f
Merge branch 'lua_require' into 'master'
...
Allow `require` to return not a table in Lua
See merge request OpenMW/openmw!1650
2022-02-13 15:30:37 +00:00
psi29a
cd8967e265
Merge branch 'utf8_encoder_string_view' into 'master'
...
Use std::string_view for argument and return type of Utf8Encoder functions
See merge request OpenMW/openmw!1652
2022-02-12 18:07:26 +00:00
elsid
c75e938c46
Return string_view from Utf8Encoder functions
...
To avoid redundant std::string constructions.
2022-02-12 17:11:54 +01:00
elsid
c9c7fb7e49
Remove redundant functions from Utf8Encoder interface
2022-02-12 13:47:46 +01:00
Petr Mikheev
6876851766
Allow require
to return not a table in Lua
2022-02-12 12:02:17 +01:00
elsid
2a87cf1720
Replace unordered_map by switch statement
...
Add handling for missing Nif::BSLightingShaderType::ShaderType_SkinTint. Use
string_view instead of string to avoid lifetime issues for returning value.
osg::Object::setUserValue will anyway copy string.
2022-02-11 22:12:39 +01:00
elsid
e1fe501013
Use proper type for Record::recType
2022-02-11 21:52:00 +01:00
elsid
283b68025c
Avoid possible race condition on NIFFile::sLoadUnsupportedFiles
...
Its value is written from the main thread but other threads read it.
2022-02-11 21:41:08 +01:00
elsid
fbd95516f4
Repalce raw for-loops by corresponding algorithms
2022-02-11 21:41:08 +01:00
elsid
082810f924
Store record type as a part of construct function type
2022-02-11 21:41:08 +01:00
elsid
d097c16206
Use unique_ptr to manage nif record lifetime
2022-02-11 20:40:38 +01:00
glassmancody.info
712107de2d
nisortadjust support
2022-02-10 11:59:49 -08:00
uramer
ede9d27437
Element-wise multiplication and division of Lua vectors
2022-02-10 19:43:27 +00:00
Alexei Dobrohotov
85053941b3
Properly postprocess NiSortAdjustNode
2022-02-09 13:55:32 +03:00
psi29a
9183fa897e
Merge branch 'particle_vertex_palooza' into 'master'
...
Support vertex emitters (#6592 )
Closes #6592
See merge request OpenMW/openmw!1638
2022-02-09 08:35:09 +00:00
glassmancody.info
27d2daabc1
move depth define to header, missing on mac
2022-02-08 14:12:17 -08:00
glassmancody.info
a05e029aa0
search for stencil enabled flag correctly
2022-02-08 13:49:05 -08:00
glassmancody.info
88f02913d5
use vertex emitters on array particle controllers when appropriate
2022-02-07 19:46:42 -08:00
glassmancody.info
8c2c322d92
add stencil to water RTTs, reword some comments
2022-02-07 14:35:15 -08:00
glassmancody.info
bbc9c53423
support morrowind stenciling
2022-02-07 11:51:59 -08:00
Evil Eye
7a7a95407a
Merge branch 'lua_pairs' into 'master'
...
Proper support of `pairs` and `ipairs` in Lua; fix bug in `makeReadOnly`.
See merge request OpenMW/openmw!1628
2022-02-06 22:10:21 +00:00
Petr Mikheev
a294adcdaf
Proper support of pairs
and ipairs
in Lua; fix bug in makeReadOnly
.
2022-02-06 22:10:20 +00:00
Petr Mikheev
5f74df75c6
Add default value for config
.
2022-02-06 23:09:06 +01:00
uramer
581c3f4882
Update and document Lua Text and TextEdit widget types, fix some issues with Lua UI
2022-02-06 20:22:38 +00:00
Petr Mikheev
ac5cd6c80a
Add default value for user-data
in openmw.cfg
2022-02-06 21:07:14 +01:00
elsid
e7f3524924
Add a tool to load and print information about all bullet objects in all cells
2022-02-04 16:14:52 +01:00
psi29a
becffef142
Merge branch 'cull_navmesh_objects' into 'master'
...
Cull navmesh objects by scene bounds (#5858 )
Closes #5858
See merge request OpenMW/openmw!1625
2022-02-04 14:07:13 +00:00
elsid
0b644a897e
Explicitly bind TileCachedRecastMeshManager with mutex
2022-02-03 22:24:26 +01:00
elsid
05b54cbfb8
Cull navmesh objects by scene bounds
...
If object is too big iteration over all tiles covering it can take too much
time. Limit bounds to a square around a player position to cover only tiles
that will be present in navmesh based on max tiles number option.
Each object is associated with a set of tiles its present in. Culling can
reduce this set but it has to be update when bounds change position. Do this
in TileCachedRecastMeshManager::setBounds updating the set and adding/removing
objects to the corresponding CachedRecastMeshManagers.
2022-02-03 22:09:37 +01:00
elsid
563f3f87dd
Reduce critical sections size
2022-02-03 21:44:37 +01:00
elsid
a5b078e9a7
Allow to represent empty range with TilesPositionsRange
2022-02-03 21:43:56 +01:00
elsid
1b2954f2db
Remove unused z coordinate
2022-02-03 21:43:53 +01:00
elsid
1a52a2a029
Clamp tile position
2022-02-03 02:44:04 +01:00
elsid
542717394a
Remove objects, water and heightfields when no longer required
2022-02-03 02:43:35 +01:00
Petr Mikheev
6084dbfc3a
Add a warning if replace==config is used.
2022-02-03 00:07:30 +01:00
Petr Mikheev
5b23ba3faf
Fix defaulted
in ConfigurationManager::mergeComposingVariables
2022-02-02 23:47:11 +01:00
Petr Mikheev
9c1ff16b62
Add config variable user-data="?userdata?"
. Allows to override paths to saves and screenshots.
2022-02-02 23:47:11 +01:00
Petr Mikheev
5ff2fc55ac
Make ConfigurationManager::getUserConfigPath to return the actual config path where the settings, logs, and Lua storage are stored.
2022-02-02 23:47:11 +01:00
Petr Mikheev
a453e5c198
Reuse the same code to load settings in apps/openmw, apps/launcher, apps/opencs
2022-02-02 23:47:11 +01:00
Petr Mikheev
1bcc4a8bcc
Read settings.cfg from all active config dirs
2022-02-02 23:47:11 +01:00
Petr Mikheev
5ca56a4f8a
New option "config" for specifying additional config directories.
2022-02-02 23:47:11 +01:00
Petr Mikheev
dd5ba5c57b
Redirect log only after parsing configuration
2022-02-02 23:47:11 +01:00
psi29a
cf8d49bb9a
Merge branch 'lua_settings_ui' into 'master'
...
Lua settings UI
Closes #6454
See merge request OpenMW/openmw!1595
2022-02-02 21:04:18 +00:00
Alexei Dobrohotov
142b6fdf2f
Fix double precision bound issues in std::max/std::clamp
2022-02-02 16:57:59 +03:00
Alexei Dobrohotov
aaea2bc0f6
Implement transformBoundingSphere for both sphere types (bug #6579 )
2022-02-02 16:51:35 +03:00
uramer
ef1e72dc17
Revert from settings description to searchHints
2022-02-01 19:50:03 +01:00
uramer
7f796d148e
Clean up
2022-02-01 19:50:03 +01:00
uramer
67641dcdb7
Fix compile errors
2022-02-01 19:50:03 +01:00
uramer
f07f05ddd3
Add Container widget type, use it to make Adapter code less hacky
2022-02-01 19:50:03 +01:00
uramer
086a7d9bc5
Wrap Lua settings widgets into an Adapter widget
2022-02-01 19:50:03 +01:00
uramer
1455aa3e02
Allow changing script settings pages after registering them
2022-02-01 19:50:02 +01:00
uramer
5f7ab49880
Implement script setting pages' descriptions
2022-02-01 19:50:02 +01:00
uramer
a005f25c4b
Use page terminology for script settings
2022-02-01 19:50:02 +01:00
uramer
e78b8402fa
Fix warnings
2022-02-01 19:50:02 +01:00
uramer
a972a54ea9
Allow changing element root widget type, prevent use after free in script settings
2022-02-01 19:50:02 +01:00
uramer
fba82eb1a7
Script settings tab
2022-02-01 19:50:02 +01:00
Bret Curtis
8113620dce
handle a few wearnings raised as errors
2022-01-31 08:58:45 +01:00
cc9cii
ba3ae448d4
Initial import of esm4 by cc9cii
2022-01-31 08:58:45 +01:00
elsid
7ea5aa250b
Revert "Cull navmesh objects by scene bounds"
...
This reverts commit b0ef20c303
.
2022-01-30 21:43:23 +01:00
jvoisin
d291b17c68
Merge branch 'refactor/script-cleanup' into 'master'
...
Use pop_back to shrink the stack
See merge request OpenMW/openmw!1597
2022-01-30 18:50:01 +00:00
jvoisin
4cd6d2dacf
Merge branch 'rework_fixed_string' into 'master'
...
Rework fixed string
See merge request OpenMW/openmw!1596
2022-01-30 18:47:06 +00:00
psi29a
e18393d7d6
Merge branch 'prevent_wrong_use_of_write' into 'master'
...
Disallow to call ESMWriter::writeT with pointer type
See merge request OpenMW/openmw!1609
2022-01-30 16:34:45 +00:00
psi29a
ff11377bc0
Merge branch 'sanitizers' into 'master'
...
Add gitlab jobs to run tests and benchmarks with ASAN, TSAN and UBSAN
See merge request OpenMW/openmw!1608
2022-01-30 13:59:54 +00:00
elsid
b17c9a22ff
Disallow to call ESMWriter::writeT with pointer type
...
This will make ESMWriter to use a pointer to this pointer to access the data
that is unlikely an intent. For example:
68ef96410c
.
2022-01-30 14:13:02 +01:00
Petr Mikheev
4554a075e7
Merge branch 'fix_save_corruption' into 'master'
...
Fix save corruption introduced by https://gitlab.com/OpenMW/openmw/-/merge_requests/1600
See merge request OpenMW/openmw!1607
2022-01-30 11:59:30 +00:00
uramer
de2383ec98
Fix save corruption introduced by https://gitlab.com/OpenMW/openmw/-/merge_requests/1600
2022-01-30 11:59:30 +00:00
elsid
bebeff8881
Fix build with libc++
...
/home/elsid/dev/openmw/components/esm3/objectstate.cpp:33:30: error: implicit instantiation of undefined template 'std::array<float, 6>'
std::array<float, 6> pos;
^
/usr/bin/../include/c++/v1/__tuple:219:64: note: template is declared here
template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array;
^
/home/elsid/dev/openmw/components/esm3/objectstate.cpp:78:30: error: implicit instantiation of undefined template 'std::array<float, 6>'
std::array<float, 6> pos;
^
/usr/bin/../include/c++/v1/__tuple:219:64: note: template is declared here
template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array;
^
2022-01-30 02:19:29 +01:00
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;
| ~~^~~~~~~~
2022-01-30 00:44:22 +01:00
psi29a
7bab714825
Merge branch 'fix_circling_fargoth' into 'master'
...
Remove unnecessary loops from path (#6510 )
Closes #6510
See merge request OpenMW/openmw!1584
2022-01-29 19:48:02 +00:00
psi29a
a0c0ea09b2
Merge branch 'youwe' into 'master'
...
Fix unavailable UV set handling in NIF models
See merge request OpenMW/openmw!1594
2022-01-29 19:42:17 +00:00
psi29a
cb4c96b155
Merge branch 'unpack_position' into 'master'
...
Make ESM::Position not packed (should fix #6566 )
Closes #6566
See merge request OpenMW/openmw!1600
2022-01-29 12:46:10 +00:00
elsid
ecbcdd0e54
Add missing initialization
2022-01-29 06:31:14 +01:00
Petr Mikheev
68ef96410c
Make ESM::Position not packed (should fix #6566 )
2022-01-29 02:32:58 +01:00
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.
2022-01-28 18:39:09 +01:00
ζeh Matt
1832ed6a48
Use pop_back to shrink the stack
2022-01-28 16:26:43 +02:00
Petr Mikheev
53f2dfd1c0
Merge branch 'lua_ui_templates' into 'master'
...
Lua UI templates
See merge request OpenMW/openmw!1475
2022-01-28 09:31:46 +00:00
uramer
960dd1f708
Lua UI templates
2022-01-28 09:31:45 +00:00
elsid
3877d227f4
Avoid unnecessary copies
2022-01-28 01:07:27 +01:00
Alexei Dobrohotov
4521d3987c
Fix out of bounds UV set handling
2022-01-28 01:15:15 +03:00
psi29a
84e209308d
Merge branch 'refactor/interpreter' into 'master'
...
Cleanup interpreter code a bit
Closes #6553
See merge request OpenMW/openmw!1556
2022-01-27 19:18:57 +00:00
Matt
34723c8ea8
Cleanup interpreter code a bit
2022-01-27 19:18:57 +00:00
psi29a
6f7a067e0c
Merge branch 'esmrename' into 'master'
...
esm refactor work
See merge request OpenMW/openmw!1575
2022-01-27 17:52:42 +00:00
psi29a
21ef9d4058
Merge branch 'nif_multi_parents' into 'master'
...
Support multiple parents for NIF nodes (#6552 )
Closes #6552
See merge request OpenMW/openmw!1577
2022-01-25 19:17:19 +00:00
elsid
9069e97dce
Filter out triangles with NaN coordinates
...
Sorting a vector with such values gives invalid result because comparison with
NaN is always false.
2022-01-25 17:08:52 +01:00
elsid
b0ef20c303
Cull navmesh objects by scene bounds
...
If object is too big iteration over all tiles covering it can take too much
time. Limit bounds to a square around a player position to cover only tiles
that will be present in navmesh based on max tiles number option.
2022-01-25 17:08:45 +01:00
elsid
bba7beb0c5
Split tiles position range creation and iteration over
2022-01-25 16:34:03 +01:00
elsid
12ce82980c
Revert "Limit and filter navmesh input ( #5858 )"
...
This reverts commit ecc654a369
.
2022-01-25 16:33:53 +01:00
Evil Eye
903ef60f9d
Merge branch 'navmesh_scene_bounds' into 'master'
...
Limit and filter navmesh input (#5858 )
Closes #5858
See merge request OpenMW/openmw!1583
2022-01-25 14:06:53 +00:00
elsid
ecc654a369
Limit and filter navmesh input ( #5858 )
2022-01-25 14:06:53 +00:00
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.
2022-01-24 22:32:04 +01:00
Petr Mikheev
067d71f7eb
Fix heap use after free in components/lua/storage.cpp
2022-01-23 22:37:04 +01:00
Bret Curtis
74e7cfc023
remove unused includes: part1
...
remove unused imports: part2
revert one tidy we will keep for c++20
2022-01-23 17:30:25 +01:00
Bret Curtis
cdbab2325f
rename esmterrain to esm3terrain
2022-01-23 17:19:30 +01:00
Bret Curtis
a126e29a19
relative to absolute path
2022-01-23 17:04:48 +01:00
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
2022-01-23 17:04:48 +01:00
elsid
3f14011087
Support multiple parents for NIF nodes
...
Choose a parent base on which node is used to iterate over children nodes.
This leads to duplicate handing of child nodes. A node will be handled so many
times how many parents it has.
For example:
p1 p2
\ /
c
Will be handled as:
p1 p2
| |
c c
If c has children they will be handled X times c is handled.
2022-01-22 01:02:31 +01:00
psi29a
6eb36c6b76
Merge branch 'ripple_fix' into 'master'
...
Restore ripples with soft particles
See merge request OpenMW/openmw!1566
2022-01-19 11:32:38 +00:00
Cody Glassman
9cafc31c0d
Restore ripples with soft particles
2022-01-19 11:32:38 +00:00
elsid
a2002bc983
Support frequency of ProgressReporter calls lower than interval
2022-01-19 01:10:58 +01:00
Petr Mikheev
9d0e427ec1
Merge branch 'dispose_lua_ui_correctly' into 'master'
...
Dispose Lua UI elements correctly
See merge request OpenMW/openmw!1561
2022-01-18 08:12:56 +00:00
uramer
cc528d2e08
Dispose Lua UI elements correctly
2022-01-18 08:12:56 +00:00
uramer
d1d8f058ac
Lua bindings for Colours
2022-01-17 22:35:06 +00:00
uramer
c07fb75bf7
Merge branch 'lua_settings' into 'master'
...
Permanent storage for Lua
See merge request OpenMW/openmw!1489
2022-01-15 21:52:09 +00:00
Petr Mikheev
97d56e198f
Use double precision for vectors serialization in Lua
2022-01-15 11:25:30 +01:00
ζeh Matt
ba30b37bb4
Add missing include to unordered_map
2022-01-13 22:46:00 +02:00
Petr Mikheev
a182fdeea1
Permanent storage for Lua data
2022-01-11 11:21:03 +01:00
Petr Mikheev
2d1b100239
Change terminology of gameSecond/gameHour to simulationTime/gameTime
2022-01-10 21:03:35 +01:00
Josquin Frei
d9672f7d46
Add serialization for TransformM and TransformQ
2022-01-10 12:42:03 +00:00
Alexei Dobrohotov
b5a7ad6d62
Fix multilayer parallax parameter reading
2022-01-08 01:58:52 +03:00
psi29a
d8d7a3b372
Merge branch 'softparticles_patch' into 'master'
...
Shadervisitor adjustments and Mac OS fix for soft particles
See merge request OpenMW/openmw!1380
2022-01-06 13:13:52 +00:00
psi29a
1d4de71d35
Merge branch 'fix2' into 'master'
...
Fixes in components/lua
Closes #6535
See merge request OpenMW/openmw!1538
2022-01-06 08:49:17 +00:00
psi29a
555e0b1f53
Merge branch 'brainfreeze' into 'master'
...
Attempt to catch freezes on Windows
See merge request OpenMW/openmw!1493
2022-01-06 08:47:23 +00:00
Petr Mikheev
6a19a66ae5
Fix #6535
2022-01-05 20:08:03 +01:00
Petr Mikheev
5eca122f04
Avoid creating multiple i18n contexts with the same name.
2022-01-05 19:50:52 +01:00
psi29a
bafde5c9c4
Merge branch 'cleanup' into 'master'
...
Remove constant conditions
See merge request OpenMW/openmw!1527
2022-01-05 10:48:13 +00:00
psi29a
8355153047
Merge branch 'const_looop' into 'master'
...
Fix "warning: loop variable is copied but only used as const reference;...
See merge request OpenMW/openmw!1530
2022-01-05 10:44:44 +00:00
jvoisin
1a6be08149
Fix "warning: loop variable is copied but only used as const reference;...
2022-01-05 10:44:44 +00:00
psi29a
24b9c91ef8
Merge branch 'fix_copy_init' into 'master'
...
Fix unnecessary-copy-initialization
See merge request OpenMW/openmw!1531
2022-01-05 09:05:57 +00:00
glassmancody.info
2c52695361
fix regression where LEQUAL was used instead of LESS for depth function
2022-01-04 12:23:37 -08:00
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.
2022-01-04 20:42:09 +01:00
Evil Eye
5a7a3a0d2d
Silence a signed/unsigned mismatch warning
2022-01-04 17:11:55 +01:00
Evil Eye
bdfad27e05
Remove constant conditions
2022-01-04 16:50:04 +01:00
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
2022-01-04 10:27:48 +00:00
Petr Mikheev
0f246e7365
Use a separate instance of Lua i18n for every context
2022-01-02 09:58:51 +01:00
AnyOldName3
14a330609f
ShaderVisitor improvements
...
* Adds comments explaining the less-than-obvious aspects.
* Adds comments explaining what to do when adding new stuff.
* Some fixes caused by those comments not historically existing.
* Add a TODO comment to something which may catch fire in the future.
2021-12-29 13:45:42 -08:00
Evil Eye
6f870a464b
Replace magic numbers with enums
2021-12-29 12:34:12 +00:00
Evil Eye
debdcf2953
Don't touch base stats when turning into a werewolf
2021-12-27 00:47:33 +01:00
Evil Eye
93e355801d
Merge branch 'fix' into 'master'
...
Fix compilation error on windows: cannot convert from 'std::filesystem::path'...
See merge request OpenMW/openmw!1510
2021-12-26 18:04:21 +00:00
Petr Mikheev
7fe5351f55
Fix compilation error on windows: cannot convert from 'std::filesystem::path'...
2021-12-26 18:04:20 +00:00
Evil Eye
ea5bd822c2
Merge branch 'rehashrehashing' into 'master'
...
Rehash morph loading rehashing
See merge request OpenMW/openmw!1509
2021-12-26 17:09:44 +00:00
Evil Eye
ac747f02f3
Don't teleport NPCs to unknown cells
2021-12-26 15:27:25 +00:00
Alexei Dobrohotov
9b2978f143
Rehash morph loading rehashing
2021-12-26 17:56:19 +03:00
psi29a
4e3e2598a2
Merge branch 'fix_6502' into 'master'
...
Fix #6502
Closes #6502
See merge request OpenMW/openmw!1491
2021-12-26 12:40:38 +00:00
AnyOldName3
fa05b0b96c
Include <atomic>
...
Should fix compilation on CI
2021-12-26 02:10:37 +00:00
AnyOldName3
0e29a760d8
Tidy up includes
2021-12-26 02:09:14 +00:00
psi29a
04346b43b0
Merge branch 'keychain' into 'master'
...
Rehash key group and morph loading (bug #6517 )
Closes #6517
See merge request OpenMW/openmw!1500
2021-12-25 15:58:57 +00:00
Evil Eye
c1f59b1221
Automatically drop workaround when the format is next updated
2021-12-24 23:17:50 +01:00
Alexei Dobrohotov
26dfce1114
Rehash key group and morph loading (bug #6517 )
2021-12-24 07:21:30 +03:00
Petr Mikheev
b06248a31f
Fix #6502
2021-12-23 12:33:14 +01:00
AnyOldName3
f05cd901cf
Show messagebox while OpenMW appears to be frozen
...
If it thaws, the messagebox disappears again.
The user can press the Abort button to kill OpenMW and generate a crash
dump.
2021-12-21 23:19:13 +00:00
AnyOldName3
d15c2922a9
Stop monitoring closed windows
...
If it gets repalced, the new one will be watched instead
2021-12-20 22:24:47 +00:00
AnyOldName3
97396da74c
Get rid of break
...
It might look confusing with the breaks in the switch below
2021-12-20 22:23:44 +00:00
AnyOldName3
fe1523d16d
Fix signed/unsigned mismatch
2021-12-20 22:13:11 +00:00
AnyOldName3
c746a8abb7
Attempt to catch freezes on Windows
2021-12-18 21:34:15 +00:00
psi29a
844266b58e
Merge branch 'restrict_navmesh_cache_writes' into 'master'
...
Do not write shapes to navmeshdb when writing is disabled (#6498 )
Closes #6498
See merge request OpenMW/openmw!1486
2021-12-17 07:28:53 +00:00
elsid
aaf6c82e33
Do not write shapes to navmeshdb when writing is disabled
2021-12-16 22:57:35 +01:00
uramer
3f52ede9cb
Remove unnecessary myguicompat
2021-12-16 19:48:10 +01:00
uramer
2bc81e47a6
Remove all MyGUI version checks
2021-12-16 19:22:07 +01:00
AnyOldName3
d66907ba67
Log OpenGL Vendor, Renderer and Version on startup
2021-12-15 22:17:38 +00:00
psi29a
a57df67d09
Merge branch 'include' into 'master'
...
Add missing include
Closes #6357
See merge request OpenMW/openmw!1480
2021-12-15 13:11:48 +00:00
Petr Mikheev
7549496162
A few small fixes + expose makeReadOnly to Lua + an option to apply makeReadOnly during deserialize
2021-12-15 02:38:54 +01:00
Evil Eye
b834527813
Add missing include
2021-12-14 21:36:11 +01:00
uramer
c865114b9b
Lua UI Layers
2021-12-14 17:38:06 +00:00
psi29a
2988ab55d5
Merge branch 'navmeshtool' into 'master'
...
Navmesh disk cache (#6189 )
Closes #6189
See merge request OpenMW/openmw!1058
2021-12-11 16:32:08 +00:00
Alexei Dobrohotov
a64057fb36
Some NIF cleanup
...
Clean up keyframe controller construction
Make LOD and switch node generation static
Clarify decal map implementation
2021-12-11 16:16:16 +03:00
elsid
96eb8d7be9
Write generated navmesh to navmeshdb
...
Perform all request to db in a single thread to avoid blocking navmesh
generator threads due to slow write operations.
Write to db navmesh for all changes except update as it done for memory cache.
Batch multiple db operations into a single transaction to speed up writing by
not executing fsync after each insert/update query. All reads are performed in
the same transaction so they see uncommited data.
2021-12-11 00:22:04 +01:00
elsid
9e0451c714
Support navmesh generation from launcher
2021-12-11 00:22:04 +01:00
elsid
c9b8ba7b46
Read navmesh tile data from database
...
When tile is not found in memory cache try to find it in the database.
2021-12-11 00:22:04 +01:00
elsid
953a4c5550
Add a binary to generate navmesh from content files
...
Load content files based on the engine config files. Generate navmesh per cell
for all cells and store into SQLite database.
2021-12-11 00:21:56 +01:00
elsid
b5c689976e
Serialize arithmetic and enum types in little endian encoding
2021-12-10 23:55:04 +01:00
elsid
23ad1b2b9f
Move enum related serialization logic from format to visitors
2021-12-10 23:55:04 +01:00
elsid
5325495f46
Move serialization detournavigator/ -> components/
2021-12-10 23:55:04 +01:00
elsid
01c712d5f1
Split navigator settings into subtypes
...
Mostly to distinguish settings that affect properties of the generated navmesh.
2021-12-10 23:55:03 +01:00
elsid
33bb18850d
Move operator<< to debug.hpp
2021-12-10 23:55:03 +01:00
elsid
5a6b39f8e0
Store mesh source data in recast mesh
2021-12-10 23:55:02 +01:00
psi29a
4883cbf590
Merge branch 'detain-hash-selectively-reluctant' into 'master'
...
Get rid of EscapeHashX classes option 5 (attempt 2): Use boost::filesystem::path rules if the path starts with ", and consume the whole thing verbatim otherwise
Closes #5804
See merge request OpenMW/openmw!1436
2021-12-10 08:38:06 +00:00
psi29a
3baf966219
Merge branch 'msvc-only-precompile' into 'master'
...
Only precompile headers with MSVC
See merge request OpenMW/openmw!1467
2021-12-09 18:10:47 +00:00
AnyOldName3
8fc09f8c51
Merge remote-tracking branch 'upstream/master' into detain-hash-selectively-reluctant
...
Merge conflicts included:
* One setting being removed (branch had changed its type).
* One setting's description being changed (branch had changed its type).
* List of files in components/files was changed both upstream and on the
branch.
* Upstream had changed something in a file the branch deletes.
2021-12-09 17:09:52 +00:00
AnyOldName3
221e425fe6
Only precompile headers with MSVC
2021-12-09 14:59:17 +00:00
elsid
5129ab39fc
Check extension in lower case
2021-12-09 00:06:33 +01:00
psi29a
e04e139f37
Merge branch 'navmesh_raw' into 'master'
...
Add to navigator unmodified water and heightfield data
See merge request OpenMW/openmw!1373
2021-12-08 13:36:17 +00:00
psi29a
59ab947f3b
Merge branch 't800' into 'master'
...
Keep only one '\0' in NIF strings (bug #6473 )
Closes #6473
See merge request OpenMW/openmw!1458
2021-12-06 14:45:57 +00:00
psi29a
6c7dc2d72f
Merge branch 'assorted' into 'master'
...
Load NiSortAdjustNode and NiAccumulators
See merge request OpenMW/openmw!1396
2021-12-06 13:49:47 +00:00
Alexei Dobrohotov
dd15b30a27
Keep only one '\0' in NIF strings (bug #6473 )
2021-12-05 15:56:58 +03:00
Petr Mikheev
c5e10dfa85
Merge branch 'refactor_sdlmappings' into 'master'
...
Move SDL-MyGUI input mappings to components, map both ways
See merge request OpenMW/openmw!1444
2021-12-04 12:16:38 +00:00
uramer
15c7bddd57
Move SDL-MyGUI input mappings to components, map both ways
2021-12-04 12:16:38 +00:00
Petr Mikheev
d3df3efaf1
Precompile sol.hpp in order to reduce compilation time.
2021-12-04 11:32:39 +00:00
elsid
7dcb219ecf
Add raw heightfield data to navigator
2021-12-03 01:16:15 +01:00
elsid
8571c317d8
Add raw water data to navigator
2021-12-03 01:16:15 +01:00
elsid
f4f4458d01
Calculate recast mesh bounds when building navmesh
2021-12-03 01:16:15 +01:00
elsid
e10bbb9ad7
Shift heightfield and water in navigator tests
2021-12-03 01:16:15 +01:00
uramer
e65c946452
Add a data field to Lua UI layouts
2021-12-02 21:52:29 +00:00
psi29a
7256654f29
Merge branch 'navmesh_render' into 'master'
...
Rework navmesh render (#6187 )
See merge request OpenMW/openmw!1338
2021-12-02 10:34:41 +00:00
psi29a
a9008d224a
Merge branch 'light_refactors' into 'master'
...
LightManager consolidation
Closes #6389
See merge request OpenMW/openmw!1400
2021-11-30 16:02:28 +00:00
psi29a
e221013692
Merge branch 'recalculate-projection-matrix-on-window-resize' into 'master'
...
Recalculate the Projection Matrix every time the window is resized.
See merge request OpenMW/openmw!1382
2021-11-30 16:00:31 +00:00
OnlyForF1
c5b33185b5
Recalculate the Projection Matrix every time the window is resized.
2021-11-30 16:00:30 +00:00
psi29a
cb38ec7e7f
Merge branch 'fix_unity_build' into 'master'
...
Fix unity build (#6436 )
Closes #6436
See merge request OpenMW/openmw!1417
2021-11-30 15:53:39 +00:00
psi29a
a332dec681
Merge branch 'fix_esm_loader' into 'master'
...
Load only supported content formats by EsmLoader
See merge request OpenMW/openmw!1427
2021-11-30 15:51:22 +00:00
psi29a
a15cc0959f
Merge branch 'murmur_hash' into 'master'
...
Use MurmurHash3_x64_128 for Files::getHash
See merge request OpenMW/openmw!1404
2021-11-30 15:50:11 +00:00
AnyOldName3
b991263a92
Work around https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89062
2021-11-29 20:16:49 +00:00
Bret Curtis
246912f73a
Merge pull request #3206 from akortunov/groundcover_loading
...
Use a separate storage for groundcover data
2021-11-29 20:09:21 +01:00
AnyOldName3
5e9d460032
Remove redundant conversion operator
2021-11-28 20:33:17 +00:00
uramer
e9f8c34372
Correctly set UI properties to defaults when passed nil
2021-11-28 11:31:34 +00:00
psi29a
d2f447065c
Merge branch 'prepare_for_glibc_2_34' into 'master'
...
Prepare for glibc 2.34
See merge request OpenMW/openmw!1239
2021-11-23 20:20:48 +00:00
elsid
da0c5b54f0
Load only supported content formats by EsmLoader
2021-11-22 20:58:48 +01:00
AnyOldName3
84d6de3eba
Parse paths with boost rules when it's quoted, but use the string verbatim when it's not
2021-11-21 19:51:02 +00:00
elsid
cffcb6a897
Share state set between all navmesh tiles
...
Do not change GL_DEPTH because it's always disabled anyway.
2021-11-21 18:01:26 +01:00
elsid
d1a1b8c01c
Use polygon offset to render navmesh and recast mesh
2021-11-21 17:59:25 +01:00
elsid
0511a81baa
Use different alpha color for navmesh tiles with non zero user id
2021-11-21 17:43:32 +01:00
elsid
3c41d0efc3
Render each navmesh tile independently
2021-11-21 17:42:27 +01:00
elsid
66390bd8a4
Use line width 1 as the only guaranteed to be supported value by glLineWidth
2021-11-21 17:40:55 +01:00
elsid
6b7363bd59
Replace generation and revision by version
2021-11-21 17:40:54 +01:00
elsid
a665a38aca
Use MurmurHash3_x64_128 for file hash
2021-11-21 17:05:59 +01:00
elsid
ce7f8c90f8
Fix unity build
2021-11-21 14:24:18 +01:00
Petr Mikheev
f9136d4392
Support multiple arguments in Lua callbacks.
2021-11-21 13:12:35 +01:00
psi29a
53e14eb238
Merge branch 'reset' into 'master'
...
AI reset argument
Closes #6177 and #1465
See merge request OpenMW/openmw!1405
2021-11-21 09:39:55 +00:00
glassmancody.info
9389cfaa42
mac os driver workaround and shadervisitor fixes
2021-11-20 18:39:20 -08:00
Cody Glassman
d85f772269
Depth refactor
2021-11-21 02:25:05 +00:00
AnyOldName3
a9d7598532
Merge branch 'camera2' into 'master'
...
Dehardcode camera
See merge request OpenMW/openmw!1030
2021-11-20 18:17:12 +00:00
psi29a
adc3bab51e
Merge branch 'Embedded-error-marker' into 'master'
...
Embed marker error
See merge request OpenMW/openmw!1383
2021-11-20 18:07:13 +00:00
Cédric Mocquillon
eb75e394b3
Use Files::MemBuf for Bsa::MemoryInputStream base classe instead of making a duplicate (MemoryInputStreamBuf)
2021-11-20 11:12:08 +01:00
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.
2021-11-20 11:12:08 +01:00
Evil Eye
3c57ffd81f
Save repeat and duration
2021-11-20 11:03:07 +01:00
Evil Eye
231da19aa4
Load repeat flag and use reset argument
2021-11-20 11:02:58 +01:00
Petr Mikheev
ded8997362
Avoid problems if builtin.omwscripts
is above Morrowind.esm
in content list.
2021-11-19 20:37:21 +01:00
Petr Mikheev
d5ca091d6e
Make util.rotateX, util.rotateY, rotate.Z consistent with morrowind rotation
2021-11-19 20:37:21 +01:00
uramer
eceed558be
Fix coverity uninitialized variables
2021-11-19 18:05:43 +01:00
glassmancody.info
750514cda2
simply lightmanager and fix racey behavior
2021-11-18 19:40:13 -08:00
uramer
68963538ae
Lua UI API
2021-11-18 15:19:54 +00:00
Brian Kelley
ee41b94a73
Enable compilation on apple silicon
2021-11-15 19:01:52 +00:00
Petr Mikheev
c7d6620c35
Add error checking in MWLua::Action
2021-11-15 01:17:53 +01:00
psi29a
5c5c71778a
Merge branch 'circular' into 'master'
...
Consistently sort content files
See merge request OpenMW/openmw!1350
2021-11-14 20:24:18 +00:00
psi29a
d4e8a58351
Merge branch 'headsup' into 'master'
...
Force assign head animation timer (bug #4389 )
Closes #4389
See merge request OpenMW/openmw!1361
2021-11-14 19:59:31 +00:00
psi29a
bd694128b9
Merge branch 'lua_input' into 'master'
...
Update Lua package openmw.input
See merge request OpenMW/openmw!1356
2021-11-14 19:57:37 +00:00
Andrei Kortunov
3275440f0d
Use a separate storage for groundcover data
2021-11-14 19:11:42 +04:00
Evil Eye
c5ba733855
Unbreak the unit test in gcc and clang
2021-11-14 11:26:18 +01:00
Evil Eye
6daefe3ddc
Cast to the unsigned char expected by cctype functions
2021-11-14 11:26:18 +01:00
Evil Eye
f23bd51175
Don't check bounds when the type is unambiguously a char
2021-11-14 11:26:18 +01:00
Evil Eye
c6470f33d3
Use string_view
2021-11-14 11:26:16 +01:00
Evil Eye
751e8cf76b
Do a bounds check before calling functions defined in cctype
2021-11-14 11:26:15 +01:00
Evil Eye
8f48a1f030
Handle non-ASCII characters while saving without triggering an assertion
2021-11-14 11:26:06 +01:00
AnyOldName3
8fb0b5846e
Allow paths with trailing data, emmitting a warning
2021-11-14 00:22:44 +00:00
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.
2021-11-13 23:37:53 +01:00
Alexei Dobrohotov
63ea57e9cf
Load NiSortAdjustNode and NiAccumulators
2021-11-14 00:31:49 +03:00
psi29a
d0263b6dda
Merge branch 'fix_hash_combine' into 'master'
...
Support seed type different from std::size_t for hashCombine
See merge request OpenMW/openmw!1391
2021-11-13 21:12:13 +00:00
Alexei Dobrohotov
50b90a594d
Loading and basic handling of BSLightingShaderProperty
2021-11-13 22:52:45 +03:00
psi29a
03e88b8e27
Merge branch 'lordofthenifs' into 'master'
...
Load a bunch of Bethesda Havok NIF records
See merge request OpenMW/openmw!1392
2021-11-13 18:51:54 +00:00
psi29a
ba0aae06ca
Merge branch 'morphyslaw' into 'master'
...
Morph geometry more like NifSkope (bug #6416 )
Closes #6416
See merge request OpenMW/openmw!1389
2021-11-13 18:42:17 +00:00
Alexei Kotov
49544cf7de
Merge branch 'no_one_likes_commas' into 'master'
...
Treat commas in scripts as whitespace
Closes #6380
See merge request OpenMW/openmw!1388
2021-11-13 17:19:22 +00:00
Alexei Dobrohotov
d347f8f4f0
Fix build
2021-11-13 20:11:18 +03:00
Alexei Dobrohotov
25f4d05c2e
Load bhkRigidBody
2021-11-13 19:59:30 +03:00
Alexei Dobrohotov
c01fff280a
Load bhkConvexVerticesShape, bhkBoxShape, bhkListShape
2021-11-13 19:53:03 +03:00
Alexei Dobrohotov
83aa96e38f
Load a bunch of triangle strip-based Havok records
2021-11-13 19:52:08 +03:00
Alexei Dobrohotov
e7cc76bba2
Load bhkMoppBvTreeShape
2021-11-13 19:27:32 +03:00
Alexei Dobrohotov
59ce00f742
Refactor all present Bethesda Havok 'support'
2021-11-13 19:14:28 +03:00
elsid
08a25c2b1f
Support seed type different from std::size_t for hashCombine
2021-11-13 16:14:50 +01:00
psi29a
41bd20e358
Merge branch 'bullet_shape_hash' into 'master'
...
Store BulletShape source file name and content hash
See merge request OpenMW/openmw!1379
2021-11-13 13:33:22 +00:00
Evil Eye
bee94e2afc
Treat commas in scripts as whitespace
2021-11-13 14:06:21 +01:00
Alexei Dobrohotov
c7edca559b
Morph geometry more like NifSkope (bug #6416 )
2021-11-13 15:58:59 +03:00
Evil Eye
5f406158b5
Zero initialize context index
2021-11-13 12:46:10 +01:00
psi29a
39f70c2d18
Merge branch 'correct-sound' into 'master'
...
Add correct sound path in resource helpers
See merge request OpenMW/openmw!1381
2021-11-12 22:23:32 +00:00
Petr Mikheev
ed85393288
Replace sol::table::create_table_with with a more compiler-friendly implementation. It fixes MSVC error "compiler is out of heap space" and also slightly reduces binary size.
2021-11-11 22:46:01 +01:00
elsid
d7041613ef
Store BulletShape source file name and content hash
2021-11-11 00:27:18 +01:00
Cédric Mocquillon
512d64e514
Extract correctSoundPath method to avoid code duplication. Add unit test for the new method
2021-11-10 23:06:35 +01:00
Alexei Dobrohotov
cc4c96d0f1
Follow global naming convention for new records
2021-11-10 22:50:01 +03:00
Alexei Dobrohotov
6e5b45453d
some physics stuff idk
2021-11-10 20:33:46 +03:00
Alexei Dobrohotov
6de9b49d3d
Remove an empty line
2021-11-10 19:59:13 +03:00
Alexei Dobrohotov
9880c43c86
Add specular strength shader parameter
2021-11-10 19:58:06 +03:00
Alexei Dobrohotov
923756b407
Load NiControllerManager
2021-11-10 19:42:55 +03:00
Alexei Dobrohotov
41097352a8
Load BSDismemberSkinInstance
2021-11-10 19:40:02 +03:00
Alexei Dobrohotov
5571099147
Load NiCollisionObject and bhkCollisionObject
2021-11-10 19:31:28 +03:00
Alexei Dobrohotov
9500afaa5a
Load BSFurnitureMarker
2021-11-10 19:21:07 +03:00
psi29a
b72d59b012
Merge branch 'fix_shadows_bin_crash' into 'master'
...
Fix crash on exit with enabled shadows (#6256 )
Closes #6256
See merge request OpenMW/openmw!1191
2021-11-09 15:58:03 +00:00
Evil Eye
099cd8a20c
Force alphabetical order per data dir
2021-11-09 16:47:42 +01:00
psi29a
5836d0225f
Merge branch 'leave_butter_to_soften' into 'master'
...
Soft Particles (#6128 )
See merge request OpenMW/openmw!980
2021-11-09 14:16:47 +00:00
elsid
3b6184dcda
Add missing include
...
In file included from /<<BUILDDIR>>/openmw-0.47.0+git202111080927~ubuntu18.04.1/components/detournavigator/findsmoothpath.cpp:1:0:
/<<BUILDDIR>>/openmw-0.47.0+git202111080927~ubuntu18.04.1/components/detournavigator/findsmoothpath.hpp:93:48: error: field ‘mSettings’ has incomplete type ‘std::reference_wrapper<const DetourNavigator::Settings>’
std::reference_wrapper<const Settings> mSettings;
^~~~~~~~~
In file included from /usr/include/c++/7/bits/move.h:54:0,
from /usr/include/c++/7/bits/nested_exception.h:40,
from /usr/include/c++/7/exception:143,
from /usr/include/c++/7/ios:39,
from /usr/include/c++/7/istream:38,
from /usr/include/c++/7/sstream:38,
from /<<BUILDDIR>>/openmw-0.47.0+git202111080927~ubuntu18.04.1/components/detournavigator/dtstatus.hpp:6,
from /<<BUILDDIR>>/openmw-0.47.0+git202111080927~ubuntu18.04.1/components/detournavigator/findsmoothpath.hpp:4,
from /<<BUILDDIR>>/openmw-0.47.0+git202111080927~ubuntu18.04.1/components/detournavigator/findsmoothpath.cpp:1:
/usr/include/c++/7/type_traits:2125:11: note: declaration of ‘class std::reference_wrapper<const DetourNavigator::Settings>’
class reference_wrapper;
2021-11-09 12:32:53 +01:00
elsid
5972520b1a
Make sure areas size is 2 for rectangle
2021-11-08 18:49:17 +01:00
elsid
671e1e5424
Avoid copy when adding heightfield to vector
2021-11-08 18:49:16 +01:00
elsid
5f5163905a
Remove unused operator< for RecastMesh
2021-11-08 18:49:16 +01:00
Bo Svensson
5f1bf89369
improves groundcover view distance ( #3219 )
...
This PR aims to solve all issues with `Groundcover` view distance handling in a satisfying way while preserving other optimisations that benefit other features. The main idea here is not to rely on `ViewData` updates for distance culling calculations because we can not accurately determine distance against lazily updated views. Instead, we perform an accurate measurement in a cull callback we can run every frame in `Groundcover` itself. While we do have to add some code to handle this feature, it is quite loosely coupled code that could be useful elsewhere in the future. These changes should address a performance regression @akortunov experienced.
2021-11-08 10:27:42 +01:00
psi29a
b6718ecb10
Merge branch 'log_lock' into 'master'
...
Acquire log lock only when logger should log
See merge request OpenMW/openmw!1363
2021-11-08 07:41:27 +00:00
psi29a
9f26dfadd1
Merge branch 'cleanup_includes' into 'master'
...
Cleanup some includes
See merge request OpenMW/openmw!1369
2021-11-08 07:32:40 +00:00
elsid
a824e112d4
Fix recastmesh.cpp includes
...
recastmesh.cpp is supposed to include recastmesh.hpp not navmesh.hpp.
2021-11-08 02:21:17 +01:00
elsid
e0c4f08aa5
Remove redundant includes
2021-11-08 02:21:02 +01:00
elsid
727f784a98
Acquire log lock only when logger should log
...
To minimize overhead for calls when level is less than current. For example
Log(Debug::Debug) should not lock mutex when current logging level is Verbose.
2021-11-07 19:57:20 +01:00
Bo Svensson
2e031f195b
fixes LightBufferBinding messages ( #3223 )
...
This PR aims to solve `uniform block LightBufferBinding has no binding` messages @glassmancody has reportedly encountered since PR #3110 due to an apparent bug in OSG. While we do have to add a workaround here that adds a bit of clunkiness, #3216 should allow us to clean up these interactions a bit in the future.
2021-11-07 18:26:02 +01:00
Evil Eye
3f48d67d8e
Merge branch 'blackscreen_fix' into 'master'
...
Blackscreen fix (#6229 )
See merge request OpenMW/openmw!1359
2021-11-07 14:31:19 +00:00
Evil Eye
a3e039d862
Explicitely sort by file name after adding all data dirs
2021-11-07 14:15:30 +01:00
psi29a
256ec4c752
Merge branch 'fix_tile_bounds' into 'master'
...
Fix tile bounds scaling
See merge request OpenMW/openmw!1353
2021-11-07 12:34:55 +00:00
Alexei Dobrohotov
e125308dd8
Force assign head animation timer (bug #4389 )
2021-11-07 14:10:51 +03:00
Bo Svensson
726653087e
restores _mergeAlphaBlending behaviour ( #3222 )
...
This PR restores a minor peculiarity of `_mergeAlphaBlending` behaviour unintentionally changed by PR #3162 .
2021-11-07 10:36:22 +01:00
psi29a
627f816348
Merge branch 'navigator_impl' into 'master'
...
Reduce the size of included code from detournavigator/ into the engine
See merge request OpenMW/openmw!1355
2021-11-07 07:57:22 +00:00
Evil Eye
5fbfbb3d84
Merge branch 'clamp' into 'master'
...
Make better use of std::clamp
See merge request OpenMW/openmw!1357
2021-11-06 12:07:24 +00:00
cody glassman
04692e6012
blackscreen fix
2021-11-06 04:38:43 -07:00
Alexei Dobrohotov
7a0c13fcf8
Make better use of std::clamp
2021-11-06 08:47:32 +03:00
elsid
9f808fbe3a
Move findPath-like navigator functions into a separate header
2021-11-06 00:34:06 +01:00
elsid
5e99454cc4
Add factory functions to create navigator implementations
2021-11-06 00:14:41 +01:00
elsid
3f80725ebe
Remove duplicated implementation of Misc::Convert::toOsg
2021-11-05 22:57:08 +01:00
elsid
5db4898bec
Fix tile bounds scaling
...
OscillatingRecastMeshObject::update should be called with tile bounds in real
coordinates not in navmesh. But proper scaling was done only in
RecastMeshManager::getMesh and RecastMeshManager::updateObject used tile bounds
in navmesh coordinates.
Add a new function to create tile bounds with proper scaling and pass correct
value into RecastMeshManager constructor through CachedRecastMeshManager
constuctor from TileCachedRecastMeshManager member functions.
2021-11-05 22:48:45 +01:00
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.
2021-11-05 10:53:52 +01:00
Bo Svensson
5debd6e25a
removes two dummy serialisers ( #3212 )
...
This PR removes dummy serialisers for `StateSetUpdater`, `NodeCallback` and the respective `META` macros that trigger serialisation requirement here.
`StateSetUpdater` and `NodeCallback` are just base classes that can not be used on their own, so there is no need to incorporate them into serialisation. These changes might have minor effects on derived classes that forget to override `className()`, `libraryName()` through `META`, but it makes hardly a difference to now serialise such classes as a dysfunctional `osg::Callback` instead of a dysfunctional `SceneUtil::NodeCallback`.
2021-11-04 22:31:22 +01:00
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.
2021-11-04 22:20:06 +01:00
Evil Eye
ad44142dda
Modify the content file sorting algorithm to finish in finite time when encountering circular dependencies
2021-11-04 20:41:26 +01:00
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.
2021-11-04 16:55:32 +01:00
Bo Svensson
1979ee1491
refactors hashed std::map ( #3199 )
...
We currently apply a strange algorithm to `LightManager::mStateSetCache`. For some reason this algorithm inserts hashed keys into `std::map` in a way that fails to handle hash collisions and exhibits worse lookup complexity than `std::unordered_map`. With this PR we just use `std::unordered_map` here.
2021-11-04 16:54:47 +01:00
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 .
2021-11-03 11:07:28 +01:00
elsid
2b057f5c15
Expect nif node children to have parent
2021-11-02 22:44:33 +01:00
elsid
19843af704
Combine data check with data handling logic
2021-11-02 22:44:33 +01:00
elsid
4e8e8304aa
Avoid mesh allocation when data is invalid
2021-11-02 22:44:33 +01:00
elsid
4ac83f4c39
Add separate function to handle NiGeometry node
...
To force use a single source of data. All fields of Nif::Node are available in NiGeometry.
2021-11-02 22:44:32 +01:00
elsid
56eef691a8
Use reference type to pass nif node as argument where nullptr is not handled
2021-11-02 22:44:32 +01:00
elsid
4631d95739
Add more tests for BulletNifLoader
2021-11-02 22:44:32 +01:00
psi29a
523289c531
Merge branch 'refactor_bullet_shape' into 'master'
...
Refactor bullet shape
See merge request OpenMW/openmw!1333
2021-11-02 20:30:22 +00:00
psi29a
4ff4afd50b
Merge branch 'lua_callback' into 'master'
...
Refactoring. Lua `Callback` is moved from apps/openmw/mwlua to components/lua.
See merge request OpenMW/openmw!1334
2021-11-02 20:28:34 +00:00
psi29a
cb3ab21c13
Merge branch 'recast_mesh_object' into 'master'
...
Store holder only in parent RecastMeshObject
See merge request OpenMW/openmw!1332
2021-11-02 20:27:49 +00:00
Evil Eye
a9106f4d7c
Rotate torches by 90 degrees
2021-11-02 18:01:22 +01:00
glassmancody.info
4461366761
settings update and launcher option
2021-11-01 09:26:50 -07:00
Petr Mikheev
e7ec89573e
Refactoring. Lua Callback
is moved from apps/openmw/mwlua to components/lua.
2021-10-31 17:47:46 +01:00
Bo Svensson
b9911da4c7
applies lightMask ( #3201 )
...
With this PR we apply `lightMask` to a `Transform` node we create specifically for a light. This mask will allow us to stop traversing such nodes sooner and avoid costly processing associated with `Transform` nodes in the cull visitor.
2021-10-31 13:03:42 +01:00
Bo Svensson
d88d006984
fixes getViewDistance ( #3207 )
...
I have been informed by @akortunov that my addition of `Groundcover::getViewDistance` is not working in some cases. Investigations revealed that some `ViewData` code interacting with my additions had been quite thoroughly optimised in a way that was not sufficiently documented and interfered with the new feature. With this PR we repair `getViewDistance` while preserving such optimisations and add a necessary comment to avoid issues in the future. In addition, we now rebuild views when the global `mViewDistance` changes.
2021-10-31 12:59:34 +01:00
Bo Svensson
356e9d7cf0
refactors osg::Callback virtual inheritance ( #3200 )
...
With this PR we refactor `SceneUtil::KeyframeController` not to require `virtual osg::Callback` inheritance. I suppose such `virtual` overhead is not justified here because it negatively impacts many other classes we derive from `osg::Callback`.
2021-10-30 22:43:18 +02:00
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
2021-10-30 19:26:32 +00:00
glassmancody.info
40b6bbbdf3
use openmw define system
2021-10-30 12:19:31 -07:00
glassmancody.info
8c3b00164e
soft particles
2021-10-30 12:19:31 -07:00
elsid
9c5f8b8719
Store holder only in parent RecastMeshObject
2021-10-30 04:40:06 +02:00
elsid
a851ac5fea
Use custom deleter for btCompoundShape to delete children shapes
2021-10-30 03:48:02 +02:00
elsid
b731a981c4
Make BulletShape::isAnimated inlined
2021-10-30 03:44:09 +02:00
elsid
c83facd9d3
Avoid redundant osg::ref_ptr<const BulletShape> copy
2021-10-30 03:44:08 +02:00
elsid
ed5a4e195b
Use unique_ptr to avoid possible memory leak
2021-10-30 03:44:08 +02:00
elsid
8e71c246bf
Remove redundant BulletShape getters
2021-10-30 03:44:08 +02:00
elsid
fc9a405dc5
Make BulletShape::makeInstance free function
2021-10-30 03:44:08 +02:00
elsid
b905dd17c3
Use unique_ptr to store btCollisionShape in BulletShape
2021-10-30 03:44:07 +02:00
elsid
80e3623d9a
Avoid dynamic cast in duplicateCollisionShape
2021-10-30 03:43:48 +02:00
elsid
ca8584f6f6
Move functions independent from BulletShape into anonymous namespace
2021-10-30 03:43:38 +02:00
elsid
29a772c33f
Rename Resource::BulletShape::CollisionBox fields according to styleguide
2021-10-29 21:05:58 +02:00
Petr Mikheev
37386f417e
Support *.omwscripts in openmw-launcher
2021-10-29 20:09:47 +02:00
psi29a
b189282ba1
Merge branch 'compile_no_evil' into 'master'
...
Remove dead code
See merge request OpenMW/openmw!1327
2021-10-29 12:51:20 +00:00
psi29a
34b63bf142
Merge branch 'omwscripts' into 'master'
...
Change format of "*.omwscripts" files
See merge request OpenMW/openmw!1271
2021-10-29 12:49:49 +00:00
Evil Eye
9b565c4cf9
Remove dead code
2021-10-28 22:16:43 +02:00
psi29a
b3f84df43c
Merge branch 'sky_shaders' into 'master'
...
Sky shaders
See merge request OpenMW/openmw!1057
2021-10-27 20:25:40 +00:00
Petr Mikheev
47c89567fb
Load LuaScriptsCfg from both *.omwscripts and *.omwaddon files.
2021-10-26 21:52:42 +02:00
Petr Mikheev
4ec7f0625e
Store Lua timers in std::map rather than in sol::table.
2021-10-26 21:32:48 +02:00
Petr Mikheev
9adc190209
Redesign LuaUtil::ScriptsContainer to work with ScriptsConfiguration
2021-10-26 21:32:48 +02:00
Petr Mikheev
33d71be81f
Add LuaUtil::ScriptsConfiguration
2021-10-26 21:32:02 +02:00
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.
2021-10-26 21:32:02 +02:00
Evil Eye
4ec927829f
Give each reflect and spell absorption effect a chance to apply
2021-10-26 16:50:40 +02:00
psi29a
3006c496fc
Merge branch 'morrowland_scripting' into 'master'
...
Morrowland scripting
Closes #6363
See merge request OpenMW/openmw!1318
2021-10-26 10:07:45 +00:00
psi29a
2765bcee5e
Merge branch 'serialization' into 'master'
...
Add helpers for binary serialization
See merge request OpenMW/openmw!1319
2021-10-26 08:25:17 +00:00
glassmancody.info
07e32c0fa6
remove object shader path
2021-10-25 10:23:16 -07:00
Bret Curtis
3d0da9b9b2
Merge pull request #3191 from akortunov/warnfix
...
Fix some MSVC warnings
2021-10-25 15:17:05 +02:00
Bret Curtis
ac02753da7
Merge pull request #3190 from akortunov/master
...
Fix showscenegraph warnings
2021-10-25 12:59:36 +02:00
Bo Svensson
1ff8318a52
refactors premultiplied alpha ( #3189 )
...
With this PR we refactor a `premultiplied alpha` user string set by `characterpreview.cpp` into a more flexible mechanism allowing us to assign any state to GUI textures. We can consider these changes more future proof than the previous approach.
2021-10-25 09:28:32 +02:00
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.
2021-10-25 09:18:26 +02:00
Evil Eye
fef902617a
Parse integer format arguments as variable names
2021-10-24 17:23:15 +02:00
Andrei Kortunov
0f3c0cb0a0
Fix argument types mismatch
2021-10-24 18:45:46 +04:00
Andrei Kortunov
107a9ecb17
Fix variables hiding
2021-10-24 18:45:04 +04:00
elsid
a58f1a94e3
Add helpers for binary serialization
...
To construct serializer from given entities:
* Data source/destination - any value that has to be serialized/deserialized,
usually already existing type.
* Format - functional object to define high level serialization logic to
define specific format and data schema. Like order of fields, allocation.
* Visitor - functional object to define low level serialization logic to
operator on given data part.
* BinaryWriter - copies given value into provided buffer.
* BinaryReader - copies value into given destination from provided buffer.
* SizeAccumulator - calculates required buffer size for given data.
2021-10-24 14:20:44 +02:00
Andrei Kortunov
566380c0d6
Fix showscenegraph warnings
2021-10-24 12:37:49 +04:00
glassmancody.info
1e40d27318
introduce sky shaders
2021-10-23 17:53:38 -07:00
Bo Svensson
41318a585f
fixes enable and disable commands ( #3186 )
...
This PR fixes a recent regression concerning enable and disable commands with object paging. In addition, we add a necessary comment to avoid such issues in the future.
2021-10-23 12:40:26 +02:00
Evil Eye
31aa19574b
Make PositionCell take additional junk arguments
2021-10-23 11:47:42 +02:00
Evil Eye
dfb6bdf77e
Allow integer variable names
2021-10-23 11:47:35 +02:00
Bo Svensson
c9c8d02332
fixes a crash ( #3183 )
...
This PR fixes a crash caused by the improperly ensured lifetime of RigGeometry::mSourceGeometry. mSourceGeometry was not adequate to ensure mSourceGeometry would outlive mGeometry because we extend mGeometrys lifetime beyond this lifetime by passing mGeometry to the draw traversal instead of this.
In addition,
We add important comments.
We detect and prevent generally unsafe operations in high level code.
We add a sprinkling of const to help clarify intentions.
2021-10-23 10:31:46 +02:00
Fanael Linithien
07d505563e
Remove non-existent file from CMakeLists
2021-10-23 01:38:32 +02:00
psi29a
1ffa02b2fd
Merge branch 'fix_windows_tests' into 'master'
...
Fix tests on windows
See merge request OpenMW/openmw!1313
2021-10-22 12:35:10 +00:00
psi29a
ed811176bc
Merge branch 'fix_esm_loader' into 'master'
...
Fix logic expression for not found value in EsmLoader::getModel
See merge request OpenMW/openmw!1308
2021-10-22 12:33:39 +00:00
elsid
b5f0057ac9
Fix tests on windows
2021-10-21 19:48:31 +02:00
Bo Svensson
a854a6e04a
removes UnrefQueue ( #3181 )
...
Currently, we use an `UnrefQueue` which supposedly aims to transfer destruction costs to another thread. The implications of this unusual pattern can not be well understood because some allocators might free resources more efficiently if they are freed by the same thread that allocated them. In addition, `UnrefQueue` complicates the validation of thread safety in our engine. Lastly, our current usage of `UnrefQueue` triggers `ref()`, `unref()` atomic operations as objects are passed into the queue. These operations could be more expensive than the actual destruction.
With this PR we thus remove `UnrefQueue`. We can expect these changes to have a minor impact at most because we free most resources elsewhere in `ResourceSystem::updateCache`.
2021-10-20 23:02:15 +02:00
elsid
a3b6bc7263
Fix logic expression for not found value
2021-10-20 17:48:10 +02:00
elsid
562590720b
Remove ShadowsBin prototype on MWShadowTechnique destruction
...
To prevent crash:
==7733==ERROR: AddressSanitizer: heap-use-after-free on address 0x6040000ca1b0 at pc 0x55fcfa8d1ee3 bp 0x7ffd1c464e00 sp 0x7ffd1c464df0
READ of size 4 at 0x6040000ca1b0 thread T0
#0 0x55fcfa8d1ee2 in std::less<unsigned int>::operator()(unsigned int const&, unsigned int const&) const /usr/include/c++/11.1.0/bits/stl_function.h:386
#1 0x55fcfa8d1ee2 in std::_Rb_tree<unsigned int, std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> >, std::_Select1st<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > > >::_M_lower_bound(std::_Rb_tree_node<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > >*, std::_Rb_tree_node_base*, unsigned int const&) /usr/include/c++/11.1.0/bits/stl_tree.h:1903
#2 0x55fcfa8ca76e in std::_Rb_tree<unsigned int, std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> >, std::_Select1st<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > > >::lower_bound(unsigned int const&) /usr/include/c++/11.1.0/bits/stl_tree.h:1270
#3 0x55fcfa8ca76e in std::map<unsigned int, osg::ref_ptr<osg::ContextData>, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > > >::lower_bound(unsigned int const&) /usr/include/c++/11.1.0/bits/stl_map.h:1259
#4 0x55fcfa8ca76e in std::map<unsigned int, osg::ref_ptr<osg::ContextData>, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > > >::operator[](unsigned int const&) /usr/include/c++/11.1.0/bits/stl_map.h:497
#5 0x55fcfa8ca76e in osg::getOrCreateContextData(unsigned int) /home/elsid/dev/OpenSceneGraph/src/osg/ContextData.cpp:142
#6 0x55fcfab6848a in GLShaderManager* osg::get<GLShaderManager>(unsigned int) /home/elsid/dev/OpenSceneGraph/include/osg/ContextData:154
#7 0x55fcfab6848a in osg::Shader::PerContextShader::~PerContextShader() /home/elsid/dev/OpenSceneGraph/src/osg/Shader.cpp:540
#8 0x55fcfab68dc6 in osg::Shader::PerContextShader::~PerContextShader() /home/elsid/dev/OpenSceneGraph/src/osg/Shader.cpp:541
#9 0x55fcfab4a3f3 in osg::Referenced::signalObserversAndDelete(bool, bool) const /home/elsid/dev/OpenSceneGraph/src/osg/Referenced.cpp:292
#10 0x55fcfab6d0ce in osg::Referenced::unref() const /home/elsid/dev/OpenSceneGraph/include/osg/Referenced:201
#11 0x55fcfab6d0ce in osg::ref_ptr<osg::Shader::PerContextShader>::~ref_ptr() /home/elsid/dev/OpenSceneGraph/include/osg/ref_ptr:44
#12 0x55fcfab6d0ce in void std::_Destroy<osg::ref_ptr<osg::Shader::PerContextShader> >(osg::ref_ptr<osg::Shader::PerContextShader>*) /usr/include/c++/11.1.0/bits/stl_construct.h:140
#13 0x55fcfab6d0ce in void std::_Destroy_aux<false>::__destroy<osg::ref_ptr<osg::Shader::PerContextShader>*>(osg::ref_ptr<osg::Shader::PerContextShader>*, osg::ref_ptr<osg::Shader::PerContextShader>*) /usr/include/c++/11.1.0/bits/stl_construct.h:152
#14 0x55fcfab6d0ce in void std::_Destroy<osg::ref_ptr<osg::Shader::PerContextShader>*>(osg::ref_ptr<osg::Shader::PerContextShader>*, osg::ref_ptr<osg::Shader::PerContextShader>*) /usr/include/c++/11.1.0/bits/stl_construct.h:185
#15 0x55fcfab6d0ce in void std::_Destroy<osg::ref_ptr<osg::Shader::PerContextShader>*, osg::ref_ptr<osg::Shader::PerContextShader> >(osg::ref_ptr<osg::Shader::PerContextShader>*, osg::ref_ptr<osg::Shader::PerContextShader>*, std::allocator<osg::ref_ptr<osg::Shader::PerContextShader> >&) /usr/include/c++/11.1.0/bits/alloc_traits.h:746
#16 0x55fcfab6d0ce in std::vector<osg::ref_ptr<osg::Shader::PerContextShader>, std::allocator<osg::ref_ptr<osg::Shader::PerContextShader> > >::~vector() /usr/include/c++/11.1.0/bits/stl_vector.h:680
#17 0x55fcfab6d0ce in osg::Shader::ShaderObjects::~ShaderObjects() /home/elsid/dev/OpenSceneGraph/include/osg/Shader:264
#18 0x55fcfab6d0ce in osg::Shader::ShaderObjects::~ShaderObjects() /home/elsid/dev/OpenSceneGraph/include/osg/Shader:264
#19 0x55fcfab4a3f3 in osg::Referenced::signalObserversAndDelete(bool, bool) const /home/elsid/dev/OpenSceneGraph/src/osg/Referenced.cpp:292
#20 0x55fcfab6c532 in osg::Referenced::unref() const /home/elsid/dev/OpenSceneGraph/include/osg/Referenced:201
#21 0x55fcfab6c532 in osg::ref_ptr<osg::Shader::ShaderObjects>::~ref_ptr() /home/elsid/dev/OpenSceneGraph/include/osg/ref_ptr:44
#22 0x55fcfab6c532 in void std::_Destroy<osg::ref_ptr<osg::Shader::ShaderObjects> >(osg::ref_ptr<osg::Shader::ShaderObjects>*) /usr/include/c++/11.1.0/bits/stl_construct.h:140
#23 0x55fcfab6c532 in void std::_Destroy_aux<false>::__destroy<osg::ref_ptr<osg::Shader::ShaderObjects>*>(osg::ref_ptr<osg::Shader::ShaderObjects>*, osg::ref_ptr<osg::Shader::ShaderObjects>*) /usr/include/c++/11.1.0/bits/stl_construct.h:152
#24 0x55fcfab6c532 in void std::_Destroy<osg::ref_ptr<osg::Shader::ShaderObjects>*>(osg::ref_ptr<osg::Shader::ShaderObjects>*, osg::ref_ptr<osg::Shader::ShaderObjects>*) /usr/include/c++/11.1.0/bits/stl_construct.h:185
#25 0x55fcfab6c532 in void std::_Destroy<osg::ref_ptr<osg::Shader::ShaderObjects>*, osg::ref_ptr<osg::Shader::ShaderObjects> >(osg::ref_ptr<osg::Shader::ShaderObjects>*, osg::ref_ptr<osg::Shader::ShaderObjects>*, std::allocator<osg::ref_ptr<osg::Shader::ShaderObjects> >&) /usr/include/c++/11.1.0/bits/alloc_traits.h:746
#26 0x55fcfab6c532 in std::vector<osg::ref_ptr<osg::Shader::ShaderObjects>, std::allocator<osg::ref_ptr<osg::Shader::ShaderObjects> > >::~vector() /usr/include/c++/11.1.0/bits/stl_vector.h:680
#27 0x55fcfab6c532 in osg::buffered_value<osg::ref_ptr<osg::Shader::ShaderObjects> >::~buffered_value() /home/elsid/dev/OpenSceneGraph/include/osg/buffered_value:26
#28 0x55fcfab6c532 in osg::Shader::~Shader() /home/elsid/dev/OpenSceneGraph/src/osg/Shader.cpp:271
#29 0x55fcfab6c80a in osg::Shader::~Shader() /home/elsid/dev/OpenSceneGraph/src/osg/Shader.cpp:271
#30 0x55fcfab4a3f3 in osg::Referenced::signalObserversAndDelete(bool, bool) const /home/elsid/dev/OpenSceneGraph/src/osg/Referenced.cpp:292
#31 0x55fcfab185bd in osg::Referenced::unref() const /home/elsid/dev/OpenSceneGraph/include/osg/Referenced:201
#32 0x55fcfab185bd in osg::ref_ptr<osg::Shader>::~ref_ptr() /home/elsid/dev/OpenSceneGraph/include/osg/ref_ptr:44
#33 0x55fcfab185bd in void std::_Destroy<osg::ref_ptr<osg::Shader> >(osg::ref_ptr<osg::Shader>*) /usr/include/c++/11.1.0/bits/stl_construct.h:140
#34 0x55fcfab185bd in void std::_Destroy_aux<false>::__destroy<osg::ref_ptr<osg::Shader>*>(osg::ref_ptr<osg::Shader>*, osg::ref_ptr<osg::Shader>*) /usr/include/c++/11.1.0/bits/stl_construct.h:152
#35 0x55fcfab185bd in void std::_Destroy<osg::ref_ptr<osg::Shader>*>(osg::ref_ptr<osg::Shader>*, osg::ref_ptr<osg::Shader>*) /usr/include/c++/11.1.0/bits/stl_construct.h:185
#36 0x55fcfab185bd in void std::_Destroy<osg::ref_ptr<osg::Shader>*, osg::ref_ptr<osg::Shader> >(osg::ref_ptr<osg::Shader>*, osg::ref_ptr<osg::Shader>*, std::allocator<osg::ref_ptr<osg::Shader> >&) /usr/include/c++/11.1.0/bits/alloc_traits.h:746
#37 0x55fcfab185bd in std::vector<osg::ref_ptr<osg::Shader>, std::allocator<osg::ref_ptr<osg::Shader> > >::~vector() /usr/include/c++/11.1.0/bits/stl_vector.h:680
#38 0x55fcfab185bd in osg::Program::~Program() /home/elsid/dev/OpenSceneGraph/src/osg/Program.cpp:147
#39 0x55fcfab18ae0 in osg::Program::~Program() /home/elsid/dev/OpenSceneGraph/src/osg/Program.cpp:147
#40 0x55fcfab4a3f3 in osg::Referenced::signalObserversAndDelete(bool, bool) const /home/elsid/dev/OpenSceneGraph/src/osg/Referenced.cpp:292
#41 0x55fcf8582cfa in osg::Referenced::unref() const /home/elsid/dev/OpenSceneGraph/build/gcc/asan/install/include/osg/Referenced:201
#42 0x55fcf8582cfa in osg::ref_ptr<osg::StateAttribute>::~ref_ptr() /home/elsid/dev/OpenSceneGraph/build/gcc/asan/install/include/osg/ref_ptr:44
#43 0x55fcf8582cfa in std::pair<osg::ref_ptr<osg::StateAttribute>, unsigned int>::~pair() /usr/include/c++/11.1.0/bits/stl_pair.h:211
#44 0x55fcf8582cfa in std::pair<std::pair<osg::StateAttribute::Type, unsigned int> const, std::pair<osg::ref_ptr<osg::StateAttribute>, unsigned int> >::~pair() /usr/include/c++/11.1.0/bits/stl_pair.h:211
#45 0x55fcf8582cfa in void __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::pair<osg::StateAttribute::Type, unsigned int> const, std::pair<osg::ref_ptr<osg::StateAttribute>, unsigned int> > > >::destroy<std::pair<std::pair<osg::StateAttribute::Type, unsigned int> const, std::pair<osg::ref_ptr<osg::StateAttribute>, unsigned int> > >(std::pair<std::pair<osg::StateAttribute::Type, unsigned int> const, std::pair<osg::ref_ptr<osg::StateAttribute>, unsigned int> >*) /usr/include/c++/11.1.0/ext/new_allocator.h:162
#46 0x55fcf8582cfa in void std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::pair<osg::StateAttribute::Type, unsigned int> const, std::pair<osg::ref_ptr<osg::StateAttribute>, unsigned int> > > > >::destroy<std::pair<std::pair<osg::StateAttribute::Type, unsigned int> const, std::pair<osg::ref_ptr<osg::StateAttribute>, unsigned int> > >(std::allocator<std::_Rb_tree_node<std::pair<std::pair<osg::StateAttribute::Type, unsigned int> const, std::pair<osg::ref_ptr<osg::StateAttribute>, unsigned int> > > >&, std::pair<std::pair<osg::StateAttribute::Type, unsigned int> const, std::pair<osg::ref_ptr<osg::StateAttribute>, unsigned int> >*) /usr/include/c++/11.1.0/bits/alloc_traits.h:531
#47 0x55fcf8582cfa in std::_Rb_tree<std::pair<osg::StateAttribute::Type, unsigned int>, std::pair<std::pair<osg::StateAttribute::Type, unsigned int> const, std::pair<osg::ref_ptr<osg::StateAttribute>, unsigned int> >, std::_Select1st<std::pair<std::pair<osg::StateAttribute::Type, unsigned int> const, std::pair<osg::ref_ptr<osg::StateAttribute>, unsigned int> > >, std::less<std::pair<osg::StateAttribute::Type, unsigned int> >, std::allocator<std::pair<std::pair<osg::StateAttribute::Type, unsigned int> const, std::pair<osg::ref_ptr<osg::StateAttribute>, unsigned int> > > >::_M_destroy_node(std::_Rb_tree_node<std::pair<std::pair<osg::StateAttribute::Type, unsigned int> const, std::pair<osg::ref_ptr<osg::StateAttribute>, unsigned int> > >*) /usr/include/c++/11.1.0/bits/stl_tree.h:623
#48 0x55fcf8582cfa in std::_Rb_tree<std::pair<osg::StateAttribute::Type, unsigned int>, std::pair<std::pair<osg::StateAttribute::Type, unsigned int> const, std::pair<osg::ref_ptr<osg::StateAttribute>, unsigned int> >, std::_Select1st<std::pair<std::pair<osg::StateAttribute::Type, unsigned int> const, std::pair<osg::ref_ptr<osg::StateAttribute>, unsigned int> > >, std::less<std::pair<osg::StateAttribute::Type, unsigned int> >, std::allocator<std::pair<std::pair<osg::StateAttribute::Type, unsigned int> const, std::pair<osg::ref_ptr<osg::StateAttribute>, unsigned int> > > >::_M_drop_node(std::_Rb_tree_node<std::pair<std::pair<osg::StateAttribute::Type, unsigned int> const, std::pair<osg::ref_ptr<osg::StateAttribute>, unsigned int> > >*) /usr/include/c++/11.1.0/bits/stl_tree.h:631
#49 0x55fcf8582cfa in std::_Rb_tree<std::pair<osg::StateAttribute::Type, unsigned int>, std::pair<std::pair<osg::StateAttribute::Type, unsigned int> const, std::pair<osg::ref_ptr<osg::StateAttribute>, unsigned int> >, std::_Select1st<std::pair<std::pair<osg::StateAttribute::Type, unsigned int> const, std::pair<osg::ref_ptr<osg::StateAttribute>, unsigned int> > >, std::less<std::pair<osg::StateAttribute::Type, unsigned int> >, std::allocator<std::pair<std::pair<osg::StateAttribute::Type, unsigned int> const, std::pair<osg::ref_ptr<osg::StateAttribute>, unsigned int> > > >::_M_erase(std::_Rb_tree_node<std::pair<std::pair<osg::StateAttribute::Type, unsigned int> const, std::pair<osg::ref_ptr<osg::StateAttribute>, unsigned int> > >*) /usr/include/c++/11.1.0/bits/stl_tree.h:1889
#50 0x55fcfac1f281 in std::_Rb_tree<std::pair<osg::StateAttribute::Type, unsigned int>, std::pair<std::pair<osg::StateAttribute::Type, unsigned int> const, std::pair<osg::ref_ptr<osg::StateAttribute>, unsigned int> >, std::_Select1st<std::pair<std::pair<osg::StateAttribute::Type, unsigned int> const, std::pair<osg::ref_ptr<osg::StateAttribute>, unsigned int> > >, std::less<std::pair<osg::StateAttribute::Type, unsigned int> >, std::allocator<std::pair<std::pair<osg::StateAttribute::Type, unsigned int> const, std::pair<osg::ref_ptr<osg::StateAttribute>, unsigned int> > > >::clear() /usr/include/c++/11.1.0/bits/stl_tree.h:1254
#51 0x55fcfac1f281 in std::map<std::pair<osg::StateAttribute::Type, unsigned int>, std::pair<osg::ref_ptr<osg::StateAttribute>, unsigned int>, std::less<std::pair<osg::StateAttribute::Type, unsigned int> >, std::allocator<std::pair<std::pair<osg::StateAttribute::Type, unsigned int> const, std::pair<osg::ref_ptr<osg::StateAttribute>, unsigned int> > > >::clear() /usr/include/c++/11.1.0/bits/stl_map.h:1134
#52 0x55fcfac1f281 in osg::StateSet::clear() /home/elsid/dev/OpenSceneGraph/src/osg/StateSet.cpp:738
#53 0x55fcfac2079e in osg::StateSet::~StateSet() /home/elsid/dev/OpenSceneGraph/src/osg/StateSet.cpp:285
#54 0x55fcfac20d3e in osg::StateSet::~StateSet() /home/elsid/dev/OpenSceneGraph/src/osg/StateSet.cpp:286
#55 0x55fcfab4a3f3 in osg::Referenced::signalObserversAndDelete(bool, bool) const /home/elsid/dev/OpenSceneGraph/src/osg/Referenced.cpp:292
#56 0x55fcfb20dcac in osg::Referenced::unref() const /home/elsid/dev/OpenSceneGraph/build/gcc/asan/install/include/osg/Referenced:201
#57 0x55fcfb20dcac in osg::ref_ptr<osg::StateSet>::~ref_ptr() /home/elsid/dev/OpenSceneGraph/build/gcc/asan/install/include/osg/ref_ptr:44
#58 0x55fcfb20dcac in std::array<osg::ref_ptr<osg::StateSet>, 8ul>::~array() /usr/include/c++/11.1.0/array:95
#59 0x55fcfb20dcac in SceneUtil::ShadowsBin::~ShadowsBin() /home/elsid/dev/openmw/components/sceneutil/shadowsbin.hpp:16
#60 0x55fcfb20dcac in SceneUtil::ShadowsBin::~ShadowsBin() /home/elsid/dev/openmw/components/sceneutil/shadowsbin.hpp:16
#61 0x55fcfab4a3f3 in osg::Referenced::signalObserversAndDelete(bool, bool) const /home/elsid/dev/OpenSceneGraph/src/osg/Referenced.cpp:292
#62 0x55fcfa6cc17f in osg::Referenced::unref() const /home/elsid/dev/OpenSceneGraph/include/osg/Referenced:201
#63 0x55fcfa6cc17f in osg::ref_ptr<osgUtil::RenderBin>::~ref_ptr() /home/elsid/dev/OpenSceneGraph/include/osg/ref_ptr:44
#64 0x55fcfa6cc17f in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, osg::ref_ptr<osgUtil::RenderBin> >::~pair() /usr/include/c++/11.1.0/bits/stl_pair.h:211
#65 0x55fcfa6cc17f in void __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, osg::ref_ptr<osgUtil::RenderBin> > > >::destroy<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, osg::ref_ptr<osgUtil::RenderBin> > >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, osg::ref_ptr<osgUtil::RenderBin> >*) /usr/include/c++/11.1.0/ext/new_allocator.h:162
#66 0x55fcfa6cc17f in void std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, osg::ref_ptr<osgUtil::RenderBin> > > > >::destroy<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, osg::ref_ptr<osgUtil::RenderBin> > >(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, osg::ref_ptr<osgUtil::RenderBin> > > >&, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, osg::ref_ptr<osgUtil::RenderBin> >*) /usr/include/c++/11.1.0/bits/alloc_traits.h:531
#67 0x55fcfa6cc17f in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, osg::ref_ptr<osgUtil::RenderBin> >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, osg::ref_ptr<osgUtil::RenderBin> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, osg::ref_ptr<osgUtil::RenderBin> > > >::_M_destroy_node(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, osg::ref_ptr<osgUtil::RenderBin> > >*) /usr/include/c++/11.1.0/bits/stl_tree.h:623
#68 0x55fcfa6cc17f in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, osg::ref_ptr<osgUtil::RenderBin> >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, osg::ref_ptr<osgUtil::RenderBin> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, osg::ref_ptr<osgUtil::RenderBin> > > >::_M_drop_node(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, osg::ref_ptr<osgUtil::RenderBin> > >*) /usr/include/c++/11.1.0/bits/stl_tree.h:631
#69 0x55fcfa6cc17f in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, osg::ref_ptr<osgUtil::RenderBin> >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, osg::ref_ptr<osgUtil::RenderBin> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, osg::ref_ptr<osgUtil::RenderBin> > > >::_M_erase(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, osg::ref_ptr<osgUtil::RenderBin> > >*) /usr/include/c++/11.1.0/bits/stl_tree.h:1889
#70 0x55fcfa6cc122 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, osg::ref_ptr<osgUtil::RenderBin> >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, osg::ref_ptr<osgUtil::RenderBin> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, osg::ref_ptr<osgUtil::RenderBin> > > >::_M_erase(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, osg::ref_ptr<osgUtil::RenderBin> > >*) /usr/include/c++/11.1.0/bits/stl_tree.h:1887
#71 0x55fcfa6cc122 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, osg::ref_ptr<osgUtil::RenderBin> >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, osg::ref_ptr<osgUtil::RenderBin> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, osg::ref_ptr<osgUtil::RenderBin> > > >::_M_erase(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, osg::ref_ptr<osgUtil::RenderBin> > >*) /usr/include/c++/11.1.0/bits/stl_tree.h:1887
#72 0x55fcfa6cc245 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, osg::ref_ptr<osgUtil::RenderBin> >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, osg::ref_ptr<osgUtil::RenderBin> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, osg::ref_ptr<osgUtil::RenderBin> > > >::~_Rb_tree() /usr/include/c++/11.1.0/bits/stl_tree.h:984
#73 0x55fcfa6cc245 in std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, osg::ref_ptr<osgUtil::RenderBin>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, osg::ref_ptr<osgUtil::RenderBin> > > >::~map() /usr/include/c++/11.1.0/bits/stl_map.h:302
#74 0x55fcfa6cc245 in RenderBinPrototypeList::~RenderBinPrototypeList() /home/elsid/dev/OpenSceneGraph/src/osgUtil/RenderBin.cpp:48
#75 0x55fcfa6cc245 in RenderBinPrototypeList::~RenderBinPrototypeList() /home/elsid/dev/OpenSceneGraph/src/osgUtil/RenderBin.cpp:48
#76 0x55fcfab4a3f3 in osg::Referenced::signalObserversAndDelete(bool, bool) const /home/elsid/dev/OpenSceneGraph/src/osg/Referenced.cpp:292
#77 0x55fcfa6cbcc1 in osg::Referenced::unref() const /home/elsid/dev/OpenSceneGraph/include/osg/Referenced:201
#78 0x55fcfa6cbcc1 in osg::ref_ptr<RenderBinPrototypeList>::~ref_ptr() /home/elsid/dev/OpenSceneGraph/include/osg/ref_ptr:44
#79 0x7f3977bd04a6 in __run_exit_handlers (/usr/lib/libc.so.6+0x3f4a6)
#80 0x7f3977bd064d in exit (/usr/lib/libc.so.6+0x3f64d)
#81 0x7f3977bb8b2b in __libc_start_main (/usr/lib/libc.so.6+0x27b2b)
#82 0x55fcf81ea12d in _start (/home/elsid/dev/openmw/build/gcc/asan/openmw+0xa4412d)
0x6040000ca1b0 is located 32 bytes inside of 48-byte region [0x6040000ca190,0x6040000ca1c0)
freed by thread T0 here:
#0 0x7f397a633d69 in operator delete(void*, unsigned long) /build/gcc/src/gcc/libsanitizer/asan/asan_new_delete.cpp:172
#1 0x55fcfa8d1824 in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > > >::deallocate(std::_Rb_tree_node<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > >*, unsigned long) /usr/include/c++/11.1.0/ext/new_allocator.h:139
#2 0x55fcfa8d1824 in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > > > >::deallocate(std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > > >&, std::_Rb_tree_node<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > >*, unsigned long) /usr/include/c++/11.1.0/bits/alloc_traits.h:492
#3 0x55fcfa8d1824 in std::_Rb_tree<unsigned int, std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> >, std::_Select1st<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > > >::_M_put_node(std::_Rb_tree_node<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > >*) /usr/include/c++/11.1.0/bits/stl_tree.h:565
#4 0x55fcfa8d1824 in std::_Rb_tree<unsigned int, std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> >, std::_Select1st<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > > >::_M_drop_node(std::_Rb_tree_node<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > >*) /usr/include/c++/11.1.0/bits/stl_tree.h:632
#5 0x55fcfa8d1824 in std::_Rb_tree<unsigned int, std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> >, std::_Select1st<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > > >::_M_erase(std::_Rb_tree_node<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > >*) /usr/include/c++/11.1.0/bits/stl_tree.h:1889
#6 0x55fcfa8d18da in std::_Rb_tree<unsigned int, std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> >, std::_Select1st<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > > >::~_Rb_tree() /usr/include/c++/11.1.0/bits/stl_tree.h:984
#7 0x55fcfa8d18da in std::map<unsigned int, osg::ref_ptr<osg::ContextData>, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > > >::~map() /usr/include/c++/11.1.0/bits/stl_map.h:302
#8 0x7f3977bd04a6 in __run_exit_handlers (/usr/lib/libc.so.6+0x3f4a6)
previously allocated by thread T0 here:
#0 0x7f397a632ca1 in operator new(unsigned long) /build/gcc/src/gcc/libsanitizer/asan/asan_new_delete.cpp:99
#1 0x55fcfa8d3aa1 in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > > >::allocate(unsigned long, void const*) /usr/include/c++/11.1.0/ext/new_allocator.h:121
#2 0x55fcfa8d3aa1 in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > > >&, unsigned long) /usr/include/c++/11.1.0/bits/alloc_traits.h:460
#3 0x55fcfa8d3aa1 in std::_Rb_tree<unsigned int, std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> >, std::_Select1st<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > > >::_M_get_node() /usr/include/c++/11.1.0/bits/stl_tree.h:561
#4 0x55fcfa8d3aa1 in std::_Rb_tree_node<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > >* std::_Rb_tree<unsigned int, std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> >, std::_Select1st<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<unsigned int const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<unsigned int const&>&&, std::tuple<>&&) /usr/include/c++/11.1.0/bits/stl_tree.h:611
#5 0x55fcfa8d3aa1 in std::_Rb_tree_iterator<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > > std::_Rb_tree<unsigned int, std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> >, std::_Select1st<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<unsigned int const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > >, std::piecewise_construct_t const&, std::tuple<unsigned int const&>&&, std::tuple<>&&) /usr/include/c++/11.1.0/bits/stl_tree.h:2429
#6 0x55fcfa8cfd91 in std::map<unsigned int, osg::ref_ptr<osg::ContextData>, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, osg::ref_ptr<osg::ContextData> > > >::operator[](unsigned int const&) /usr/include/c++/11.1.0/bits/stl_map.h:501
#7 0x55fcfa8cfd91 in osg::ContextData::createNewContextID() /home/elsid/dev/OpenSceneGraph/src/osg/ContextData.cpp:171
#8 0x55fcfa9be218 in osg::GraphicsContext::createNewContextID() /home/elsid/dev/OpenSceneGraph/src/osg/GraphicsContext.cpp:320
#9 0x55fcfb68d1ef in SDLUtil::GraphicsWindowSDL2::GraphicsWindowSDL2(osg::GraphicsContext::Traits*) /home/elsid/dev/openmw/components/sdlutil/sdlgraphicswindow.cpp:39
#10 0x55fcfa17f93a in OMW::Engine::createWindow(Settings::Manager&) /home/elsid/dev/openmw/apps/openmw/engine.cpp:611
#11 0x55fcfa18398f in OMW::Engine::prepareEngine(Settings::Manager&) /home/elsid/dev/openmw/apps/openmw/engine.cpp:679
#12 0x55fcfa18c4f2 in OMW::Engine::go() /home/elsid/dev/openmw/apps/openmw/engine.cpp:949
#13 0x55fcfa13c9ff in runApplication(int, char**) /home/elsid/dev/openmw/apps/openmw/main.cpp:316
#14 0x55fcfb49f562 in 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
#15 0x55fcfa133114 in main /home/elsid/dev/openmw/apps/openmw/main.cpp:328
#16 0x7f3977bb8b24 in __libc_start_main (/usr/lib/libc.so.6+0x27b24)
SUMMARY: AddressSanitizer: heap-use-after-free /usr/include/c++/11.1.0/bits/stl_function.h:386 in std::less<unsigned int>::operator()(unsigned int const&, unsigned int const&) const
Shadow bytes around the buggy address:
0x0c08800113e0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c08800113f0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c0880011400: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c0880011410: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c0880011420: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
=>0x0c0880011430: fa fa fd fd fd fd[fd]fd fa fa fa fa fa fa fa fa
0x0c0880011440: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c0880011450: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c0880011460: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c0880011470: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c0880011480: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
Shadow gap: cc
==7733==ABORTING
2021-10-20 13:26:25 +02:00
elsid
590a340e6e
Remove redundant ShadowsBin::sCastingPrograms
...
This variable is only used in ShadowsBin constructor and it's initialized each
time before constructor call so required value can be just passed into
ShadowsBin ctor.
Make ShadowsBin default constructor private because it is required by osg even
it's not actually called.
2021-10-20 13:25:21 +02:00
elsid
9d1b7c4a30
Use type alias to avoid long type names and length redefinition for array
2021-10-20 13:25:21 +02:00
elsid
6cfabe252d
Remove redundant ShadowsBinAdder
2021-10-20 13:25:21 +02:00
elsid
06ea47f74b
Fix crash in DetourNavigator::fixupCorridor
...
Handle situation when resulting path does not fit into destination vector.
2021-10-19 22:54:46 +02:00
elsid
e5413c0664
Add functions to compress/decompress vector of bytes
2021-10-18 20:46:22 +02:00
elsid
bb26ba30b6
Add progress reporter type
...
To log/report progress of long duration operations using given time period.
2021-10-18 01:26:10 +02:00
AnyOldName3
9be606a40d
Finish removing old Escape classes
2021-10-17 23:40:34 +01:00
psi29a
d8d16a52e1
Merge branch 'esm_loader' into 'master'
...
Add ESM data loader
See merge request OpenMW/openmw!1301
2021-10-17 19:21:32 +00:00
elsid
046b5f83ee
Add ESM data loader
...
A component to load ESM content files with limited support for record types and
selection which of them to load. Supported record types are:
ACTI, CELL, CONT, DOOR, GMST, LAND, STAT.
2021-10-17 19:55:29 +02:00
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.
2021-10-17 17:16:21 +02:00
psi29a
62dfbb33d9
Merge branch 'fix_find_path_crash' into 'master'
...
Fix crash in finding path over navmesh (#6338 )
Closes #6338
See merge request OpenMW/openmw!1296
2021-10-17 12:15:14 +00:00
Bo Svensson
01605433cb
quadtreeworld.cpp ( #3174 )
...
Currently, we disable a paging root node that we only need in exterior cells by setting its node mask to 0 when transitioning into an interior cell. Node masks are not ideal for this usage case because Node::getBound is unaware of masks. With this PR we just detach the unused node from the scene graph. _shadowedScene->getBound() in the MWShadowTechnique should return a much better value in interior cells with these changes.
2021-10-16 21:48:13 +02:00
elsid
c88367b6a6
Add sqlite3 helpers
2021-10-16 17:43:08 +02:00
elsid
f6d1689bb9
Avoid redundant polygon path reallocations
...
Use separate variable to store size and make all operations in-place.
2021-10-14 23:48:14 +02:00
elsid
79665cea66
Avoid access to the path vector element out of range
...
polygonPath.front() in some cases might reference to a first element of empty
vector. Copy the value into a local variable to be able to access later.
2021-10-14 23:46:50 +02:00
Bo Svensson
db3d938ee9
cleans up BSAFile ( #3177 )
...
We currently build a large map of a BSAFile's contents unused by Open MW. We already map archive contents in VFS. With this PR we remove the map from BSAFile and reimplement its only current use in BSATool.
2021-10-14 14:46:44 +02:00
Dan Church
42bd10f356
Fix FTBFS against older versions of osg
...
Bring back osg version guard.
Drawable::dirtyGLObjects wasn't available until OpenSceneGraph-3.5.10.
2021-10-13 13:55:16 -05:00
Evil Eye
ec6451e93a
Merge branch 'recordtype' into 'master'
...
Avoid copying std::string in MWWorld::Ptr::getTypeDescription()
See merge request OpenMW/openmw!1290
2021-10-13 17:04:32 +00:00
Bo Svensson
617eec338a
removes version guard ( #3173 )
...
We currently use a version guard to adapt to a change in the number of parameters supplied to osg::TriangleFunctor's operator() template functor. The differing parameter is unused in our code. Crucially, operator() is not an override, so we can just add a default value for the differing parameter. Such a default allows us to apply identical code to both versions of the library without regressing functionality.
2021-10-13 16:12:47 +02:00
Bo Svensson
b0132be53f
do not dirty unchanged arrays ( #3164 )
...
This PR proposes a simple change to `RigGeometry` `dirtyGLObjects` logic.
1. We will avoid dirtying unmodified arrays.
2. We can drop an osg version guard since `Drawable::dirtyGLObjects` is not nearly as harmful as `Geometry::dirtyGLObjects`.
3. We will avoid crashes in an as yet unfinished future PR concerning `Array` sharing improvements.
2021-10-12 13:47:42 +02:00
psi29a
67fa8413f3
Merge branch 'physics_heightfield' into 'master'
...
Replace float type for arguments to create heightfield with int
See merge request OpenMW/openmw!1285
2021-10-12 07:58:34 +00:00
psi29a
207a7245bc
Merge branch 'navigator_settings' into 'master'
...
Initialize navigator max climb and max slope settings in makeSettingsFromSettingsManager
See merge request OpenMW/openmw!1283
2021-10-12 07:02:08 +00:00
Petr Mikheev
a8acc19988
Avoid copying std::string in MWWorld::Ptr::getTypeDescription()
2021-10-12 00:18:23 +02:00
elsid
405e814190
Move btCollisionObject creation for MWPhysics::Object into components
2021-10-11 23:14:02 +02:00
elsid
7c5a590890
Replace float type for arguments to create heightfield with int
...
To reduce amount of computations on the caller side and restrict possible
values.
* verts can't be non-int because it's a number of things.
* worldsize is initially defined as int by ESM::Land::REAL_SIZE.
* Put function to calculate heightfied shift into components to be able to
reuse by other binaries.
2021-10-11 19:28:08 +02:00
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.
2021-10-11 18:50:26 +02:00
Bo Svensson
93848ef01c
avoids virtual function calls in ComputeLightSpaceBounds ( #3167 )
...
osg::NodeVisitor is designed to recursively call virtual apply signatures until we find an implemented signature. Encountered nodes that we do not explicitely handle will trigger additional virtual function calls. With this PR we avoid these additional virtual function calls in the particularly costly ComputeLightSpaceBounds by adding some explicit signatures.
2021-10-11 15:11:59 +02:00
Bo Svensson
98f8295765
allows to skip ComputeLightSpaceBounds traversal ( #3152 )
...
Currently, we always traverse the scene graph an additional time with a ComputeLightSpaceBounds visitor during shadow casting. ComputeLightSpaceBounds is only useful when the shadow casting mask allows us to shrink the bounds of the rendered scene, so we guard its traversal with a check against getCastsShadowTraversalMask. In practice, this guard never works because we build the traversal mask inclusively.
With this PR we limit the getCastsShadowTraversalMask check to relevant masks. This new check allows us to skip a superfluous ComputeLightSpaceBounds traversal with most settings.
2021-10-11 11:27:50 +02:00
psi29a
f9124ccea6
Merge branch 'recast_mesh_slope' into 'master'
...
Use different colors for walkable and non-walkable recast mesh triangles
See merge request OpenMW/openmw!1277
2021-10-11 08:56:04 +00:00
psi29a
f014edd27c
Merge branch 'fix_write_recast_mesh' into 'master'
...
Fix writing to file for RecastMesh
See merge request OpenMW/openmw!1278
2021-10-11 08:20:33 +00:00
Bo Svensson
7c50f823d8
devirtualises BSAFile ( #3161 )
...
Currently, Open MW's basic file access speed is limited by a peculiar layer of virtualisation in BSAFile's interface. This PR removes such virtualisation by properly separating BSAFile from CompressedBSAFile in low level contexts.
2021-10-11 10:09:48 +02:00
AnyOldName3
1b83b08d80
Merge remote-tracking branch 'upstream/master' into detain-hash
...
Tests which no longer work are commented out.
Some of these don't work because they're effectively testing for the
presence of bugs in the old implementation.
Others don't work because we're no longer accidentally disabling the
boost::program_options feature where it generates an error if only part
of a token gets consumed.
These will be fixed by later commits.
2021-10-10 23:50:50 +01:00
Bo Svensson
c2d836c6c4
optimises riggeometry.cpp ( #3165 )
...
We skip this during node path iterations. this is not a node we are interested in.
We avoid allocating a new mGeomToSkelMatrix per frame and avoid a ref_ptr associated with its update.
We speed up a search for the Skeleton node by adding a continue; condition prior to an expensive dynamic_cast.
2021-10-10 18:37:34 +02:00
Bo Svensson
031871cd48
speeds up optimizer ( #3162 )
...
We can expect marginally improved loading times with this PR. Drawable, Transform and Node counts in stats panels are expected to remain unchanged - this PR does not add new scene graph optimisations, it just increases the speed with which we apply existing ones.
1. We add explicit `NodeVisitor::apply` overrides for commonly encountered node types to avoid additional virtual function calls per node associated with the default `apply` implementation.
2. We skip pushing `StateSet`s when `_mergeAlphaBlending` is enabled or the `StateSet` contains no relevant state.
3. We add a specialised variant of `CollectLowestTransformsVisitor::addTransform` accepting `MatrixTransform` to avoid matrix copies and multiplications.
2021-10-10 18:09:15 +02:00
elsid
0c8a811ad5
Render only cached recast mesh
...
To avoid waiting while recast mesh is generating.
Remove redundant continue.
2021-10-10 13:13:57 +02:00
elsid
daff7aba01
Use different colors for walkable and non-walkable triangles
2021-10-09 17:44:25 +02:00
elsid
88ac77df1f
Fix writing to file for RecastMesh
...
Add missing scaling and y, z coordinates swap.
2021-10-09 17:30:37 +02:00
Bo Svensson
b61140b8ba
optimises skeleton.cpp ( #3158 )
...
With this PR we optimise a function that is called quite often when loading new cells.
We remove avoidable dynamic_casts.
We remove an unused pair.second element.
We convert a map to an unordered_map because its ordering is irrelevant in this case.
We avoid adding the root Skeleton node to the bones' node path.
2021-10-09 11:14:22 +02:00
AnyOldName3
af0d399103
Purge all uses of Escape Hash types
2021-10-09 01:49:08 +01:00
psi29a
7af245d205
Merge branch 'sync_sync_with_async' into 'master'
...
Merge logic of sync and async physics simulation
See merge request OpenMW/openmw!1250
2021-10-08 09:35:32 +00:00
psi29a
ae31138686
Merge branch 'options_tests' into 'master'
...
Add tests for openmw options
See merge request OpenMW/openmw!1253
2021-10-08 08:02:40 +00:00
Bo Svensson
5242e2695c
avoids memory allocations within ComputeLightSpaceBounds ( #3156 )
...
Currently, we create a new ComputeLightSpaceBounds visitor per frame. Within this visitor, we require excessive memory allocations, mainly a new osg::RefMatrix per encountered Transform node.
With this PR we reuse a single ComputeLightSpaceBounds visitor across frames and enable the createOrReuseMatrix functionality to avoid allocating new matrices every frame. osgUtil::CullVisitor internally uses the same approach.
2021-10-08 09:56:55 +02:00
psi29a
88d5b4a90b
Merge branch 'variable_function' into 'master'
...
Parse local variables sharing a name with a function as variables
Closes #6291
See merge request OpenMW/openmw!1269
2021-10-08 06:45:02 +00:00
psi29a
fc7e13d76a
Merge branch 'omwaddon_dep' into 'master'
...
Allow creating omwaddons without a dependency on an omwgame
See merge request OpenMW/openmw!1243
2021-10-08 06:40:43 +00:00
Bret Curtis
8d37d79d6c
Merge pull request #3154 from bosvensson1/patch-29
...
improves RemoveRedundantNodesVisitor performance for large children vectors
2021-10-07 15:00:38 +02:00
Bo Svensson
08608da62c
optimizer.cpp
2021-10-07 08:29:38 +00:00
AnyOldName3
cf3596fbb4
Add copyright preamble
2021-10-07 00:44:50 +01:00
AnyOldName3
e382f71aea
Add implementation of config file parser lifted from Boost
2021-10-07 00:39:23 +01:00
Evil Eye
5037def3b3
Parse local variables sharing a name with a function as variables
2021-10-06 21:27:08 +02:00
Bo Svensson
87d52dc1fd
fixes coverity-ci warning
2021-10-06 10:04:03 +00:00
Bo Svensson
cd4d76f8c5
discard off-screen lights ( #3120 )
...
Currently, we run culling tests against all lights in the scene during LightListCallback::pushLightState. We can avoid most of these tests by removing off-screen lights at an earlier stage. We should benchmark the cumulative time spent within LightListCallback::pushLightState before and after this PR.
2021-10-06 11:53:24 +02:00
Bo Svensson
787f91211d
resets state updater to apply light settings ( #3141 )
...
resets state updater to apply light settings
With this PR we achieve the same effect with fewer lines of code.
2021-10-06 11:21:30 +02:00
psi29a
c3f5e8f968
Merge branch 'lua_transform' into 'master'
...
3D transforms in Lua
See merge request OpenMW/openmw!1235
2021-10-06 09:21:21 +00:00
elsid
035307b012
Add tests for openmw options
...
In attempt to document current behaviour. Add commented out checks as desired
behaviour.
2021-10-05 22:51:12 +02:00
fredzio
21dbe314bf
Use common function for sync and async case. Now both cases follow the
...
same flow, synchronous simulation is just a special case.
2021-10-05 15:44:20 +02:00
Bo Svensson
4b1c009ffd
use StateSet define for translucentFramebuffer ( #3138 )
...
With this PR we test out osg's shader define system for a somewhat harmless feature. As we can see, our code becomes more concise and efficient in this case. Most importantly, we no longer create unneeded vertex shader objects.
2021-10-05 14:37:08 +02:00
Bo Svensson
b2af81bc18
converts remaining osg::NodeCallback ( #3147 )
...
With this PR we convert remaining instantiations of the deprecated osg::NodeCallback in Open MW to SceneUtil::NodeCallback.
2021-10-05 14:21:12 +02:00
Bo Svensson
3f731cd102
attempts to fix spellcasting freezes ( #3146 )
...
Firstly, this PR reintroduces commit "Recreate a special case for IntersectionVisitor on QuadTreeWorld" we forgot to reapply while reverting a revert commit. Secondly, in cases we still need to build a view for an intersection visitor, we now use the available `osgUtil::IntersectionVisitor::getReferenceEyePoint` instead of falling back to the origin position that was previously causing long rebuild times.
2021-10-04 22:00:31 +02:00
Bo Svensson
14d15dcfac
cleans up osgacontroller.cpp ( #3142 )
...
`handle_stateset` is not needed because `UpdateMatrixTransform` is a `NodeCallback` only allowed to be set on a `Node`. `Geode` and `Drawable` do not need explicit logic because they are both derived from `Node`.
2021-10-04 12:20:33 +02:00
Bo Svensson
aaf7b423d6
adds a replacement for osg::NodeCallback ( #3144 )
...
* nodecallback.hpp
* lightmanager.hpp
* lightmanager.cpp
* lightmanager.hpp
* nodecallback.hpp
* nodecallback.hpp
* [ci skip]
* lightmanager.hpp
* nodecallback.hpp
* nodecallback.hpp
* lightmanager.cpp
* lightmanager.cpp
* nodecallback.hpp
* [ci skip]
* [ci skip]
* controller.cpp
* [ci skip]
* osgacontroller.cpp
* keyframe.hpp
* controller.hpp
* keyframe.hpp
* [ci skip]
* keyframe.hpp
* animation.hpp
* [ci skip]
* weaponanimation.cpp
* nodecallback.hpp
2021-10-04 10:56:55 +02:00
psi29a
2c8c36fe5d
Merge branch 'master' into 'effective_magic'
...
# Conflicts:
# CHANGELOG.md
2021-10-01 21:20:08 +00:00
Bo Svensson
2568f119a4
reapplies PR without npe ( #3137 )
...
* avoids creating empty statesets on drawables
Currently, we attempt to skip creating state on drawable nodes when this state matches the default state. This attempt is incomplete because we still create an avoidable empty stateset in the default case.
* renderingmanager.cpp
* nifloader.cpp
* nifloader.cpp
* shadervisitor.cpp
2021-10-01 10:11:00 +02:00
Petr Mikheev
24ecdc37a7
Fix crash in LuaUtil::ScriptsContainer::~ScriptsContainer()
2021-09-30 03:01:38 +02:00
Evil Eye
dc1fe62dde
Overhaul magic effects to work with onApply and onEnd events
2021-09-29 19:25:10 +02:00
Andrei Kortunov
e109d86489
Revert "avoids creating empty statesets on drawables ( #3132 )"
...
This reverts commit 957c25a491
.
2021-09-29 21:01:22 +04:00
Bret Curtis
b7c1d9edb0
remove unnecessary includes
2021-09-29 17:13:40 +02:00
Bo Svensson
d8707a763f
fixes build ( #3134 )
...
* quadtreeworld.cpp
* renderingmanager.cpp [ci skip]
* quadtreeworld.hpp
* cellborder.hpp
* cellborder.cpp
2021-09-29 17:10:58 +02:00
Bret Curtis
803195a05f
add back some explicit includes
2021-09-29 16:29:10 +02:00
Bo Svensson
8358418555
set the correct program link parameters ( #3110 )
...
* shadermanager.hpp setProgramTemplate
* shadermanager.hpp
* shadermanager.cpp setProgramTemplate
* shadervisitor.hpp setProgramTemplate
* shadervisitor.cpp setProgramTemplate
* scenemanager.cpp setProgramTemplate
* scenemanager.hpp setProgramTemplate
* renderingmanager.cpp
* groundcover.cpp setProgramTemplate
* groundcover.hpp
* groundcover.cpp
* shadervisitor.cpp
* util.cpp
* lightmanager.cpp
* scenemanager.cpp
* scenemanager.hpp
* lightmanager.cpp
* lightmanager.cpp
* lightmanager.cpp
* scenemanager.hpp [ci skip]
* water.cpp
* groundcover.cpp
* shadermanager.hpp
2021-09-29 15:40:37 +02:00
Bo Svensson
957c25a491
avoids creating empty statesets on drawables ( #3132 )
...
* avoids creating empty statesets on drawables
Currently, we attempt to skip creating state on drawable nodes when this state matches the default state. This attempt is incomplete because we still create an avoidable empty stateset in the default case.
* renderingmanager.cpp
* nifloader.cpp
2021-09-29 09:58:19 +02:00
Andrei Kortunov
fc2076db1a
Fix MSVC warnings about local variables redeclaration ( #3130 )
2021-09-29 09:36:05 +02:00
Petr Mikheev
48538d5cef
3D transforms in Lua
2021-09-28 20:37:47 +02:00
psi29a
5794a3b346
Merge branch 'lua_raycasting' into 'master'
...
Lua raycasting
Closes #6098
See merge request OpenMW/openmw!1175
2021-09-28 08:50:40 +00:00
Bo Svensson
e41fe7573a
avoids creating empty statesets for collada nodes ( #3128 )
...
* avoids creating empty statesets for collada nodes
With this PR we avoid creating empty statesets for collada nodes which will be detrimental to osg's draw performance.
* scenemanager.cpp
2021-09-28 10:17:12 +02:00
Petr Mikheev
fb3917fc1a
Lua callbacks
2021-09-28 09:36:23 +02:00
Bo Svensson
5fde6867a2
removes unused code ( #3129 )
...
* scenemanager.cpp
* scenemanager.hpp
* scenemanager.cpp
* stats.cpp
* renderingmanager.cpp
2021-09-28 09:07:49 +02:00
Bret Curtis
9fabf99250
remove mDebugChunks from chunkManager
2021-09-27 21:38:12 +02:00
Bo Svensson
01cc61087b
improves paging preloader ( #3126 )
...
* Return check for distance when we try to reuse data
* [ci skip]
* [ci skip]
* [ci skip]
* [ci skip]
* [ci skip]
* cellpreloader.cpp
* [ci skip]
* [ci skip]
* [ci skip]
* [ci skip]
* [ci skip]
* [ci skip]
* [ci skip]
* [ci skip]
* quadtreeworld.cpp
* chunkmanager.cpp
* chunkmanager.cpp
* cellpreloader.cpp
* jvoisin
* whitespace
* whitespace
2021-09-27 21:32:18 +02:00
Bo Svensson
3f68ddd8f4
alternate debug chunks ( #3127 )
...
* quadtreeworld.cpp
* chunkmanager.cpp
* chunkmanager.hpp
* quadtreeworld.hpp
* chunkmanager.cpp
* quadtreeworld.cpp
* quadtreeworld.cpp
* quadtreeworld.cpp [ci skip]
* quadtreeworld.hpp
* quadtreeworld.cpp
* quadtreeworld.cpp
* quadtreeworld.cpp
* chunkmanager.cpp
* chunkmanager.cpp
2021-09-27 21:25:39 +02:00
psi29a
782e0710af
Merge branch 'OpenCS-preserve-blocked' into 'master'
...
OpenCS - Preserve "blocked" record flags when saving. #6288
Closes #6288
See merge request OpenMW/openmw!1052
2021-09-27 19:21:20 +00:00
psi29a
47eda85b9f
Merge branch 'master' into 'the_goal_is_elevation'
...
# Conflicts:
# CHANGELOG.md
2021-09-27 19:10:33 +00:00
Bo Svensson
c6f7137ee1
fixes bugs with share state ( #3111 )
...
* optimizer.cpp merge fix
* objectpaging.cpp
* optimizer.hpp setSharedStateManager
* optimizer.cpp shareState
* scenemanager.cpp shareState
* scenemanager.cpp
* optimizer.cpp
* optimizer.cpp
* scenemanager.cpp
* optimizer.cpp
2021-09-27 20:41:24 +02:00
Evil Eye
c679565893
Make names starting with digits use normal name parsing code
2021-09-26 22:13:53 +02:00
Petr Mikheev
413ac067ec
Allow creating omwaddons without a dependency on an omwgame
2021-09-26 17:44:28 +02:00
psi29a
aa11238be1
Merge branch 'colladaalphatest' into 'master'
...
Collada alpha testing
See merge request OpenMW/openmw!1177
2021-09-26 15:26:02 +00:00
elsid
98a7d90ee2
Assume SIGSTKSZ is not a constant
...
SIGSTKSZ is not defined as constant since glibc 2.34:
https://sourceware.org/git/?p=glibc.git;a=commit;h=6c57d320484988e87e446e2e60ce42816bf51d53
2021-09-24 19:45:43 +02:00
Cédric Mocquillon
b676d93e03
Use a pair of iterator to represents a range for directory listing
2021-09-24 14:17:34 +02:00
Bo Svensson
d38c8c6dcb
optimise chunk drawing order ( #3116 )
...
* material.cpp
* material.cpp
2021-09-21 22:41:07 +02:00
Evil Eye
786b6b7c9a
Merge branch 'lua_util' into 'master'
...
Move LuaState::makeReadOnly(sol::table) out of the class
See merge request OpenMW/openmw!1229
2021-09-21 15:14:09 +00:00
unelsson
67894349a9
Add a check for OPAQUE_BIN
2021-09-19 22:38:07 +03:00
unelsson
f2a894024a
Change debug levels
2021-09-19 22:38:07 +03:00
unelsson
ec0b36d21d
Don't make a new osg::depth to alpha tested node
2021-09-19 22:38:07 +03:00
unelsson
96f02ab32c
Per-material alpha testing for collada
2021-09-19 22:38:07 +03:00
unelsson
40497d6fe5
Set depth testing for alpha blend & test, depth writes off for blend.
2021-09-19 22:38:07 +03:00
unelsson
b3d1d106af
Collada alpha testing and uniforms
2021-09-19 22:38:07 +03:00
Evil Eye
6d7cb38834
Remove duplicate GetSquareRoot implementation
2021-09-19 19:53:38 +02:00
Petr Mikheev
2f25257a3e
Move LuaState::makeReadOnly(sol::table) out of the class because it doesn't need to access LuaState internals.
2021-09-19 14:38:27 +02:00
Bo Svensson
095f4b2ed5
material.cpp ( #3117 )
2021-09-19 13:13:28 +02:00
Bret Curtis
8d86d90782
remove whitespace
2021-09-18 22:00:26 +02:00
Bo Svensson
179f91276a
lightmanager.cpp ( #3121 )
2021-09-18 18:21:11 +02:00
psi29a
68db9869f5
Merge branch 'DistantTerrainDebugChunks' into 'master'
...
Debug terrain chunks
See merge request OpenMW/openmw!1169
2021-09-18 15:21:26 +00:00
psi29a
18f5762a76
Merge branch 'master' into 'OpenCS-preserve-blocked'
...
# Conflicts:
# CHANGELOG.md
2021-09-18 15:20:26 +00:00
elsid
b9825afb8a
Fix build with system static OpenSceneGraph
...
* Add dependency to libraries required by OSG but missing when linking with OSG
system library.
* Use find_package for already defined dependencies.
2021-09-17 19:59:11 +02:00
Bo Svensson
f62adab43a
Avoid the terrain sync completely in most cases ( #3103 )
...
We can take elsid's commit 605cb8d
further by avoiding the terrain sync completely in most cases. Currently in changeCellGrid we wait for a new preloading task to ensure the getPagedRefnums for the new active cells have been filled in by object paging. This is usually not necessary because we have already completed a preload in the past containing these active cells. With this PR we remember what we preloaded and skip the terrain sync if it is not needed.
2021-09-16 22:11:19 +02:00
psi29a
24d1c2b5fa
Merge branch 'recurse_directory_iterator' into 'master'
...
VFS manager refactoring
See merge request OpenMW/openmw!1218
2021-09-15 07:20:52 +00:00
psi29a
7e3ed9605b
Merge branch 'qt_moc_notes' into 'master'
...
Remove 'no relevant classes' moc warning. Fix : #6201
Closes #6201
See merge request OpenMW/openmw!1206
2021-09-15 07:08:25 +00:00
Cédric Mocquillon
6817282097
Move getFileExtension to common header and use instead of repeating same code
2021-09-14 18:09:55 +02:00
Cédric Mocquillon
c2df0949e2
Change normalizeFilename signature
2021-09-14 18:09:55 +02:00
Cédric Mocquillon
d4e26746a3
Use recurse subdirectory iterator to iterate over the VFS without exposing internal details
2021-09-14 18:09:54 +02:00
Bo Svensson
2cebd19432
shadervisitor.cpp
2021-09-14 11:37:23 +00:00
Bo Svensson
3415f12e12
shadervisitor.cpp
2021-09-14 11:30:07 +00:00
pi03k
e4eeb9cce9
Remove 'no relevant classes' moc warning
2021-09-14 11:20:18 +02:00
Bo Svensson
6d12a240a3
shadervisitor.cpp uniform
2021-09-12 09:23:36 +00:00
Bo Svensson
52a9b4d989
shadowsbin.cpp uniform
2021-09-12 09:21:10 +00:00
Cédric Mocquillon
d7352ded36
Add configurable color and offset
2021-09-11 21:53:05 +02:00
Cédric Mocquillon
4b7d0bba53
Avoid adding redundant osg;;Group in non debug mode
2021-09-11 21:53:04 +02:00
Cédric Mocquillon
98a0819d52
Debug terrain chunks
2021-09-11 21:53:04 +02:00
Bo Svensson
ac72f3d636
reduces virtual function calls in a hotspot of cache retrieval ( #3100 )
...
* chunkmanager.cpp static_cast [ci skip]
* groundcover.cpp static_cast [ci skip]
* Update objectpaging.cpp
objectpaging.cpp static_cast [ci skip]
2021-09-10 17:58:57 +02:00
psi29a
01a8998e3b
return if source is null in mergeUserData
2021-09-10 14:04:11 +00:00
Bo Svensson
9d661359a1
Groundcover consolidation ( #3096 )
...
* chunkmanager.hpp viewdistance
* chunkmanager.cpp viewdistance
* chunkmanager.hpp viewdistance
* quadtreeworld.cpp viewdistance
* quadtreeworld.cpp consolidate
* quadtreeworld.hpp consolidate
* renderingmanager.cpp groundcover consolidate
* renderingmanager.hpp groundcover consolidate
* renderingmanager.cpp updater move
* renderingmanager.hpp updater move
* groundcover.hpp activegrid consolidation
* groundcover.cpp activegrid consolidation
* settings-default.cfg dead settings remove
* viewdata.cpp revert
* wrong file paste mistake
* wrong file paste mistake
* wrong file paste mistake
* renderingmanager.cpp updatecallback fix
* renderingmanager.cpp namespace fix
* groundcover.hpp redefinition fix
* groundcover.cpp redefinition fix
* renderingmanager.cpp crash fix
* renderingmanager.cpp euclidean groundcover distance
* viewdata.hpp getreusedistance
* quadtreeworld.cpp reusedistance
* groundcover.rst [ci skip]
2021-09-09 23:10:22 +02:00
Bo Svensson
afba1884ab
clone.cpp remove dynamic_cast ( #3097 )
2021-09-09 23:04:11 +02:00
Bo Svensson
147ed39900
This PR solves a crash with Robert's bodies logged on your bugtracker. ( #3095 )
...
* attach.cpp [ci skip]
* attach.cpp [ci skip]
* attach.cpp [ci skip]
* npcanimation.cpp [ci skip]
* attach.hpp [ci skip]
* attach.cpp [ci skip]
* creatureanimation.cpp [ci skip]
* creatureanimation.cpp [ci skip]
* cellpreloader.cpp
* npcanimation.cpp
* attach.cpp
* make android adk happy
* make android adk happy
* changelog.md [ci skip]
* authors.md [ci skip]
2021-09-09 22:56:57 +02:00
psi29a
ac3fda0b3d
Merge branch 'string_view' into 'master'
...
Pass std::string_view instead of const std::string&
See merge request OpenMW/openmw!1209
2021-09-09 20:41:16 +00:00
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.
2021-09-09 18:39:50 +02:00
Bret Curtis
0eb753767f
Merge pull request #3098 from bosvensson1/findbynamevisitor
...
visitor.cpp early out
2021-09-09 11:52:09 +02:00
Bo Svensson
d36c373cc7
visitor.cpp early out
2021-09-08 17:23:35 +00:00
elsid
605cb8db7c
Make sync terrain preloading sleep free
...
This reduces average time spent on in. 5 milliseconds as a base precision is
quite a lot considering that for 60 FPS frame time is 1000/16 = ~16.67 ms
when it's a cell loading frame and there is more important work to do rather
than sleeping.
2021-09-07 14:52:42 +02:00
elsid
b0f772af40
Define dependency to OSG plugins in one place
...
Each binary depending on components library requires OSG plugins to be linked.
Duplicating dependecies for each binary does not give benefits and brings
problems when new binary is added.
2021-09-06 22:44:52 +02:00
jvoisin
cb08f490d7
Sprinkle some const-ref in loop
...
This was done on the good advices of clang-tidy
2021-09-04 20:50:59 +02:00
Petr Mikheev
76320aae45
Merge branch 'const_ret_val' into 'master'
...
Don't use `const` for objects returned by value.
See merge request OpenMW/openmw!1183
2021-09-04 12:41:52 +00:00
jvoisin
d4e3575f1d
Don't use const
for objects returned by value.
...
This prevents the usage of std::move semantics,
and makes clang-tidy sad.
2021-09-01 22:23:50 +02:00
Petr Mikheev
33d4d88447
Function LuaUtil::toString
2021-08-31 09:41:58 +02:00
jvoisin
deb2af6acc
Dont copy-construct from a const-ref when used only as a const-ref
...
This also makes clang-tiny a bit happier
2021-08-29 20:22:34 +02:00
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.
2021-08-28 09:42:54 +10:00
psi29a
e8057d9fd1
Merge branch 'aipursue_path' into 'master'
...
Make AiPursue path destination to be as close as possible to target (#6211 )
Closes #6211
See merge request OpenMW/openmw!1154
2021-08-26 07:55:12 +00:00
elsid
ee63ee9d93
Fix coverity warning
...
CID 332936 (#1 of 1): Result is not floating-point (UNINTENDED_INTEGER_DIVISION)
integer_division: Dividing integer expressions size and 2, and then converting
the integer quotient to type float. Any remainder, or fractional part of the
quotient, is ignored.
2021-08-25 18:34:45 +02:00
psi29a
7cc58fa20d
Merge branch 'navmesh_fix_remove_tiles' into 'master'
...
Fix removing navmesh tiles at high player speed
See merge request OpenMW/openmw!1151
2021-08-25 13:27:14 +00:00
Alexei Dobrohotov
0922d0b105
Clean up text key extraction
2021-08-22 05:56:30 +03:00
psi29a
9751717b35
Merge branch 'components_qt' into 'master'
...
Do no link binaries with Qt where it's not used
See merge request OpenMW/openmw!1157
2021-08-20 19:29:42 +00:00
elsid
0066c446f8
Remove navmesh tiles outside allowed range first
...
* Change job change type to remove when tile is outside allowed range.
* Swap try number and change type in job priority. To make sure remove jobs
always processed before any other.
2021-08-20 20:16:59 +02:00
elsid
0f11acf709
Report more stats from AsyncNavMeshUpdater
2021-08-20 20:16:59 +02:00
elsid
431501e23a
Remove redundant job distribution between threads
...
Instead don't take jobs from queue until job for the same tile is processing.
2021-08-20 20:16:56 +02:00
elsid
e9b8933b2f
Do no link binaries with Qt where it's not used
...
Define components_qt static library with all qt dependent components that also
depends on other components. Link only cs, wizard and launcher with qt
dependent components.
2021-08-20 19:02:09 +02:00
psi29a
f3b634807f
Merge branch 'fix_asan_warning' into 'master'
...
Fix ASAN warning
See merge request OpenMW/openmw!1159
2021-08-20 07:23:37 +00:00
elsid
277a1268c0
Avoid access to removed map item
...
To fix ASAN warning:
=11799==ERROR: AddressSanitizer: heap-use-after-free on address 0x60c000436058 at pc 0x55c90acccaa8 bp 0x7f787eeac830 sp 0x7f787eeac820
READ of size 8 at 0x60c000436058 thread T18
#0 0x55c90acccaa7 in std::operator==(std::_Deque_iterator<std::_List_iterator<DetourNavigator::Job>, std::_List_iterator<DetourNavigator::Job>&, std::_List_iterator<DetourNavigator::Job>*> const&, std::_Deque_iterator<std::_List_iterator<DetourNavigator::Job>, std::_List_iterator<DetourNavigator::Job>&, std::_List_iterator<DetourNavigator::Job>*> const&) /usr/include/c++/11.1.0/bits/stl_deque.h:269
#1 0x55c90acccaa7 in std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > >::empty() const /usr/include/c++/11.1.0/bits/stl_deque.h:1311
#2 0x55c90acccaa7 in operator() /home/elsid/dev/openmw/components/detournavigator/asyncnavmeshupdater.cpp:350
#3 0x55c90acccaa7 in wait_until<std::chrono::_V2::steady_clock, std::chrono::duration<long int, std::ratio<1, 1000000000> >, DetourNavigator::AsyncNavMeshUpdater::getNextJob()::<lambda()> > /usr/include/c++/11.1.0/condition_variable:151
#4 0x55c90acccaa7 in wait_for<long int, std::ratio<1, 1000>, DetourNavigator::AsyncNavMeshUpdater::getNextJob()::<lambda()> > /usr/include/c++/11.1.0/condition_variable:175
#5 0x55c90acccaa7 in DetourNavigator::AsyncNavMeshUpdater::getNextJob() /home/elsid/dev/openmw/components/detournavigator/asyncnavmeshupdater.cpp:353
#6 0x55c90accdb2d in DetourNavigator::AsyncNavMeshUpdater::process() /home/elsid/dev/openmw/components/detournavigator/asyncnavmeshupdater.cpp:257
#7 0x55c90acce464 in operator() /home/elsid/dev/openmw/components/detournavigator/asyncnavmeshupdater.cpp:98
#8 0x55c90acce464 in __invoke_impl<void, DetourNavigator::AsyncNavMeshUpdater::AsyncNavMeshUpdater(const DetourNavigator::Settings&, DetourNavigator::TileCachedRecastMeshManager&, DetourNavigator::OffMeshConnectionsManager&)::<lambda()> > /usr/include/c++/11.1.0/bits/invoke.h:61
#9 0x55c90acce464 in __invoke<DetourNavigator::AsyncNavMeshUpdater::AsyncNavMeshUpdater(const DetourNavigator::Settings&, DetourNavigator::TileCachedRecastMeshManager&, DetourNavigator::OffMeshConnectionsManager&)::<lambda()> > /usr/include/c++/11.1.0/bits/invoke.h:96
#10 0x55c90acce464 in _M_invoke<0> /usr/include/c++/11.1.0/bits/std_thread.h:253
#11 0x55c90acce464 in operator() /usr/include/c++/11.1.0/bits/std_thread.h:260
#12 0x55c90acce464 in _M_run /usr/include/c++/11.1.0/bits/std_thread.h:211
#13 0x7f78c38fd3c3 in execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:82
#14 0x7f78c36b1258 in start_thread (/usr/lib/libpthread.so.0+0x9258)
#15 0x7f78c35da5e2 in __GI___clone (/usr/lib/libc.so.6+0xfe5e2)
0x60c000436058 is located 88 bytes inside of 120-byte region [0x60c000436000,0x60c000436078)
freed by thread T0 here:
#0 0x7f78c688cd69 in operator delete(void*, unsigned long) /build/gcc/src/gcc/libsanitizer/asan/asan_new_delete.cpp:172
#1 0x55c90acdbe20 in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > > > >::deallocate(std::_Rb_tree_node<std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > > >*, unsigned long) /usr/include/c++/11.1.0/ext/new_allocator.h:139
#2 0x55c90acdbe20 in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > > > > >::deallocate(std::allocator<std::_Rb_tree_node<std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > > > >&, std::_Rb_tree_node<std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > > >*, unsigned long) /usr/include/c++/11.1.0/bits/alloc_traits.h:492
#3 0x55c90acdbe20 in std::_Rb_tree<std:🧵 :id, std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > >, std::_Select1st<std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > > >, std::less<std:🧵 :id>, std::allocator<std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > > > >::_M_put_node(std::_Rb_tree_node<std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > > >*) /usr/include/c++/11.1.0/bits/stl_tree.h:565
#4 0x55c90acdbe20 in std::_Rb_tree<std:🧵 :id, std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > >, std::_Select1st<std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > > >, std::less<std:🧵 :id>, std::allocator<std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > > > >::_M_drop_node(std::_Rb_tree_node<std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > > >*) /usr/include/c++/11.1.0/bits/stl_tree.h:632
#5 0x55c90acdbe20 in std::_Rb_tree<std:🧵 :id, std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > >, std::_Select1st<std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > > >, std::less<std:🧵 :id>, std::allocator<std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > > > >::_M_erase(std::_Rb_tree_node<std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > > >*) /usr/include/c++/11.1.0/bits/stl_tree.h:1889
#6 0x55c90acc0569 in std::_Rb_tree<std:🧵 :id, std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > >, std::_Select1st<std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > > >, std::less<std:🧵 :id>, std::allocator<std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > > > >::clear() /usr/include/c++/11.1.0/bits/stl_tree.h:1254
#7 0x55c90acc0569 in std::map<std:🧵 :id, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > >, std::less<std:🧵 :id>, std::allocator<std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > > > >::clear() /usr/include/c++/11.1.0/bits/stl_map.h:1134
#8 0x55c90acc0569 in DetourNavigator::AsyncNavMeshUpdater::~AsyncNavMeshUpdater() /home/elsid/dev/openmw/components/detournavigator/asyncnavmeshupdater.cpp:105
#9 0x55c90acab2dc in DetourNavigator::NavigatorImpl::~NavigatorImpl() (/home/elsid/dev/openmw/build/gcc/asan/openmw+0x2d152dc)
#10 0x55c9097db4b5 in std::default_delete<DetourNavigator::Navigator>::operator()(DetourNavigator::Navigator*) const /usr/include/c++/11.1.0/bits/unique_ptr.h:85
#11 0x55c9097db4b5 in std::unique_ptr<DetourNavigator::Navigator, std::default_delete<DetourNavigator::Navigator> >::~unique_ptr() /usr/include/c++/11.1.0/bits/unique_ptr.h:361
#12 0x55c9097db4b5 in MWWorld::World::~World() /home/elsid/dev/openmw/apps/openmw/mwworld/worldimp.cpp:534
#13 0x55c9097dc3a4 in MWWorld::World::~World() /home/elsid/dev/openmw/apps/openmw/mwworld/worldimp.cpp:534
#14 0x55c90a1925e4 in MWBase::Environment::cleanup() /home/elsid/dev/openmw/apps/openmw/mwbase/environment.cpp:192
#15 0x55c90a1f544d in OMW::Engine::~Engine() /home/elsid/dev/openmw/apps/openmw/engine.cpp:434
#16 0x55c90a1f6700 in OMW::Engine::~Engine() /home/elsid/dev/openmw/apps/openmw/engine.cpp:455
#17 0x55c90a19d523 in std::default_delete<OMW::Engine>::operator()(OMW::Engine*) const /usr/include/c++/11.1.0/bits/unique_ptr.h:85
#18 0x55c90a19d523 in std::unique_ptr<OMW::Engine, std::default_delete<OMW::Engine> >::~unique_ptr() /usr/include/c++/11.1.0/bits/unique_ptr.h:361
#19 0x55c90a19d523 in runApplication(int, char**) /home/elsid/dev/openmw/apps/openmw/main.cpp:320
#20 0x55c90a955634 in 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
#21 0x55c90a193be0 in main /home/elsid/dev/openmw/apps/openmw/main.cpp:328
#22 0x7f78c3503b24 in __libc_start_main (/usr/lib/libc.so.6+0x27b24)
previously allocated by thread T18 here:
#0 0x7f78c688bca1 in operator new(unsigned long) /build/gcc/src/gcc/libsanitizer/asan/asan_new_delete.cpp:99
#1 0x55c90ace8c73 in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > > > >::allocate(unsigned long, void const*) /usr/include/c++/11.1.0/ext/new_allocator.h:121
#2 0x55c90ace8c73 in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > > > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > > > >&, unsigned long) /usr/include/c++/11.1.0/bits/alloc_traits.h:460
#3 0x55c90ace8c73 in std::_Rb_tree<std:🧵 :id, std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > >, std::_Select1st<std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > > >, std::less<std:🧵 :id>, std::allocator<std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > > > >::_M_get_node() /usr/include/c++/11.1.0/bits/stl_tree.h:561
#4 0x55c90ace8c73 in std::_Rb_tree_node<std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > > >* std::_Rb_tree<std:🧵 :id, std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > >, std::_Select1st<std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > > >, std::less<std:🧵 :id>, std::allocator<std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > > > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<std:🧵 :id const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<std:🧵 :id const&>&&, std::tuple<>&&) /usr/include/c++/11.1.0/bits/stl_tree.h:611
#5 0x55c90ace8c73 in std::_Rb_tree_iterator<std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > > > std::_Rb_tree<std:🧵 :id, std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > >, std::_Select1st<std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > > >, std::less<std:🧵 :id>, std::allocator<std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > > > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<std:🧵 :id const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > > >, std::piecewise_construct_t const&, std::tuple<std:🧵 :id const&>&&, std::tuple<>&&) /usr/include/c++/11.1.0/bits/stl_tree.h:2429
#6 0x55c90accc5fb in std::map<std:🧵 :id, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > >, std::less<std:🧵 :id>, std::allocator<std::pair<std:🧵 :id const, std::deque<std::_List_iterator<DetourNavigator::Job>, std::allocator<std::_List_iterator<DetourNavigator::Job> > > > > >::operator[](std:🧵 :id const&) /usr/include/c++/11.1.0/bits/stl_map.h:501
#7 0x55c90accc5fb in DetourNavigator::AsyncNavMeshUpdater::getNextJob() /home/elsid/dev/openmw/components/detournavigator/asyncnavmeshupdater.cpp:344
#8 0x55c90accdb2d in DetourNavigator::AsyncNavMeshUpdater::process() /home/elsid/dev/openmw/components/detournavigator/asyncnavmeshupdater.cpp:257
#9 0x55c90acce464 in operator() /home/elsid/dev/openmw/components/detournavigator/asyncnavmeshupdater.cpp:98
#10 0x55c90acce464 in __invoke_impl<void, DetourNavigator::AsyncNavMeshUpdater::AsyncNavMeshUpdater(const DetourNavigator::Settings&, DetourNavigator::TileCachedRecastMeshManager&, DetourNavigator::OffMeshConnectionsManager&)::<lambda()> > /usr/include/c++/11.1.0/bits/invoke.h:61
#11 0x55c90acce464 in __invoke<DetourNavigator::AsyncNavMeshUpdater::AsyncNavMeshUpdater(const DetourNavigator::Settings&, DetourNavigator::TileCachedRecastMeshManager&, DetourNavigator::OffMeshConnectionsManager&)::<lambda()> > /usr/include/c++/11.1.0/bits/invoke.h:96
#12 0x55c90acce464 in _M_invoke<0> /usr/include/c++/11.1.0/bits/std_thread.h:253
#13 0x55c90acce464 in operator() /usr/include/c++/11.1.0/bits/std_thread.h:260
#14 0x55c90acce464 in _M_run /usr/include/c++/11.1.0/bits/std_thread.h:211
#15 0x7f78c38fd3c3 in execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:82
Thread T18 created by T0 here:
#0 0x7f78c682bfa7 in __interceptor_pthread_create /build/gcc/src/gcc/libsanitizer/asan/asan_interceptors.cpp:216
#1 0x7f78c38fd6aa in 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
#2 0x55c90ae008d1 in DetourNavigator::NavMeshManager::NavMeshManager(DetourNavigator::Settings const&) /home/elsid/dev/openmw/components/detournavigator/navmeshmanager.cpp:47
#3 0x55c90aca3bfe in DetourNavigator::NavigatorImpl::NavigatorImpl(DetourNavigator::Settings const&) /home/elsid/dev/openmw/components/detournavigator/navigatorimpl.cpp:13
#4 0x55c9097d9e6f in MWWorld::World::World(osgViewer::Viewer*, osg::ref_ptr<osg::Group>, Resource::ResourceSystem*, SceneUtil::WorkQueue*, Files::Collections const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, ToUTF8::Utf8Encoder*, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/elsid/dev/openmw/apps/openmw/mwworld/worldimp.cpp:196
#5 0x55c90a1e9992 in OMW::Engine::prepareEngine(Settings::Manager&) /home/elsid/dev/openmw/apps/openmw/engine.cpp:789
#6 0x55c90a1ed138 in OMW::Engine::go() /home/elsid/dev/openmw/apps/openmw/engine.cpp:949
#7 0x55c90a19d4cb in runApplication(int, char**) /home/elsid/dev/openmw/apps/openmw/main.cpp:316
#8 0x55c90a955634 in 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
#9 0x55c90a193be0 in main /home/elsid/dev/openmw/apps/openmw/main.cpp:328
#10 0x7f78c3503b24 in __libc_start_main (/usr/lib/libc.so.6+0x27b24)
SUMMARY: AddressSanitizer: heap-use-after-free /usr/include/c++/11.1.0/bits/stl_deque.h:269 in std::operator==(std::_Deque_iterator<std::_List_iterator<DetourNavigator::Job>, std::_List_iterator<DetourNavigator::Job>&, std::_List_iterator<DetourNavigator::Job>*> const&, std::_Deque_iterator<std::_List_iterator<DetourNavigator::Job>, std::_List_iterator<DetourNavigator::Job>&, std::_List_iterator<DetourNavigator::Job>*> const&)
Shadow bytes around the buggy address:
0x0c188007ebb0: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd
0x0c188007ebc0: fd fd fd fd fd fd fd fd fa fa fa fa fa fa fa fa
0x0c188007ebd0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c188007ebe0: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00
0x0c188007ebf0: 00 00 00 00 00 00 07 fa fa fa fa fa fa fa fa fa
=>0x0c188007ec00: fd fd fd fd fd fd fd fd fd fd fd[fd]fd fd fd fa
0x0c188007ec10: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00
0x0c188007ec20: 00 00 00 00 00 00 02 fa fa fa fa fa fa fa fa fa
0x0c188007ec30: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c188007ec40: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00
0x0c188007ec50: 00 00 00 00 00 00 00 fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
Shadow gap: cc
==11799==ABORTING
2021-08-19 23:24:47 +02:00
elsid
fea4fb6e69
Make AiPursue path destination to be as close as possible to target
...
Even when target is not reachable actor will try to run there either because
target navmesh polygon is selected within extended area or because partial path
is built to the closest possible polygon.
2021-08-18 23:44:36 +02:00
glassmancody.info
d63eb3325f
fix coverity warning and build on some osg
2021-08-17 17:45:50 -07:00
psi29a
6360bdc859
Merge branch 'navmesh_job' into 'master'
...
Store async navmesh jobs in the same container until they are processed
See merge request OpenMW/openmw!1131
2021-08-17 09:20:54 +00:00
psi29a
6595c731f7
Merge branch 'fix_rc_poly_mesh_flags_length' into 'master'
...
Fix flags length for rcPolyMesh
See merge request OpenMW/openmw!1134
2021-08-17 09:19:32 +00:00
psi29a
faa3e04494
Merge branch 'const_reff' into 'master'
...
Sprinkle some const-ref
See merge request OpenMW/openmw!1145
2021-08-17 08:20:13 +00:00
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