Fixed asset name map conflict checks to be case-insensitive, new icons for export dialog disc filesystem tree, regenerated asset names

This commit is contained in:
Aruki 2017-02-08 12:40:09 -07:00
parent a7b0a2480c
commit 9b6376af68
8 changed files with 1779 additions and 1770 deletions

File diff suppressed because it is too large Load Diff

View File

@ -188,7 +188,7 @@ void GenerateAssetNames(CGameProject *pProj)
{ {
CMaterialPass *pPass = pMat->Pass(iPass); CMaterialPass *pPass = pMat->Pass(iPass);
if (pPass->Texture() && !pPass->Texture()->Entry()->IsCategorized()) if (pPass->Texture())
ApplyGeneratedName(pPass->Texture()->Entry(), WorldDir + L"sky\\sourceimages\\", pPass->Texture()->Entry()->Name()); ApplyGeneratedName(pPass->Texture()->Entry(), WorldDir + L"sky\\sourceimages\\", pPass->Texture()->Entry()->Name());
} }
} }

View File

@ -19,11 +19,6 @@ class CAssetNameMap
TWideString Directory; TWideString Directory;
CFourCC Type; // This is mostly just needed to verify no name conflicts CFourCC Type; // This is mostly just needed to verify no name conflicts
bool operator<(const SAssetNameInfo& rkOther) const
{
return FullPath() < rkOther.FullPath();
}
TWideString FullPath() const TWideString FullPath() const
{ {
return Directory + Name + L'.' + Type.ToString().ToUTF16(); return Directory + Name + L'.' + Type.ToString().ToUTF16();
@ -33,6 +28,16 @@ class CAssetNameMap
{ {
rArc << SERIAL_AUTO(Name) << SERIAL_AUTO(Directory) << SERIAL_AUTO(Type); rArc << SERIAL_AUTO(Name) << SERIAL_AUTO(Directory) << SERIAL_AUTO(Type);
} }
bool operator<(const SAssetNameInfo& rkOther) const
{
return FullPath().ToUpper() < rkOther.FullPath().ToUpper();
}
bool operator==(const SAssetNameInfo& rkOther) const
{
return FullPath().CaseInsensitiveCompare(rkOther.FullPath());
}
}; };
std::set<SAssetNameInfo> mUsedSet; // Used to prevent name conflicts std::set<SAssetNameInfo> mUsedSet; // Used to prevent name conflicts

View File

@ -22,7 +22,7 @@ CExportGameDialog::CExportGameDialog(const QString& rkIsoPath, const QString& rk
, mGame(eUnknownGame) , mGame(eUnknownGame)
, mRegion(eRegion_Unknown) , mRegion(eRegion_Unknown)
, mTrilogy(false) , mTrilogy(false)
, mExportSuccess(true) , mExportSuccess(false)
{ {
mpUI->setupUi(this); mpUI->setupUi(this);
@ -91,6 +91,7 @@ void CExportGameDialog::InitUI(QString ExportDir)
QTreeWidgetItem *pTreeRoot = new QTreeWidgetItem((QTreeWidgetItem*) nullptr, QStringList(QString("Disc"))); QTreeWidgetItem *pTreeRoot = new QTreeWidgetItem((QTreeWidgetItem*) nullptr, QStringList(QString("Disc")));
mpUI->DiscFstTreeWidget->addTopLevelItem(pTreeRoot); mpUI->DiscFstTreeWidget->addTopLevelItem(pTreeRoot);
RecursiveAddToTree(pkDiscRoot, pTreeRoot); RecursiveAddToTree(pkDiscRoot, pTreeRoot);
pTreeRoot->setIcon(0, QIcon(":/icons/Disc_16px.png"));
pTreeRoot->setExpanded(true); pTreeRoot->setExpanded(true);
// Signals and slots // Signals and slots
@ -269,8 +270,8 @@ void RecursiveAddToTree(const nod::Node *pkNode, QTreeWidgetItem *pParent)
}); });
// Add nodes to tree // Add nodes to tree
static const QIcon skFileIcon = QIcon(":/icons/New.png"); static const QIcon skFileIcon = QIcon(":/icons/New_16px.png");
static const QIcon skDirIcon = QIcon(":/icons/Open_24px.png"); static const QIcon skDirIcon = QIcon(":/icons/Open_16px.png");
for (auto Iter = NodeList.begin(); Iter != NodeList.end(); Iter++) for (auto Iter = NodeList.begin(); Iter != NodeList.end(); Iter++)
{ {

View File

@ -67,5 +67,8 @@
<file>icons/X_16px.png</file> <file>icons/X_16px.png</file>
<file>icons/ArrowL_16px.png</file> <file>icons/ArrowL_16px.png</file>
<file>icons/Search_16px.png</file> <file>icons/Search_16px.png</file>
<file>icons/Open_16px.png</file>
<file>icons/New_16px.png</file>
<file>icons/Disc_16px.png</file>
</qresource> </qresource>
</RCC> </RCC>

Binary file not shown.

After

Width:  |  Height:  |  Size: 281 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 B