Sam Hellawell
2288a691d2
Replace osgAnimation bone underscore naming at load time, map bone instances, reset root bone transform each frame
2024-04-04 00:10:51 +01:00
Mads Buvik Sandvei
320d8ef014
Spellcast related Lua API + spellcasting/activespell refactor
2024-03-25 13:50:23 +00:00
Mads Buvik Sandvei
36e1bdab10
Use a smaller integer type instead of dealing with casting issues.
2024-01-28 14:48:49 +01:00
Mads Buvik Sandvei
a94add741e
Lua: Animation bindings
2024-01-26 21:39:33 +00:00
Mads Buvik Sandvei
f6a6c278dd
More cleanup of scripted animations
2023-12-05 14:13:35 +00:00
Andrei Kortunov
d3d7a663c6
Move some objects instead of copying
2023-07-31 20:43:46 +04:00
elsid
b4868c6094
Filter evade directions by supported animations
...
To avoid trying those which will not lead to any actor movement due to absent
animation.
2023-07-22 17:30:40 +02:00
elsid
80ae8ce116
Cache supported animations
2023-07-22 17:30:40 +02:00
florent.teppe
486d15b19e
moved light common to its own file
...
moved esm4light to it's own file
2023-02-07 16:29:17 +01:00
florent.teppe
dc961e3189
Adds the light into the scene.
...
Common struct for ESM3 and ESM4 light
2023-02-07 10:07:59 +01:00
unelsson
33afcbdc13
Use common function for blendmask detection, remove extra debug logs
2022-12-31 00:35:50 +02:00
unelsson
ffc64205c5
Force collada animation layers, remove nif blend mask detection.
2022-12-31 00:35:50 +02:00
elsid
063fff7fa4
Fix and prevent -Wextra-semi warning
2022-10-06 00:26:43 +02:00
elsid
da15db295e
Fix resetting player's animation on game loading
...
When game is loaded player's animation is replaced by a new object. Old object
is destructed without explicit removeFromScene call.
2022-10-02 13:50:51 +02:00
clang-format-bot
ddb0522bbf
Apply clang-format to code base
2022-09-22 21:35:26 +03:00
Evil Eye
534994b42a
Use more string_view in the character controller
2022-08-27 13:47:15 +02:00
Evil Eye
42e59878c5
Use string_view in more animation code
2022-08-23 18:25:25 +02:00
psi29a
aa8eba239a
Merge branch 'animation_view' into 'master'
...
Use string_view in animation code
See merge request OpenMW/openmw!2321
2022-08-21 20:05:00 +00:00
elsid
838d75a2e2
Avoid using owning raw pointer
2022-08-21 21:00:29 +02:00
unknown
827a2f0b77
Use string_view in animation code
2022-08-21 18:53:38 +02:00
Alexei Kotov
d458894868
Make getWeaponDrawn return 1 only when the weapon is attached (bug #4816 )
2022-08-18 05:04:51 +03:00
elsid
f99ed6f1db
Split components/misc/stringops.hpp into multiple headers
...
Replace all ciEqual overloads with one having std::string_view as argument.
2022-08-03 22:06:24 +02:00
Evil Eye
55134d1e31
Use string_view in the CharacterController
2022-07-26 17:23:00 +02:00
elsid
1e7989c5e5
Remove animation objects from scene outside destructor
2022-07-24 21:08:27 +02:00
elsid
34fd8abf5f
Move Animation::getPtr definitions to header
2022-07-24 17:29:27 +02:00
Alexei Kotov
93068d71ea
Use std::string_view whenever reasonable in CharacterController
...
C++ Core Guidelines SL.str.2
2022-06-11 04:54:50 +03:00
elsid
df092b558b
Replace shared_ptr by unique_ptr
2022-04-08 22:42:22 +02:00
Bo Svensson
7f9beac3a7
refactors a case insensitive map ( #3184 )
...
This PR aims to spark the retirement of a questionable pattern I have found all over our code base. I will illustrate how this pattern encourages code duplication, lacks type safety, requires documentation and can be prone to bugs.
```
std::map<std::string, Object> mMap; // Stored in all lowercase for a case-insensitive lookup
std::string lowerKey = Misc::StringUtils::lowerCase(key);
mMap.emplace(lowerKey, object);
std::string lowerKey = Misc::StringUtils::lowerCase(key);
mMap.find(lowerKey);
mMap.find(key); // Not found. Oops!
```
An alternative approach produces no such issues.
```
std::unordered_map<std::string, Object, Misc::StringUtils::CiHash, Misc::StringUtils::CiEqual> mMap;
mMap.emplace(key, object);
mMap.find(key);
```
Of course, such an alternative will work for a `map` as well, but an `unordered_map` is generally preferable over a `map` with these changes because we have moved `lowerCase` into the comparison operator.
In this PR I have refactored `Animation::mNodeMap` accordingly. I have reviewed and adapted all direct and indirect usage of `Animation::mNodeMap` to ensure we do not change behaviour with this PR.
2021-10-25 09:18:26 +02:00
Bo Svensson
b2af81bc18
converts remaining osg::NodeCallback ( #3147 )
...
With this PR we convert remaining instantiations of the deprecated osg::NodeCallback in Open MW to SceneUtil::NodeCallback.
2021-10-05 14:21:12 +02:00
Bo Svensson
aaf7b423d6
adds a replacement for osg::NodeCallback ( #3144 )
...
* nodecallback.hpp
* lightmanager.hpp
* lightmanager.cpp
* lightmanager.hpp
* nodecallback.hpp
* nodecallback.hpp
* [ci skip]
* lightmanager.hpp
* nodecallback.hpp
* nodecallback.hpp
* lightmanager.cpp
* lightmanager.cpp
* nodecallback.hpp
* [ci skip]
* [ci skip]
* controller.cpp
* [ci skip]
* osgacontroller.cpp
* keyframe.hpp
* controller.hpp
* keyframe.hpp
* [ci skip]
* keyframe.hpp
* animation.hpp
* [ci skip]
* weaponanimation.cpp
* nodecallback.hpp
2021-10-04 10:56:55 +02:00
jvoisin
7a015d24c6
Sprinkle some const-ref
2021-08-15 19:50:28 +02:00
jvoisin
5840279f16
Use default
instead of empty constructors/destructors
...
See https://pvs-studio.com/en/docs/warnings/v832/ for details
2021-06-24 00:26:15 +02:00
glassmancody.info
4ba473b684
Finalize settings, torch fix
2021-04-13 11:09:49 -07:00
Petr Mikheev
7bbbe40abe
"static const" -> "static constexpr" in headers
2021-03-21 13:57:54 +01:00
Nelsson Huotari
f78a5d795c
Separate keyframes logic to provide basis for osgAnimation integration.
2020-11-18 22:48:47 +02:00
Andrei Kortunov
8ca3c3b123
Mark overrided methods by override keyword
2020-10-16 22:18:54 +04:00
Andrei Kortunov
297898182b
Reset attached arrow in the beginning of unequipping animation
2020-08-28 15:53:30 +04:00
psi29a
46db69a349
Merge branch 'swimming' into 'master'
...
Swimming-related fixes
See merge request OpenMW/openmw!247
(cherry picked from commit 8be328ef80f29e9692e29d24beefa8ced16537a7)
738c71fd Extend the "turn to movement direction" mode for swimming up and down.
10d3e82b New setting "swim upward coef"
2020-07-09 20:05:59 +00:00
Petr Mikheev
b4c699348f
Improved strafe movement
2020-06-22 15:22:34 +02:00
bzzt lost a hitlab login
f12879a04c
allow statesetupdater as cullcallback = faster + works in paging
...
Signed-off-by: Bret Curtis <psi29a@gmail.com>
2020-06-13 00:22:28 +02:00
Bret Curtis
357a845d00
Merge pull request #2862 from elsid/optimize_has_animation
...
Optimize MWRender::Animation::hasAnimation
2020-05-22 10:33:37 +02:00
elsid
9326111f4c
Use vector for Animation::mActiveControllers
...
Container is only used to add elements, iterate over all of them and
clear. Multimap adds overhead for all of these operations without any
benefits. Reduce Animation::resetActiveGroups CPU time usage by 50%.
2020-05-21 17:32:25 +02:00
elsid
a59e25e093
Optimize MWRender::Animation::hasAnimation
...
Use a set to check for group start existence.
Reduce time taken from 2.6% to 0.08% and
MWMechanics::MechanicsManager::update from 7% to 5%
in relative CPU time usage for a scene with ~100 actors.
2020-05-21 16:21:11 +02:00
Capostrophic
1928bebe98
Don't use up light duration if the held light is hidden (bug #5352 )
2020-04-04 20:51:41 +03:00
Andrei Kortunov
2e7712a390
Fix C5204 warnings by adding default virtual destructors
2020-03-26 14:49:12 +04:00
Andrei Kortunov
d3a3b2f1f6
Shields holstering support (feature #5193 )
2019-10-22 09:02:59 +04:00
Andrei Kortunov
8557346fbd
Use glow for enchanted arrows (feature #5122 )
2019-08-07 12:58:14 +04:00
Andrei Kortunov
4c92f0c4e1
Move getEnchantmentColor() from Animation to Class
2019-08-07 08:51:46 +04:00
Alexei Dobrohotov
e4ef7e8d3f
Merge pull request #2355 from akortunov/transparency
...
Use the StateSetUpdater to modify alpha for Animation objects
2019-05-04 20:24:01 +03:00
Andrei Kortunov
5876a417c3
Use the StateSetUpdater to modify alpha for Animation objects (bug #5001 )
2019-05-03 08:18:52 +04:00