The problem is that the last skill type gets outputted as Master when it should be instead Novice.
As you can see the skill level of each is zero. Unfortunately I cant figure out why it is doing that. I cant find anything wrong with my if statement. (screenshot is below the code)
Heres the code:
Code:void CPlayer::SetCurrentSkill(int nSkill) { switch(nSkill) { case 0: m_CurrentSkill = &m_HandtoHand; break; case 1: m_CurrentSkill = &m_Blade; break; case 2: m_CurrentSkill = &m_Axe; break; case 3: m_CurrentSkill = &m_Blunt; break; } } void CPlayer::SetSkillName(int nSkill) { switch(nSkill) { case 0: m_CurrentSkill->s_SkillName = "Hand to Hand"; break; case 1: m_CurrentSkill->s_SkillName = "Blade"; break; case 2: m_CurrentSkill->s_SkillName = "Axe"; break; case 3: m_CurrentSkill->s_SkillName = "Blunt"; break; } } void CPlayer::SetSkillLevel(int nSkill) { SetCurrentSkill(nSkill); if (m_CurrentSkill->s_Level < 21) { m_CurrentSkill->s_SkillLevel = Skills_s::NOVICE; m_CurrentSkill->s_SkillAbility = "Novice"; } else if (m_CurrentSkill->s_Level > 20 && m_CurrentSkill->s_Level < 41) { m_CurrentSkill->s_SkillLevel = Skills_s::APPRENTICE; m_CurrentSkill->s_SkillAbility = "Apprentice"; } else if (m_CurrentSkill->s_Level > 40 && m_CurrentSkill->s_Level < 61) { m_CurrentSkill->s_SkillLevel = Skills_s::SKILLED; m_CurrentSkill->s_SkillAbility = "Skilled"; } else if (m_CurrentSkill->s_Level > 60 && m_CurrentSkill->s_Level < 81) { m_CurrentSkill->s_SkillLevel = Skills_s::PROFESSIONAL; m_CurrentSkill->s_SkillAbility = "Professional"; } else { m_CurrentSkill->s_SkillLevel = Skills_s::MASTER; m_CurrentSkill->s_SkillAbility = "Master"; } } void CPlayer::SetSkills() { for (int x = 0; x < 4; x++) { SetCurrentSkill(x); SetSkillName(x); SetSkillLevel(x); m_CurrentSkill->s_Total = 1; m_CurrentSkill->s_Increment = 0.2f; m_CurrentSkill->s_Level = m_CurrentSkill->s_Increment * m_CurrentSkill->s_Total; } }



LinkBack URL
About LinkBacks



