Make creation of new skills more generic

This commit is contained in:
Bart Cools
2014-06-01 14:12:50 +02:00
parent 084a4a46f3
commit cdb0e88895
3 changed files with 32 additions and 38 deletions

View File

@@ -75,47 +75,32 @@ KartStatsWidget::KartStatsWidget(core::recti area, const int player_id,
}
const int offset = (m_h - (SKILL_COUNT*m_skill_bar_h)) / 2;;
for (int i = 0; i < SKILL_COUNT; ++i)
{
irr::core::recti skillArea(m_skill_bar_x, m_skill_bar_y + offset*i,
m_skill_bar_x + m_skill_bar_w,
m_skill_bar_y + offset*i + m_skill_bar_h);
// ---- Mass skill level widget
irr::core::recti massArea(m_skill_bar_x, m_skill_bar_y,
m_skill_bar_x + m_skill_bar_w,
m_skill_bar_y + m_skill_bar_h);
SkillLevelWidget* skill_bar = NULL;
SkillLevelWidget* skill_bar = NULL;
skill_bar = new SkillLevelWidget(massArea, m_player_id,
(int) props->getMass()/10, "Weight");
skill_bar->m_properties[PROP_ID] = StringUtils::insertValues("@p%i_mass", m_player_id);
skill_bar = new SkillLevelWidget(skillArea, m_player_id);
m_skills.push_back(skill_bar);
m_children.push_back(skill_bar);
m_skills.push_back(skill_bar);
m_children.push_back(skill_bar);
}
// ---- Speed skill level widget
irr::core::recti speedArea(m_skill_bar_x, m_skill_bar_y - m_skill_bar_h - 10,
m_skill_bar_x + m_skill_bar_w,
m_skill_bar_y + 10);
m_skills[SKILL_MASS]->setValue(props->getMass()/10);
m_skills[SKILL_MASS]->setLabel("Weight");
m_skills[SKILL_MASS]->m_properties[PROP_ID] = StringUtils::insertValues("@p%i_mass", m_player_id);
skill_bar = NULL;
m_skills[SKILL_ACCEL]->setValue(props->getTrackConnectionAccel()/10);
m_skills[SKILL_ACCEL]->setLabel("Accel");
m_skills[SKILL_ACCEL]->m_properties[PROP_ID] = StringUtils::insertValues("@p%i_accel", m_player_id);
skill_bar = new SkillLevelWidget(speedArea, m_player_id,
(int) props->getMaxSpeed()/10, "Speed");
skill_bar->m_properties[PROP_ID] = StringUtils::insertValues("@p%i_speed", m_player_id);
m_skills.push_back(skill_bar);
m_children.push_back(skill_bar);
// ---- Acceleration skill level widget
irr::core::recti accelArea(m_skill_bar_x, m_skill_bar_y + m_skill_bar_h + 10,
m_skill_bar_x + m_skill_bar_w,
m_skill_bar_y + 2*m_skill_bar_y + 10);
skill_bar = NULL;
skill_bar = new SkillLevelWidget(accelArea, m_player_id,
(int) props->getTrackConnectionAccel()/10, "Accel");
skill_bar->m_properties[PROP_ID] = StringUtils::insertValues("@p%i_accel", m_player_id);
m_skills.push_back(skill_bar);
m_children.push_back(skill_bar);
m_skills[SKILL_SPEED]->setValue(props->getMaxSpeed()/10);
m_skills[SKILL_SPEED]->setLabel("Speed");
m_skills[SKILL_SPEED]->m_properties[PROP_ID] = StringUtils::insertValues("@p%i_speed", m_player_id);
} // KartStatsWidget

View File

@@ -136,7 +136,7 @@ void SkillLevelWidget::setSize(const int x, const int y, const int w, const int
// -----------------------------------------------------------------------------
void SkillLevelWidget::setValue(int value)
void SkillLevelWidget::setValue(const int value)
{
m_bar->setValue(value);
@@ -144,3 +144,8 @@ void SkillLevelWidget::setValue(int value)
// -----------------------------------------------------------------------------
void SkillLevelWidget::setLabel(const irr::core::stringw& label)
{
m_label->setText(label, false);
}

View File

@@ -63,7 +63,7 @@ class SkillLevelWidget : public Widget
ProgressBarWidget* m_bar;
SkillLevelWidget(core::recti area, const int player_id,
const int value, const irr::core::stringw& label);
const int value = 0, const irr::core::stringw& label = "default");
virtual ~SkillLevelWidget() {};
// ------------------------------------------------------------------------
@@ -81,10 +81,14 @@ class SkillLevelWidget : public Widget
void setSize(const int x, const int y, const int w, const int h);
/** Change the value of the widget, it must be a percent. */
void setValue(int value);
void setValue(const int value);
/** Get the current values of the widget. */
int getValue() {return m_bar->getValue(); };
/** Change the label of the widget */
void setLabel(const irr::core::stringw& label);
};
}