コード例 #1
0
        public List <FMIDField <Record> > SCROs = new List <FMIDField <Record> >(); // Global variable reference

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

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

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

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

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

            case "CTDA": r.Skip(dataSize); return(true);

            case "INDX": r.Skip(dataSize); return(true);

            case "QSDT": r.Skip(dataSize); return(true);

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

            case "QSTA": r.Skip(dataSize); return(true);

            case "SCHR": SCHR = new SCPTRecord.SCHRField(r, dataSize); return(true);

            case "SCDA": SCDA = r.ReadBYTV(dataSize); return(true);

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

            case "SCRO": SCROs.Add(new FMIDField <Record>(r, dataSize)); return(true);

            default: return(false);
            }
        }
コード例 #2
0
        public List <SCITField> SCITs = new List <SCITField>(); // Script effect data

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

            case "FULL": if (SCITs.Count == 0)
                {
                    FULL = r.ReadSTRV(dataSize);
                }
                else
                {
                    SCITs.Last().FULLField(r, dataSize);
                } return(true);

            case "ENIT":
            case "ENDT": ENIT = new ENITField(r, dataSize, format); return(true);

            case "EFID": r.Skip(dataSize); return(true);

            case "EFIT":
            case "ENAM": EFITs.Add(new EFITField(r, dataSize, format)); return(true);

            case "SCIT": SCITs.Add(new SCITField(r, dataSize)); return(true);

            default: return(false);
            }
        }
コード例 #3
0
        public List <FMIDField <Record> > SCROs = new List <FMIDField <Record> >(); // Global variable reference

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

            case "SCHD": SCHD = new SCHDField(r, dataSize); return(true);

            case "SCVR": if (format != GameFormat.TES3)
                {
                    SLSDs.Last().SCVRField(r, dataSize);
                }
                else
                {
                    SCHD.SCVRField(r, dataSize);
                } return(true);

            case "SCDA":
            case "SCDT": SCDA = r.ReadBYTV(dataSize); return(true);

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

            // TES4
            case "SCHR": SCHR = new SCHRField(r, dataSize); return(true);

            case "SLSD": SLSDs.Add(new SLSDField(r, dataSize)); return(true);

            case "SCRO": SCROs.Add(new FMIDField <Record>(r, dataSize)); return(true);

            case "SCRV": var idx = r.ReadUInt32(); SCRVs.Add(SLSDs.Single(x => x.Idx == idx)); return(true);

            default: return(false);
            }
        }
コード例 #4
0
        public FMIDField <SOUNRecord> QNAM; // Close sound

        public override bool CreateField(BinaryFileReader r, GameFormat format, string type, int dataSize)
        {
            switch (type)
            {
            case "EDID":
            case "NAME": 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":
            case "FNAM": FULL = r.ReadSTRV(dataSize); return(true);

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

            case "FLAG": DATA.FLAGField(r, dataSize); return(true);

            case "CNTO":
            case "NPCO": CNTOs.Add(new CNTOField(r, dataSize, format)); return(true);

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

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

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

            default: return(false);
            }
        }
コード例 #5
0
        public List <FMIDField <Record> > SPLOs = new List <FMIDField <Record> >(); // TES4: (points to a SPEL or LVSP record)

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

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

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

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

            case "SPLO": if (SPLOs == null)
                {
                    SPLOs = new List <FMIDField <Record> >();
                }
                SPLOs.Add(new FMIDField <Record>(r, dataSize)); return(true);

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

            default: return(false);
            }
        }
コード例 #6
0
        public List <RNAMField> RNAMs = new List <RNAMField>(); // Large References

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

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

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

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

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

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

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

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

            case "NAM0": NAM0 = new NAM0Field(r, dataSize); return(true);

            case "NAM9": NAM0.NAM9Field(r, dataSize); return(true);

            case "SNAM": SNAM = r.ReadT <UI32Field>(dataSize); return(true);

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

            // TES5
            case "RNAM": RNAMs.Add(new RNAMField(r, dataSize)); return(true);

            default: return(false);
            }
        }
コード例 #7
0
        public DATVField DATA; // Data

        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 "STRV": DATA = r.ReadDATV(dataSize, 's'); return(true);

                case "INTV": DATA = r.ReadDATV(dataSize, 'i'); return(true);

                case "FLTV": DATA = r.ReadDATV(dataSize, 'f'); return(true);

                default: return(false);
                }
            }
            switch (type)
            {
            case "EDID": EDID = r.ReadSTRV(dataSize); return(true);

            case "DATA": DATA = r.ReadDATV(dataSize, EDID.Value[0]); return(true);

            default: return(false);
            }
        }
