public void read(Reader reader)
        {
            unknown = reader.ReadBytes(5);

            // SpriteSheets
            for (int s = 0; s < 4; ++s)
            {
                spriteSheets[s] = reader.ReadString();
            }

            // Animations
            byte animationCount = reader.ReadByte();

            animations.Clear();
            for (int a = 0; a < animationCount; ++a)
            {
                animations.Add(new AnimationEntry(reader, a < animationNames.Length ? animationNames[a] : $"Sonic Nexus Animation #{a + 1}"));
            }

            // Hitboxes
            byte hitboxCount = reader.ReadByte();

            hitboxes.Clear();
            for (int h = 0; h < hitboxCount; ++h)
            {
                hitboxes.Add(new Hitbox(reader));
            }

            reader.Close();
        }
示例#2
0
 public GlobalVariable(Reader reader)
 {
     Name = reader.ReadString();
     byte[] bytes = new byte[4];
     bytes = reader.ReadBytes(4);
     Value = (bytes[0] << 24) + (bytes[1] << 16) + (bytes[2] << 8) + (bytes[3] << 0);
 }
示例#3
0
            public void read(Reader reader)
            {
                fileName = reader.ReadString();

                string ext = System.IO.Path.GetExtension(fileName);

                if (ext == ".ogg" || ext == ".wav")
                {
                    encrypted = false;
                }
                else
                {
                    encrypted = true;
                }

                if (!encrypted)
                {
                    fileData = reader.ReadBytes((int)reader.ReadUInt32());
                }
                else if (encrypted)
                {
                    fileData = reader.ReadBytes((int)reader.ReadUInt32());
                    for (int i = 0; i < fileData.Length; i++)
                    {
                        fileData[i] = (byte)~fileData[i];
                    }
                }
            }
示例#4
0
        internal void ReadWAVConfiguration(Reader reader)
        {
            byte SoundFX_count = reader.ReadByte();

            for (int i = 0; i < SoundFX_count; ++i)
            {
                SoundFX.Add(reader.ReadString());
            }
        }
示例#5
0
        internal void ReadSFXData(Reader reader)
        {
            byte SoundFX_count = reader.ReadByte();

            for (int i = 0; i < SoundFX_count; ++i)
            {
                SoundFX.Add(reader.ReadString());
            }
        }
示例#6
0
 internal Global(Reader reader)
 {
     Name = reader.ReadString();
     Console.WriteLine(Name);
     UnknownValue1 = reader.ReadByte();
     UnknownValue2 = reader.ReadByte();
     UnknownValue3 = reader.ReadByte();
     UnknownValue4 = reader.ReadByte();
 }
示例#7
0
            public AnimationEntry(Reader reader, Animation anim = null)
            {
                AnimName = reader.ReadString();
                short frameCount = reader.ReadByte();

                SpeedMultiplyer = reader.ReadByte();
                LoopIndex       = reader.ReadByte();
                RotationFlags   = reader.ReadByte();
                for (int i = 0; i < frameCount; ++i)
                {
                    Frames.Add(new Frame(reader, anim));
                }
            }
示例#8
0
        public Animation(Reader reader)
        {
            int spriteSheetCount = reader.ReadByte();

            for (int i = 0; i < spriteSheetCount; ++i)
            {
                SpriteSheets.Add(reader.ReadString());
            }

            var animationCount = reader.ReadInt16();

            for (int i = 0; i < animationCount; ++i)
            {
                Animations.Add(new AnimationEntry(reader));
            }

            int collisionBoxCount = reader.ReadByte();

            for (int i = 0; i < collisionBoxCount; ++i)
            {
                CollisionBoxes.Add(new sprHitbox(reader));
            }
            reader.Close();
        }
示例#9
0
 public GlobalVariable(Reader reader)
 {
     Name = reader.ReadString();
     Console.WriteLine(Name);
     Value = reader.ReadInt32();
 }
示例#10
0
 public void read(Reader reader)
 {
     name = reader.ReadString();
     byte[] bytes = reader.readBytes(4);
     value = (bytes[0] << 24) + (bytes[1] << 16) + (bytes[2] << 8) + (bytes[3] << 0);
 }