[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [23119] branches/blender2.5/blender/source /blender/blenkernel/intern/anim_sys.c: 2. 5 - Bugfix for curve-following animation not working
Joshua Leung
aligorith at gmail.com
Fri Sep 11 02:49:54 CEST 2009
Revision: 23119
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23119
Author: aligorith
Date: 2009-09-11 02:49:54 +0200 (Fri, 11 Sep 2009)
Log Message:
-----------
2.5 - Bugfix for curve-following animation not working
Optimisation for not working with AnimData when there were no actions meant that the special hack to set this value didn't get set.
Modified Paths:
--------------
branches/blender2.5/blender/source/blender/blenkernel/intern/anim_sys.c
Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/anim_sys.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/anim_sys.c 2009-09-11 00:23:08 UTC (rev 23118)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/anim_sys.c 2009-09-11 00:49:54 UTC (rev 23119)
@@ -1450,7 +1450,6 @@
* 'local' (i.e. belonging in the nearest ID-block that setting is related to, not a
* standard 'root') block are overridden by a larger 'user'
*/
-// FIXME?: we currently go over entire 'main' database...
void BKE_animsys_evaluate_all_animation (Main *main, float ctime)
{
ID *id;
@@ -1474,8 +1473,11 @@
* when there are no actions, don't go over database and loop over heaps of datablocks,
* which should ultimately be empty, since it is not possible for now to have any animation
* without some actions, and drivers wouldn't get affected by any state changes
+ *
+ * however, if there are some curves, we will need to make sure that their 'ctime' property gets
+ * set correctly, so this optimisation must be skipped in that case...
*/
- if (main->action.first == NULL) {
+ if ((main->action.first == NULL) && (main->curve.first == NULL)) {
if (G.f & G_DEBUG)
printf("\tNo Actions, so no animation needs to be evaluated...\n");
@@ -1509,6 +1511,7 @@
* value of the curve gets set in case there's no animation for that
* - it needs to be set before animation is evaluated just so that
* animation can successfully override...
+ * - it shouldn't get set when calculating drivers...
*/
for (id= main->curve.first; id; id= id->next) {
AnimData *adt= BKE_animdata_from_id(id);
More information about the Bf-blender-cvs
mailing list