コード例 #8
0
        public FMIDField <ENCHRecord> ENAM; // enchantment ID

        public override bool CreateField(BinaryFileReader r, GameFormat format, string type, int dataSize)
        {
            switch (type)
            {
            case "EDID":
            case "NAME": 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":
            case "FNAM": FULL = r.ReadSTRV(dataSize); return(true);

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

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

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

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

            default: return(false);
            }
        }
コード例 #9
0
        public FMIDField <SCPTRecord>?SCRI;                     // Unknown

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

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

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

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

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

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

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

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

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

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

            case "FLAG": FLAG = r.ReadINTV(dataSize); return(true);

            case "NPCO": NPCOs.Add(new CNTOField(r, dataSize, format)); return(true);

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

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

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

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

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

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

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

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

            case "DODT": DODT = new DODTField(r, dataSize); return(true);

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

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

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

            default: return(false);
            }
        }
コード例 #10
0
ファイル: 045-EYES.Eyes.cs プロジェクト: libcs/game-estates
        public BYTEField DATA; // Playable

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

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

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

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

            default: return(false);
            }
        }
コード例 #11
0
        public STRVField DATA; // Digits

        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.ReadSTRV(dataSize); return(true);

                default: return(false);
                }
            }
            return(false);
        }
コード例 #12
0
        public GNAMField GNAM; // GNAM

        public override bool CreateField(BinaryFileReader r, GameFormat format, string type, int dataSize)
        {
            switch (type)
            {
                case "EDID": EDID = r.ReadSTRV(dataSize); return true;
                case "TNAM": TNAM = r.ReadSTRV(dataSize); return true;
                case "ANAM": ANAM = r.ReadT<BYTEField>(dataSize); return true;
                case "FNAM": FNAM = r.ReadT<BYTEField>(dataSize); return true;
                case "MNAM": MNAM = r.ReadSTRV(dataSize); return true;
                case "SNAM": SNAM = new FMIDField<SOUNRecord>(r, dataSize); return true;
                case "DATA": DATA = new DATAField(r, dataSize); return true;
                case "GNAM": GNAM = new GNAMField(r, dataSize); return true;
                default: return false;
            }
        }
コード例 #13
0
        public List <SNAMField> SNAMs = new List <SNAMField>(); // Sounds

        public override bool CreateField(BinaryFileReader r, GameFormat 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 "CNAM": CNAM = r.ReadFILE(dataSize); return(true);

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

            case "NAM0": NAM0 = r.ReadBYTV(dataSize); return(true);

            case "FNAM": FNAM = new FNAMField(r, dataSize); return(true);

            case "HNAM": HNAM = new HNAMField(r, dataSize); return(true);

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

            case "SNAM": SNAMs.Add(new SNAMField(r, dataSize)); return(true);

            default: return(false);
            }
        }
コード例 #14
0
        public override bool CreateField(BinaryFileReader r, GameFormat 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 "CTDA":
            case "CTDT": CTDAs.Add(new SCPTRecord.CTDAField(r, dataSize, format)); return(true);

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

            case "DATA":
                DATAs = new FMIDField <IDLERecord> [dataSize >> 2];
                for (var i = 0; i < DATAs.Length; i++)
                {
                    DATAs[i] = new FMIDField <IDLERecord>(r, 4);
                }
                return(true);

            default: return(false);
            }
        }
コード例 #15
0
        public BYTVField?XRGD;                    // Ragdoll Data (optional)

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

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

            case "DATA": DATA = new REFRRecord.DATAField(r, dataSize); return(true);

            case "XOWN": if (XOWNs == null)
                {
                    XOWNs = new List <CELLRecord.XOWNGroup>();
                }
                XOWNs.Add(new CELLRecord.XOWNGroup {
                    XOWN = new FMIDField <Record>(r, dataSize)
                }); return(true);

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

            case "XGLB": XOWNs.Last().XGLB = new FMIDField <Record>(r, dataSize); return(true);

            case "XESP": XESP = new REFRRecord.XESPField(r, dataSize); return(true);

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

            case "XRGD": XRGD = r.ReadBYTV(dataSize); return(true);

            default: return(false);
            }
        }
コード例 #16
0
        public TNAMField TNAM;                                  // Timing

        public override bool CreateField(BinaryFileReader r, GameFormat 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 "FNAM": FNAM = r.ReadFILE(dataSize); return(true);

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

            case "WLST": for (var i = 0; i < dataSize >> 3; i++)
                {
                    WLSTs.Add(new WLSTField(r, dataSize));
                }
                return(true);

            case "TNAM": TNAM = new TNAMField(r, dataSize); return(true);

            default: return(false);
            }
        }
