fredzio
a314f196eb
Unconditionally call actor->resetPosition in adjustPosition.
...
Revert broken change that would force adjust all actors in cell upon
loading. That break floating corpses (and probably others things).
2020-12-12 18:17:26 +01:00
Alexei Dobrohotov
15291f15d3
Make actor collision box components a struct
2020-12-11 20:07:59 +03:00
psi29a
11eff02a1d
Merge branch 'Show-more-information-about-level-on-menu' into 'master'
...
Show more information about level on menu
See merge request OpenMW/openmw!437
2020-12-11 12:04:15 +00:00
psi29a
9a35c5815e
Merge branch 'nofallfloor' into 'master'
...
Update physics object position after spawning.
See merge request OpenMW/openmw!449
2020-12-11 11:28:29 +00:00
psi29a
789d034432
Merge branch 'skirts' into 'master'
...
Editor: Properly reserve body parts for skirts (bug #5731 )
Closes #5731
See merge request OpenMW/openmw!452
2020-12-11 11:09:32 +00:00
Frederic Chardon
460e5abb55
Update physics object position after spawning.
2020-12-11 08:57:08 +01:00
Frederic Chardon
899b8422fa
explicitely use a reference, auto can't infer it and make a copy
2020-12-11 08:56:54 +01:00
Alexei Dobrohotov
32601e0ae4
Properly reserve body parts for skirts (bug #5731 )
2020-12-11 10:39:57 +03:00
Coleman Smith
3b9db41346
removing unneeded variable
2020-12-10 17:03:10 -08:00
psi29a
d77f122289
Merge branch 'gl-5199-improve-scene-colors' into 'master'
...
[OpenMW-CS] Issue #5199 : Improve Scene Colors
See merge request OpenMW/openmw!442
2020-12-10 21:36:46 +00:00
Coleman Smith
842ea9d6ed
simplifying a bit
...
- attaching gradient camera directly to the main camera
- using Vec4ub
2020-12-10 21:36:46 +00:00
psi29a
c8fa8cfe74
Merge branch 'herbalmenu' into 'master'
...
Add graphic herbalism to the launcher
Closes #5730
See merge request OpenMW/openmw!448
2020-12-10 21:31:53 +00:00
psi29a
7156b11dbc
be explicit about narrowing to resolve: error: type 'btScalar *' (aka 'float *') cannot be narrowed to 'bool' in initializer list [-Wc++11-narrowing]
2020-12-10 21:30:05 +00:00
Evil Eye
525292b184
Add graphic herbalism to the launcher
2020-12-10 19:02:38 +01:00
psi29a
686692519c
Merge branch 'fix-tests' into 'master'
...
Use correct variable types when loading config for tests
See merge request OpenMW/openmw!446
2020-12-09 21:25:30 +00:00
AnyOldName3
15f03ae375
Merge branch 'logging2' into 'master'
...
Print '--version' and '--help' messages without timestamps
Closes #2686
See merge request OpenMW/openmw!444
2020-12-09 16:27:54 +00:00
psi29a
0e5af74a2f
Merge branch 'masterindexloadfix' into 'master'
...
[OpenMW-CS] Load master index from refId to mContentFile
See merge request OpenMW/openmw!445
2020-12-09 10:12:10 +00:00
AnyOldName3
fd4a62ce35
Use correct variable types when loading config for tests
2020-12-09 00:32:01 +00:00
Petr Mikheev
49c6e50c31
Print '--version' and '--help' messages without timestamps
2020-12-08 23:14:49 +01:00
Nelsson Huotari
61a4a0807b
Load master index in refId to mContentFile, keep master index also in mIndex
2020-12-09 00:10:58 +02:00
psi29a
afaacedf67
Merge branch 'placeatmecrash' into 'master'
...
Don't crash the game when placing a non-actor
See merge request OpenMW/openmw!443
2020-12-08 17:37:01 +00:00
Evil Eye
39ac0cbb4a
Don't crash the game when placing a non-actor
2020-12-08 17:47:25 +01:00
Chris Djali
21de3fa7e8
Merge pull request #3033 from akortunov/main_messages
...
Use a logging system instead of cout for a couple of missing messages
2020-12-08 15:49:19 +00:00
psi29a
fd64aacf7d
Merge branch 'cliherbalism' into 'master'
...
Add a setting to disable graphical herbalism
See merge request OpenMW/openmw!440
2020-12-08 10:02:15 +00:00
fredzio
4fbe1ed12c
Ignore caster collision shape. Sometimes the magic bolt get launched
...
inside too near its caster.
2020-12-08 09:06:34 +01:00
fredzio
7e85235220
Projectile to projectile collision
2020-12-08 09:06:34 +01:00
fredzio
66fe3b0d38
Modify projectile collision to work with async physics
2020-12-08 09:06:33 +01:00
Andrei Kortunov
dc7b48e92e
Generate physics collisions for projectiles (bug #3372 )
...
Remove redundant now mHit field
2020-12-08 09:05:38 +01:00
Andrei Kortunov
242dd8d496
Use a logging system instead of cout for a couple of missing messages
2020-12-08 11:06:30 +04:00
Evil Eye
275b9aea4d
rename setting
2020-12-07 21:56:41 +01:00
Evil Eye
e62fff5f2e
Add a setting to disable graphical herbalism
2020-12-07 19:04:32 +01:00
Andrei Kortunov
807367ca3f
Mark mock methods as overrides (requires GTest 1.10)
2020-12-07 19:09:58 +04:00
CedricMocquillon
6bfdf0e57f
Add more information on mouse over level
2020-12-07 14:57:25 +01:00
psi29a
c2933721c6
Merge branch 'explodespell' into 'master'
...
Make AI cast self-targeted spells at the ground (bug #5695 )
Closes #5695
See merge request OpenMW/openmw!426
2020-12-07 12:35:58 +00:00
psi29a
a3dfdde9ef
Merge branch 'move_actors_into_scene' into 'master'
...
Move actors into the scene after a teleport
See merge request OpenMW/openmw!438
2020-12-07 10:19:32 +00:00
psi29a
c742c15f6d
Merge branch 'autogoesbrr' into 'master'
...
Use range based for loops and auto
See merge request OpenMW/openmw!400
2020-12-07 09:12:50 +00:00
psi29a
b22418d053
Merge branch 'fix_spawn' into 'master'
...
Fix spawn #5724
See merge request OpenMW/openmw!439
2020-12-07 08:20:35 +00:00
fredzio
c6c02a6f16
Remove useless code. ipos is already initialized with the correct
...
values.
2020-12-06 13:26:43 +01:00
fredzio
08e73a09ec
Make the code more compact by mean of std::min / max and ternary
...
operator.
2020-12-06 13:24:42 +01:00
fredzio
b79f6ac808
Force reset position of actor after snapping to the ground. Otherwise
...
the interpolation calculation would kick in and make the actor goes upward if the
spawn point is higher than summoner or downward if lower. The actor
would then either jump or fall through terrain.
2020-12-06 13:20:37 +01:00
Petr Mikheev
5734551ff3
Add time to logs. Redirect OSG log to OpenMW log.
2020-12-05 13:46:02 +01:00
fredzio
7843dad35d
Don't let the actor "nowhere" after a teleport but move them in their
...
place.
This solve the problem where after loading, an empty frame was rendered
because the player is "nowhere".
2020-12-05 01:09:43 +01:00
Evil Eye
078de86e60
Use range based for loops and auto
2020-12-04 18:34:51 +01:00
Alexei Dobrohotov
84e1a29700
Make AI cast self-targeted spells at the ground (bug #5695 )
2020-12-04 00:41:21 +03:00
fredzio
5a4872393a
Rework actor position reset. While solving the issue with invalid
...
position being used under heavy load, I introduced a regression that
prevented the position to be updated in case of teleport.
Move the logic in its own function and decide in PhysicsSystem whether a
reset is needed.
2020-12-03 12:57:57 +01:00
psi29a
6f0b90e606
documented that currently underwater shadows are mutually exclusive to refraction scale; to be fixed in follow up issue #5709 ; documentation fixes
2020-12-02 23:03:10 +00:00
Nelsson Huotari
b0e3bd6ff9
Fix crash caused by QStatusBar
2020-11-29 23:25:34 +02:00
Bret Curtis
16b34c2863
Merge pull request #3029 from akortunov/replace_zeroes
...
Replace zeroes and nulls by nullptrs
2020-11-29 14:50:01 +01:00
psi29a
73ca333c4b
Merge branch 'actorpositionagain' into 'master'
...
Make the physics simulation more robust when overloaded
See merge request OpenMW/openmw!429
2020-11-29 13:48:35 +00:00
Andrei Kortunov
8084a336b5
Replace zeroes and nulls by nullptrs
2020-11-29 11:14:07 +04:00
fredzio
ea2ba27084
Move the moment when the actor origin is saved before simulation so to
...
be sure the simulation is over. Otherwise, if the simulation is too slow
the position is wrong, and the actors would jump back and forth between
old and new position instead of actually moving.
2020-11-28 21:36:45 +01:00
psi29a
dc1bd8ec29
Merge branch 'osgAnimation_basics' into 'master'
...
Collada animation support
See merge request OpenMW/openmw!421
2020-11-28 16:55:26 +00:00
psi29a
96e22bd44e
Merge branch 'fastforwardpos' into 'master'
...
Discard physics simulation results after fast forward
See merge request OpenMW/openmw!423
(cherry picked from commit ff2d7695698341ef059c75707aa092cef48deea4)
03a37433 In case of time fast forward (resting, jail), force reset of positions
2020-11-23 20:15:44 +00:00
AnyOldName3
f8c791fde3
Merge branch 'physics_worker_profile' into 'master'
...
Add the async physics worker to the profiler overlay.
See merge request OpenMW/openmw!422
2020-11-21 00:18:44 +00:00
Frederic Chardon
9aba55a21a
Add the async physics worker to the profiler overlay.
2020-11-20 21:17:47 +01:00
jefetienne
bc6f46465f
Add to changelog, authors. Move variable declaration inside block
2020-11-19 10:34:15 -05:00
jefetienne
2413de38b5
Extend spell/item search to search by magic effect name
2020-11-19 10:34:15 -05:00
Nelsson Huotari
6e77ad1f6a
OSG-Collada animation support
2020-11-19 01:11:56 +02:00
Nelsson Huotari
f78a5d795c
Separate keyframes logic to provide basis for osgAnimation integration.
2020-11-18 22:48:47 +02:00
psi29a
c69b407f8c
Merge branch 'close_the_window_before_you_destroy_the_world' into 'master'
...
Don't unload the world before closing containers
Closes #5689
See merge request OpenMW/openmw!419
2020-11-18 18:19:46 +00:00
Evil Eye
c126d8801f
Fix #5689
2020-11-18 17:28:09 +01:00
AnyOldName3
06d1e70aac
Make Bullet DebugDrawer's default state match the physics system
2020-11-18 15:34:21 +00:00
Frederic Chardon
bb5213670c
Use bigger hammer to set Actor's position after teleporting. Otherwise traceDown() would use old collision object transform and gives incorrect results, making the Actor "fall" in the new position.
2020-11-16 11:35:50 +01:00
fredzio
d64ed6cf53
Get rid of the StandingActorsMap. Just embed the necessary info into
...
Actor class.
2020-11-15 01:58:21 +01:00
psi29a
5362146d24
Merge branch 'interleaved_movements' into 'master'
...
Unbreak lifts & conveyors in Sotha Sil Expanded
See merge request OpenMW/openmw!410
2020-11-15 00:20:24 +00:00
fredzio
e5fa457fe7
Properly account for interleaved move of actors.
...
Before this change, if an actor position was changed while the physics
simulation was running, the simulation result would be discarded. It is
fine in case of one off event such as teleport, but in the case of
scripts making use of this functionality to make lifts or conveyor (such
as Sotha Sil Expanded mod) it broke actor movement.
To alleviate this issue, at the end of the simulation, the position of the Actor
in the world is compared to the position it had at the beginning of the
simulation. A difference indicate a force move occured. In this case,
the Actor mPosition and mPreviousPosition are translated by the difference of position.
Since the Actor position will be really set while the next simulation runs, we
save it in the mNextPosition field.
2020-11-14 20:39:16 +01:00
Alexei Dobrohotov
df9667e923
Read NIF bounding volume data correctly
2020-11-14 14:16:29 +03:00
Alexei Dobrohotov
8a6d3d1b4f
Minor fixes
...
Fix extra semicolon
Disable collision avoidance if AI is disabled
2020-11-13 22:53:12 +03:00
AnyOldName3
1e0df23d14
Merge branch 'shadows-bin' into 'master'
...
Use a custom renderbin to avoid pointless OpenGL state switches
See merge request OpenMW/openmw!402
2020-11-13 16:29:41 +00:00
AnyOldName3
72f7e6a702
Handle all shadow alpha uniforms in shadowsbin
2020-11-12 00:26:30 +00:00
psi29a
ed8342ebc9
Merge branch 'niffile' into 'master'
...
Remove NIFFile settings manager dependency
See merge request OpenMW/openmw!398
2020-11-10 09:03:10 +00:00
Alexei Dobrohotov
c857588ee9
Remove NIFFile settings manager dependency
2020-11-09 14:24:48 +03:00
Alexei Dobrohotov
b523574090
Remove shader visitor settings manager dependency
2020-11-09 13:59:59 +03:00
Andrei Kortunov
0e971dccf0
Rework cure effects
2020-11-04 13:51:10 +04:00
Alexei Dobrohotov
37cce328ca
Merge branch 'basicmath' into 'master'
...
Compute the rotation normal relative to the door axe, not the world.
See merge request OpenMW/openmw!391
2020-11-03 14:34:25 +00:00
Bret Curtis
6efa7eea5a
Merge pull request #3025 from akortunov/iterator
...
Do not remove active effects in the active effects loop
2020-11-02 17:12:45 +01:00
Andrei Kortunov
c1d56d94c4
Do not remove active effects in loop (bug #3789 )
2020-11-02 17:51:36 +04:00
Frederic Chardon
ecd10a731e
Compute the rotation normal relative to the door axe, not the world.
2020-11-02 14:12:42 +01:00
fredzio
18e38d8810
Do not block a door when it turns away.
2020-11-01 23:01:18 +01:00
psi29a
ba3aad31c1
Merge branch 'hitdebug' into 'master'
...
Visualize hits in the debug overlay
See merge request OpenMW/openmw!379
2020-11-01 10:20:14 +00:00
psi29a
7ee7041399
Merge branch 'stretch' into 'master'
...
Put a stretch menu background checkbox into the launcher (#5672 )
Closes #5672
See merge request OpenMW/openmw!387
2020-11-01 09:26:19 +00:00
Alexei Dobrohotov
f49bf028b9
Put a stretch menu background checkbox into the launcher ( #5672 )
2020-11-01 02:14:25 +03:00
Alexei Dobrohotov
53f91a3aa5
Merge pull request #3018 from akortunov/emplace
...
Use emplace_back instead of push_back
2020-11-01 01:58:56 +03:00
fredzio
4876969153
Use the PhysicsSystem::movementQueue instead of a serie of
...
setPosition(getPosition() + diff) to move actor in scripts.
With background physics, this is very slightly off with the collision
object position.
When the script run long enough (a few dozen frames for instance),
the accumulated error becomes too big. It make actors fall through lifts floors.
2020-10-30 23:59:09 +01:00
Evil Eye
7065282127
Save and load container records; fixes #5668
2020-10-29 13:55:24 +01:00
Andrei Kortunov
64ba81ecf2
Fix some issues, found by CoverityScan
2020-10-28 18:02:31 +04:00
psi29a
8f68f08aee
Merge branch 'moonmoon' into 'master'
...
Change moon phase to an enum class
See merge request OpenMW/openmw!381
2020-10-27 19:44:30 +00:00
Evil Eye
3bf5247c0b
remove forward declaration
2020-10-27 19:23:07 +01:00
Alexei Dobrohotov
9763995892
Fix regression #5666
2020-10-27 18:08:14 +03:00
psi29a
74dfc09e2d
Merge branch 'removeitem' into 'master'
...
Fix remove item regression
Closes #5663
See merge request OpenMW/openmw!380
2020-10-26 23:13:35 +00:00
Evil Eye
2c4cafa41a
Change moon phase to an enum class
2020-10-26 22:16:31 +01:00
Evil Eye
0512a574e8
Fix remove item regression
2020-10-26 20:13:24 +01:00
psi29a
f6e4c7cb42
Merge branch 'regionsounds' into 'master'
...
Fix region sounds
See merge request OpenMW/openmw!370
2020-10-26 16:29:45 +00:00
fredzio
e8c0a7bec0
Visualie projectile hits
2020-10-26 13:53:36 +01:00
Frederic Chardon
574ccbf7bd
Visualize hand to hand hits
2020-10-26 13:48:15 +01:00
fredzio
435b2e37f8
Allow to display collision points in the debug viewer
2020-10-26 13:42:46 +01:00
Bret Curtis
4032b754e4
set minimal boost version; remove #ifdef boost version checks
2020-10-25 22:43:10 +01:00
unknown
eae9eafb8c
Merge branch 'master' of gitlab.com:OpenMW/openmw into regionsounds
2020-10-25 14:13:14 +01:00
unknown
eebb320916
Wait for the previous sound to stop
2020-10-25 12:20:14 +01:00
Bret Curtis
f6bead88a9
purge boost/optional.hpp headers
2020-10-25 00:58:44 +02:00
Bret Curtis
62b0781f7d
use std::optional instead of boost::optional
2020-10-25 00:33:41 +02:00
psi29a
957a1425d1
Merge branch 'cleanup_1' into 'master'
...
Cleanup 1
See merge request OpenMW/openmw!365
2020-10-24 18:43:03 +00:00
unknown
1ce296aa7f
Use fallback values for region sounds and fix probability
2020-10-24 18:54:46 +02:00
Bret Curtis
259f7fcf12
Merge pull request #3020 from unelsson/strippluginindex_cs
...
Strip the plugin index when looking for deleted refs.
2020-10-23 21:51:53 +02:00
Nelsson Huotari
b1ea9f6a5b
Strip the plugin index from refid completely
2020-10-23 20:21:34 +03:00
psi29a
6534bc9b74
Merge branch 'config-fixes' into 'master'
...
Config fixes
See merge request OpenMW/openmw!367
2020-10-23 16:40:18 +00:00
AnyOldName3
538314b03a
Make path settings have path type
2020-10-23 15:34:41 +01:00
Alexei Dobrohotov
129bd51672
Add compressed BSA support to bsatool
2020-10-23 14:04:21 +03:00
AnyOldName3
8b28b6e55e
Compose BSA, context and script blacklist lists
...
These would only take their value from the highest priority source, so
specifying `openmw --content anExtraEsp.esp` would override all the
content files in the user cfg file, and the user cfg file would override
any in the global/local one.
2020-10-23 01:58:43 +01:00
AnyOldName3
cf81f1bbb7
Make composing variables compose in the expected order
2020-10-23 01:41:28 +01:00
Bret Curtis
5a824d0333
components/compiler cleanup; also cleaned up related cascading warnings; fixed up final/override issues
2020-10-22 23:57:53 +02:00
AnyOldName3
651a5a27f6
Fix inconsistent indentation
...
This has been irritating me for years.
2020-10-22 21:44:47 +01:00
Bret Curtis
43614e2204
Merge pull request #3021 from akortunov/warnfix
...
Do not use deprecated Qt functions
2020-10-22 17:17:13 +02:00
psi29a
fa1765816f
Merge branch 'somecpp17' into 'master'
...
C++17 cosmetics
See merge request OpenMW/openmw!357
2020-10-22 13:06:15 +00:00
Andrei Kortunov
46a1950b0e
Do not use deprecated Qt functions
2020-10-22 15:50:47 +04:00
fredzio
a19db73eca
Fix bad rebase
2020-10-22 09:24:56 +02:00
fredzio
1357bba0a0
Use some C++17 where it makes the code more readable
...
Also replace boost::optional
2020-10-22 07:15:16 +02:00
fredzio
4fc5b6f6f4
Sort headers
2020-10-22 07:15:16 +02:00
fredzio
212b293803
Use same parameter name in definition and declaration
2020-10-22 07:15:16 +02:00
Alexei Dobrohotov
f1b7cd5404
Don't reset temporarily hidden container window
2020-10-22 02:12:31 +03:00
psi29a
4ae504970f
Merge branch 'blocking' into 'master'
...
Fix lower body blocking animation priority (bug #5656 )
Closes #5656
See merge request OpenMW/openmw!359
2020-10-21 22:32:24 +00:00
psi29a
7f59751946
Merge branch 'standing' into 'master'
...
Fix standing actors logic
See merge request OpenMW/openmw!360
2020-10-21 22:31:01 +00:00
fredzio
2916a9462e
Fix standing actors logic:
...
it is updated in the solver only if the actor is standing on
"something". The ground is not "something", so in case the actor goes
from standing on an object to the standing on the ground, this change was not taken
into account.
Clear the value before the simulation to solve this problem.
2020-10-21 21:32:06 +02:00
Alexei Dobrohotov
2972033a72
Merge branch 'thelevelling' into 'master'
...
Allow adding levelled lists using AddItem
Closes #2404
See merge request OpenMW/openmw!358
2020-10-21 16:53:46 +00:00
Alexei Dobrohotov
7da8479d25
Fix lower body blocking animation priority (bug #5656 )
2020-10-21 19:35:01 +03:00
Evil Eye
bdcd2bc802
Allow adding levelled lists with AddItem
2020-10-21 17:21:28 +02:00
Bret Curtis
7d16b6f26c
Merge pull request #2992 from akortunov/service_refusal
...
Add support for service-specific refusals
2020-10-21 00:29:19 +02:00
Bret Curtis
82431b752d
removed unnessary bits that cmake should be doing for us; replace Misc::gcd with std::gcd
2020-10-20 23:38:05 +02:00
Evil Eye
f62905eb0a
remove redundant argument
2020-10-20 21:04:35 +02:00
psi29a
09373a757d
Merge branch 'radioactive' into 'master'
...
Container base record mutations
See merge request OpenMW/openmw!353
(cherry picked from commit 8b33765dd414680f0074b3e115b52b291b4cb7cb)
275908a0 mutate container base records
16fca11d add changelog entry
2020-10-20 16:56:22 +00:00
Andrei Kortunov
6c591c190b
Add support for service-specific refusals (feature #5580 )
2020-10-20 18:58:26 +04:00
fredzio
a036183248
Use a much simpler and assert-free check for Bullet multithreading support
2020-10-19 21:31:52 +02:00
Nelsson Huotari
fb4250a2b7
Strip the plugin index when looking for deleted refs.
2020-10-19 15:02:10 +03:00
Andrei Kortunov
065ed5138e
Use emplace_back instead of push_back
2020-10-18 10:27:35 +04:00
psi29a
4adc689c7a
Merge branch 'summoncrash' into 'master'
...
Avoid summon spawn if actor isn't in a cell (bug #5644 )
See merge request OpenMW/openmw!351
2020-10-18 00:35:35 +00:00
Alexei Dobrohotov
f90e403bc1
Avoid summon spawn if actor isn't in a cell (bug #5644 )
2020-10-18 01:42:32 +03:00
psi29a
f513ee1f1d
Merge branch 'configurable_turning_delay' into 'master'
...
Makes the delay of turning while run configurable (part of "smooth movement")
See merge request OpenMW/openmw!349
2020-10-17 20:21:02 +00:00
psi29a
9d350ec824
Merge branch 'head_bobbing' into 'master'
...
Add head bobbing in first person mode
Closes #5043
See merge request OpenMW/openmw!320
2020-10-17 19:54:34 +00:00
Petr Mikheev
9ec6fce446
Makes the delay of turning while run configurable (part of "smooth movement").
2020-10-17 16:11:22 +02:00
Petr Mikheev
c72199155c
Use full speed in the "NPCs give way" maneuver.
2020-10-17 15:33:23 +02:00
Bret Curtis
8050882baf
Merge pull request #3015 from akortunov/overrides
...
Mark overrided methods as overrides
2020-10-17 13:32:08 +02:00
AnyOldName3
df178ed97c
Merge branch 'container-regressions' into 'master'
...
Fix container regressions
See merge request OpenMW/openmw!346
(cherry picked from commit b0aee6f83d4cddb0116284b197913f9687dd9cee)
95e7a22d fix container regressions
2020-10-16 22:55:10 +00:00
Andrei Kortunov
8ca3c3b123
Mark overrided methods by override keyword
2020-10-16 22:18:54 +04:00
fredzio
978af12c2d
Restore fall damage
2020-10-16 19:30:03 +02:00
psi29a
c16fa27407
Merge branch 'async-physics' into 'master'
...
Async physics
See merge request OpenMW/openmw!248
2020-10-15 08:34:26 +00:00
fredzio
ae3306c019
Document async physics settings
...
Add an option to the launcher
Update changelog
2020-10-15 06:41:41 +02:00
fredzio
3c2504b442
Process movement queue in one or several background threads
...
Before movement calculation, the main thread prepare a
vector of ActorFrameData, which contains all data necessary to perform
the simulation, and feed it to the solver. At the same time it fetches
the result from the previous background simulation, which in turn is
used by the game mechanics.
Other functions of the physics system (weapon hit for instance)
interrupt the background simulation, with some exceptions described
below.
The number of threads is controlled by the numeric setting
[Physics]
async num threads
In case 'async num threads' > 1 and Bullet doesn't support multiple threads,
1 async thread will be used. 0 means synchronous solver.
Additional settings (will be silently switched off if async num threads = 0)
[Physics]
defer aabb update
Update AABBs of actors and objects in the background thread(s). It is not an especially
costly operation, but it needs exclusive access to the collision world, which blocks
other operations. Since AABB needs to be updated for collision detection, one can queue
them to defer update before start of the movement solver. Extensive tests on as much
as one installation (mine) show no drawback having that switched on.
[Physics]
lineofsight keep inactive cache
Control for how long (how many frames) the line of sight (LOS) request will be kept updated.
When a request for LOS is made for the first time, the background threads are stopped to
service it. From now on, the LOS will be refreshed preemptively as part of the background
routine until it is not required for lineofsight keep inactive cache frames. This mean
that subsequent request will not interrupt the background computation.
2020-10-15 06:41:35 +02:00
fredzio
91b3926a49
We need to update the collision world after each step.
...
Change order of traversal simulation step to make it rare enough to be parallelizable
Before:
for actor in actors:
repeat numstep:
solve(actor)
After:
repeat numstep:
for actor in actors:
solve(actor)
Introduce struct ActorFrameData to pack all data that is necessary for
the solver
2020-10-15 06:41:22 +02:00
fredzio
d76cc5d0a9
Make the Object class manage its collision object and position.
2020-10-15 06:41:16 +02:00
fredzio
4ef36973fb
Make the Actor class manage its collision object and position.
2020-10-15 06:41:08 +02:00