1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-27 21:35:24 +00:00

12723 Commits

Author SHA1 Message Date
fredzio
33eb09f534 Remove unused headers 2020-12-20 18:28:21 +01:00
Alexei Dobrohotov
6b5e614b1a Merge branch 'dont_cache_ptr' into 'master'
Always use latest actor's Ptr

See merge request OpenMW/openmw!481
2020-12-19 17:15:43 +00:00
fredzio
e5f0c7f117 Fix a typo introduced in 08e73a09ec41fc791166473acdf91a3c0b39c0bb
It closes #5752
2020-12-19 16:54:50 +01:00
fredzio
93a12fe388 Avoid dynamic_cast when possible. 2020-12-18 23:47:01 +01:00
fredzio
8e084dea2e Don't cache Ptr, it can be updated while the simulation is running. 2020-12-18 22:22:37 +01:00
fredzio
58297ffbf4 Move stats update into their own function. 2020-12-18 21:18:04 +01:00
fredzio
24a8b8c66a Remove redundant call to resetPosition(). adjustPosition() takes care of
it,
2020-12-18 21:16:48 +01:00
Mads Buvik Sandvei
eec2ba3623 Loading screen initialdrawcallback 4th time's the charm 2020-12-18 18:15:14 +00:00
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