Fix bug in package loading

This commit is contained in:
2026-04-04 21:07:13 -04:00
parent fb5b774bfe
commit bd138e2790

View File

@@ -139,18 +139,16 @@ WingFetcher& WingFetcher::Asset(const FString& PackagePath)
return SetError(); return SetError();
} }
// Check if the package exists before calling LoadObject, because UPackage* Package = LoadPackage(nullptr, *PackagePath, LOAD_NoWarn);
// LoadObject logs its own errors when the package doesn't exist. if (!Package)
FString PackageName = FPackageName::ObjectPathToPackageName(PackagePath);
if (!FPackageName::DoesPackageExist(PackageName))
{ {
Errors.Printf(TEXT("ERROR: Asset '%s' does not exist.\n"), *PackagePath); Errors.Printf(TEXT("ERROR: Asset '%s' does not exist.\n"), *PackagePath);
return SetError(); return SetError();
} }
SetObj(LoadObject<UObject>(nullptr, *PackagePath)); SetObj(Package->FindAssetInPackage());
if (!Obj) if (!Obj)
{ {
Errors.Printf(TEXT("ERROR: Could not load asset '%s'\n"), *PackagePath); Errors.Printf(TEXT("ERROR: Could not find asset in package '%s'\n"), *PackagePath);
return SetError(); return SetError();
} }