1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-27 21:35:24 +00:00

418 Commits

Author SHA1 Message Date
Cody Glassman
d85f772269 Depth refactor 2021-11-21 02:25:05 +00:00
Alexei Dobrohotov
e125308dd8 Force assign head animation timer (bug #4389) 2021-11-07 14:10:51 +03:00
Evil Eye
a9106f4d7c Rotate torches by 90 degrees 2021-11-02 18:01:22 +01:00
Evil Eye
3660d5cc4c Reduce code duplication in getting the shield model 2021-11-01 19:33:29 +01: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
c9c8d02332
fixes a crash (#3183)
This PR fixes a crash caused by the improperly ensured lifetime of RigGeometry::mSourceGeometry. mSourceGeometry was not adequate to ensure mSourceGeometry would outlive mGeometry because we extend mGeometrys lifetime beyond this lifetime by passing mGeometry to the draw traversal instead of this.
In addition,

We add important comments.
We detect and prevent generally unsafe operations in high level code.
We add a sprinkling of const to help clarify intentions.
2021-10-23 10:31:46 +02:00
glassmancody.info
cc009d246f do not clear depth buffer in first person 2021-10-16 18:37:34 -07:00
Bo Svensson
ef906cbfa8
improves MWClass mapping (#3166)
Currently, we use a peculiar mapping of ESM classes by their std::type_info::name. This mapping is an undefined behaviour because std::type_info::name is strictly implementation defined. It could return a non-unique value on some platforms. With this PR we use the unsigned int sRecordId of the ESM class as a more efficient lookup type that does not build on undefined behaviour. We can expect marginally faster save-game loading with these changes as well.
2021-10-11 13:46:21 +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
8e9851c97c
npcanimation.cpp (#3148) 2021-10-05 13:52:19 +02:00
Evil Eye
dc1fe62dde Overhaul magic effects to work with onApply and onEnd events 2021-09-29 19:25:10 +02:00
Bo Svensson
147ed39900
This PR solves a crash with Robert's bodies logged on your bugtracker. (#3095)
* attach.cpp [ci skip]

* attach.cpp [ci skip]

* attach.cpp [ci skip]

* npcanimation.cpp [ci skip]

* attach.hpp [ci skip]

* attach.cpp [ci skip]

* creatureanimation.cpp [ci skip]

* creatureanimation.cpp [ci skip]

* cellpreloader.cpp

* npcanimation.cpp

* attach.cpp

* make android adk happy

* make android adk happy

* changelog.md [ci skip]

* authors.md [ci skip]
2021-09-09 22:56:57 +02:00
jvoisin
7a015d24c6 Sprinkle some const-ref 2021-08-15 19:50:28 +02:00
glassmancody.info
09e03fde2e refactor and fix wobbly shores 2021-08-04 17:49:57 -07:00
glassmancody.info
cad0b151cb enable shaders path and dehardcode depth formats 2021-08-04 17:39:11 -07:00
glassmancody.info
70fac33940 initial reverse-z depth implementation 2021-08-04 17:39:11 -07:00
jvoisin
ce8c30bf07 Minor code simplification in npcanimation.cpp 2021-07-25 14:20:37 +02:00
Nelsson Huotari
3194520dcd Move base_anim settings to settings-default.cfg 2021-01-27 13:41:02 +02: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
c3d84b2c7c Ability to attach arrows to shooter's hands (feature #5642) 2020-10-14 10:07:42 +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
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
elsid
3c460fb3e9
Use pointer to Sound to stop sounds started by NpcAnimation 2020-07-06 17:38:09 +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
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
Alexei Dobrohotov
7ba8176862
Merge pull request #2819 from elsid/fix_ub
Fix UB in NpcAnimation::mNpcType initialization
2020-05-01 21:49:04 +03:00
elsid
6d8debe009
Initialize variable without reading itself 2020-05-01 17:23:10 +02:00
Capostrophic
87ba0bb0e0 Fix usage of uninitialized weapon type in equipmentChanged() 2020-05-01 16:37:40 +03:00
Bret Curtis
8a8107e837 as it says; revert vismask and uncomplicate openmw 2020-04-20 20:57:38 +02:00
Capostrophic
3e3f5d66b2 Don't reset dead non-werewolf vampires' vampire NPC type 2020-03-25 21:06:21 +03:00
Evil Eye
4f4982545a make robes cover the chest slot 2020-03-19 21:30:22 +01:00
Bret Curtis
a0902bb98e
Merge pull request #2700 from akortunov/masks
Move VisMask to components
2020-02-17 11:58:53 +01:00
Andrei Kortunov
84979fa8b7 Move VisMask to components 2020-02-16 16:03:35 +04:00
Capostrophic
fcbd3b4324 Don't try to attach absent shield models to NPCs 2020-02-11 11:58:02 +03:00
Capostrophic
4a78674583 Make sure not to pick the ground shield model incorrectly 2020-02-02 15:39:29 +03:00
capostrophic
bbe5adb860 Use shield body part model for creatures (bug #5250) 2020-01-10 14:18:40 +03:00
Andrei Kortunov
97ee4bc349 Improve equipment logic (bug #5223) 2019-12-14 22:30:27 +04:00
Andrei Kortunov
d66b81d7f7 Reset holstered shield before rebuilding an NPC animation 2019-12-05 17:35:32 +04:00
Andrei Kortunov
ca2a524a5f Avoid null pointer dereference 2019-11-13 14:50:42 +04:00
Andrei Kortunov
d3a3b2f1f6 Shields holstering support (feature #5193) 2019-10-22 09:02:59 +04:00
Andrei Kortunov
d58f93f388 Use sayDone() only for scripting backward compatibility 2019-09-06 09:19:41 +04:00
Andrei Kortunov
afaff8231d Use the Weapon Bone as fallback 2019-08-09 19:40:30 +04:00
Andrei Kortunov
f0cef772fa Refactor weapon types behaviour
1. Move weapon types behaviour from switches to the table (should allow
us to de-hardcode weapon types later)
2. Gereralize bones injection to actors skeletons (instead of using the
hardcoded xbase_anim_sh.nif)
2019-08-09 19:40:27 +04:00
Andrei Kortunov
8557346fbd Use glow for enchanted arrows (feature #5122) 2019-08-07 12:58:14 +04:00
Andrei Kortunov
1eed511b4e Use enchanted glow for pulled arrows 2019-08-07 09:45:10 +04:00
Andrei Kortunov
4c92f0c4e1 Move getEnchantmentColor() from Animation to Class 2019-08-07 08:51:46 +04:00
Andrei Kortunov
c3fdccac1f Do not use the xbase_anim.kf as a fallback for werewolves (bug #5004) 2019-04-30 17:51:38 +04:00
Chris Djali
1860d720bc
Merge pull request #2263 from akortunov/actor_culling
Do not recreate shaders to update transparency
2019-03-26 14:13:50 +00:00