private void cStructsToolStripMenuItem_Click(object sender, EventArgs e) { using (SaveFileDialog sd = new SaveFileDialog() { DefaultExt = "c", Filter = "C Files|*.c" }) if (sd.ShowDialog(this) == DialogResult.OK) { LandTableFormat fmt = LevelData.geo.Format; switch (fmt) { case LandTableFormat.SA1: case LandTableFormat.SADX: using (StructExportDialog ed = new StructExportDialog() { Format = LevelData.geo.Format }) if (ed.ShowDialog(this) == DialogResult.OK) fmt = ed.Format; else return; break; } List<string> labels = new List<string>() { LevelData.geo.Name }; System.Text.StringBuilder result = new System.Text.StringBuilder("/* Sonic Adventure "); switch (fmt) { case LandTableFormat.SA1: result.Append("1"); break; case LandTableFormat.SADX: result.Append("DX"); break; case LandTableFormat.SA2: result.Append("2"); break; } result.AppendLine(" LandTable"); result.AppendLine(" * "); result.AppendLine(" * Generated by SALVL"); result.AppendLine(" * "); if (!string.IsNullOrEmpty(LevelData.geo.Description)) { result.Append(" * Description: "); result.AppendLine(LevelData.geo.Description); result.AppendLine(" * "); } if (!string.IsNullOrEmpty(LevelData.geo.Author)) { result.Append(" * Author: "); result.AppendLine(LevelData.geo.Author); result.AppendLine(" * "); } result.AppendLine(" */"); result.AppendLine(); string[] texnames = null; if (LevelData.leveltexs != null) { texnames = new string[LevelData.TextureBitmaps[LevelData.leveltexs].Length]; for (int i = 0; i < LevelData.TextureBitmaps[LevelData.leveltexs].Length; i++) texnames[i] = string.Format("{0}TexName_{1}", LevelData.leveltexs, LevelData.TextureBitmaps[LevelData.leveltexs][i].Name); result.AppendFormat("enum {0}TexName", LevelData.leveltexs); result.AppendLine(); result.AppendLine("{"); result.AppendLine("\t" + string.Join("," + Environment.NewLine + "\t", texnames)); result.AppendLine("};"); result.AppendLine(); } result.Append(LevelData.geo.ToStructVariables(fmt, labels, texnames)); File.WriteAllText(sd.FileName, result.ToString()); } }
private void cStructsToolStripMenuItem_Click(object sender, EventArgs e) { using (SaveFileDialog sd = new SaveFileDialog() { DefaultExt = "c", Filter = "C Files|*.c" }) if (sd.ShowDialog(this) == DialogResult.OK) { LandTableFormat fmt = LevelData.geo.Format; switch (fmt) { case LandTableFormat.SA1: case LandTableFormat.SADX: using (StructExportDialog ed = new StructExportDialog() { Format = LevelData.geo.Format }) if (ed.ShowDialog(this) == DialogResult.OK) { fmt = ed.Format; } else { return; } break; } List <string> labels = new List <string>() { LevelData.geo.Name }; using (StreamWriter sw = File.CreateText(sd.FileName)) { sw.Write("/* Sonic Adventure "); switch (fmt) { case LandTableFormat.SA1: sw.Write("1"); break; case LandTableFormat.SADX: sw.Write("DX"); break; case LandTableFormat.SA2: sw.Write("2"); break; } sw.WriteLine(" LandTable"); sw.WriteLine(" * "); sw.WriteLine(" * Generated by SALVL"); sw.WriteLine(" * "); if (!string.IsNullOrEmpty(LevelData.geo.Description)) { sw.Write(" * Description: "); sw.WriteLine(LevelData.geo.Description); sw.WriteLine(" * "); } if (!string.IsNullOrEmpty(LevelData.geo.Author)) { sw.Write(" * Author: "); sw.WriteLine(LevelData.geo.Author); sw.WriteLine(" * "); } sw.WriteLine(" */"); sw.WriteLine(); string[] texnames = null; if (LevelData.leveltexs != null) { texnames = new string[LevelData.TextureBitmaps[LevelData.leveltexs].Length]; for (int i = 0; i < LevelData.TextureBitmaps[LevelData.leveltexs].Length; i++) { texnames[i] = string.Format("{0}TexName_{1}", LevelData.leveltexs, LevelData.TextureBitmaps[LevelData.leveltexs][i].Name); } sw.Write("enum {0}TexName", LevelData.leveltexs); sw.WriteLine(); sw.WriteLine("{"); sw.WriteLine("\t" + string.Join("," + Environment.NewLine + "\t", texnames)); sw.WriteLine("};"); sw.WriteLine(); } LevelData.geo.ToStructVariables(sw, fmt, labels, texnames); } } }