/* * GDevelop Core * Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights * reserved. This project is released under the MIT License. */ #include "StandardEvent.h" #include "GDCore/CommonTools.h" #include "GDCore/Events/CodeGeneration/EventsCodeGenerationContext.h" #include "GDCore/Events/CodeGeneration/EventsCodeGenerator.h" #include "GDCore/Events/Serialization.h" #include "GDCore/Serialization/SerializerElement.h" using namespace std; namespace gd { StandardEvent::StandardEvent() : BaseEvent(), variables(gd::VariablesContainer::SourceType::Local) {} StandardEvent::~StandardEvent(){}; vector StandardEvent::GetAllConditionsVectors() const { vector allConditions; allConditions.push_back(&conditions); return allConditions; } vector StandardEvent::GetAllActionsVectors() const { vector allActions; allActions.push_back(&actions); return allActions; } vector StandardEvent::GetAllConditionsVectors() { vector allConditions; allConditions.push_back(&conditions); return allConditions; } vector StandardEvent::GetAllActionsVectors() { vector allActions; allActions.push_back(&actions); return allActions; } void StandardEvent::SerializeTo(SerializerElement& element) const { gd::EventsListSerialization::SerializeInstructionsTo( conditions, element.AddChild("conditions")); gd::EventsListSerialization::SerializeInstructionsTo( actions, element.AddChild("actions")); if (!events.IsEmpty()) gd::EventsListSerialization::SerializeEventsTo(events, element.AddChild("events")); if (HasVariables()) { variables.SerializeTo(element.AddChild("variables")); } } void StandardEvent::UnserializeFrom(gd::Project& project, const SerializerElement& element) { gd::EventsListSerialization::UnserializeInstructionsFrom( project, conditions, element.GetChild("conditions", 0, "Conditions")); gd::EventsListSerialization::UnserializeInstructionsFrom( project, actions, element.GetChild("actions", 0, "Actions")); events.Clear(); if (element.HasChild("events", "Events")) { gd::EventsListSerialization::UnserializeEventsFrom( project, events, element.GetChild("events", 0, "Events")); } variables.Clear(); if (element.HasChild("variables")) { variables.UnserializeFrom(element.GetChild("variables")); } } } // namespace gd