From 1027dda6f6d4bc451205b224ecc4853a41374d50 Mon Sep 17 00:00:00 2001 From: WarmUpTill Date: Sun, 21 Aug 2022 12:05:49 +0200 Subject: [PATCH] Enable inheriting from both MultiMacroRef* and MacroRef* Initially to be used only for the "Macro" condition type --- src/macro-core/macro-action-macro.hpp | 2 +- src/macro-core/macro-action-random.hpp | 2 +- src/macro-core/macro-action-sequence.hpp | 4 +++- src/macro-core/macro-action-timer.hpp | 2 +- src/macro-core/macro-action.hpp | 4 ++-- src/macro-core/macro-condition.hpp | 4 ++-- 6 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/macro-core/macro-action-macro.hpp b/src/macro-core/macro-action-macro.hpp index 0e00f2ee..0b8d7a40 100644 --- a/src/macro-core/macro-action-macro.hpp +++ b/src/macro-core/macro-action-macro.hpp @@ -14,7 +14,7 @@ enum class PerformMacroAction { class MacroActionMacro : public MacroRefAction { public: - MacroActionMacro(Macro *m) : MacroRefAction(m) {} + MacroActionMacro(Macro *m) : MacroAction(m), MacroRefAction(m) {} bool PerformAction(); void LogAction(); bool Save(obs_data_t *obj); diff --git a/src/macro-core/macro-action-random.hpp b/src/macro-core/macro-action-random.hpp index 868c08fb..6e901f2f 100644 --- a/src/macro-core/macro-action-random.hpp +++ b/src/macro-core/macro-action-random.hpp @@ -8,7 +8,7 @@ class MacroActionRandom : public MultiMacroRefAction { public: - MacroActionRandom(Macro *m) : MultiMacroRefAction(m) {} + MacroActionRandom(Macro *m) : MacroAction(m), MultiMacroRefAction(m) {} bool PerformAction(); void LogAction(); bool Save(obs_data_t *obj); diff --git a/src/macro-core/macro-action-sequence.hpp b/src/macro-core/macro-action-sequence.hpp index 29a730da..36961d86 100644 --- a/src/macro-core/macro-action-sequence.hpp +++ b/src/macro-core/macro-action-sequence.hpp @@ -9,7 +9,9 @@ class MacroActionSequence : public MultiMacroRefAction { public: - MacroActionSequence(Macro *m) : MultiMacroRefAction(m) {} + MacroActionSequence(Macro *m) : MacroAction(m), MultiMacroRefAction(m) + { + } bool PerformAction(); void LogAction(); bool Save(obs_data_t *obj); diff --git a/src/macro-core/macro-action-timer.hpp b/src/macro-core/macro-action-timer.hpp index 6913858f..023c745f 100644 --- a/src/macro-core/macro-action-timer.hpp +++ b/src/macro-core/macro-action-timer.hpp @@ -15,7 +15,7 @@ enum class TimerAction { class MacroActionTimer : public MacroRefAction { public: - MacroActionTimer(Macro *m) : MacroRefAction(m) {} + MacroActionTimer(Macro *m) : MacroAction(m), MacroRefAction(m) {} bool PerformAction(); void LogAction(); bool Save(obs_data_t *obj); diff --git a/src/macro-core/macro-action.hpp b/src/macro-core/macro-action.hpp index aa65a4a1..2543726d 100644 --- a/src/macro-core/macro-action.hpp +++ b/src/macro-core/macro-action.hpp @@ -11,14 +11,14 @@ public: virtual void LogAction(); }; -class MacroRefAction : public MacroAction { +class MacroRefAction : virtual public MacroAction { public: MacroRefAction(Macro *m) : MacroAction(m) {} void ResolveMacroRef(); MacroRef _macro; }; -class MultiMacroRefAction : public MacroAction { +class MultiMacroRefAction : virtual public MacroAction { public: MultiMacroRefAction(Macro *m) : MacroAction(m) {} void ResolveMacroRef(); diff --git a/src/macro-core/macro-condition.hpp b/src/macro-core/macro-condition.hpp index fd872bdd..be6767d2 100644 --- a/src/macro-core/macro-condition.hpp +++ b/src/macro-core/macro-condition.hpp @@ -80,14 +80,14 @@ private: DurationModifier _duration; }; -class MacroRefCondition : public MacroCondition { +class MacroRefCondition : virtual public MacroCondition { public: MacroRefCondition(Macro *m) : MacroCondition(m) {} void ResolveMacroRef(); MacroRef _macro; }; -class MultiMacroRefCondtition : public MacroCondition { +class MultiMacroRefCondtition : virtual public MacroCondition { public: MultiMacroRefCondtition(Macro *m) : MacroCondition(m) {} void ResolveMacroRef();