Commit graph

1224 commits

Author SHA1 Message Date
Chris Robinson
921f534980 Parameterize the number of bone groups 2013-05-10 16:35:43 -07:00
Chris Robinson
8a9b0eb5f7 Store the AnimSource in the animation state 2013-05-10 15:27:29 -07:00
Chris Robinson
58efce5008 Rename animation layers to animation states 2013-05-10 04:01:30 -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
d5490b0f8f Fix an outdated comment 2013-05-09 23:07:50 -07:00
Chris Robinson
74ed1f73b4 Merge remote-tracking branch 'zini/master' into animations 2013-05-09 13:53:38 -07:00
Chris Robinson
8e38dc410f Allow loading multiple animation sources
Animation sources are treated differently from base objects. When given
"path\file.nif", base objects will look for "path\xfile.nif" and use that
if it exists (falling back to the original name if not found). Animation
sources will instead use "path\xfile.kf", ignoring it if the file doesn't
exist.
2013-05-07 16:59:32 -07:00
scrawl
301efb411e Fix exit crash 2013-05-07 19:15:28 +02:00
scrawl
8845c0cee1 Camera relative sky rendering. Now we no longer need to keep sky position in sync with camera. 2013-05-07 17:38:24 +02:00
Chris Robinson
e85bc8b2cd Only load one Nif for Animation objects
This breaks quite a bit, but it's needed for the transition to using the
.kf files.
2013-05-06 23:11:26 -07:00
Chris Robinson
6a3ba41170 Don't store camera nodes, we don't need them. 2013-05-06 21:46:11 -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
scrawl
062ff189a2 Merge branch 'master' into memory 2013-05-04 23:04:33 +02:00
scrawl
75dcf52552 Sync extern/shiny, set memory budgets for texture and mesh managers (however this has no effect yet and depends on changes in Ogre being made) 2013-05-03 13:55:57 +02:00
greye
a8b1706678 init pointer value to prevent segfault 2013-05-03 10:51:42 +04:00
kpp
dcccfd9f22 Initialize values 2013-05-02 22:43:21 +04:00
Chris Robinson
d01351431c Merge remote-tracking branch 'zini/master' into animations 2013-04-30 19:27:55 -07:00
Chris Robinson
4b15da076b Move getStateInfo into the character controller 2013-04-30 19:26:41 -07:00
scrawl
91c89e5db4 Use sphere cast instead of ray for camera distance adjustment; use the box orientation value in newtrace 2013-04-30 20:26:59 +02:00
Chris Robinson
020e3e8a8e Show the equipped weapon in the inventory screen
And use the proper pose based on what's equipped.
2013-04-29 12:08:43 -07:00
Chris Robinson
854de1c6c1 Make sure the weapon is in the proper group 2013-04-29 11:43:37 -07:00
Chris Robinson
15a2eeebb8 Merge remote-tracking branch 'zini/master' into animations
Conflicts:
	apps/openmw/mwworld/worldimp.cpp
2013-04-29 10:16:29 -07:00
Chris Robinson
063322b081 Declare some variables closer to where they're used 2013-04-29 10:12:50 -07:00
Chris Robinson
0cf531ba12 Make sure to update parts when the weapon changes 2013-04-29 09:53:36 -07:00
Chris Robinson
a15758ac85 Fix preview and vanity cameras 2013-04-29 08:48:45 -07:00
Chris Robinson
d17e1e83d5 Rename MWRender's Player to Camera 2013-04-29 05:50:40 -07:00
Chris Robinson
dbba126344 Use a method to check if the view should be first person 2013-04-29 04:40:28 -07:00
Chris Robinson
bb8277920b Manage the player's NpcAnimation object in the RenderingManager
It may be more appropriate to manage it in MWRender::Actors with the other
Animation-based objects, but that will need some (minor) interface changes.
2013-04-29 03:31:46 -07:00
scrawl
9648804af5 Fix terrain material leak, this should in theory allow the terrain to free its temporary resources 2013-04-29 10:20:38 +02:00
Chris Robinson
ba3a67f84b Don't store the player base node in MWRender::Player 2013-04-28 23:44:44 -07:00
Chris Robinson
24e503330b Merge remote-tracking branch 'zini/master' into animations 2013-04-28 09:41:31 -07:00
gus
3d9ceede77 little fix (weapons disapeared when tab was pressed) 2013-04-28 12:33:41 +01:00
gus
5388c25e64 Fix or lockpicks. 2013-04-28 11:55:50 +01:00
gus
766d1efa84 Render weapon and shield. Only shield can be seen right now as weapons need to be drawed out. 2013-04-28 11:41:01 +01:00
Chris Robinson
ce7bc20fa1 Avoid special-casing player rotation 2013-04-28 01:14:58 -07:00
Chris Robinson
ab52e68c05 Merge remote-tracking branch 'zini/master' into animations 2013-04-27 05:16:15 -07:00
Chris Robinson
137017b325 Don't allow forcing vanity mode 2013-04-27 01:24:36 -07:00
Marc Zinnschlag
32138dbb0f silenced a warning 2013-04-26 13:33:47 +02:00
Chris Robinson
b666f1d551 Work around a problem with MWRender::Player::renderPlayer
NpcAnimation::setViewMode makes a call to the character controller, in the
mechanics manager, to forcefully update the character's state. This in turn
makes a call to the player's old NpcAniamtion object that was just deleted.

The mechanics manager will eventually remove and reinsert the player, so the
old character controller will be removed and a new one will get the right
Animation object again, but not in time for the setViewMode call.

There's many factors that all contribute to this run-around, which needs
discussion on how to best fix.
2013-04-26 01:30:36 -07:00
Chris Robinson
55ee4e65a9 Clean up the slotlist struct 2013-04-25 23:42:20 -07:00
Chris Robinson
274f3c7b77 Force character state to update after switching view modes 2013-04-25 07:08:11 -07:00
Chris Robinson
2769adcee0 Implement switching to and from first-person animations
Note that the current animation gets interrupted, so switching to first person
may break movement until you stop and try to move again. This can be fixed by
alerting the character controller in the mechanics manager to force a state
update when switching POV.
2013-04-25 05:23:05 -07:00
Chris Robinson
9a2a32f2a5 Add a method to clear all Animation sources except the first
The first needs to remain, since that's where any mSkelBase entity comes from,
and where any retrieved nodes are from.
2013-04-25 05:02:11 -07:00
Chris Robinson
9be20b90f1 Fix potential infinite loop when layer 0 is empty 2013-04-25 03:35:40 -07:00
Chris Robinson
76c8e81908 Merge remote-tracking branch 'zini/master' into nifogre 2013-04-25 01:35:21 -07:00
Chris Robinson
86fda1bff6 Only set mSkelBase from the first objectlist 2013-04-25 00:52:26 -07:00
Chris Robinson
7eac37be23 Make sure the old layer is cleared before starting the next 2013-04-25 00:18:02 -07:00
Chris Robinson
09fc50948b Add methods to disable and get info for a layer 2013-04-25 00:08:16 -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