From 099d033e04293e1f20758946da43723400e795aa Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Tue, 9 Sep 2025 13:33:02 +0200 Subject: [PATCH] set_pre_reaction for generic parameter --- config.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/config.cpp b/config.cpp index ca629f5e..0d673077 100644 --- a/config.cpp +++ b/config.cpp @@ -117,6 +117,7 @@ struct parameter : public std::enable_shared_from_this { parameter *set_sets(const reaction_t& s) { sets = s; return this; } parameter *set_extra(const reaction_t& r); parameter *set_reaction(const reaction_t& r); + parameter *set_pre_reaction(const reaction_t& r); virtual ~parameter() = default; virtual bool load_from_animation(const string& s) { load(s); return false; @@ -130,6 +131,7 @@ struct parameter : public std::enable_shared_from_this { virtual void set_cld_raw(cld x) { throw param_exception("parameter has no complex value", this); } virtual void set_cld(cld value) { auto bak = get_cld(); + if(value != bak && pre_reaction) pre_reaction(); set_cld_raw(value); if(value != bak && reaction) reaction(); } @@ -165,6 +167,10 @@ parameter *parameter::set_reaction(const reaction_t& r) { reaction = r; return this; } +parameter *parameter::set_pre_reaction(const reaction_t& r) { + pre_reaction = r; return this; + } + #if HDR using paramlist = map>; #endif