#include "inventory.hpp" namespace components { void Inventory::add(InventoryItem new_item) { for(auto &slot : items) { if(new_item.data["id"] == slot.data["id"]) { slot.count += new_item.count; return; } } items.push_back(new_item); } InventoryItem& Inventory::get(size_t at) { dbc::check(at < items.size(), fmt::format("inventory index {} too big", at)); return items[at]; } bool Inventory::decrease(size_t at, int count) { dbc::check(at < items.size(), fmt::format("inventory index {} too big", at)); auto &slot = items[at]; slot.count -= count; return slot.count > 0; } void Inventory::erase_item(size_t at) { dbc::check(at < items.size(), fmt::format("inventory index {} too big", at)); items.erase(items.begin() + at); } }