From 26485b1151487ab27b3799ea4fd100c8820bf58e Mon Sep 17 00:00:00 2001 From: parax0 Date: Mon, 18 Jan 2016 16:10:26 -0700 Subject: [PATCH] Changed double-click behavior in the POI list dialog, readded and fixed error message for incorrect struct property count in SCLY --- src/Core/Resource/Factory/CScriptLoader.cpp | 16 +++++++++++++--- src/Core/Resource/Script/IPropertyTemplate.cpp | 18 ++++++++++++++---- src/Editor/WorldEditor/CPoiListDialog.h | 10 +--------- 3 files changed, 28 insertions(+), 16 deletions(-) diff --git a/src/Core/Resource/Factory/CScriptLoader.cpp b/src/Core/Resource/Factory/CScriptLoader.cpp index 14361dec..2315bcea 100644 --- a/src/Core/Resource/Factory/CScriptLoader.cpp +++ b/src/Core/Resource/Factory/CScriptLoader.cpp @@ -167,7 +167,12 @@ void CScriptLoader::LoadStructMP1(IInputStream& SCLY, CPropertyStruct *pStruct, Version = pTemp->VersionForPropertyCount(FilePropCount); if (Version == -1) - Log::FileWarning(SCLY.GetSourceString(), StructStart, "Struct \"" + pTemp->Name() + "\" template prop count doesn't match file"); + { + TIDString IDString = pTemp->IDString(true); + if (!IDString.IsEmpty()) IDString = " (" + IDString + ")"; + + Log::FileWarning(SCLY.GetSourceString(), StructStart, "Struct \"" + pTemp->Name() + "\"" + IDString + " template prop count doesn't match file"); + } } // Parse properties @@ -260,8 +265,13 @@ void CScriptLoader::LoadStructMP2(IInputStream& SCLY, CPropertyStruct *pStruct, u16 NumProperties = SCLY.ReadShort(); Version = pTemp->VersionForPropertyCount(NumProperties); - //if ((NumProperties != PropCount) && (mVersion < eReturns)) - // Log::FileWarning(SCLY.GetSourceString(), SCLY.Tell() - 2, "Struct \"" + pTemp->Name() + "\" template property count doesn't match file"); + if ((NumProperties != PropCount) && (mVersion < eReturns)) + { + TIDString IDString = pTemp->IDString(true); + if (!IDString.IsEmpty()) IDString = " (" + IDString + ")"; + + Log::FileWarning(SCLY.GetSourceString(), StructStart, "Struct \"" + pTemp->Name() + "\"" + IDString + " template prop count doesn't match file"); + } PropCount = NumProperties; } diff --git a/src/Core/Resource/Script/IPropertyTemplate.cpp b/src/Core/Resource/Script/IPropertyTemplate.cpp index 30178f77..e31f1665 100644 --- a/src/Core/Resource/Script/IPropertyTemplate.cpp +++ b/src/Core/Resource/Script/IPropertyTemplate.cpp @@ -16,10 +16,20 @@ bool IPropertyTemplate::IsInVersion(u32 Version) const TIDString IPropertyTemplate::IDString(bool FullPath) const { - TIDString out; - if (mpParent && FullPath) out = mpParent->IDString(true) + ":"; - out += TIDString::HexString(mID, true, true, 8); - return out; + if (mID != 0xFFFFFFFF) + { + TIDString out; + + if (mpParent && FullPath) + { + out = mpParent->IDString(true); + if (!out.IsEmpty()) out += ":"; + } + + out += TIDString::HexString(mID, true, true, 8); + return out; + } + else return ""; } CStructTemplate* IPropertyTemplate::RootStruct() diff --git a/src/Editor/WorldEditor/CPoiListDialog.h b/src/Editor/WorldEditor/CPoiListDialog.h index 92e2a809..cc7d4c21 100644 --- a/src/Editor/WorldEditor/CPoiListDialog.h +++ b/src/Editor/WorldEditor/CPoiListDialog.h @@ -111,7 +111,7 @@ public: mpListView->setSelectionMode(QListView::ExtendedSelection); mpListView->setVerticalScrollMode(QListView::ScrollPerPixel); - connect(mpListView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(OnDoubleClickItem(QModelIndex))); + connect(mpListView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(OnOkClicked())); connect(mpButtonBox, SIGNAL(accepted()), this, SLOT(OnOkClicked())); connect(mpButtonBox, SIGNAL(rejected()), this, SLOT(OnCancelClicked())); } @@ -122,14 +122,6 @@ public: } public slots: - void OnDoubleClickItem(QModelIndex Index) - { - QModelIndex SourceIndex = mModel.mapToSource(Index); - mSelection.clear(); - mSelection << mSourceModel.PoiForIndex(SourceIndex); - close(); - } - void OnOkClicked() { QModelIndexList SelectedIndices = mpListView->selectionModel()->selectedRows();