diff options
Diffstat (limited to 'src/core/slots.cc')
-rw-r--r-- | src/core/slots.cc | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/src/core/slots.cc b/src/core/slots.cc index 6d6096a..23fb7e1 100644 --- a/src/core/slots.cc +++ b/src/core/slots.cc @@ -19,12 +19,25 @@ Slots::~Slots() clear(); } -void Slots::load(model::Model *model) +void Slots::load(model::Model *model, const float modelscale) { - for (model::Model::Weapons::iterator it = model->weapons().begin(); it != model->weapons().end(); ++it) { - Slot *slot = new Slot(); - slot->load((*it)); - slots_container.push_back(slot); + 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; } |