示例#1
0
            internal void Write(BinaryWriterEx bw, BTPBVersion version, long nameOffset, long probesOffset)
            {
                bw.WriteVarint(nameOffset);
                bw.WriteInt32(Flags08);
                bw.WriteInt32(Probes.Count);
                bw.WriteInt32(Unk10);
                bw.WriteInt32(Unk14);
                bw.WriteInt32(Unk18);
                bw.WriteSingle(Unk1C);
                bw.WriteSingle(Unk20);
                bw.WriteSingle(Unk24);
                bw.WriteVector3(Unk28);
                bw.WriteVector3(Unk34);
                bw.WriteVarint(probesOffset);

                if (version >= BTPBVersion.DarkSouls3)
                {
                    bw.WriteSingle(Unk48);
                    bw.WriteSingle(Unk4C);
                    bw.WriteSingle(Unk50);
                    bw.WritePattern(0x40, 0x00);
                    bw.WriteByte(Unk94);
                    bw.WriteByte(Unk95);
                    bw.WriteByte(Unk96);
                    bw.WriteByte(0);
                }
            }
示例#2
0
            internal void Write(BinaryWriterEx bw, BTPBVersion version)
            {
                bw.WriteInt16s(Coefficients);
                bw.WriteInt16(LightMask);
                bw.WriteInt16(Unk1A);

                if (version >= BTPBVersion.Bloodborne)
                {
                    bw.WriteVector3(Position);
                    bw.WritePattern(0x20, 0x00);
                }
            }
示例#3
0
            internal Probe(BinaryReaderEx br, BTPBVersion version)
            {
                Coefficients = br.ReadInt16s(12);
                LightMask    = br.ReadInt16();
                Unk1A        = br.ReadInt16();

                if (version >= BTPBVersion.Bloodborne)
                {
                    Position = br.ReadVector3();
                    br.AssertPattern(0x20, 0x00);
                }
            }
示例#4
0
            internal Group(BinaryReaderEx br, BTPBVersion version, long dataStart)
            {
                long nameOffset = br.ReadVarint();

                Flags08 = br.ReadInt32();
                int probeCount = br.ReadInt32();

                Unk10 = br.ReadInt32();
                Unk14 = br.ReadInt32();
                Unk18 = br.ReadInt32();
                Unk1C = br.ReadSingle();
                Unk20 = br.ReadSingle();
                Unk24 = br.ReadSingle();
                Unk28 = br.ReadVector3();
                Unk34 = br.ReadVector3();
                long probesOffset = br.ReadVarint();

                if (version >= BTPBVersion.DarkSouls3)
                {
                    Unk48 = br.ReadSingle();
                    Unk4C = br.ReadSingle();
                    Unk50 = br.ReadSingle();
                    br.AssertPattern(0x40, 0x00);
                    Unk94 = br.ReadByte();
                    Unk95 = br.ReadByte();
                    Unk96 = br.ReadByte();
                    br.AssertByte(0);
                }

                if ((Flags08 & 1) != 0)
                {
                    Name = br.GetUTF16(dataStart + nameOffset);
                }

                br.StepIn(dataStart + probesOffset);
                {
                    Probes = new List <Probe>(probeCount);
                    for (int i = 0; i < probeCount; i++)
                    {
                        Probes.Add(new Probe(br, version));
                    }
                }
                br.StepOut();
            }
示例#5
0
            internal void WriteData(BinaryWriterEx bw, BTPBVersion version, long dataStart, out long nameOffset, out long probesOffset)
            {
                if ((Flags08 & 1) != 0)
                {
                    nameOffset = bw.Position - dataStart;
                    bw.WriteUTF16(Name, true);
                    if ((bw.Position - dataStart) % 8 != 0)
                    {
                        bw.Position += 8 - (bw.Position - dataStart) % 8;
                    }
                }
                else
                {
                    nameOffset = 0;
                }

                probesOffset = bw.Position - dataStart;
                foreach (Probe probe in Probes)
                {
                    probe.Write(bw, version);
                }
            }