1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-30 21:32:42 +00:00

336 Commits

Author SHA1 Message Date
elsid
5532bc61c1
Support additional animation sources not only for 2 letter extensions
If extension is not 2 letters length (e.g. not .kf), replacing last 3 last
charaters leads to weird results like:
"meshes/basicplayer.dae" -> "animations/basicplayer./"

According to the doc this should be "animations/basicplayer/".
2024-10-06 16:33:59 +02:00
Sam Hellawell
eb290bebbb Refactor AnimBlendControllers 2024-07-19 00:04:16 +01:00
Sam Hellawell
00a7d0281f Cleanup, refactor, rename AnimBlendControllerBase -> AnimBlendController 2024-07-19 00:04:16 +01:00
Sam Hellawell
13e1df3bf0 Grammar cleanup, code cleanup, reduce logging, revert mRotation change 2024-07-19 00:04:16 +01:00
Max Yari
55ffb6d7d2 Animation blending implementation for NIF and osgAnimation through YAML files
Signed-off-by: Sam Hellawell <sshellawell@gmail.com>
2024-07-19 00:04:15 +01:00
elsid
9d2f132aa7
Fix AnimState initialization
Remove redundant user defined constructor and destructor, make sure all members
are properly initialized including mTime (new float does not initialize the
float).
2024-04-27 14:47:23 +02:00
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