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:
Diffstat (limited to 'source/blender/blenloader/intern/versioning_250.c')
-rw-r--r--source/blender/blenloader/intern/versioning_250.c45
1 files changed, 37 insertions, 8 deletions
diff --git a/source/blender/blenloader/intern/versioning_250.c b/source/blender/blenloader/intern/versioning_250.c
index fe0d2293243..eaeef0d52c1 100644
--- a/source/blender/blenloader/intern/versioning_250.c
+++ b/source/blender/blenloader/intern/versioning_250.c
@@ -61,6 +61,7 @@
#include "BLI_math.h"
#include "BLI_utildefines.h"
+#include "BKE_anim_data.h"
#include "BKE_anim_visualization.h"
#include "BKE_armature.h"
#include "BKE_colortools.h"
@@ -514,7 +515,7 @@ static void do_version_mdef_250(Main *main)
mmd->bindcagecos = mmd->bindcos;
mmd->bindcos = NULL;
- modifier_mdef_compact_influences(md);
+ BKE_modifier_mdef_compact_influences(md);
}
}
}
@@ -871,7 +872,7 @@ void blo_do_versions_250(FileData *fd, Library *lib, Main *bmain)
for (ob = bmain->objects.first; ob; ob = ob->id.next) {
/* fluid-sim stuff */
- FluidsimModifierData *fluidmd = (FluidsimModifierData *)modifiers_findByType(
+ FluidsimModifierData *fluidmd = (FluidsimModifierData *)BKE_modifiers_findby_type(
ob, eModifierType_Fluidsim);
if (fluidmd) {
fluidmd->fss->fmd = fluidmd;
@@ -918,8 +919,8 @@ void blo_do_versions_250(FileData *fd, Library *lib, Main *bmain)
if (do_gravity) {
for (md = ob->modifiers.first; md; md = md->next) {
- ClothModifierData *clmd = (ClothModifierData *)modifiers_findByType(ob,
- eModifierType_Cloth);
+ ClothModifierData *clmd = (ClothModifierData *)BKE_modifiers_findby_type(
+ ob, eModifierType_Cloth);
if (clmd) {
clmd->sim_parms->effector_weights->global_gravity = clmd->sim_parms->gravity[2] /
-9.81f;
@@ -1154,7 +1155,7 @@ void blo_do_versions_250(FileData *fd, Library *lib, Main *bmain)
}
for (ob = bmain->objects.first; ob; ob = ob->id.next) {
- MultiresModifierData *mmd = (MultiresModifierData *)modifiers_findByType(
+ MultiresModifierData *mmd = (MultiresModifierData *)BKE_modifiers_findby_type(
ob, eModifierType_Multires);
if (mmd) {
@@ -1625,7 +1626,7 @@ void blo_do_versions_250(FileData *fd, Library *lib, Main *bmain)
ArmatureModifierData *amd;
bArmature *arm = (bArmature *)blo_do_versions_newlibadr(fd, lib, parent->data);
- amd = (ArmatureModifierData *)modifier_new(eModifierType_Armature);
+ amd = (ArmatureModifierData *)BKE_modifier_new(eModifierType_Armature);
amd->object = ob->parent;
BLI_addtail((ListBase *)&ob->modifiers, amd);
amd->deformflag = arm->deformflag;
@@ -1634,7 +1635,7 @@ void blo_do_versions_250(FileData *fd, Library *lib, Main *bmain)
else if (parent->type == OB_LATTICE && ob->partype == PARSKEL) {
LatticeModifierData *lmd;
- lmd = (LatticeModifierData *)modifier_new(eModifierType_Lattice);
+ lmd = (LatticeModifierData *)BKE_modifier_new(eModifierType_Lattice);
lmd->object = ob->parent;
BLI_addtail((ListBase *)&ob->modifiers, lmd);
ob->partype = PAROBJECT;
@@ -1642,7 +1643,7 @@ void blo_do_versions_250(FileData *fd, Library *lib, Main *bmain)
else if (parent->type == OB_CURVE && ob->partype == PARCURVE) {
CurveModifierData *cmd;
- cmd = (CurveModifierData *)modifier_new(eModifierType_Curve);
+ cmd = (CurveModifierData *)BKE_modifier_new(eModifierType_Curve);
cmd->object = ob->parent;
BLI_addtail((ListBase *)&ob->modifiers, cmd);
ob->partype = PAROBJECT;
@@ -2352,4 +2353,32 @@ void do_versions_after_linking_250(Main *bmain)
}
FOREACH_NODETREE_END;
}
+
+ if (!MAIN_VERSION_ATLEAST(bmain, 258, 0)) {
+ /* Some very old (original comments claim pre-2.57) versioning that was wrongly done in
+ * lib-linking code... Putting it here just to be sure (this is also checked at runtime anyway
+ * by `action_idcode_patch_check`). */
+ ID *id;
+ FOREACH_MAIN_ID_BEGIN (bmain, id) {
+ AnimData *adt = BKE_animdata_from_id(id);
+ if (adt != NULL) {
+ /* Fix actions' id-roots (i.e. if they come from a pre 2.57 .blend file). */
+ if ((adt->action) && (adt->action->idroot == 0)) {
+ adt->action->idroot = GS(id->name);
+ }
+ if ((adt->tmpact) && (adt->tmpact->idroot == 0)) {
+ adt->tmpact->idroot = GS(id->name);
+ }
+
+ LISTBASE_FOREACH (NlaTrack *, nla_track, &adt->nla_tracks) {
+ LISTBASE_FOREACH (NlaStrip *, nla_strip, &nla_track->strips) {
+ if ((nla_strip->act) && (nla_strip->act->idroot == 0)) {
+ nla_strip->act->idroot = GS(id->name);
+ }
+ }
+ }
+ }
+ }
+ FOREACH_MAIN_ID_END;
+ }
}