Fix: Reorder versioning of legacy Grease Pencil and Actions

The versioning of legacy-to-modern Grease Pencil is using slotted
Actions (because that's the current animation API), and therefore
assumes that the Action & Slot assignments have been versioned as well.
The latter now actually happens before the former, so that assumption is
now actually valid.

Pull Request: https://projects.blender.org/blender/blender/pulls/135466
This commit is contained in:
Sybren A. Stüvel
2025-03-06 14:12:17 +01:00
parent f89728a5e4
commit 16d819caa9

View File

@@ -678,13 +678,14 @@ void do_versions_after_setup(Main *new_bmain,
BKE_main_mesh_legacy_convert_auto_smooth(*new_bmain);
}
if (!blendfile_or_libraries_versions_atleast(new_bmain, 404, 2)) {
/* Version all the action assignments of just-versioned datablocks. This MUST happen before the
* GreasePencil conversion, as that assumes the Action Slots have already been assigned. */
blender::animrig::versioning::convert_legacy_action_assignments(*new_bmain, reports->reports);
}
if (!blendfile_or_libraries_versions_atleast(new_bmain, 403, 3)) {
/* Convert all the legacy grease pencil objects. This does not touch annotations. */
blender::bke::greasepencil::convert::legacy_main(*new_bmain, lapp_context, *reports);
}
if (!blendfile_or_libraries_versions_atleast(new_bmain, 404, 2)) {
/* Version all the action assignments of just-versioned datablocks. */
blender::animrig::versioning::convert_legacy_action_assignments(*new_bmain, reports->reports);
}
}