internal TileConfig(Reader reader)
 {
     Collision    = reader.ReadBytes(16);
     HasCollision = reader.ReadBytes(16).Select(x => x != 0).ToArray();
     IsCeiling    = reader.ReadBoolean();
     Config       = reader.ReadBytes(5);
 }
Beispiel #2
0
        public void read(Reader reader)
        {
            // General
            if (!reader.readBytes(4).SequenceEqual(signature))
            {
                reader.Close();
                throw new Exception("Invalid StageConfig v5 signature");
            }

            loadGlobalObjects = reader.ReadBoolean();

            // Objects
            byte objectCount = reader.ReadByte();

            objects.Clear();
            for (int i = 0; i < objectCount; ++i)
            {
                objects.Add(reader.readRSDKString());
            }

            // Palettes
            for (int i = 0; i < PALETTES_COUNT; ++i)
            {
                palettes[i] = new Palette(reader);
            }

            // SoundFX
            byte sfxCount = reader.ReadByte();

            soundFX.Clear();
            for (int i = 0; i < sfxCount; ++i)
            {
                soundFX.Add(new GameConfig.SoundInfo(reader));
            }
        }
Beispiel #3
0
 public void read(Reader reader)
 {
     parallaxFactor = reader.ReadInt16();
     scrollSpeed    = reader.ReadInt16();
     deform         = reader.ReadBoolean();
     unknown        = reader.ReadByte();
 }
Beispiel #4
0
        public Stageconfig(Reader reader)
        {
            base.ReadMagic(reader);

            LoadGlobalObjects = reader.ReadBoolean();

            base.ReadCommonConfig(reader);
        }
Beispiel #5
0
        internal StageConfig(Reader reader)
        {
            base.ReadMagic(reader);

            UseGameObjects = reader.ReadBoolean();

            base.ReadCommonConfig(reader);
        }
Beispiel #6
0
 internal TileConfig(Reader reader)
 {
     Collision    = reader.ReadBytes(16);
     HasCollision = reader.ReadBytes(16).Select(x => x != 0).ToArray();
     IsCeiling    = reader.ReadBoolean();
     slopeAngle   = reader.ReadByte();
     physics      = reader.ReadByte();
     momentum     = reader.ReadByte();
     unknown      = reader.ReadByte();
     special      = reader.ReadByte();
 }
Beispiel #7
0
 public CollisionMask(Reader reader)
 {
     Collision    = reader.ReadBytes(16);
     HasCollision = reader.ReadBytes(16).Select(x => x != 0).ToArray();
     IsCeiling    = reader.ReadBoolean();
     FloorAngle   = reader.ReadByte();
     RWallAngle   = reader.ReadByte();
     LWallAngle   = reader.ReadByte();
     CeilingAngle = reader.ReadByte();
     Behaviour    = reader.ReadByte();
 }
Beispiel #8
0
        public StageConfig(Reader reader)
        {
            base.ReadMagic(reader);

            LoadGlobalObjects = reader.ReadBoolean();

            base.ReadCommonConfig(reader);

            foreach (string Name in ObjectsNames)
            {
                string Hash = RSDKv5.Objects.GetMd5HashString(Name);
                if (!RSDKv5.Objects.ObjectNames.ContainsKey(Hash))
                {
                    RSDKv5.Objects.AddObjectName(Name);
                }
            }
        }
Beispiel #9
0
            public void read(Reader reader)
            {
                byte[] collision      = reader.readBytes(16);
                bool[] collisionSolid = reader.readBytes(16).Select(x => x != 0).ToArray();

                for (int c = 0; c < 16; c++)
                {
                    heightMasks[c].height = collision[c];
                    heightMasks[c].solid  = collisionSolid[c];
                }

                flipY      = reader.ReadBoolean();
                floorAngle = reader.ReadByte();
                lWallAngle = reader.ReadByte();
                rWallAngle = reader.ReadByte();
                roofAngle  = reader.ReadByte();
                flags      = reader.ReadByte();
            }
Beispiel #10
0
        public void read(Reader reader)
        {
            visible = reader.ReadBoolean();

            name = reader.readRSDKString();

            type      = (Types)reader.ReadByte();
            drawOrder = reader.ReadByte();

            width  = reader.ReadUInt16();
            height = reader.ReadUInt16();

            parallaxFactor = reader.ReadInt16();
            scrollSpeed    = reader.ReadInt16();

            ushort scrollInfoCount = reader.ReadUInt16();

            scrollInfo.Clear();
            for (int i = 0; i < scrollInfoCount; ++i)
            {
                scrollInfo.Add(new ScrollInfo(reader));
            }

            // Read Line Scroll, its compressed using ZLib compression
            lineScroll = reader.readCompressed();

            // Read tile map, its compressed using ZLib compression
            layout = new Tile[height][];
            using (Reader creader = reader.getCompressedStream())
            {
                for (int y = 0; y < height; ++y)
                {
                    layout[y] = new Tile[width];
                    for (int x = 0; x < width; ++x)
                    {
                        layout[y][x] = creader.ReadUInt16();
                    }
                }
            }
        }