Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/blender/blenkernel/intern/library_query.c14
-rw-r--r--source/blender/blenloader/intern/readfile.c31
2 files changed, 29 insertions, 16 deletions
diff --git a/source/blender/blenkernel/intern/library_query.c b/source/blender/blenkernel/intern/library_query.c
index 392ac68150e..718950624e2 100644
--- a/source/blender/blenkernel/intern/library_query.c
+++ b/source/blender/blenkernel/intern/library_query.c
@@ -378,6 +378,10 @@ void BKE_library_foreach_ID_link(ID *id, LibraryIDLinkCallback callback, void *u
CALLBACK_INVOKE(base->object, IDWALK_USER);
}
+ for (TimeMarker *marker = scene->markers.first; marker; marker = marker->next) {
+ CALLBACK_INVOKE(marker->camera, IDWALK_NOP);
+ }
+
if (toolsett) {
CALLBACK_INVOKE(toolsett->skgen_template, IDWALK_NOP);
@@ -842,6 +846,15 @@ void BKE_library_foreach_ID_link(ID *id, LibraryIDLinkCallback callback, void *u
}
break;
}
+ case ID_AC:
+ {
+ bAction *act = (bAction *) id;
+
+ for (TimeMarker *marker = act->markers.first; marker; marker = marker->next) {
+ CALLBACK_INVOKE(marker->camera, IDWALK_NOP);
+ }
+ break;
+ }
/* Nothing needed for those... */
case ID_IM:
@@ -849,7 +862,6 @@ void BKE_library_foreach_ID_link(ID *id, LibraryIDLinkCallback callback, void *u
case ID_TXT:
case ID_SO:
case ID_AR:
- case ID_AC:
case ID_GD:
case ID_WM:
case ID_PAL:
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 60f276b1744..d86a89a0e48 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -2511,6 +2511,12 @@ static void lib_link_action(FileData *fd, Main *main)
// >>> XXX deprecated - old animation system
lib_link_fcurves(fd, &act->id, &act->curves);
+
+ for (TimeMarker *marker = act->markers.first; marker; marker = marker->next) {
+ if (marker->camera) {
+ marker->camera = newlibadr(fd, act->id.lib, marker->camera);
+ }
+ }
}
}
}
@@ -5608,7 +5614,6 @@ static void lib_link_scene(FileData *fd, Main *main)
Base *base, *next;
Sequence *seq;
SceneRenderLayer *srl;
- TimeMarker *marker;
FreestyleModuleConfig *fmc;
FreestyleLineSet *fls;
@@ -5709,15 +5714,11 @@ static void lib_link_scene(FileData *fd, Main *main)
}
SEQ_END
-#ifdef DURIAN_CAMERA_SWITCH
- for (marker = sce->markers.first; marker; marker = marker->next) {
+ for (TimeMarker *marker = sce->markers.first; marker; marker = marker->next) {
if (marker->camera) {
marker->camera = newlibadr(fd, sce->id.lib, marker->camera);
}
}
-#else
- (void)marker;
-#endif
BKE_sequencer_update_muting(sce->ed);
BKE_sequencer_update_sound_bounds_all(sce);
@@ -8860,6 +8861,12 @@ static void expand_action(FileData *fd, Main *mainvar, bAction *act)
/* F-Curves in Action */
expand_fcurves(fd, mainvar, &act->curves);
+
+ for (TimeMarker *marker = act->markers.first; marker; marker = marker->next) {
+ if (marker->camera) {
+ expand_doit(fd, mainvar, marker->camera);
+ }
+ }
}
static void expand_keyingsets(FileData *fd, Main *mainvar, ListBase *list)
@@ -9490,17 +9497,11 @@ static void expand_scene(FileData *fd, Main *mainvar, Scene *sce)
expand_doit(fd, mainvar, sce->rigidbody_world->constraints);
}
-#ifdef DURIAN_CAMERA_SWITCH
- {
- TimeMarker *marker;
-
- for (marker = sce->markers.first; marker; marker = marker->next) {
- if (marker->camera) {
- expand_doit(fd, mainvar, marker->camera);
- }
+ for (TimeMarker *marker = sce->markers.first; marker; marker = marker->next) {
+ if (marker->camera) {
+ expand_doit(fd, mainvar, marker->camera);
}
}
-#endif
expand_doit(fd, mainvar, sce->clip);
}