Exemplo n.º 1
0
        public STRVField MNAM; // Master Text

        public override bool CreateField(UnityBinaryReader r, GameFormatId format, string type, int dataSize)
        {
            switch (type)
            {
            case "EDID": EDID = r.ReadSTRV(dataSize); return(true);

            case "INDX": INDX = r.ReadT <IN32Field>(dataSize); return(true);

            case "DATA":
            case "SKDT": DATA = new DATAField(r, dataSize, format); return(true);

            case "DESC": DESC = r.ReadSTRV(dataSize); return(true);

            case "ICON": ICON = r.ReadFILE(dataSize); return(true);

            case "ANAM": ANAM = r.ReadSTRV(dataSize); return(true);

            case "JNAM": JNAM = r.ReadSTRV(dataSize); return(true);

            case "ENAM": ENAM = r.ReadSTRV(dataSize); return(true);

            case "MNAM": MNAM = r.ReadSTRV(dataSize); return(true);

            default: return(false);
            }
        }
        public STRVField?CNAM; // Creature name (optional)

        public override bool CreateField(BinaryFileReader r, GameFormat format, string type, int dataSize)
        {
            if (format == GameFormat.TES3)
            {
                switch (type)
                {
                case "NAME": EDID = r.ReadSTRV(dataSize); return(true);

                case "DATA": DATA = r.ReadT <IN32Field>(dataSize); return(true);

                case "SNAM": SNAM = r.ReadSTRV(dataSize); return(true);

                case "CNAM": CNAM = r.ReadSTRV(dataSize); return(true);

                default: return(false);
                }
            }
            return(false);
        }
Exemplo n.º 3
0
        public override bool CreateField(UnityBinaryReader r, GameFormatId format, string type, int dataSize)
        {
            if (format == GameFormatId.TES3)
            {
                switch (type)
                {
                case "NAME": EDID = r.ReadSTRV(dataSize); return(true);

                case "MODL": MODL = new MODLGroup(r, dataSize); return(true);

                case "FNAM": FNAM = r.ReadSTRV(dataSize); return(true);

                case "NPDT": NPDT = new NPDTField(r, dataSize); return(true);

                case "FLAG": FLAG = r.ReadT <IN32Field>(dataSize); return(true);

                case "SCRI": SCRI = new FMIDField <SCPTRecord>(r, dataSize); return(true);

                case "NPCO": NPCO = new CNTOField(r, dataSize, format); return(true);

                case "AIDT": AIDT = new AIDTField(r, dataSize); return(true);

                case "AI_W": AI_W = new AI_WField(r, dataSize); return(true);

                case "AI_T": AI_T = new AI_TField(r, dataSize); return(true);

                case "AI_F": AI_F = new AI_FField(r, dataSize); return(true);

                case "AI_E": AI_E = new AI_FField(r, dataSize); return(true);

                case "AI_A": AI_A = new AI_AField(r, dataSize); return(true);

                case "XSCL": XSCL = r.ReadT <FLTVField>(dataSize); return(true);

                case "CNAM": CNAM = r.ReadSTRV(dataSize); return(true);

                case "NPCS": NPCSs.Add(r.ReadSTRV(dataSize, ASCIIFormat.ZeroPadded)); return(true);

                default: return(false);
                }
            }
            return(false);
        }
Exemplo n.º 4
0
        public IN32Field MNAM;              // Active marker flags, required. A bit field with a bit value of 1 indicating that the matching marker position in the NIF file is active.

        public override bool CreateField(UnityBinaryReader r, GameFormatId format, string type, int dataSize)
        {
            switch (type)
            {
            case "EDID": EDID = r.ReadSTRV(dataSize); return(true);

            case "MODL": MODL = new MODLGroup(r, dataSize); return(true);

            case "MODB": MODL.MODBField(r, dataSize); return(true);

            case "MODT": MODL.MODTField(r, dataSize); return(true);

            case "FULL": FULL = r.ReadSTRV(dataSize); return(true);

            case "SCRI": SCRI = new FMIDField <SCPTRecord>(r, dataSize); return(true);

            case "MNAM": MNAM = r.ReadT <IN32Field>(dataSize); return(true);

            default: return(false);
            }
        }
