Files
Leviathan/Client/Game/game/Interface/Arena/SUIArenaResultWnd.cpp
T
2026-06-01 12:46:52 +02:00

726 lines
21 KiB
C++

#include "stdafx.h"
#include "Arena\\ArenaJoinSituationChecker.h"
#include "Arena\\ArenaSystem.h"
#include "SUIArenaResultWnd.h"
#include "SUIArenaGameWnd.h"
//#include "SGameMessageUI.h"
#include "KUIControlStatic.h"
#include "SGameManager.h"
#include "SBattleArenaDB.h"
#include "SGameMessage.h"
#include "SGameAvatarEx.h"
#include "SGameSystem.h"
#include "CommonUtil.h"
#include <toolkit/XStringUtil.h>
#include "SStringDB.h"
#include "SJobDB.h"
//#include "Util.h"
extern SGameSystem* g_pCurrentGameSystem;
/// exceptionBg : 백그라운드 제외
void SUIArenaResultWnd::sRowControls::setShow(bool show, int beginColumn)
{
int c_num = beginColumn;
for (; c_num < MAX_COLUMN; ++c_num)
{
m_control[c_num]->SetShow(show);
}
}
SUIArenaResultWnd::SUIArenaResultWnd(SGameManager* gameManager) : SUIWnd(gameManager),
m_rowNum(-1),
m_myRowIndex(0)
{
}
SUIArenaResultWnd::~SUIArenaResultWnd()
{
m_needResizeControl.clear();
}
bool SUIArenaResultWnd::InitData(bool reload)
{
initFp();
initTooltip();
createRowControls();
initNeedResizeControls();
m_oriWndHeight = GetRect().GetHeight();
m_buttonClose = dynamicCast<KUIControl*>(GetChild("button_arena_end_01"));
m_buttonClose->SetEnableColor("<#ffffff>");
m_buttonClose->SetDisableColor("<#a0a0a0>");
m_oriCloseButtonOffsetY = m_buttonClose->GetRect().top - GetRect().top;
return SUIWnd::InitData(reload);
}
void SUIArenaResultWnd::initFp()
{
m_controlFp.add("button_close", &SUIArenaResultWnd::close);
m_controlFp.add("button_arena_end_01", &SUIArenaResultWnd::end);
m_msgFp.add(IMSG_UI_SEND_DATA, &SUIArenaResultWnd::procMsgData);
m_msgFp.add(MSG_BATTLE_ARENA_BATTLE_INFO, &SUIArenaResultWnd::procMsgBattleInfo);
m_msgFp.add(MSG_BATTLE_ARENA_BATTLE_SCORE, &SUIArenaResultWnd::procMsgBattleScore);
m_msgFp.add(MSG_BATTLE_ARENA_JOIN_BATTLE, &SUIArenaResultWnd::procMsgJoinBattle);
m_msgFp.add(MSG_BATTLE_ARENA_RECONNECT_BATTLE, &SUIArenaResultWnd::procMsgReconnectBattle);
m_msgFp.add(MSG_BATTLE_ARENA_RESULT, &SUIArenaResultWnd::procMsgResult);
m_msgFp.add(MSG_BATTLE_ARENA_LEAVE, &SUIArenaResultWnd::procMsgLeave);
}
void SUIArenaResultWnd::initTooltip()
{
SetChildTooltip("bg_member_alliance_01", S(2391));
SetChildTooltip("ally_category_job_01", S(2392));
SetChildTooltip("ally_category_kill_01", S(2393));
SetChildTooltip("ally_category_death_01", S(2394));
SetChildTooltip("ally_category_prop_01", S(2395));
SetChildTooltip("ally_text_category_ap_01", S(2396));
SetChildTooltip("bg_member_witch_01", S(2398));
SetChildTooltip("enemy_category_job_02", S(2392));
SetChildTooltip("enemy_category_kill_01", S(2393));
SetChildTooltip("enemy_category_death_01", S(2394));
SetChildTooltip("enemy_category_prop_01", S(2395));
SetChildTooltip("enemy_text_category_ap_01", S(2396));
}
void SUIArenaResultWnd::createRowControls()
{
copyRowControl(MY_PANEL);
copyRowControl(OPPONENT_PANEL);
}
void SUIArenaResultWnd::copyRowControl(int panel)
{
char const* className = (MY_PANEL == panel) ? "ally" : "enemy";
char const* id[] = { "line", "text_number", "job_icon", "text_id", "text_kill", "text_death", "text_prop", "text_point" };
/// get first/second child
for (int c_num = 0; c_num < MAX_COLUMN; ++c_num)
{
m_rowControl[panel][0].m_control[c_num] = dynamicCast<KUIControl*>(GetChild(CStringUtil::StringFormat("%s_%s_00", className, id[c_num]).c_str()));
m_rowControl[panel][1].m_control[c_num] = dynamicCast<KUIControl*>(GetChild(CStringUtil::StringFormat("%s_%s_01", className, id[c_num]).c_str()));
}
/// copy control
RECT offset;
offset.left = 0;
offset.top = ROW_HEIGHT;
offset.right = 0;
offset.bottom = ROW_HEIGHT;
for (int t_num = 2; t_num < MAX_ROW; ++t_num)
{
for (int c_num = 0; c_num < MAX_COLUMN; ++c_num)
{
std::string srcId = CStringUtil::StringFormat("%s_%s_%02d", className, id[c_num], t_num-1);
std::string destId = CStringUtil::StringFormat("%s_%s_%02d", className, id[c_num], t_num);
m_rowControl[panel][t_num].m_control[c_num] = dynamicCast<KUIControl*>(CopyControl(srcId.c_str(), destId.c_str(), offset));
}
}
}
void SUIArenaResultWnd::initNeedResizeControls()
{
addNeedResizeControl("win_display_panel_01");
addNeedResizeControl("my_display_panel_01");
addNeedResizeControl("ally_inframe_01");
addNeedResizeControl("win_display_panel_02");
addNeedResizeControl("enemy_inframe_01");
addNeedResizeControl("outframe");
}
void SUIArenaResultWnd::addNeedResizeControl(char const* id)
{
KUIWnd* wnd = GetChild(id);
assert(!wnd && "failed addNeedResize, wnd is null");
m_needResizeControl.push_back(sNeedResizeControl(wnd->GetRect().GetHeight(), wnd));
}
void SUIArenaResultWnd::OnNotifyUIWindowOpen(bool bOpen, bool bLimitWnd)
{
if (bOpen)
{
syncPos();
}
}
void SUIArenaResultWnd::ProcMsgAtStatic(SGameMessage* pMsg)
{
m_msgFp.call(pMsg->nType, this, pMsg);
};
void SUIArenaResultWnd::PumpUpMessage( LPCTSTR controlID, DWORD msg, DWORD lparam, DWORD wparam )
{
switch (msg)
{
case KUI_MESSAGE::KGENWND_MOVE: moveWnd(); break;
case KUI_MESSAGE::KBUTTON_CLICK: m_controlFp.call(controlID, this); break;
}
}
void SUIArenaResultWnd::close()
{
m_pGameManager->PostMsgAtDynamic( new SIMSG_SHOW_UIWINDOW( SIMSG_TOGGLE_UIWINDOW::UIWINDOW_ARENA_RESULT, false) );
}
void SUIArenaResultWnd::end()
{
if (m_isEnd)
{
TS_CS_BATTLE_ARENA_LEAVE msgLeave;
m_pGameManager->PendMessage(&msgLeave);
}
else
{
close();
}
}
void SUIArenaResultWnd::setWinTeam(int winTeam)
{
char const* idFlower[] = { "win_display_mark_01", "win_display_mark_02" };
char const* idOutLine[] = { "win_display_panel_01", "win_display_panel_02" };
/// 무승부
if (sArenaUtility::TEAM_NONE == winTeam)
{
SetChildShow(idFlower[0], false);
SetChildShow(idFlower[1], false);
SetChildShow(idOutLine[0], false);
SetChildShow(idOutLine[1], false);
}
else
{
sArenaSystem* arenaSystem = g_pCurrentGameSystem->getArenaSystem();
int winPanel;
if (arenaSystem->getMyTeam() == winTeam) winPanel = 0; /// 왼쪽(자신은 항상 왼쪽이다)
else winPanel = 1; /// 오른쪽
int losePanel = !winPanel;
SetChildShow(idFlower[winPanel], true);
SetChildShow(idOutLine[winPanel], true);
SetChildShow(idFlower[losePanel], false);
SetChildShow(idOutLine[losePanel], false);
}
}
void SUIArenaResultWnd::setRowNum()
{
BattleArenaBase* data = GetBattleArenaDB().getData(g_pCurrentGameSystem->getArenaId());
if (!data)
return ;
int rowNum = data->nMaxMember >> 1;
if (m_rowNum == rowNum)
return ;
m_rowNum = rowNum;
updateRow(m_rowNum);
}
void SUIArenaResultWnd::updateRow(int rowNum)
{
showRow(rowNum);
resizeWnd(rowNum);
}
void SUIArenaResultWnd::updateTotalPlayerCount()
{
sArenaSystem* arenaSystem = g_pCurrentGameSystem->getArenaSystem();
std::string strNum;
int myTeam = arenaSystem->getMyTeam();
strNum = CStringUtil::StringFormat("<font:font_01><size:9><#FFFFFF><b><hcenter>%d", arenaSystem->getPlayerCount(myTeam));
SetChildCaption("text_member_alliance_01", strNum.c_str());
int opponentTeam = arenaSystem->getOpponentTeam();
strNum = CStringUtil::StringFormat("<font:font_01><size:9><#FFFFFF><b><hcenter>%d", arenaSystem->getPlayerCount(opponentTeam));
SetChildCaption("text_member_witch_01", strNum.c_str());
}
void SUIArenaResultWnd::showRow(int rowNum)
{
int t_num;
for (int panel = 0; panel < MAX_PANEL; ++panel)
{
for (t_num = 0; t_num < rowNum; ++t_num)
{
m_rowControl[panel][t_num].setShow(true);
m_rowControl[panel][t_num].m_control[COLUMN_NUMBER]->SetTooltip("");
}
for (; t_num < MAX_ROW; ++t_num)
{
m_rowControl[panel][t_num].setShow(false);
}
}
}
void SUIArenaResultWnd::resizeWnd(int rowNum)
{
/// 줄어드는 사이즈
int maxRowHeight = MAX_ROW * ROW_HEIGHT;
int curRowHeight = rowNum * ROW_HEIGHT;
int reduceHeight = maxRowHeight - curRowHeight;
int height;
KRect r;
/// control resize
std::list<sNeedResizeControl>::iterator it_n = m_needResizeControl.begin();
for (; it_n != m_needResizeControl.end(); ++it_n)
{
height = it_n->m_oriHeight - reduceHeight;
r = it_n->m_control->GetRect();
r.bottom = r.top + height;
it_n->m_control->Resize(r);
}
/// wnd resize
height = m_oriWndHeight - reduceHeight;
r = GetRect();
r.bottom = r.top + height;
Resize(r);
/// close button
int x = m_buttonClose->GetRect().left;
int y = GetRect().top + m_oriCloseButtonOffsetY - reduceHeight;
m_buttonClose->MovePos(x, y);
}
void SUIArenaResultWnd::syncPos()
{
int centerx = KUIWndManager::GetResolution().width >> 1;
int centery = KUIWndManager::GetResolution().height >> 1;
int wndhx = GetRect().GetWidth() >> 1;
int wndhy = GetRect().GetHeight() >> 1;
MovePos(centerx - wndhx, centery - wndhy);
}
void SUIArenaResultWnd::setGameMode()
{
int gameMode = -1;
BattleArenaBase* data = GetBattleArenaDB().getData(g_pCurrentGameSystem->getArenaId());
if (data)
gameMode = data->eType;
/// set ani name
char const* aniName;
int tooltipId;
switch (gameMode)
{
case sArenaUtility::MODE_CLASSIC: aniName = "game_panel_arena_mode_classic_default";
tooltipId = 2314;
break;
case sArenaUtility::MODE_BINGO: aniName = "game_panel_arena_mode_bingo_default";
tooltipId = 2316;
break;
case sArenaUtility::MODE_SLAUGHTER: aniName = "game_panel_arena_mode_slaughter_default";
tooltipId = 2315;
break;
default: aniName = "";
tooltipId = 0;
break;
}
KUIControl* control = dynamicCast<KUIControl*>(GetChild("panel_status_default_01"));
control->SetAniName(aniName);
control->SetTooltip(S(tooltipId));
}
void SUIArenaResultWnd::setMyTeam(int teamType)
{
if (sArenaUtility::TEAM_ALLIANCE == teamType)
{
/// my(동맹군)
SetChildAniName("mark_alliance_01", "game_mark_arena_game_alliance_team");
SetChildAniName("bg_member_alliance_01", "game_panel_titanium_arena_game_alliance");
/// opponent(마녀군)
SetChildAniName("mark_witch_right_01", "game_mark_arena_game_witch_team_right");
SetChildAniName("bg_member_witch_01", "game_panel_titanium_arena_game_witch");
}
else if (sArenaUtility::TEAM_WITCH == teamType)
{
/// my(마녀군)
SetChildAniName("mark_alliance_01", "game_mark_arena_game_witch_team");
SetChildAniName("bg_member_alliance_01", "game_panel_titanium_arena_game_witch");
/// opponent(동맹군)
SetChildAniName("mark_witch_right_01", "game_mark_arena_game_alliance_team_right");
SetChildAniName("bg_member_witch_01", "game_panel_titanium_arena_game_alliance");
}
else
{
/// my(마녀군)
SetChildAniName("mark_alliance_01", "");
SetChildAniName("bg_member_alliance_01", "");
/// opponent(동맹군)
SetChildAniName("mark_witch_right_01", "");
SetChildAniName("bg_member_witch_01", "");
}
}
void SUIArenaResultWnd::setScore(int team, int score, char const* controlId)
{
sArenaUtility utility;
if (!utility.isValidTeam(team))
return ;
char const* color[] = { "<#1e9cde>", "<#ea5c11>" };
SetChildCaption(controlId, CStringUtil::StringFormat("<font:font_01><size:9>%s<b><hcenter>%d", color[team], score).c_str());
}
void SUIArenaResultWnd::setMyScore(int score)
{
sArenaSystem* arenaSystem = g_pCurrentGameSystem->getArenaSystem();
setScore(arenaSystem->getMyTeam(), score, "text_score_alliance_01");
}
void SUIArenaResultWnd::setOpponentScore(int score)
{
sArenaSystem* arenaSystem = g_pCurrentGameSystem->getArenaSystem();
setScore(arenaSystem->getOpponentTeam(), score, "text_score_witch_01");
}
void SUIArenaResultWnd::setRowBackground()
{
char const* myBackground;
char const* opponentBackground;
for (int i = 0; i < m_rowNum; ++i)
{
if (0 == i%2)
{
myBackground = "game_panel_titanium_arena_status_line_blue";
opponentBackground = "game_panel_titanium_arena_status_line_blue";
}
else
{
myBackground = "game_panel_titanium_arena_status_line_black";
opponentBackground = "game_panel_titanium_arena_status_line_gray_a";
}
m_rowControl[MY_PANEL][i].m_control[COLUMN_BACKGROUND]->SetAniName(myBackground);
m_rowControl[OPPONENT_PANEL][i].m_control[COLUMN_BACKGROUND]->SetAniName(opponentBackground);
}
/// my
m_rowControl[MY_PANEL][m_myRowIndex].m_control[COLUMN_BACKGROUND]->SetAniName("game_panel_titanium_arena_status_line_my");
}
void SUIArenaResultWnd::setEndGame(bool end)
{
m_isEnd = end;
/// 연관된 스트링 id 설정
int stringId;
if (m_isEnd)
stringId = 2341;
else
stringId = 9226;
std::string str;
XStringUtil::Format(str, "<font:font_02><size:10><#ffffff><hcenter>%s", S(stringId));
m_buttonClose->SetCaption(str.c_str());
/// x 버튼
SetChildShow("button_close", end ? false : true);
}
void SUIArenaResultWnd::procMsgData(SGameMessage* msg)
{
msg->bUse = true;
SIMSG_UI_SEND_DATA* msgData = dynamicCast<SIMSG_UI_SEND_DATA*>(msg);
if ("openResult" == msgData->m_strString)
{
if (!IsShow())
{
updateData();
m_pGameManager->PostMsgAtDynamic( new SIMSG_SHOW_UIWINDOW( SIMSG_TOGGLE_UIWINDOW::UIWINDOW_ARENA_RESULT, true));
}
}
}
void SUIArenaResultWnd::procMsgBattleInfo(SGameMessage* msg)
{
msg->bUse = true;
sArenaSystem* arenaSystem = g_pCurrentGameSystem->getArenaSystem();
initNumber();
setMyTeam(arenaSystem->getMyTeam());
updateRow();
setMyScore(0);
setOpponentScore(0);
setWinTeam(sArenaUtility::TEAM_NONE);
setEndGame(false);
}
void SUIArenaResultWnd::procMsgBattleScore(SGameMessage* msg)
{
msg->bUse = true;
if (IsShow())
updateData();
}
void SUIArenaResultWnd::procMsgJoinBattle(SGameMessage* msg)
{
msg->bUse = true;
updateRow();
if (IsShow())
updateData();
}
void SUIArenaResultWnd::procMsgReconnectBattle(SGameMessage* msg)
{
msg->bUse = true;
}
void SUIArenaResultWnd::procMsgResult(SGameMessage* msg)
{
msg->bUse = true;
SMSG_BATTLE_ARENA_RESULT* _msg = dynamicCast<SMSG_BATTLE_ARENA_RESULT*>(msg);
setEndGame(true);
setWinTeam(_msg->winnerTeamNo);
updateData(_msg->mvpCount, _msg->mvp);
m_pGameManager->PostMsgAtDynamic( new SIMSG_SHOW_UIWINDOW( SIMSG_TOGGLE_UIWINDOW::UIWINDOW_ARENA_RESULT, true));
isValidArenaJoinSituationAtResult(msg);
}
void SUIArenaResultWnd::procMsgLeave(SGameMessage* msg)
{
msg->bUse = true;
updateRow();
if (IsShow())
updateData();
}
void SUIArenaResultWnd::updateRow()
{
setRowNum();
updateTotalPlayerCount();
findMyRowIndex();
setRowBackground();
}
void SUIArenaResultWnd::updateData(int mvpCount, sMvp const* mvp)
{
sArenaSystem* arenaSystem = g_pCurrentGameSystem->getArenaSystem();
// game mode
setGameMode();
/// my socre
int myTeam = arenaSystem->getMyTeam();
sArenaSystem::sTeamScore* myScore = arenaSystem->getTeamScore(myTeam);
if (myScore)
setMyScore(myScore->score);
/// opponent score
int opponentTeam = arenaSystem->getOpponentTeam();
sArenaSystem::sTeamScore* opponentScore = arenaSystem->getTeamScore(opponentTeam);
if (opponentScore)
setOpponentScore(opponentScore->score);
setPanelData(myTeam, MY_PANEL, mvpCount, mvp);
setPanelData(opponentTeam, OPPONENT_PANEL, mvpCount, mvp);
}
void SUIArenaResultWnd::setPanelData(int team, int panel, int mvpCount, sMvp const* mvp)
{
sArenaSystem* arenaSystem = g_pCurrentGameSystem->getArenaSystem();
sArenaSystem::sPlayerInfo* info;
/// 중간에 빈건 채워주면서 보여줘야 된다
int row = 0;
for (int pn = 0; pn < sArenaUtility::MAX_MEMBER_ONE_TEAM; ++pn)
{
info = arenaSystem->getPlayerInfo(team, pn);
if (!info || 0 == info->handle)
continue;
setRowData(info, panel, row, mvpCount, mvp);
++row;
}
for (; row < m_rowNum; ++row)
{
m_rowControl[panel][row].setShow(false, COLUMN_JOB);
}
}
bool SUIArenaResultWnd::setRowData(sArenaSystem::sPlayerInfo* info, int panel, int row, int mvpCount, sMvp const* mvp)
{
sArenaSystem* arenaSystem = g_pCurrentGameSystem->getArenaSystem();
m_rowControl[panel][row].setShow(true, COLUMN_JOB);
sArenaSystem::sPlayerScore emptyScore;
ZeroMemory(&emptyScore, sizeof (emptyScore));
/// 스코어 데이타가 없으면 빈 데이타를 넣어준다
sArenaSystem::sPlayerScore* _score = arenaSystem->findPlayerScore(info->name);
sArenaSystem::sPlayerScore* score = (_score) ? _score : &emptyScore;
char const* color;
KUIControl* control;
std::string caption;
/// mvp
if (isMvp(info->name, mvpCount, mvp))
{
control = m_rowControl[panel][row].m_control[COLUMN_NUMBER];
control->SetAniName("game_mark_titanium_arena_mvp");
control->SetCaption("");
control->SetTooltip(S(2397));
}
/// COLUMN_JOB
control = m_rowControl[panel][row].m_control[COLUMN_JOB];
control->SetAniName(GetJobDB().GetJobIconName(info->jobID));
/// COLUMN_ID
control = m_rowControl[panel][row].m_control[COLUMN_ID];
color = (row == 0) ? "<#f5989d>" : "<#ffffff>";
XStringUtil::Format(caption, "<font:font_01><size:9>%s<out><hcenter>%s",color, info->name);
control->SetCaption(caption.c_str());
/// COLUMN_KILLCOUNT
control = m_rowControl[panel][row].m_control[COLUMN_KILLCOUNT];
color = (row == 0) ? "<#f5989d>" : "<#898989>";
XStringUtil::Format(caption, "<font:font_01><size:9>%s<out><hcenter>%d",color, score->killCount);
control->SetCaption(caption.c_str());
/// COLUMN_DEATHCOUNT
control = m_rowControl[panel][row].m_control[COLUMN_DEATHCOUNT];
XStringUtil::Format(caption, "<font:font_01><size:9><#40322b><out><hcenter>%d", score->deathCount);
control->SetCaption(caption.c_str());
/// COLUMN_PROPPOINT
control = m_rowControl[panel][row].m_control[COLUMN_PROPPOINT];
color = (row == 0) ? "<#f5989d>" : "<#898989>";
XStringUtil::Format(caption, "<font:font_01><size:9>%s<out><hcenter>%d",color, score->propActivateCount);
control->SetCaption(caption.c_str());
/// COLUMN_AP
control = m_rowControl[panel][row].m_control[COLUMN_AP];
color = (row == 0) ? "<#f5989d>" : "<#898989>";
XStringUtil::Format(caption, "<font:font_01><size:9>%s<out><hcenter>%d",color, score->totalGainAP);
control->SetCaption(caption.c_str());
return true;
}
void SUIArenaResultWnd::initNumber()
{
std::string caption;
KUIWnd* control;
for (int team = 0; team < sArenaUtility::MAX_TEAM_NUM; ++team)
{
for (int rowIndex = 0; rowIndex < sArenaUtility::MAX_MEMBER_ONE_TEAM; ++rowIndex)
{
control = m_rowControl[team][rowIndex].m_control[COLUMN_NUMBER];
control->SetAniName("");
XStringUtil::Format(caption, "<font:font_01><size:9><#898989><out><hcenter>%d", rowIndex+1);
control->SetCaption(caption.c_str());
}
}
}
bool SUIArenaResultWnd::findRowIndex(char const* playerName, int& team, int& rowIndex)
{
sArenaSystem* arenaSystem = g_pCurrentGameSystem->getArenaSystem();
int maxTeam = sArenaUtility::MAX_TEAM_NUM;
for (int tn = 0; tn < maxTeam; ++tn)
{
int playerCount = arenaSystem->getPlayerCount(tn);
for (int pn = 0; pn < playerCount; ++pn)
{
sArenaSystem::sPlayerInfo* playerInfo = arenaSystem->getPlayerInfo(tn, pn);
if (!playerInfo)
continue;
if (strcmp(playerInfo->name, playerName) == 0)
{
team = tn;
rowIndex = pn;
return true;
}
}
}
team = sArenaUtility::TEAM_NONE;
rowIndex = 0;
return false;
}
void SUIArenaResultWnd::findMyRowIndex()
{
sArenaSystem* arenaSystem = g_pCurrentGameSystem->getArenaSystem();
int myTeam = arenaSystem->getMyTeam();
char const* playerName = arenaSystem->getPlayerName(&m_PlayerInfoMgr);
findRowIndex(playerName, myTeam, m_myRowIndex);
}
void SUIArenaResultWnd::isValidArenaJoinSituationAtResult(SGameMessage* msg)
{
SMSG_BATTLE_ARENA_RESULT* _msg = dynamicCast<SMSG_BATTLE_ARENA_RESULT*>(msg);
sArenaSystem* arenaSystem = g_pCurrentGameSystem->getArenaSystem();
sArenaJoinSituationCondition situationCondition;
situationCondition.m_notificationWays = cArenaJoinSituationChecker::WAY_CENTER_NOTICE;
int stringId;
/// 종료
situationCondition.addNone(S(2449));
///
switch (_msg->rewardType)
{
case _ARENA_REWARD_TYPE::ART_HALF_REWARD_BY_FEW_MEMBER: stringId = 2453; break;
case _ARENA_REWARD_TYPE::ART_NO_REWARD_BY_NO_MEMBER: stringId = 2473; break;
case _ARENA_REWARD_TYPE::ART_NO_REWARD_BY_MIN_TIME: stringId = 2474; break;
case _ARENA_REWARD_TYPE::ART_NO_REWARD_BY_EXERCISE: stringId = 2475; break;
default: stringId = 0; break;
}
if (0 < stringId)
situationCondition.addNone(S(stringId));
/// 승부
if (sArenaUtility::TEAM_ALLIANCE == _msg->winnerTeamNo)
stringId = 2450;
else if (sArenaUtility::TEAM_WITCH == _msg->winnerTeamNo)
stringId = 2451;
else
{
if (_ARENA_END_TYPE::AET_TIME_OVER == _msg->endType && arenaSystem->isEqualScore())
stringId = 2452;
else if (_ARENA_END_TYPE::AET_ONE_TEAM_NO_MEMBER == _msg->endType)
stringId = 0;
else
stringId = 0;
}
if (0 < stringId)
situationCondition.addNone(S(stringId));
g_pCurrentGameSystem->isValidArenaJoinSituation(situationCondition);
}
void SUIArenaResultWnd::moveWnd()
{
LimitMoveWnd();
}
bool SUIArenaResultWnd::isMvp(char const* name, int mvpCount, sMvp const* mvp) const
{
if (!mvp)
return false;
for (int i = 0; i < mvpCount; ++i)
{
if (::stricmp(name, mvp[i].name) == 0)
return true;
}
return false;
}