Beispiel #1
0
        public void InitConsole()
        {
            CConfigManager manager = CConfigManager.Instance;

            if (manager != null)
            {
                manager.RegisterInstance(this);
            }
        }
Beispiel #2
0
        public void Dispose()
        {
            CConfigManager manager = CConfigManager.Instance;

            if (manager != null)
            {
                manager.UnregisterInstance(this);
            }
        }
Beispiel #3
0
        private CEngine(Thread owningThread)
        {
            m_owningThread = owningThread;

            Config = new CConfigManager();
            Config.Init();
            Updater = new CEngineUpdater();

            CAssetRegistry.LoadInstance();
        }
        public static void ProcessConsoleString(string command)
        {
            if (string.IsNullOrWhiteSpace(command))
            {
                return;
            }

            bool          bInsideQuotation = false;
            char          currentCharacter = default(char);
            string        currentArgument  = "";
            List <string> arguments        = new List <string>();

            for (int i = 0; i < command.Length; i++)
            {
                currentCharacter = command[i];

                switch (currentCharacter)
                {
                case ' ':
                    if (!bInsideQuotation)
                    {
                        if (currentArgument.Length > 0)
                        {
                            arguments.Add(currentArgument);
                            currentArgument = "";
                        }
                    }
                    else
                    {
                        currentArgument += currentCharacter;
                    }
                    break;

                case '\"':
                    if (bInsideQuotation)
                    {
                        arguments.Add(currentArgument);
                        currentArgument = "";
                    }
                    bInsideQuotation = !bInsideQuotation;
                    break;

                default:
                    currentArgument += currentCharacter;
                    break;
                }
            }

            if (currentArgument.Length > 0)
            {
                arguments.Add(currentArgument);
            }

            CConfigManager manager = CConfigManager.Instance;

            //Search for CVar with first arguments name
            if (arguments.Count == 2)
            {
                if (manager.SetVariable(arguments[0], arguments[1]))
                {
                    return;
                }
            }

            //Try command instead
            string commandName = arguments[0];

            arguments.RemoveRange(0, 1);
            manager.InvokeConsoleCommand(commandName, arguments);
        }