Ejemplo n.º 1
0
        private void bttExportPic_Click(object sender, EventArgs e)
        {
            int[][] screens, screens2;
            loadScreens(out screens, out screens2);

            SaveScreensCount.ExportMode = true;
            SaveScreensCount.Filename   = "exportedScreens.png";
            var f = new SaveScreensCount();

            f.Text = "Export picture";

            formMain.subeditorOpen(f, (ToolStripItem)sender, true);

            if (SaveScreensCount.Result)
            {
                if (SaveScreensCount.Count <= 0)
                {
                    MessageBox.Show("Screens count value must be greater than 0", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                int saveLastIndex = SaveScreensCount.First + SaveScreensCount.Count;
                if (saveLastIndex > screens.Length)
                {
                    MessageBox.Show(string.Format("First screen + Screens Count value ({0}) must be less than Total Screen Count in the game ({1}", saveLastIndex, screens.Length), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                int   first       = SaveScreensCount.First;
                int   WIDTH       = ConfigScript.getScreenWidth(formMain.LevelNoForScreens);
                int   HEIGHT      = ConfigScript.getScreenHeight(formMain.LevelNoForScreens);
                float curScale    = formMain.CurScale;
                int   TILE_SIZE_X = (int)(formMain.Layers[0].blockWidth * curScale);
                int   TILE_SIZE_Y = (int)(formMain.Layers[0].blockHeight * curScale);
                var   probeIm     = MapEditor.ScreenToImage(formMain.BigBlocks, formMain.Layers, formMain.ScreenNo, curScale, false, 0, 0, WIDTH, HEIGHT);
                int   screenCount = SaveScreensCount.Count;
                var   resultImage = new Bitmap(probeIm.Width * screenCount, probeIm.Height);
                using (var g = Graphics.FromImage(resultImage))
                {
                    for (int i = 0; i < screenCount; i++)
                    {
                        var im = MapEditor.ScreenToImage(formMain.BigBlocks, formMain.Layers, first + i, curScale, false, 0, 0, WIDTH, HEIGHT);
                        g.DrawImage(im, new Point(i * im.Width, 0));
                    }
                }
                resultImage.Save(SaveScreensCount.Filename);
            }
        }
Ejemplo n.º 2
0
        private void bttExportJson_Click(object sender, EventArgs e)
        {
            int[][] screens, screens2;
            loadScreens(out screens, out screens2);

            SaveScreensCount.ExportMode = true;
            SaveScreensCount.Filename   = "exportedScreens.json";
            var f = new SaveScreensCount();

            f.Text = "Export json";

            formMain.subeditorOpen(f, (ToolStripItem)sender, true);

            if (SaveScreensCount.Result)
            {
                if (SaveScreensCount.Count <= 0)
                {
                    MessageBox.Show("Screens count value must be greater than 0", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                int saveLastIndex = SaveScreensCount.First + SaveScreensCount.Count;
                if (saveLastIndex > screens.Length)
                {
                    MessageBox.Show(string.Format("First screen + Screens Count value ({0}) must be less than Total Screen Count in the game ({1}", saveLastIndex, screens.Length), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                int first        = SaveScreensCount.First;
                int WIDTH        = ConfigScript.getScreenWidth(formMain.LevelNoForScreens);
                int HEIGHT       = ConfigScript.getScreenHeight(formMain.LevelNoForScreens);
                int screenCount  = SaveScreensCount.Count;
                var screenParams = new { Width = WIDTH, Height = HEIGHT, Screens = new int[screenCount][] };
                using (TextWriter tw = new StreamWriter(SaveScreensCount.Filename))
                {
                    for (int i = 0; i < screenCount; i++)
                    {
                        screenParams.Screens[i] = screens[first + i];
                    }
                    tw.WriteLine(JsonConvert.SerializeObject(screenParams));
                }
            }
        }
Ejemplo n.º 3
0
        private void bttExportJson_Click(object sender, EventArgs e)
        {
            var screens = ConfigScript.loadScreens();

            SaveScreensCount.exportMode = true;
            SaveScreensCount.filename   = "exportedScreens.json";
            var f = new SaveScreensCount();

            f.Text = "Export json";

            formMain.subeditorOpen(f, (ToolStripItem)sender, true);

            if (SaveScreensCount.result)
            {
                if (SaveScreensCount.count <= 0)
                {
                    MessageBox.Show("Screens count value must be greater than 0", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                int saveLastIndex = SaveScreensCount.first + SaveScreensCount.count;
                int screensCount  = screens.Length;
                if (saveLastIndex > screensCount)
                {
                    MessageBox.Show(string.Format("First screen + Screens Count value ({0}) must be less than Total Screen Count in the game ({1}", saveLastIndex, screensCount), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                int first        = SaveScreensCount.first;
                int screenCount  = SaveScreensCount.count;
                var screenParams = new { Screens = new CadEditor.Screen[screenCount] };
                using (TextWriter tw = new StreamWriter(SaveScreensCount.filename))
                {
                    for (int i = 0; i < screenCount; i++)
                    {
                        screenParams.Screens[i] = screens[first + i];
                    }
                    tw.WriteLine(JsonConvert.SerializeObject(screenParams));
                }
            }
        }
Ejemplo n.º 4
0
        private void btExport_Click(object sender, EventArgs e)
        {
            int[][] screens, screens2;
            loadScreens(out screens, out screens2);
            SaveScreensCount.ExportMode = true;
            SaveScreensCount.Filename   = "exportedScreens.bin";
            var f = new SaveScreensCount();

            f.Text = "Export";
            formMain.subeditorOpen(f, (ToolStripItem)sender, true);
            if (SaveScreensCount.Result)
            {
                if (SaveScreensCount.Count <= 0)
                {
                    MessageBox.Show("Screens count value must be greater than 0", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                int saveLastIndex = SaveScreensCount.First + SaveScreensCount.Count;
                if (saveLastIndex > screens.Length)
                {
                    MessageBox.Show(string.Format("First screen + Screens Count value ({0}) must be less than Total Screen Count in the game ({1}", saveLastIndex, screens.Length), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                int screenSize  = ConfigScript.screensOffset[formMain.LevelNoForScreens].recSize;
                int screenCount = SaveScreensCount.Count;
                int first       = SaveScreensCount.First;
                var data        = new byte[screenSize * screenCount];

                for (int i = 0; i < screenCount; i++)
                {
                    byte[] byteScreen = new byte[screens[i + first].Length];
                    //all ints will be truncated to byte. it's ok for NES games, but may not for other platforms
                    byteScreen = Array.ConvertAll(screens[i + first], (int x) => (byte)x);
                    Array.Copy(byteScreen, 0, data, screenSize * i, screenSize);
                }
                Utils.saveDataToFile(SaveScreensCount.Filename, data);
            }
        }
Ejemplo n.º 5
0
        private void btImport_Click(object sender, EventArgs e)
        {
            int[][] screens, screens2;
            loadScreens(out screens, out screens2);
            SaveScreensCount.ExportMode = false;
            SaveScreensCount.Filename   = "exportedScreens.bin";
            var f = new SaveScreensCount();

            f.Text = "Import";
            formMain.subeditorOpen(f, (ToolStripItem)sender, true);
            if (SaveScreensCount.Result)
            {
                int saveLastIndex = SaveScreensCount.First;
                if (saveLastIndex > screens.Length)
                {
                    MessageBox.Show(string.Format("First screen ({0}) must be less than Total Screen Count in the game ({1}", saveLastIndex, screens.Length), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                if (!File.Exists(SaveScreensCount.Filename))
                {
                    MessageBox.Show(string.Format("File ({0}) not exists", SaveScreensCount.Filename), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                int screenSize  = ConfigScript.screensOffset[formMain.LevelNoForScreens].recSize;
                int first       = SaveScreensCount.First;
                var data        = Utils.loadDataFromFile(SaveScreensCount.Filename);
                int screenCount = data.Length / screenSize;
                for (int i = 0; i < screenCount; i++)
                {
                    Array.Copy(data, i * screenSize, screens[first + i], 0, screenSize);
                }
            }
            formMain.SetScreens(screens);
            formMain.setDirty();
            formMain.reloadLevel(false);
        }
Ejemplo n.º 6
0
        private void bttExportPic_Click(object sender, EventArgs e)
        {
            SaveScreensCount.exportMode = true;
            SaveScreensCount.filename   = "exportedScreens.png";
            var f = new SaveScreensCount();

            f.Text = "Export picture";

            formMain.subeditorOpen(f, (ToolStripItem)sender, true);

            if (SaveScreensCount.result)
            {
                if (SaveScreensCount.count <= 0)
                {
                    MessageBox.Show("Screens count value must be greater than 0", "Error", MessageBoxButtons.OK,
                                    MessageBoxIcon.Error);
                    return;
                }

                int saveLastIndex = SaveScreensCount.first + SaveScreensCount.count;
                var screens       = ConfigScript.loadScreens();
                int screensCount  = screens.Length;
                if (saveLastIndex > screensCount)
                {
                    MessageBox.Show(
                        string.Format(
                            "First screen + Screens Count value ({0}) must be less than Total Screen Count in the game ({1}",
                            saveLastIndex, screensCount), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                int   first    = SaveScreensCount.first;
                int   firstW   = screens[0].width;
                int   firstH   = screens[0].height;
                float curScale = formMain.curScale;
                //only for screens with same sizes

                var renderParams = new MapEditor.RenderParams
                {
                    bigBlocks  = formMain.bigBlocks,
                    curScale   = curScale,
                    showBorder = false,
                    width      = firstW,
                    height     = firstH
                };

                var probeIm     = MapEditor.screenToImage(formMain.screens, formMain.screenNo, renderParams);
                int screenCount = SaveScreensCount.count;
                var resultImage = new Bitmap(probeIm.Width * screenCount, probeIm.Height);
                using (var g = Graphics.FromImage(resultImage))
                {
                    for (int i = 0; i < screenCount; i++)
                    {
                        int width  = screens[i].width;
                        int height = screens[i].height;
                        var im     = MapEditor.screenToImage(formMain.screens, first + i, renderParams);
                        g.DrawImage(im, new Point(i * im.Width, 0));
                    }
                }
                resultImage.Save(SaveScreensCount.filename);
            }
        }