Commit Graph

19726 Commits (a7eeba03a10285fd78e268e6748857f95220fff0)

Author SHA1 Message Date
elsid 4d7e5245a3
Support benchmarks for windows
Don't run the binary because gitlab can't execute it successfully due to
unknown reason.
4 years ago
psi29a f7b8c817f8 Merge branch 'performance-faster-string-find' into 'master'
Fixing performance-faster-string-find issues

See merge request OpenMW/openmw!842
4 years ago
Thunderforge 339d347aea Fixing performance-faster-string-find issues
This addresses the Clang Tidy check [performance-faster-string-find](https://clang.llvm.org/extra/clang-tidy/checks/performance-faster-string-find.html).
4 years ago
Bret Curtis 08059247b8
Merge pull request #3081 from akortunov/master
Skip hidden nodes for ObjectPaging
4 years ago
psi29a 13fd0e11ff Merge branch 'no_time_to_talk' into 'master'
Don't stop and turn to the player while sneaking or jumping

Closes #6016

See merge request OpenMW/openmw!838
4 years ago
AnyOldName3 09f39b29f0 Load defaults.bin instead of settings-default.cfg. Do not decode yet. 4 years ago
AnyOldName3 92325976e9 Update documentation to refer to defaults.bin 4 years ago
AnyOldName3 0d737a3501 Create defaults.bin at configure time 4 years ago
Evil Eye c5aa3d4f77 Don't stop and turn to the player while sneaking or jumping 4 years ago
Evil Eye ffd84502f9 Remove unimplemented method declaration 4 years ago
Andrei Kortunov 132fedf290 Analyze only used LOD levels in ObjectPaging 4 years ago
Andrei Kortunov a939cb6692 Skip hidden nodes for ObjectPaging 4 years ago
Thunderforge ead51784dc [Launcher] Replacing static method access through instances
This addresses the Clang Tidy check [readability-static-accessed-through-instance](https://clang.llvm.org/extra/clang-tidy/checks/readability-static-accessed-through-instance.html). It also simplifies the code by reducing the number of parameters we're passing around.
4 years ago
Frederic Chardon caf382c19f Merge branch 'barrier' into 'master'
Do not store callback inside Misc::Barrier

See merge request OpenMW/openmw!821
4 years ago
David Cernat 85ab67fff4 [Server] Use consistent order for script functions for Spells
Fix a small typo.
4 years ago
David Cernat 1f3a17eff7 [Client] Remove pointless declaration of DedicatedPlayer as struct
This seems to have been a typo left over from Koncord's early work on the project.
4 years ago
David Cernat e00ee1425a [Client] Reload DedicatedActor ptrs when setting their active spells
This makes the spells' visual effects appear correctly.
4 years ago
psi29a 08e1a8e0fb Merge branch 'esm_opti' into 'master'
Teensy optimisation for esmtool

See merge request OpenMW/openmw!826
4 years ago
David Cernat 1eeee29d51 [General] Implement ActorSpellsActive packet, part 2
Additions and removals of actors' active spells can now be saved to and loaded from the server.
4 years ago
psi29a 9b017ef04d Merge branch 'internal_includes_openmw' into 'master'
Clean up some internal includes of the openmw component

See merge request OpenMW/openmw!796
4 years ago
Andrei Kortunov a0582caa26 Fix uninitialized variable 4 years ago
David Cernat ea6d5c68ae Add OpenMW commits up to 6 May 2021
# Conflicts:
#   CMakeLists.txt
#   components/CMakeLists.txt
4 years ago
jvoisin e97e4d07dd Teensy optimisation for esmtool
- Use an unordered_set instead of a list to
  keep track of skipped records.
- Reduce the number of conditions when parsing 4-letters
  records by using a switch-case instead of cascading conditions.
- Add a const
4 years ago
elsid 00de80c884 Merge branch 'deadcode' into 'master'
GC some unused code, simplify some other

See merge request OpenMW/openmw!820
4 years ago
fredzio e99b61d362 Simplify the code 4 years ago
elsid 626e032931
Do not store callback inside Misc::Barrier
The only wait method can be provided with it so pass it as a template
parameter there.
4 years ago
fredzio 00de540a31 Remove unused function. 4 years ago
elsid 7a51d0db18
Wait until navmesh is generated within given distance around player
Add a setting to change this distance.

To prevent situations when there is not enough navmesh generated and actors
can't find path correctly.
4 years ago
elsid f169f8e6f0
Wait until navmesh is generated for interior cells
Add special loading progress bar.

It should be fast enough to not keep loading screen for noticably long but
will provide better pathfinding for actors inside interior cells.
4 years ago
psi29a b8128d09f9 Merge branch 'enchanted-item-selected-fix' into 'master'
Fix for enchanted items being removed on item equip cycling when they are re-equipped

See merge request OpenMW/openmw!714
4 years ago
psi29a 9eb876cc17 Merge branch 'read_me' into 'master'
Allow activation of inventory items

Closes #5991

See merge request OpenMW/openmw!788
4 years ago
psi29a 6ac4dfbeb7 Merge branch '9001st_time_the_charm' into 'master'
Rework again scripted movements

See merge request OpenMW/openmw!799
4 years ago
psi29a 15f6932aaa Merge branch 'openmwizzrd_include' into 'master'
Remove some useless includes from the wizzard

See merge request OpenMW/openmw!767
4 years ago
psi29a 6513c38875 Merge branch 'clean_navigator' into 'master'
Remove redundant and useless code from navigator

See merge request OpenMW/openmw!815
4 years ago
psi29a b10a817f7e Merge branch 'useuless_launcher' into 'master'
Remove some useless includes from the launcher

See merge request OpenMW/openmw!775

(cherry picked from commit a84bd643b334eb6ac715681c497184ac22212ced)

d3fff8cf Remove some useless includes from the launcher
4 years ago
elsid ec87b3f8f7
Remove redundant ChunkyTriMesh
This AABB tree required when need to filter out input mesh that has not
influence navmesh tile output. This filtering is already done before. Each
recast mesh corresponds to a single navmesh tile and has appropriate bounds.
4 years ago
David Cernat a3f304107b Add OpenMW commits up to 2 May 2021
# Conflicts:
#   components/CMakeLists.txt
4 years ago
jvoisin d45184a730 Sprinkle some const-ref to avoid unnecessary copies 4 years ago
Chris Djali f0cef87cd8
Merge pull request #3069 from akortunov/msvc_warnings
Rework warnings settings
4 years ago
fredzio 4fa0972b2d Tone down actor's skip simulation flag to an optional skip collision
detection flag.
4 years ago
Evil Eye bd45449f9d Allow activation of inventory items 4 years ago
jvoisin 998cc97a4f And done! 4 years ago
jvoisin be371ccd9f An another pass 4 years ago
jvoisin ee2446d5c4 Trim even more 4 years ago
jvoisin 04edb1c817 Trim down some internal includes 4 years ago
psi29a 16bb3919d1 Merge branch 'navmesh_cache_simplification' into 'master'
Simplify navmesh cache

See merge request OpenMW/openmw!691
4 years ago
Alexei Dobrohotov e3bb45fd61 Merge branch 'minor_aicombat' into 'master'
Minor optimization in aicombat.cpp

See merge request OpenMW/openmw!737

(cherry picked from commit f1d19035cccfff2523faad0d4e4d96cd3ddae2e6)

bbbfc520 Minor optimization in aicombat.cpp
237b34a6 Fix style
a14911cb Fix indentation
4 years ago
jvoisin 4c96644f8d Use a char instead of a string in find() where possible
This was done via PVS Studio ( https://pvs-studio.com ),
and should provide a super-duper-marginal performance boost \o/
4 years ago
elsid e1d955d92b
Remove noexcept specifier from CreatureCustomData move ctor
C++17 doesn't allow to declare defaulted move ctor with not matching
exception specification to the calculated one:
/Users/eddie/Downloads/BUILD/openmw-master/apps/openmw/mwclass/creature.cpp:63:9: error:
      exception specification of explicitly defaulted move constructor does not
      match the calculated one
        CreatureCustomData(CreatureCustomData&& other) noexcept = default;
        ^

http://wg21.link/p1286r2 makes this possible in C++20 and newer compilers
already have it working even with -std=c++17 but older onces give an error.
4 years ago
elsid ca7add0624
Add move constructor to MWMechanics::Spells 4 years ago
elsid 46e34c500c
Use algorithms to add/remove listener to SpellList 4 years ago
Andrei Kortunov 6d351b2bdd Fix MSVC 4706 warnings 4 years ago
Simon Meulenbeek cd419256ad don't forget to close the audio device after you're done with it. 4 years ago
jvoisin fb55207328 Remove some useless includes from the wizzard 4 years ago
Andrei Kortunov faad18b7f9
Merge pull request #3072 from akortunov/warnfix
Fix node masks signed/unsigned mismatch
4 years ago
David Cernat 7690f3c90e [Client] Don't apply spell effects unilaterally on DedicatedActors 4 years ago
Andrei Kortunov b7b85bb713 Disable controllers for found sheath meshes (bug #5975) 4 years ago
Andrei Kortunov 2d869ca9ff Fix node masks signed/unsigned mismatch 4 years ago
Bret Curtis 50d6cd2a34
Merge pull request #3070 from akortunov/coverity
Fix an another portion of Coverity warnings
4 years ago
David Cernat bf0a42fdad [General] Implement ActorSpellsActive packet, part 1
The packet can now set the active spells of DedicatedActors.
4 years ago
Andrei Kortunov d10399e083 Cast double constant to float explicitely 4 years ago
Andrei Kortunov 7d5c5f8a24 Do not assign negative values to unsigned variables 4 years ago
Andrei Kortunov 651ad11ad8 Do not leave variables without initialization, even in execution paths where they are unused 4 years ago
Andrei Kortunov 9647b670e4 Do not declare unused variables 4 years ago
Andrei Kortunov 0cadc97fb3 Fix double -> float conversions 4 years ago
Bret Curtis befa3f587f
Merge pull request #3068 from akortunov/master
Clean up MSVC warnings
4 years ago
psi29a b645c1f4c0 Merge branch 'navmesh_ignore' into 'master'
Do not trigger NavMesh update when RecastMesh update should not change NavMesh (#4917)

See merge request OpenMW/openmw!762
4 years ago
psi29a f3354c509e Merge branch 'stomp' into 'master'
Adjustable Stomp

See merge request OpenMW/openmw!575
4 years ago
elsid 3e67f5ffa5
Detect and ignore updates for oscillating objects
To avoid triggering NavMesh update when RecastMesh change should not change
NavMesh.

Based on the following assumption:
Given a set of transformations and a bounding shape for all these
tranformations, a new object transformation that does not change this
bounding shape also should not change navmesh if for all of this object
transformations resulting navmesh tiles are equivalent

The idea is to report back to RecastMeshManager all changes of NavMesh if there
are any assiciated with RecastMesh version. So we know the last time when
RecastMesh change resulted into the NavMesh change. When later report shows
that there was no NavMesh change for a new RecastMesh version we can assume
that any object transformation within the same bounding box should not change
NavMesh.
4 years ago
AnyOldName3 ce3ed28403 Control stomping via settings. 4 years ago
psi29a 3423d3f882 Merge branch 'various_warn' into 'master'
Fix various warnings found by clang

See merge request OpenMW/openmw!758
4 years ago
Alexei Dobrohotov b29e797b27 Merge branch 'seventh_time_is_the_charm' into 'master'
Unbreak again NPC teleport

See merge request OpenMW/openmw!760
4 years ago
Petr Mikheev 5fe10e8e7f Merge branch 'fix-headtracking' into 'master'
Fix headtracking while invisible

See merge request OpenMW/openmw!743
4 years ago
Jacob Turnbull f49b9e3806 Fix headtracking while invisible 4 years ago
fredzio 36bb2d5f15 An actor needs not be in active cell. As such we can't use
PhysicsSystem::getActor() to determine that a ptr is not actor.
4 years ago
Andrei Kortunov 987b231fdd Fix an another portion of Coverity warnings 4 years ago
psi29a 50db75bd13 Merge branch 'settingstocs_csmprefs' into 'master'
Dehardcode animations in OpenMW-CS (CSMPrefs method)

See merge request OpenMW/openmw!742
4 years ago
jvoisin 38316cdaf8 Fix various warnings found by clang
- unused alias
- inefficient use of push_back
- exceptions not inheriting from std::exception
- weird use of a comma
- value compared against itself
4 years ago
Andrei Kortunov f308dde254 Clean up MSVC warnings 4 years ago
Andrei Kortunov 57b501ad13
Merge pull request #3067 from akortunov/master
Limit pointers cache size to avoid possible bad_alloc errors
4 years ago
unelsson 06fda4c5a1 QLineEdit for setting base animation files 4 years ago
unelsson 95272e0f14 String setting to CSMPrefs, part of dehardcoding animation files 4 years ago
David Cernat 6766206a76 [Client] Add check for local player when sending active spell removal 4 years ago
psi29a d0883f9a0d Merge branch 'light_settings_tweak' into 'master'
Lighting patch

Closes #5957 and #5959

See merge request OpenMW/openmw!752
4 years ago
glassmancody.info 16856d45c5 Lighting Patch
Fixes build errors with older OSG builds and some issues with 'shared' layout.
Bring back ambient in inventory through lightmodel instead of sun ambient, mirrors scene ambient/sunlight relationship.
Forces shaders when certain lighting methods are enabled and finalize settings.
Correctly override sun for localmap.
4 years ago
fredzio f137b7341f Another fallout from MR 722: objects were treated like actors by
accident. Net effect was that calls to Move/MoveWorld didn't update
position of collision object.
4 years ago
Andrei Kortunov 5de72c94ab Limit pointers cache size to avoid possible bad_alloc errors 4 years ago
psi29a af8bc7d120 Merge branch 'fixagainsetposforgoodthistimeitwillnotbreakanything' into 'master'
Fix #5961: Follow up MR 722: do not apply mPositionOffset twice when we teleport.

Closes #5961

See merge request OpenMW/openmw!744
4 years ago
fredzio e31cf7e6ac Follow up MR 722: do not apply mPositionOffset twice when we teleport.
Previous MR change the meaning of mPositionOffset: it is now just a log
of relative movement that were already applied to allow the physics
simulation to catch up, instead of changes that needs to be applied. As
such, after a teleport we need to reset it. Also, since mWorldPosition
is already with the offset we should not update its value in
applyPositionOffset().
4 years ago
Andrei Kortunov 33b8233887 Validate GUI scaling and place it to the launcher 4 years ago
Andrei Kortunov db1428de18 Move container unresolving to the separate method 4 years ago
Bret Curtis 4f72fa2615
Merge pull request #3063 from akortunov/master
Code cleanup, part 2
4 years ago
fredzio 9d8fcec642 Remove bogus warning. It is a normal situation for projectiles to be
in-flight after the caster is gone.
4 years ago
Andrei Kortunov 016a1d45df Remove outdated field - remnant from earlier implementation 4 years ago
Andrei Kortunov 388573cf60 Fix uninitialized fields in the essimporter 4 years ago
David Cernat cedf70f367 Add OpenMW commits up to 13 Apr 2021
# Conflicts:
#   .travis.yml
#   apps/openmw/mwmechanics/actors.cpp
#   apps/openmw/mwmechanics/summoning.cpp
#   apps/openmw/mwphysics/mtphysics.hpp
4 years ago
elsid 0fae6d9a0a
Add walk and swim flags when corresponding speed is positive
This allows to avoid finding path over area that will should have infinite
cost (area_cost = area_cost_factor / area_speed).
4 years ago
elsid 3c4a9069ae
Do not use infinite area cost
Division by zero causes float value to be infinite. When infinite cost is
multiplied by zero distance the result is NaN. After this pathfinding algorithm
state is broken.
4 years ago
psi29a f1cfdafd4d Merge branch 'why_are_the_christmas_lights_still_up' into 'master'
Remove 8 light limit and add configurable lighting enhancements

See merge request OpenMW/openmw!618
4 years ago
glassmancody.info 531a6e1979 Code review fixes, remove implicit GLSL casts 4 years ago
glassmancody.info 582f7b52cf Merge remote-tracking branch 'upstream/master' into why_are_the_christmas_lights_still_up 4 years ago
glassmancody.info 9e80091aff clear up force shaders and make it less convoluted 4 years ago
glassmancody.info b7adb9d088 use true default settings 4 years ago
glassmancody.info d4e7d25d14 Make life not suck for whoever wants to edit lighting shaders 4 years ago
glassmancody.info 16f80ec6f3 Update settings when using fallback 4 years ago
glassmancody.info 4ba473b684 Finalize settings, torch fix 4 years ago
glassmancody.info 71c30a31df in-game settings, some require restart 4 years ago
glassmancody.info 3d713e8602 Fix incorrect minimum ambient 4 years ago
glassmancody.info 280fd2b162 Merge remote-tracking branch 'upstream/master' into why_are_the_christmas_lights_still_up 4 years ago
glassmancody.info cc31e1eea1 Ambient luminance threshold setting 4 years ago
glassmancody.info 690995988b More formatting, OpenCS cells are unbroken 4 years ago
glassmancody.info 142c6d2993 Enable groundcover lighting for non FFP 4 years ago
glassmancody.info 328ec85757 Code review cleanup, add setting documentation 4 years ago
glassmancody.info 7370acdf54 Merge remote-tracking branch 'upstream/master' into why_are_the_christmas_lights_still_up 4 years ago
glassmancody.info 43ac32921c Rewrite, support different lighting methods 4 years ago
glassmancody.info 9d9074c244 Add shared UBO 4 years ago
glassmancody.info c5ea966f24 Merge remote-tracking branch 'upstream/master' into why_are_the_christmas_lights_still_up 4 years ago
glassmancody.info dda735c54a initial commit 4 years ago
psi29a 0a6ef9c1bd Merge branch 'swim_when_follow' into 'master'
Allow actors to find path over water surface (#5943)

See merge request OpenMW/openmw!731
4 years ago
Evil Eye 56ede535b5 Don't perform a hit test outside the page's bounds 4 years ago
psi29a 0818a10df2 Merge branch 'baby_dont_throw_me_no_more' into 'master'
Catch exceptions in ResolutionListener

Closes #5946

See merge request OpenMW/openmw!727
4 years ago
elsid 28fc21792e
Allow water walking actors to find path over water surface 4 years ago
elsid 634556be9d
Add setting to allow following creatures to find path over water surface 4 years ago
fredzio 32981bcd88 Constify a few things 4 years ago
fredzio efb241f1de Use override instead of virtual 4 years ago
fredzio fda639eb57 Remove unused forward declarations 4 years ago
Evil Eye b91be1e803 Catch exceptions in ResolutionListener 4 years ago
psi29a 301411c5c5 Merge branch 'esm_variant' into 'master'
Use std::variant for ESM::Variant implementation

See merge request OpenMW/openmw!719
4 years ago
psi29a 603e4206fd Merge branch 'teleport_here_not_there' into 'master'
Fix  #5919 (and another bug)

Closes #5919

See merge request OpenMW/openmw!722
4 years ago
Andrei Kortunov f984e96b34 Use conventional names for atan2 arguments 4 years ago
Andrei Kortunov 1db369f418 Do not use unchecked value in calculations 4 years ago
Andrei Kortunov 903b89a0ff Add bound for UI scale factor, as it specified in docs 4 years ago
Andrei Kortunov c989fac67b Add bound for pointers cache size, as it specified in docs 4 years ago
Andrei Kortunov 124a33d8a3 Fix uninitialized variables 4 years ago
Andrei Kortunov b96929f3fc Avoid division by zero 4 years ago
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
David Cernat a7f517507c [Client] Handle reenabling of harvested objects via Container packet
It is no longer necessary to send ObjectState packets when harvesting objects, as the Container packet will handle the refreshing of those objects' animations instead.
4 years ago
David Cernat b2328b7063 [Client] Make it possible to check whether a class can be harvested 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
David Cernat 860be0a4e7 [Client] Send Container & ObjectState packets when harvesting objects 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
David Cernat 0137772e64 [Client] Log PlayerCellChange packets about the local player 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
David Cernat b1fbab2d1c [Server] Remove 'using namespace ESM' 4 years ago
David Cernat 2656569d31 [Server] Remove 'using namespace std' 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
David Cernat b3c40913f6 [Client] Remove 'using namespace std' from multiplayer-related code
This brings TES3MP in line with https://gitlab.com/OpenMW/openmw/-/merge_requests/664
4 years ago
David Cernat 59cb31e0a7 Add OpenMW commits up to 20 Mar 2021
# Conflicts:
#   apps/openmw/CMakeLists.txt
#   apps/openmw/mwmechanics/aipursue.cpp
#   components/CMakeLists.txt
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