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

3488 commits

Author SHA1 Message Date
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
Assumeru
72549651e0
Rework container resolution (#3006)
* Rework container resolution

* add optional argument to getCount

* remove now-redundant changes

* undo worldimp changes

* move save-fixing code to InventoryState

* replace Rng instances with Seeds
2020-10-13 17:46:32 +02:00
Alexei Dobrohotov
39678c74bf Add many more godmode checks to harmful magic (bug #5633) 2020-10-09 20:36:51 +03:00
Charles Calhoun
14aacb81c5 Fix follower aggression when traveling. Summoning still has problems but less intrusive than current implementation. 2020-10-03 20:05:17 +00: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
Evil Eye
fe82cd9f92 Don't search containers 2020-09-15 21:13:18 +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
psi29a
f90a049702 Merge branch 'movement_refactoring' into 'master'
Refactoring related to "smooth movement"

See merge request OpenMW/openmw!285

(cherry picked from commit 6eaf0a389d5aed3b74ab1a7cf89574612f964bdf)

e847b4c8 Split getSpeed() to getMaxSpeed() and getCurrentSpeed()
a96c46bc Refactor calculation of movement.mSpeedFactor
03ee9090 Use getMaxSpeed instead of getCurrentSpeed where it makes sense.
a178af5c Create helper functions `normalizeAngle` and `rotateVec2f`
2020-08-27 11:54:30 +00: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
David Cernat
c87a383bee [Client] Simplify MWWorld::Cells::clear() & make it work w/ exteriors 2020-08-08 23:09:44 +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
Alexei Dobrohotov
eed8902380
Merge pull request #2982 from Assumeru/explain
Comments to explain the arcane workings of Morrowind
2020-08-05 18:05:55 +03:00
David Cernat
958be0b114 [Client] Add logging for invalid attempts at getting creature stats 2020-08-05 11:15:49 +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
unknown
073a7f2b2d Comments to explain the arcane workings of Morrowind 2020-07-30 21:39:04 +02:00
Evil Eye
6ad20ec9c7 Mutate base records when adding/removing spells 2020-07-28 08:33:28 +02:00
Evil Eye
040a92c373 implement additem/removeitem for non-unique actors 2020-07-26 11:07:18 +02: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
Bret Curtis
0c2fea8254
Merge pull request #2932 from elsid/replace_open_threads
Replace OpenThreads by std types
2020-07-04 13:11:23 +02:00
Andrei Kortunov
27f1a3376c Add a separate stats watcher for GUI 2020-07-01 15:55:44 +04:00
elsid
40ad87bc4d
Replace OpenThreads by std types 2020-06-25 22:16:09 +02: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
Bret Curtis
c944acf26b
Merge pull request #2913 from akortunov/warnfix
Get rid of ECLD and dependencies
2020-06-17 15:00:57 +02:00
Andrei Kortunov
d1a3cc98ff Get rid of ECLD and dependencies 2020-06-17 13:09:16 +04:00
Alexei Dobrohotov
2d23dad2bc
Merge branch 'master' into ai_package_type 2020-06-17 01:47:23 +03:00
psi29a
0dc7715c35 Merge branch 'object_paging_retry' into 'master'
Object Paging

See merge request OpenMW/openmw!209
2020-06-16 08:21:54 +00:00
David Cernat
9f2408473f [Client] Update setting of time via WorldTime packets
The setting of time-related values was previously handled directly in OpenMW's World class. It is now handled in OpenMW's DateTimeManager class instead when the variable names passed to World's setGlobalInt() and setGlobalFloat() are time-related.
2020-06-15 09:51:53 +03:00