1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-15 17:49:55 +00:00
Commit graph

17246 commits

Author SHA1 Message Date
elsid
8dba61f7ae
Use navmesh raycast to find reachable position around target 2021-02-14 04:14:22 +01:00
elsid
becccf3b5e
Make actor flee from a combat when cannot reach a target 2021-02-12 22:58:53 +01:00
fredzio
9d90e250cf Physics is not running while paused, so zero the stats for the async
thread instead of keeping whatever value was before the pause.
2021-02-12 19:33:08 +01:00
elsid
8ab5fd9b40
Fix frame rate limit
Measure time at the computation end but before sleep. This allows to adjust
sleep interval for the next frame in case sleep is not precise due to syscall
overhead or too low timer resolution.

Remove old frame limiting mechanism.
2021-02-12 00:03:11 +01:00
Evil Eye
2e73d2c145 Fallback to default cell name for door destination 2021-02-10 22:13:04 +01:00
psi29a
c33b2e0100 Merge branch 'dehardcodebaseanim' into 'master'
Dehardcode Base_animation and improve Collada support

See merge request OpenMW/openmw!510
2021-02-10 16:29:47 +00:00
Sergey Fukanchik
f3271cb66b Add unit test for swapEndiannessInplace(). Part of Bug #5837 2021-02-09 13:09:36 -05:00
AnyOldName3
da6223fc4b Use default icon.tga when inventory icon is missing 2021-02-07 23:27:45 +00:00
psi29a
7a9eb34403 Merge branch 'master' into 'freeunrealestate'
# Conflicts:
#   CHANGELOG.md
2021-02-07 21:03:51 +00:00
psi29a
31f41836a1 Merge branch 'no_stuck_in_proj' into 'master'
Don't let projectiles push actors out of the world (#5802)

See merge request OpenMW/openmw!595
2021-02-07 20:37:46 +00:00
fredzio
b78820de55 Ignore projectiles inside of MovementSolver::unstuck. It is normal for actors to be inside of a
projectile collision shape.
A side effect of moving actors outside of projectile collision shape is that if both the actor and the projectile are
near a wall, the actor could get moved outside of the world.
2021-02-07 18:32:03 +01:00
Evil Eye
af0f94f03e Play damage sound when hurt by elemental shields 2021-02-07 12:55:10 +01:00
Evil Eye
f1caeea444 Don't return negative values from GetMagicka 2021-02-07 11:58:23 +01:00
Evil Eye
e4cd89643f Merge branch 'master' of gitlab.com:OpenMW/openmw into freeunrealestate 2021-02-07 00:17:14 +01:00
Evil Eye
6aa75c287a Don't check magicka when casting free spells 2021-02-07 00:15:01 +01:00
psi29a
e6607486f5 Merge branch 'jfmherokiller-master-patch-23743' into 'master'
Fix the regression involving Cure

See merge request OpenMW/openmw!582
2021-02-06 15:41:24 +00:00
psi29a
f63af685c0 Merge branch 'bemorenegative' into 'master'
Allow negative values for ai stats

Closes #5835

See merge request OpenMW/openmw!586
2021-02-06 15:38:34 +00:00
fredzio
6e969ca3fa Use mesh collision box instead of node bounding sphere for projectile
size. The bounding sphere is much bigger than the mesh.
2021-02-05 22:53:45 +01:00
Evil Eye
3007cb14a9 Also allow negative AI values in dialogue 2021-02-05 19:00:35 +01:00
Noah Gooder
e42b67ee50 Modified actors.cpp and Authors.md 2021-02-05 17:59:36 +00:00
Alexei Dobrohotov
cc220861e3 Merge branch 'character-preview-opacity-without-shadows' into 'master'
Make the dummy texture for the character preview shadow-friendly

See merge request OpenMW/openmw!585
2021-02-04 22:45:58 +00:00
Evil Eye
61e014a765 Allow negative values for ai stats 2021-02-04 21:25:38 +01:00
elsid
489107c5ee
Count navmesh cache key once in item size
Key is stored only in NavMeshTilesCache::Item, TileMap uses KeyView with
a pointer to a vector.
2021-02-04 00:44:23 +01:00
Nelsson Huotari
e91d1a2b42 Fix earlier broken commit 2021-02-03 21:16:26 +02:00
AnyOldName3
0639f8b7c6 Make the dummy texture for the character preview shadow-friendly 2021-02-03 18:45:22 +00:00
Nelsson Huotari
384112746c Add option for custom collision node with non-nif files 2021-02-03 14:25:09 +02:00
Jordan Francis Moran-Meyers
0d1c073cfa Fix the regression involving Cure 2021-02-01 18:34:10 +00:00
Petr Mikheev
94e8855c8c Merge branch 'fix_5821' into 'master'
Fix #5821: NPCs from mods getting removed if mod order was changed

