1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-31 06:32:39 +00:00

212 Commits

Author SHA1 Message Date
Alexei Kotov
b8018024a6 Avoid passing weapon short group to refreshXAnims 2022-06-13 17:53:38 +03:00
Alexei Kotov
0a38c3ab78 Reset current animation states in a consistent way 2022-06-13 17:53:38 +03:00
Alexei Kotov
c2e637d661 Mark setAttackingOrSpell as const 2022-06-12 03:02:23 +03: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
Alexei Kotov
97d4206a3d Improve CharacterController const-correctness
C++ Core Guidelines Con. 2
2022-06-11 02:08:43 +03:00
Alexei Kotov
788de7edcb Initialize most of CharacterController in-class
See C++ Core Guidelines C.48
2022-06-11 00:40:14 +03:00
elsid
77c09dff39
Store CharacterController by value in MWMechanics::Actor 2022-05-21 00:41:55 +02:00
elsid
ce3bba0cdc
Use std::list to store mechanics objects
To make the order of elements deterministic. Using memory address based objects
as map key makes order of elements there nondeterministic. Later it can be
replaced with vector when there are no indirect munipulations with container
inside iteration loops.

Change map key to const MWWorld::LiveCellRefBase* to avoid erasing and inserting
elements on MWWorld::Ptr update.

Store CharacterController by value instead of pointer to avoid redundant memory
allocation.
2022-05-20 00:47:10 +02:00
Evil Eye
7bd4971e0c Disallow non-bipedal hand-to-hand refreshes 2022-02-16 21:58:22 +01:00
unknown
5ebcd37da1 Rename method and restore swish sounds 2022-02-05 19:07:44 +01:00
Evil Eye
8752f78fa4 Remove weaponless, non-biped distinction 2022-02-01 21:58:55 +01:00
uramer
c31dedb89c Implement Yaw, Pitch and Use (attack / cast spell) in Lua self.controls 2022-02-01 18:47:20 +00:00
jvoisin
cf11870b1c Sprinkle some references where it makes sense 2021-06-24 00:28:09 +02:00
jvoisin
ee2446d5c4 Trim even more 2021-04-30 20:11:41 +02:00
fredzio
60f66f5e29 Remove never used parameter from CharacterController:update() 2021-01-09 21:28:27 +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
Petr Mikheev
bd6b984022 Smoothing speed in CharacterController 2020-09-22 22:50:44 +02:00
Petr Mikheev
63f828fea8 Bugfix for "turn to movement direction" 2020-06-26 20:04:02 +00: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
Andrei Kortunov
fcd6e915d4 Fallback for long animation groups 2019-08-09 19:40:30 +04:00
Andrei Kortunov
123ca175c8 Fallback for short weapon groups 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
Capostrophic
f9a711d2fd Revert poor animation decisions
Start force-updated in-air animation from loop start
Make movement animations have higher priority than jump animations
Make jumping animations have higher priority than turning animations
Don't reset idle during landing animation
Don't play default landing sound if the character is not on ground
2019-01-22 23:21:33 +03:00
Andrei Kortunov
a53333c3d5 Native animated containers support (feature #4730) 2018-12-13 23:11:16 +04:00
Andrei Kortunov
e7de6b974a Optimize actors processing
1. Do not update physics and animations for actors outside processing range (bug #4647)
2. Do not render such actors
3. Add transparency to actors near processing border, so they will not pop up suddenly
2018-10-25 22:52:59 +04:00
Andrei Kortunov
e06f0b797a Replace all NULLs to nullptr 2018-10-09 10:21:12 +04:00
Capostrophic
713330351b Experimental animation regression fixes
Don't unnecessarily start movement and jump animations from loop start
Don't play movement animation until jumping animation finishes
2018-09-24 19:30:02 +03:00
Andrei Kortunov
0136f0552b Do not update mIdleState directly 2018-09-11 22:24:44 +04:00
Andrei Kortunov
16edac8c47 Fix incorrect 'preparing' word spelling 2018-08-16 17:47:06 +04:00
Andrei Kortunov
307e0103dc Use fallbacks for missing weapon animations (bug #4470) 2018-08-12 16:14:24 +04:00
Andrei Kortunov
a0d0e5d2db Give jumping animations higher priority than movement ones 2018-08-09 16:19:03 +04:00
Andrei Kortunov
3d1daaebab Rework manual spellcasting (e.g. via scripts) 2018-07-12 16:24:25 +04:00
Andrei Kortunov
25bb7c1826 Make 'PlayGroup idle' to cancel scripted animations 2018-06-12 14:04:03 +04:00
Andrei Kortunov
0e441d48ac Give scripted animations highest priority (bug #4286) 2018-06-12 12:55:28 +04:00
Andrei Kortunov
0c92655250 Avoid code duplication in character manager 2018-06-12 11:51:54 +04:00
Andrei Kortunov
1b9edbe119 Add unequip animation during stance switching (bug #4327) 2018-06-07 16:20:17 +04:00
scrawl
bba9a8dd91
Don't update off-screen animations
Make flying creatures animate in-place when out of processing range
2018-01-11 01:49:35 +00:00
scrawl
60fba7acd8 Fix reorder warning 2017-11-15 17:20:08 +00:00
rexelion
de7a7d842b mTimeUntilWake is initialised in the constructor 2017-11-05 18:30:34 +00:00
rexelion
48ec680f23 use game time instead of real time 2017-11-04 19:37:20 +00:00
rexelion
ab66034ed1 use uniform_int_distribution instead of rand() 2017-11-04 02:15:56 +00:00
rexelion
de83ad0116 use real time; wait random number of seconds 2017-11-04 00:24:09 +00:00
rexelion
5b8610b34b knocked out characters wait some time before getting up 2017-11-01 23:44:50 +00:00
Andrei Kortunov
bcad431cc5 Implement SwimTurnLeft/Right animations 2017-09-22 16:07:00 +04:00
Andrei Kortunov
1c6cfad3cc Implement SwimHit animation 2017-09-22 15:49:42 +04:00
Andrei Kortunov
3eb1308c0d Implement SwimKnockdown/out animations 2017-09-22 15:26:35 +04:00
Andrei Kortunov
6260bb1366 Implement SwimAttack1-3 and SwimDeathKnockDown/Out animations 2017-09-22 14:51:06 +04:00
Andrei Kortunov
a5b01fefec Allow to interrupt an attack, if attack button is held 2017-09-01 14:28:21 +04:00
Andrei Kortunov
fb45995a41 Do not allow player to change weapon/spell during attack or spellcasting (bug #2445) 2017-08-29 15:53:23 +04:00