//=========== 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); }
/** <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); }
/** <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)); }
/** <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); }
//=========== 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; } }
//=========== 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(); }