Closes #5821

See merge request OpenMW/openmw!577
2021-01-31 09:34:26 +00:00
Petr Mikheev
157b14cdaa Fix #5821: NPCs from mods getting removed if mod order was changed 2021-01-29 22:53:02 +01:00
Petr Mikheev
9590377f22 Don't ignore Z in path finding if actor can move by Z. 2021-01-29 22:30:20 +01:00
Petr Mikheev
642ca02e35 Shorten almost straight paths only if smooth movement is enabled; reduce angle limit for the shortening. 2021-01-29 22:30:01 +01:00
Andrei Kortunov
b286397dd4
Merge pull request #3045 from akortunov/revert
Revert fix for 5379
2021-01-29 17:17:28 +04:00
Andrei Kortunov
7b727e4d70 Revert "Remove physics dependency on basenode"
This reverts commit 165c731492.
2021-01-29 16:51:13 +04:00
Andrei Kortunov
165af1c365 Revert "Some actors are supposed to spawn on a static object that belong to an adjacent cell."
This reverts commit f031a191b8.
2021-01-29 16:51:05 +04:00
Andrei Kortunov
f8e8496d36 Revert "Revert a wrong change introduced in MR 546"
This reverts commit 23137d0c54.
2021-01-29 16:50:39 +04:00
Bret Curtis
9f168eab88
Merge pull request #3044 from akortunov/master
Avoid null dereference for objects without cells
2021-01-29 13:15:04 +01:00
uramer
ee2f0e7eb3 Fix inconsistent argument name 2021-01-28 23:47:38 +01:00
uramer
eca0d8b7ea Fix typo in DropMode enum 2021-01-28 22:40:44 +01:00
uramer
edc6d5c3e7 Fix a typo in separate drop binds 2021-01-28 22:22:48 +01:00
uramer
36cd818155 Fix separate drop, refactor for code reuse 2021-01-28 22:10:33 +01:00
Andrei Kortunov
3b9f8b5fa2 Avoid null dereference for objects without cells 2021-01-28 18:37:47 +04:00
Andrei Kortunov
d984d13b1c Merge branch 'animate_animated_objects' into 'master'
Unbreak animated objects (regression from !546)

