1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-02-03 17:54:06 +00:00

1324 Commits

Author SHA1 Message Date
psi29a
52ca14d881 Merge branch 'cast_spell' into 'master'
Minor refactor of CastSpell

See merge request OpenMW/openmw!2365
2022-09-04 19:01:50 +00:00
Evil Eye
4eafe3696c Move explodeSpell out of World 2022-09-04 14:01:36 +02:00
psi29a
647b22e175 Merge branch 'DistantLOD' into 'master'
Support for TES distant LOD

See merge request OpenMW/openmw!1861
2022-09-04 11:36:07 +00:00
Evil Eye
bd4322360d Always create touch explosions for non-actors 2022-09-03 22:43:29 +02:00
Cédric Mocquillon
83ee25711e Use the pattern according to the esm version 2022-09-03 18:55:06 +02:00
psi29a
58d08d402a Merge branch 'navigator_stats' into 'master'
Show stats for writing and reading navmesh db queue jobs

See merge request OpenMW/openmw!2346
2022-08-30 21:12:54 +00:00
Evil Eye
fb9bc5f535 Use string_view in Fallback::Map 2022-08-28 17:20:49 +02:00
elsid
c15848932b
Separate reading navigator stats and reporting 2022-08-28 14:52:34 +02:00
Evil Eye
19bd2f3c3d Use more string_view and const string& 2022-08-27 13:07:59 +02:00
psi29a
c260a0d4c2 Merge branch 'string_me_along' into 'master'
Yet another string_view MR

See merge request OpenMW/openmw!2333
2022-08-25 08:53:28 +00:00
elsid
948e2f5db9
Do not use collision shapes with visual only collision to generate navmesh
These collision shapes are not used for actors movement physics simulation.
2022-08-25 00:56:03 +02:00
Evil Eye
0cded25033 Remove various string copies 2022-08-24 20:38:52 +02:00
Evil Eye
0df45a90b3 Use string_view in the remaining Class methods and push string_views closer to the MyGUI boundary 2022-08-23 22:14:27 +02:00
psi29a
1f5277349c Merge branch 'span' into 'master'
Replace Misc::Span by std::span

See merge request OpenMW/openmw!2324
2022-08-22 17:34:51 +00:00
Evil Eye
150d1840d6 Use more string_view and const string& 2022-08-22 16:55:53 +02:00
elsid
e4a254deb7
Replace Misc::Span by std::span 2022-08-21 23:53:27 +02:00
psi29a
2a2268ea8b Merge branch 'optimize_navigator_update' into 'master'
Optimize navigator per frame update

See merge request OpenMW/openmw!2308
2022-08-21 20:12:30 +00:00
psi29a
7c899364af Merge branch 'consistently_hostile' into 'master'
Clear the magic queue when unloading actors

Closes #6954

See merge request OpenMW/openmw!2317
2022-08-21 20:05:46 +00:00
Evil Eye
443420ea60 CI compare cells 2022-08-21 14:46:13 +02:00
Evil Eye
a547608289 Preserve effect indices when applying AoE and targeted spells 2022-08-21 12:44:07 +02:00
elsid
e1bed86d7e
Do single navigator update per frame
Primarily for crossing cell border case. Each Navigator::update call has a cost.
Doing it multiple times per frame increased frame duration on cell loading.

Call Navigator::wait only when cell has changed but do not use
Scene::hasCellChanged because it doesn't always indicates it.
2022-08-20 19:15:55 +02:00
psi29a
b382e92953 Merge branch 'please_dont_copy_my_nfts' into 'master'
Prevent various values from being copied

See merge request OpenMW/openmw!2267
2022-08-16 08:36:34 +00:00
elsid
b1fb42a28c
Cleanup detournavigator includes 2022-08-15 19:46:10 +02:00
Evil Eye
51938f9ef7 Use string_view in Interpreter::Context 2022-08-12 19:42:35 +02:00
Evil Eye
685906afdf Make getScript return string_view 2022-08-11 22:51:55 +02:00
Evil Eye
de51525c76 Allow string_view lookups in MWWorld::Store and get some use out of that 2022-08-09 20:43:14 +02:00
elsid
8b8e4f78b6
Support cylinder and rotating box collision shape types for actors
Cylinder collision shape should give the best consistency between physics
simulation and pathfinding. Rotating box is already used by some actors, so
add it to have the same collision shape type for all actors.
2022-07-30 14:28:21 +02:00
Alexei Kotov
a914d7a9b0 Spellcasting timing fixes (bug #4227)
Play spellcasting animation and VFX (but not hand VFX) if spellcasting failed due to insufficient magicka
Apply spellcasting fatigue loss when the spellcasting starts instead of when the spell is applied
2022-07-29 16:24:28 +03:00
elsid
0614b82452
Restore UnrefQueue to destruct animation asynchronously 2022-07-24 21:08:43 +02:00
Petr Mikheev
643e33c11a Merge branch 'lua_pathfinding_bindings' into 'master'
Add bindings for navigator utils functions (#6690)

See merge request OpenMW/openmw!2128
2022-07-20 23:52:16 +00:00
elsid
27cc901e76
Add bindings for navigator utils functions 2022-07-21 00:04:26 +02:00
ζeh Matt
841fd9618f
Rename DrawState_ to DrawState and use enum class 2022-07-17 20:50:26 +03:00
Andrei Kortunov
38042fd7a2 Init missing variables 2022-07-05 17:47:52 +04: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
Cody Glassman
051832d7ae [Lua] Set simulation time scale 2022-07-03 12:51:28 +00:00
Andrei Kortunov
aa349f2ed9 Initialize some missing variables 2022-07-03 15:44:50 +04:00
elsid
ce263af393
Use existing functions and objects to call correctMeshPath etc
Remove WindowManager wrappers.

It's not safe to use WindowManager in all places and it's not required.
Environment stores resource system providing VFS required to call these
functions. In the case of ObjectPaging it's available from the member variable.
Also ObjectPaging::createChunk may access WindowManager when it's already
destructed when exiting the game because it's destructed before CellPreloader
finishes all background jobs. Engine::mResourceSystem is destructed after all
other systems so it's safe to use it.
2022-06-29 00:58:49 +02:00
elsid
1a5932a669
Move std::ostream& operator<< to .cpp 2022-06-26 22:43:53 +02:00
elsid
fdf6e58ea3
Split apps/openmw/mwmechanics/actorutil.hpp 2022-06-26 16:42:29 +02: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
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
Evil Eye
aa2fab8db5 Enable collision for postponed objects when any object is disabled 2022-06-19 20:16:31 +02:00
uramer
fd7965d77f Use correctMeshPath instead of string constants 2022-06-12 11:30:29 +02: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
jvoisin
72a6d1f69f Clean up bullet includes 2022-06-04 20:15:10 +02: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
psi29a
af82140dda Merge branch 'filter_physics_actors' into 'master'
Do not perform physics simulation for actors outside processing range

See merge request OpenMW/openmw!1934
2022-05-29 19:19:35 +00:00
Evil Eye
3c83117e99 Replace new with make_unique in openmw 2022-05-29 13:24:48 +02:00
elsid
ac5844cad2
Do not perform physics simulation for actors outside processing range
Actors with disabled collisions still have physics simulations. Assuming they
should not be processed at all instead of disabling collision add a new flag to
make them inactive.
2022-05-26 10:36:03 +02:00