public void AssignDynamicItems(DeviceCls dev, DeviceOptionParameter devOptionRef, string nodeText)
 {
     // using the public property to ensure the complete processing of the assignment
     NodeText        = nodeText; // must be first - the content is used later for DeviceOptionRef assignment
     GameDevice      = dev;
     DeviceoptionRef = devOptionRef;
 }
        /// <summary>
        /// Check clone against This
        /// </summary>
        /// <param name="clone"></param>
        /// <returns>True if the clone is identical but not a shallow copy</returns>
        internal bool CheckClone(DeviceOptionParameter clone)
        {
            bool ret = true;

            // object vars first
            ret &= (this.m_deviceName == clone.m_deviceName);   // immutable string - shallow copy is OK
            ret &= (this.m_deviceGUID == clone.m_deviceGUID);   // immutable string - shallow copy is OK
            ret &= (this.m_deviceClass == clone.m_deviceClass); // immutable string - shallow copy is OK
            ret &= (this.m_deviceNumber == clone.m_deviceNumber);
            ret &= (this.m_cmdCtrl == clone.m_cmdCtrl);         // immutable string - shallow copy is OK
            ret &= (this.m_doID == clone.m_doID);               // immutable string - shallow copy is OK
            ret &= (this.m_action == clone.m_action);           // immutable string - shallow copy is OK
            ret &= (this.m_deadzoneEnabled == clone.m_deadzoneEnabled);
            ret &= (this.m_deadzone == clone.m_deadzone);       // immutable string - shallow copy is OK
            ret &= (this.m_saturationSupported == clone.m_saturationSupported);
            ret &= (this.m_saturationEnabled == clone.m_saturationEnabled);
            ret &= (this.m_saturation == clone.m_saturation); // immutable string - shallow copy is OK
            return(ret);
        }