1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-03-03 04:13:24 +00:00

484 Commits

Author SHA1 Message Date
Mads Buvik Sandvei
26817e9cc5 Change the comparison of positions to avoid a problem if both positions are large numbers. 2023-12-09 14:50:02 +01:00
Mads Buvik Sandvei
0037fd78c1 Use std::numeric_limits<float>::epsilon() instead of picking our own epsilon. 2023-12-09 14:50:02 +01:00
Mads Buvik Sandvei
edf8c3b81c mSteps should be an int. 2023-12-09 14:50:02 +01:00
Mads Buvik Sandvei
aa30ec81d6 more clang format 2023-12-09 14:50:02 +01:00
Mads Buvik Sandvei
18a6422c1c clang format 2023-12-09 14:50:02 +01:00
Mads Buvik Sandvei
28eeef59bc Reduce movement solver same-position epsilon size. The previous value causes very stable idles to very slightly slide. 2023-12-09 14:50:02 +01:00
Mads Buvik Sandvei
cedc5289d7 Dejank movement solver vs animation movement accumulation 2023-12-09 14:49:42 +01:00
elsid
4a7886816e
Use settings values for Physics settings 2023-10-08 12:19:02 +02:00
Alexei Kotov
440851ff48 Rewrite melee hit target selection (bug #3438) 2023-09-19 22:31:45 +03:00
elsid
053a3caf7b
Pass cache expiry delay to GenericResourceManager constructor 2023-09-09 19:35:20 +02:00
elsid
eb77fd1813
Add height field to navigator in ESM4 cells 2023-08-13 02:26:45 +02:00
Andrei Kortunov
35561450f1 Do not copy osg::ref_ptr when possible 2023-07-31 20:43:46 +04:00
elsid
f6fce5ee15
Cleanup includes 2023-07-08 11:28:56 +02:00
elsid
6e8dcc16c6
Use settings values for Game settings 2023-07-01 00:59:35 +02:00
Mads Buvik Sandvei
410e8b100a Elsid comments 2023-05-23 19:30:29 +02:00
florent.teppe
a3bd6e7e47 ESM::ExteriorCellIndex => ESM::ExteriorCellLocation 2023-05-12 22:05:55 +02:00
florent.teppe
75561abfca Factorises code and fixes preload bug. 2023-05-12 22:05:54 +02:00
florent.teppe
141878f30d int x, int y , ESM::RefId worldspace => ESM::ExteriorCellIndex
also removed the changeToExteriorCell that only took a position as input, didn't work with esm4.
2023-05-12 22:05:53 +02:00
florent.teppe
d8a782425b can actually load and teleport to esm4 exterior spaces 2023-05-12 22:05:53 +02:00
Petr Mikheev
3a8a4e8bff Revert "Replace rayTest with convexSweepTest MovementSolver::traceDown. Needed to prevent teleporting down through sewer grates."
This reverts commit 917132e326447b5bd242e7b53c1004df23f74ee3.
2023-05-09 01:20:02 +02:00
Petr Mikheev
917132e326 Replace rayTest with convexSweepTest MovementSolver::traceDown. Needed to prevent teleporting down through sewer grates. 2023-05-07 21:13:14 +02:00
Petr Mikheev
f1beaa7b8c Put ESMStore to Environment 2023-04-20 21:45:49 +02:00
psi29a
d64eea2fc6 Merge branch '7113-move-from-std-atoi-to-std-from_char' into 'master'
Move from std::atoi to std::from_char

Closes #7113

See merge request OpenMW/openmw!2760
2023-03-18 09:30:48 +00:00
Shi Han
a90e3b8c3b Move from std::atoi to std::from_char 2023-03-18 09:30:48 +00:00
fredzio
63d4564455 In 0.46, SetPos was setting position of actors before physics simulation, and from this position movement was simulated. This changed with async physics merging, and at the same time problems started, mostly with abot's scenic travel.
Skipping the simulation, switching off collisions, and other approaches were not correct as they either broke some mods, or some core mechanics of the engine such as teleportation or waterwalking. As it turns out, the way to go is to simply do _nothing_ (modulo some gymnastics to account for the 1 frame difference in case of async).

Scripted movement and the unstucking logic tends to collide. Early out of unstuck in case the actor doesn't attempt to move. This means there is no AI package for NPC, which are the case for some boats and striders, or the player is content with their position.
2023-03-16 22:07:26 +01:00
elsid
0040da3497
Do not use std::shared_mutex to wait for job for async physics
std::shared_mutex in combination with std::condition_variable_any may
lead to a situation when notify_all does not wake up all waiting threads
on Windows. Use separate std::mutex and std::condition_variable to
notify about new job. Encapsulate all workers synchronization logic into
a separate type.
2023-03-05 18:07:56 +01:00
elsid
949b9191a5
Limit max bullet supported threads by BT_MAX_THREAD_COUNT - 1
There is a check and assert for number of threads >= BT_MAX_THREAD_COUNT.
btDbvtBroadphase::m_rayTestStacks::size may return BT_MAX_THREAD_COUNT which
triggers the assert.
2023-03-04 02:08:45 +01:00
elsid
3d3cccb8e5
Fix clamping physics threads 2023-03-03 18:44:47 +01:00
elsid
076e772e3d
Use shared locks in physics system when using multithreaded bullet 2023-02-12 14:51:46 +01:00
elsid
36b33cc1a5
Support absence of player and other actors in physics system 2023-02-08 20:19:59 +01:00
elsid
c79c14da91
Fix -Wnon-virtual-dtor warnings 2023-02-03 23:00:09 +01:00
Alexei Kotov
b261f3bf65 Fix animated object physics 2023-01-16 17:08:48 +03:00
Alexei Kotov
434b4deda1 Don't use xkf if xnif is merely the base model (bug #5371) 2023-01-14 04:55:12 +03:00
Petr Mikheev
313df72be0 Remove raycasting functions from MWWorld::World 2022-11-13 15:35:26 +01:00
elsid
843753da14
Remove unused includes 2022-10-09 16:44:18 +02:00
jvoisin
3cbf1dc042 First pass with include-what-you-use 2022-10-09 10:39:43 +00:00
elsid
1fc7bd7775
Do not consider falling actors as grounded 2022-09-24 17:49:44 +02:00
clang-format-bot
ddb0522bbf
Apply clang-format to code base 2022-09-22 21:35:26 +03:00
elsid
aeb4611d6c
Mark MWPhysics::Actor constructor and assignment operators as deleted 2022-09-17 01:14:04 +02:00
elsid
bceca33699
Do not lock mutex in MWPhysics::Actor constructor 2022-09-17 01:14:04 +02:00
elsid
bd98404890
Initialize PtrHolder::mPtr and positions by its constructor 2022-09-17 01:14:04 +02:00
elsid
cdc9141e2f
Reuse physics actors positions buffer 2022-09-08 01:57:45 +02:00
psi29a
fcd9b78cac Merge branch 'REFACTOR_STORE' into 'master'
Refactoring the ESM store to better support many new ESM4 types

See merge request OpenMW/openmw!2161
2022-09-07 20:22:29 +00:00
elsid
277211c5b4
Reuse physics simulations buffer
To avoid redundant allocations.

Use 2 buffers to make sure there is no overlap between main and the background
threads.
2022-09-07 03:06:59 +02:00
florent.teppe
0dd529ab1d With the records include removed from store.hpp, need to include the relevant files accross the codebase.Lots of touched files, but very little done 2022-09-06 13:26:13 +02:00
elsid
948e2f5db9
Do not use collision shapes with visual only collision to generate navmesh
These collision shapes are not used for actors movement physics simulation.
2022-08-25 00:56:03 +02:00
elsid
e4a254deb7
Replace Misc::Span by std::span 2022-08-21 23:53:27 +02:00
elsid
5498c169e3
Cleanup openmw render, physics, world, dialogue, gui, input includes 2022-08-17 18:45:52 +02:00
psi29a
454684bad3 Merge branch 'custom_actor_collision_shape_type' into 'master'
Support cylinder and rotating box collision shape types for actors (#6138)

Closes #6138

See merge request OpenMW/openmw!2043
2022-08-01 11:00:23 +00:00
Alexei Kotov
bccdefd63f Discard momentum upon teleportation (bug #6545) 2022-08-01 07:59:14 +03:00