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

14651 commits

Author SHA1 Message Date
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
2021-04-13 23:52:37 +02:00
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).
2021-04-13 23:27:18 +02:00
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.
2021-04-13 23:27:18 +02:00
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
2021-04-13 19:15:08 +00:00
glassmancody.info
531a6e1979 Code review fixes, remove implicit GLSL casts 2021-04-13 11:09:54 -07:00
glassmancody.info
582f7b52cf Merge remote-tracking branch 'upstream/master' into why_are_the_christmas_lights_still_up 2021-04-13 11:09:52 -07:00
glassmancody.info
9e80091aff clear up force shaders and make it less convoluted 2021-04-13 11:09:49 -07:00
glassmancody.info
b7adb9d088 use true default settings 2021-04-13 11:09:49 -07:00
glassmancody.info
16f80ec6f3 Update settings when using fallback 2021-04-13 11:09:49 -07:00
glassmancody.info
4ba473b684 Finalize settings, torch fix 2021-04-13 11:09:49 -07:00
glassmancody.info
71c30a31df in-game settings, some require restart 2021-04-13 11:09:49 -07:00
glassmancody.info
3d713e8602 Fix incorrect minimum ambient 2021-04-13 11:09:49 -07:00
glassmancody.info
280fd2b162 Merge remote-tracking branch 'upstream/master' into why_are_the_christmas_lights_still_up 2021-04-13 11:09:35 -07:00
glassmancody.info
cc31e1eea1 Ambient luminance threshold setting 2021-04-13 11:09:35 -07:00
glassmancody.info
690995988b More formatting, OpenCS cells are unbroken 2021-04-13 11:09:35 -07:00
glassmancody.info
142c6d2993 Enable groundcover lighting for non FFP 2021-04-13 11:09:35 -07:00
glassmancody.info
328ec85757 Code review cleanup, add setting documentation 2021-04-13 11:09:35 -07:00
glassmancody.info
7370acdf54 Merge remote-tracking branch 'upstream/master' into why_are_the_christmas_lights_still_up 2021-04-13 11:09:19 -07:00
glassmancody.info
43ac32921c Rewrite, support different lighting methods 2021-04-13 11:09:19 -07:00
glassmancody.info
9d9074c244 Add shared UBO 2021-04-13 11:07:48 -07:00
glassmancody.info
c5ea966f24 Merge remote-tracking branch 'upstream/master' into why_are_the_christmas_lights_still_up 2021-04-13 11:06:16 -07:00
glassmancody.info
dda735c54a initial commit 2021-04-13 11:06:16 -07:00
psi29a
0a6ef9c1bd Merge branch 'swim_when_follow' into 'master'
Allow actors to find path over water surface (#5943)

See merge request OpenMW/openmw!731
2021-04-13 07:19:54 +00:00
Evil Eye
56ede535b5 Don't perform a hit test outside the page's bounds 2021-04-12 08:31:45 +02:00
psi29a
0818a10df2 Merge branch 'baby_dont_throw_me_no_more' into 'master'
Catch exceptions in ResolutionListener

Closes #5946

See merge request OpenMW/openmw!727
2021-04-12 06:12:19 +00:00
elsid
28fc21792e
Allow water walking actors to find path over water surface 2021-04-11 21:59:28 +02:00
elsid
634556be9d
Add setting to allow following creatures to find path over water surface 2021-04-11 21:59:28 +02:00
fredzio
32981bcd88 Constify a few things 2021-04-11 14:46:51 +02:00
fredzio
efb241f1de Use override instead of virtual 2021-04-11 14:46:51 +02:00
fredzio
fda639eb57 Remove unused forward declarations 2021-04-11 14:46:51 +02:00
Evil Eye
b91be1e803 Catch exceptions in ResolutionListener 2021-04-11 14:12:31 +02:00
psi29a
603e4206fd Merge branch 'teleport_here_not_there' into 'master'
Fix  #5919 (and another bug)

Closes #5919

See merge request OpenMW/openmw!722
2021-04-10 12:51:42 +00:00
Andrei Kortunov
f984e96b34 Use conventional names for atan2 arguments 2021-04-10 12:23:03 +04:00
Andrei Kortunov
1db369f418 Do not use unchecked value in calculations 2021-04-10 11:26:54 +04:00
Andrei Kortunov
903b89a0ff Add bound for UI scale factor, as it specified in docs 2021-04-10 11:21:53 +04:00
Andrei Kortunov
c989fac67b Add bound for pointers cache size, as it specified in docs 2021-04-10 11:20:12 +04:00
Andrei Kortunov
124a33d8a3 Fix uninitialized variables 2021-04-10 10:58:00 +04:00
Andrei Kortunov
b96929f3fc Avoid division by zero 2021-04-10 09:52:46 +04:00
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.
2021-04-09 23:34:03 +02:00
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.
2021-04-09 23:33:21 +02:00
Jonas Tobias Hopusch
799cf16f31
Attempt to fix #5942
Closes OpenMW/openmw#5942
This is an attempt to apply the fix suggested by @Capostrophic
2021-04-09 18:16:05 +02:00
psi29a
a16387df61 Merge branch 'sky-dehardcode' into 'master'
De-hardcode references to mesh files used by the sky.

See merge request OpenMW/openmw!704
2021-04-08 16:32:39 +00:00
Matjaž Lamut
2cb4b62b83 De-hardcode references to mesh files used by the sky. 2021-04-08 16:32:38 +00:00
Jacob Turnbull
d9376ee08e Trim down comment and change flag name 2021-04-07 16:57:06 -05:00
Evil Eye
44f2cb0923 Fix targeted scripts losing their targets when rearranging your load order 2021-04-07 17:30:21 +02:00
Andrei Kortunov
59720aea9a Restore old aiming for melee combat 2021-04-07 12:07:03 +04:00
Jacob Turnbull
bc8db8b8f5 Fix for enchanted items being removed on item equip cycling when they are re-equipped 2021-04-06 20:12:51 -05:00
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.
2021-04-06 13:22:17 +02:00
David Cernat
b2328b7063 [Client] Make it possible to check whether a class can be harvested 2021-04-06 04:51:49 +02:00
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
2021-04-05 11:45:31 +00:00
elsid
bd33fa76b6
Use CRTP to define CustomData clone function 2021-04-05 11:53:07 +02:00
elsid
e380470558
Add move ctor and assignment operator to RefData 2021-04-05 11:53:07 +02:00
elsid
045bb7cbd7
Store CustomData and ContainerStore as unique_ptr 2021-04-05 11:52:52 +02:00
Evil Eye
ecde3932e2 Make AddItem's quantity overflow on negative numbers 2021-04-05 09:43:37 +02:00
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.
2021-03-31 19:34:06 +02:00
David Cernat
860be0a4e7 [Client] Send Container & ObjectState packets when harvesting objects 2021-03-31 08:13:59 +02:00
fredzio
0fac172413 Remove wrong line that slipped in yesterday. 2021-03-29 21:46:08 +02:00
Andrei Kortunov
50352daf90 Rework knockdown and knockout animations fallbacks 2021-03-29 14:45:07 +04:00
Evil Eye
582f1503c1 Merge branch 'setpos' into 'master'
Unbreak SetPos and the mods using it (#5919)

See merge request OpenMW/openmw!696
2021-03-28 20:14:17 +00:00
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
2021-03-28 21:19:14 +02:00
fredzio
b58244ac26 Guard the Bullet drawing method with a read lock on the
btCollisionWorld. It closes a race on the collision shapes coordinates.
2021-03-26 23:49:31 +01:00
fredzio
dbd6e3bfee Replace pointless usage of shared_ptr by unique_ptr / non-owning raw
pointer for btCollisionWorld.
2021-03-26 23:49:31 +01:00
fredzio
ccd3cbc69a Use saved actor position instead of reading again RefData in unstuck. It
is a race condition to do so.
2021-03-26 23:49:31 +01:00
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
2021-03-26 15:48:17 +00:00
Andrei Kortunov
b61337643e Merge branch 'issue-5680' into 'master'
change aim calculation

See merge request OpenMW/openmw!685
2021-03-26 11:43:20 +00:00
David Cernat
0137772e64 [Client] Log PlayerCellChange packets about the local player 2021-03-25 03:39:13 +02:00
Max
2cd96e56d5 create constant and use constant in other parts of the code base 2021-03-24 14:54:46 -07:00
Max
e56efdd562 change aim calculation 2021-03-24 14:54:46 -07:00
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.
2021-03-24 00:07:28 +01:00
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.
2021-03-23 23:49:57 +01:00
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.
2021-03-23 23:23:12 +01:00
Evil Eye
cf5a93d712 Also run NPC validation for modified base records 2021-03-23 21:07:57 +01:00
Evil Eye
e79036f4e0 Don't erase the player 2021-03-23 20:43:52 +01:00
psi29a
1af50b7e23 Merge branch 'sound_cleanup' into 'master'
Sound cleanup

See merge request OpenMW/openmw!567
2021-03-22 21:42:01 +00:00
psi29a
415591b7ed Merge branch 'ai_reaction_deviation' into 'master'
Distribute AI reactions and engage combat calls over time

See merge request OpenMW/openmw!674
2021-03-22 21:37:09 +00:00
Evil Eye
5e1960a76a Disallow inserting containers, creatures, and npcs from the save game not present in content files 2021-03-22 22:29:10 +01:00
Evil Eye
8e9bd5c0bd Don't throw an exception when equipping a bound item fails 2021-03-22 20:44:13 +01:00
Evil Eye
580fa78034 Don't purge summon effects with invalid creature ids 2021-03-22 20:43:34 +01:00
wareya
63f01d8c5f Prevent physics death spiral by falling back to true delta time when needed 2021-03-21 20:45:46 +00:00
psi29a
86bd173d69 Merge branch 'refactoring' into 'master'
"static const" -> "static constexpr" in headers

See merge request OpenMW/openmw!676
2021-03-21 15:43:47 +00:00
Petr Mikheev
7bbbe40abe "static const" -> "static constexpr" in headers 2021-03-21 13:57:54 +01:00
wareya
e722c99e62 forgot to initialize these variables 2021-03-21 08:57:15 -04:00
wareya
40265bf118 make unstucking slightly smarter (can turn itself off, also acts like flat ground) 2021-03-20 21:14:56 -04:00
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
2021-03-20 23:21:40 +02:00
David Cernat
59cb31e0a7 Add OpenMW commits up to 20 Mar 2021
# Conflicts:
#   apps/openmw/CMakeLists.txt
#   apps/openmw/mwmechanics/aipursue.cpp
#   components/CMakeLists.txt
2021-03-20 16:44:11 +02:00
elsid
62c0ecbbd0
Separate engage combat timer for each actor
Use DeviatingPeriodicTimer to distribute calls over time. This reduces
stuttering and make AI more natural.
2021-03-20 14:50:56 +01:00
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.
2021-03-20 14:47:54 +01:00
Andrei Kortunov
54daa234bd Reset watched stats upon reload or new game start 2021-03-19 11:56:14 +04:00
wareya
1471ef003a fix async physics interpolation 2021-03-18 13:53:00 -04:00
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.
2021-03-17 01:46:04 +00:00
Evil Eye
d1e8c6b223 Merge branch 'magical_rat' into 'master'
Register copied Spells with SpellList

See merge request OpenMW/openmw!662
2021-03-16 19:50:15 +00:00
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.
2021-03-15 22:35:13 +00:00
Bret Curtis
40c989d732 allman style 2021-03-14 22:11:18 +01:00
Evil Eye
c2580d60e9 Register copied Spells with SpellList 2021-03-14 19:32:03 +01:00
Bret Curtis
9fc0649fb6 a better check to avoid the mCell assertion, so compariing nullptr to current cell will refurn false anyway 2021-03-14 18:08:52 +01:00
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 2021-03-14 18:02:48 +01:00
Bret Curtis
fff1df9ee4 revert some blank lines 2021-03-14 18:02:48 +01:00
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. 2021-03-14 18:02:48 +01:00
Bret Curtis
1479f98793 hacky solution with debug; seems that player is added before cell so tracing down will not find anything 2021-03-14 18:02:48 +01:00
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. 2021-03-14 18:02:48 +01:00
psi29a
514a55ed4c Merge branch 'fix_5846' into 'master'
Fix #5846 (headtracking)

Closes #5846

See merge request OpenMW/openmw!652
2021-03-14 01:56:07 +00:00
glassmancody.info
6255b0492b Resolve crashes on exit with visible MyGUI widgets 2021-03-13 15:43:46 -08:00
Petr Mikheev
447c3b9489 Fix 5846 2021-03-13 21:54:49 +01:00
elsid
9275dd2dcb
Avoid virtual dispatch in SoundManager dtor 2021-03-13 18:25:56 +01:00
elsid
b0311ce9f1
Remove DEFAULT_OUTPUT macros 2021-03-13 18:25:56 +01:00
elsid
e30a59772c
Remove DEFAULT_DECODER macros 2021-03-13 18:25:48 +01:00
Evil Eye
4db2f79a3c Merge branch 'setpos' into 'master'
Use relative movement inside of SetPos

See merge request OpenMW/openmw!649
2021-03-13 12:58:48 +00:00
fredzio
cb39f8fb01 Use moveObjectBy in SetPos 2021-03-13 09:53:21 +01:00
fredzio
03b86c232b Apply the position offset even if the simulation is not performed
because we're too fast.
2021-03-13 09:52:05 +01:00
psi29a
311b497491 Merge branch 'bullet-heightfield-floats' into 'master'
Avoid heightfield conversion in newer Bullet

See merge request OpenMW/openmw!647
2021-03-13 08:32:01 +00:00
psi29a
cc6f08930b Merge branch 'alpha-meddling' into 'master'
Replace deprecated alpha test in shader visitor

Closes #4899

See merge request OpenMW/openmw!473
2021-03-13 08:13:19 +00:00
AnyOldName3
0431ba4c87 Merge branch 'alpha-meddling-shader-side-mip-meddling' into alpha-meddling 2021-03-13 01:23:30 +00:00
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
2021-03-12 17:21:36 +00:00
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
2021-03-11 23:52:12 +00:00
Andrei Kortunov
39b7260ab4 Fix a crash during new game 2021-03-11 11:46:44 +04:00
AnyOldName3
64ddb4c1b0 Fix linking on MacOS 2021-03-11 01:01:55 +00:00
psi29a
9f47190411 Merge branch 'now-it-blends' into 'master'
Convert blending factors properly for the character preview

See merge request OpenMW/openmw!644
2021-03-10 23:27:04 +00:00
AnyOldName3
cb2cbb4181 Convert blending factors properly for the character preview 2021-03-10 22:07:14 +00:00
Chris Djali
9bfe941d4b
Merge pull request #3050 from akortunov/master
Double-buffer shader water stateset
2021-03-10 15:56:40 +00:00
Andrei Kortunov
38679013fe Give meaningful name to the mEffectFade 2021-03-10 19:10:17 +04:00
Gleb Mazovetskiy
1db7d2ec4e Restore compatibility with FFMpeg < 57.80.100
This should fix macOS Travis build broken by 58d33aa95b
2021-03-08 19:29:34 +00:00
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
2021-03-08 19:01:02 +00:00
psi29a
611a63acc6 Merge branch 'threesacharm' into 'master'
Attempt to fix restocking items in old saves

Closes #5823

See merge request OpenMW/openmw!580
2021-03-08 10:45:13 +00:00
psi29a
194875dec1 Merge branch 'fix-video-arm' into 'master'
osg-ffmpeg-videoplayer: Fix crash on ARM

Closes #5807

See merge request OpenMW/openmw!564
2021-03-08 08:05:25 +00:00
Andrei Kortunov
d805886de7 Double-buffer shader water stateset (bug #5026) 2021-03-08 10:58:51 +04:00
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.
2021-03-08 03:16:55 +00:00
Chris Djali
213525c372
Merge pull request #3049 from akortunov/master
Use correct mCursorActive flag initial value
2021-03-07 15:35:38 +00:00
Alexei Dobrohotov
e9aa161ffc Merge branch 'reallyskipphysics' into 'master'
Close race that breaks scripted teleporting (#5873)

See merge request OpenMW/openmw!639
2021-03-07 08:41:20 +00:00
Andrei Kortunov
482f04c836 Use correct mCursorActive flag initial value 2021-03-07 12:08:43 +04:00
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
2021-03-06 21:17:52 +00:00
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
2021-03-06 10:41:55 +01:00
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
2021-03-05 21:07:29 +00:00
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
2021-03-05 16:45:47 +00:00
Evil Eye
8ae4ee291f Attempt to fix restocking items in old saves 2021-03-04 22:52:03 +01:00
Dobrohotov Alexei
fc329050b3 AIPursue: Pursue the player until LOS is established (#5869) 2021-03-03 22:06:58 +03:00
Alexei Dobrohotov
5e91af230d Reset effect icon transparency when they're hidden (#5877) 2021-03-03 21:17:59 +03:00
Gleb Mazovetskiy
4495b67d77 MyGUI HEAD compatibility
Makes OpenMW compatible with the current MyGUI HEAD at:
f93d4fb614

Refs #5806
2021-03-02 13:24:30 +00:00
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
2021-03-02 06:45:38 +00:00
Alexei Dobrohotov
023bc80f55 Don't let elemental shields harm the player in god mode 2021-03-01 21:37:30 +00:00
Gleb Mazovetskiy
1fb442e701 heightfield: Only buildAccelerator on Bullet 2.89+
Fixes #5874
2021-03-01 08:27:24 +00:00
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
2021-02-26 23:28:01 +00:00
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
2021-02-26 23:25:05 +00:00
psi29a
20e6db917b Merge branch 'fix-osg-static' into 'master'
CMake: Fix support for OSG static lib paths

See merge request OpenMW/openmw!624
2021-02-26 23:20:52 +00:00
AnyOldName3
f5a87ee46d Refactor out duplicated RTT setup code 2021-02-26 19:01:27 +00:00
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
2021-02-26 14:38:06 +00:00
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:...>`
2021-02-26 10:48:09 +00:00
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
2021-02-25 23:11:03 +00:00
Evil Eye
6e0f070cd1 Don't assume unmapped keycodes outside the extended ASCII range are unprintable 2021-02-25 21:37:21 +01:00
Evil Eye
a616af822e Fix Ctrl U/W behaviour to work with unicode text 2021-02-25 19:33:11 +01:00
AnyOldName3
4ed67d8597 Improve A2C setting name 2021-02-24 18:01:06 +00:00
David Cernat
39dc6fc355 Add OpenMW commits up to 24 Feb 2021
# Conflicts:
#   CI/before_script.linux.sh
#   CMakeLists.txt
#   apps/openmw/CMakeLists.txt
#   components/CMakeLists.txt
2021-02-24 13:02:57 +02:00
AnyOldName3
c7ee5d21dc Make the dummy texture for the character preview even more shadow-friendly 2021-02-23 23:24:40 +00:00
AnyOldName3
2b144ff3dd Merge branch 'fix_frame_rate_limit' into 'master'
Fix frame rate limit (#5686)

See merge request OpenMW/openmw!603
2021-02-21 16:20:51 +00:00
AnyOldName3
9be258d260 Make it possible to reinstate FFP state easily 2021-02-19 19:59:48 +00:00
psi29a
5c0214142b Merge branch 'static-build' into 'master'
Optional local source builds of OSG, MyGUI, Bullet

See merge request OpenMW/openmw!547
2021-02-19 16:58:05 +00:00
psi29a
bcbe144a1d Merge branch 'weatheralpha' into 'master'
Fix weather particle fading

Closes #5455

See merge request OpenMW/openmw!506
2021-02-19 16:50:38 +00:00
psi29a
87d80b3d0a Merge branch 'loading_screen_race_condition' into 'master'
Fix a race condition in loading screen.

See merge request OpenMW/openmw!568
2021-02-18 22:37:47 +00:00
psi29a
59e09cba5b Merge branch 'boltsize' into 'master'
Use projectile mesh size (#5829)

See merge request OpenMW/openmw!587
2021-02-15 08:40:30 +00:00
elsid
561628087c Merge branch 'profiler_fix' into 'master'
Fix profiler glitches (#5850)

See merge request OpenMW/openmw!605
2021-02-15 00:01:06 +00:00
AnyOldName3
4f510d85ba Merge remote-tracking branch 'upstream/master' into alpha-meddling 2021-02-14 22:42:55 +00:00
David Cernat
7e188f2dd6 Add OpenMW commits up to 14 Feb 2021
# Conflicts:
#   apps/openmw/mwclass/door.cpp
#   apps/openmw/mwscript/aiextensions.cpp
2021-02-14 19:49:22 +02:00
AnyOldName3
6291b9304b Log when icon is missing and fallback is used 2021-02-14 16:56:21 +00:00
elsid
8dba61f7ae
Use navmesh raycast to find reachable position around target 2021-02-14 04:14:22 +01:00
elsid
becccf3b5e
Make actor flee from a combat when cannot reach a target 2021-02-12 22:58:53 +01:00
fredzio
9d90e250cf Physics is not running while paused, so zero the stats for the async
thread instead of keeping whatever value was before the pause.
2021-02-12 19:33:08 +01:00
elsid
8ab5fd9b40
Fix frame rate limit
Measure time at the computation end but before sleep. This allows to adjust
sleep interval for the next frame in case sleep is not precise due to syscall
overhead or too low timer resolution.

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

See merge request OpenMW/openmw!510
2021-02-10 16:29:47 +00:00
David Cernat
a379d12529 [General] Turn Utils::printVersion() into Utils::getVersionInfo() 2021-02-10 02:54:37 +02:00
AnyOldName3
da6223fc4b Use default icon.tga when inventory icon is missing 2021-02-07 23:27:45 +00:00
psi29a
7a9eb34403 Merge branch 'master' into 'freeunrealestate'
# Conflicts:
#   CHANGELOG.md
2021-02-07 21:03:51 +00:00
psi29a
31f41836a1 Merge branch 'no_stuck_in_proj' into 'master'
Don't let projectiles push actors out of the world (#5802)

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

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

Closes #5835

See merge request OpenMW/openmw!586
2021-02-06 15:38:34 +00:00
fredzio
6e969ca3fa Use mesh collision box instead of node bounding sphere for projectile
size. The bounding sphere is much bigger than the mesh.
2021-02-05 22:53:45 +01:00
Evil Eye
3007cb14a9 Also allow negative AI values in dialogue 2021-02-05 19:00:35 +01:00
Noah Gooder
e42b67ee50 Modified actors.cpp and Authors.md 2021-02-05 17:59:36 +00:00
David Cernat
e1259fdc41 Add OpenMW commits up to 4 Feb 2021
# Conflicts:
#   apps/openmw/engine.cpp
#   apps/openmw/mwmechanics/npcstats.hpp
#   apps/openmw/mwrender/globalmap.cpp
2021-02-05 02:16:03 +02:00
Evil Eye
61e014a765 Allow negative values for ai stats 2021-02-04 21:25:38 +01:00
Nelsson Huotari
e91d1a2b42 Fix earlier broken commit 2021-02-03 21:16:26 +02:00
AnyOldName3
0639f8b7c6 Make the dummy texture for the character preview shadow-friendly 2021-02-03 18:45:22 +00:00
Nelsson Huotari
384112746c Add option for custom collision node with non-nif files 2021-02-03 14:25:09 +02:00
Jordan Francis Moran-Meyers
0d1c073cfa Fix the regression involving Cure 2021-02-01 18:34:10 +00:00
Petr Mikheev
94e8855c8c Merge branch 'fix_5821' into 'master'
Fix #5821: NPCs from mods getting removed if mod order was changed

Closes #5821

See merge request OpenMW/openmw!577
2021-01-31 09:34:26 +00:00
Petr Mikheev
157b14cdaa Fix #5821: NPCs from mods getting removed if mod order was changed 2021-01-29 22:53:02 +01:00
Petr Mikheev
9590377f22 Don't ignore Z in path finding if actor can move by Z. 2021-01-29 22:30:20 +01:00
Petr Mikheev
642ca02e35 Shorten almost straight paths only if smooth movement is enabled; reduce angle limit for the shortening. 2021-01-29 22:30:01 +01:00
Andrei Kortunov
7b727e4d70 Revert "Remove physics dependency on basenode"
This reverts commit 165c731492.
2021-01-29 16:51:13 +04:00
Andrei Kortunov
165af1c365 Revert "Some actors are supposed to spawn on a static object that belong to an adjacent cell."
This reverts commit f031a191b8.
2021-01-29 16:51:05 +04:00
Andrei Kortunov
f8e8496d36 Revert "Revert a wrong change introduced in MR 546"
This reverts commit 23137d0c54.
2021-01-29 16:50:39 +04:00
Andrei Kortunov
3b9f8b5fa2 Avoid null dereference for objects without cells 2021-01-28 18:37:47 +04:00
Andrei Kortunov
d984d13b1c Merge branch 'animate_animated_objects' into 'master'
Unbreak animated objects (regression from !546)

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

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

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

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

Closes #5469

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

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

Closes #5783

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

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

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

Closes #5798

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

Closes #5391

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

Closes #4201

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

Rename the 2 convex result callback to clearly state their purpose.
2021-01-21 20:36:33 +01:00
elsid
cc24f13b39
Remove duplicated sound_buffer entry 2021-01-21 13:08:50 +01:00
AnyOldName3
b6e92c9c6d Use ShaderVisitor to skip translucent framebuffer specific stuff 2021-01-20 23:37:19 +00:00
AnyOldName3
8af8ad3840 Always write opaque fragments instead of relying on blending being off for translucent RTT 2021-01-20 01:17:16 +00:00
fredzio
e37e5d4d16 Don't run unstuck if there is no simulation running in async case.
In this case, the actor mPreviousPosition is not updated, so the actor
position is interpolated between an old (stucked) position and the new
(unstucked) position. The new position is most likely "stucked", so the
unstuck code strikes again, making the actor "vibrates".

That's exactly what the sync code path does, and it doesn't exhibit this
behavior.
2021-01-18 17:45:57 +01:00
David Cernat
0eb01591e8 [Client] Move overrideRecord() method for Sound records to right spot 2021-01-17 16:04:12 +02:00
psi29a
9eba086c34 Merge branch 'sound_buffer_pool_2' into 'master'
Separate sound buffer pool from sound manager

See merge request OpenMW/openmw!520
2021-01-17 12:11:11 +00:00
Bret Curtis
e68651e9a6
Merge pull request #3042 from akortunov/helpers
Refactoring pre-requisites for groundcover
2021-01-13 23:09:01 +01:00
Andrei Kortunov
0418e8e7a6 Add an API to get base wind speed (which is from openmw.cfg) 2021-01-13 14:25:25 +04:00
Andrei Kortunov
f175beb304 Define template ref classes in components 2021-01-13 14:25:21 +04:00
psi29a
fd602e2c31 Merge branch 'viewdist' into 'master'
Downgrade FOV-dependent view distance factor to a recommendation

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

Closes #5758 and #5790

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

Closes #5771

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

See merge request OpenMW/openmw!532
2021-01-11 20:46:42 +00:00