diff --git a/NethackHelper/MainForm.Designer.cs b/NethackHelper/MainForm.Designer.cs index a2b23c6..e9560f6 100644 --- a/NethackHelper/MainForm.Designer.cs +++ b/NethackHelper/MainForm.Designer.cs @@ -102,6 +102,7 @@ namespace NethackHelper { this.fileToolStripMenuItem = new ToolStripMenuItem(); this.resetToolStripMenuItem = new ToolStripMenuItem(); this.toolTip1 = new ToolTip(this.components); + this.copyOverlayURLToolStripMenuItem = new ToolStripMenuItem(); extrinsicLabel = new Label(); intrinsicLabel = new Label(); label3 = new Label(); @@ -1082,7 +1083,7 @@ namespace NethackHelper { // // fileToolStripMenuItem // - this.fileToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { this.resetToolStripMenuItem }); + this.fileToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { this.resetToolStripMenuItem, this.copyOverlayURLToolStripMenuItem }); this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; this.fileToolStripMenuItem.Size = new Size(37, 20); this.fileToolStripMenuItem.Text = "File"; @@ -1090,9 +1091,16 @@ namespace NethackHelper { // resetToolStripMenuItem // this.resetToolStripMenuItem.Name = "resetToolStripMenuItem"; - this.resetToolStripMenuItem.Size = new Size(102, 22); + this.resetToolStripMenuItem.Size = new Size(180, 22); this.resetToolStripMenuItem.Text = "Reset"; // + // copyOverlayURLToolStripMenuItem + // + this.copyOverlayURLToolStripMenuItem.Name = "copyOverlayURLToolStripMenuItem"; + this.copyOverlayURLToolStripMenuItem.Size = new Size(180, 22); + this.copyOverlayURLToolStripMenuItem.Text = "Copy Overlay URL"; + this.copyOverlayURLToolStripMenuItem.Click += this.copyOverlayURLToolStripMenuItem_Click; + // // MainForm // this.AutoScaleDimensions = new SizeF(7F, 15F); @@ -1205,5 +1213,6 @@ namespace NethackHelper { private PropertyBox waterWalkingBox; private PropertyBox lifeSavingBox; private PropertyBox flyingBox; + private ToolStripMenuItem copyOverlayURLToolStripMenuItem; } } \ No newline at end of file diff --git a/NethackHelper/MainForm.cs b/NethackHelper/MainForm.cs index f602edb..5813dbf 100644 --- a/NethackHelper/MainForm.cs +++ b/NethackHelper/MainForm.cs @@ -7,6 +7,7 @@ namespace NethackHelper { using System.IO; using System.Threading.Tasks; using System.Windows.Forms; + using YamlDotNet.Core; public partial class MainForm : Form { private const int PORT = 5993; @@ -37,9 +38,19 @@ namespace NethackHelper { this.charismaSelector.ValueMember = "Modifier"; foreach (var filename in Directory.EnumerateFiles("sokoban", "*.yaml")) { - var sokoban = new SokobanSolution(YamlOptions.DeserializeFile(filename)); - this.sokobans.Add(sokoban); - this.sokobanLevelList.Items.Add(sokoban.Name); + try { + var sokoban = new SokobanSolution(YamlOptions.DeserializeFile(filename)); + this.sokobans.Add(sokoban); + this.sokobanLevelList.Items.Add(sokoban.Name); + } catch (YamlException err) { + Console.Error.WriteLine("Error loading sokoban file {0}", filename); + Console.Error.WriteLine(err.Message); + Console.Error.WriteLine(err.StackTrace); + } catch (SokobanError err) { + Console.Error.WriteLine("Error loading sokoban file {0}", filename); + Console.Error.WriteLine(err.Message); + Console.Error.WriteLine(err.StackTrace); + } } var versions = YamlOptions.DeserializeFile>("items/versions.yaml"); @@ -261,5 +272,9 @@ namespace NethackHelper { private void godAngryCheckbox_CheckedChanged(object sender, EventArgs e) { TrackerManager.Instance.Tracker.UpdateAngry(godAngryCheckbox.Checked); } + + private void copyOverlayURLToolStripMenuItem_Click(object sender, EventArgs e) { + Clipboard.SetText($"http://localhost:{PORT}/tracker.html"); + } } } \ No newline at end of file