mirror of
https://github.com/Heretek-AI/GDevelop.git
synced 2026-07-24 11:55:28 -04:00
a8559bfbbc
* Update all CMakeLists of extensions to use clang-format * Run clang-format on all Extensions * Update GDCore CMakeLists.txt to add clang-format * Run clang-format on GDCore files * Update GDJS and GDCpp CMakeLists.txt to add clang-format * Run clang-format on GDCpp and GDJS files
81 lines
2.7 KiB
C++
81 lines
2.7 KiB
C++
/*
|
|
* GDevelop Core
|
|
* Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights
|
|
* reserved. This project is released under the MIT License.
|
|
*/
|
|
#include "ProjectStripper.h"
|
|
#include "GDCore/Project/ExternalEvents.h"
|
|
#include "GDCore/Project/ExternalLayout.h"
|
|
#include "GDCore/Project/Layout.h"
|
|
#include "GDCore/Project/Project.h"
|
|
|
|
namespace gd {
|
|
|
|
void GD_CORE_API ProjectStripper::StripProjectForExport(gd::Project& project) {
|
|
project.GetObjectGroups().Clear();
|
|
while (project.GetExternalEventsCount() > 0)
|
|
project.RemoveExternalEvents(project.GetExternalEvents(0).GetName());
|
|
|
|
for (unsigned int i = 0; i < project.GetLayoutsCount(); ++i) {
|
|
project.GetLayout(i).GetObjectGroups().Clear();
|
|
project.GetLayout(i).GetEvents().Clear();
|
|
}
|
|
}
|
|
|
|
void GD_CORE_API ProjectStripper::StripProjectForLayoutEdition(
|
|
gd::Project& project, const gd::String& layoutName) {
|
|
while (project.GetExternalEventsCount() > 0)
|
|
project.RemoveExternalEvents(project.GetExternalEvents(0).GetName());
|
|
|
|
for (unsigned int i = 0; i < project.GetLayoutsCount(); ++i) {
|
|
auto& layout = project.GetLayout(i);
|
|
if (layoutName == layout.GetName()) continue;
|
|
|
|
project.GetLayout(i).GetEvents().Clear();
|
|
project.GetLayout(i).GetInitialInstances().Clear();
|
|
}
|
|
|
|
for (unsigned int i = 0; i < project.GetExternalEventsCount(); ++i) {
|
|
project.GetExternalEvents(i).GetEvents().Clear();
|
|
}
|
|
|
|
for (unsigned int i = 0; i < project.GetExternalLayoutsCount(); ++i) {
|
|
project.GetExternalLayout(i).GetInitialInstances().Clear();
|
|
}
|
|
}
|
|
|
|
void GD_CORE_API ProjectStripper::StripProjectForExternalLayoutEdition(
|
|
gd::Project& project, const gd::String& externalLayoutName) {
|
|
while (project.GetExternalEventsCount() > 0)
|
|
project.RemoveExternalEvents(project.GetExternalEvents(0).GetName());
|
|
|
|
gd::String associatedLayoutName;
|
|
if (project.HasExternalLayoutNamed(externalLayoutName)) {
|
|
associatedLayoutName =
|
|
project.GetExternalLayout(externalLayoutName).GetAssociatedLayout();
|
|
}
|
|
|
|
for (unsigned int i = 0; i < project.GetLayoutsCount(); ++i) {
|
|
auto& layout = project.GetLayout(i);
|
|
if (!associatedLayoutName.empty() &&
|
|
associatedLayoutName == layout.GetName())
|
|
continue;
|
|
|
|
project.GetLayout(i).GetEvents().Clear();
|
|
project.GetLayout(i).GetInitialInstances().Clear();
|
|
}
|
|
|
|
for (unsigned int i = 0; i < project.GetExternalEventsCount(); ++i) {
|
|
project.GetExternalEvents(i).GetEvents().Clear();
|
|
}
|
|
|
|
for (unsigned int i = 0; i < project.GetExternalLayoutsCount(); ++i) {
|
|
auto& externalLayout = project.GetExternalLayout(i);
|
|
if (externalLayoutName == externalLayout.GetName()) continue;
|
|
|
|
externalLayout.GetInitialInstances().Clear();
|
|
}
|
|
}
|
|
|
|
} // namespace gd
|