We have assets that can become deprecated without us choosing that. This has happened multiple times and I’m beginning to suspect this code:
n BlueprintGeneratedClass.cpp at around 1979 there is :
if (Package && Package->HasAnyPackageFlags(PKG_ForDiffing))
{
// If this is a diff package, set class to deprecated. This happens here to make sure it gets hit in all load cases
ClassFlags |= CLASS_Deprecated;
}
Because you can see it’s a case where deprecated flag gets ORed on.
So is it possible that the diff flag is somehow getting set and saved into an asset? I noticed that this flag is not transient, so it would save. Then the next time we load this it gets marked deprecated? I haven’t spent time trying to debug this, but one of our other engineers has. He suggested an engine change to mark the diff flag as transient.
The only fix for our files right now is to stop the editor in C++ debugger, toggle that deprecated flag back off, and then resave.
Any thoughts? Thanks.