diff --git a/lua/advdupe2/sv_misc.lua b/lua/advdupe2/sv_misc.lua index 30ff813..24f2d35 100644 --- a/lua/advdupe2/sv_misc.lua +++ b/lua/advdupe2/sv_misc.lua @@ -79,9 +79,8 @@ local function SavePositions( Constraint ) end end -local function monitorConstraint(name) - local oldFunc = constraint[name] - constraint[name] = function(...) +local function replaceConstraintFunction(oldFunc) + return function(...) local Constraint, b, c = oldFunc(...) if Constraint and Constraint:IsValid() then SavePositions(Constraint) @@ -89,6 +88,12 @@ local function monitorConstraint(name) return Constraint, b, c end end + +local function monitorConstraint(name) + local desc = duplicator.ConstraintType[name] + desc.Func = replaceConstraintFunction(desc.Func) + constraint[name] = replaceConstraintFunction(constraint[name]) +end monitorConstraint("AdvBallsocket") monitorConstraint("Axis") monitorConstraint("Ballsocket")