コード例 #1
0
 public override void Write(EndianBinaryWriterEx ew)
 {
     ew.Write(CourseID);
     ew.Write(Class);
     ew.Write(CPUDifficulty);
     ew.WritePadding(4);
 }
コード例 #2
0
            public override void Write(EndianBinaryWriterEx ew)
            {
                EndianBinaryWriterEx tempWritter = new EndianBinaryWriterEx(new MemoryStream(), Endianness.LittleEndian); // I don't know how else I can do this without a hardcoded size...

                tempWritter.Write(new ushort());                                                                          // offsetPlayer
                tempWritter.Write(new ushort());                                                                          // offsetCPU
                tempWritter.Write(new byte());                                                                            // Mode
                tempWritter.Write(new byte());                                                                            // SpawnItemBoxes
                tempWritter.WritePadding(4);

                UInt16 baseOffset = (UInt16)tempWritter.BaseStream.Position;
                EndianBinaryWriterEx sectionWritter = new EndianBinaryWriterEx(new MemoryStream(), Endianness.LittleEndian);

                if (Mode == ItemMode.Custom)
                {
                    UInt16 offsetPlayer = baseOffset, offsetCPU = baseOffset;

                    offsetPlayer += (UInt16)sectionWritter.BaseStream.Position;
                    PlayerConfig.Write(sectionWritter);

                    offsetCPU += (UInt16)sectionWritter.BaseStream.Position;
                    CPUConfig.Write(sectionWritter);

                    ew.Write(offsetPlayer);                  // offsetPlayer
                    ew.Write(offsetCPU);                     // offsetCPU
                    ew.Write((byte)Mode);
                    ew.Write((byte)(SpawnItemBoxes ? 1 : 0));
                    ew.WritePadding(4);
                    ew.Write((sectionWritter.BaseStream as MemoryStream).ToArray(), 0, (int)sectionWritter.BaseStream.Length);
                }
                else
                {
                    ew.Write((ushort)0xFFFF);                     // offsetPlayer
                    ew.Write((ushort)0xFFFF);                     // offsetCPU
                    ew.Write((byte)Mode);
                    ew.Write((byte)(SpawnItemBoxes ? 1 : 0));
                    ew.WritePadding(4);
                }

                ew.WritePadding(4);

                return;
            }
コード例 #3
0
 public override void Write(EndianBinaryWriterEx ew)
 {
     ew.Write((UInt32)DriverAmount);
     for (uint i = 0; i < DriverAmount; i++)
     {
         for (uint j = 0; j < 4; j++)
         {
             ew.Write(DriverChoices[i][j]);
         }
     }
     ew.WritePadding(4);
 }
コード例 #4
0
 public void Write(EndianBinaryWriterEx ew)
 {
     ew.Write((UInt16)RouletteSpeed.Frames);
     ew.Write((UInt16)GiveItemOffset.Frames);
     ew.Write((UInt16)GiveItemEach.Frames);
     ew.Write(GiveItemID);
     ew.Write((byte)ConfigMode);
     for (int i = 0; i < Probabilities.Length; i++)
     {
         for (int j = 0; j < Probabilities[i].Length; j++)
         {
             ew.Write(Probabilities[i][j]);
         }
     }
     ew.WritePadding(4);
 }