1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-16 12:49:56 +00:00
Commit graph

587 commits

Author SHA1 Message Date
mrcheko
698cbba6ef old bug + comment fix 2014-06-09 23:02:06 +04:00
scrawl
69855097ca Fix an always true condition (Bug #1355) 2014-06-08 11:22:37 +02:00
scrawl
927ae00454 Fix code that stopped animation immediately after starting it, due to thinking it has completed (Fixes #1370) 2014-06-08 11:22:37 +02:00
scrawl
d2e98c4de1 Fix forced switch to third person on death not always working
For instance, when dying from fall damage
2014-06-05 17:21:02 +02:00
scrawl
0966755a0c Store death animation index in CreatureStats 2014-05-26 20:52:32 +02:00
Emanuel Guevel
1e4a854433 Remove static method MWWorld::Class::get(&Ptr)
It was just adding a level of indirection to Ptr.getClass().
All the call were replaced by that instead. The number of lines changed
is important, but the change itself is trivial, so everything should be
fine. :)
2014-05-22 20:50:00 +02:00
mrcheko
aa5647b45e merge master, resolve conflicts 2014-05-17 19:20:57 +04:00
scrawl
dfacf8c044 Change ActiveSpells to use ActorId 2014-05-14 07:14:08 +02:00
scrawl
365ca6c7e1 Fixes #1331: Manually disable movement state for dead actors.
For dead actors, refreshCurrentAnims is no longer called, so we need to disable the movement state manually.
2014-05-13 21:47:45 +02:00
mrcheko
e4fe78937a Merge remote-tracking branch 'upstream/master' 2014-05-12 22:06:26 +04:00
mrcheko
f596b698d9 fixes to slow-down at jump startup and infinite air intertia growth 2014-05-04 18:15:07 +04:00
scrawl
fc7e79027a Fixes #1144: Don't refreshCurrentAnims when adding already dead actors 2014-05-01 16:55:16 +02:00
mrcheko
6a3dddfb9a merge master 2014-04-27 13:49:31 +04:00
scrawl
04964595ef Fixes #1270, Fixes #1201: Update active weapon/spell icons every frame 2014-04-26 16:44:20 +02:00
mrcheko
f3626adc86 remake of z-moving in combat for flying/swimming enemies 2014-04-26 00:20:55 +04:00
mrcheko
fbd0ffe86f enable z-moving for flying/water combatants 2014-04-22 22:59:39 +04:00
scrawl
688415ce54 Play deathknockout/deathknockdown animations when appropriate 2014-03-26 18:55:16 +01:00
scrawl
394284d0f8 Fixes #1209: Tarhiel never falls
There are a few pitfalls with this code:
 - Gravity is only considered when applying queued movement. Therefore, make sure to queue some movement every frame. (Could be refactored in the future?)
 - The character controller never detects being in free fall (!World::isOnGround) unless movement has been applied.
2014-03-22 02:08:04 +01:00
scrawl
12de0afb03 Feature #50: Spawn projectiles
Fix a bug in copyObjectToCell.
Make actor rotations more consistent.
2014-03-08 01:31:27 +01:00
Marc Zinnschlag
367919200f moved CellRefList into a separate file 2014-02-23 20:11:05 +01:00
mrcheko
a6be72673c improves animation-controlled velocity check 2014-02-08 16:59:15 +02:00
scrawl
6ce499f0e6 Fixes #848: Use hardcoded animation velocity for first person movement 2014-02-06 04:05:22 +01:00
scrawl
ffe19e7a52 Feature #50: Handle attach & release of projectiles 2014-02-05 05:18:11 +01:00
scrawl
8b8fb931a0 Feature #50: Don't allow ranged weapon attack when ammunition is empty 2014-02-05 05:18:10 +01:00
scrawl
a07eaa0c0d Feature #50: Allow body pitch in third person for ranged weapon aiming 2014-02-05 05:18:10 +01:00
scrawl
5ee105c812 Fix typo 2014-02-05 05:18:10 +01:00
scrawl
7cf22391a5 Feature #50: Handle weapon controllers (i.e. bowstring animations, etc) 2014-02-05 05:18:10 +01:00
scrawl
df78357e05 Handle knockout separately (Closes #1151) 2014-02-05 05:18:09 +01:00
mrcheko
688f359a33 discard creatures speed and negative fatique changes 2014-02-03 23:09:26 +02:00
mrcheko
761f13d3ce activate whole-body attack animations 2014-02-02 16:29:51 +02:00
mrcheko
b85a4dd35e pos accum without conformity with animation bug/creature speed 2014-02-02 15:01:49 +02:00
scrawl
49e26415be Don't call loadGame() from within the MWMechanics::Actors update sequence 2014-02-01 18:42:00 +01:00
Marc Zinnschlag
1b5301eec0 Merge branch 'savedgame'
Conflicts:
	apps/openmw/mwbase/mechanicsmanager.hpp
	apps/openmw/mwbase/soundmanager.hpp
	apps/openmw/mwgui/mapwindow.hpp
	apps/openmw/mwmechanics/actors.cpp
	apps/openmw/mwmechanics/mechanicsmanagerimp.hpp
	apps/openmw/mwsound/soundmanagerimp.hpp
	components/esm/loadcell.cpp
2014-02-01 18:16:32 +01:00
scrawl
067c2bc2ec Disable combat movements for creatures without weapons 2014-01-31 04:43:35 +01:00
scrawl
7820ea5806 "Always best attack" should only affect the player 2014-01-31 04:43:35 +01:00
scrawl
39d86a9468 Improvements to smooth NPC steering 2014-01-31 04:43:29 +01:00
mrcheko
80d8aa4030 bug with sequence of knockouts; giving sense to some hit state code 2014-01-30 23:54:26 +02:00
mrcheko
e50e94af0b remove CreatureStats::mAttackType, set/getAttackType() 2014-01-27 23:05:17 +02:00
mrcheko
fe0268062d merge with master 2014-01-27 22:38:01 +02:00
mrcheko
45b3aa3d93 corrected things connected to determining attack type 2014-01-26 23:32:57 +02:00
scrawl
b1066de81d Revert "Merge remote-tracking branch 'mrcheko/master'"
This reverts commit 4e360136b1, reversing
changes made to 047bbe43b2.

Conflicts:

	apps/openmw/mwmechanics/aicombat.cpp
2014-01-26 00:31:44 +01:00
scrawl
28185e2017 Death/godmode fixes: Revive player *after* character update, since there might be fall damage. 2014-01-25 15:54:24 +01:00
scrawl
03cf383be7 Merge branch 'master' of https://github.com/zinnschlag/openmw into savedgame
Conflicts:
	apps/openmw/mwgui/referenceinterface.cpp
	apps/openmw/mwmechanics/actors.cpp
	apps/openmw/mwmechanics/mechanicsmanagerimp.cpp
	apps/openmw/mwmechanics/mechanicsmanagerimp.hpp
	apps/openmw/mwscript/cellextensions.cpp
	apps/openmw/mwworld/cells.cpp
	apps/openmw/mwworld/cells.hpp
	apps/openmw/mwworld/cellstore.cpp
	apps/openmw/mwworld/store.cpp
	apps/openmw/mwworld/worldimp.cpp
2014-01-24 18:28:35 +01:00
mrcheko
87e83a92f8 refactoring of setting an attack type 2014-01-23 23:14:20 +02:00
scrawl
16f5f5862d Feature #956: Implement blocking melee attacks 2014-01-21 23:25:24 +01:00
scrawl
fec26342cd Query the number of animation groups for death/hit animations, since they can vary a lot (argonian/khajiit, creatures, first person..) 2014-01-19 21:11:48 +01:00
mrcheko
339399f8b1 bug fix/logic fix/future suggestion 2014-01-19 22:09:51 +02:00
scrawl
4e360136b1 Merge remote-tracking branch 'mrcheko/master'
Conflicts:
	apps/openmw/mwmechanics/aicombat.cpp
	apps/openmw/mwmechanics/character.cpp
	apps/openmw/mwmechanics/character.hpp
2014-01-19 14:01:39 +01:00
scrawl
047bbe43b2 Don't complain about missing jump animations 2014-01-19 13:46:40 +01:00
scrawl
13646a651b Issue #777: Handle creatures with weapons in CharacterController. Move attack strength to CreatureStats. 2014-01-19 13:32:58 +01:00
scrawl
5049f3b134 Fix the group for creature attack animations 2014-01-17 20:18:35 +01:00
mrcheko
a11a6b616b Merge remote-tracking branch 'upstream/master' 2014-01-17 21:00:55 +02:00
scrawl
9b32b1403b Feature #960: Implement Creature::hit 2014-01-17 17:19:08 +01:00
scrawl
228254c890 Handle creature attack animations in character controller 2014-01-17 16:31:27 +01:00
scrawl
c548dcee13 Quick keys menu: make sure selected spell still exists 2014-01-17 15:20:22 +01:00
mrcheko
f2ad1c18f2 fix merging problem/some logic fixes 2014-01-16 22:24:05 +02:00
mrcheko
d5f794d4fb update to combat ai behaviour 2014-01-15 22:56:55 +02:00
scrawl
d544551f61 Added getSkill to Class interface, since creatures also have skills (which are provided by generalized Combat, Magic and Stealth attributes which substitute for the specific skills, in the same way as specialization)
Information provided by Hrnchamd.
2014-01-15 15:50:45 +01:00
scrawl
7534fc968d Minor acrobatics fixes 2014-01-15 14:53:30 +01:00
scrawl
da3295d69c Closes #1106: Move stance to CreatureStats, since creatures also have separate run/walk animations. 2014-01-15 14:53:29 +01:00
scrawl
de64c57179 Fix some typos and accidental commit 2014-01-15 14:53:28 +01:00
scrawl
52b9ebff9d Closes #1092: Implement sleep interruption. Fix levelled list flags for creatures. Change World::copyObjectToCell to search for the correct cell. 2014-01-14 07:42:03 +01:00
scrawl
83872f6bf5 Knockdown / hit recovery improvements. Use formula and GMSTs from research wiki for knockdown determination. Hand-to-hand automatically knocks out when fatigue empty. 2014-01-13 10:18:02 +01:00
scrawl
767c72e619 Fix diagonal movement being faster than forward movement 2014-01-12 10:04:06 +01:00
scrawl
921ef6cd9c Closes #1093: Show weapon when initializing the character controller with a weapon equipped 2014-01-12 00:42:27 +01:00
scrawl
44b2380874 Closes #947: Decrease fatigue when running, swimming and attacking 2014-01-11 22:28:50 +01:00
Marc Zinnschlag
1b03eec63e Merge remote-tracking branch 'scrawl/master' 2014-01-11 11:43:12 +01:00
scrawl
3896c88403 Use VFX_DefaultCast / VFX_DefaultHit if the magic effect does not specify any 2014-01-11 05:58:05 +01:00
Marc Zinnschlag
f62497dfdc Merge remote-tracking branch 'mrcheko/master' 2014-01-10 19:08:35 +01:00
mrcheko
ffcb7fb280 fix for bug scrawl mentioned 2014-01-10 19:04:07 +02:00
mrcheko
d41f27451b appropriate camera vanity<>preview mode switch + hit recoils fix 2014-01-09 23:36:40 +02:00
Marc Zinnschlag
85707b5e3e Merge remote-tracking branch 'scrawl/master' 2014-01-09 09:35:54 +01:00
scrawl
098f9712f1 Add getPlayerPtr() utility method. Reduces dependencies a lot. 2014-01-08 18:39:44 +01:00
mrcheko
46519062d3 hit recoils/knockdowns feature 2014-01-08 16:05:14 +02:00
mrcheko
2591ff2d5a bug repairing 2014-01-06 22:00:01 +02:00
scrawl
62774fcc4a Merge branch 'master' into HEAD
Conflicts:
	apps/openmw/mwbase/world.hpp
	apps/openmw/mwinput/inputmanagerimp.cpp
	apps/openmw/mwmechanics/actors.cpp
	apps/openmw/mwworld/worldimp.cpp
	apps/openmw/mwworld/worldimp.hpp
	components/esm/loadtes3.cpp
2014-01-06 00:23:17 +01:00
mrcheko
7002412760 resolve conflict in character.cpp 2014-01-04 17:55:09 +02:00
scrawl
b22dd40b41 Implement Paralyze magic effect 2014-01-03 17:06:05 +01:00
mrcheko
79e972bdb6 resolved accompanying minor problems 2014-01-02 21:54:41 +02:00
mrcheko
16e10cc702 error fix 2014-01-01 22:46:29 +02:00
mrcheko
09a0a69b04 more improvements 2014-01-01 21:40:31 +02:00
mrcheko
a8fb1ae51c improved, added knockdown after falling 2013-12-31 17:55:04 +02:00
mrcheko
d6345bce91 added npc hit reactions 2013-12-31 13:24:20 +02:00
scrawl
79a440e94a Many additions to 900bc06d2c:
- Fix indentation
 - Consider any kind of light, not just torch_infinite_time
 - Hostile NPCs should also wear lights, if they have nothing else that could use the slot (or a twohanded weapon)
 - Remove redundant code and don't add additional lights to the inventory
 - World::isDark returns false for interiors which are unaffected by weather
2013-12-30 17:57:41 +01:00
Marc Zinnschlag
6de39a7329 Merge remote-tracking branch 'lgro/issue845_NPCs_hold_torches_whole_day'
Conflicts:
	apps/openmw/mwmechanics/character.cpp
2013-12-29 15:00:31 +01:00
scrawl
17ff8165d2 Closes #1065: Don't apply fall damage when landing in water 2013-12-29 00:36:36 +01:00
scrawl
85ec80100c Bug #1005: Hide torches/shields during spellcasting and hand-to-hand combat 2013-12-27 22:00:16 +01:00
scrawl
7265b427fe Bug #1013: Rewrote fall height detection 2013-12-27 21:21:18 +01:00
scrawl
a3017e16d4 Don't allow changing the spell that is being cast mid-animation 2013-12-26 22:32:39 +01:00
scrawl
5054d8e6c1 Bug #1055: Check power use and mana before starting cast animation 2013-12-26 22:06:13 +01:00
Lukasz Gromanowski
900bc06d2c Fixes #845: NPCs hold torches during the day
Moved 'equipping torches at night and unequipping at day' code from Character
to Actors class.

Removed unneeded showLights method (introduced in previous commits)
from animation/npcanimation classes.

Since this commit autoEquip() method doesn't automatically equip lights.

Signed-off-by: Lukasz Gromanowski <lgromanowski@gmail.com>
2013-12-20 22:38:23 +01:00
Lukasz Gromanowski
abc126e2af Fixes #845: NPCs hold torches during the day
Added check for Player character so it won't be affected by showing,
or hidding torches.

Signed-off-by: Lukasz Gromanowski <lgromanowski@gmail.com>
2013-12-20 01:01:30 +01:00
Lukasz Gromanowski
6eb674e4e5 Fixes #845: NPCs hold torches during the day
Added equipping/unequipping torches.

Signed-off-by: Lukasz Gromanowski <lgromanowski@gmail.com>
2013-12-20 00:18:34 +01:00
Lukasz Gromanowski
92072d968b Fixes #845: NPCs hold torches during the day
Simplified a bit code which shows and hides light.

Signed-off-by: Lukasz Gromanowski <lgromanowski@gmail.com>
2013-12-19 21:11:07 +01:00
mrcheko
3816a09c6f bug 428 ask to load recent saved game 2013-12-19 22:08:34 +02:00
mrcheko
f50ff0b1c4 reworked http://bugs.openmw.org/issues/428 2013-12-16 15:40:47 +02:00
mrcheko
fd9f8c34f6 bug fix http://bugs.openmw.org/issues/428 2013-12-15 18:50:25 +02:00
Lukasz Gromanowski
91a4d9a2eb Fixes #845: NPCs hold torches during the day
Added method in WeatherManger and World which returns true if it is night.
This method is used later in character controller to show torches
(or other sources of light) at night and hide them at day.

Signed-off-by: Lukasz Gromanowski <lgromanowski@gmail.com>
2013-12-10 23:48:49 +01:00
Marc Zinnschlag
77a2179d1e Merge remote-tracking branch 'scrawl/master' 2013-12-09 18:39:34 +01:00
scrawl
0bc3a13c0f Break invisibility on Use or Activate 2013-12-08 23:36:37 +01:00
scrawl
37a7ee8fcd Set alpha value of character animations according to Invisibility / Chameleon effects. 2013-12-08 23:05:21 +01:00
Lukasz Gromanowski
bfd79bfbe6 Various fixes for CppCheck warnings.
Signed-off-by: Lukasz Gromanowski <lgromanowski@gmail.com>
2013-12-06 07:36:16 +01:00
scrawl
d2ed77f3f2 Fix shields being visible during spellcasting 2013-11-23 20:24:52 +01:00
scrawl
0dc2e829dd Lots of cleanup. Implemented Absorb and Resist. Implemented several instant effects. Added hand VFX. 2013-11-17 23:31:08 +01:00
scrawl
fc268bf302 Initialize mFallHeight 2013-11-17 23:31:08 +01:00
scrawl
2a11618ee7 Make sure the equipped weapon HUD icon is updated properly 2013-11-17 23:31:07 +01:00
scrawl
d49b6f19ff Don't advance acrobatics skill for NPCs 2013-11-16 02:11:11 +01:00
scrawl
9c5847e2f4 Fix VFX not getting removed when an actor dies 2013-11-14 14:52:30 +01:00
scrawl
0b5f5351b5 Fix continuous FX getting removed instantly 2013-11-14 13:30:48 +01:00
scrawl
a6e2f43b75 Stop continuous VFX when the effect is no longer active. 2013-11-13 15:44:43 +01:00
scrawl
9b0e82a37f Projectile models are now spawned (no movement or impact yet). Refactored trap activation to apply range types properly. Handle ContinuousVFX for magic effects (note they aren't stopped yet when the effect ends) 2013-11-13 14:02:15 +01:00
scrawl
ffdb91bb21 Add particles for Cast + Hit. Not looking quite right yet. 2013-11-11 23:43:28 +01:00
scrawl
cbe96a2170 Refactor ActiveSpells to track range type. Added basic self range magic. 2013-11-09 07:51:46 +01:00
Emanuel Guevel
2abe5c1c9a Acrobatics: do not apply fall damages when slowfalling spell effect is active
If spell effect ends up in mid-air, calculate fall height from then.
2013-10-02 23:34:25 +02:00
Emanuel Guevel
6e09a5fb4a Acrobatics: reinit fall height at current height rather than zero
To prevent problems.
2013-10-02 23:34:25 +02:00
Emanuel Guevel
2b992ef3b5 Acrobatics: use calculated fatigueTerm 2013-10-02 23:34:24 +02:00
Emanuel Guevel
4c151e59a2 Acrobatics: do not touch modified stats 2013-10-02 23:34:24 +02:00
Emanuel Guevel
4860514865 Acrobatics: cosmetic changes 2013-10-02 23:34:24 +02:00
Emanuel Guevel
b8c60dabb3 Reintroduce Acrobatics changes made by Glorf
Advance Acrobatics skill on jump and on landing,
apply fall damage on landing.
2013-10-01 23:35:34 +02:00
Chris Robinson
cf6e3ab933 Fix a potential divide-by-zero 2013-08-19 09:36:51 -07:00
Chris Robinson
2ec39f3622 Don't start the jump animation until after the actor is airborn
A bit counter-intuitive, but otherwise certain jump animations will improperly
add an offset to the initial inertia.
2013-08-19 08:24:47 -07:00
Chris Robinson
ac3d3df9fc Implement jumping animations 2013-08-19 08:10:18 -07:00
Chris Robinson
6e9f15793d Implement a jumping state 2013-08-18 23:42:56 -07:00
Chris Robinson
b0f8045c72 Improve mid-air control 2013-08-18 05:59:06 -07:00
Chris Robinson
9d56e2d86d Apply movement by queueing it to do later 2013-08-17 22:34:38 -07:00
Chris Robinson
6fd4cdb5fb Play randomized werewolf sounds 2013-08-11 00:53:17 -07:00
Chris Robinson
180f0d0fe9 Restart from the loop point if replaying the same animation 2013-08-09 21:25:28 -07:00
Chris Robinson
a28c36de17 Don't count as running if not actually moving along (local) X/Y 2013-08-09 06:53:07 -07:00
Chris Robinson
c2d8eb377f Play some appropriate sounds in werewolf form 2013-08-09 06:40:16 -07:00
Chris Robinson
eab4e09566 Handle the pick/probe in the character controller 2013-08-06 19:48:59 -07:00
scrawl
4caac0d859 Fix idle animations repeating 2013-08-05 02:06:23 +02:00
vorenon
76a1abe9fa Don't allow the use of the "jump" key while sneaking - Update 2013-08-04 20:10:33 +02:00
vorenon
aa45127895 Adjusted swish sounds
Sorry Chris, I was wrong. The game actually uses SwishM for every attack, but at a different pitch depending on the force of the attack. I realized it after testing your changes.
2013-08-02 16:33:39 +02:00
Chris Robinson
f57c829cba Play the appropriate swish sound and follow-up animation 2013-08-02 00:21:02 -07:00
scrawl
7dc30a01cd Some changes suggested by cppcheck 2013-07-31 18:46:32 +02:00
Chris Robinson
4ad28ed369 Don't play a weapon-down sound when unreadying a spell 2013-07-25 00:46:20 -07:00
Chris Robinson
0db02af807 Set up the weapon state in the CharacterController constructor 2013-07-24 21:08:16 -07:00
Chris Robinson
705498ec24 Play a swish sound when attacking 2013-07-24 10:34:53 -07:00
Chris Robinson
bf1d907d07 Don't play casting animations for enchantments 2013-07-24 05:39:15 -07:00
Chris Robinson
cc8e8c1272 Use the attack strength as determined by how long the attack was held 2013-07-24 03:18:53 -07:00
Chris Robinson
11b094559f Play the appropriate casting animation sound 2013-07-23 11:12:19 -07:00
Chris Robinson
17282c69b1 Handle spell-casting animation sequences 2013-07-23 07:30:54 -07:00
Chris Robinson
4d157cb19a Handle marksmen weapon attack sequences 2013-07-23 06:13:08 -07:00
Chris Robinson
d5d832846e Rename the follow-up upper character state enum 2013-07-23 04:56:49 -07:00
Chris Robinson
24567294ff Move NPC state update handling into a separate method 2013-07-23 03:26:24 -07:00
Chris Robinson
22e07968af Store the current weapon group name 2013-07-23 02:50:52 -07:00
Chris Robinson
0240efa6cf Improve weapon attack logic to better handle picks, probes, and h2h 2013-07-23 02:28:58 -07:00
Marc Zinnschlag
ec575200e3 Merge remote-tracking branch 'gus/MeleeCombat2'
Conflicts:
	apps/openmw/mwrender/animation.cpp
2013-07-23 09:12:23 +02:00
Chris Robinson
9c13568bb7 Remove idles from the state list and rename it 2013-07-18 01:49:53 -07:00
Chris Robinson
e803cdbe7f Handle swimdeath and missing death animations 2013-07-18 01:13:53 -07:00
Chris Robinson
f01b0b48cc Don't start with an idle state if dead 2013-07-18 00:35:03 -07:00
Chris Robinson
e78bdd2a5d Clear 'swim' from the animation name as a backup instead of 'sneak' 2013-07-18 00:22:40 -07:00
Chris Robinson
0cd4df3edf Stop playing idles on death 2013-07-17 02:19:22 -07:00
Chris Robinson
e2e278d06d Fix some animations not playing properly
Default movement animation speed multiplier should be 1, not 0. Only
randomize death1...death5 for NPCs.
2013-07-17 02:06:31 -07:00
scrawl
dfe912dcab Enum renaming 2013-07-16 23:38:55 +02:00
scrawl
91e95e1404 Use the correct slash, chop or thrust animation 2013-07-16 23:32:41 +02:00
gus
66e3eacace fix bows 2013-07-16 15:14:34 +01:00
gus
701ff94887 bugfix for lockpick 2013-07-16 14:46:44 +01:00
gus
20341ae8b7 simplification + taking into account weapon speed. Seems too fast, but i'm not sure 2013-07-16 14:10:14 +01:00
gus
8fc6e73649 post-merge fix 2013-07-16 11:51:18 +01:00
gus
ee47e99dad Merge branch 'master' of https://github.com/zinnschlag/openmw.git into MeleeCombat2
Conflicts:
	apps/openmw/mwmechanics/character.cpp
	apps/openmw/mwmechanics/character.hpp
2013-07-16 11:40:19 +01:00
gus
f6e3445414 Jittering gone + bugfix: chop animation works!
TODO: fix this unequip stuff
2013-07-16 09:50:59 +01:00
Chris Robinson
a932a89e02 Specify the velocity-based animation speed multiplier when playing it 2013-07-16 01:30:03 -07:00
Chris Robinson
f296d13c20 Add a speed multiplier to the animation state 2013-07-16 00:43:31 -07:00
Chris Robinson
06e631f213 Track death separately in the character controller 2013-07-15 23:43:33 -07:00
Chris Robinson
4ae65c20e6 Separate movement and idle states
This allows us to better handle cases of "missing" animations. Mainly for
first-person, but also for spells and certain weapon types.
2013-07-15 22:56:23 -07:00
gus
f7f23ac5d8 improvement of the chop animation. Still some jittering. 2013-07-15 17:18:16 +01:00
gus
076f98cbba change way animations keys are handled (thanks KittyCat!) 2013-07-15 16:37:25 +01:00
gus
3947f44aa3 Porting old work 2013-07-13 22:24:52 +01:00
Vincent Heuken
b095c24854 resize actor collision boxes on death 2013-06-27 14:11:20 -07:00
Glorf
88f8637145 Bugfix #795 2013-06-26 22:20:24 +02:00
scrawl
8bd712cc95 Fix being able to move slowly when over encumbered 2013-05-31 04:08:44 +02:00
Torben Carrington
c8c1ddd927 Adds functionality for checking if the animation group passed is currently playing on the actor passed. This is needed for AIWander. 2013-05-24 20:10:07 -07:00
Chris Robinson
e8bbb755c3 Play the left-arm torch animation when it's equipped 2013-05-17 06:21:59 -07:00
Chris Robinson
4b9a888d74 Use the PickProbe animation group as appropriate 2013-05-17 01:46:51 -07:00
Chris Robinson
6201cb0093 Add a method to clear the animation queue 2013-05-16 06:59:41 -07:00
Chris Robinson
e069215583 Don't clear the last queued animation when it stops 2013-05-15 06:32:20 -07:00
Chris Robinson
66f55b3178 Play the item up/down sound when readying/unreadying weapons 2013-05-15 01:45:47 -07:00
Chris Robinson
b459a010b0 Fix vec.z being applied while not in the air 2013-05-14 23:03:28 -07:00
Chris Robinson
e8661794fe Avoid trying to find a state for non-actors.
They're only ever play idles, unless PlayGroup is called.
2013-05-14 07:29:07 -07:00
Chris Robinson
8ec722ac92 Use std::find_if instead of ugly for loops 2013-05-13 04:08:36 -07:00
Chris Robinson
f83ee5d316 Play ready/unready animations on the upper body 2013-05-13 03:32:00 -07:00
Chris Robinson
70dc2f77ad Move the priority enum to MWMechanics 2013-05-13 00:54:44 -07:00
Chris Robinson
7ba2508556 add a priority for death animations, and store it in the state list 2013-05-12 19:19:21 -07:00
Chris Robinson
4e389b5a8f Store whether a given animation loops in the state table 2013-05-12 05:59:39 -07:00
Chris Robinson
bbb38c61cc Fix queued animations 2013-05-12 05:08:01 -07:00
Chris Robinson
2c556e4036 Be smarter about handling non-moving animations
Don't rely on being told by the play method, so the animation can
automatically change without impacting the character controller.
2013-05-12 04:29:42 -07:00
Chris Robinson
6b8a687a79 Add methods to disable an animation
And rename WeaponState to WeaponType
2013-05-10 22:22:39 -07:00
Chris Robinson
abc676eedd Allow specifying which bone groups to play an animation on 2013-05-10 20:05:09 -07:00
Chris Robinson
7c3b014193 Figure out which animations to play based on priority
Bone group will also be taken into account later.
2013-05-10 18:37:44 -07:00
Chris Robinson
ccff364b52 Use a map of active layers instead of an array
A bit of an upheaval. Each animation is now a "layer", instead of each layer
having an animation. Incidentally, this is much closer to how Ogre handles
animation states.

In the future, each layer will have a priority, which will be used to determine
which one affects a given bone group (which we currently only have one of).
2013-05-10 03:08:07 -07:00
Chris Robinson
90e29c83c0 Merge remote-tracking branch 'zini/master' into animations
Conflicts:
	apps/openmw/mwmechanics/character.cpp
2013-05-06 19:17:39 -07:00
kpp
dcccfd9f22 Initialize values 2013-05-02 22:43:21 +04:00
Chris Robinson
a120653c38 Implement handling weapon states 2013-05-01 10:19:16 -07:00
Marc Zinnschlag
95eeea2a27 Revert "Merge remote-tracking branch 'glorf/acrobatics'"
This reverts commit 089ef7a2a0, reversing
changes made to 67422c397c.
2013-05-01 16:56:16 +02:00
Glorf
b8630239d7 Code cleanup 2013-05-01 12:25:02 +02:00
Glorf
236ec3409f Finished acrobatics 2013-05-01 12:21:59 +02:00
Chris Robinson
4b15da076b Move getStateInfo into the character controller 2013-04-30 19:26:41 -07:00
Glorf
d30e43784a Fatigue decrease when jumping, live decrease when falling 2013-04-30 23:39:56 +02:00
Glorf
5a8c1661be Jump acrobatics working, started falling acrobatics implementation 2013-04-30 20:44:17 +02:00
Glorf
add3cd6456 Advance acrobatics on jump 2013-04-30 18:22:59 +02:00
Chris Robinson
05060e57ec Add a weapon state to the character controller 2013-04-29 13:07:49 -07:00
scrawl
07891fa213 Athletics skill increase 2013-04-28 07:53:04 +02:00
Chris Robinson
274f3c7b77 Force character state to update after switching view modes 2013-04-25 07:08:11 -07:00
Chris Robinson
e4eb4b7e30 Keep track of the character looping state 2013-04-25 06:29:17 -07:00
Chris Robinson
9da2c9153e Don't store the animation group string in the character controller 2013-04-25 06:12:37 -07:00
Chris Robinson
24f1eba902 Keep track of whether an animation supplies movement
Also handle it when it doesn't.
2013-04-24 22:45:43 -07:00
Chris Robinson
0817d59f23 Allow specifying where to start in an animation 2013-04-24 19:09:36 -07:00
Chris Robinson
333354fe62 Remove the character controller from the Animation class 2013-04-24 07:10:41 -07:00
Chris Robinson
b80891099e Don't use the character controller to handle text keys
The Animation class has the Ptr and can call to whatever subsystem is needed.
2013-04-24 06:48:34 -07:00
Chris Robinson
e8cabc9434 Pass the loop count from loopgroup to the play method
Instead of queueing each iteration separately.
2013-04-24 06:32:11 -07:00
Chris Robinson
c58dfbe921 Specify the loop count to Animation::play 2013-04-24 04:56:39 -07:00
Chris Robinson
8782ae6976 Separate some Animation fields into a separate AnimLayer class 2013-04-22 23:52:28 -07:00
Chris Robinson
bb64efc18e Improve looping behavior 2013-04-22 05:08:52 -07:00
Chris Robinson
6c85d6763a Pass "loop stop" to the character controller 2013-04-21 18:38:25 -07:00
Chris Robinson
d0703efd69 Another place to check the class' isActor method 2013-03-31 17:32:39 -07:00
Chris Robinson
4836ba16f7 Implement turning states 2013-03-31 03:50:20 -07:00
Chris Robinson
7b02ec411b Apply the rotation when updating the character controller 2013-03-31 01:29:24 -07:00
Chris Robinson
466c0086b8 Use a full Movement to hand off to the world physics update 2013-03-31 00:13:56 -07:00
Chris Robinson
0ce188b7cc Store the position and rotation in MWMechanics::Movement 2013-03-30 19:00:46 -07:00
Chris Robinson
af65ecd841 Pass the movement vector in as a parameter to CharacterController::update 2013-03-30 18:37:40 -07:00
scrawl
268bb23590 Implemented sneaking animation 2013-03-06 16:58:56 +01:00
Chris Robinson
48271e49ec Properly update the Ptr object in the mechanics manager when moving across cells 2013-02-25 09:57:34 -08:00
Chris Robinson
89d4c245e9 Better calculate jump velocity
The fatigue term isn't currently used correctly
2013-02-24 03:30:33 -08:00
Chris Robinson
d77d035d3a Handle the "sound" events in runAnimation 2013-02-23 14:15:11 -08:00
Chris Robinson
e6da9dfae5 Specify the animation key to stop playing at 2013-02-23 05:15:10 -08:00
Chris Robinson
f841576bba Don't override animations played with playgroup 2013-02-23 01:54:46 -08:00
Chris Robinson
7fcca180b6 Implement rudimentary jumping 2013-02-20 20:08:04 -08:00
Chris Robinson
1399a06c76 Update animation looping when setting the same state 2013-02-19 04:01:33 -08:00
Chris Robinson
17200cb226 Don't try to move when there's no speed 2013-02-18 20:43:55 -08:00
Chris Robinson
627b866744 Don't try to set a new state when dead 2013-02-18 06:29:16 -08:00
Chris Robinson
f2948ced23 Allow diagonal movement 2013-02-18 03:07:31 -08:00
Chris Robinson
e4341525c8 Add a jump state
Currently unused
2013-02-15 04:45:28 -08:00
Chris Robinson
ff0099fa6e Scale the animation speed based on the animation velocity and movement speed
This may not be totoally correct since it takes the whole animation into
account, rather than just the looping portion. But it's good enough for now.
2013-02-15 02:15:39 -08:00
Chris Robinson
cbaf489eb6 Add running states 2013-02-06 16:53:52 -08:00
Chris Robinson
fc307e64b0 Add swimming states 2013-02-05 19:05:07 -08:00
Chris Robinson
8c0bb1ff4d Rotate movement in the movement solver 2013-02-05 14:02:14 -08:00
Chris Robinson
f7f1adfb9d Don't accumulate animations with activators 2013-02-05 12:55:06 -08:00
Chris Robinson
2c39760bd5 Move the movement solver code to mwworld's physics system 2013-02-05 12:45:10 -08:00
Chris Robinson
82e4da4e64 Get the half-extents from the physicactor 2013-02-05 07:41:57 -08:00
Chris Robinson
39cf7b0b42 Pass the Ptr of the object being moved to the move method
This prevents having to store another copy of it, which risks getting out of
sync.
2013-02-04 11:17:48 -08:00
Chris Robinson
1a5cb8760d Rotate movement vector to world space before passing to the movement solver 2013-02-04 11:04:20 -08:00
Chris Robinson
6b32fa7999 Use the correct position for the actor 2013-02-04 09:48:21 -08:00
Chris Robinson
1747c1e01a Integrate a new movement solver to handle object movement and collisions
Temporary, and pretty breoken. Needs some serious integration fixes.
2013-02-04 07:10:14 -08:00
Chris Robinson
91513206a0 Don't use per-animation accumulation values
This breaks walking diagonally and "jumping" (which technically wasn't jumping
anyway).
2013-02-03 12:02:51 -08:00
Chris Robinson
51d5efeeb2 Work out the state in the character controller update method 2013-02-03 07:15:34 -08:00
Chris Robinson
7fe877d8ea Add a couple more character states 2013-02-03 00:19:22 -08:00
Chris Robinson
007a5963de Handle most state changes in the character controller when setting the movement vector 2013-02-02 23:39:43 -08:00
Chris Robinson
04d4c125ba Print when an animation event is unhandled 2013-01-29 02:00:42 -08:00
Chris Robinson
37fe1bd3f0 Handle looping in the Animation object 2013-01-21 22:51:13 -08:00
Chris Robinson
e956a1cbc0 Merge SpecialIdle character state into Idle 2013-01-21 03:24:52 -08:00
Chris Robinson
6905bd18ba Filter out the group name from the text keys
It's already in the animation name, and the text keys are animation-specific
anyway.
2013-01-21 02:59:12 -08:00
Chris Robinson
85ca1e993f Properly check if an animation exists before playing it 2013-01-19 21:55:04 -08:00
Chris Robinson
68779375b2 Implement WalkLeft and WalkRight character states 2013-01-19 16:19:47 -08:00
Chris Robinson
a7b07ee5cf Don't reset the animation when setting the same state
Unless looping is being toggled on.
2013-01-19 15:46:22 -08:00
Chris Robinson
e0541b52c4 Use a list to store and get state information 2013-01-19 14:56:24 -08:00
Chris Robinson
de2d084e61 Add a looping property to handle if an animation should loop 2013-01-19 14:22:15 -08:00
Chris Robinson
0b68953f0d Scale animation speed using the direction length
The direction length doesn't currently give a good speed, but it's something.
2013-01-18 21:40:47 -08:00
Chris Robinson
aecfc0829a Implement WalkForward and WalkBack character states 2013-01-18 18:04:00 -08:00
Chris Robinson
e33f59e0fe Ensure the direction vector is initialized and copied properly 2013-01-18 17:41:36 -08:00
Chris Robinson
1cdd64cd9b Return the animation movement from the character controller.
Consequently, dead actors don't move anymore. The doPhysics call apparently
isn't moving them.
2013-01-18 17:05:58 -08:00
Chris Robinson
9235fba770 Store the movement vector in the character controller 2013-01-18 16:00:51 -08:00
Chris Robinson
40f8e75763 Use a SpecialIdle state for PlayGroup/LoopGroup invoked animations
Note that actors will *not* automatically resume a normal idle state afterward.
Their AI will need to control what to do when the special idle is finished.
2013-01-18 15:39:28 -08:00
Chris Robinson
a527cb8349 Loop the current animation when not dead
This should be better, but it's not perfect. It misses the case where
start < loop start == loop stop <= stop
2013-01-18 15:22:14 -08:00
Chris Robinson
c7684cb979 Pass the key time to markerEvent 2013-01-18 14:50:55 -08:00
Chris Robinson
3e9b0a333c Allow specifying the accumulation for animations
Animations that move a character may do so either visually or physically. An
axis' accumuluation value specifies whether the movement is visual (0) or
physical (1). Idle animations, for instance, typically don't physically move a
character, while death animations may physically move them along the X and Y
planes, but not along Z (the vertical movement is purely visual).
2013-01-18 14:25:32 -08:00
Chris Robinson
5cafc24ee2 Rename CharState_Alive back to CharState_Idle 2013-01-18 13:43:45 -08:00
Chris Robinson
a94947029e Check the marker name before deciding what to do with it
Also, don't force 'idle' after a playgroup
2013-01-18 00:59:48 -08:00
Chris Robinson
9d7ccfda1f Rename CharState_Idle to CharState_Alive 2013-01-17 21:07:36 -08:00
Chris Robinson
8720433fa9 Do not automatically loop animations
There are 0 length idle animations that break this
2013-01-17 17:54:09 -08:00
Chris Robinson
8fa1b56efc Loop the current animation if there's nothing more queued 2013-01-17 16:34:26 -08:00
Chris Robinson
7cce44290e Handle the animation queue in mwmechanics 2013-01-17 13:18:40 -08:00
Chris Robinson
47c157303a Filter events that do not belong to the current group 2013-01-17 11:03:58 -08:00
Chris Robinson
da4f17859e Recognize soundgen animation markers 2013-01-17 10:16:36 -08:00
Chris Robinson
7ee389f3b2 Handle animation skipping in the character controller 2013-01-16 21:25:50 -08:00
Chris Robinson
852aa214cc Store the available animation names in the character controller 2013-01-16 21:16:22 -08:00
Chris Robinson
afbc9f3e41 Keep track of the animation group currently playing 2013-01-16 20:44:37 -08:00
Chris Robinson
685f219560 Return a movement vector from the character controller update 2013-01-16 18:56:13 -08:00
Chris Robinson
d2f5a886c7 Handle playgroup and skipanim through mwmechanics 2013-01-16 17:53:18 -08:00
Chris Robinson
46fc61a4c1 Run animations from the character controller 2013-01-16 16:31:09 -08:00
Chris Robinson
46728ab27f Handle "sound:" animation events 2013-01-16 15:52:03 -08:00
Chris Robinson
3c32385e17 Avoid trying to animate things that don't have animations 2013-01-16 15:00:06 -08:00
Chris Robinson
94b93227d3 Treat activators as actors for rendering and mechanics
Kinda hacky, but it's the only way to get animated activators (flags, silt
striders, etc) to work properly.
2013-01-16 14:37:32 -08:00
Chris Robinson
d2fc3c7b33 Add a method to tell the character controller of new text keys 2013-01-16 13:09:21 -08:00
Chris Robinson
f46587c383 Store an character controller in the animation 2013-01-16 11:01:08 -08:00
Chris Robinson
3c487e6019 Play an animation when changing states 2013-01-16 10:45:18 -08:00
Chris Robinson
771a5f7316 Add the beginnings of a character controller 2013-01-10 08:35:24 -08:00