Commit Graph

17298 Commits (959165bcb99140d38afbf7dc420f5ce647a321ea)

Author SHA1 Message Date
AnyOldName3 f09b0fc1bd Put groundcover alphafunc where shader visitor can see it
I'd already made this change so don't know why it disappeared instead of
being included in b8ee32e3
4 years ago
Gleb Mazovetskiy 351d11449b Avoid heightfield conversion in newer Bullet
Takes advantage of the direct `float` support implemented in
https://github.com/bulletphysics/bullet3/pull/3293
4 years ago
Andrei Kortunov 39b7260ab4 Fix a crash during new game 4 years ago
AnyOldName3 64ddb4c1b0 Fix linking on MacOS 4 years ago
psi29a 9f47190411 Merge branch 'now-it-blends' into 'master'
Convert blending factors properly for the character preview

See merge request OpenMW/openmw!644
4 years ago
AnyOldName3 cb2cbb4181 Convert blending factors properly for the character preview 4 years ago
Chris Djali 9bfe941d4b
Merge pull request #3050 from akortunov/master
Double-buffer shader water stateset
4 years ago
Andrei Kortunov 38679013fe Give meaningful name to the mEffectFade 4 years ago
Gleb Mazovetskiy 1db7d2ec4e Restore compatibility with FFMpeg < 57.80.100
This should fix macOS Travis build broken by 58d33aa95b
4 years ago
AnyOldName3 deb184cdce Merge branch 'fix-build' into 'master'
Fix linking with `-DOPENMW_USE_SYSTEM_OSG=ON -DOSG_STATIC=ON`

See merge request OpenMW/openmw!640
4 years ago
psi29a 611a63acc6 Merge branch 'threesacharm' into 'master'
Attempt to fix restocking items in old saves

Closes #5823

See merge request OpenMW/openmw!580
4 years ago
psi29a 194875dec1 Merge branch 'fix-video-arm' into 'master'
osg-ffmpeg-videoplayer: Fix crash on ARM

Closes #5807

See merge request OpenMW/openmw!564
4 years ago
Andrei Kortunov d805886de7 Double-buffer shader water stateset (bug #5026) 4 years ago
Gleb Mazovetskiy 58d33aa95b AV: Fix all memory leaks
The most substantial memory leak came from `PacketQueue::get`
not unreferencing its argument packet.

Other leaks came from using `av_free` instead of type-specific free
functions.

Also modifies `PacketQueue::put` for readability.
4 years ago
Chris Djali 213525c372
Merge pull request #3049 from akortunov/master
Use correct mCursorActive flag initial value
4 years ago
Alexei Dobrohotov e9aa161ffc Merge branch 'reallyskipphysics' into 'master'
Close race that breaks scripted teleporting (#5873)

See merge request OpenMW/openmw!639
4 years ago
Andrei Kortunov 482f04c836 Use correct mCursorActive flag initial value 4 years ago
Gleb Mazovetskiy 455be9dbbb Fix linking with `-DOPENMW_USE_SYSTEM_OSG=ON -DOSG_STATIC=ON`
1. CMake's built-in OSG finder does not use pkgconfig, so we have to
   manually ensure the order is correct for inter-library dependencies.

   https://gitlab.kitware.com/cmake/cmake/-/issues/21701

2. OSG plugin pkgconfig files are missing dependencies on the underlying
   libraries (e.g. freetype, png, jpeg), so we have to link them manually.

   https://github.com/openscenegraph/OpenSceneGraph/issues/1052
4 years ago
fredzio 31d8ce266b Close a race between main and physics threads when actor is positioned by scripts.
When a position is forced, the actor position in physics subsystem is
overriden. The background physics thread is not made aware of this,
its result are simply discarded.

There is a short window where this doesn't work (in this
example, actor is at A and script moves it to B)
1) actor position is set to B. (among others, Actor::mPosition is set to B)
2) physics thread reset Actor::mPosition with stale value (around A)
3) main thread read simulation result, reset Actor::mSkipSimulation flag => actor is at B
4) physics thread fetch latest Actor::mPosition value, which is around A
5) main thread read simulation result, actor is around A

