Ejemplo n.º 1
0
 public PsoStructureEntryInfo(MetaName nameHash, PsoDataType type, ushort offset, byte unk, MetaName refKey)
 {
     EntryNameHash = nameHash;
     Type          = type;
     Unk_5h        = unk;
     DataOffset    = offset;
     ReferenceKey  = (uint)refKey;
 }
Ejemplo n.º 2
0
        private static int GetEnumInt(MetaName type, string enumString, PsoDataType dataType)
        {
            var infos = PsoTypes.GetEnumInfo(type);

            if (infos == null)
            {
                return(0);
            }


            bool isFlags = (dataType == PsoDataType.Flags);// ||

            //(dataType == PsoDataType.IntFlags2);// ||
            //(dataType == PsoDataType.ShortFlags);

            if (isFlags)
            {
                //flags enum. (multiple values, comma-separated)
                var split   = enumString.Split(new[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries);
                int enumVal = 0;

                for (int i = 0; i < split.Length; i++)
                {
                    var enumName = (MetaName)(uint)GetHash(split[i].Trim());

                    for (int j = 0; j < infos.Entries.Length; j++)
                    {
                        var entry = infos.Entries[j];
                        if (entry.EntryNameHash == enumName)
                        {
                            enumVal += (1 << entry.EntryKey);
                            break;
                        }
                    }
                }

                return(enumVal);
            }
            else
            {
                //single value enum.

                var enumName = (MetaName)(uint)GetHash(enumString);

                for (int j = 0; j < infos.Entries.Length; j++)
                {
                    var entry = infos.Entries[j];

                    if (entry.EntryNameHash == enumName)
                    {
                        return(entry.EntryKey);
                    }
                }
            }

            return(-1);
        }
Ejemplo n.º 3
0
        public static string GetCSharpTypeName(PsoDataType t)
        {
            switch (t)
            {
            case PsoDataType.Bool: return("bool");

            case PsoDataType.SByte: return("sbyte");

            case PsoDataType.UByte: return("byte");

            case PsoDataType.SShort: return("short");

            case PsoDataType.UShort: return("ushort");

            case PsoDataType.SInt: return("int");

            case PsoDataType.UInt: return("int");

            case PsoDataType.Float: return("float");

            case PsoDataType.Float2: return("long");

            case PsoDataType.String: return("uint");    //hash? NEEDS WORK?

            case PsoDataType.Enum: return("byte");

            case PsoDataType.Flags: return("short");

            case PsoDataType.HFloat: return("short");

            case PsoDataType.Long: return("long");

            case PsoDataType.Float3:
            case PsoDataType.Float4:
            case PsoDataType.Map:
            case PsoDataType.Float3a:
            case PsoDataType.Float4a:
            case PsoDataType.Structure:
            case PsoDataType.Array:
            default:
                return(t.ToString());
            }
        }
Ejemplo n.º 4
0
        public static string GetCSharpTypeName(PsoDataType t)
        {
            //MetaStructureEntryDataType mdt = (MetaStructureEntryDataType)t;
            switch (t)
            {
            case PsoDataType.Boolean: return("bool");

            case PsoDataType.Byte1: return("sbyte");    //was LONG_01h.. why?

            case PsoDataType.Byte2: return("byte");

            case PsoDataType.SHORT_03h: return("short");

            case PsoDataType.SHORT_04h: return("short");

            case PsoDataType.INT_05h: return("int");

            case PsoDataType.Integer: return("int");

            case PsoDataType.Float: return("float");

            case PsoDataType.Float2: return("long");

            case PsoDataType.String: return("uint");    //hash? NEEDS WORK?

            case PsoDataType.Enum: return("byte");

            case PsoDataType.Flags: return("short");

            case PsoDataType.SHORT_1Eh: return("short");

            case PsoDataType.LONG_20h: return("long");

            case PsoDataType.Float3:
            case PsoDataType.Float4:
            case PsoDataType.Map:
            case PsoDataType.Float3a:
            case PsoDataType.Float3b:
            case PsoDataType.Structure:
            case PsoDataType.Array:
            default:
                return(t.ToString());

                //case MetaStructureEntryDataType.Boolean: return "bool";
                //case MetaStructureEntryDataType.SignedByte: return "sbyte";
                //case MetaStructureEntryDataType.UnsignedByte: return "byte";
                //case MetaStructureEntryDataType.SignedShort: return "short";
                //case MetaStructureEntryDataType.UnsignedShort: return "ushort";
                //case MetaStructureEntryDataType.SignedInt: return "int";
                //case MetaStructureEntryDataType.UnsignedInt: return "uint";
                //case MetaStructureEntryDataType.Float: return "float";
                //case MetaStructureEntryDataType.Float_XYZ: return "Vector3";
                //case MetaStructureEntryDataType.Float_XYZW: return "Vector4";

                //case MetaStructureEntryDataType.Hash: return "uint"; //uint hashes...
                //case MetaStructureEntryDataType.ByteEnum: return "byte"; //convert to enum later..
                //case MetaStructureEntryDataType.IntEnum: return "int";
                //case MetaStructureEntryDataType.ShortFlags: return "short";
                //case MetaStructureEntryDataType.IntFlags1: return "int";
                //case MetaStructureEntryDataType.IntFlags2: return "int";

                //case MetaStructureEntryDataType.Array:
                //case MetaStructureEntryDataType.ArrayOfChars:
                //case MetaStructureEntryDataType.ArrayOfBytes:
                //case MetaStructureEntryDataType.DataBlockPointer:
                //case MetaStructureEntryDataType.CharPointer:
                //case MetaStructureEntryDataType.StructurePointer:
                //case MetaStructureEntryDataType.Structure:
                //default:
                //    return t.ToString();
            }
        }