示例#1
0
        //=========== LOADING ============
        #region Loading

        /** <summary> Loads the terrain resources. </summary> */
        public static void LoadResources()
        {
            GraphicsData graphicsData = GraphicsData.FromBuffer(Resources.Terrain);

            LandTiles = new PaletteImage[5];
            graphicsData.paletteImages.CopyTo(LandTiles);
        }
示例#2
0
 /** <summary> Constructs the base object data. </summary> */
 internal ObjectData(ObjectDataHeader objectHeader, ChunkHeader chunkHeader)
 {
     this.objectHeader   = objectHeader;
     this.chunkHeader    = chunkHeader;
     this.stringTable    = new StringTable();
     this.groupInfo      = new GroupInfo();
     this.imageDirectory = new ImageDirectory();
     this.graphicsData   = new GraphicsData(this.imageDirectory);
 }
示例#3
0
        /** <summary> Returns a palette image loaded from the specified stream. </summary> */
        public static PaletteImage FromStream(Stream stream)
        {
            BinaryReader   reader         = new BinaryReader(stream);
            ImageDirectory imageDirectory = new ImageDirectory();
            GraphicsData   graphicsData   = new GraphicsData(imageDirectory);

            imageDirectory.Read(reader);
            graphicsData.Read(reader);
            reader.Close();
            return(graphicsData.GetPaletteImage(0));
        }
示例#4
0
        /** <summary> Returns an object loaded from the specified stream. </summary> */
        public static GraphicsData FromStream(Stream stream)
        {
            GraphicsData graphicsData = new GraphicsData();

            BinaryReader reader = new BinaryReader(stream);

            graphicsData.imageDirectory.Read(reader);
            graphicsData.Read(reader);
            reader.Close();

            return(graphicsData);
        }
示例#5
0
        //=========== LOADING ============
        #region Loading

        /** <summary> Loads the color remapping resources. </summary> */
        public static void LoadResources()
        {
            /*ImageDirectory imageDirectory = new ImageDirectory();
             * GraphicsData graphicsData = new GraphicsData(imageDirectory);
             *
             * BinaryReader reader = new BinaryReader(new MemoryStream(Resources.RemapStrips));
             * imageDirectory.Read(reader);
             * graphicsData.Read(reader);*/
            GraphicsData graphicsData = GraphicsData.FromBuffer(Resources.RemapStrips);

            for (int i = 0; i < 32; i++)
            {
                RemapPalette remaps = new RemapPalette(12);
                for (int j = 0; j < 12; j++)
                {
                    remaps.remapIndexes[j] = graphicsData.paletteImages[4915 + i - 4915].Pixels[243 + j, 0];
                }
                RemapPalettes[i] = remaps;
            }
            for (int i = 0; i < 32; i++)
            {
                RemapPalette remaps = new RemapPalette(256);
                for (int j = 0; j < 256; j++)
                {
                    remaps.remapIndexes[j] = graphicsData.paletteImages[5016 + i - 4915].Pixels[j, 0];
                }
                GlassPalettes[i] = remaps;
            }
            for (int i = 0; i < 5; i++)
            {
                RemapPalette remaps = new RemapPalette(256);
                for (int j = 0; j < 256; j++)
                {
                    remaps.remapIndexes[j] = graphicsData.paletteImages[4947 - 4915].Pixels[j, i];
                }
                WaterPalettes[i] = remaps;
            }
            for (int i = 0; i < 4; i++)
            {
                RemapPalette remaps = new RemapPalette(256);
                for (int j = 0; j < 256; j++)
                {
                    remaps.remapIndexes[j] = graphicsData.paletteImages[4951 + i - 4915].Pixels[j, 0];
                }
                DarknessPalettes[i] = remaps;
            }
        }
示例#6
0
        //=========== READING ============
        #region Reading

        /** <summary> Saves the palette image to the specified file path. </summary> */
        public void Save(string path)
        {
            BinaryWriter   writer         = new BinaryWriter(new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write));
            ImageDirectory imageDirectory = new ImageDirectory();
            GraphicsData   graphicsData   = new GraphicsData(imageDirectory);

            graphicsData.Add(this);

            long imageDirectoryPosition = writer.BaseStream.Position;

            imageDirectory.Write(writer);
            graphicsData.Write(writer);
            writer.BaseStream.Position = imageDirectoryPosition;
            imageDirectory.Write(writer);

            writer.Close();
        }