示例#1
0
        private void ExportAllUsedShapes()
        {
            // Reading Palette
            FDPalette palette = new FDPalette(@".\color");

            ShapeDataFile shapeData = new ShapeDataFile(@".\FDSHAP.DAT");

            shapeData.LoadData();

            FieldDataFile fieldData = new FieldDataFile(@".\FDFIELD.DAT");

            fieldData.LoadData();

            for (int m = 0; m < 33; m++)
            {
                FieldMap      map    = fieldData.GetField(m);
                HashSet <int> shapes = map.GetAllShapeIndexes();

                ShapePanel panel        = shapeData.GetPanel(m);
                string     outputFolder = string.Format(@"D:\GitRoot\toneyisnow\windingtale\Resources\Original\Shapes\ShapePanel{0}\Used", m);
                if (!Directory.Exists(outputFolder))
                {
                    Directory.CreateDirectory(outputFolder);
                }

                foreach (int shape in shapes)
                {
                    var shapeInfo = panel.Shapes[shape];

                    ImageDataExporter exporter = new ImageDataExporter(shapeInfo.Image.GenerateBitmap(palette));
                    exporter.ExportToPng(Path.Combine(outputFolder, string.Format(@"Shape_{0}_{1}.png", m, shape)));
                }
            }
        }
示例#2
0
        public FieldMapExporter(FieldMap map, ShapePanel shapePanel, FDPalette palette)
        {
            this.fieldMap   = map;
            this.shapePanel = shapePanel;
            this.palette    = palette;

            this.canvasWidth  = (map.Width + 2) * unitWidth;
            this.canvasHeight = (map.Height + 2) * unitHeight;
        }
示例#3
0
        private void button2_Click(object sender, EventArgs e)
        {
            // Reading Palette
            FDPalette palette = new FDPalette(@".\color");

            ShapeDataFile shapeData = new ShapeDataFile(@".\FDSHAP.DAT");

            shapeData.LoadData();

            ImageDataExporter exporter = new ImageDataExporter(shapeData.GetPanel(1).Shapes[100].Image.GenerateBitmap(palette));

            exporter.ExportToPng(@"D:\Temp\FDII\Shape_1_100.png");
        }
示例#4
0
        private void button1_Click(object sender, EventArgs e)
        {
            // Reading Palette
            FDPalette palette = new FDPalette(@".\color");

            FigDataFile figData = new FigDataFile(@".\FIGANI.DAT");

            figData.LoadData();

            ImageDataExporter exporter = new ImageDataExporter(figData.GetAnimation(9).Frames[3].Image.GenerateBitmap(palette));

            exporter.ExportToPng(@"D:\Temp\FDII\Fight_9_3.png");
        }
示例#5
0
        private void GenerateAllVoxes()
        {
            FDPalette palette = new FDPalette(@".\color");

            ShapeDataFile shapeData = new ShapeDataFile(@".\FDSHAP.DAT");

            shapeData.LoadData();
            FieldDataFile fieldData = new FieldDataFile(@".\FDFIELD.DAT");

            fieldData.LoadData();

            byte[] header         = File.ReadAllBytes(@".\vox_header.dat");
            byte[] footer         = File.ReadAllBytes(@".\vox_footer.dat");
            var    paletteMapping = LoadVoxPaletteMapping();


            // For each map, generate the vox files
            for (int m = 1; m < 2; m++)
            {
                FieldMap      map    = fieldData.GetField(m);
                HashSet <int> shapes = map.GetAllShapeIndexes();

                ShapePanel panel        = shapeData.GetPanel(m);
                string     outputFolder = string.Format(@"D:\GitRoot\toneyisnow\windingtale\Resources\Remastered\Shapes\ShapePanel{0}", m);

                if (!Directory.Exists(outputFolder))
                {
                    Directory.CreateDirectory(outputFolder);
                }

                //string mappingText = File.ReadAllText(Path.Combine(outputFolder, "shape-mapping-1.json"));
                //ShapeMapping mapping = JsonConvert.DeserializeObject<ShapeMapping>(mappingText);

                foreach (int shape in shapes)
                {
                    //if (mapping.ContainsValue(shape))
                    {
                        // continue;
                    }

                    var    shapeInfo      = panel.Shapes[shape];
                    string outputFileName = string.Format(@"Shape_{0}_{1}.vox", m, shape);

                    GenerateShapeVoxFile(shapeInfo.Image, Path.Combine(outputFolder, outputFileName), header, footer, paletteMapping);
                }
            }
        }
示例#6
0
        private void ExportDatoData()
        {
            // Reading Palette
            FDPalette palette = new FDPalette(@".\color");

            DatoDataFile datoData = new DatoDataFile(@".\DATO.DAT");

            datoData.LoadData();

            for (int index = 0; index < datoData.DatoImages.Count; index++)
            {
                for (int f = 0; f < 4; f++)
                {
                    FDImage           image    = datoData.DatoImages[index][f];
                    ImageDataExporter exporter = new ImageDataExporter(image.GenerateBitmap(palette));
                    exporter.ExportToPng(string.Format(@"D:\Temp\FDII\Dato_{0}_{1}.png", index, f));
                }
            }
        }
示例#7
0
        private void ExportFieldMapData()
        {
            // Reading Palette
            FDPalette palette = new FDPalette(@".\color");

            ShapeDataFile shapeData = new ShapeDataFile(@".\FDSHAP.DAT");

            shapeData.LoadData();

            FieldDataFile fieldData = new FieldDataFile(@".\FDFIELD.DAT");

            fieldData.LoadData();

            for (int m = 0; m < 33; m++)
            {
                FieldMap      map    = fieldData.GetField(m);
                HashSet <int> shapes = new HashSet <int>();
                for (int i = 0; i < map.Width; i++)
                {
                    for (int j = 0; j < map.Height; j++)
                    {
                        var shapeIndex = map.GetShapeIndexAt(i, j);
                        shapes.Add(shapeIndex);
                    }
                }

                var shapePanel = shapeData.GetPanel(m);
                foreach (int shapeIndex in shapes)
                {
                    ShapeInfo shapeInfo = shapePanel.Shapes[shapeIndex];

                    FieldShape shape = new FieldShape();
                    shape.Type             = shapeInfo.Type;
                    shape.BattleGroundId   = shapeInfo.BattleGroundId;
                    map.Shapes[shapeIndex] = shape;
                }

                string mapString = JsonConvert.SerializeObject(map, Formatting.Indented);
                int    mm        = m + 1;
                File.WriteAllText(string.Format(@"D:\Temp\FDII\Chapter_{0}.txt", (mm < 10 ? "0" + mm.ToString() : mm.ToString())), mapString);
            }
        }