diff --git a/Runtime/World/CScriptRipple.cpp b/Runtime/World/CScriptRipple.cpp index bb735c139..dae886bd5 100644 --- a/Runtime/World/CScriptRipple.cpp +++ b/Runtime/World/CScriptRipple.cpp @@ -14,23 +14,27 @@ CScriptRipple::CScriptRipple(TUniqueId uid, std::string_view name, const CEntity void CScriptRipple::Accept(IVisitor& visitor) { visitor.Visit(this); } void CScriptRipple::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CStateManager& mgr) { - if (msg == EScriptObjectMessage::Play) { - if (!GetActive()) - return; - - for (const SConnection& conn : x20_conns) { - if (conn.x0_state != EScriptObjectState::Active || conn.x4_msg != EScriptObjectMessage::Next) - continue; - - auto search = mgr.GetIdListForScript(conn.x8_objId); - for (auto it = search.first; it != search.second; ++it) { - if (TCastToPtr water = mgr.ObjectById(it->second)) - water->GetFluidPlane().AddRipple(x34_magnitude, GetUniqueId(), x38_center, *water, mgr); - } - } - + if (msg != EScriptObjectMessage::Play) { + CEntity::AcceptScriptMsg(msg, uid, mgr); return; } - CEntity::AcceptScriptMsg(msg, uid, mgr); + + if (!GetActive()) { + return; + } + + for (const SConnection& conn : x20_conns) { + if (conn.x0_state != EScriptObjectState::Active || conn.x4_msg != EScriptObjectMessage::Next) { + continue; + } + + const auto search = mgr.GetIdListForScript(conn.x8_objId); + for (auto it = search.first; it != search.second; ++it) { + if (const TCastToPtr water = mgr.ObjectById(it->second)) { + water->GetFluidPlane().AddRipple(x34_magnitude, GetUniqueId(), x38_center, *water, mgr); + } + } + } + } } // namespace urde