diff --git a/pk3DS/Subforms/Gen6/MartEditor6.cs b/pk3DS/Subforms/Gen6/MartEditor6.cs index d963504..6314661 100644 --- a/pk3DS/Subforms/Gen6/MartEditor6.cs +++ b/pk3DS/Subforms/Gen6/MartEditor6.cs @@ -186,6 +186,9 @@ private void B_Randomize_Click(object sender, EventArgs e) CB_Location.SelectedIndex = i; for (int r = 0; r < dgv.Rows.Count; r++) { + int currentItem = Array.IndexOf(itemlist, dgv.Rows[r].Cells[1].Value); + if (MartEditor7.BannedItems.Contains(currentItem)) + continue; dgv.Rows[r].Cells[1].Value = itemlist[validItems[ctr++]]; if (ctr <= validItems.Length) continue; Util.Shuffle(validItems); ctr = 0; diff --git a/pk3DS/Subforms/Gen7/MartEditor7.cs b/pk3DS/Subforms/Gen7/MartEditor7.cs index 46fe337..07605c9 100644 --- a/pk3DS/Subforms/Gen7/MartEditor7.cs +++ b/pk3DS/Subforms/Gen7/MartEditor7.cs @@ -1,5 +1,6 @@ using pk3DS.Core; using System; +using System.Collections.Generic; using System.IO; using System.Windows.Forms; @@ -159,6 +160,19 @@ private void setList() for (int i = 0; i < count; i++) Array.Copy(BitConverter.GetBytes((ushort)Array.IndexOf(itemlist, dgv.Rows[i].Cells[1].Value)), 0, data, dataoffset + 2 * i, 2); } + + /// + /// Just TMs & HMs; don't want these to be changed; if changed, they are not available elsewhere ingame. + /// + internal static readonly HashSet BannedItems = new HashSet + { + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 618, 619, 620, 690, 691, + 692, 693, 694, 701, 737 + }; private void B_Randomize_Click(object sender, EventArgs e) { if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Randomize mart inventories?")) @@ -176,6 +190,9 @@ private void B_Randomize_Click(object sender, EventArgs e) CB_Location.SelectedIndex = i; for (int r = 0; r < dgv.Rows.Count; r++) { + int currentItem = Array.IndexOf(itemlist, dgv.Rows[r].Cells[1].Value); + if (BannedItems.Contains(currentItem)) + continue; dgv.Rows[r].Cells[1].Value = itemlist[validItems[ctr++]]; if (ctr <= validItems.Length) continue; Util.Shuffle(validItems); ctr = 0;