void inventory::add_item(item newit, bool keep_invlet) { if (keep_invlet && !newit.invlet_is_okay()) assign_empty_invlet(newit); // Keep invlet is true, but invlet is invalid! if (newit.is_style()) return; // Styles never belong in our inventory. for (int i = 0; i < items.size(); i++) { if (items[i][0].stacks_with(newit)) { /* if (keep_invlet) items[i][0].invlet = newit.invlet; else */ newit.invlet = items[i][0].invlet; items[i].push_back(newit); return; } else if (keep_invlet && items[i][0].invlet == newit.invlet) assign_empty_invlet(items[i][0]); } if (!newit.invlet_is_okay() || index_by_letter(newit.invlet) != -1) assign_empty_invlet(newit); std::vector<item> newstack; newstack.push_back(newit); items.push_back(newstack); }