fredzio
8874a5be22
Change (again) the way SetPos behave.
...
Instead of registering the desired change of position and rely on
physics simulation to apply it to the world, immediately change the
position in the world without reset the simulation.
4 years ago
fredzio
6e1c67a9ae
Account for waterwalking when updating position. Otherwise we might
...
trace down the actor at waterlevel at the wrong coordinate.
Triggered by multimark mod with waterwalking effect.
4 years ago
psi29a
484c46cb58
Merge branch 'hrtf-setting' into 'master'
...
Add Audio settings to openmw-launcher
See merge request OpenMW/openmw!692
4 years ago
Simon Meulenbeek
75b4871bab
Add Audio settings to openmw-launcher
4 years ago
Jonas Tobias Hopusch
799cf16f31
Attempt to fix #5942
...
Closes OpenMW/openmw#5942
This is an attempt to apply the fix suggested by @Capostrophic
4 years ago
psi29a
fe2a97ee39
Merge branch 'wizard-link' into 'master'
...
Implement #3983 - Add page to the wizard with links to buy morrowind
Closes #3983
See merge request OpenMW/openmw!693
4 years ago
tess
6f7e8d9f59
Implement #3983 - Add page to the wizard with links to buy morrowind
4 years ago
psi29a
4f86eddc96
Merge branch 'CreateBsaAddFileToBsa' into 'master'
...
Create BSA, add file to existing BSA
See merge request OpenMW/openmw!718
4 years ago
elsid
8e1c92d9af
Use std::variant for ESM::Variant implementation
4 years ago
elsid
7f577f5f08
Do not compare hash in tests
...
Different std libraries have different implementation that produce different
results for the same values.
4 years ago
psi29a
a16387df61
Merge branch 'sky-dehardcode' into 'master'
...
De-hardcode references to mesh files used by the sky.
See merge request OpenMW/openmw!704
4 years ago
Matjaž Lamut
2cb4b62b83
De-hardcode references to mesh files used by the sky.
4 years ago
CedricMocquillon
d617d66a87
Add file to BSA
4 years ago
psi29a
8cb3681c12
Merge branch 'esm_variant_tests' into 'master'
...
Add tests for ESM::Variant
See merge request OpenMW/openmw!712
4 years ago
Jacob Turnbull
d9376ee08e
Trim down comment and change flag name
4 years ago
Evil Eye
44f2cb0923
Fix targeted scripts losing their targets when rearranging your load order
4 years ago
Andrei Kortunov
59720aea9a
Restore old aiming for melee combat
4 years ago
Jacob Turnbull
bc8db8b8f5
Fix for enchanted items being removed on item equip cycling when they are re-equipped
4 years ago
psi29a
9aa5aef2c6
Merge branch 'my_other_mr_is_larger' into 'master'
...
Make AddItem's quantity overflow on negative numbers
Closes #5934
See merge request OpenMW/openmw!713
4 years ago
elsid
bd33fa76b6
Use CRTP to define CustomData clone function
4 years ago
elsid
e380470558
Add move ctor and assignment operator to RefData
4 years ago
elsid
045bb7cbd7
Store CustomData and ContainerStore as unique_ptr
4 years ago
Evil Eye
ecde3932e2
Make AddItem's quantity overflow on negative numbers
4 years ago
elsid
dae3f022ba
Add tests for ESM::Variant
4 years ago
fredzio
9cae7882dd
Fix a bug that was triggered with multi mark mod.
...
When a script calls SetPos for x,y,z in sequence on an actor, we need to make sure
that the actor will not spawn under ground at x,y coordinates.
Now that change of coordinates are cumulated and applied all at once, we
need to account for the whole offset.
To this end move the terrain height check inside of Actor class.
4 years ago
fredzio
0fac172413
Remove wrong line that slipped in yesterday.
4 years ago
Andrei Kortunov
50352daf90
Rework knockdown and knockout animations fallbacks
4 years ago
Evil Eye
582f1503c1
Merge branch 'setpos' into 'master'
...
Unbreak SetPos and the mods using it (#5919 )
See merge request OpenMW/openmw!696
4 years ago
fredzio
7a67492d81
Unbreak SetPos and the mods using it.
...
To make SetPos works with async physics, it was modified to register a
position offset that would be applied to the real position during the
simulation.
A common pattern to teleport NPC in scripts is a sequence of SetPos/Disable/Enable in the same frame.
Since Disable/Enable creates a new physics actor using last known
RefData::Position, the registered offset never get a chance to be applied.
Modify disable() to call moveObject with the offset applied, so that the newly created physics actor will have up-to-date position
4 years ago
fredzio
b58244ac26
Guard the Bullet drawing method with a read lock on the
...
btCollisionWorld. It closes a race on the collision shapes coordinates.
4 years ago
fredzio
dbd6e3bfee
Replace pointless usage of shared_ptr by unique_ptr / non-owning raw
...
pointer for btCollisionWorld.
4 years ago
fredzio
ccd3cbc69a
Use saved actor position instead of reading again RefData in unstuck. It
...
is a race condition to do so.
4 years ago
Andrei Kortunov
5fce5b12f4
Merge branch 'drop_the_bird' into 'master'
...
Disallow inserting containers, creatures, and npcs from the save game not present in content files
Closes #5884
See merge request OpenMW/openmw!683
4 years ago
Andrei Kortunov
b61337643e
Merge branch 'issue-5680' into 'master'
...
change aim calculation
See merge request OpenMW/openmw!685
4 years ago
elsid
f2ebad5115
Return cached element when set existing
4 years ago
elsid
b9a40bc5fc
Add NavMeshTilesCache benchmarks
4 years ago
Max
2cd96e56d5
create constant and use constant in other parts of the code base
4 years ago
Max
e56efdd562
change aim calculation
4 years ago
elsid
453e94ea9f
Use half extents for destination distance tolerance in AiEscort
...
For actors moving in water destination may be located at such z coordinate
that they can't reach.
4 years ago
elsid
f32e1790bc
Add half extents to AiEscord max distance
...
For actors with big bounding box given constants may not work properly like
it's not possible to get close enough to actor from a given angle to make it
move.
4 years ago
elsid
39c0ce9ddf
Build limited path for far destinations
...
When distance between start and end point is greater than max radius of area
possibly covered by navmesh there is no way to find path via navmesh. Also if
distance is greater than cell size navmesh might not exists withing mentioned
area because cell is not loaded therefore navmesh is not generated. So minumum
of these values is used to limit max path distance. Assuming that path
actually exists it's possible to build path to the edge of a circle. When
actor reaches initial edge path is built further. However it will not be
optimal.
4 years ago
Evil Eye
cf5a93d712
Also run NPC validation for modified base records
4 years ago
Evil Eye
e79036f4e0
Don't erase the player
4 years ago
psi29a
1af50b7e23
Merge branch 'sound_cleanup' into 'master'
...
Sound cleanup
See merge request OpenMW/openmw!567
4 years ago
psi29a
415591b7ed
Merge branch 'ai_reaction_deviation' into 'master'
...
Distribute AI reactions and engage combat calls over time
See merge request OpenMW/openmw!674
4 years ago
Evil Eye
5e1960a76a
Disallow inserting containers, creatures, and npcs from the save game not present in content files
4 years ago
Evil Eye
8e9bd5c0bd
Don't throw an exception when equipping a bound item fails
4 years ago
Evil Eye
580fa78034
Don't purge summon effects with invalid creature ids
4 years ago
wareya
63f01d8c5f
Prevent physics death spiral by falling back to true delta time when needed
4 years ago
psi29a
86bd173d69
Merge branch 'refactoring' into 'master'
...
"static const" -> "static constexpr" in headers
See merge request OpenMW/openmw!676
4 years ago
Petr Mikheev
7bbbe40abe
"static const" -> "static constexpr" in headers
4 years ago
wareya
e722c99e62
forgot to initialize these variables
4 years ago
wareya
40265bf118
make unstucking slightly smarter (can turn itself off, also acts like flat ground)
4 years ago
elsid
62c0ecbbd0
Separate engage combat timer for each actor
...
Use DeviatingPeriodicTimer to distribute calls over time. This reduces
stuttering and make AI more natural.
4 years ago
elsid
675c0ab72f
Apply uniform random deviation to AI reaction timer
...
This allows to distribute AI reaction calls over time.
Before this change actors appearing at the same frame will react in the same
frame over and over because AI reaction period is constant. It creates a
non-uniform CPU usage over frames. If a single frame has too many AI reactions
it may cause stuttering when there are too many actors on a scene for current
system.
Another concern is a synchronization of actions between creatures and NPC.
They start to go or hit at the same frame that is unnatural.
4 years ago
Andrei Kortunov
54daa234bd
Reset watched stats upon reload or new game start
4 years ago
wareya
1471ef003a
fix async physics interpolation
4 years ago
AnyOldName3
162b25c180
Fix sunglare on Mesa
...
The sunglare works by comparing an occlusion query with depth testing on
against one with depth testing off to determine if there's anything
closer to the camera than the maximum depth buffer value. For the depth-
tested query, the depth range is set from 1 to 1 so it's always drawn at
the maximum distance. Originally, we had the depth function set to LESS,
meaning that the query would always fail as 1 is not less than 1, but
also glPolygonOffset was used to move the query by "the smallest value
that is guaranteed to produce a resolvable offset for a given
implementation" closer to the camera. While other driver and hardware
combinations do that, Mesa seems to be clamping to the depth range, so
still failing.
Instead, it's simpler to just get rid of the polygon offset and change
the depth test to LEQUAL as 1 *is* less than or equal to 1, but not than
any other possible depth buffer value.
4 years ago
Evil Eye
d1e8c6b223
Merge branch 'magical_rat' into 'master'
...
Register copied Spells with SpellList
See merge request OpenMW/openmw!662
4 years ago
AnyOldName3
ba74fbf30e
Fix MyGUI log
...
Also actually print an error to the regular log when the MyGUI log can't
be opened so we notice if we kill it again in under five years.
4 years ago
Bret Curtis
40c989d732
allman style
4 years ago
Evil Eye
c2580d60e9
Register copied Spells with SpellList
4 years ago
Bret Curtis
9fc0649fb6
a better check to avoid the mCell assertion, so compariing nullptr to current cell will refurn false anyway
4 years ago
Bret Curtis
49545e6d29
add comments as to why we need to check that the player is grounded or not; only run once during initial cell loading
4 years ago
Bret Curtis
fff1df9ee4
revert some blank lines
4 years ago
Bret Curtis
c067782814
proper fix that traces down the player when a cell is loaded; we also only run once if the current cell being loaded is the one that the player is in.
4 years ago
Bret Curtis
1479f98793
hacky solution with debug; seems that player is added before cell so tracing down will not find anything
4 years ago
Bret Curtis
19ad7d7f0c
Resolve #5895 by setting the initial mOnGround state to false; we do this because the movement solver runs one frame behind so when we run through the loop the first time we assume we are on the ground even though we may be 400 units in the air.
4 years ago
psi29a
514a55ed4c
Merge branch 'fix_5846' into 'master'
...
Fix #5846 (headtracking)
Closes #5846
See merge request OpenMW/openmw!652
4 years ago
glassmancody.info
6255b0492b
Resolve crashes on exit with visible MyGUI widgets
4 years ago
Petr Mikheev
447c3b9489
Fix 5846
4 years ago
elsid
9275dd2dcb
Avoid virtual dispatch in SoundManager dtor
4 years ago
elsid
b0311ce9f1
Remove DEFAULT_OUTPUT macros
4 years ago
elsid
e30a59772c
Remove DEFAULT_DECODER macros
4 years ago
Evil Eye
4db2f79a3c
Merge branch 'setpos' into 'master'
...
Use relative movement inside of SetPos
See merge request OpenMW/openmw!649
4 years ago
fredzio
cb39f8fb01
Use moveObjectBy in SetPos
4 years ago
fredzio
03b86c232b
Apply the position offset even if the simulation is not performed
...
because we're too fast.
4 years ago
psi29a
311b497491
Merge branch 'bullet-heightfield-floats' into 'master'
...
Avoid heightfield conversion in newer Bullet
See merge request OpenMW/openmw!647
4 years ago
psi29a
cc6f08930b
Merge branch 'alpha-meddling' into 'master'
...
Replace deprecated alpha test in shader visitor
Closes #4899
See merge request OpenMW/openmw!473
4 years ago
AnyOldName3
0431ba4c87
Merge branch 'alpha-meddling-shader-side-mip-meddling' into alpha-meddling
4 years ago
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