コード例 #17
0
        public BYTVField?XRGD;              // Ragdoll Data (optional)

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

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

            case "DATA": DATA = new REFRRecord.DATAField(r, dataSize); return(true);

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

            case "FULL": XPCI.Value.AddName(r.ReadASCIIString(dataSize)); return(true);

            case "XLOD": XLOD = r.ReadBYTV(dataSize); return(true);

            case "XESP": XESP = new REFRRecord.XESPField(r, dataSize); return(true);

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

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

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

            case "XRGD": XRGD = r.ReadBYTV(dataSize); return(true);

            default: return(false);
            }
        }
コード例 #18
0
        public List <ENCHRecord.SCITField> SCITs = new List <ENCHRecord.SCITField>(); // Script Effect Data

        public override bool CreateField(BinaryFileReader r, GameFormat format, string type, int dataSize)
        {
            switch (type)
            {
            case "EDID":
            case "NAME": 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": if (SCITs.Count == 0)
                {
                    FULL = r.ReadSTRV(dataSize);
                }
                else
                {
                    SCITs.Last().FULLField(r, dataSize);
                } return(true);

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

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

            case "ENAM": ENAM = new ENAMField(r, dataSize); return(true);

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

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

            //
            case "ENIT": DATA.ENITField(r, dataSize); return(true);

            case "EFID": r.Skip(dataSize); return(true);

            case "EFIT": EFITs.Add(new ENCHRecord.EFITField(r, dataSize, format)); return(true);

            case "SCIT": SCITs.Add(new ENCHRecord.SCITField(r, dataSize)); return(true);

            default: return(false);
            }
        }
コード例 #19
0
        public DATAField DATA; // Data

        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 "FNAM": FULL = r.ReadSTRV(dataSize); return(true);

                case "CLDT": r.Skip(dataSize); return(true);

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

                default: return(false);
                }
            }
            switch (type)
            {
            case "EDID": EDID = r.ReadSTRV(dataSize); return(true);

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

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

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

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

            default: return(false);
            }
        }
コード例 #20
0
        }                                   // Editor ID

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

            default: return(false);
            }
        }
コード例 #21
0
        public List <LNAMField> LNAMs; // LoadForm

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

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

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

            case "LNAM": if (LNAMs == null)
                {
                    LNAMs = new List <LNAMField>();
                }
                LNAMs.Add(new LNAMField(r, dataSize)); return(true);

            default: return(false);
            }
        }
コード例 #22
0
        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 "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);
        }
コード例 #23
0
        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 "MODL": MODL = new MODLGroup(r, dataSize); return(true);

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

                case "BYDT": BYDT = new BYDTField(r, dataSize); return(true);

                default: return(false);
                }
            }
            return(false);
        }
コード例 #24
0
        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 "FNAM": FNAM = r.ReadSTRV(dataSize); return(true);

                case "RNAM": RNAMs.Add(new RNAMGroup {
                        MNAM = r.ReadSTRV(dataSize)
                    }); return(true);

                case "FADT": FADT = new FADTField(r, dataSize); return(true);

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

                case "INTV": INTVs.Add(r.ReadINTV(dataSize)); return(true);

                default: return(false);
                }
            }
            switch (type)
            {
            case "EDID": EDID = r.ReadSTRV(dataSize); return(true);

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

            case "XNAM": XNAM = new XNAMField(r, dataSize, format); return(true);

            case "DATA": DATA = r.ReadINTV(dataSize); return(true);

            case "CNAM": CNAM = r.ReadT <UI32Field>(dataSize); return(true);

            case "RNAM": RNAMs.Add(new RNAMGroup {
                    RNAM = r.ReadT <IN32Field>(dataSize)
                }); return(true);

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

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

            case "INAM": RNAMs.Last().INAM = r.ReadSTRV(dataSize); return(true);

            default: return(false);
            }
        }
コード例 #25
0
        public List <INFORecord> INFOs = new List <INFORecord>(); // Info Records

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

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

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

            case "QSTI":
            case "QSTR": if (QSTIs == null)
                {
                    QSTIs = new List <FMIDField <QUSTRecord> >();
                }
                QSTIs.Add(new FMIDField <QUSTRecord>(r, dataSize)); return(true);

            default: return(false);
            }
        }
コード例 #26
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(BinaryFileReader r, GameFormat 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);
            }
        }
コード例 #27
0
ファイル: 345-SKIL.Skill.cs プロジェクト: libcs/game-estates
        public STRVField MNAM; // Master Text

        public override bool CreateField(BinaryFileReader r, GameFormat 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);
            }
        }
コード例 #28
0
        public UNKNField?TNAM;         // overrides (Optional)

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

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

            case "DELE": r.Skip(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);
            }
        }
コード例 #29
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);
        }
コード例 #30
0
        public FMIDField <SCPTRecord> SCRI; // Script Name

        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 "MODL": MODL = new MODLGroup(r, dataSize); return(true);

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

                case "PBDT": PBDT = new PBDTField(r, dataSize); return(true);

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

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

                default: return(false);
                }
            }
            return(false);
        }