Exemplo n.º 5
0
        public UNKNField?TNAM;         // overrides (Optional)

        public override bool CreateField(UnityBinaryReader r, GameFormatId format, string type, int dataSize)
        {
            switch (type)
            {
            case "HEDR": HEDR = r.ReadT <HEDRField>(dataSize); return(true);

            case "OFST": r.SkipBytes(dataSize); return(true);

            case "DELE": r.SkipBytes(dataSize); return(true);

            case "CNAM": CNAM = r.ReadSTRV(dataSize); return(true);

            case "SNAM": SNAM = r.ReadSTRV(dataSize); return(true);

            case "MAST": if (MASTs == null)
                {
                    MASTs = new List <STRVField>();
                }
                MASTs.Add(r.ReadSTRV(dataSize)); return(true);

            case "DATA": if (DATAs == null)
                {
                    DATAs = new List <INTVField>();
                }
                DATAs.Add(r.ReadINTV(dataSize)); return(true);

            case "ONAM": ONAM = r.ReadUNKN(dataSize); return(true);

            case "INTV": INTV = r.ReadT <IN32Field>(dataSize); return(true);

            case "INCC": INCC = r.ReadT <IN32Field>(dataSize); return(true);

            // TES5
            case "TNAM": TNAM = r.ReadUNKN(dataSize); return(true);

            default: return(false);
            }
        }
Exemplo n.º 6
0
        public List <IN16Field> INTVs = new List <IN16Field>(); // PC level for previous INAM
        // The CNAM/INTV can occur many times in pairs

        public override bool CreateField(BinaryFileReader r, GameFormat format, string type, int dataSize)
        {
            if (format == GameFormat.TES3)
            {
                switch (type)
                {
                case "NAME": EDID = r.ReadSTRV(dataSize); return(true);

                case "DATA": DATA = r.ReadT <IN32Field>(dataSize); return(true);

                case "NNAM": NNAM = r.ReadT <BYTEField>(dataSize); return(true);

                case "INDX": INDX = r.ReadT <IN32Field>(dataSize); return(true);

                case "INAM": INAMs.Add(r.ReadSTRV(dataSize)); return(true);

                case "INTV": INTVs.Add(r.ReadT <IN16Field>(dataSize)); return(true);

                default: return(false);
                }
            }
            return(false);
        }
Exemplo n.º 7
0
        public Vector3Int GridId; // => new Vector3Int(INTV.CellX, INTV.CellY, 0);

        public override bool CreateField(UnityBinaryReader r, GameFormatId format, string type, int dataSize)
        {
            switch (type)
            {
            case "DATA": DATA = r.ReadT <IN32Field>(dataSize); return(true);

            case "VNML": VNML = new VNMLField(r, dataSize); return(true);

            case "VHGT": VHGT = new VHGTField(r, dataSize); return(true);

            case "VCLR": VCLR = new VNMLField(r, dataSize); return(true);

            case "VTEX": VTEX = new VTEXField(r, dataSize, format); return(true);

            // TES3
            case "INTV": INTV = r.ReadT <CORDField>(dataSize); return(true);

            case "WNAM": WNAM = new WNAMField(r, dataSize); return(true);

            // TES4
            case "BTXT": var btxt = r.ReadT <BTXTField>(dataSize); BTXTs[btxt.Quadrant] = btxt; return(true);

            case "ATXT":
                if (ATXTs == null)
                {
                    ATXTs = new ATXTGroup[4];
                }
                var atxt = r.ReadT <BTXTField>(dataSize); _lastATXT = ATXTs[atxt.Quadrant] = new ATXTGroup {
                    ATXT = atxt
                }; return(true);

            case "VTXT": _lastATXT.VTXTs = r.ReadTArray <VTXTField>(dataSize, dataSize >> 3); return(true);

            default: return(false);
            }
        }