// Build the screen
LTBOOL CScreenPlayerSkills::Build()
{
	g_pSkillsScreen = this;

	CreateTitle(IDS_TITLE_SKILLS);

	int kColumn = g_pLayoutMgr->GetScreenCustomInt(SCREEN_ID_PLAYER_SKILLS,"ColumnWidth");
	int kSlider = g_pLayoutMgr->GetScreenCustomInt(SCREEN_ID_PLAYER_SKILLS,"SliderWidth");


	s_nMaxPool = g_pSkillsButeMgr->GetMultiplayerPool();

	LTIntPt pos = m_nextPos;
	AddTextItem(IDS_SKILL_PTS,LTNULL,LTNULL,pos,LTTRUE);
	pos.x += kColumn;

	m_pPool = AddTextItem("999",LTNULL,LTNULL,pos,LTTRUE);

	pos.y += (m_pPool->GetBaseHeight() + 16);

	for (uint8 i = 0; i < kNumSkills; i++)
	{
		pos.x = GetPageLeft();
		eSkill skl = (eSkill)i;
		if (g_pSkillsButeMgr->IsAvailable(skl) )
		{
			m_pSkill[i] = AddSlider(GetSkillNameId(skl),GetSkillDescriptionId(skl),kColumn,kSlider,-1,&m_nLevels[i], pos);
			m_pSkill[i]->SetSliderIncrement(1);
			m_pSkill[i]->SetSliderRange(0,kNumSkillLevels-1);
			m_pSkill[i]->SetRangeCallback(SliderCallBack);
			m_pSkill[i]->SetParam1(i);

			pos.x += (kColumn + kSlider + 5);

			m_pLabel[i] = AddCycle(" ",NULL,20,&s_nLevels[i],pos,LTTRUE);
			for (int j = 0; j < kNumSkillLevels; j++)
			{
				eSkillLevel nxt = (eSkillLevel)(j+1);
				char szTemp[32];
				

				if ( nxt < kNumSkillLevels)
				{
					uint32 nCost = g_pSkillsButeMgr->GetCostToUpgrade(skl,nxt);
					sprintf(szTemp,"%s (%d)",GetSkillLevelName((eSkillLevel)j),nCost);

				}
				else
				{
					SAFE_STRCPY(szTemp,GetSkillLevelName((eSkillLevel)j));
				}
				m_pLabel[i]->AddString(szTemp);
				
			}


			pos.y += m_pSkill[i]->GetBaseHeight();

			kNumAvailSkills++;
		
		}
	}

	pos.x = GetPageLeft();
	pos.y += 8;

	AddTextItem(IDS_RESET_SKILLS,CMD_SKILLS,IDS_HELP_RESET_SKILLS,pos);

 	// Make sure to call the base class
	return CBaseScreen::Build();
}
Beispiel #2
0
const char* GetSkillDescription(eSkill skl)
{
	return (const char *)LoadTempString(GetSkillDescriptionId(skl));
}