예제 #1
0
        /// <summary>
        /// Create an engine cvar to register
        /// </summary>
        /// <param name="name"></param>
        /// <param name="value"></param>
        /// <param name="flags"></param>
        internal EngineCVar(string name, string value, CVarFlags flags)
        {
            if (string.IsNullOrWhiteSpace(name))
            {
                throw new ArgumentException(nameof(name));
            }

            if (value == null)
            {
                throw new ArgumentNullException(nameof(value));
            }

            Data = (Native *)Marshal.AllocHGlobal(Marshal.SizeOf <Native>()).ToPointer();

            Data->name        = InterfaceUtils.AllocateUnmanagedString(name);
            Data->stringValue = InterfaceUtils.AllocateUnmanagedString(value);
            Data->flags       = flags;

            IsOwned = true;
        }