Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/slots.cc')
-rw-r--r--src/core/slots.cc23
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;
}