Пример #1
0
        private bool GetVariable(void *data)
        {
            if (data == null)
            {
                Logger.Instance.LogWarning($"data is null.", nameof(retro_environment.RETRO_ENVIRONMENT_GET_VARIABLE));
                return(false);
            }

            retro_variable *outVariable = (retro_variable *)data;

            if (outVariable->key == IntPtr.Zero)
            {
                return(false);
            }

            string key = Marshal.PtrToStringAnsi(outVariable->key);

            if (_wrapper.Core.GameOptions == null)
            {
                Logger.Instance.LogWarning($"Core didn't set its options. Requested key: {key}", nameof(retro_environment.RETRO_ENVIRONMENT_GET_VARIABLE));
                return(false);
            }

            CoreOption coreOption = _wrapper.Core.GameOptions[key];

            if (coreOption == null)
            {
                Logger.Instance.LogWarning($"Core option '{key}' not found.", nameof(retro_environment.RETRO_ENVIRONMENT_GET_VARIABLE));
                return(false);
            }

            outVariable->value = (IntPtr)_wrapper.GetUnsafeString(coreOption.CurrentValue);
            return(true);
        }
Пример #2
0
 public SerializableCoreOptions(CoreOptions options)
 {
     Options = new string[options.Count];
     for (int i = 0; i < options.Count; ++i)
     {
         CoreOption option = options[i];
         Options[i] = $"{option.Key};{option.Description};{option.CurrentValue};{string.Join("|", option.PossibleValues)};";
     }
 }