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
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
3caf45807f
Use common implementation to filter hidden markers
2021-08-12 22:35:16 +02:00
Cédric Mocquillon
b0b60b05b8
Do not update doors markers at each frame, only when needed
2021-08-12 22:10:45 +02:00
unelsson
298db2ef76
Initialize and check pointer.
2021-08-12 22:31:37 +03:00
unelsson
f1d05a93bf
Get index and model from proxy
2021-08-12 22:28:16 +03:00
jvoisin
bcdd0f55da
Merge branch 'bc_refnum' into 'master'
...
Always print object refnum
See merge request OpenMW/openmw!1123
2021-08-12 10:18:55 +00:00
elsid
e84a177a91
Always print object refnum
...
Also print content file index even when it's negative. To be able to identify
the object unambiguously.
2021-08-12 02:02:25 +02:00
fredzio
de9ee2f196
Revert "Calls directly MovementSolver::traceDown instead of"
...
This reverts commit c1e50f530b
.
2021-08-11 21:53:04 +02:00
Petr Mikheev
0e6fbbc126
Lua package 'openmw.input'
2021-08-10 19:00:52 +03:00
psi29a
45b45b3560
Merge branch 'fix_op_bzzt_whoopsie' into 'master'
...
resolve issue of OP meshes that cross boundaries
See merge request OpenMW/openmw!1117
2021-08-10 15:50:33 +00:00
Bret Curtis
c99bddc8dc
Revert "Move reference to the right cell according to its geographical position"
...
This reverts commit d0677c3f07
.
2021-08-09 22:11:00 +02:00
Bret Curtis
7dfaef7644
resolve issue of meshes that cross boundaries; should only be calculating the maxBound, not the minBound of y; also fix it in groundcover as it was copied blindly over;
2021-08-09 22:05:12 +02:00
Cédric Mocquillon
bfc9ea9e32
Fix warning on MSVC convertion from double to float
2021-08-09 19:43:35 +02:00
Cédric Mocquillon
b0e30e4bb6
Change setting to clamp the local viewing distance to fix value (instead of coeff)
2021-08-09 19:43:34 +02:00
Cédric Mocquillon
b27de8f188
Disable zooming when setting is off
2021-08-09 19:43:34 +02:00
Alexei Dobrohotov
73e83fd3d8
Merge branch 'dontcrash' into 'master'
...
Fix #6208 (hopefully)
Closes #6208
See merge request OpenMW/openmw!1113
2021-08-09 17:10:11 +00:00
fredzio
8e3984ae5a
Clear mActors when reseting the simulation. Otherwise during next run we can try to read past the end of mActorsFrameData.
2021-08-09 14:46:41 +02:00
jvoisin
586d8684d0
Fix two coverity issues about uninitialised variables
2021-08-09 12:43:30 +02:00
psi29a
cb7a4d20dd
Merge branch 'killmutex' into 'master'
...
Remove mutex from PtrHolder
See merge request OpenMW/openmw!1110
2021-08-08 19:45:16 +00:00
psi29a
3afa9829b3
Merge branch 'tracedown' into 'master'
...
Correct calls to traceDown in addActor
See merge request OpenMW/openmw!1109
2021-08-08 19:41:53 +00:00
fredzio
c1e50f530b
Calls directly MovementSolver::traceDown instead of
...
PhysicsSystem::traceDown before inserting into mActors.
The latter does nothing until the actor is inserted into mActors.
We can't move the call after the insertion either because then
the actor is part of the simulation, and we'd have a race.
2021-08-08 18:26:35 +02:00
AnyOldName3
8d93748f87
Fix rebase issue
2021-08-08 17:25:57 +01:00
AnyOldName3
cf15803e67
Disable triangle detection workaround when Bullet actually uses triangles
2021-08-08 16:53:14 +01:00
AnyOldName3
8b4c2d205d
WIP-ish glPolygonOffset for Bullet debug geometry
2021-08-08 16:53:08 +01:00
fredzio
b4dd9e6b4d
Avoid division by zero in movementsolver when an actor is immobile and
...
in a storm
2021-08-08 17:19:18 +02:00
fredzio
ee09f3095f
At last kill PtrHolder mutex
2021-08-08 15:05:07 +02:00
fredzio
07fa1803f7
Use btCollisionObject* instead of MWWorld::Ptr inside of Projectile
...
collision handling and castRay() to avoid calling getPtr(). It is a step forward
removing the mutex inside of PtrHolder.
Do the same for DeepestNotMeContactTestResultCallback. It is used
only for not-ranged combat for now, but do it anyway for parity with all
other callback. This way, once the PtrHolder mutex is gone one will not
have to worry about wether it is safe to use the callback in a specific
context.
To avoid use-after-free with projectile / projectile collision, defer deletion of projectile.
Since instead of storing a copy of target Ptr we have a pointer to its collision object,
we can't delete projectiles until after we finished iterating over the loops.
2021-08-08 15:05:07 +02:00
fredzio
e88b94d0b0
Move btCollisionObject* into PtrHolder
...
Remove unused function
2021-08-08 15:05:07 +02:00
psi29a
8ad3d3d792
Merge branch 'freezeandcool' into 'master'
...
Don't use FreezeOnCull for any particle system (#4744 )
Closes #4744
See merge request OpenMW/openmw!1103
2021-08-08 12:35:26 +00:00
psi29a
8c81191d09
Merge branch 'schneller' into 'master'
...
Optimize actors physics simulation
See merge request OpenMW/openmw!1048
2021-08-08 12:27:53 +00:00
Alexei Dobrohotov
1fc7cb8191
Don't use FreezeOnCull for any particle system ( #4744 )
2021-08-08 03:36:35 +03:00
fredzio
5fc3b80406
Don't query actor halfextent in a tight loop, use the already existing
...
variable. These repeated calls become costly with > 150 actors.
2021-08-07 13:38:24 +02:00
fredzio
7dd5e715d7
Compute and store actor half extents. This is faster for 2 reasons:
...
- half extents changes when actor scale is modified, which is very rare
- we don't need to protect them by the actor mutex.
2021-08-07 13:38:24 +02:00
fredzio
bcd6541d3e
Reorganize ActorFrameData members:
...
- constify all read-only variables
- order them so that all variables modified as aprt of the simulation
fits in one cache line
2021-08-07 13:38:24 +02:00
fredzio
0c5cf6ec19
Store the btCollisionObject* of the object we're standing on instead of
...
MWWorld::Ptr:
- they are equivalent
- btCollisionObject* is readily available from the simulation, it saves
a call to a mutex
- btCollisionObject* is smaller
2021-08-07 13:38:24 +02:00
fredzio
26d9052b8c
Move the weak_ptr<Actor> outside of ActorFrameData.
2021-08-07 13:38:24 +02:00
fredzio
f68273c3c0
Remove Actor* from ActorFrameData
2021-08-07 13:38:24 +02:00
fredzio
9e911cc8b5
Introduce helper function to write back updated values inside parent Actor class
2021-08-07 13:38:24 +02:00
fredzio
b04c958410
Modify the way swimming is handled:
...
- compute the swimming state instead of storing it, it changes as part of the simulation and was not updated, so it was wrong anyway.
- store the swim level in ActorFrameData, it is constant per Actor so no need to compute it inside the simulation
2021-08-07 13:38:24 +02:00
fredzio
6e51a9a512
Simplify a bit the solver
2021-08-07 13:38:24 +02:00
fredzio
51514e44cc
Handle jump as part of the simulation preparation (inside of
...
PhysicsSystem) instead of inside the simulaiton.
For mechanics, we don't care how the jump is handled, just that it will be.
2021-08-07 13:38:24 +02:00
fredzio
1bfaf353be
Explicitely store all the potential states an Actor can have into the
...
ActActorFrameData structure. It makes it easier to reason about the
simulation (and hopefully simplify it).
Remove atomics from Actor class as a side effect.
Rename mFloatToSurface to mInert to make is explicit what it represent, not what it is used for
Store the Actor rotation (1 Vec2) instead of the whole ESM::Position (2 Vec3)
2021-08-07 13:38:24 +02:00
fredzio
9472728fa4
Do not generate data for immobile actors instead of early out from the solver
2021-08-07 13:38:24 +02:00
Evil Eye
29921bf9fa
Don't stack cast packages
2021-08-07 10:06:56 +02:00
psi29a
b770373491
Merge branch 'OpenCS-enforce-str-length' into 'master'
...
OpenCS - Disallow entry of strings longer than the lengths allowed by the file format (#3066 )
See merge request OpenMW/openmw!1088
2021-08-06 21:08:09 +00:00
glassmancody.info
09e03fde2e
refactor and fix wobbly shores
2021-08-04 17:49:57 -07:00
glassmancody.info
cad0b151cb
enable shaders path and dehardcode depth formats
2021-08-04 17:39:11 -07:00
glassmancody.info
d89e37d689
add framebuffer extension check and fix issues with manual screenshots
2021-08-04 17:39:11 -07:00
glassmancody.info
70fac33940
initial reverse-z depth implementation
2021-08-04 17:39:11 -07:00
Petr Mikheev
a94072243b
Lua command core.quit
2021-08-04 19:14:24 +03:00
cc9cii
8aee84c46e
Disallow entry of strings longer than the lengths allowed by the file format.
...
It is possible to allow longer strings but that will require an extension in the omwaddon format as well as changes to the reader to handle that extension. Such changes should be a separate MR.
(applied the patch in https://gitlab.com/OpenMW/openmw/-/issues/3066 )
2021-08-04 09:39:18 +10:00
psi29a
9fa7521fc5
Merge branch 'OpenCS-no-charconv' into 'master'
...
OpenCS - Avoid the inclusion of charconv header
See merge request OpenMW/openmw!1087
2021-08-03 23:32:40 +00:00
psi29a
9b7e14ec00
Merge branch 'OpenCS-moved-reference' into 'master'
...
OpenCS - Fix moved reference - Issues #3514 and #4752
See merge request OpenMW/openmw!1051
(cherry picked from commit 2bee171c7990522da33c2667f7d079fa35f4ede0)
36c30f7f Fix for Issue #3514 where moving a reference to another cell is not handled properly.
40327681 Update the changelog.
2021-08-03 23:29:05 +00:00
psi29a
e10e9c0005
Merge branch 'navmesh_reduce_lock_wait' into 'master'
...
Reduce waiting duration on locks when updating navmesh object in the main thread (#6193 )
Closes #6193
See merge request OpenMW/openmw!1079
2021-08-03 23:05:39 +00:00
psi29a
16d04cf76c
Merge branch 'fixtexindex' into 'master'
...
Fix texture index search bug
See merge request OpenMW/openmw!1080
2021-08-03 23:00:33 +00:00
cc9cii
bf06898a79
Retain the use of std::string_view in the function signature.
2021-08-04 08:23:22 +10:00
cc9cii
99e691fbe3
Avoid the inclusion of <charconv> header due to Ubuntu Bionic (18.04) which as gcc version less than 8.1
...
Partially reverts commit fd67ebde25
2021-08-04 06:47:14 +10:00
Petr Mikheev
3ce5e9e680
Improve error messages in components/lua/serialization.cpp
2021-08-03 16:42:26 +03:00
Petr Mikheev
0f7f5ce140
Remove Lua command "self:setDirectControl"
2021-08-03 14:36:51 +03:00
elsid
c8987bda2f
Store reference to BulletShapeInstance for btCollisionShape
...
To keep btCollisionShape lifetime.
2021-08-03 12:21:56 +02:00
elsid
4574e5f565
Remove redundant Navigator API functions
2021-08-03 12:21:55 +02:00
psi29a
bd1bf4ec73
Merge branch 'donoteraseme' into 'master'
...
#6192 : Stop crashing in moveActors()
See merge request OpenMW/openmw!1085
2021-08-03 07:53:13 +00:00
fredzio
bc738c5640
Use extract/insert instead of erase/emplace
...
When we call moveObject(), we might trigger a change of cell for the
actor, which in turn triggers updatePtr(). The erase/emplace
construct invalidate references, whereas extract/insert do not.
The reason is was working before !1075 is because we were always
"refreshing" the reference by a call to getActor().
2021-08-03 07:00:42 +02:00
unelsson
09ee2a0a36
fix texture brush index search
2021-08-01 19:42:41 +03:00
psi29a
4b48e62b64
Merge branch 'fixandclean' into 'master'
...
Fix opencs build and remove some clang warnings
See merge request OpenMW/openmw!1078
2021-08-01 12:11:17 +00:00
fredzio
1391194152
Remove unneeded return statement
2021-08-01 13:14:32 +02:00
fredzio
9ba459662d
Remove unneeded std::move
...
[19/199] Building CXX object apps/opencs/CMakeFiles/openmw-cs.dir/model/world/commands.cpp.o
../../../apps/opencs/model/world/commands.cpp:298:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
mOld = std::move(model.getRecord (id).clone());
^
../../../apps/opencs/model/world/commands.cpp:298:12: note: remove std::move call here
mOld = std::move(model.getRecord (id).clone());
^~~~~~~~~~ ~
../../../apps/opencs/model/world/commands.cpp:333:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
mOld = std::move(model.getRecord (id).clone());
^
../../../apps/opencs/model/world/commands.cpp:333:12: note: remove std::move call here
mOld = std::move(model.getRecord (id).clone());
^~~~~~~~~~ ~
2 warnings generated.
2021-08-01 13:14:32 +02:00
fredzio
36e33b0cf2
Add missing override
2021-08-01 13:14:32 +02:00
fredzio
bede1ea1ec
Fix build
2021-08-01 13:14:32 +02:00
psi29a
15d278de55
Merge branch 'opt-out-compose' into 'master'
...
Make it possible to opt out of composing variables
Closes #6186
See merge request OpenMW/openmw!1076
2021-08-01 08:53:52 +00:00
cc9cii
67cad2c515
Fix CSMWorld::InfoCollection::getTopicRange()
returning one too many.
2021-08-01 15:53:00 +10:00
AnyOldName3
04e9b6d242
Abort on duplicate content file
2021-08-01 03:04:12 +01:00
AnyOldName3
4727ae4b3b
Make it possible to opt out of composing variables
2021-08-01 02:47:10 +01:00
psi29a
547bc4a252
Merge branch 'notonlyactors' into 'master'
...
Refactor the physics simulation to make it not actor centric.
See merge request OpenMW/openmw!1075
2021-07-31 23:39:22 +00:00
psi29a
a3a079acc1
Merge branch 'projstats' into 'master'
...
Add projectiles number to the resources stats
See merge request OpenMW/openmw!1074
2021-07-31 23:12:14 +00:00
psi29a
4c5e6beb75
Merge branch 'canyouseeme' into 'master'
...
Solve actor awareness check without async physics
See merge request OpenMW/openmw!1071
2021-07-31 22:18:35 +00:00
fredzio
35928cf4d3
Refactor a bit the physics simulation to make it not actor centric:
...
- inline PhysicsSystem::applyQueuedMovements() into PhysicsSystem::stepSimulation()
- rename PhysicsTaskScheduler::moveActors() to PhysicsTaskScheduler::applyQueuedMovements()
- move the actor movement code from World::doPhysics() to
PhysicsSystem::moveActors() (analogically to the projectile manager)
2021-07-31 23:39:04 +02:00
psi29a
141095b850
Merge branch 'OpenCS-loading-opt' into 'master'
...
OpenCS loading time improvements
See merge request OpenMW/openmw!1044
2021-07-31 21:27:29 +00:00
fredzio
c76387162b
Add projectiles number to the resources stats
2021-07-31 23:08:50 +02:00
psi29a
ca011927f3
Merge branch 'ObjectPagingDisappearingTexture' into 'master'
...
Move reference to the right cell according to its geographical position
See merge request OpenMW/openmw!1065
2021-07-31 10:58:20 +00:00
Evil Eye
5cdf1e7e6b
Merge branch 'vec3_vs_xyz' into 'master'
...
Use Vec3f instead of x,y,z in World API
See merge request OpenMW/openmw!730
2021-07-31 10:36:11 +00:00
fredzio
a7b190ad29
Change rotateObject() to take a osg::Vec3f argument instead of 3 floats
...
for readability.
2021-07-30 23:24:53 +02:00
fredzio
88a5ca440b
Change moveObject() to take a osg::Vec3f argument instead of 3 floats
...
for readability.
2021-07-30 23:24:49 +02:00
fredzio
4e7c128d25
The LOS cache is now unconditionally used without async physics as well
...
with a TTL of 0 frame. It helps performance when several subsystems
request the same LOS in the same frame (combat, headtracking, etc).
Except it doesn't work if the cache is never trimmed.
2021-07-30 22:23:42 +02:00
Cédric Mocquillon
d0677c3f07
Move reference to the right cell according to its geographical position
2021-07-30 18:28:29 +02:00
psi29a
8c36eb56cf
Merge branch 'stereo_friendly_water' into 'master'
...
Stereo friendly water and statesetupdater
See merge request OpenMW/openmw!563
2021-07-30 11:00:49 +00:00
psi29a
c5d49b44ba
Merge branch 'lua_settings' into 'master'
...
Add Lua package 'openmw.settings'
See merge request OpenMW/openmw!1017
2021-07-30 10:47:15 +00:00
Evil Eye
779795734f
Remove calm/rally/demoralize and turn undead from the wrong targets
2021-07-29 18:23:45 +02:00
Evil Eye
a366a85c4e
Merge branch 'noalloc_dance_for_npcanimation' into 'master'
...
Don't do an unnecessarily complex memory allocation dance in npcanimation.cpp
See merge request OpenMW/openmw!1042
2021-07-28 17:25:28 +00:00
Evil Eye
88d207b0cd
Merge branch 'land' into 'master'
...
Correct creature landing sound type (bug #6118 )
Closes #6118
See merge request OpenMW/openmw!1054
2021-07-28 16:18:44 +00:00
psi29a
ea05b958b8
Merge branch 'FixIssueWithTRData' into 'master'
...
Fix issue with Tamriel Data landscapes
See merge request OpenMW/openmw!1064
2021-07-28 10:16:55 +00:00
psi29a
292e6f1a9e
Merge branch 'seducer_ice_queen' into 'master'
...
Prevent a missing weapon animation from partially freezing actors
See merge request OpenMW/openmw!1060
2021-07-28 09:06:13 +00:00
Cédric Mocquillon
c98b0f713d
If same area is defined in multiple plugin the last must wins
2021-07-28 10:29:16 +02:00
elsid
6adf7b10ae
Fix removing heightfield from navigator
...
It's added not as object so it shouldn't be removed as it.
2021-07-27 20:11:22 +02:00
Petr Mikheev
2938aaf05c
Rename API_VERSION
-> API_REVISION
in Lua API.
2021-07-27 20:06:04 +02:00
Petr Mikheev
3e4c0b775d
Add Lua package 'openmw.settings'
2021-07-27 20:06:04 +02:00
Petr Mikheev
68b8a148d7
Initialize Lua packages in LuaManager::init rather than in constructor.
2021-07-27 19:52:17 +02:00
Evil Eye
977f717f8b
Prevent a missing weapon animation from partially freezing actors
2021-07-27 16:33:07 +02:00