See merge request OpenMW/openmw!570
2021-01-28 14:12:24 +00:00
Andrei Kortunov
5382d38b9b Merge branch 'hit_target_object' into 'master'
Unbreak targetted spell on objects (#5811)

See merge request OpenMW/openmw!569
2021-01-28 14:09:45 +00:00
elsid
a3ab8dfbb4 Revert "Merge branch 'movement_fix2' into 'master'"
This reverts merge request !496
2021-01-28 12:48:19 +00:00
fredzio
23137d0c54 Revert a wrong change introduced in MR 546
A prerequisite to create physics objects for statics was to remove the
dependency on base node (since it doesn't yet exists) for object
position. It is still necessary for animation though.

Restore the basenode (and the associated FIXME) so that animated objects works properly.
2021-01-27 16:24:11 +01:00
Nelsson Huotari
83ee1cc582 fix xbase to baseanim 2021-01-27 13:41:05 +02:00
Nelsson Huotari
3194520dcd Move base_anim settings to settings-default.cfg 2021-01-27 13:41:02 +02:00
Bret Curtis
b164f1aa17
Merge pull request #3023 from akortunov/grass_intsancing
Grass instancing
2021-01-27 12:21:24 +01:00
psi29a
699bd257ef Merge branch 'camera_stats' into 'master'
Collect all available stats if OPENMW_OSG_STATS_FILE is set and point to a valid file.

See merge request OpenMW/openmw!526
2021-01-27 08:04:33 +00:00
Frederic Chardon
7cd7fa2f08 Collect all available stats if OPENMW_OSG_STATS_FILE is set and point to
a valid file.
2021-01-27 08:04:33 +00:00
fredzio
64475ebedb Remove a brainfart from precise projectile handling: all non-actor
non-projectile objects were treated as ground.
2021-01-27 07:15:09 +01:00
Gleb Mazovetskiy
8737453498 cmake: Compiler-specific whole-archive macro 2021-01-26 19:00:55 +00:00
Gleb Mazovetskiy
99ba45a308 Optional static builds of OSG, MyGUI, Bullet 2021-01-26 19:00:55 +00:00
Andrei Kortunov
f40e227686 Remove redundant formatting changes 2021-01-26 22:29:41 +04:00
Andrei Kortunov
b975f16e6b Remove redundant check - groundcover is not present in the CellStore 2021-01-26 22:29:41 +04:00
Andrei Kortunov
d12a0fdcb3 Mark only instances from groundcover files as groundcover objects 2021-01-26 22:29:41 +04:00
Andrei Kortunov
8874e88ff1 Drop fading setting 2021-01-26 22:29:41 +04:00
Andrei Kortunov
1a6c06f7b5 Do not allow to set distance to non-positive values 2021-01-26 22:29:41 +04:00
Andrei Kortunov
859cd0fd0c Do not use display lists for instanced meshes 2021-01-26 22:29:41 +04:00
Andrei Kortunov
a09f03c850 Drop groundcover materials - they are not used 2021-01-26 22:29:41 +04:00
Andrei Kortunov
14cf0ce1dc Implement instanced groundcover 2021-01-26 22:29:41 +04:00
madsbuvi
663e0a1055 Fix a race condition in loading screen. 2021-01-26 19:28:09 +01:00
Petr Mikheev
bc2cec86e9 Fix bug: NPCs doesn't move if the target is exactly above or exactly below. 2021-01-26 00:05:28 +01:00
psi29a
cadd1e7529 Merge branch 'daedric_fog' into 'master'
Don't nuke fog when bounds have changed

Closes #5469

See merge request OpenMW/openmw!522
2021-01-25 12:58:44 +00:00
psi29a
a8c5607aa6 Merge branch 'disableinfotablesorting' into 'master'
[OpenMW-CS] Info table dragging to move record order, disable sorting

See merge request OpenMW/openmw!538
2021-01-25 12:51:13 +00:00
psi29a
64b4472efa Merge branch 'stand' into 'master'
Don't adjust actor position until all objects are loader (#5379)

See merge request OpenMW/openmw!546
2021-01-25 12:12:43 +00:00
psi29a
c6f14cde20 Merge branch 'Show-level-multipliers-in-levelup-tooltip' into 'master'
Show level multipliers in levelup tooltip

Closes #5783

See merge request OpenMW/openmw!518
2021-01-25 10:01:39 +00:00
Cédric Mocquillon
3bb551a6f1 Show level multipliers in levelup tooltip 2021-01-25 10:01:39 +00:00
Evil Eye
59af819f97 Merge branch 'fix-mem-leak-2' into 'master'
Fix memory leak in MWInput

See merge request OpenMW/openmw!566
2021-01-24 16:05:30 +00:00
Gleb Mazovetskiy
fe815d3d8d Fix memory leak in MWInput
mListener wasn't being cleaned up
2021-01-24 15:22:36 +00:00
Evil Eye
a2171875a0 Prevent nullptr access 2021-01-24 15:15:51 +01:00
fredzio
f031a191b8 Some actors are supposed to spawn on a static object that belong to an adjacent cell.
Since actors can be active in 3x3 grid around the player, we need to
first load all statics in a 5x5 grid around the player.

Split load and unloading in 2 phases. Add an mInactiveCells set into the
scene, which contains all cells inside the aforementioned 5x5 grid.
These cells contains only heightfields and physics objects of static
class.
2021-01-24 14:11:10 +01:00
fredzio
165c731492 Remove physics dependency on basenode
Necessary to be able to load physics objects from inactive cells.
2021-01-24 14:10:27 +01:00
psi29a
b28adafee4 Merge branch 'navcrash' into 'master'
Fix #5798

Closes #5798

See merge request OpenMW/openmw!554
2021-01-23 13:37:01 +00:00
Evil Eye
a401c517bf Always unload height fields
loadCell always adds a height field, but unloadCell only removed it for
cells with height data. Reloading a cell overwrote the height field
added earlier (leading to its destruction) while the navigator retained
a reference to the now deleted collision shape, leading to a crash.
2021-01-23 00:56:46 +01:00
psi29a
0ec953380f Merge branch 'opaque-character-preview-preprocessor' into 'master'
Always write opaque fragments instead of relying on blending being off for translucent RTT II: Daggerfall

Closes #5391

See merge request OpenMW/openmw!552
2021-01-22 10:33:16 +00:00
psi29a
d2c5de5211 Merge branch 'projectile_physics' into 'master'
Precise projectile physics (closes #4201)

Closes #4201

See merge request OpenMW/openmw!550
2021-01-21 23:33:22 +00:00
fredzio
1f4c85520f Use convexSweepTest for projectile movement to solve any
imprecision issue with projectile collision detection.
Simplify the mechanics: manage hits in one spot.
Give magic projectiles a collision shape similar in size to their visible
model.

Rename the 2 convex result callback to clearly state their purpose.
2021-01-21 20:36:33 +01:00
elsid
cc24f13b39
Remove duplicated sound_buffer entry 2021-01-21 13:08:50 +01:00
AnyOldName3
b6e92c9c6d Use ShaderVisitor to skip translucent framebuffer specific stuff 2021-01-20 23:37:19 +00:00
AnyOldName3
8af8ad3840 Always write opaque fragments instead of relying on blending being off for translucent RTT 2021-01-20 01:17:16 +00:00
Alexei Dobrohotov
6d70a3f308 Merge branch 'jumpy' into 'master'
Don't run unstuck if there is no simulation running in async case (#5799)

See merge request OpenMW/openmw!548
2021-01-19 15:04:49 +00:00
Nelsson Huotari
9f0f3eaeb2 Add collada to supported formats 2021-01-18 19:22:01 +02:00
Nelsson Huotari
54ea8eb5c7 Fix string corruption with Qt on linux-systems 2021-01-18 19:21:02 +02:00
fredzio
e37e5d4d16 Don't run unstuck if there is no simulation running in async case.
In this case, the actor mPreviousPosition is not updated, so the actor
position is interpolated between an old (stucked) position and the new
(unstucked) position. The new position is most likely "stucked", so the
unstuck code strikes again, making the actor "vibrates".

That's exactly what the sync code path does, and it doesn't exhibit this
behavior.
2021-01-18 17:45:57 +01:00
psi29a
9eba086c34 Merge branch 'sound_buffer_pool_2' into 'master'
Separate sound buffer pool from sound manager

See merge request OpenMW/openmw!520
2021-01-17 12:11:11 +00:00
Bret Curtis
e68651e9a6
Merge pull request #3042 from akortunov/helpers
Refactoring pre-requisites for groundcover
2021-01-13 23:09:01 +01:00
Nelsson Huotari
f2fc02cdff Support filtered tables (mapToSource for indexes) 2021-01-13 15:55:16 +02:00
Nelsson Huotari
16e03c151a Implement basic move algorithm, connect it to drag&drop 2021-01-13 15:38:29 +02:00
Andrei Kortunov
0418e8e7a6 Add an API to get base wind speed (which is from openmw.cfg) 2021-01-13 14:25:25 +04:00
Andrei Kortunov
f175beb304 Define template ref classes in components 2021-01-13 14:25:21 +04:00
psi29a
fd602e2c31 Merge branch 'viewdist' into 'master'
Downgrade FOV-dependent view distance factor to a recommendation

See merge request OpenMW/openmw!531
2021-01-12 19:51:21 +00:00
Bret Curtis
d944f703e8 Merge branch 'master' of gitlab.com:OpenMW/openmw 2021-01-12 19:58:56 +01:00
Bret Curtis
73740013a3 mResourceSystem initialization reorder 2021-01-12 19:58:46 +01:00
psi29a
abdc4cde95 Merge branch 'float' into 'master'
Allow all creatures to float to the water surface (#5790, #5758)

Closes #5758 and #5790

See merge request OpenMW/openmw!534
2021-01-12 18:45:10 +00:00
Alexei Dobrohotov
4638fc36b4 Allow all creatures to float to the water surface 2021-01-12 15:46:19 +03:00
psi29a
3903142152 Update apps/openmw/mwbase/environment.cpp 2021-01-12 12:05:17 +00:00
psi29a
654238fd18 Merge branch 'no_bonus_points' into 'master'
Show mesh origin

Closes #5771

See merge request OpenMW/openmw!507
2021-01-11 21:21:47 +00:00
psi29a
29fdcb3fa1 Merge branch 'hardlanding' into 'master'
Init mJumpState based on saved fallheight (#5739)

See merge request OpenMW/openmw!532
2021-01-11 20:46:42 +00:00
Nelsson Huotari
70087e16fe Disable dialogue info table sorting 2021-01-11 20:49:35 +02:00
fredzio
3087ce9c70 Use saved fallheight to determine a character's jump state.
The jump state initial state is "none", and it is set after physics simulation.
If a save is done just above the ground, the character may land before
the first run of the simulation, effectively cancelling the effect of
falling.
2021-01-11 18:38:20 +01:00
psi29a
acfd2cfd90 Merge branch 'dialogclonefix' into 'master'
[OpenMW-CS] Fix cloning in info records

See merge request OpenMW/openmw!524
2021-01-11 14:13:53 +00:00
Nelsson Huotari
93b1b444f2 Optimize CreateCommand and CloneCommand configuration 2021-01-11 12:53:34 +02:00
Alexei Dobrohotov
7be7af13d7 Downgrade FOV-dependent view distance factor to a recommendation 2021-01-11 06:53:23 +03:00
psi29a
6863c5a68f Merge branch 'raii' into 'master'
Make all physics object manage their own resources.

See merge request OpenMW/openmw!527
2021-01-10 20:50:55 +00:00
Nelsson Huotari
7196ad7455 Implement an override-value when cloning, use when cloning info records 2021-01-10 21:23:52 +02:00
Evil Eye
1ab4683dce Tweak follow distance to be more like the original 2021-01-10 16:29:32 +01:00
fredzio
d015f17a6c Make all physics object manage their own resources
Use smart pointer for heightfields and their members.
Move collision object addition inside of Object's ctor, as for Actors and HeightFields
2021-01-10 14:56:35 +01:00
elsid
8b7f3fe908 Merge branch 'nodeadlock' into 'master'
Avoid a rare but possible deadlock around mCollisionWorldMutex.

See merge request OpenMW/openmw!525
2021-01-10 13:41:31 +00:00
Bret Curtis
b3f3b29bbe
Merge pull request #3039 from akortunov/screenshotmanager
Move screenshots handling to the separate class
2021-01-10 12:59:45 +01:00
Bret Curtis
a735bbe9a5
Merge pull request #3040 from akortunov/pvs
Fix some issues, found by PVS Studio
2021-01-10 12:58:17 +01:00
Evil Eye
e737bd00fa Merge branch 'unused_param' into 'master'
Remove never used parameter from CharacterController::update()

See merge request OpenMW/openmw!523
2021-01-10 10:58:28 +00:00
Alexei Dobrohotov
c3a952c133 Merge branch 'dorsbien' into 'master'
Don't update magic effects when unequipping items to equip something else

Closes #5687

See merge request OpenMW/openmw!509
2021-01-10 08:04:07 +00:00
Evil Eye
a257567b80 Don't update magic effects when unequipping items to equip something else 2021-01-10 08:04:06 +00:00
Nelsson Huotari
3045d20a97 Make sure that vector isn't empty, just in case 2021-01-10 01:25:40 +02:00
Nelsson Huotari
5f1d3e0e2f Use the Topic ID of the cloned target from topicinfos 2021-01-10 01:06:23 +02:00
psi29a
f7d7186c39 Merge branch 'instanceselectiontools' into 'master'
[OpenMW-CS] Cube and sphere instance selection

See merge request OpenMW/openmw!485
2021-01-09 21:35:07 +00:00
Nelsson Huotari
313e895912 [OpenMW-CS] Cube and sphere instance selection 2021-01-09 21:35:07 +00:00
fredzio
60f66f5e29 Remove never used parameter from CharacterController:update() 2021-01-09 21:28:27 +01:00
fredzio
9bc687e209 Avoid a rare but possible deadlock around mCollisionWorldMutex.
What happened is that the last handle to an Actor shared_ptr was a
promoted weak_ptr. When the shared_ptr goes out of scope, the Actor dtor
is invoked. That involves removing the Actor collision object after
exclusively locking mCollisionWorldMutex. In this case, the lock was
already held in the outter scope of the promoted weak_ptr.

Reduce the scope of the mCollisionWorldMutex to never encompass the
lifetime of a promoted weak_ptr.
2021-01-09 21:10:29 +01:00
Andrei Kortunov
ad101de733 Merge declaration and initialization 2021-01-09 22:58:54 +04:00
unknown
564a0d7d55 Don't nuke fog when bounds have changed 2021-01-09 18:25:46 +01:00
Andrei Kortunov
1930f8f37d Fix copy-paste error 2021-01-09 20:03:12 +04:00
Andrei Kortunov
50e4600b16 Reduce code duplication 2021-01-09 20:00:51 +04:00
Andrei Kortunov
874348fb46 Remove redundant code 2021-01-09 19:19:38 +04:00
Mads Buvik Sandvei
a2d8a0b61a engine.cpp typos 2021-01-09 14:44:15 +00:00
Andrei Kortunov
80ee1b55ea Protect assignment operator from this == &src case 2021-01-09 18:28:26 +04:00
Andrei Kortunov
33da0af1d1 Use explicit calls for virtual methods in constructors 2021-01-09 18:25:48 +04:00
elsid
a6aba83741
Remove redundant SoundManager::lookupSound and loadSound 2021-01-09 14:11:49 +01:00
elsid
e4cce88142
Replace std::tie by structured binding 2021-01-09 14:09:27 +01:00
elsid
90c8e77e2c
Remove redundant default Sound_Buffer fields initialization 2021-01-09 14:08:54 +01:00
elsid
24f8a2db27
Use perfect forwarding in Sound_Buffer ctor 2021-01-09 14:07:30 +01:00
Andrei Kortunov
a80ee7a76a Avoid possible memory leak in the mInterMessageBoxe field 2021-01-09 14:43:00 +04:00
Andrei Kortunov
8e5f26c109 Code cleanup 2021-01-09 14:41:10 +04:00
Andrei Kortunov
c9b885ffd4 Avoid possible null dereferencing 2021-01-09 14:24:04 +04:00
Andrei Kortunov
33648313a6 Initialize variables 2021-01-09 14:21:57 +04:00
Andrei Kortunov
c1512b8b6c Convert loop to condition 2021-01-09 14:18:38 +04:00
Andrei Kortunov
56666c60d4 Remove dead code 2021-01-09 14:17:59 +04:00
Andrei Kortunov
8283ec6cad Do not use & for boolean arguments 2021-01-09 14:03:48 +04:00
Andrei Kortunov
7fc4c9f3f6 Avoid dead code 2021-01-09 13:52:01 +04:00
Andrei Kortunov
801e2d6ad0 Avoid to use uninitialized variables 2021-01-09 13:36:40 +04:00
Andrei Kortunov
c5a36ad440 Do not cast enums to booleans 2021-01-09 13:19:41 +04:00
Andrei Kortunov
799bd3379c Move screenshots handling to the separate class 2021-01-09 10:44:33 +04:00
elsid
944033db4e
Separate sound buffer pool from sound manager 2021-01-09 02:45:21 +01:00
AnyOldName3
2d61db555b Merge branch 'osg_log' into 'master'
Split long osg log messages into lines.

See merge request OpenMW/openmw!519
2021-01-09 01:05:53 +00:00
Petr Mikheev
7d551b0cfd Split long osg log messages into lines. 2021-01-08 23:21:39 +01:00
psi29a
cbce3ebb79 Merge branch 'stanky_fetcher' into 'master'
Consider a path completed if it was non-empty

Closes #5773

See merge request OpenMW/openmw!508
2021-01-08 21:47:38 +00:00
Evil Eye
2a583e2337 consider empty paths as not constructed 2021-01-08 17:24:13 +01:00
AnyOldName3
4ed3252001 Check for EXT_gpu_shader4 CPU-side
Mesa lies and always defines GL_EXT_gpu_shader4 even when the extension
isn't present.
2021-01-07 18:13:51 +00:00
psi29a
dc82cb61f4 Merge branch 'nativeshapesdebug' into 'master'
Unbreak physics debugger with projectiles' spherical shapes.

See merge request OpenMW/openmw!489
2021-01-04 09:07:28 +00:00
Alexei Dobrohotov
c17e498465 Merge branch 'launchercleanup' into 'master'
Remove deadcode from the launcher.

See merge request OpenMW/openmw!511
2021-01-03 08:48:52 +00:00
AnyOldName3
f2eed5594a Don't use A2C when MSAA is off 2021-01-02 18:27:46 +00:00
AnyOldName3
c75d7ceada Ensure alpha test is off by default 2021-01-02 02:50:19 +00:00
fredzio
5215ffd964 The debug drawer rely on Bullet to determines the vertices of collision
shapes. It doesn't work in the case of spheres (used by projectiles):
resulting shape is malformed. It can also leads to this error which
makes the debug drawer non-working till game restart:
CullVisitor::apply(Geode&) detected NaN,
    depth=nan, center=(nan nan nan),
    matrix={
       -0.265814 -0.0639702 0.9619 0
       0.964024 -0.0176387 0.265228 0
       -4.29769e-09 0.997796 0.0663574 0
       18178.6 -3550.91 42154.4 1
}

Avoid this issue by using osg::Sphere

While here, remove an unused function. We don't use Bullet's solver so
we never have any contact points (in Bullet parlance).
2021-01-01 17:47:12 +01:00
fredzio
dbdd397716 Remove deadcode. 2021-01-01 16:54:45 +01:00
Evil Eye
57c92673bc Consider a path completed if it was non-empty 2020-12-30 16:09:12 +01:00
unknown
3bf641d3ce Show mesh origin 2020-12-29 21:45:59 +01:00
Alexei Dobrohotov
396667f801 Fix weather particle fading
Update rain particle system setup
2020-12-29 15:46:45 +03:00
Evil Eye
e46472442a Switch torches to shields for hostile NPCs 2020-12-29 01:40:30 +00:00
AnyOldName3
54853380cd Enable multisampling in RTTs to support A2C 2020-12-28 22:39:09 +00:00
Andrei Kortunov
e80d34268c Fix defines names 2020-12-28 21:11:58 +04:00
Alexei Dobrohotov
a7cbe0b497
Merge pull request #3036 from akortunov/tooltip
Enhance level-up tooltip
2020-12-28 18:21:32 +03:00
Andrei Kortunov
66fee6dccb Enhance level-up tooltip 2020-12-28 12:13:09 +04:00
Andrei Kortunov
6a12c2b58b Fix GCC build warnings 2020-12-28 12:06:41 +04:00
Alexei Dobrohotov
45f4e69a19 Merge branch 'skipanim' into 'master'
Don't move characters if their animation can't move them

Closes #5593

See merge request OpenMW/openmw!490
2020-12-28 01:25:22 +00:00
wareya
18ef32ca82 values for this higher than sGroundOffset cause jittering on some surface; use safe-seeming value slightly less than sGroundOffset 2020-12-27 22:16:11 +00:00
Alexei Dobrohotov
ddbfa5410d Merge branch 'fixboats' into 'master'
Apply waterwalking even when bypassing physics simulation

See merge request OpenMW/openmw!500
2020-12-27 22:06:07 +00:00
fredzio
ebb564ad22 call moveObject() after applying waterwalking
This unbreak abot's boat mods: they're continually teleporting
the boats (who is an actor with waterwalking effect). As such, the
physics simulation was never run and the boat never went to sea level.
2020-12-27 17:31:55 +01:00
Evil Eye
7d8727b98e Merge branch 'books' into 'master'
Only ignore plain text after the last EOL tag (#5627)

Closes #5627

See merge request OpenMW/openmw!492
2020-12-27 14:25:57 +00:00
AnyOldName3
5e004356a2 Merge remote-tracking branch 'upstream/master' into alpha-meddling 2020-12-27 02:48:42 +00:00
psi29a
a094269c46 Merge branch 'guardsguards' into 'master'
Don't consider a path completed unless we're close

Closes #5736

See merge request OpenMW/openmw!498
2020-12-26 23:10:53 +00:00
psi29a
3afa4e5869 Merge branch 'feels_good_guar' into 'master'
Make followers keep a distance dependant on the fattest party member

Closes #5423

See merge request OpenMW/openmw!499
2020-12-26 23:09:41 +00:00
AnyOldName3
8f4b856b44 Initial A2C implementation 2020-12-26 22:45:53 +00:00
Evil Eye
7cac7fa870 Make followers keep a distance dependant on the fattest party member 2020-12-25 23:57:01 +01:00
Alexei Dobrohotov
ad41546648 Merge branch 'fix_swimming' into 'master'
Fix #5743 where NPCs and creatures underwater may rotate to the upwards direction

Closes #5743

See merge request OpenMW/openmw!494
2020-12-25 21:33:35 +00:00
Evil Eye
d2a28d915a Don't consider a path completed unless we're close 2020-12-25 15:58:11 +01:00
Evil Eye
1f1755ae48 Add version checks 2020-12-25 13:05:41 +01:00
Evil Eye
bdcbb412a5 Don't restore focus to hidden/unrelated buttons 2020-12-25 13:03:09 +01:00
Petr Mikheev
8b3088a9e5 Fix #5743 2020-12-24 11:54:21 +01:00
Petr Mikheev
51d63a4152 Fix minor bug: mSmoothedSpeed is not updating in first person mode, that leads to an incorrect value after switching to first person mode and back.
Additional refactoring: move `setSideMovementAngle` from camera.cpp to character.cpp as this logic shouldn't belong to Camera.
2020-12-24 03:39:59 +01:00
Alexei Dobrohotov
fd77ef6b01 Only ignore plain text after the last EOL tag (#5627) 2020-12-23 03:33:34 +03:00
Alexei Dobrohotov
32cc14981e Don't move characters if their animation can't move them 2020-12-22 20:40:52 +03:00
psi29a
4f1361b5ea Merge branch 'paralyze' into 'master'
Fix paralyze for swimming and levitating actors

Closes #5758

See merge request OpenMW/openmw!488
2020-12-22 10:49:24 +00:00
Alexei Dobrohotov
22476281da Fix paralyze for swimming actors 2020-12-22 08:03:51 +03:00
Alexei Dobrohotov
218597b13d Fix paralyze for levitating actors 2020-12-22 06:33:19 +03:00
Alexei Dobrohotov
f5af09aed9 Fix AI sequence looping code (bug #5706) 2020-12-22 05:56:59 +03:00
psi29a
3e87c35005 Merge branch 'dialogue' into 'master'
Don't regenerate the topics list unconditionally

See merge request OpenMW/openmw!459
2020-12-21 22:52:38 +00:00
Alexei Dobrohotov
e9a8636d18 Merge branch 'restore_absolute_position_handling' into 'master'
Restore pre-async handling of absolute actors positionning

See merge request OpenMW/openmw!486
2020-12-20 22:52:35 +00:00
Alexei Dobrohotov
ce36dd8a52 Merge branch 'misc_cleanup' into 'master'
Small cleanup

See merge request OpenMW/openmw!482
2020-12-20 19:10:06 +00:00
fredzio
5bd921fa3a Restore pre-async handling of absolute actors positionning
One of the issue since the introduction of async physics is the quirky
handling of scripted moves. Previous attempt to account for them was
based on detecting changes in actor position while the physics thread is
running. To this end, semantics of Actor::updatePosition() (which is
responsible for set the absolute position of an actor in the world) was
toned down to merely store the desired position, with the physics system
actually responsible for moving the actor. For the cases were complete
override of the physics simulation was needed, I introduced
Actor::resetPosition(), which actually have same semantics as
original updatePosition(). This in turn introduced a loads of new bugs
when the weakened semantics broke key assumptions inside the engine
(spawning, summoning, teleport, etc).
Instead of tracking them down, count on the newly introduced support for
object relative movements in the engine (World::moveObjectBy) to
register relative movements and restore original handling of absolute positionning.

Changes are relatively small:
- move resetPosition() content into updatePosition()
- call updatePosition() everywhere it was called before
- remove all added calls to the now non-existing resetPosition()

tldr; ditch last month worth of bug introduction and eradication and redo
it properly
2020-12-20 19:23:09 +01:00
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 08e73a09ec
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
AnyOldName3
2ecd00b6db Don't accidentally enable alpha testing for all shadow casting 2020-12-18 16:31:21 +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
AnyOldName3
a080071588 Set default state sensibly 2020-12-18 00:02:51 +00: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
Alexei Dobrohotov
8db2ba2b38
Merge pull request #3032 from akortunov/gtest
Mark mock methods as overrides (requires GTest 1.10)
2020-12-18 01:46:42 +03: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
psi29a
78e85fe011 Merge branch 'this_is_nife' into 'master'
More NIF stuff

See merge request OpenMW/openmw!461
2020-12-15 15:43:12 +00:00
psi29a
bc6bcda58f Merge branch 'wizard' into 'master'
Wizard: fix "file is already opened" warning

See merge request OpenMW/openmw!465
2020-12-15 15:35:47 +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
8fd45d85ec Unify NiGeometry/NiGeometryData handling 2020-12-15 00:06:43 +03:00
Alexei Dobrohotov
ab789e37e1 Wizard: fix "file is already opened" warning 2020-12-14 03:45:03 +03: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
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