VForm.cs 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777
  1. using Server.MirForms.VisualMapInfo.Class;
  2. using Server.MirForms.VisualMapInfo.Control;
  3. using Microsoft.VisualBasic.PowerPacks;
  4. using Server.MirEnvir;
  5. using Server.MirDatabase;
  6. namespace Server.MirForms.VisualMapInfo
  7. {
  8. public partial class VForm : Form
  9. {
  10. ShapeContainer Canvas = new ShapeContainer();
  11. public Envir Envir => SMain.EditEnvir;
  12. public Point MouseDownLocation;
  13. public VForm()
  14. {
  15. InitializeComponent();
  16. }
  17. private void VForm_Load(object sender, EventArgs e)
  18. {
  19. InitializeMap();
  20. InitializeMineInfo();
  21. InitializeRespawnInfo();
  22. VisualizerGlobal.FocusModeActivated += FocusModeActivated;
  23. }
  24. private void VForm_FormClosing(object sender, FormClosingEventArgs e)
  25. {
  26. VisualizerGlobal.ZoomLevel = 1;
  27. VisualizerGlobal.MapInfo.Respawns.Clear();
  28. VisualizerGlobal.MapInfo.MineZones.Clear();
  29. for (int i = 0; i < RespawnPanel.Controls.Count; i++)
  30. {
  31. try
  32. {
  33. RespawnEntry RespawnControl = (RespawnEntry)RespawnPanel.Controls[i];
  34. MirDatabase.RespawnInfo NewRespawnZone = new MirDatabase.RespawnInfo();
  35. NewRespawnZone.Location = new Point(RespawnControl.X, RespawnControl.Y);
  36. NewRespawnZone.MonsterIndex = RespawnControl.MonsterIndex;
  37. NewRespawnZone.Spread = RespawnControl.Range;
  38. NewRespawnZone.Count = Convert.ToUInt16(RespawnControl.Count.Text);
  39. NewRespawnZone.Delay = Convert.ToUInt16(RespawnControl.Delay.Text);
  40. NewRespawnZone.RoutePath = RespawnControl.RoutePath;
  41. NewRespawnZone.Direction = RespawnControl.Direction;
  42. NewRespawnZone.RandomDelay = RespawnControl.RandomDelay;
  43. VisualizerGlobal.MapInfo.Respawns.Add(NewRespawnZone);
  44. }
  45. catch (Exception) { continue; }
  46. }
  47. for (int i = 0; i < MiningPanel.Controls.Count; i++)
  48. {
  49. try
  50. {
  51. MineEntry MineControl = (MineEntry)MiningPanel.Controls[i];
  52. MineZone NewMineZone = new MineZone();
  53. NewMineZone.Location = new Point(MineControl.X, MineControl.Y);
  54. NewMineZone.Mine = MineControl.MineIndex;
  55. NewMineZone.Size = MineControl.Range;
  56. VisualizerGlobal.MapInfo.MineZones.Add(NewMineZone);
  57. }
  58. catch (Exception) { continue; }
  59. }
  60. }
  61. private void InitializeMap()
  62. {
  63. ReadMap readMap = new ReadMap();
  64. readMap.mapFile = VisualizerGlobal.MapInfo.FileName;
  65. readMap.Load();
  66. MapImage.Image = VisualizerGlobal.ClippingMap;
  67. Canvas.Parent = MapImage;
  68. Canvas.BringToFront();
  69. MapDetailsLabel.Text =
  70. $"Map Name: {VisualizerGlobal.MapInfo.Title} Width: {VisualizerGlobal.ClippingMap.Width} Height: {VisualizerGlobal.ClippingMap.Height}";
  71. }
  72. private void InitializeMineInfo()
  73. {
  74. List<string> miningFilterItems = new() { { "Disabled" } };
  75. Settings.MineSetList.ForEach(x => miningFilterItems.Add(x.Name));
  76. miningFilterItems.Add("No Filter");
  77. MiningFilter.DataSource = miningFilterItems;
  78. MiningFilter.Text = "No Filter";
  79. for (int i = 0; i < VisualizerGlobal.MapInfo.MineZones.Count; i++)
  80. {
  81. MineEntry MineRegion = new MineEntry();
  82. MineRegion.Dock = DockStyle.Top;
  83. MineRegion.MineIndex = VisualizerGlobal.MapInfo.MineZones[i].Mine;
  84. MineRegion.X = VisualizerGlobal.MapInfo.MineZones[i].Location.X;
  85. MineRegion.Y = VisualizerGlobal.MapInfo.MineZones[i].Location.Y;
  86. MineRegion.tempRange = VisualizerGlobal.MapInfo.MineZones[i].Size;
  87. MineRegion.Range = VisualizerGlobal.MapInfo.MineZones[i].Size;
  88. MineRegion.ShowControl();
  89. MiningPanel.Controls.Add(MineRegion);
  90. MineRegion.RegionHighlight.Parent = Canvas;
  91. }
  92. }
  93. private void InitializeRespawnInfo()
  94. {
  95. for (int i = 0; i < Envir.MonsterInfoList.Count; i++)
  96. RespawnsFilter.Items.Add(Envir.MonsterInfoList[i]);
  97. RespawnsFilter.Items.Add("No Filter");
  98. RespawnsFilter.Text = "No Filter";
  99. for (int i = 0; i < VisualizerGlobal.MapInfo.Respawns.Count; i++)
  100. {
  101. RespawnEntry RespawnRegion = new RespawnEntry();
  102. RespawnRegion.Dock = DockStyle.Top;
  103. RespawnRegion.MonsterIndex = VisualizerGlobal.MapInfo.Respawns[i].MonsterIndex;
  104. RespawnRegion.X = VisualizerGlobal.MapInfo.Respawns[i].Location.X;
  105. RespawnRegion.Y = VisualizerGlobal.MapInfo.Respawns[i].Location.Y;
  106. RespawnRegion.Range = VisualizerGlobal.MapInfo.Respawns[i].Spread;
  107. RespawnRegion.Count.Text = VisualizerGlobal.MapInfo.Respawns[i].Count.ToString();
  108. RespawnRegion.Delay.Text = VisualizerGlobal.MapInfo.Respawns[i].Delay.ToString();
  109. RespawnRegion.RoutePath = VisualizerGlobal.MapInfo.Respawns[i].RoutePath;
  110. RespawnRegion.Direction = VisualizerGlobal.MapInfo.Respawns[i].Direction;
  111. RespawnRegion.RandomDelay = VisualizerGlobal.MapInfo.Respawns[i].RandomDelay;
  112. RespawnRegion.HideControl();
  113. RespawnPanel.Controls.Add(RespawnRegion);
  114. RespawnRegion.RegionHighlight.Parent = Canvas;
  115. }
  116. }
  117. private void RedrawMap()
  118. {
  119. Bitmap Map = new Bitmap(
  120. VisualizerGlobal.ClippingMap.Width * VisualizerGlobal.ZoomLevel,
  121. VisualizerGlobal.ClippingMap.Height * VisualizerGlobal.ZoomLevel);
  122. using (Graphics g = Graphics.FromImage(Map))
  123. {
  124. g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
  125. g.DrawImage(VisualizerGlobal.ClippingMap, 0, 0, Map.Width, Map.Height);
  126. }
  127. MapImage.Image = Map;
  128. if (VisualizerGlobal.SelectedFocusType == VisualizerGlobal.FocusType.Mining)
  129. VisualizerGlobal.FocusMineEntry.UpdateForFocus();
  130. if (VisualizerGlobal.SelectedFocusType == VisualizerGlobal.FocusType.Respawn)
  131. VisualizerGlobal.FocusRespawnEntry.UpdateForFocus();
  132. }
  133. private void FocusModeActivated(object sender, EventArgs e)
  134. {
  135. for (int i = MiningPanel.Controls.Count - 1; i > -1; i--)
  136. try
  137. {
  138. MineEntry MineControl = (MineEntry)MiningPanel.Controls[i];
  139. MineControl.Visible = false;
  140. MineControl.RegionHighlight.Visible = false;
  141. }
  142. catch (Exception)
  143. {
  144. continue;
  145. }
  146. for (int i = RespawnPanel.Controls.Count - 1; i > -1; i--)
  147. try
  148. {
  149. RespawnEntry RespawnControl = (RespawnEntry)RespawnPanel.Controls[i];
  150. RespawnControl.Visible = false;
  151. RespawnControl.RegionHighlight.Visible = false;
  152. }
  153. catch (Exception)
  154. {
  155. continue;
  156. }
  157. if (VisualizerGlobal.SelectedFocusType == VisualizerGlobal.FocusType.Mining)
  158. {
  159. VisualizerGlobal.FocusMineEntry.Visible = true;
  160. VisualizerGlobal.FocusMineEntry.RegionHighlight.Visible = true;
  161. VisualizerGlobal.FocusMineEntry.UpdateForFocus();
  162. }
  163. if (VisualizerGlobal.SelectedFocusType == VisualizerGlobal.FocusType.Respawn)
  164. {
  165. VisualizerGlobal.FocusRespawnEntry.Visible = true;
  166. VisualizerGlobal.FocusRespawnEntry.RegionHighlight.Visible = true;
  167. VisualizerGlobal.FocusRespawnEntry.UpdateForFocus();
  168. }
  169. EndFocus.Visible = true;
  170. FocusBreak.Visible = true;
  171. ToolSelectedChanged(MoveButton, null);
  172. }
  173. private void ToolSelectedChanged(object sender, EventArgs e)
  174. {
  175. MapImage.Cursor = Cursors.Arrow;
  176. ToolStripButton[] ToolButtons = new ToolStripButton[] { SelectButton, AddButton, MoveButton, ResizeButton };
  177. foreach (var Tool in ToolButtons)
  178. Tool.Checked = false;
  179. ToolStripButton ToolSender = (ToolStripButton)sender;
  180. ToolSender.Checked = true;
  181. switch (ToolSender.Text)
  182. {
  183. case "Select Region":
  184. VisualizerGlobal.SelectedTool = VisualizerGlobal.Tool.Select;
  185. VisualizerGlobal.Cursor = Cursors.Arrow;
  186. break;
  187. case "Add Region":
  188. VisualizerGlobal.SelectedTool = VisualizerGlobal.Tool.Add;
  189. VisualizerGlobal.Cursor = Cursors.UpArrow;
  190. break;
  191. case "Move Region":
  192. VisualizerGlobal.SelectedTool = VisualizerGlobal.Tool.Move;
  193. VisualizerGlobal.Cursor = Cursors.SizeAll;
  194. break;
  195. case "Resize Region":
  196. VisualizerGlobal.SelectedTool = VisualizerGlobal.Tool.Resize;
  197. VisualizerGlobal.Cursor = Cursors.SizeWE;
  198. break;
  199. default:
  200. break;
  201. }
  202. }
  203. private void EndFocus_Click(object sender, EventArgs e)
  204. {
  205. EndFocus.Visible = false;
  206. FocusBreak.Visible = false;
  207. MiningFilter.Enabled = true;
  208. MiningRemoveSelected.Enabled = true;
  209. RespawnsFilter.Enabled = true;
  210. RespawnsRemoveSelected.Enabled = true;
  211. VisualizerGlobal.ZoomLevel = 1;
  212. RedrawMap();
  213. if (VisualizerGlobal.SelectedFocusType == VisualizerGlobal.FocusType.Mining)
  214. MiningFilter_SelectedIndexChanged(MiningFilter, null);
  215. if (VisualizerGlobal.SelectedFocusType == VisualizerGlobal.FocusType.Respawn)
  216. RespawnsFilter_SelectedIndexChanged(RespawnsFilter, null);
  217. VisualizerGlobal.FocusMineEntry = null;
  218. VisualizerGlobal.FocusRespawnEntry = null;
  219. VisualizerGlobal.SelectedFocusType = VisualizerGlobal.FocusType.None;
  220. }
  221. private void MapImage_Click(object sender, EventArgs e)
  222. {
  223. if (RegionTabs.SelectedTab.Text == "Mining")
  224. if (VisualizerGlobal.SelectedTool == VisualizerGlobal.Tool.Add)
  225. {
  226. MineEntry MineControl = new MineEntry()
  227. {
  228. Dock = DockStyle.Top,
  229. X = MouseDownLocation.X,
  230. Y = MouseDownLocation.Y,
  231. Range = 50
  232. };
  233. MineControl.ShowControl();
  234. MineControl.RegionHighlight.Parent = Canvas;
  235. MiningPanel.Controls.Add(MineControl);
  236. ToolSelectedChanged(MoveButton, e);
  237. }
  238. if (RegionTabs.SelectedTab.Text == "Respawns")
  239. if (VisualizerGlobal.SelectedTool == VisualizerGlobal.Tool.Add)
  240. {
  241. RespawnEntry RespawnControl = new RespawnEntry()
  242. {
  243. Dock = DockStyle.Top,
  244. X = MouseDownLocation.X,
  245. Y = MouseDownLocation.Y,
  246. Range = 50
  247. };
  248. RespawnControl.ShowControl();
  249. RespawnControl.RegionHighlight.Parent = Canvas;
  250. RespawnPanel.Controls.Add(RespawnControl);
  251. ToolSelectedChanged(MoveButton, e);
  252. }
  253. }
  254. private void RegionTabs_SelectedIndexChanged(object sender, EventArgs e)
  255. {
  256. if (RegionTabs.SelectedTab.Text == "Mining")
  257. {
  258. for (int i = RespawnPanel.Controls.Count; i > -1; --i)
  259. try
  260. {
  261. RespawnEntry RespawnControl = (RespawnEntry)RespawnPanel.Controls[i];
  262. RespawnControl.HideControl();
  263. }
  264. catch (Exception) { continue; }
  265. MiningFilter_SelectedIndexChanged(MiningFilter, null);
  266. }
  267. else if (RegionTabs.SelectedTab.Text == "Respawns")
  268. {
  269. for (int i = MiningPanel.Controls.Count; i > -1; --i)
  270. try
  271. {
  272. MineEntry MineControl = (MineEntry)MiningPanel.Controls[i];
  273. MineControl.HideControl();
  274. }
  275. catch (Exception) { continue; }
  276. RespawnsFilter_SelectedIndexChanged(RespawnsFilter, null);
  277. }
  278. }
  279. private void MapImage_MouseDown(object sender, MouseEventArgs e)
  280. {
  281. if (VisualizerGlobal.SelectedTool == VisualizerGlobal.Tool.Select) return;
  282. MouseDownLocation = e.Location;
  283. }
  284. protected override CreateParams CreateParams
  285. {
  286. get
  287. {
  288. CreateParams cp = base.CreateParams;
  289. cp.ExStyle |= 0x02000000; // Turn on WS_EX_COMPOSITED
  290. return cp;
  291. }
  292. }
  293. // Quick Keys
  294. protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
  295. {
  296. if (keyData == Keys.M)
  297. {
  298. ToolSelectedChanged(MoveButton, new EventArgs());
  299. return true;
  300. }
  301. if (keyData == Keys.S)
  302. {
  303. ToolSelectedChanged(SelectButton, new EventArgs());
  304. return true;
  305. }
  306. if (keyData == Keys.R)
  307. {
  308. ToolSelectedChanged(ResizeButton, new EventArgs());
  309. return true;
  310. }
  311. if (keyData == Keys.A)
  312. {
  313. ToolSelectedChanged(AddButton, new EventArgs());
  314. return true;
  315. }
  316. if (keyData == Keys.Add && VisualizerGlobal.FocusModeActive == true)
  317. {
  318. if (VisualizerGlobal.ZoomLevel != 6)
  319. VisualizerGlobal.ZoomLevel++;
  320. RedrawMap();
  321. return true;
  322. }
  323. if (keyData == Keys.Subtract && VisualizerGlobal.FocusModeActive == true)
  324. {
  325. if (VisualizerGlobal.ZoomLevel != 1)
  326. VisualizerGlobal.ZoomLevel--;
  327. RedrawMap();
  328. return true;
  329. }
  330. if (keyData == Keys.Left && VisualizerGlobal.FocusModeActive == true)
  331. {
  332. if (VisualizerGlobal.SelectedFocusType == VisualizerGlobal.FocusType.Mining)
  333. {
  334. VisualizerGlobal.FocusMineEntry.X--;
  335. VisualizerGlobal.FocusMineEntry.Range = VisualizerGlobal.FocusMineEntry.tempRange;
  336. }
  337. else if (VisualizerGlobal.SelectedFocusType == VisualizerGlobal.FocusType.Respawn)
  338. {
  339. VisualizerGlobal.FocusRespawnEntry.X--;
  340. VisualizerGlobal.FocusRespawnEntry.Range = VisualizerGlobal.FocusRespawnEntry.tempRange;
  341. }
  342. return true;
  343. }
  344. if (keyData == Keys.Right && VisualizerGlobal.FocusModeActive == true)
  345. {
  346. if (VisualizerGlobal.SelectedFocusType == VisualizerGlobal.FocusType.Mining)
  347. {
  348. VisualizerGlobal.FocusMineEntry.X++;
  349. VisualizerGlobal.FocusMineEntry.Range = VisualizerGlobal.FocusMineEntry.tempRange;
  350. }
  351. else if (VisualizerGlobal.SelectedFocusType == VisualizerGlobal.FocusType.Respawn)
  352. {
  353. VisualizerGlobal.FocusRespawnEntry.X++;
  354. VisualizerGlobal.FocusRespawnEntry.Range = VisualizerGlobal.FocusRespawnEntry.tempRange;
  355. }
  356. return true;
  357. }
  358. if (keyData == Keys.Up && VisualizerGlobal.FocusModeActive == true)
  359. {
  360. if (VisualizerGlobal.SelectedFocusType == VisualizerGlobal.FocusType.Mining)
  361. {
  362. VisualizerGlobal.FocusMineEntry.Y--;
  363. VisualizerGlobal.FocusMineEntry.Range = VisualizerGlobal.FocusMineEntry.tempRange;
  364. }
  365. else if (VisualizerGlobal.SelectedFocusType == VisualizerGlobal.FocusType.Respawn)
  366. {
  367. VisualizerGlobal.FocusRespawnEntry.Y--;
  368. VisualizerGlobal.FocusRespawnEntry.Range = VisualizerGlobal.FocusRespawnEntry.tempRange;
  369. }
  370. return true;
  371. }
  372. if (keyData == Keys.Down && VisualizerGlobal.FocusModeActive == true)
  373. {
  374. if (VisualizerGlobal.SelectedFocusType == VisualizerGlobal.FocusType.Mining)
  375. {
  376. VisualizerGlobal.FocusMineEntry.Y++;
  377. VisualizerGlobal.FocusMineEntry.Range = VisualizerGlobal.FocusMineEntry.tempRange;
  378. }
  379. else if (VisualizerGlobal.SelectedFocusType == VisualizerGlobal.FocusType.Respawn)
  380. {
  381. VisualizerGlobal.FocusRespawnEntry.Y++;
  382. VisualizerGlobal.FocusRespawnEntry.Range = VisualizerGlobal.FocusRespawnEntry.tempRange;
  383. }
  384. return true;
  385. }
  386. if (keyData == Keys.Escape && VisualizerGlobal.FocusModeActive == true)
  387. {
  388. EndFocus_Click(EndFocus, null);
  389. return true;
  390. }
  391. return base.ProcessCmdKey(ref msg, keyData);
  392. }
  393. #region "START Mining Tool Bar"
  394. private void MiningSelectAll_Click(object sender, EventArgs e)
  395. {
  396. for (int i = MiningPanel.Controls.Count - 1; i > -1; i--)
  397. {
  398. MineEntry MineControl = (MineEntry)MiningPanel.Controls[i];
  399. MineControl.Selected.Checked = true;
  400. }
  401. }
  402. private void MiningSelectNone_Click(object sender, EventArgs e)
  403. {
  404. for (int i = MiningPanel.Controls.Count - 1; i > -1; i--)
  405. {
  406. MineEntry MineControl = (MineEntry)MiningPanel.Controls[i];
  407. MineControl.Selected.Checked = false;
  408. }
  409. }
  410. private void MiningInvertSelection_Click(object sender, EventArgs e)
  411. {
  412. for (int i = MiningPanel.Controls.Count - 1; i > -1; i--)
  413. {
  414. MineEntry MineControl = (MineEntry)MiningPanel.Controls[i];
  415. MineControl.Selected.Checked = !MineControl.Selected.Checked;
  416. }
  417. }
  418. private void MiningRemoveSelected_Click(object sender, EventArgs e)
  419. {
  420. if (MiningPanel.Controls.Count == 0) return;
  421. DialogResult result = MessageBox.Show("Remove selected records?", "", MessageBoxButtons.YesNoCancel);
  422. if (result != DialogResult.Yes) return;
  423. for (int i = MiningPanel.Controls.Count; i > -1; --i)
  424. {
  425. try
  426. {
  427. MineEntry MineControl = (MineEntry)MiningPanel.Controls[i];
  428. if (MineControl.Selected.Checked == true)
  429. MineControl.RemoveEntry();
  430. }
  431. catch (Exception)
  432. {
  433. continue;
  434. }
  435. }
  436. }
  437. private void MiningHideRegion_Click(object sender, EventArgs e)
  438. {
  439. for (int i = MiningPanel.Controls.Count - 1; i > -1; i--)
  440. {
  441. try
  442. {
  443. MineEntry MineControl = (MineEntry)MiningPanel.Controls[i];
  444. if (MineControl.Selected.Checked == true)
  445. MineControl.HideRegion();
  446. }
  447. catch (Exception)
  448. {
  449. continue;
  450. }
  451. }
  452. }
  453. private void MiningShowRegion_Click(object sender, EventArgs e)
  454. {
  455. for (int i = MiningPanel.Controls.Count - 1; i > -1; i--)
  456. {
  457. try
  458. {
  459. MineEntry MineControl = (MineEntry)MiningPanel.Controls[i];
  460. if (MineControl.Selected.Checked == true)
  461. MineControl.ShowRegion();
  462. }
  463. catch (Exception)
  464. {
  465. continue;
  466. }
  467. }
  468. }
  469. private void MiningFocusRegion_Click(object sender, EventArgs e)
  470. {
  471. VisualizerGlobal.SelectedTool = VisualizerGlobal.Tool.Focus;
  472. VisualizerGlobal.Cursor = Cursors.Hand;
  473. MiningFilter.Enabled = false;
  474. MiningRemoveSelected.Enabled = false;
  475. }
  476. private void MiningFilter_SelectedIndexChanged(object sender, EventArgs e)
  477. {
  478. VisualizerGlobal.ZoomLevel = 1;
  479. if (MiningFilter.Text == "No Filter")
  480. for (int i = MiningPanel.Controls.Count - 1; i > -1; i--)
  481. try
  482. {
  483. MineEntry MineControl = (MineEntry)MiningPanel.Controls[i];
  484. MineControl.Visible = true;
  485. if (!MineControl.RegionHidden)
  486. MineControl.RegionHighlight.Visible = true;
  487. }
  488. catch (Exception)
  489. {
  490. continue;
  491. }
  492. else
  493. for (int i = MiningPanel.Controls.Count - 1; i > -1; i--)
  494. try
  495. {
  496. MineEntry MineControl = (MineEntry)MiningPanel.Controls[i];
  497. if (MineControl.MineIndex == MiningFilter.SelectedIndex)
  498. {
  499. MineControl.Visible = true;
  500. if (!MineControl.RegionHidden)
  501. MineControl.RegionHighlight.Visible = true;
  502. }
  503. else
  504. {
  505. MineControl.RegionHighlight.Visible = false;
  506. MineControl.Visible = false;
  507. }
  508. }
  509. catch (Exception)
  510. {
  511. continue;
  512. }
  513. }
  514. #endregion "END Mining Tool Bar"
  515. #region "START Respawn Tool Bar
  516. private void RespawnsSelectAll_Click(object sender, EventArgs e)
  517. {
  518. for (int i = RespawnPanel.Controls.Count - 1; i > -1; i--)
  519. {
  520. RespawnEntry RespawnControl = (RespawnEntry)RespawnPanel.Controls[i];
  521. RespawnControl.Selected.Checked = true;
  522. }
  523. }
  524. private void RespawnsSelectNone_Click(object sender, EventArgs e)
  525. {
  526. for (int i = RespawnPanel.Controls.Count - 1; i > -1; i--)
  527. {
  528. RespawnEntry RespawnControl = (RespawnEntry)RespawnPanel.Controls[i];
  529. RespawnControl.Selected.Checked = false;
  530. }
  531. }
  532. private void RespawnsRemoveSelected_Click(object sender, EventArgs e)
  533. {
  534. if (RespawnPanel.Controls.Count == 0) return;
  535. DialogResult result = MessageBox.Show("Remove selected records?", "", MessageBoxButtons.YesNoCancel);
  536. if (result != DialogResult.Yes) return;
  537. for (int i = RespawnPanel.Controls.Count; i > -1; --i)
  538. {
  539. try
  540. {
  541. RespawnEntry RespawnControl = (RespawnEntry)RespawnPanel.Controls[i];
  542. if (RespawnControl.Selected.Checked == true)
  543. {
  544. RespawnControl.RemoveEntry();
  545. }
  546. }
  547. catch (Exception)
  548. {
  549. continue;
  550. }
  551. }
  552. }
  553. private void ResapwnsHideRegion_Click(object sender, EventArgs e)
  554. {
  555. for (int i = RespawnPanel.Controls.Count - 1; i > -1; i--)
  556. {
  557. try
  558. {
  559. RespawnEntry RespawnControl = (RespawnEntry)RespawnPanel.Controls[i];
  560. if (RespawnControl.Selected.Checked == true)
  561. RespawnControl.HideRegion();
  562. }
  563. catch (Exception)
  564. {
  565. continue;
  566. }
  567. }
  568. }
  569. private void ResapwnsShowRegion_Click(object sender, EventArgs e)
  570. {
  571. for (int i = RespawnPanel.Controls.Count - 1; i > -1; i--)
  572. {
  573. try
  574. {
  575. RespawnEntry RespawnControl = (RespawnEntry)RespawnPanel.Controls[i];
  576. if (RespawnControl.Selected.Checked == true)
  577. RespawnControl.ShowRegion();
  578. }
  579. catch (Exception)
  580. {
  581. continue;
  582. }
  583. }
  584. }
  585. private void ResapwnsFocusRegion_Click(object sender, EventArgs e)
  586. {
  587. VisualizerGlobal.SelectedTool = VisualizerGlobal.Tool.Focus;
  588. VisualizerGlobal.Cursor = Cursors.Hand;
  589. RespawnsFilter.Enabled = false;
  590. RespawnsRemoveSelected.Enabled = false;
  591. }
  592. private void RespawnsInvertSelection_Click(object sender, EventArgs e)
  593. {
  594. for (int i = RespawnPanel.Controls.Count - 1; i > -1; i--)
  595. {
  596. RespawnEntry RespawnControl = (RespawnEntry)RespawnPanel.Controls[i];
  597. RespawnControl.Selected.Checked = !RespawnControl.Selected.Checked;
  598. }
  599. }
  600. private void RespawnsFilter_SelectedIndexChanged(object sender, EventArgs e)
  601. {
  602. MonsterInfo info = RespawnsFilter.SelectedItem as MonsterInfo;
  603. VisualizerGlobal.ZoomLevel = 1;
  604. if (RespawnsFilter.Text == "No Filter")
  605. for (int i = RespawnPanel.Controls.Count - 1; i > -1; i--)
  606. try
  607. {
  608. RespawnEntry RespawnControl = (RespawnEntry)RespawnPanel.Controls[i];
  609. RespawnControl.Visible = true;
  610. if (!RespawnControl.RegionHidden)
  611. RespawnControl.RegionHighlight.Visible = true;
  612. }
  613. catch (Exception)
  614. {
  615. continue;
  616. }
  617. else
  618. for (int i = RespawnPanel.Controls.Count - 1; i > -1; i--)
  619. try
  620. {
  621. RespawnEntry RespawnControl = (RespawnEntry)RespawnPanel.Controls[i];
  622. if (RespawnControl.MonsterIndex == info.Index)
  623. {
  624. RespawnControl.Visible = true;
  625. if (!RespawnControl.RegionHidden)
  626. RespawnControl.RegionHighlight.Visible = true;
  627. }
  628. else
  629. {
  630. RespawnControl.RegionHighlight.Visible = false;
  631. RespawnControl.Visible = false;
  632. }
  633. }
  634. catch (Exception)
  635. {
  636. continue;
  637. }
  638. }
  639. #endregion "END Respawn Tool Bar
  640. private void RegionTabs_Selecting(object sender, TabControlCancelEventArgs e)
  641. {
  642. if (VisualizerGlobal.SelectedFocusType != VisualizerGlobal.FocusType.None)
  643. e.Cancel = true;
  644. }
  645. }
  646. }