Exemple #1
0
        public override bool ResolveLinks()
        {
            var result = base.ResolveLinks();

            InnerProperty = PCC.GetExportObject(_InnerIndex) as ME3Property;

            return result;
        }
        public override bool ResolveLinks()
        {
            var result = base.ResolveLinks();

            InnerProperty = PCC.GetExportObject(_InnerIndex) as ME3Property;

            return(result);
        }
        public Variable ConvertVariable(ME3Property obj)
        {
            int size = -1;

            if (obj is ME3FixedArrayProperty)
            {
                size = (obj as ME3FixedArrayProperty).ArraySize;
            }
            return(new Variable(new List <Specifier>(),
                                new VariableIdentifier(obj.Name, null, null, size),
                                new VariableType(GetPropertyType(obj), null, null), null, null));
        }
        private String GetPropertyType(ME3Property obj)
        {
            String typeStr = "UNKNOWN";

            if (obj is ME3ArrayProperty)
            {
                typeStr = "array< " + GetPropertyType((obj as ME3ArrayProperty).InnerProperty) + " >";
            }
            else if (obj is ME3BoolProperty)
            {
                typeStr = "bool";
            }
            else if (obj is ME3ByteProperty)
            {
                typeStr = (obj as ME3ByteProperty).IsEnum ? (obj as ME3ByteProperty).Enum.Name : "byte";
            }
            else if (obj is ME3ClassProperty)
            {
                typeStr = "class";
            }
            else if (obj is ME3ComponentProperty)
            {
                typeStr = "ActorComponent"; // TODO: is this correct at all?
            }
            else if (obj is ME3DelegateProperty)
            {
                typeStr = "delegate< " + (obj as ME3DelegateProperty).FunctionName + " >";
            }
            else if (obj is ME3FixedArrayProperty)
            {
                typeStr = GetPropertyType((obj as ME3FixedArrayProperty).InnerProperty);
            }
            else if (obj is ME3FloatProperty)
            {
                typeStr = "float";
            }
            else if (obj is ME3InterfaceProperty)
            {
                typeStr = (obj as ME3InterfaceProperty).InterfaceName; // ?
            }
            else if (obj is ME3IntProperty)
            {
                typeStr = "int";
            }
            else if (obj is ME3NameProperty)
            {
                typeStr = "Name"; // ?
            }
            else if (obj is ME3Object)
            {
                typeStr = "object";
            }
            else if (obj is ME3StrProperty)
            {
                typeStr = "string";
            }
            else if (obj is ME3StructProperty)
            {
                typeStr = (obj as ME3StructProperty).Struct.Name;
            }

            return(typeStr);
        }