/* core/slots.cc This file is part of the Osirion project and is distributed under the terms of the GNU General Public License version 2. */ #include "sys/sys.h" #include "core/slots.h" namespace core { Slots::Slots() { } Slots::~Slots() { clear(); } void Slots::load(model::Model *model, const float modelscale) { for (model::Model::Slots::const_iterator slit = model->slots().begin(); slit != model->slots().end(); ++slit) { const model::Slot *tag_slot = (*slit); Slot *slot = 0; switch (tag_slot->type()) { case model::Slot::Cannon: case model::Slot::Turret: case model::Slot::Dock: slot = new Slot(); slot->load(tag_slot, modelscale); slots_container.push_back(slot); break; case model::Slot::None: break; } } //con_debug << " loaded " << slots_container.size() << " entity slots" << std::endl; } void Slots::clear() { for (iterator it = slots_container.begin(); it != slots_container.end(); ++it) { Slot *slot = (*it); delete slot; (*it) = 0; } slots_container.clear(); } Slot *Slots::find(Item *item) { for (iterator it = slots_container.begin(); it != slots_container.end(); ++it) { if ((*it)->item() == item) { return (*it); } } return 0; } } // namespace core