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
23acf4b130
Don't break right away when the animation time remaining is 0
2013-02-03 01:38:42 -08:00
Chris Robinson
60a75cb5ee
Make sure to keep the character preview animation updated
2013-02-03 00:54:50 -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
c23a96d606
Run an aniamtion update after "playing" the inventory idle
...
This is so all the NPC parts get updated correctly.
2013-02-02 06:08:03 -08:00
Chris Robinson
fc7590694d
Revert "Revert "Use a child scene node for the accumulation root""
...
This reverts commit 376dfed15b
.
I was wrong. It's needed at least for NPCs since they're attaching multiple
animated skeletons to an object, and they all need to be offset correctly.
Would be nice to use a Node, Bone, or TagPoint instead of a hefty SceneNode,
though.
2013-02-02 05:43:37 -08:00
Chris Robinson
7f87c1873b
Use an array to store the entity parts
2013-02-02 02:53:22 -08:00
Chris Robinson
376dfed15b
Revert "Use a child scene node for the accumulation root"
...
This reverts commit d6f923f274
.
We don't need it for any of the NIFs we're currently handling. As long as
there's no NIF files that would break it, we should require a stationary root
if an animation wants to accumulate. If we must, a better idea may be to inject
an extra bone into the skeleton instance and make that the accumulation root.
2013-02-01 08:50:32 -08:00
Chris Robinson
d6f923f274
Use a child scene node for the accumulation root
2013-01-30 22:28:18 -08:00
Chris Robinson
b6354c6282
Don't share skeleton instances between bounded parts on an NPC
...
However, a skeleton instance will still be shared between entities in an entity
list.
2013-01-30 09:29:16 -08:00
Chris Robinson
5c3a7f7d52
Avoid handling animation states
...
We don't need them anymore
2013-01-30 07:34:07 -08:00
Chris Robinson
360f7bfac8
Apply animations to bones manually
...
Couple reasons for this:
* This paves the way for allowing animations specified in other skeletons to
be applied to the character (NPCs and certain creatures can have multiple
animation sources, but Ogre is incredibly strict when it comes to sharing
animations between skeletons).
* It will allow for entities to be animated based on the character's skeleton,
without having to duplicate the mesh for each skeleton it can be used on.
This doesn't impact Ogre's ability to efficiently deform skinned meshes, nor
does it get in the way of hardware skinning.
2013-01-30 07:04:18 -08:00
Chris Robinson
600d3bf9eb
Make sure the player node's visibility cascades
2013-01-30 02:38:50 -08:00
Chris Robinson
04d4c125ba
Print when an animation event is unhandled
2013-01-29 02:00:42 -08:00
Chris Robinson
d4ddaa3d95
Only register activators that have a MWRender::Animation object
2013-01-29 01:08:52 -08:00
Chris Robinson
99efe4e494
Remove an unnecessary class member
2013-01-29 01:02:55 -08:00
Chris Robinson
879359f39d
Set the animation state loop flag as appropriate
2013-01-29 00:50:52 -08:00
Chris Robinson
92d0c55f32
Add a flag to specify if an animation should be playing
2013-01-29 00:43:42 -08:00
Chris Robinson
fdabef65a1
Use a method to update an object's cell in the mechanics manager
...
This prevents destroying and recreating the object's character controller (and
messing up the current animation) when moving between cells.
2013-01-29 00:19:24 -08:00
Chris Robinson
8d98f3649c
Use a separate class to handle activator mechanics
2013-01-28 23:39:11 -08:00
Chris Robinson
7df4d0d19f
Remove an unnecessary cast
2013-01-28 21:41:51 -08:00
Chris Robinson
7b71b4eb31
Add a missing include
2013-01-27 03:03:48 -08:00
Chris Robinson
0cd3880b20
Merge remote-tracking branch 'zini/master' into animation2
2013-01-26 04:54:52 -08:00
Chris Robinson
b1ffdf855f
Reset the initial state of animated nodes on the skeleton instances
...
This is so the animation specifies node keyframe data based on the node's
parent. This will also be necessary for applying animations from different
skeleton sources, as they can have different binding positions (even native
.skeleton resources will need to specify animation data this way).
2013-01-26 04:48:53 -08:00
Emanuel Guevel
19dff822f4
Dialogue: do not filter on disposition for creatures
2013-01-24 19:43:21 +01:00
Emanuel Guevel
ed9a9904b4
Dialogue filter: search script variables case-insensitively
2013-01-24 19:39:31 +01:00
Chris Robinson
05f8b8c283
Specify the text key to reset animations to
2013-01-22 00:31:45 -08:00
Chris Robinson
37fe1bd3f0
Handle looping in the Animation object
2013-01-21 22:51:13 -08:00
Marc Zinnschlag
2756d3ee94
Merge remote-tracking branch 'wheybags/containerscripts'
2013-01-21 23:02:45 +01:00
Tom Mason
f5f3c2e62d
enabling / disabling should not affect scripts
2013-01-21 20:06:08 +00: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
536f8104e6
Do not create an 'all' animation.
2013-01-20 17:24:43 -08:00
Chris Robinson
e1e76bde76
Combine a loop into another where it's used
2013-01-20 15:39:43 -08:00
Tom Mason
31c71c029d
objects with scripts attached, that are inside containers will behave correctly when the container is moved
2013-01-20 17:01:30 +00:00
Emanuel Guevel
736e471613
Print a fallback text when no topic response is found
2013-01-20 17:44:09 +01:00
Emanuel Guevel
43e85ea0c6
Disallow redirection to info refusal for greetings
2013-01-20 17:44:09 +01:00
Emanuel Guevel
05796d85a4
NPC: take stats from NPDT12 into account
...
Some available stats (level, reputation and disposition) were not used
for NPC with auto-calculated stats.
2013-01-20 17:44:08 +01:00
Emanuel Guevel
951eb1b236
Dialogue: return a response from "Info Refusal" when disposition is not satisfied
2013-01-20 17:44:08 +01:00
Tom Mason
23dada0ee4
moved script handling on enable / disable into their own functions
2013-01-20 16:38:56 +00:00
Tom Mason
28c580d280
disabling and enabling containers causes scripts on contents to be disabled and enabled accordingly
2013-01-20 15:43:52 +00:00
Tom Mason
abe25c5f66
removed use of c++11 auto
2013-01-20 14:24:55 +00:00
Tom Mason
665a530e10
renamed realAdd to addImp
2013-01-20 14:14:34 +00:00
Tom Mason
3c6ddd7fa7
fixed isInCell method
2013-01-20 14:10:04 +00:00
Chris Robinson
85ca1e993f
Properly check if an animation exists before playing it
2013-01-19 21:55:04 -08:00
Nathan Jeffords
f55da17933
made some journal accessor methods constant
2013-01-19 16:21:41 -08:00
Nathan Jeffords
4c7ae3d1ff
prevent duplicate journal entries from being recorded
2013-01-19 16:21:15 -08:00
Nathan Jeffords
528c3da6da
record heard topics in journal
2013-01-19 16:20:22 -08:00