1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-02-01 01:15:33 +00:00
Commit graph

17707 commits

Author SHA1 Message Date
glassmancody.info
d63eb3325f fix coverity warning and build on some osg 2021-08-17 17:45:50 -07: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
cc9cii
b1fb3e2313 Add missing includes. 2021-08-17 13:53:14 +10:00
cc9cii
47a841d3b7 Fix/workaround for Issue #3246
OpenMW save file assumes the presence of NPC/Creature data but the vanilla save file provides only the delta changes in most situations.  The base data are not available without loading all the relevant dependency content files.  Duplicating that code in the ESSImporter is not desirable.

Ideally a flag should be set but that will mean a change in the save file format.  For a minor change such as this doing so seems like an overkill.  So a temporary workaround is introduced where the gold carried by the NPC/Creature is used as an indicator as the lack of ACDT data.
2021-08-17 12:29:28 +10:00
Alexei Dobrohotov
6c1ac9ed9f Merge branch 'init_sky' into 'master'
Use an initialization list in WrapAroundOperator's constructor

See merge request OpenMW/openmw!1146
2021-08-16 01:19:28 +00:00
Alexei Dobrohotov
7665ebfa67 Merge branch 'another_fix' into 'master'
Fix #6219

Closes #6219

See merge request OpenMW/openmw!1137
2021-08-16 01:15:52 +00:00
Alexei Dobrohotov
873e16ae93 Merge branch 'emp' into 'master'
Use an emplace instead of an insert

See merge request OpenMW/openmw!1144
2021-08-16 01:14:36 +00:00
elsid
f966fdb65e Merge branch 'noweak' into 'master'
use shared_ptr inside the physics simulation to simplify the code

See merge request OpenMW/openmw!1141
2021-08-15 21:59:47 +00:00
jvoisin
ff2a51a484 Use an initialization list in WrapAroundOperator's constructor 2021-08-15 19:57:20 +02:00
jvoisin
7a015d24c6 Sprinkle some const-ref 2021-08-15 19:50:28 +02:00
jvoisin
0792bb212a Use an emplace instead of an insert 2021-08-15 18:57:33 +02:00
glassmancody.info
ed72f3335b silence compiler warning 2021-08-15 08:02:00 -07:00
fredzio
ec871e6bf7 Use shared_ptr instead of weak_ptr for actors handle inside the
simulation

The purpose of weak_ptr is to avoid performing the simulation on deleted
Actor by promoting it to a shared_ptr via a lock() call. This clutter
the code with a lot of branches, whereas the overwhelmingly common case is for the call to succeed.
Since the simulation is decoupled from the engine state, we can use a shared_ptr instead of a weak_ptr.
This allow us to ignore (ie not handle) the rarer case where the actor is delete from the scene. This means that the simulation
will run for one frame more than before for each actor, whereas the rest of the engine
will be ignorant of this.
2021-08-15 16:21:16 +02:00
AnyOldName3
7400050b38 Merge branch 'character_preview_alpha_fix' into 'master'
Fix transparent objects being invisible in character doll

See merge request OpenMW/openmw!1140
2021-08-15 00:01:23 +00:00
glassmancody.info
6cc71745ac ensure character preview is using standard depth 2021-08-14 14:50:33 -07:00
Mads Buvik Sandvei
d40c18234a Double buffering the water's node position uniform 2021-08-14 17:41:58 +00:00
fredzio
713f612bdb Partially revert !1046: the player is added before the scene exists, so we need to check again the grounded state, as it correctly was. 2021-08-13 18:01:16 +02:00
jvoisin
b01ef2629c Fix two Wreorder clang warnings 2021-08-13 13:59:57 +02: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
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
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
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
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