fredzio
7bae6691b6
Introduce World::moveObjectBy() function to translate an object relatively to
...
its current position.
Use it in relevant MWScripts opcode (move and moveworld).
Remove the fragile detection of scripted translation from PhysicsTaskScheduler.
No user visible change, just a more robust mechanism.
2020-12-18 08:40:38 +01:00
Alexei Dobrohotov
201999c4a9
Make sure adjustPosition() is safe to call for any actor
2020-12-14 03:01:26 +03:00
fredzio
a314f196eb
Unconditionally call actor->resetPosition in adjustPosition.
...
Revert broken change that would force adjust all actors in cell upon
loading. That break floating corpses (and probably others things).
2020-12-12 18:17:26 +01:00
Frederic Chardon
899b8422fa
explicitely use a reference, auto can't infer it and make a copy
2020-12-11 08:56:54 +01:00
Evil Eye
39ac0cbb4a
Don't crash the game when placing a non-actor
2020-12-08 17:47:25 +01:00
fredzio
66fe3b0d38
Modify projectile collision to work with async physics
2020-12-08 09:06:33 +01:00
Andrei Kortunov
dc7b48e92e
Generate physics collisions for projectiles (bug #3372 )
...
Remove redundant now mHit field
2020-12-08 09:05:38 +01:00
fredzio
c6c02a6f16
Remove useless code. ipos is already initialized with the correct
...
values.
2020-12-06 13:26:43 +01:00
fredzio
08e73a09ec
Make the code more compact by mean of std::min / max and ternary
...
operator.
2020-12-06 13:24:42 +01:00
fredzio
b79f6ac808
Force reset position of actor after snapping to the ground. Otherwise
...
the interpolation calculation would kick in and make the actor goes upward if the
spawn point is higher than summoner or downward if lower. The actor
would then either jump or fall through terrain.
2020-12-06 13:20:37 +01:00
David Cernat
4620adc662
Add OpenMW commits up to 30 Nov 2020
...
# Conflicts:
# CMakeLists.txt
# apps/openmw/mwphysics/actor.cpp
2020-12-01 01:15:39 +02:00
Andrei Kortunov
8084a336b5
Replace zeroes and nulls by nullptrs
2020-11-29 11:14:07 +04:00
psi29a
96e22bd44e
Merge branch 'fastforwardpos' into 'master'
...
Discard physics simulation results after fast forward
See merge request OpenMW/openmw!423
(cherry picked from commit ff2d7695698341ef059c75707aa092cef48deea4)
03a37433 In case of time fast forward (resting, jail), force reset of positions
2020-11-23 20:15:44 +00:00
Frederic Chardon
9aba55a21a
Add the async physics worker to the profiler overlay.
2020-11-20 21:17:47 +01:00
fredzio
e5fa457fe7
Properly account for interleaved move of actors.
...
Before this change, if an actor position was changed while the physics
simulation was running, the simulation result would be discarded. It is
fine in case of one off event such as teleport, but in the case of
scripts making use of this functionality to make lifts or conveyor (such
as Sotha Sil Expanded mod) it broke actor movement.
To alleviate this issue, at the end of the simulation, the position of the Actor
in the world is compared to the position it had at the beginning of the
simulation. A difference indicate a force move occured. In this case,
the Actor mPosition and mPreviousPosition are translated by the difference of position.
Since the Actor position will be really set while the next simulation runs, we
save it in the mNextPosition field.
2020-11-14 20:39:16 +01:00
David Cernat
676481d061
Add OpenMW commits up to 14 Nov 2020
...
# Conflicts:
# .travis.yml
# apps/openmw/mwmechanics/tickableeffects.cpp
2020-11-14 19:59:59 +02:00
Frederic Chardon
ecd10a731e
Compute the rotation normal relative to the door axe, not the world.
2020-11-02 14:12:42 +01:00
fredzio
18e38d8810
Do not block a door when it turns away.
2020-11-01 23:01:18 +01:00
David Cernat
7f435ceeac
Add OpenMW commits up to 1 Nov 2020
...
# Conflicts:
# CMakeLists.txt
# apps/openmw/main.cpp
# apps/openmw/mwclass/container.hpp
# apps/openmw/mwclass/creature.hpp
# apps/openmw/mwclass/npc.hpp
# apps/openmw/mwdialogue/dialoguemanagerimp.hpp
# apps/openmw/mwdialogue/journalimp.hpp
# apps/openmw/mwgui/container.cpp
# apps/openmw/mwgui/dialogue.hpp
# apps/openmw/mwgui/mainmenu.cpp
# apps/openmw/mwgui/windowmanagerimp.hpp
# apps/openmw/mwmechanics/aiactivate.hpp
# apps/openmw/mwmechanics/mechanicsmanagerimp.hpp
# apps/openmw/mwscript/containerextensions.cpp
# apps/openmw/mwscript/interpretercontext.hpp
# components/CMakeLists.txt
2020-11-01 23:17:59 +02:00
psi29a
09373a757d
Merge branch 'radioactive' into 'master'
...
Container base record mutations
See merge request OpenMW/openmw!353
(cherry picked from commit 8b33765dd414680f0074b3e115b52b291b4cb7cb)
275908a0 mutate container base records
16fca11d add changelog entry
2020-10-20 16:56:22 +00:00
Alexei Dobrohotov
f90e403bc1
Avoid summon spawn if actor isn't in a cell (bug #5644 )
2020-10-18 01:42:32 +03:00
Andrei Kortunov
8ca3c3b123
Mark overrided methods by override keyword
2020-10-16 22:18:54 +04:00
David Cernat
68837aaf4a
Add OpenMW commits up to 15 Oct 2020
...
# Conflicts:
# .travis.yml
# CI/before_script.linux.sh
# CMakeLists.txt
# apps/openmw/mwgui/containeritemmodel.cpp
# apps/openmw/mwgui/tradewindow.cpp
# apps/openmw/mwphysics/actor.cpp
# apps/openmw/mwworld/actionteleport.cpp
# apps/openmw/mwworld/containerstore.cpp
2020-10-15 19:51:39 +02:00
fredzio
3c2504b442
Process movement queue in one or several background threads
...
Before movement calculation, the main thread prepare a
vector of ActorFrameData, which contains all data necessary to perform
the simulation, and feed it to the solver. At the same time it fetches
the result from the previous background simulation, which in turn is
used by the game mechanics.
Other functions of the physics system (weapon hit for instance)
interrupt the background simulation, with some exceptions described
below.
The number of threads is controlled by the numeric setting
[Physics]
async num threads
In case 'async num threads' > 1 and Bullet doesn't support multiple threads,
1 async thread will be used. 0 means synchronous solver.
Additional settings (will be silently switched off if async num threads = 0)
[Physics]
defer aabb update
Update AABBs of actors and objects in the background thread(s). It is not an especially
costly operation, but it needs exclusive access to the collision world, which blocks
other operations. Since AABB needs to be updated for collision detection, one can queue
them to defer update before start of the movement solver. Extensive tests on as much
as one installation (mine) show no drawback having that switched on.
[Physics]
lineofsight keep inactive cache
Control for how long (how many frames) the line of sight (LOS) request will be kept updated.
When a request for LOS is made for the first time, the background threads are stopped to
service it. From now on, the LOS will be refreshed preemptively as part of the background
routine until it is not required for lineofsight keep inactive cache frames. This mean
that subsequent request will not interrupt the background computation.
2020-10-15 06:41:35 +02:00
fredzio
d76cc5d0a9
Make the Object class manage its collision object and position.
2020-10-15 06:41:16 +02:00
fredzio
82da2045a9
Non functionnal changes in preparation for async physics feature
2020-10-15 06:41:03 +02:00
Alexei Dobrohotov
39678c74bf
Add many more godmode checks to harmful magic (bug #5633 )
2020-10-09 20:36:51 +03:00
David Cernat
0eedf8fd9f
Add OpenMW commits up to 30 Sep 2020
...
# Conflicts:
# apps/openmw/mwmechanics/aicombat.cpp
# apps/openmw/mwmechanics/character.cpp
# apps/openmw/mwmechanics/summoning.cpp
# components/CMakeLists.txt
2020-09-30 13:32:15 +02:00
David Cernat
80af0ce6a7
Add OpenMW commits up to 29 Aug 2020
...
# Conflicts:
# CMakeLists.txt
# apps/openmw/mwmechanics/character.cpp
2020-08-29 16:15:22 +02:00
Andrei Kortunov
924f634bda
Support for multiple summons with same ID in the single spell
2020-08-28 21:14:54 +04:00
elsid
80e23536cb
Merge branch 'camera_refactoring' into 'master'
...
Camera refactoring
See merge request OpenMW/openmw!271
2020-08-22 22:15:18 +00:00
David Cernat
89da1f39fb
[Client] Implement stable cell resets
2020-08-16 23:56:01 +02:00
Andrei Kortunov
7f342374fc
Fix crash when using 'showscenegraph 1' console command
2020-08-12 11:16:10 +04:00
David Cernat
fc26e9bbc1
[Client] Remove urm's broken (by his own admission) cell reset attempt
2020-08-11 16:12:49 +02:00
Petr Mikheev
0de6650add
Add RayCastingInterface
2020-08-06 22:03:33 +02:00
Petr Mikheev
e9b2e9b474
Remove camera stuff from RenderingManager
2020-08-06 00:43:33 +02:00
Petr Mikheev
694e0b5906
Refactoring. Simplification of camera interface.
2020-08-06 00:43:33 +02:00
Petr Mikheev
ed3426cf2f
Move third person camera collision check from World::updatePlayer() to Camera::updatePosition()
2020-08-06 00:43:33 +02:00
David Cernat
baa9446cd1
Add OpenMW commits up to 4 Aug 2020
2020-08-04 17:41:01 +02:00
Perry Hugh
4bf24a955e
Restore Gamepad Zooming
2020-08-04 06:04:59 +00:00
David Cernat
ff10aa816b
Add OpenMW commits up to 25 Jul 2020
...
# Conflicts:
# .travis.yml
2020-07-25 19:44:01 +02:00
Petr Mikheev
2e6aa155a3
New settings 'preview if stand still' and 'deferred preview rotation'.
2020-07-19 18:21:40 +02:00
Petr Mikheev
9f850b6ffc
Move deferred rotation logic from renderingmanager.cpp to camera.cpp
2020-07-19 18:21:40 +02:00
Petr Mikheev
4d206d2c67
Improved preview mode
2020-07-17 20:35:52 +02:00
Petr Mikheev
68148f5ec7
1. Skip smooth camera transition after changing cell; 2. Fix 'zoom out when move' for extremely high speed;
2020-07-16 22:21:50 +02:00
Evil Eye
271f7040a6
Fix a regression caused by #2648 ( fixes #5513 )
2020-07-12 13:25:40 +02:00
Andrei Kortunov
7f936e4cde
Merge pull request #2961 from akortunov/move
...
Do not use outdated references when moving objects to new cells
2020-07-12 12:11:22 +04:00
David Cernat
39e429c9eb
Add OpenMW commits up to 11 Jul 2020
...
# Conflicts:
# .travis.yml
# apps/openmw/mwmechanics/actors.cpp
2020-07-11 21:42:01 +02:00
Andrei Kortunov
58e3900ea0
Avoid redundant call
2020-07-11 20:11:49 +04:00
Andrei Kortunov
db8f0ad6fd
Do not use outdated references when moving objects to new cells (bug #5387 )
2020-07-11 17:24:20 +04:00
Bret Curtis
bbba524a6c
Resolves #5517 by removing the object being rotated from the paging system.
2020-07-09 22:36:57 +02:00
David Cernat
5eb7eb8d88
Add OpenMW commits up to 4 Jul 2020
...
# Conflicts:
# .travis.yml
# CI/before_script.linux.sh
# apps/openmw/engine.cpp
# apps/openmw/mwbase/windowmanager.hpp
# apps/openmw/mwgui/charactercreation.cpp
# apps/openmw/mwgui/windowmanagerimp.hpp
# apps/openmw/mwmechanics/character.cpp
2020-07-04 16:50:54 +03:00
Andrei Kortunov
27f1a3376c
Add a separate stats watcher for GUI
2020-07-01 15:55:44 +04:00
David Cernat
3b2eb6f62c
Add OpenMW commits up to 22 Jun 2020
...
# Conflicts:
# .travis.yml
# CMakeLists.txt
2020-06-22 20:50:55 +03:00
Petr Mikheev
d3bd67d747
Advanced third person camera.
2020-06-22 15:22:34 +02:00
Alexei Dobrohotov
2d23dad2bc
Merge branch 'master' into ai_package_type
2020-06-17 01:47:23 +03:00
bzzt lost a hitlab login
89ec6cfea2
tooltips labels
...
Signed-off-by: Bret Curtis <psi29a@gmail.com>
2020-06-13 00:22:28 +02:00
bzzt lost a hitlab login
9f0398c021
intersection by refnum tag + enable paging for acti,door,cont
...
Signed-off-by: Bret Curtis <psi29a@gmail.com>
2020-06-13 00:22:28 +02:00
bzzt lost a hitlab login
340d626589
static moving support
...
Signed-off-by: Bret Curtis <psi29a@gmail.com>
2020-06-13 00:22:28 +02:00
bzzt lost a hitlab login
b4af2ac672
avoid blocking on pagerebuild
...
Signed-off-by: Bret Curtis <psi29a@gmail.com>
2020-06-13 00:22:28 +02:00
bzzt lost a hitlab login
17637c6575
pagerebuild on disable
...
Signed-off-by: Bret Curtis <psi29a@gmail.com>
2020-06-13 00:22:28 +02:00
bzzt lost a hitlab login
ffbed7ee38
loadingscreen
...
Signed-off-by: Bret Curtis <psi29a@gmail.com>
2020-06-13 00:22:28 +02:00
bzzt
c0f128bcb3
disablesupprort
...
Signed-off-by: Bret Curtis <psi29a@gmail.com>
2020-06-13 00:22:27 +02:00
elsid
82893c30f4
Store package type id as enum except ESM
2020-06-11 21:02:27 +02:00
David Cernat
e5b1843089
Add OpenMW commits up to 11 Jun 2020
...
# Conflicts:
# apps/openmw/mwbase/world.hpp
# apps/openmw/mwgui/jailscreen.cpp
# apps/openmw/mwmechanics/activespells.cpp
# apps/openmw/mwmechanics/aiactivate.cpp
# apps/openmw/mwmechanics/aiactivate.hpp
# apps/openmw/mwmechanics/creaturestats.cpp
# apps/openmw/mwscript/aiextensions.cpp
# apps/openmw/mwscript/statsextensions.cpp
# apps/openmw/mwworld/worldimp.cpp
# apps/openmw/mwworld/worldimp.hpp
2020-06-11 13:21:58 +03:00
David Cernat
36a2308acd
Add OpenMW commits up to 30 May 2020
...
# Conflicts:
# CMakeLists.txt
# apps/openmw/mwbase/windowmanager.hpp
# apps/openmw/mwgui/windowmanagerimp.hpp
# apps/openmw/mwmechanics/actors.cpp
# apps/openmw/mwmechanics/actors.hpp
# apps/openmw/mwscript/interpretercontext.cpp
2020-06-09 17:50:26 +03:00
David Cernat
62df188fd4
Add OpenMW commits up to 16 May 2020
...
# Conflicts:
# CI/before_script.linux.sh
# apps/openmw/mwbase/world.hpp
# apps/openmw/mwinput/inputmanagerimp.cpp
# apps/openmw/mwscript/globalscripts.cpp
# apps/openmw/mwscript/interpretercontext.cpp
# apps/openmw/mwworld/cellstore.cpp
# apps/openmw/mwworld/cellstore.hpp
# apps/openmw/mwworld/worldimp.cpp
# apps/openmw/mwworld/worldimp.hpp
# components/interpreter/context.hpp
2020-06-06 22:38:28 +03:00
Andrei Kortunov
81805b7263
Introduce a separate class to control world date and time
2020-06-05 12:07:32 +04:00
Bret Curtis
2eb9d4ad4e
Merge pull request #2878 from Assumeru/mutate-ai
...
Mutate base records when editing AI settings (#2798 )
2020-06-03 15:09:40 +02:00
Andrei Kortunov
c0e62e9529
Refactor list of variables in the WorldManager
2020-06-03 11:21:34 +04:00
Evil Eye
4d7947d27c
Mutate base records when editing AI settings ( #2798 )
2020-06-02 21:59:37 +02:00
elsid
b67e18329e
Store AI packages as unique_ptr
2020-06-01 17:07:08 +02:00
Bret Curtis
9d0855baa5
Merge pull request #2866 from elsid/extend_osg_stats
...
Extend OSG stats
2020-05-29 23:23:38 +02:00
elsid
69df6098e5
Report frame number, number of actors and objects to stats
2020-05-22 17:39:18 +02:00
Capostrophic
c9c9599ec5
Improve GetDistance and object search warnings (bug #5427 )
...
Allow GetDistance to work with a non-existent object argument or with inventory items that belong to a container store that doesn't exist
2020-05-22 15:50:04 +03:00
unknown
3b4782959e
Allow targeting non-unique actors with StartScript (bug #2311 )
2020-05-10 14:57:06 +02:00
David Cernat
053a5a6258
Add OpenMW commits up to 9 May 2020
...
# Conflicts:
# apps/openmw/mwmechanics/spellcasting.cpp
# apps/openmw/mwscript/aiextensions.cpp
2020-05-09 15:17:04 +03:00
Capostrophic
8d22e075e6
Separate functions that don't belong to CastSpell class
2020-04-26 22:17:38 +03:00
Capostrophic
5535a7fb44
Move getSummonedCreature() to summoning
2020-04-26 18:58:33 +03:00
David Cernat
a20f8e77dc
Add OpenMW commits up to 25 Apr 2020
...
# Conflicts:
# .travis.yml
# apps/openmw/mwclass/container.cpp
# apps/openmw/mwclass/door.cpp
2020-04-25 09:52:58 +03:00
Bret Curtis
c359406473
taking anyoldname3 review comments to heart; typo fixes plus rebase
2020-04-22 20:29:50 +02:00
bzzt
1cd4b9ee68
fixes shadows on savegame screenshot
2020-04-22 20:18:29 +02:00
Bret Curtis
8a8107e837
as it says; revert vismask and uncomplicate openmw
2020-04-20 20:57:38 +02:00
David Cernat
7bc3298ed4
Add OpenMW commits up to 1 Apr 2020
...
# Conflicts:
# .travis.yml
# CI/before_install.linux.sh
# apps/openmw/mwphysics/physicssystem.cpp
2020-04-01 19:24:11 +03:00
Capostrophic
ca6cce0c7e
Separate Stepper
2020-03-31 00:38:34 +03:00
Andrei Kortunov
d2a2c74e08
Trace down dead persistent actors underwater (regression #5317 )
2020-03-21 10:41:35 +04:00
David Cernat
43e7df6df8
Add OpenMW commits up to 11 Mar 2020
2020-03-11 22:17:17 +02:00
Alexei Dobrohotov
7e6a533a29
Merge pull request #2695 from elsid/aiwander_check_destination
...
Add more destination checks for AiWander without pathgrid
2020-03-11 20:48:22 +03:00
David Cernat
85fb1d1a0b
Add OpenMW commits up to 19 Feb 2020
...
# Conflicts:
# apps/openmw/mwworld/scene.cpp
2020-02-20 01:51:47 +02:00
Bret Curtis
a0902bb98e
Merge pull request #2700 from akortunov/masks
...
Move VisMask to components
2020-02-17 11:58:53 +01:00
Andrei Kortunov
84979fa8b7
Move VisMask to components
2020-02-16 16:03:35 +04:00
elsid
1e4565a15c
Avoid using temporary vector to get items owned by
2020-02-11 22:24:18 +01:00
David Cernat
a13cef9913
Merge branch '0.7.0reset' of https://github.com/uramer/openmw into 0.7.1
...
# Conflicts:
# apps/openmw-mp/Script/Functions/Worldstate.cpp
# apps/openmw-mp/Script/Functions/Worldstate.hpp
# apps/openmw/mwbase/world.hpp
# apps/openmw/mwmp/CellController.cpp
# apps/openmw/mwworld/cellstore.cpp
# apps/openmw/mwworld/worldimp.cpp
# apps/openmw/mwworld/worldimp.hpp
2020-02-11 15:41:38 +02:00
elsid
4a0c056489
Do not wander to occupied area by other actor
2020-02-10 22:29:54 +01:00
elsid
85414e2353
Check for line of sight for wander destination
2020-02-10 22:29:54 +01:00
David Cernat
a58f09fd6c
Add OpenMW commits up to 2 Jan 2020
...
# Conflicts:
# apps/openmw/mwmechanics/enchanting.cpp
# apps/openmw/mwworld/scene.cpp
2020-01-02 22:09:54 +02:00
Andrei Kortunov
24ce242941
Implement TestCells (feature #5219 )
2019-12-22 11:13:42 +04:00
David Cernat
ca9cd90a4d
Add OpenMW commits up to 20 Dec 2019
...
# Conflicts:
# apps/openmw/mwworld/scene.cpp
2019-12-20 15:43:50 +02:00
Capostrophic
483b37bb3f
Disallow resting if the fall height hasn't been reset (bug #4802 )
2019-12-12 15:26:02 +03:00
David Cernat
3aaf64a984
[Client] Only send DoorState packets for logged in players
...
This prevents problems with content that uses scripted doors in the area players are spawned in before they log in.
2019-12-03 12:23:05 +02:00