public void Set(DefinitionV2 other)
 {
     if (other != null)
     {
         m_ApiVersion        = AchievementsInterface.Definitionv2ApiLatest;
         AchievementId       = other.AchievementId;
         UnlockedDisplayName = other.UnlockedDisplayName;
         UnlockedDescription = other.UnlockedDescription;
         LockedDisplayName   = other.LockedDisplayName;
         LockedDescription   = other.LockedDescription;
         FlavorText          = other.FlavorText;
         UnlockedIconURL     = other.UnlockedIconURL;
         LockedIconURL       = other.LockedIconURL;
         IsHidden            = other.IsHidden;
         StatThresholds      = other.StatThresholds;
     }
 }
        /// <summary>
        /// Fetches an achievement definition from a given index.
        /// <seealso cref="Release" />
        /// </summary>
        /// <param name="options">Structure containing the index being accessed</param>
        /// <param name="outDefinition">The achievement definition for the given index, if it exists and is valid, use <see cref="Release" /> when finished</param>
        /// <returns>
        /// <see cref="Result.Success" /> if the information is available and passed out in OutDefinition
        /// <see cref="Result.InvalidParameters" /> if you pass a null pointer for the out parameter
        /// <see cref="Result.NotFound" /> if the achievement definition is not found
        /// <see cref="Result.InvalidProductUserID" /> if any of the userid options are incorrect
        /// </returns>
        public Result CopyAchievementDefinitionV2ByIndex(CopyAchievementDefinitionV2ByIndexOptions options, out DefinitionV2 outDefinition)
        {
            System.IntPtr optionsAddress = new System.IntPtr();
            Helper.TryMarshalSet <CopyAchievementDefinitionV2ByIndexOptionsInternal, CopyAchievementDefinitionV2ByIndexOptions>(ref optionsAddress, options);

            var outDefinitionAddress = System.IntPtr.Zero;

            var funcResult = EOS_Achievements_CopyAchievementDefinitionV2ByIndex(InnerHandle, optionsAddress, ref outDefinitionAddress);

            Helper.TryMarshalDispose(ref optionsAddress);

            if (Helper.TryMarshalGet <DefinitionV2Internal, DefinitionV2>(outDefinitionAddress, out outDefinition))
            {
                EOS_Achievements_DefinitionV2_Release(outDefinitionAddress);
            }

            return(funcResult);
        }