private void setBag(DataGridView dgv, InventoryPouch pouch) { int ctr = 0; for (int i = 0; i < dgv.Rows.Count; i++) { int c = 0; string item = dgv.Rows[i].Cells[c++].Value.ToString(); int itemindex = Array.IndexOf(itemlist, item); if (itemindex <= 0) // Compression of Empty Slots continue; int itemcnt; int.TryParse(dgv.Rows[i].Cells[c++].Value?.ToString(), out itemcnt); if (Main.HaX && SAV.Generation != 7) // Gen7 has true cap at 1023, keep 999 cap. { // Cap at absolute maximum if (SAV.Generation <= 2 && itemcnt > byte.MaxValue) itemcnt = byte.MaxValue; else if (SAV.Generation >= 3 && itemcnt > ushort.MaxValue) itemcnt = ushort.MaxValue; } else if (itemcnt > pouch.MaxCount) { if (itemindex == 797 && itemcnt >= 2) // Edge case when for some reason the item count for Z-Ring was 2 in an unedited save and set 1 after using PKHeX itemcnt = 2; else itemcnt = pouch.MaxCount; // Cap at pouch maximum } else if (itemcnt <= 0) continue; // ignore item pouch.Items[ctr] = new InventoryItem { Index = itemindex, Count = itemcnt }; if (HasFreeSpace) pouch.Items[ctr].FreeSpace = (bool)dgv.Rows[i].Cells[c++].Value; if (HasNew) pouch.Items[ctr].New = (bool)dgv.Rows[i].Cells[c].Value; ctr++; } for (int i = ctr; i < pouch.Items.Length; i++) pouch.Items[i] = new InventoryItem(); // Empty Slots at the end }
private DataGridView getDGV(InventoryPouch pouch) { // Add DataGrid DataGridView dgv = new DataGridView { Dock = DockStyle.Fill, Text = pouch.Type.ToString(), Name = DGVPrefix + pouch.Type, AllowUserToAddRows = false, AllowUserToDeleteRows = false, AllowUserToResizeRows = false, AllowUserToResizeColumns = false, RowHeadersVisible = false, //ColumnHeadersVisible = false, MultiSelect = false, ShowEditingIcon = false, EditMode = DataGridViewEditMode.EditOnEnter, ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single, ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize, SelectionMode = DataGridViewSelectionMode.CellSelect, CellBorderStyle = DataGridViewCellBorderStyle.None, }; int c = 0; DataGridViewComboBoxColumn dgvItemVal = new DataGridViewComboBoxColumn { HeaderText = "Item", DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing, DisplayIndex = c++, Width = 135, FlatStyle = FlatStyle.Flat }; DataGridViewColumn dgvIndex = new DataGridViewTextBoxColumn(); { dgvIndex.HeaderText = "Count"; dgvIndex.DisplayIndex = c++; dgvIndex.Width = 45; dgvIndex.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; } dgv.Columns.Add(dgvItemVal); dgv.Columns.Add(dgvIndex); if (HasFreeSpace) { DataGridViewCheckBoxColumn dgvFree = new DataGridViewCheckBoxColumn { HeaderText = "Free", DisplayIndex = c++, Width = 40, FlatStyle = FlatStyle.Flat }; dgv.Columns.Add(dgvFree); } if (HasFreeSpace) { DataGridViewCheckBoxColumn dgvNew = new DataGridViewCheckBoxColumn { HeaderText = "NEW", DisplayIndex = c++, Width = 40, FlatStyle = FlatStyle.Flat }; dgv.Columns.Add(dgvNew); } var itemcount = pouch.Items.Length; string[] itemarr = Main.HaX ? (string[])itemlist.Clone() : getItems(pouch.LegalItems); var combo = dgv.Columns[0] as DataGridViewComboBoxColumn; foreach (string t in itemarr) combo.Items.Add(t); // add only the Item Names dgv.Rows.Add(itemcount > 0 ? itemcount : itemarr.Length); dgv.CancelEdit(); return dgv; }
private void getBag(DataGridView dgv, InventoryPouch pouch) { for (int i = 0; i < dgv.Rows.Count; i++) { int c = 0; dgv.Rows[i].Cells[c++].Value = itemlist[pouch.Items[i].Index]; dgv.Rows[i].Cells[c++].Value = pouch.Items[i].Count; if (HasFreeSpace) dgv.Rows[i].Cells[c++].Value = pouch.Items[i].FreeSpace; if (HasNew) dgv.Rows[i].Cells[c].Value = pouch.Items[i].New; } }