fredzio
4e7c9b6696
Embed physics simulation results inside of actor class.
...
This gives finer control over reseting positions (switch off tcl is no
longer glitchy) and solve most of the erroneous usage of stale World::Ptr
indicated by:
"Error in frame: moveTo: object is not in this cell"
2020-12-18 12:54:02 +01:00
psi29a
d01d5745c6
Merge branch 'relative_move' into 'master'
...
Relative translation for scripts
See merge request OpenMW/openmw!477
2020-12-18 09:23:18 +00:00
Mads Buvik Sandvei
ea8f98b339
Wait for initialDrawCallback to finish before removing it
2020-12-18 08:48:39 +00:00
fredzio
7bae6691b6
Introduce World::moveObjectBy() function to translate an object relatively to
...
its current position.
Use it in relevant MWScripts opcode (move and moveworld).
Remove the fragile detection of scripted translation from PhysicsTaskScheduler.
No user visible change, just a more robust mechanism.
2020-12-18 08:40:38 +01:00
psi29a
96a87b582c
Merge branch 'loadingScreen_initialdrawcallback' into 'master'
...
Fix for !472 for older versions of OSG
See merge request OpenMW/openmw!474
(cherry picked from commit 35e25d79b9a6c76807084be5ca2584c4fd9b9c35)
4447dd41 osg versions
06f4d63b Preserve callback in older osg version
2020-12-17 23:37:21 +00:00
Mads Buvik Sandvei
bc961a13f5
avoid redundant calls to removeInitialDrawCallback
2020-12-16 22:03:16 +01:00
Mads Buvik Sandvei
640420eaaa
No longer delete and recreate CopyFramebufferToTextureCallback, remove oneshot functionality. Instead just remove the callback after the traversals. Use addInitialDrawCallback instead of setInitialDrawCallback to avoid messing with existing callbacks.
2020-12-16 21:46:52 +01:00
fredzio
259d522800
When doing a ray cast to the next projectile position, ignore collisions
...
that occurs with the projectile own collision object. Otherwise a magic
bolt can explode "spontaneously".
2020-12-15 21:34:58 +01:00
psi29a
884b434ee0
Merge branch 'fixfriendlyfire' into 'master'
...
Fix projectiles friendly fire (#5744 )
See merge request OpenMW/openmw!466
2020-12-15 15:45:43 +00:00
Nelsson Huotari
8b2bf12e8f
Use bip01 for root bone name
2020-12-15 13:51:49 +02:00
fredzio
b39437dfb6
Don't allow projectiles to stand still when they hit an ally.
...
When an NPC fire a projectile, it should affect only its targeted actor.
To this end, after a hit is detected the target is checked against the
list of AI targets and reactivated if necessary.
Problem occurs when the hit occurs as a result of a friendly actor going
into the projectile (detected in ClosestNotMeConvexResultCallback):
while the projectile is inside the friend's collision box, it is
deactivated, just to be immediately reactivated. Effectively, the
projectile does nothing until the actor moves out.
Add a check inside the ClosestNotMeConvexResultCallback before declaring
a hit.
Since the necessary data is not safely accessible from the async thread,
maintain a copy inside the Projectile class.
2020-12-14 22:23:01 +01:00
Alexei Dobrohotov
201999c4a9
Make sure adjustPosition() is safe to call for any actor
2020-12-14 03:01:26 +03:00
Alexei Dobrohotov
817ac4cfbd
Don't regenerate the topics list unconditionally
2020-12-12 23:07:00 +03:00
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
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
Petr Mikheev
49c6e50c31
Print '--version' and '--help' messages without timestamps
2020-12-08 23:14:49 +01: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
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
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