function calculateTailgateData( number_steps, opening_angle, tailgate_angle_v1, tailgate_angle_v2, tailgate_angle_v3, tailgate_angle_v4, tailgate_angle_v5, tailgate2_angle_v1, tailgate2_angle_v2, tailgate2_angle_v3, tailgate2_angle_v4, tailgate2_angle_v5, tailgate2_angle_v6, tailgate2_angle_v7, tailgate2_angle_v8, tailgate2_angle_v9, tailgate2_angle_v10, tailgate2_angle_v11, tailgate2_angle_v12, tailgate2_angle_v13, tailgate2_angle_v14, tailgate2_angle_v15 ) local function fixFloatValue(val) if val == nil then val = 0.0 end return val end local openingAngle = 0.0 local trunkOpenMin = 0.0 local trunkOpenMax = 0.0 -- set min and max trunk opening values based on 5 or 15 step trunk version -- and choose proper angle value for current trunk state if number_steps == "step_5" then trunkOpenMin = fixFloatValue(tailgate_angle_v1) trunkOpenMax = fixFloatValue(tailgate_angle_v5) if opening_angle < 1.5 then openingAngle = fixFloatValue(tailgate_angle_v1) elseif opening_angle < 2.5 then openingAngle = fixFloatValue(tailgate_angle_v2) elseif opening_angle < 3.5 then openingAngle = fixFloatValue(tailgate_angle_v3) elseif opening_angle < 4.5 then openingAngle = fixFloatValue(tailgate_angle_v4) else openingAngle = fixFloatValue(tailgate_angle_v5) end else trunkOpenMin = fixFloatValue(tailgate2_angle_v1) trunkOpenMax = fixFloatValue(tailgate2_angle_v15) if opening_angle < 1.5 then openingAngle = fixFloatValue(tailgate2_angle_v1) elseif opening_angle < 2.5 then openingAngle = fixFloatValue(tailgate2_angle_v2) elseif opening_angle < 3.5 then openingAngle = fixFloatValue(tailgate2_angle_v3) elseif opening_angle < 4.5 then openingAngle = fixFloatValue(tailgate2_angle_v4) elseif opening_angle < 5.5 then openingAngle = fixFloatValue(tailgate2_angle_v5) elseif opening_angle < 6.5 then openingAngle = fixFloatValue(tailgate2_angle_v6) elseif opening_angle < 7.5 then openingAngle = fixFloatValue(tailgate2_angle_v7) elseif opening_angle < 8.5 then openingAngle = fixFloatValue(tailgate2_angle_v8) elseif opening_angle < 9.5 then openingAngle = fixFloatValue(tailgate2_angle_v9) elseif opening_angle < 10.5 then openingAngle = fixFloatValue(tailgate2_angle_v10) elseif opening_angle < 11.5 then openingAngle = fixFloatValue(tailgate2_angle_v11) elseif opening_angle < 12.5 then openingAngle = fixFloatValue(tailgate2_angle_v12) elseif opening_angle < 13.5 then openingAngle = fixFloatValue(tailgate2_angle_v13) elseif opening_angle < 14.5 then openingAngle = fixFloatValue(tailgate2_angle_v14) else openingAngle = fixFloatValue(tailgate2_angle_v15) end end return openingAngle, trunkOpenMin, trunkOpenMax end