mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-06-10 23:08:05 -05:00
Add base for menu eventhandlerset parsing
This commit is contained in:
@ -0,0 +1,19 @@
|
||||
#include "CommonEventHandlerCondition.h"
|
||||
|
||||
using namespace menu;
|
||||
|
||||
CommonEventHandlerCondition::CommonEventHandlerCondition()
|
||||
= default;
|
||||
|
||||
CommonEventHandlerCondition::CommonEventHandlerCondition(std::unique_ptr<ICommonExpression> condition, std::unique_ptr<CommonEventHandlerSet> conditionElements,
|
||||
std::unique_ptr<CommonEventHandlerSet> elseElements)
|
||||
: m_condition(std::move(condition)),
|
||||
m_condition_elements(std::move(conditionElements)),
|
||||
m_else_elements(std::move(elseElements))
|
||||
{
|
||||
}
|
||||
|
||||
CommonEventHandlerElementType CommonEventHandlerCondition::GetType()
|
||||
{
|
||||
return CommonEventHandlerElementType::CONDITION;
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
#pragma once
|
||||
|
||||
#include <memory>
|
||||
|
||||
#include "CommonEventHandlerSet.h"
|
||||
#include "ICommonEventHandlerElement.h"
|
||||
#include "Parsing/Menu/Domain/Expression/ICommonExpression.h"
|
||||
|
||||
namespace menu
|
||||
{
|
||||
class CommonEventHandlerCondition final : public ICommonEventHandlerElement
|
||||
{
|
||||
public:
|
||||
std::unique_ptr<ICommonExpression> m_condition;
|
||||
std::unique_ptr<CommonEventHandlerSet> m_condition_elements;
|
||||
std::unique_ptr<CommonEventHandlerSet> m_else_elements;
|
||||
|
||||
CommonEventHandlerCondition();
|
||||
explicit CommonEventHandlerCondition(std::unique_ptr<ICommonExpression> condition, std::unique_ptr<CommonEventHandlerSet> conditionElements,
|
||||
std::unique_ptr<CommonEventHandlerSet> elseElements);
|
||||
|
||||
CommonEventHandlerElementType GetType() override;
|
||||
};
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
#include "CommonEventHandlerScript.h"
|
||||
|
||||
using namespace menu;
|
||||
|
||||
CommonEventHandlerScript::CommonEventHandlerScript()
|
||||
= default;
|
||||
|
||||
CommonEventHandlerScript::CommonEventHandlerScript(std::string script)
|
||||
: m_script(std::move(script))
|
||||
{
|
||||
}
|
||||
|
||||
CommonEventHandlerElementType CommonEventHandlerScript::GetType()
|
||||
{
|
||||
return CommonEventHandlerElementType::SCRIPT;
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
|
||||
#include "ICommonEventHandlerElement.h"
|
||||
|
||||
namespace menu
|
||||
{
|
||||
class CommonEventHandlerScript final : public ICommonEventHandlerElement
|
||||
{
|
||||
public:
|
||||
std::string m_script;
|
||||
|
||||
CommonEventHandlerScript();
|
||||
explicit CommonEventHandlerScript(std::string script);
|
||||
|
||||
CommonEventHandlerElementType GetType() override;
|
||||
};
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
#include "CommonEventHandlerSet.h"
|
||||
|
||||
using namespace menu;
|
||||
|
||||
CommonEventHandlerSet::CommonEventHandlerSet()
|
||||
= default;
|
||||
|
||||
CommonEventHandlerSet::CommonEventHandlerSet(std::vector<std::unique_ptr<ICommonEventHandlerElement>> elements)
|
||||
: m_elements(std::move(elements))
|
||||
{
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
#pragma once
|
||||
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
|
||||
#include "ICommonEventHandlerElement.h"
|
||||
|
||||
namespace menu
|
||||
{
|
||||
class CommonEventHandlerSet
|
||||
{
|
||||
public:
|
||||
std::vector<std::unique_ptr<ICommonEventHandlerElement>> m_elements;
|
||||
|
||||
CommonEventHandlerSet();
|
||||
explicit CommonEventHandlerSet(std::vector<std::unique_ptr<ICommonEventHandlerElement>> elements);
|
||||
};
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
#include "CommonEventHandlerSetLocalVar.h"
|
||||
|
||||
using namespace menu;
|
||||
|
||||
CommonEventHandlerSetLocalVar::CommonEventHandlerSetLocalVar()
|
||||
= default;
|
||||
|
||||
CommonEventHandlerSetLocalVar::CommonEventHandlerSetLocalVar(std::string varName, std::unique_ptr<ICommonExpression> value)
|
||||
: m_var_name(std::move(varName)),
|
||||
m_value(std::move(value))
|
||||
{
|
||||
}
|
||||
|
||||
CommonEventHandlerElementType CommonEventHandlerSetLocalVar::GetType()
|
||||
{
|
||||
return CommonEventHandlerElementType::SET_LOCAL_VAR;
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
#pragma once
|
||||
#include <memory>
|
||||
#include <string>
|
||||
|
||||
#include "ICommonEventHandlerElement.h"
|
||||
#include "Parsing/Menu/Domain/Expression/ICommonExpression.h"
|
||||
|
||||
namespace menu
|
||||
{
|
||||
class CommonEventHandlerSetLocalVar final : public ICommonEventHandlerElement
|
||||
{
|
||||
public:
|
||||
std::string m_var_name;
|
||||
std::unique_ptr<ICommonExpression> m_value;
|
||||
|
||||
CommonEventHandlerSetLocalVar();
|
||||
CommonEventHandlerSetLocalVar(std::string varName, std::unique_ptr<ICommonExpression> value);
|
||||
|
||||
CommonEventHandlerElementType GetType() override;
|
||||
};
|
||||
}
|
@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
namespace menu
|
||||
{
|
||||
enum class CommonEventHandlerElementType
|
||||
{
|
||||
SCRIPT,
|
||||
CONDITION,
|
||||
SET_LOCAL_VAR
|
||||
};
|
||||
|
||||
class ICommonEventHandlerElement
|
||||
{
|
||||
protected:
|
||||
ICommonEventHandlerElement() = default;
|
||||
|
||||
public:
|
||||
virtual ~ICommonEventHandlerElement() = default;
|
||||
ICommonEventHandlerElement(const ICommonEventHandlerElement& other) = default;
|
||||
ICommonEventHandlerElement(ICommonEventHandlerElement&& other) noexcept = default;
|
||||
ICommonEventHandlerElement& operator=(const ICommonEventHandlerElement& other) = default;
|
||||
ICommonEventHandlerElement& operator=(ICommonEventHandlerElement&& other) noexcept = default;
|
||||
|
||||
virtual CommonEventHandlerElementType GetType() = 0;
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user