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

16783 commits

Author SHA1 Message Date
fredzio
ae3306c019 Document async physics settings
Add an option to the launcher
Update changelog
2020-10-15 06:41:41 +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
91b3926a49 We need to update the collision world after each step.
Change order of traversal simulation step to make it rare enough to be parallelizable

Before:
for actor in actors:
    repeat numstep:
        solve(actor)
After:
repeat numstep:
    for actor in actors:
        solve(actor)

Introduce struct ActorFrameData to pack all data that is necessary for
the solver
2020-10-15 06:41:22 +02:00
fredzio
d76cc5d0a9 Make the Object class manage its collision object and position. 2020-10-15 06:41:16 +02:00
fredzio
4ef36973fb Make the Actor class manage its collision object and position. 2020-10-15 06:41:08 +02:00
fredzio
82da2045a9 Non functionnal changes in preparation for async physics feature 2020-10-15 06:41:03 +02:00
Bret Curtis
425fa837d1
Merge pull request #3012 from akortunov/container_crash
Fix crash on saving
2020-10-14 12:43:31 +02:00
Andrei Kortunov
c3d84b2c7c Ability to attach arrows to shooter's hands (feature #5642) 2020-10-14 10:07:42 +04:00
Andrei Kortunov
8e647aa72a Fix crash on saving 2020-10-14 09:16:01 +04: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
Bret Curtis
c99be77a32
Merge pull request #3008 from akortunov/strings
Rework fixed strings handling
2020-10-13 17:37:48 +02:00
Petr Mikheev
15078f5b3c Fix #5630 "NPCs momentarily turn when the player character is moving backwards during combat" 2020-10-10 23:06:43 +02:00
Alexei Dobrohotov
1842f546c3 Restore empty target check in spell absorption 2020-10-10 14:27:52 +03:00
Alexei Dobrohotov
e930251d92 Merge branch 'godmode' into 'master'
Add many more godmode checks to harmful magic (bug #5633)

Closes #4264

See merge request OpenMW/openmw!336
2020-10-09 22:09:46 +00:00
Alexei Dobrohotov
0e8c5c5034 Merge branch 'avoid_collision_update' into 'master'
Update logic of "NPCs avoid collisions"

See merge request OpenMW/openmw!318
2020-10-09 18:43:43 +00:00
Alexei Dobrohotov
b85875a354 Ignore Burden effect in god mode 2020-10-09 21:34:39 +03:00
Alexei Dobrohotov
39678c74bf Add many more godmode checks to harmful magic (bug #5633) 2020-10-09 20:36:51 +03:00
Alexei Dobrohotov
0dcb8c6b69 Fix pick/probe uses decrement 2020-10-09 19:20:50 +03:00
Alexei Dobrohotov
ec825b2510 Fix RayCastingResult warning 2020-10-08 22:44:46 +03:00
Petr Mikheev
be27b51279 Add head bobbing in first person mode 2020-10-08 00:22:01 +02:00
psi29a
bca698d951 Merge branch 'shader_line_numbering' into 'master'
Correctly resetting line numbering during shader processing.

See merge request OpenMW/openmw!317
2020-10-07 07:16:45 +00:00
AnyOldName3
c9e3db40a1 Merge branch 'multi-config-build' into 'master'
Add support for multi configurations generators on unix

See merge request OpenMW/openmw!198
2020-10-06 14:02:04 +00:00
Andrei Kortunov
822764d0fa Rework fixed strings handling 2020-10-05 21:52:22 +04:00
Alexei Dobrohotov
29ccb09da5 Introduce some extended NIF definitions 2020-10-04 13:18:56 +03:00
Petr Mikheev
2835ea1e21 Update logic of "NPCs avoid collisions" 2020-10-03 22:58:00 +02: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
Mads Buvik Sandvei
d5450a7d88 Correctly resetting line numbering during shader processing. 2020-10-03 14:22:34 +02:00
psi29a
3040b3b2b6 Merge branch 'issue-5588' into 'master'
Prevent empty right page of journal having invisible topics (Fixes #5588)

Closes #5588

See merge request OpenMW/openmw!310
2020-10-03 10:55:44 +00:00
Kyle Shrader
845049a166 Prevent empty right page of journal having invisible topics (Fixes #5588) 2020-10-03 10:55:44 +00:00
AnyOldName3
9e78f3d936 Skip raycasting for zero-length rays
Rays with no length can't intersect anything. This also prevents an
assertion triggering with Bullet built in Debug mode.
2020-10-03 02:19:38 +01:00
psi29a
aa4e6c448b Merge branch 'spellabsorption' into 'master'
Support enchantment absorption

See merge request OpenMW/openmw!307
2020-09-29 15:27:52 +00:00
psi29a
d9dafbe45b Merge branch 'master' into 'uses'
# Conflicts:
#   CHANGELOG.md
2020-09-29 08:20:50 +00:00
psi29a
0438d9d5bb Merge branch 'enchanting' into 'master'
Reset enchant effects displayed range when they are constant (bug #5603)

See merge request OpenMW/openmw!309
2020-09-28 17:18:29 +00:00
psi29a
ad1021721f Merge branch 'master' into 'rotation'
# Conflicts:
#   CHANGELOG.md
2020-09-28 17:09:50 +00:00
Alexei Dobrohotov
f2af957647 Reset enchant effects displayed range when they are constant (bug #5603) 2020-09-25 02:13:57 +03:00
Alexei Dobrohotov
e0a5c24afe Handle 0-use items like vanilla (bug #5611) 2020-09-25 00:20:25 +03:00
AnyOldName3
73708a6f2a Install openmw-cs.cfg on single-config generators and from the right directory on multi-config 2020-09-23 20:00:32 +02:00
Petr Mikheev
a17fb14b8a Add "smooth movement" and "NPCs avoid collisions" settings to openmw-launcher and to the docs; update CHANGELOG.md. 2020-09-22 22:50:44 +02:00
Petr Mikheev
ad51a4be2e Changes in head tracking and greetings for "smooth movement". 2020-09-22 22:50:44 +02:00
Petr Mikheev
b838782557 Avoid collisions between actors. 2020-09-22 22:50:44 +02:00
Petr Mikheev
79a72e4b44 Slightly modify aicombat to make it more difficult to get around an enemy. The difference is visible only if turning is slow (i.e. if smooth movement enabled). 2020-09-22 22:50:44 +02:00
Petr Mikheev
6a75942907 Fix CharacterController::setAttackTypeBasedOnMovement 2020-09-22 22:50:44 +02:00
Petr Mikheev
bd6b984022 Smoothing speed in CharacterController 2020-09-22 22:50:44 +02:00
Petr Mikheev
71ba94a89a Smooth turning; smooth stopping; combat headtracking 2020-09-22 22:50:44 +02:00
Alexei Dobrohotov
f8389c6c37 Support enchantment absorption 2020-09-22 00:33:27 +03:00
Alexei Dobrohotov
387bda5e22 Add inverse order rotation support to SetAngle (feature #5579) 2020-09-21 22:27:01 +03:00
Andrei Kortunov
7d776609c8 Fix unsugned/signed comparison warning 2020-09-21 10:36:01 +04:00
Bret Curtis
dd7e964baf
Merge pull request #2999 from akortunov/spellfix
Apply effects during rest before fast-forwarding spells state
2020-09-20 14:47:37 +02:00
psi29a
22c3588d0d Merge branch '4771-and-4631' into 'master'
Try lower MSAA level if the requested value isn't available

Closes #4471 and #4631

See merge request OpenMW/openmw!297

(cherry picked from commit b3db387512340a5e9a77427c2d7d9d88c2340056)

da0aef7a Retrieve SDL OpenGL attributes after context creation
a51e63b3 Try lower MSAA levels if OpenGL context doesn't have what we requested
c4e92a0a Update CHANGELOG.md
2020-09-20 12:35:26 +00:00
psi29a
b4ccd2658a Merge branch 'khr_debug' into 'master'
Khr debug

See merge request OpenMW/openmw!302
2020-09-20 12:14:57 +00:00
Bret Curtis
8f07b7e076
Merge pull request #3005 from Assumeru/dont-search-containers
Don't search containers
2020-09-20 11:48:26 +02:00
AnyOldName3
3f61ff3a44 Make OpenGL debugging optional 2020-09-19 23:30:34 +01:00
AnyOldName3
441c09578a Merge remote-tracking branch 'origin/khr_debug' into khr_debug 2020-09-19 23:09:11 +01:00
Evil Eye
fe82cd9f92 Don't search containers 2020-09-15 21:13:18 +02:00
Petr Mikheev
874c754b68 Fix #5557 2020-09-15 20:24:16 +02:00
tessa
58b5249e8b fix typo in terrainstorage.hpp 2020-09-13 10:46:27 -05:00
Bret Curtis
673f0f4f77
Merge pull request #3003 from akortunov/min_cost
Set a minimum 1gp cost for services
2020-09-08 17:00:49 +02:00
Andrei Kortunov
753ca91556 Set a minimum 1gp cost for services (regression #5600) 2020-09-08 17:04:31 +04:00
AnyOldName3
ffed6acc49 Merge branch 'patch-1' into 'master'
force static data variance for water geometry

See merge request OpenMW/openmw!294
2020-09-07 22:32:00 +00:00
Alexei Dobrohotov
99ab629a03
Merge pull request #2995 from akortunov/arrows
Improve ammo resetting
2020-09-06 13:30:55 +03:00
Mads Buvik Sandvei
2d021430b8 force static data variance for water geometry 2020-09-05 11:52:52 +00:00
Andrei Kortunov
f9ca08a984 Do not use swish sound for ranged weapons 2020-09-03 09:48:12 +04:00
Andrei Kortunov
787ca06d55 Apply effects during rest before fast-forwarding spells state 2020-09-01 19:36:59 +04:00
Bret Curtis
53e581fe10
Merge pull request #2899 from akortunov/multiple_effects
Track magic effect index for summoning
2020-09-01 14:17:49 +02:00
Andrei Kortunov
7a4efe3979 Avoid crash when object paging encounters an empty shape 2020-09-01 10:13:32 +04:00
Petr Mikheev
7e3d19196d Fix #5586 2020-09-01 00:37:37 +02:00
Evil Eye
131bd5c91d Fix unused template argument 2020-08-30 22:10:49 +02:00
Andrei Kortunov
9189a42c4c Fix failed assertion 2020-08-29 12:07:13 +04:00
Andrei Kortunov
67eace1028 Use struct instead of tuple 2020-08-29 11:24:08 +04:00
Andrei Kortunov
924f634bda Support for multiple summons with same ID in the single spell 2020-08-28 21:14:54 +04:00
Andrei Kortunov
47af221f10 Reset ammo when switching view to avoid warnings spam 2020-08-28 15:57:11 +04:00
Andrei Kortunov
297898182b Reset attached arrow in the beginning of unequipping animation 2020-08-28 15:53:30 +04:00
Bret Curtis
7ee5526dbf
Merge pull request #2993 from akortunov/warnfix
Fix MSVC warnings
2020-08-27 23:39:01 +02: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
AnyOldName3
a495888d3d Get per-monitor resolution list while SDL is alive 2020-08-26 16:58:51 +01:00
AnyOldName3
5538fea1d1 Display standard resolutions on single-monitor machines 2020-08-26 16:58:12 +01:00
Andrei Kortunov
f9e667dd8c Fix MSVC warnings 2020-08-26 12:34:27 +04:00
AnyOldName3
b60d5904e2 Correct SDL_GetNumVideoDisplays error message
It logged the wrong function
2020-08-26 00:16:14 +01:00
Bret Curtis
74ba6197ce
Merge pull request #2991 from akortunov/launcher
Use two columns when there is too many checkboxes in launcher's tab
2020-08-23 21:17:05 +02: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
Andrei Kortunov
7c9497c4de Use two columns when there is too many checkboxes in launcher's tab 2020-08-22 09:26:15 +04:00
Andrei Kortunov
8e566fa7ab
Merge pull request #2989 from Capostrophic/tabs
Make Advanced tab of the launcher look okay for everyone again
2020-08-21 12:21:16 +04:00
Alexei Dobrohotov
5c37b5bc4b
Merge pull request #2990 from akortunov/serialize
[Regression] Fix crash for ShowSceneGraph
2020-08-12 18:08:33 +03:00
Andrei Kortunov
7f342374fc Fix crash when using 'showscenegraph 1' console command 2020-08-12 11:16:10 +04:00
Capostrophic
c436f29a1e Make Advanced tab of the launcher look okay for everyone again 2020-08-09 20:23:17 +03:00
Capostrophic
a0ca7c4b43 AIPursue: don't do a LOS check
Properly resolve #4774
2020-08-09 12:48:59 +03:00
psi29a
f73aa9f27a Merge branch 'launcher_update' into 'master'
Add more settings to openmw-launcher

See merge request OpenMW/openmw!272
2020-08-07 20:17:44 +00:00
Petr Mikheev
6a4fa8a8b5 Add more settings to openmw-launcher 2020-08-07 20:17:44 +00:00
Bret Curtis
32e7b78cb9
Merge pull request #2985 from Assumeru/master
Fix regression #5572
2020-08-07 21:23:38 +02:00
Evil Eye
fb28d27d08 don't discard purged effects 2020-08-07 16:36:59 +02:00
Capostrophic
a211527b4b Fix AppVeyor warnings 2020-08-07 09:59:16 +03: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
Bret Curtis
2e05b5a4ee
Merge pull request #2983 from Assumeru/spell-regression
Fix #5566
2020-08-05 09:57:47 +02:00
Petr Mikheev
ca4330f753 Tune algorithm of "auto switch shoulder" 2020-08-05 01:01:51 +02:00
Evil Eye
144a7f330f Fix a regression that meant missing spells would prevent a save from being loaded 2020-08-04 18:28:10 +02:00
Perry Hugh
4bf24a955e Restore Gamepad Zooming 2020-08-04 06:04:59 +00:00
Bret Curtis
1995e43b46
Merge pull request #2980 from Assumeru/heritage
Make scripts inherit variables from the base record
2020-08-03 13:10:35 +02:00
unknown
073a7f2b2d Comments to explain the arcane workings of Morrowind 2020-07-30 21:39:04 +02:00
Andrei Kortunov
9f349e8d91 Use more C++11 in the scripting system code 2020-07-30 20:57:25 +04:00
unknown
b39f35d805 inherit variables 2020-07-29 18:43:56 +02:00
Bret Curtis
72b63ed140
Merge pull request #2954 from Assumeru/basespells
Mutate base records when adding/removing spells
2020-07-29 09:18:55 +02:00
Frederic Chardon
12ee42c6f3 Update mLastTopic before executing scripts. In case the script contains ClearInfoActor it erase not the correct topic.
Other correction not linked with the bug:
- reset mActorKnownTopicsFlag at the same time as mActorKnownTopics
- don't call updateTopics in addResponse, it is already handled by the response
callback
2020-07-28 20:50:49 +00:00
unknown
e27858cfab these were supposed to be included 2020-07-28 18:24:09 +02:00
Evil Eye
6ad20ec9c7 Mutate base records when adding/removing spells 2020-07-28 08:33:28 +02:00
Bret Curtis
ae1af0e103
Merge pull request #2972 from Assumeru/non-unique-additem
Mutate base record when calling add/remove item on non-unique actors
2020-07-27 23:33:10 +02:00
Bret Curtis
d197e2887b
Merge pull request #2977 from Capostrophic/simplewater
Make a horrible simple water hack less horrible
2020-07-27 01:26:44 +02:00
Bret Curtis
82a45eb6ae
Merge pull request #2976 from Capostrophic/unconscious
Add option to always allow stealing from KO'd actors (feature #5545)
2020-07-27 01:22:51 +02:00
Capostrophic
03f0bd3df6 Make a horrible simple water hack less horrible 2020-07-27 00:32:24 +03:00
Capostrophic
9c930e38fa Add option to always allow stealing from KO'd actors (feature #5545) 2020-07-26 13:10:44 +03:00
Capostrophic
cc6e4ad215 Fix pickpocketing sneaking stance check 2020-07-26 12:20:17 +03:00
Evil Eye
040a92c373 implement additem/removeitem for non-unique actors 2020-07-26 11:07:18 +02:00
CedricMocquillon
1f4f10c723 Add a tab level in advanced settings 2020-07-25 17:42:31 +02:00
psi29a
fc7266d4ee Merge branch 'Improve-cell-name-autocompleter-implementation' into 'master'
#5520 Improve cell name autocompleter implementation

See merge request OpenMW/openmw!267
2020-07-25 13:58:42 +00:00
Cédric Mocquillon
2e27de027e Add members in AdvancedPage class to avoid memory leak when the list of cells names is updated as we recreated a completer at each notification event 2020-07-25 13:58:42 +00:00
Bret Curtis
21ee1ed317
Merge pull request #2973 from akortunov/refactoring
Use more C++11 loops in game mechanics code
2020-07-25 15:43:42 +02:00
Andrei Kortunov
e6036e13b9 Use more C++11 loops in game mechanics code 2020-07-25 15:54:49 +04:00
Petr Mikheev
8cdc7031f5 Support vectors in settings.cfg 2020-07-24 21:47:49 +02:00
Petr Mikheev
62c8ea373b Fix not completely correct camera transition when switching from 1st person to 3rd person if armed. 2020-07-19 22:12:17 +02:00
Petr Mikheev
d78b227670 Fix inverted preview rotation when using controller 2020-07-19 18:21:40 +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
63cab4052d Refactoring in mwrender::Camera. enum for normal/preview/vanity mode. 2020-07-19 18:21:40 +02:00
Petr Mikheev
8ac7ffc32b Remove 'separate preview camera' and make the new behavior the default one.
Also minor refactoring in camera.cpp
2020-07-17 22:59:44 +02:00
Petr Mikheev
4d206d2c67 Improved preview mode 2020-07-17 20:35:52 +02:00
elsid
c3b581131d Merge branch 'third_person_fix' into 'master'
Minor fixes for 'view over shoulder'

See merge request OpenMW/openmw!265
2020-07-17 18:11:35 +00:00
Petr Mikheev
8ac143c983 Camera can pull out after clearing obstruction instead of instant snapback. 2020-07-17 10:19:46 +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
elsid
9240833bda
Init sound by a single object 2020-07-15 19:46:34 +02:00
Bret Curtis
74c67218e4
Merge pull request #2968 from elsid/fix_flee_cliff_racers
Adjust actor rotation when flee by axis x (bug #5531)
2020-07-14 17:04:04 +02:00
Bret Curtis
e98ae3262e
Merge pull request #2969 from akortunov/scripts
Resume failed scripts execution after game reload
2020-07-14 10:44:58 +02:00
Andrei Kortunov
b05d071e69 Resume failed scripts execution after game reload (feature #5524) 2020-07-14 10:53:01 +04:00
elsid
b7c1c52439
Adjust actor rotation when flee by axis x
Otherwise Cliff Racers can go underwater.
2020-07-13 20:08:37 +02:00
elsid
bcd526b706 Merge branch 'third_person_new' into 'master'
Further improvements of "view over shoulder"

See merge request OpenMW/openmw!237
2020-07-13 09:42:19 +00:00
Bret Curtis
a5da59e840
Merge pull request #2967 from Capostrophic/casesensitivity
Fix search filter unicode character case sensitivity
2020-07-12 22:41:24 +02:00
Petr Mikheev
383fa3d3ab Make 'zoom out when move' configurable. 2020-07-12 21:03:18 +02:00
Petr Mikheev
173c1fdabb Make transition in 'auto switch shoulder' smoother. 2020-07-12 20:51:38 +02:00
Petr Mikheev
51173ebcf5 Refactoring. Move all code related to 'view over shoulder' to a separate file. 2020-07-12 20:51:38 +02:00
Petr Mikheev
5bdf61a886 Slightly pulls camera away when the character moves 2020-07-12 20:51:38 +02:00
Petr Mikheev
ef03f2c033 Auto switch shoulder 2020-07-12 20:51:38 +02:00
Petr Mikheev
5675d6ce81 Generalize calculation of focal point offset for 3rd person camera.
When player swim, the view slowly switches from "over shoulder" to "above head".
New functions to switch shoulder.
2020-07-12 20:51:38 +02:00
Capostrophic
65ac0c86b8 Fix search filter unicode character case sensitivity 2020-07-12 19:05:47 +03: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
Bret Curtis
3acb84f4d5
Merge pull request #2964 from elsid/osg_rendering_stats
Report OSG rendering stats to file
2020-07-11 23:45:26 +02:00
Roman Siromakha
0f6badc581
Merge pull request #2958 from akortunov/statswatcher
Corrections for StatsWatcher
2020-07-11 22:54:35 +02:00
Andrei Kortunov
da791590ac Update HUD icons during mechanics update again to avoid crashes 2020-07-11 20:40:00 +04:00