bool Container::viewItemNr(TYPE_OF_CONTAINERSLOTS nr, ScriptItem &item, Container *&cc) { auto it = items.find(nr); if (it != items.end()) { item = it->second; item.type = ScriptItem::it_container; item.itempos = nr; item.inside = this; if (item.isContainer()) { auto iterat = containers.find(nr); if (iterat != containers.end()) { cc = iterat->second; } else { cc = new Container(item.getId()); } } else { cc = nullptr; } return true; } else { items.erase(nr); cc = nullptr; return false; } }
void Container::addContentToList(std::vector<ScriptItem> &list) { for (auto it = items.begin(); it != items.end(); ++it) { ScriptItem item = it->second; item.type = ScriptItem::it_container; item.itempos = it->first; item.inside = this; list.push_back(item); if (item.isContainer()) { auto iterat = containers.find(it->first); if (iterat != containers.end()) { iterat->second->addContentToList(list); } } } }