83 lines
2.2 KiB
C++
83 lines
2.2 KiB
C++
#include "stdafx.h"
|
|
#include "SGameAvatarEx.h"
|
|
#include "ArenaRankInfo.h"
|
|
#include "SGameSystem.h"
|
|
#include "CommonUtil.h"
|
|
//#include "KUIControl.h"
|
|
#include "SStringDB.h"
|
|
//#include "SUIWnd.h"
|
|
|
|
extern SGameSystem * g_pCurrentGameSystem;
|
|
|
|
static int RANK_NONE_BEGIN_LEVEL = 1;
|
|
static int RANK_NONE_END_LEVEL = 49;
|
|
static int RANK_R_BEGIN_LEVEL = 50;
|
|
static int RANK_R_END_LEVEL = 99;
|
|
static int RANK_G_BEGIN_LEVEL = 100;
|
|
static int RANK_G_END_LEVEL = 149;
|
|
static int RANK_M_BEGIN_LEVEL = 150;
|
|
static int RANK_M_END_LEVEL = 300;
|
|
|
|
sArenaRankInfo::sArenaRankInfo()
|
|
{
|
|
m_rankInterval[sArenaUtility::RANK_NONE].set(RANK_NONE_BEGIN_LEVEL, RANK_NONE_END_LEVEL);
|
|
m_rankInterval[sArenaUtility::RANK_R].set(RANK_R_BEGIN_LEVEL, RANK_R_END_LEVEL);
|
|
m_rankInterval[sArenaUtility::RANK_G].set(RANK_G_BEGIN_LEVEL, RANK_G_END_LEVEL);
|
|
m_rankInterval[sArenaUtility::RANK_M].set(RANK_M_BEGIN_LEVEL, RANK_M_END_LEVEL);
|
|
}
|
|
|
|
void sArenaRankInfo::setRank(KUIWnd* wnd)
|
|
{
|
|
if (!wnd)
|
|
return ;
|
|
std::string iconName, tooltip;
|
|
getInfo(iconName, tooltip);
|
|
|
|
/// 컨트롤은 나중에 다른 넘으로 바뀔 것 같다.
|
|
KUIControl* control = dynamicCast<KUIControl*>(wnd);
|
|
assert(!control);
|
|
|
|
control->SetAniName(iconName.c_str());
|
|
control->SetTooltip(tooltip.c_str());
|
|
}
|
|
|
|
void sArenaRankInfo::getInfo(std::string& iconName, std::string& tooltip)
|
|
{
|
|
int rank = getRank();
|
|
|
|
switch (rank)
|
|
{
|
|
case sArenaUtility::RANK_NONE: iconName = "";
|
|
tooltip = "";
|
|
break;
|
|
case sArenaUtility::RANK_R: iconName = "game_mark_titanium_arena_rookie";
|
|
tooltip = S(2367);
|
|
break;
|
|
case sArenaUtility::RANK_G: iconName = "game_mark_titanium_arena_grow";
|
|
tooltip = S(2366);
|
|
break;
|
|
case sArenaUtility::RANK_M: iconName = "game_mark_titanium_arena_major";
|
|
tooltip = S(2365);
|
|
break;
|
|
}
|
|
}
|
|
|
|
int sArenaRankInfo::getRank() const
|
|
{
|
|
SGameAvatarEx* localPlayer = g_pCurrentGameSystem->GetLocalPlayer();
|
|
if (!localPlayer)
|
|
return (int)sArenaUtility::RANK_NONE;
|
|
assert(!localPlayer);
|
|
int level = localPlayer->GetLevel();
|
|
|
|
for (int i = 0; i < sArenaUtility::RANK_TOTAL; ++i)
|
|
{
|
|
if (m_rankInterval[i].isIn(level))
|
|
{
|
|
return i;
|
|
}
|
|
}
|
|
return (int)sArenaUtility::RANK_NONE;
|
|
}
|
|
|