Beispiel #1
0
 public SceneInfo(Reader reader, bool readFilter = true)
 {
     name   = reader.readRSDKString();
     folder = reader.readRSDKString();
     id     = reader.readRSDKString();
     if (readFilter)
     {
         filter = reader.ReadByte();
     }
 }
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)
 {
     unknown1     = reader.ReadByte();
     bgColor1     = new Color(reader);
     bgColor2     = new Color(reader);
     unknownBytes = reader.readBytes(7);
     libraryName  = reader.readRSDKString();
     unknown2     = reader.ReadByte();
 }
Beispiel #4
0
        public Animation(Reader reader)
        {
            // Header
            if (!reader.readBytes(4).SequenceEqual(signature))
            {
                reader.Close();
                throw new Exception("Invalid Animation v5 signature");
            }

            // used by RSDKv5 to allocate space for all the frames, automatically handled here
            uint totalFrameCount = reader.ReadUInt32();

            // SpriteSheets
            int spriteSheetCount = reader.ReadByte();

            spriteSheets.Clear();
            for (int s = 0; s < spriteSheetCount; ++s)
            {
                spriteSheets.Add(reader.readRSDKString());
            }

            // Hitboxes
            int hitboxTypeCount = reader.ReadByte();

            hitboxTypes.Clear();
            for (int h = 0; h < hitboxTypeCount; ++h)
            {
                hitboxTypes.Add(reader.readRSDKString());
            }

            // Animations
            int animationCount = reader.ReadInt16();

            animations.Clear();
            for (int a = 0; a < animationCount; ++a)
            {
                animations.Add(new AnimationEntry(reader, this));
            }

            reader.Close();
        }
Beispiel #5
0
            public void read(Reader reader, bool readFilter = true)
            {
                name = reader.readRSDKString();

                list.Clear();
                byte sceneCount = reader.ReadByte();

                for (int i = 0; i < sceneCount; ++i)
                {
                    list.Add(new SceneInfo(reader, readFilter));
                }
            }
Beispiel #6
0
            public void read(Reader reader, Animation anim = null)
            {
                name = reader.readRSDKString();
                short frameCount = reader.ReadInt16();

                speed         = reader.ReadInt16();
                loopIndex     = reader.ReadByte();
                rotationStyle = (RotationStyles)reader.ReadByte();

                frames.Clear();
                for (int f = 0; f < frameCount; ++f)
                {
                    frames.Add(new Frame(reader, anim));
                }
            }
Beispiel #7
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();
                    }
                }
            }
        }
Beispiel #8
0
        public void read(Reader reader, bool usePlusFormat = true)
        {
            // Header
            if (!reader.readBytes(4).SequenceEqual(signature))
            {
                reader.Close();
                throw new Exception("Invalid GameConfig v5 signature");
            }

            // General
            gameTitle    = reader.readRSDKString();
            gameSubtitle = reader.readRSDKString();
            gameVersion  = reader.readRSDKString();

            startingActiveList = reader.ReadByte();
            startingListPos    = reader.ReadUInt16();

            // 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 SoundInfo(reader));
            }

            // Scenes
            // total scene count, used by RSDKv5 to allocate scenes before they're read, its managed automatically here
            ushort totalSceneCount = reader.ReadUInt16();
            byte   categoryCount   = reader.ReadByte();

            categories.Clear();
            for (int i = 0; i < categoryCount; ++i)
            {
                categories.Add(new SceneCategory(reader, usePlusFormat));
            }

            // Global Variables
            byte globalVariableCount = reader.ReadByte();

            globalVariables.Clear();
            for (int i = 0; i < globalVariableCount; ++i)
            {
                globalVariables.Add(new GlobalVariable(reader));
            }

            reader.Close();
        }
Beispiel #9
0
 public void read(Reader reader)
 {
     name = reader.readRSDKString();
     maxConcurrentPlay = reader.ReadByte();
 }