From b4d7d276a2d55dc87bc1f45d48e05dadf208740b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tam=C3=A1s=20B=C3=A1lint=20Misius?= Date: Fri, 15 Dec 2023 14:53:06 +0100 Subject: [PATCH] Complain when pasting save data with missing elements --- src/gui/game/GameModel.cpp | 4 ++++ src/gui/preview/PreviewView.cpp | 2 +- src/simulation/MissingElements.h | 5 +++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/gui/game/GameModel.cpp b/src/gui/game/GameModel.cpp index f59a36eca..dafd27094 100644 --- a/src/gui/game/GameModel.cpp +++ b/src/gui/game/GameModel.cpp @@ -1358,6 +1358,10 @@ void GameModel::SetPlaceSave(std::unique_ptr save) transformedPlaceSave.reset(); placeSave = std::move(save); notifyPlaceSaveChanged(); + if (placeSave && placeSave->missingElements) + { + Log("Paste content has missing custom elements", false); + } } void GameModel::TransformPlaceSave(Mat2 transform, Vec2 nudge) diff --git a/src/gui/preview/PreviewView.cpp b/src/gui/preview/PreviewView.cpp index 5c322d05d..fcc68cb4a 100644 --- a/src/gui/preview/PreviewView.cpp +++ b/src/gui/preview/PreviewView.cpp @@ -575,7 +575,7 @@ void PreviewView::NotifySaveChanged(PreviewModel * sender) savePreview = SaveRenderer::Ref().Render(save->GetGameSave(), false, true); if (savePreview) savePreview->ResizeToFit(RES / 2, true); - missingElementsButton->Visible = missingElements.identifiers.size() || missingElements.ids.size(); + missingElementsButton->Visible = missingElements; UpdateLoadStatus(); } else if (!sender->GetCanOpen()) diff --git a/src/simulation/MissingElements.h b/src/simulation/MissingElements.h index 6d6980c4a..1122e51d8 100644 --- a/src/simulation/MissingElements.h +++ b/src/simulation/MissingElements.h @@ -7,4 +7,9 @@ struct MissingElements { std::map identifiers; std::set ids; + + operator bool() const + { + return identifiers.size() || ids.size(); + } };