public void read(Reader reader)
 {
     folder      = reader.readRSDKString();
     actID       = reader.readRSDKString();
     name        = reader.readRSDKString();
     highlighted = reader.ReadBoolean();
 }
        public void read(Reader reader)
        {
            // General
            loadGlobalObjects = reader.ReadBoolean();

            // Palettes
            stagePalette.read(reader, 2);

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

            for (int i = 0; i < sfxCount; ++i)
            {
                GameConfig.SoundInfo info = new GameConfig.SoundInfo();
                info.name = reader.readRSDKString();

                soundFX.Add(info);
            }

            foreach (GameConfig.SoundInfo info in soundFX)
            {
                info.path = reader.readRSDKString();
            }

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

            for (int i = 0; i < objectCount; ++i)
            {
                GameConfig.ObjectInfo info = new GameConfig.ObjectInfo();
                info.name = reader.readRSDKString();

                objects.Add(info);
            }

            foreach (GameConfig.ObjectInfo info in objects)
            {
                info.script = reader.readRSDKString();
            }

            reader.Close();
        }
Esempio n. 3
0
        public void read(Reader reader)
        {
            title = reader.readRSDKString();

            activeLayer0  = (ActiveLayers)reader.ReadByte();
            activeLayer1  = (ActiveLayers)reader.ReadByte();
            activeLayer2  = (ActiveLayers)reader.ReadByte();
            activeLayer3  = (ActiveLayers)reader.ReadByte();
            layerMidpoint = (LayerMidpoints)reader.ReadByte();

            // Map width in 128 pixel units
            // In RSDKv4 it's one byte long (with an unused byte after each one), little-endian

            width = reader.ReadByte();
            reader.ReadByte(); // Unused

            height = reader.ReadByte();
            reader.ReadByte(); // Unused

            layout = new ushort[height][];
            for (int i = 0; i < height; i++)
            {
                layout[i] = new ushort[width];
            }

            for (int y = 0; y < height; y++)
            {
                for (int x = 0; x < width; x++)
                {
                    // 128x128 Block number is 16-bit
                    // Little-Endian in RSDKv4
                    layout[y][x]  = reader.ReadByte();
                    layout[y][x] |= (ushort)(reader.ReadByte() << 8);
                }
            }

            // Read entities

            // 2 bytes, little-endian, unsigned
            int entityCount = reader.ReadByte();

            entityCount |= reader.ReadByte() << 8;

            entities.Clear();
            for (int o = 0; o < entityCount; o++)
            {
                entities.Add(new Entity(reader));
            }

            reader.Close();
        }
        public void read(Reader reader)
        {
            // General
            gameTitle       = reader.readRSDKString();
            gameDescription = reader.readRSDKString();

            // Palettes
            masterPalette = new Palette(reader, 6);

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

            for (int i = 0; i < objectCount; ++i)
            {
                ObjectInfo info = new ObjectInfo();
                info.name = reader.readRSDKString();

                objects.Add(info);
            }

            foreach (ObjectInfo info in objects)
            {
                info.script = reader.readRSDKString();
            }

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

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

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

            for (int i = 0; i < sfxCount; ++i)
            {
                SoundInfo info = new SoundInfo();
                info.name = reader.readRSDKString();

                soundFX.Add(info);
            }

            foreach (SoundInfo info in soundFX)
            {
                info.path = reader.readRSDKString();
            }

            // Players
            players.Clear();
            byte playerCount = reader.ReadByte();

            for (int i = 0; i < playerCount; i++)
            {
                players.Add(reader.readRSDKString());
            }

            // Stages
            stageLists.Clear();
            stageLists.Add(new StageList(reader)); //Presentation Stages
            stageLists.Add(new StageList(reader)); //Regular Stages
            stageLists.Add(new StageList(reader)); //Special Stages
            stageLists.Add(new StageList(reader)); //Bonus Stages

            reader.Close();
        }