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); } }
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)); } } }
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)); } } }
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); } }
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); }
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); } }