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();