private void add_param_Click(object sender, EventArgs e)
 {
     addParamForm APF = new addParamForm();
     APF.Show();
     APF.FormClosing += (send, r) =>
     {
         if (addParamForm.save == true)
         {
             Parameter prm = new Parameter();
             prm.hash = addParamForm.nhash;
             prm.name = addParamForm.nName;
             prm.valueLength = addParamForm.vaLength;
             switch(prm.valueLength){
                 case 2:
                     prm.intValue = addParamForm.nValue;
                     break;
                 case 4:
                     if(addParamForm.vt == valueType.integer){
                         prm.intValue = addParamForm.nValue;
                     }
                     if(addParamForm.vt == valueType.dub){
                         prm.dubValue = addParamForm.dubVal;
                     }
                     if (addParamForm.vt == valueType.color){
                         prm.colorVal = addParamForm.c;
                     }
                     break;
                 case 12:
                     prm.vec = addParamForm.vec;
                     break;
             }
             prm.flag = addParamForm.vt;
             parameterVal.Add(prm);
             paramNum += 1;
             paramList.BeginUpdate();
             paramList.Nodes.Add(prm.name);
             paramList.EndUpdate();
         }
     };
 }
 //Create a new param object for adding params
 public static Parameter getParam(Int16 hsh, string nme, Int32 vlen, int val, Parameter prm, Color clor, math.vector v, valueType f)
 {
     prm.hash = hsh;
     prm.nb = 0;
     prm.name = nme;
     prm.flag = f;
     prm.valueLength = vlen;
     switch(vlen){
         case 2:
             prm.intValue = (Int16)val;
             break;
         case 4:
             if (f == valueType.integer){
                 prm.intValue = val;
             }
             if (f == valueType.dub) {
                 prm.dubValue = val;
             }
             if (f == valueType.color) {
                 prm.colorVal = clor;
             }
             break;
         case 12:
             f = valueType.vec;
             prm.vec = v;
             break;
     }
     return prm;
 }
 public static void clearParam(Parameter prm)
 {
     prm.hash = 0;
     prm.name = "";
     prm.valueLength = 0;
     prm.intValue = 0;
     prm.colorVal = Color.White;
     prm.vec = new math.vector(0,0,0);
     prm.dubValue = 0;
 }