Exemplo n.º 1
0
        public CREFField CNAME; // RGB color

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

            case "CNAME": CNAME = r.ReadT <CREFField>(dataSize); return(true);

            default: return(false);
            }
        }
Exemplo n.º 2
0
        public List <RPLIField> RPLIs = new List <RPLIField>(); // Region Areas

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

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

            case "WEAT": WEAT = new WEATField(r, dataSize); return(true);    //: TES3

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

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

            case "SNAM": RDATs.Add(new RDATField {
                    RDSDs = new[] { new RDSDField(r, dataSize, format) }
                }); return(true);

            case "RPLI": RPLIs.Add(new RPLIField(r, dataSize)); return(true);

            case "RPLD": RPLIs.Last().RPLDField(r, dataSize); return(true);

            case "RDAT": RDATs.Add(new RDATField(r, dataSize)); return(true);

            case "RDOT":
                var rdot = RDATs.Last().RDOTs = new RDOTField[dataSize / 52];
                for (var i = 0; i < rdot.Length; i++)
                {
                    rdot[i] = new RDOTField(r, dataSize);
                }
                return(true);

            case "RDMP": RDATs.Last().RDMP = r.ReadSTRV(dataSize); return(true);

            case "RDGS":
                var rdgs = RDATs.Last().RDGSs = new RDGSField[dataSize / 8];
                for (var i = 0; i < rdgs.Length; i++)
                {
                    rdgs[i] = new RDGSField(r, dataSize);
                }
                return(true);

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

            case "RDSD":
                var rdsd = RDATs.Last().RDSDs = new RDSDField[dataSize / 12];
                for (var i = 0; i < rdsd.Length; i++)
                {
                    rdsd[i] = new RDSDField(r, dataSize, format);
                }
                return(true);

            case "RDWT":
                var rdwt = RDATs.Last().RDWTs = new RDWTField[dataSize / RDWTField.SizeOf(format)];
                for (var i = 0; i < rdwt.Length; i++)
                {
                    rdwt[i] = new RDWTField(r, dataSize, format);
                }
                return(true);

            default: return(false);
            }
        }