Chris Robinson
2f8affc955
Make sure the player's controller is properly updated when they change
2013-02-04 12:58:06 -08:00
Chris Robinson
ee9b19d2ed
Make sure to remove a Ptr from the activators when requested
2013-02-04 12:04:06 -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
scrawl
bf037b7d29
Removed problematic ModVertexAlpha method, now done in shader
2013-02-04 18:03:03 +01: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
Mark Siewert
3e43db5f76
Merge remote-tracking branch 'upstream/master' into multiple_esm_esp
2013-02-03 16:14:41 +01:00
Tom Mason
ac112ef972
refactored special variable code
2013-02-03 13:27:27 +00:00
Marc Zinnschlag
c97553703a
fixes for static build without cg
2013-02-03 13:47:55 +01: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
Tom Mason
f785659297
Implemented OnPCAdd special variable
...
Had to edit OpAddItem in miscextensions.cpp, as local variables were not being initialised
for items added through it.
Does not get reset on drop, as per original morrowind.
2013-02-02 17:36:12 +00: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 376dfed15ba01cee8d24d122dfafc797a86fd303.
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
Marc Zinnschlag
85697e4628
reverted to C++03
2013-02-02 13:24:28 +01: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 d6f923f2743afd4bd781e5a31bc5f897f3f18785.
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
Tom Mason
0f58e03343
Unequipping items will reset OnPCEquip variable
2013-01-31 19:04:39 +00:00
Tom Mason
9ad08520fd
Implemented OnPCDrop special variable
...
Scripts are responsible for resetting to 0, as investigation showed that is how vanilla handled it.
2013-01-31 18:45:32 +00:00
Tom Mason
0fc5ee5149
allow OnPCEquip special variable to be of any type
2013-01-31 17:46:16 +00:00
Chris Robinson
d6f923f274
Use a child scene node for the accumulation root
2013-01-30 22:28:18 -08:00
Tom Mason
09f9557ecb
Implemented OnPCEquip special variable
2013-01-31 00:34:16 +00:00
Tom Mason
dc91211b12
Fixed Small bug where scripts were being removed when they shouldn't be.
...
Scripts should only be removed when the item is being moved to another cell, otherwise they should remain active.
2013-01-31 00:21:04 +00: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
Mark Siewert
dca8dc4fdb
Merge remote-tracking branch 'upstream/master' into multiple_esm_esp
...
Conflicts:
apps/openmw/engine.cpp
apps/openmw/mwworld/cellstore.cpp
apps/openmw/mwworld/store.hpp
apps/openmw/mwworld/worldimp.cpp
apps/openmw/mwworld/worldimp.hpp
components/esm/esmreader.hpp
- Quick hack: OMW::Engine::prepareEngine only loads translation data for the first master file.
2013-01-25 18:22:01 +01: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