Example #1
0
            protected void SetupProcedure(Element proc, string returnType, string script, string name, string parameters)
            {
                string[] paramNames = null;

                if (!string.IsNullOrEmpty(parameters))
                {
                    paramNames = parameters.Split(m_delimiters, StringSplitOptions.None).Select(p => p.Trim()).ToArray();
                }

                Type returns = null;

                if (!string.IsNullOrEmpty(returnType))
                {
                    try
                    {
                        returns = WorldModel.ConvertTypeNameToType(returnType);
                    }
                    catch (ArgumentOutOfRangeException)
                    {
                        RaiseError(string.Format("Unrecognised function return type '{0}' in '{1}'", returnType, name));
                    }
                }

                proc.Fields[FieldDefinitions.ParamNames] = new QuestList <string>(paramNames);
                if (returns != null)
                {
                    proc.Fields[FieldDefinitions.ReturnType] = WorldModel.ConvertTypeToTypeName(returns);
                }

                proc.Fields.LazyFields.AddScript(FieldDefinitions.Script.Property, script);
            }
Example #2
0
        void Variables_ResolveFunction(object sender, ResolveFunctionEventArgs e)
        {
            if (e.FunctionName == "IsDefined")
            {
                e.ReturnType = typeof(bool);
                return;
            }
            Element proc = m_worldModel.Procedure(e.FunctionName);

            if (proc != null)
            {
                e.ReturnType = WorldModel.ConvertTypeNameToType(proc.Fields[FieldDefinitions.ReturnType]);
            }
        }