Пример #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
        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);
                }
            }
        }
Пример #3
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);
            }
        }