From 32c79645035fcea254d88df4a3249e2fbdbc1669 Mon Sep 17 00:00:00 2001 From: Leonardo Zide Date: Sat, 13 Mar 2021 20:01:25 -0800 Subject: [PATCH] Load official parts before unofficial. --- common/lc_library.cpp | 58 +++++++++++++++++-------------------------- 1 file changed, 23 insertions(+), 35 deletions(-) diff --git a/common/lc_library.cpp b/common/lc_library.cpp index 050dca22..988be1ae 100644 --- a/common/lc_library.cpp +++ b/common/lc_library.cpp @@ -1261,21 +1261,18 @@ bool lcPiecesLibrary::LoadPieceData(PieceInfo* Info) char FileName[LC_MAXPATH]; lcDiskFile PieceFile; - if (mHasUnofficial) + sprintf(FileName, "parts/%s", Info->mFileName); + PieceFile.SetFileName(mLibraryDir.absoluteFilePath(QLatin1String(FileName))); + if (PieceFile.Open(QIODevice::ReadOnly)) + Loaded = MeshLoader.LoadMesh(PieceFile, LC_MESHDATA_SHARED); + + if (mHasUnofficial && !Loaded) { sprintf(FileName, "unofficial/parts/%s", Info->mFileName); PieceFile.SetFileName(mLibraryDir.absoluteFilePath(QLatin1String(FileName))); if (PieceFile.Open(QIODevice::ReadOnly)) Loaded = MeshLoader.LoadMesh(PieceFile, LC_MESHDATA_SHARED); } - - if (!Loaded) - { - sprintf(FileName, "parts/%s", Info->mFileName); - PieceFile.SetFileName(mLibraryDir.absoluteFilePath(QLatin1String(FileName))); - if (PieceFile.Open(QIODevice::ReadOnly)) - Loaded = MeshLoader.LoadMesh(PieceFile, LC_MESHDATA_SHARED); - } } if (mCancelLoading) @@ -1338,20 +1335,17 @@ void lcPiecesLibrary::GetPieceFile(const char* PieceName, std::functionmFileName); + IncludeFile.SetFileName(mLibraryDir.absoluteFilePath(QLatin1String(FileName))); + Found = IncludeFile.Open(QIODevice::ReadOnly); + + if (mHasUnofficial && !Found) { sprintf(FileName, "unofficial/parts/%s", Info->mFileName); IncludeFile.SetFileName(mLibraryDir.absoluteFilePath(QLatin1String(FileName))); Found = IncludeFile.Open(QIODevice::ReadOnly); } - if (!Found) - { - sprintf(FileName, "parts/%s", Info->mFileName); - IncludeFile.SetFileName(mLibraryDir.absoluteFilePath(QLatin1String(FileName))); - Found = IncludeFile.Open(QIODevice::ReadOnly); - } - if (Found) Callback(IncludeFile); } @@ -1371,7 +1365,12 @@ void lcPiecesLibrary::GetPieceFile(const char* PieceName, std::function(ZipFileType)]->ExtractFile(IncludeFileName, IncludeFile); }; - if (mHasUnofficial) + Found = LoadIncludeFile("ldraw/parts/%s", lcZipFileType::Official); + + if (!Found) + Found = LoadIncludeFile("ldraw/p/%s", lcZipFileType::Official); + + if (mHasUnofficial && !Found) { Found = LoadIncludeFile("parts/%s", lcZipFileType::Unofficial); @@ -1379,14 +1378,6 @@ void lcPiecesLibrary::GetPieceFile(const char* PieceName, std::function