To avoid this situation, do not perform 2) until after 3) occurs. This
way, at 4) starts the simulation with up-to-date Actor::mPosition
4 years ago
Alexei Dobrohotov 2bfee281fd Merge branch 'restore_caster' into 'master'
Restore projectile caster from savegame (#5860)

See merge request OpenMW/openmw!616

(cherry picked from commit d595c7adb0fb45eafed6d3d0403ad640a91411ed)

c5426bec In the savegame, projectile caster is identified by its actor id. When
4 years ago
Evil Eye c9d3da498a Merge branch 'pursue' into 'master'
AIPursue: Pursue the player until LOS is established (#5869)

Closes #5869

See merge request OpenMW/openmw!634
4 years ago
Evil Eye 8ae4ee291f Attempt to fix restocking items in old saves 4 years ago
Dobrohotov Alexei fc329050b3 AIPursue: Pursue the player until LOS is established (#5869) 4 years ago
Alexei Dobrohotov 5e91af230d Reset effect icon transparency when they're hidden (#5877) 4 years ago
Gleb Mazovetskiy 4495b67d77 MyGUI HEAD compatibility
Makes OpenMW compatible with the current MyGUI HEAD at:
f93d4fb614

Refs #5806
4 years ago
Evil Eye e2fc5d87b3 Merge branch 'elemental_shields' into 'master'
Don't let elemental shields harm the player in god mode

Closes #5875

See merge request OpenMW/openmw!631
4 years ago
Alexei Dobrohotov 023bc80f55 Don't let elemental shields harm the player in god mode 4 years ago
psi29a eb11e1fcdb Merge branch 'build-accelerator' into 'master'
heightfield: Only `buildAccelerator` on Bullet 2.89+

Closes #5874

See merge request OpenMW/openmw!630
4 years ago
Gleb Mazovetskiy 1fb442e701 heightfield: Only `buildAccelerator` on Bullet 2.89+
Fixes #5874
4 years ago
elsid fac5759748
Set bounding min and max height for btHeightfieldTerrainShape
They must be set for proper AABB based filtering. Use
+-max(abs(min), abs(max)) to make sure bullet does not shift coordinates by z.
4 years ago
elsid fdca76ce86
Remove unused includes 4 years ago
psi29a 28be5a259b Merge branch 'russian_console' into 'master'
Don't assume unmapped keycodes outside the extended ASCII range are unprintable

Closes #5871

See merge request OpenMW/openmw!622
4 years ago
psi29a 937549c99e Merge branch 'fix_still_actors' into 'master'
Make actor flee from a combat when cannot reach a target (#5851)

See merge request OpenMW/openmw!601
4 years ago
psi29a 20e6db917b Merge branch 'fix-osg-static' into 'master'
CMake: Fix support for OSG static lib paths

See merge request OpenMW/openmw!624
4 years ago
AnyOldName3 f5a87ee46d Refactor out duplicated RTT setup code 4 years ago
Gleb Mazovetskiy 21a70b7d2b heighfield: buildAccellerator()
This enables accelleration of heightfield collisions.

Unfortunately, `btHeightfieldTerrainShape::processAllTriangle` does not
yet use the accellerator data, so this change does not improve
performance yet but might do so in future bullet versions.

References:

* Accellerator introduced in:
  https://github.com/bulletphysics/bullet3/pull/2062

* Feature request to use the accellerator in `processAllTriangle`:
  https://github.com/bulletphysics/bullet3/issues/3276
4 years ago
Gleb Mazovetskiy 13c5b1b0c5 CMake: Fix support for OSG static lib paths
`$<TARGET_FILE:...>` fails if the argument is already a path (instead of
a library name). This happens when a static library is found via
`osg_find_library`.

If the argument contains `/` or `.`, do not use `$<TARGET_FILE:...>`
4 years ago
Alexei Dobrohotov a292a31cb3 Merge branch 'you_and_i_code' into 'master'
Fix Ctrl U/W behaviour to work with unicode text

See merge request OpenMW/openmw!621
4 years ago
Evil Eye 6e0f070cd1 Don't assume unmapped keycodes outside the extended ASCII range are unprintable 4 years ago
Evil Eye a616af822e Fix Ctrl U/W behaviour to work with unicode text 4 years ago
AnyOldName3 4ed67d8597 Improve A2C setting name 4 years ago
AnyOldName3 c7ee5d21dc Make the dummy texture for the character preview even more shadow-friendly 4 years ago
AnyOldName3 2b144ff3dd Merge branch 'fix_frame_rate_limit' into 'master'
Fix frame rate limit (#5686)

See merge request OpenMW/openmw!603
4 years ago
AnyOldName3 9be258d260 Make it possible to reinstate FFP state easily 4 years ago
psi29a 5c0214142b Merge branch 'static-build' into 'master'
Optional local source builds of OSG, MyGUI, Bullet

See merge request OpenMW/openmw!547
4 years ago
psi29a bcbe144a1d Merge branch 'weatheralpha' into 'master'
Fix weather particle fading

Closes #5455

See merge request OpenMW/openmw!506
4 years ago
psi29a 87d80b3d0a Merge branch 'loading_screen_race_condition' into 'master'
Fix a race condition in loading screen.

See merge request OpenMW/openmw!568
4 years ago
psi29a 59e09cba5b Merge branch 'boltsize' into 'master'
Use projectile mesh size (#5829)

See merge request OpenMW/openmw!587
4 years ago
elsid 561628087c Merge branch 'profiler_fix' into 'master'
Fix profiler glitches (#5850)

See merge request OpenMW/openmw!605
4 years ago
AnyOldName3 4f510d85ba Merge remote-tracking branch 'upstream/master' into alpha-meddling 4 years ago
AnyOldName3 6291b9304b Log when icon is missing and fallback is used 4 years ago
uramer e7afbc74d8 Wizard: Only allow to select Morrowind.esm master files, display an error if Morrowind.bsa is missing 4 years ago
elsid 8dba61f7ae
Use navmesh raycast to find reachable position around target 4 years ago
elsid becccf3b5e
Make actor flee from a combat when cannot reach a target 4 years ago
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.
4 years ago
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.
4 years ago
Evil Eye 2e73d2c145 Fallback to default cell name for door destination 4 years ago
psi29a c33b2e0100 Merge branch 'dehardcodebaseanim' into 'master'
Dehardcode Base_animation and improve Collada support

See merge request OpenMW/openmw!510
4 years ago
Sergey Fukanchik f3271cb66b Add unit test for swapEndiannessInplace(). Part of Bug #5837 4 years ago
AnyOldName3 da6223fc4b Use default icon.tga when inventory icon is missing 4 years ago
psi29a 7a9eb34403 Merge branch 'master' into 'freeunrealestate'
# Conflicts:
#   CHANGELOG.md
4 years ago
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
4 years ago
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.
4 years ago
Evil Eye af0f94f03e Play damage sound when hurt by elemental shields 4 years ago
Evil Eye f1caeea444 Don't return negative values from GetMagicka 4 years ago
Evil Eye e4cd89643f Merge branch 'master' of gitlab.com:OpenMW/openmw into freeunrealestate 4 years ago
Evil Eye 6aa75c287a Don't check magicka when casting free spells 4 years ago
psi29a e6607486f5 Merge branch 'jfmherokiller-master-patch-23743' into 'master'
Fix the regression involving Cure

See merge request OpenMW/openmw!582
4 years ago
psi29a f63af685c0 Merge branch 'bemorenegative' into 'master'
Allow negative values for ai stats

Closes #5835

See merge request OpenMW/openmw!586
4 years ago
fredzio 6e969ca3fa Use mesh collision box instead of node bounding sphere for projectile
size. The bounding sphere is much bigger than the mesh.
4 years ago
Evil Eye 3007cb14a9 Also allow negative AI values in dialogue 4 years ago
Noah Gooder e42b67ee50 Modified actors.cpp and Authors.md 4 years ago
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
4 years ago
Evil Eye 61e014a765 Allow negative values for ai stats 4 years ago
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.
4 years ago
Nelsson Huotari e91d1a2b42 Fix earlier broken commit 4 years ago
AnyOldName3 0639f8b7c6 Make the dummy texture for the character preview shadow-friendly 4 years ago
Nelsson Huotari 384112746c Add option for custom collision node with non-nif files 4 years ago
Jordan Francis Moran-Meyers 0d1c073cfa Fix the regression involving Cure 4 years ago
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
4 years ago
Petr Mikheev 157b14cdaa Fix #5821: NPCs from mods getting removed if mod order was changed 4 years ago
Petr Mikheev 9590377f22 Don't ignore Z in path finding if actor can move by Z. 4 years ago
Petr Mikheev 642ca02e35 Shorten almost straight paths only if smooth movement is enabled; reduce angle limit for the shortening. 4 years ago
Andrei Kortunov b286397dd4
Merge pull request #3045 from akortunov/revert
Revert fix for 5379
4 years ago
Andrei Kortunov 7b727e4d70 Revert "Remove physics dependency on basenode"
This reverts commit 165c731492.
4 years ago
Andrei Kortunov 165af1c365 Revert "Some actors are supposed to spawn on a static object that belong to an adjacent cell."
This reverts commit f031a191b8.
4 years ago
Andrei Kortunov f8e8496d36 Revert "Revert a wrong change introduced in MR 546"
This reverts commit 23137d0c54.
4 years ago
Bret Curtis 9f168eab88
Merge pull request #3044 from akortunov/master
Avoid null dereference for objects without cells
4 years ago
uramer ee2f0e7eb3 Fix inconsistent argument name 4 years ago
uramer eca0d8b7ea Fix typo in DropMode enum 4 years ago
uramer edc6d5c3e7 Fix a typo in separate drop binds 4 years ago
uramer 36cd818155 Fix separate drop, refactor for code reuse 4 years ago
Andrei Kortunov 3b9f8b5fa2 Avoid null dereference for objects without cells 4 years ago
Andrei Kortunov d984d13b1c Merge branch 'animate_animated_objects' into 'master'
Unbreak animated objects (regression from !546)

See merge request OpenMW/openmw!570
4 years ago
Andrei Kortunov 5382d38b9b Merge branch 'hit_target_object' into 'master'
Unbreak targetted spell on objects (#5811)

See merge request OpenMW/openmw!569
4 years ago
elsid a3ab8dfbb4 Revert "Merge branch 'movement_fix2' into 'master'"
This reverts merge request !496
4 years ago
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.
4 years ago
Nelsson Huotari 83ee1cc582 fix xbase to baseanim 4 years ago
Nelsson Huotari 3194520dcd Move base_anim settings to settings-default.cfg 4 years ago
Bret Curtis b164f1aa17
Merge pull request #3023 from akortunov/grass_intsancing
Grass instancing
4 years ago
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
4 years ago
Frederic Chardon 7cd7fa2f08 Collect all available stats if OPENMW_OSG_STATS_FILE is set and point to
a valid file.
4 years ago
fredzio 64475ebedb Remove a brainfart from precise projectile handling: all non-actor
non-projectile objects were treated as ground.
4 years ago
Gleb Mazovetskiy 8737453498 cmake: Compiler-specific whole-archive macro 4 years ago
Gleb Mazovetskiy 99ba45a308 Optional static builds of OSG, MyGUI, Bullet 4 years ago
Andrei Kortunov f40e227686 Remove redundant formatting changes 4 years ago
Andrei Kortunov b975f16e6b Remove redundant check - groundcover is not present in the CellStore 4 years ago
Andrei Kortunov d12a0fdcb3 Mark only instances from groundcover files as groundcover objects 4 years ago
Andrei Kortunov 8874e88ff1 Drop fading setting 4 years ago
Andrei Kortunov 1a6c06f7b5 Do not allow to set distance to non-positive values 4 years ago
Andrei Kortunov 859cd0fd0c Do not use display lists for instanced meshes 4 years ago
Andrei Kortunov a09f03c850 Drop groundcover materials - they are not used 4 years ago
Andrei Kortunov 14cf0ce1dc Implement instanced groundcover 4 years ago
madsbuvi 663e0a1055 Fix a race condition in loading screen. 4 years ago
Petr Mikheev bc2cec86e9 Fix bug: NPCs doesn't move if the target is exactly above or exactly below. 4 years ago
psi29a cadd1e7529 Merge branch 'daedric_fog' into 'master'
Don't nuke fog when bounds have changed

Closes #5469

See merge request OpenMW/openmw!522
4 years ago
psi29a a8c5607aa6 Merge branch 'disableinfotablesorting' into 'master'
[OpenMW-CS] Info table dragging to move record order, disable sorting

See merge request OpenMW/openmw!538
4 years ago
psi29a 64b4472efa Merge branch 'stand' into 'master'
Don't adjust actor position until all objects are loader (#5379)

See merge request OpenMW/openmw!546
4 years ago
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
4 years ago
Cédric Mocquillon 3bb551a6f1 Show level multipliers in levelup tooltip 4 years ago
Evil Eye 59af819f97 Merge branch 'fix-mem-leak-2' into 'master'
Fix memory leak in MWInput

See merge request OpenMW/openmw!566
4 years ago
Gleb Mazovetskiy fe815d3d8d Fix memory leak in MWInput
mListener wasn't being cleaned up
4 years ago
Evil Eye a2171875a0 Prevent nullptr access 4 years ago
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.
4 years ago
fredzio 165c731492 Remove physics dependency on basenode
Necessary to be able to load physics objects from inactive cells.
4 years ago
psi29a b28adafee4 Merge branch 'navcrash' into 'master'
Fix #5798

Closes #5798

See merge request OpenMW/openmw!554
4 years ago
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.
4 years ago
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
4 years ago
psi29a d2c5de5211 Merge branch 'projectile_physics' into 'master'
Precise projectile physics (closes #4201)

Closes #4201

See merge request OpenMW/openmw!550
4 years ago
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.
4 years ago
elsid cc24f13b39
Remove duplicated sound_buffer entry 4 years ago
AnyOldName3 b6e92c9c6d Use ShaderVisitor to skip translucent framebuffer specific stuff 4 years ago
AnyOldName3 8af8ad3840 Always write opaque fragments instead of relying on blending being off for translucent RTT 4 years ago
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
4 years ago
Nelsson Huotari 9f0f3eaeb2 Add collada to supported formats 4 years ago
Nelsson Huotari 54ea8eb5c7 Fix string corruption with Qt on linux-systems 4 years ago
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.
4 years ago
psi29a 9eba086c34 Merge branch 'sound_buffer_pool_2' into 'master'
Separate sound buffer pool from sound manager

See merge request OpenMW/openmw!520
4 years ago
Bret Curtis e68651e9a6
Merge pull request #3042 from akortunov/helpers
Refactoring pre-requisites for groundcover
4 years ago
Nelsson Huotari f2fc02cdff Support filtered tables (mapToSource for indexes) 4 years ago
Nelsson Huotari 16e03c151a Implement basic move algorithm, connect it to drag&drop 4 years ago
Andrei Kortunov 0418e8e7a6 Add an API to get base wind speed (which is from openmw.cfg) 4 years ago
Andrei Kortunov f175beb304 Define template ref classes in components 4 years ago
psi29a fd602e2c31 Merge branch 'viewdist' into 'master'
Downgrade FOV-dependent view distance factor to a recommendation

See merge request OpenMW/openmw!531
4 years ago
Bret Curtis d944f703e8 Merge branch 'master' of gitlab.com:OpenMW/openmw 4 years ago
Bret Curtis 73740013a3 mResourceSystem initialization reorder 4 years ago
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
4 years ago
Alexei Dobrohotov 4638fc36b4 Allow all creatures to float to the water surface 4 years ago
psi29a 3903142152 Update apps/openmw/mwbase/environment.cpp 4 years ago
psi29a 654238fd18 Merge branch 'no_bonus_points' into 'master'
Show mesh origin

Closes #5771

See merge request OpenMW/openmw!507
4 years ago
psi29a 29fdcb3fa1 Merge branch 'hardlanding' into 'master'
Init mJumpState based on saved fallheight (#5739)

See merge request OpenMW/openmw!532
4 years ago
Nelsson Huotari 70087e16fe Disable dialogue info table sorting 4 years ago
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.
4 years ago
psi29a acfd2cfd90 Merge branch 'dialogclonefix' into 'master'
[OpenMW-CS] Fix cloning in info records

See merge request OpenMW/openmw!524
4 years ago
Nelsson Huotari 93b1b444f2 Optimize CreateCommand and CloneCommand configuration 4 years ago
Alexei Dobrohotov 7be7af13d7 Downgrade FOV-dependent view distance factor to a recommendation 4 years ago
psi29a 6863c5a68f Merge branch 'raii' into 'master'
Make all physics object manage their own resources.

See merge request OpenMW/openmw!527
4 years ago
Nelsson Huotari 7196ad7455 Implement an override-value when cloning, use when cloning info records 4 years ago
Evil Eye 1ab4683dce Tweak follow distance to be more like the original 4 years ago
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
4 years ago
elsid 8b7f3fe908 Merge branch 'nodeadlock' into 'master'
Avoid a rare but possible deadlock around mCollisionWorldMutex.

See merge request OpenMW/openmw!525
4 years ago
Bret Curtis b3f3b29bbe
Merge pull request #3039 from akortunov/screenshotmanager
Move screenshots handling to the separate class
4 years ago
Bret Curtis a735bbe9a5
Merge pull request #3040 from akortunov/pvs
Fix some issues, found by PVS Studio
4 years ago
Evil Eye e737bd00fa Merge branch 'unused_param' into 'master'
Remove never used parameter from CharacterController::update()

See merge request OpenMW/openmw!523
4 years ago
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
4 years ago
Evil Eye a257567b80 Don't update magic effects when unequipping items to equip something else 4 years ago
Nelsson Huotari 3045d20a97 Make sure that vector isn't empty, just in case 4 years ago
Nelsson Huotari 5f1d3e0e2f Use the Topic ID of the cloned target from topicinfos 4 years ago
psi29a f7d7186c39 Merge branch 'instanceselectiontools' into 'master'
[OpenMW-CS] Cube and sphere instance selection

See merge request OpenMW/openmw!485
4 years ago
Nelsson Huotari 313e895912 [OpenMW-CS] Cube and sphere instance selection 4 years ago
fredzio 60f66f5e29 Remove never used parameter from CharacterController:update() 4 years ago
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.
4 years ago
Andrei Kortunov ad101de733 Merge declaration and initialization 4 years ago
unknown 564a0d7d55 Don't nuke fog when bounds have changed 4 years ago
Andrei Kortunov 1930f8f37d Fix copy-paste error 4 years ago
Andrei Kortunov 50e4600b16 Reduce code duplication 4 years ago
Andrei Kortunov 874348fb46 Remove redundant code 4 years ago
Mads Buvik Sandvei a2d8a0b61a engine.cpp typos 4 years ago
Andrei Kortunov 80ee1b55ea Protect assignment operator from this == &src case 4 years ago
Andrei Kortunov 33da0af1d1 Use explicit calls for virtual methods in constructors 4 years ago
elsid a6aba83741
Remove redundant SoundManager::lookupSound and loadSound 4 years ago
elsid e4cce88142
Replace std::tie by structured binding 4 years ago
elsid 90c8e77e2c
Remove redundant default Sound_Buffer fields initialization 4 years ago
elsid 24f8a2db27
Use perfect forwarding in Sound_Buffer ctor 4 years ago
Andrei Kortunov a80ee7a76a Avoid possible memory leak in the mInterMessageBoxe field 4 years ago
Andrei Kortunov 8e5f26c109 Code cleanup 4 years ago
Andrei Kortunov c9b885ffd4 Avoid possible null dereferencing 4 years ago
Andrei Kortunov 33648313a6 Initialize variables 4 years ago
Andrei Kortunov c1512b8b6c Convert loop to condition 4 years ago
Andrei Kortunov 56666c60d4 Remove dead code 4 years ago
Andrei Kortunov 8283ec6cad Do not use & for boolean arguments 4 years ago
Andrei Kortunov 7fc4c9f3f6 Avoid dead code 4 years ago
Andrei Kortunov 801e2d6ad0 Avoid to use uninitialized variables 4 years ago
Andrei Kortunov c5a36ad440 Do not cast enums to booleans 4 years ago
Andrei Kortunov 799bd3379c Move screenshots handling to the separate class 4 years ago
elsid 944033db4e
Separate sound buffer pool from sound manager 4 years ago
AnyOldName3 2d61db555b Merge branch 'osg_log' into 'master'
Split long osg log messages into lines.

See merge request OpenMW/openmw!519
4 years ago
Petr Mikheev 7d551b0cfd Split long osg log messages into lines. 4 years ago
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
4 years ago
Evil Eye 2a583e2337 consider empty paths as not constructed 4 years ago
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.
4 years ago
psi29a dc82cb61f4 Merge branch 'nativeshapesdebug' into 'master'
Unbreak physics debugger with projectiles' spherical shapes.

See merge request OpenMW/openmw!489
4 years ago
Alexei Dobrohotov c17e498465 Merge branch 'launchercleanup' into 'master'
Remove deadcode from the launcher.

See merge request OpenMW/openmw!511
4 years ago
AnyOldName3 f2eed5594a Don't use A2C when MSAA is off 4 years ago
AnyOldName3 c75d7ceada Ensure alpha test is off by default 4 years ago
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).
4 years ago
fredzio dbdd397716 Remove deadcode. 4 years ago
Evil Eye 57c92673bc Consider a path completed if it was non-empty 4 years ago
unknown 3bf641d3ce Show mesh origin 4 years ago
Alexei Dobrohotov 396667f801 Fix weather particle fading
Update rain particle system setup
4 years ago
Evil Eye e46472442a Switch torches to shields for hostile NPCs 4 years ago
AnyOldName3 54853380cd Enable multisampling in RTTs to support A2C 4 years ago
Andrei Kortunov e80d34268c Fix defines names 4 years ago
Alexei Dobrohotov a7cbe0b497
Merge pull request #3036 from akortunov/tooltip
Enhance level-up tooltip
4 years ago
Andrei Kortunov 66fee6dccb Enhance level-up tooltip 4 years ago
Andrei Kortunov 6a12c2b58b Fix GCC build warnings 4 years ago
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
4 years ago
wareya 18ef32ca82 values for this higher than sGroundOffset cause jittering on some surface; use safe-seeming value slightly less than sGroundOffset 4 years ago
Alexei Dobrohotov ddbfa5410d Merge branch 'fixboats' into 'master'
Apply waterwalking even when bypassing physics simulation

See merge request OpenMW/openmw!500
4 years ago
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.
4 years ago
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
4 years ago
AnyOldName3 5e004356a2 Merge remote-tracking branch 'upstream/master' into alpha-meddling 4 years ago
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
4 years ago
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
4 years ago
AnyOldName3 8f4b856b44 Initial A2C implementation 4 years ago
Evil Eye 7cac7fa870 Make followers keep a distance dependant on the fattest party member 4 years ago
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
4 years ago
Evil Eye d2a28d915a Don't consider a path completed unless we're close 4 years ago
Evil Eye 1f1755ae48 Add version checks 4 years ago
Evil Eye bdcbb412a5 Don't restore focus to hidden/unrelated buttons 4 years ago
Petr Mikheev 8b3088a9e5 Fix #5743 4 years ago
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.
4 years ago
Alexei Dobrohotov fd77ef6b01 Only ignore plain text after the last EOL tag (#5627) 4 years ago
Alexei Dobrohotov 32cc14981e Don't move characters if their animation can't move them 4 years ago
psi29a 4f1361b5ea Merge branch 'paralyze' into 'master'
Fix paralyze for swimming and levitating actors

Closes #5758

See merge request OpenMW/openmw!488
4 years ago
Alexei Dobrohotov 22476281da Fix paralyze for swimming actors 4 years ago
Alexei Dobrohotov 218597b13d Fix paralyze for levitating actors 4 years ago
Alexei Dobrohotov f5af09aed9 Fix AI sequence looping code (bug #5706) 4 years ago
psi29a 3e87c35005 Merge branch 'dialogue' into 'master'
Don't regenerate the topics list unconditionally

See merge request OpenMW/openmw!459
4 years ago
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
4 years ago
Alexei Dobrohotov ce36dd8a52 Merge branch 'misc_cleanup' into 'master'
Small cleanup

See merge request OpenMW/openmw!482
4 years ago
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
4 years ago
fredzio 33eb09f534 Remove unused headers 4 years ago
Alexei Dobrohotov 6b5e614b1a Merge branch 'dont_cache_ptr' into 'master'
Always use latest actor's Ptr

See merge request OpenMW/openmw!481
4 years ago
fredzio e5f0c7f117 Fix a typo introduced in 08e73a09ec
It closes #5752
4 years ago
fredzio 93a12fe388 Avoid dynamic_cast when possible. 4 years ago
fredzio 8e084dea2e Don't cache Ptr, it can be updated while the simulation is running. 4 years ago
fredzio 58297ffbf4 Move stats update into their own function. 4 years ago
fredzio 24a8b8c66a Remove redundant call to resetPosition(). adjustPosition() takes care of
it,
4 years ago
Mads Buvik Sandvei eec2ba3623 Loading screen initialdrawcallback 4th time's the charm 4 years ago