I am trying to convert a project I have from UE 4.23 to UE 5.1 and most stuff seems to be working correctly, however I had some functions in C++ used to save/load level file data from a basic level editor I made, and in UE 5.1 I cannot import and use those files because I saved them with a ‘.lvl’ extension and it always says it is unrecognized. Any ideas how to convert these data files into a useable format in UE 5.1 so I don’t lose them?
This is the code I was using to save them:
#define LEVEL_EXT ".lvl"
#define LEVEL_DIR "LevelFiles"
void ULevelDatav2::SaveGame(TArray<ABlock*> Actors, FString levelID) {
TArray<FActorSaveData> SavedActors;
for (auto Actor : Actors) {
FActorSaveData ActorRecord;
ActorRecord.ActorName = FName(*Actor->GetName());
ActorRecord.ActorClass = Actor->GetClass()->GetPathName();
ActorRecord.ActorTransform = Actor->GetTransform();
FMemoryWriter MemoryWriter(ActorRecord.ActorData, true);
FSaveGameArchive Ar(MemoryWriter);
Actor->Serialize(Ar);
SavedActors.Add(ActorRecord);
//ISaveableActorInterface::Execute_ActorSaveDataSaved(Actor);
}
FSaveGameData SaveGameData;
SaveGameData.GameID = *FString(levelID);
SaveGameData.Timestamp = FDateTime::Now();
SaveGameData.SavedActors = SavedActors;
FBufferArchive BinaryData;
BinaryData << SaveGameData;
FString filename = FPaths::Combine(GetLevelSaveLocation(), levelID + LEVEL_EXT);
if (FFileHelper::SaveArrayToFile(BinaryData, filename.GetCharArray().GetData()))
{
UE_LOG(LogTemp, Warning, TEXT("Save Success! %s"), *FString(filename));
}
else
{
UE_LOG(LogTemp, Warning, TEXT("Save Failed!"));
}
BinaryData.FlushCache();
BinaryData.Empty();
}