#include "SunClientPrecompiledHeader.h" #ifdef _NA_003923_20120217_GUILD_RENEWAL_UI_GUILD_MANAGER #else #include "uiGuildMemberRightView.h" #include "GuildRightInfoParser.h" #include "uiGuildMan/uiGuildMan.h" WzID uiGuildMemberRightView::m_wzID[DLGPOS_MAX] = { StrToWzID("CT00"), //DLGPOS_CHECK_1, StrToWzID("CT12"), //DLGPOS_CHECK_2, StrToWzID("CT01"), //DLGPOS_CHECK_3, StrToWzID("CT13"), //DLGPOS_CHECK_4, StrToWzID("CT02"), //DLGPOS_CHECK_5, StrToWzID("CT14"), //DLGPOS_CHECK_6, StrToWzID("CT03"), //DLGPOS_CHECK_7, StrToWzID("CT15"), //DLGPOS_CHECK_8, StrToWzID("CT04"), //DLGPOS_CHECK_9, StrToWzID("CT16"), //DLGPOS_CHECK_10, StrToWzID("CT05"), //DLGPOS_CHECK_11, StrToWzID("CT17"), //DLGPOS_CHECK_12, StrToWzID("CT06"), //DLGPOS_CHECK_13, StrToWzID("CT18"), //DLGPOS_CHECK_14, StrToWzID("CT07"), //DLGPOS_CHECK_15, StrToWzID("CT19"), //DLGPOS_CHECK_16, StrToWzID("CT08"), //DLGPOS_CHECK_17, StrToWzID("CT20"), //DLGPOS_CHECK_18, StrToWzID("CT09"), //DLGPOS_CHECK_19, StrToWzID("CT21"), //DLGPOS_CHECK_20, StrToWzID("CT10"), //DLGPOS_CHECK_21, StrToWzID("CT22"), //DLGPOS_CHECK_22, StrToWzID("ST14"), //DLGPOS_TXT_1, StrToWzID("ST26"), //DLGPOS_TXT_2, StrToWzID("ST15"), //DLGPOS_TXT_3, StrToWzID("ST27"), //DLGPOS_TXT_4, StrToWzID("ST16"), //DLGPOS_TXT_5, StrToWzID("ST28"), //DLGPOS_TXT_6, StrToWzID("ST17"), //DLGPOS_TXT_7, StrToWzID("ST29"), //DLGPOS_TXT_8, StrToWzID("ST18"), //DLGPOS_TXT_9, StrToWzID("ST30"), //DLGPOS_TXT_10, StrToWzID("ST19"), //DLGPOS_TXT_11, StrToWzID("ST31"), //DLGPOS_TXT_12, StrToWzID("ST20"), //DLGPOS_TXT_13, StrToWzID("ST32"), //DLGPOS_TXT_14, StrToWzID("ST21"), //DLGPOS_TXT_15, StrToWzID("ST33"), //DLGPOS_TXT_16, StrToWzID("ST22"), //DLGPOS_TXT_17, StrToWzID("ST34"), //DLGPOS_TXT_18, StrToWzID("ST23"), //DLGPOS_TXT_19, StrToWzID("ST35"), //DLGPOS_TXT_20, StrToWzID("ST24"), //DLGPOS_TXT_21, StrToWzID("ST36"), //DLGPOS_TXT_22, StrToWzID("B101"), //DLGPOS_BTN_OK, StrToWzID("BT00"), //DLGPOS_BTN_EXIT, StrToWzID("BT02"), //DLGPOS_BTN_LEFT, StrToWzID("BT01"), //DLGPOS_BTN_RIGHT, StrToWzID("ST02"), //DLGPOS_TXT_PAGE, }; //------------------------------------------------------------------------------ /** */ uiGuildMemberRightView::uiGuildMemberRightView(InterfaceManager * pUIMan) : uiBase(pUIMan) { m_pGuildMan = (uiGuildMan *)GetUIMan()->GetUserInterfaceManager(UIMAN_GUILD); assert(m_pGuildMan); } //------------------------------------------------------------------------------ /** */ uiGuildMemberRightView::~uiGuildMemberRightView() { m_vecTotalRight.clear(); } //------------------------------------------------------------------------------ /** */ void uiGuildMemberRightView::Init(CDrawBase* pDrawBase) { uiBase::Init(pDrawBase); m_pTextPage = (CCtrlStaticWZ *) getControl(DLGPOS_TXT_PAGE); assert(m_pTextPage); for(int i =0; i < MAX_GUILD_RIGHT_VIEW_ITEM; ++i) { m_CheckState[i].pCheck = (CCtrlButtonCheckWZ *) getControl(DLGPOS_CHECK_1 +i); assert(m_CheckState[i].pCheck); m_CheckState[i].pStatic = (CCtrlStaticWZ *) getControl(DLGPOS_TXT_1 +i); assert(m_CheckState[i].pStatic); } m_iCurPage = 0; } //------------------------------------------------------------------------------ /** */ void uiGuildMemberRightView::Release() { } //------------------------------------------------------------------------------ /** */ void uiGuildMemberRightView::Process(DWORD dwTick) { } //------------------------------------------------------------------------------ /** */ void uiGuildMemberRightView::OnShowWindow(BOOL val) { if( val ) { } else { } } //------------------------------------------------------------------------------ /** */ void uiGuildMemberRightView::MessageProc(SI_MESSAGE * pMessage) { switch ( pMessage->eResultMsg) { case RT_MSG_LBUTTONCLICK: { switch ( getControlIDToPos( pMessage->dwCtrlID )) { case DLGPOS_BTN_EXIT: case DLGPOS_BTN_OK: { ShowInterface(FALSE); } break; case DLGPOS_BTN_LEFT: { if(m_iCurPage > 0) { m_iCurPage--; RefreshItem(); } } break; case DLGPOS_BTN_RIGHT: { if( static_cast((m_iCurPage +1) * MAX_GUILD_RIGHT_VIEW_ITEM) < m_vecTotalRight.size() ) { m_iCurPage++; RefreshItem(); } } break; } } break; } } //------------------------------------------------------------------------------ /** */ void uiGuildMemberRightView::NetworkProc(MSG_BASE * pMsg) { } void uiGuildMemberRightView::RegisteAllItem(stGUILD_MEMBER_INFO * pMember, GUILD_RIGHT_USE_INFO * pRightUseInfo) { // ±ÇÇÑ¿¡ ´ëÇÑ ¸ðµç µ¥ÀÌŸ¸¦ ¼öÁýÇÑ´Ù. if( !pMember) return; m_vecTotalRight.clear(); std::map right_state_map; if (pRightUseInfo != NULL) { for (int index = 0; index < MAX_GUILD_DELEGATE_RIGHT; ++index) { if (pRightUseInfo[index].m_Right != 0) { right_state_map.insert(std::make_pair(pRightUseInfo->m_Right, pRightUseInfo->m_bRightUse)); } } } SetCaptionTargetName(pMember->m_tszCharName); GUILD_RIGHT_INFO_MAP * pRightInfoMap = GuildRightInfoParser::Instance()->GetGuildRightInfoMap(); GUILD_RIGHT_INFO_MAP_ITER itr; std::map::iterator found_itr; std::map::iterator end_itr = right_state_map.end(); for(itr = pRightInfoMap->begin(); itr != pRightInfoMap->end(); itr++) { GuildRightInfo * pInfo = itr->second; if( pInfo ) { sITEM_DATA sData; found_itr = right_state_map.find(pInfo->m_GuildRight); if (found_itr != end_itr) { // ¼­¹ö·ÎºÎÅÍ ¹ÞÀº ±ÇÇÑÁ¤º¸¸¦ CheckState ¼¼ÆÃ sData.bCheck = found_itr->second; } else { // ¼­¹ö·Î ºÎÅÍ ¹ÞÁö ¾ÊÀº Á¤º¸´Â ½ºÅ©¸³Æ® ¼³Á¤´ë·Î BOOL right_by_grade = GuildRightInfoParser::Instance()->CheckGradeForRight( pInfo->m_GuildRight, GetManager()->GetGuildInfo().m_GuildGrade); BOOL right_by_duty = GuildRightInfoParser::Instance()->CheckDutyForRight( pInfo->m_GuildRight, pMember->m_eGuildDuty); sData.bCheck = (FALSE != (right_by_grade && right_by_duty)); } sData.dwStringCode = pInfo->m_dwStringCode; m_vecTotalRight.push_back(sData); } } m_iCurPage = 0; RefreshItem(); } void uiGuildMemberRightView::RefreshItem() { for( int i =0; i < MAX_GUILD_RIGHT_VIEW_ITEM; ++i) { m_CheckState[i].pCheck->ShowWindowWZ(WZ_HIDE); m_CheckState[i].pStatic->ShowWindowWZ(WZ_HIDE); m_CheckState[i].pCheck->EnableWindowWZ(false); } int startLoopCount = m_iCurPage * MAX_GUILD_RIGHT_VIEW_ITEM; int endLoopCount = static_cast(min((int)m_vecTotalRight.size() , ((m_iCurPage + 1) * MAX_GUILD_RIGHT_VIEW_ITEM))); int count =0; for( int i = startLoopCount; i < endLoopCount; ++i) { if( count >= MAX_GUILD_RIGHT_VIEW_ITEM) return; m_CheckState[count].pCheck->ShowWindowWZ(WZ_SHOW); m_CheckState[count].pStatic->ShowWindowWZ(WZ_SHOW); m_CheckState[count].pCheck->SetCheckState(m_vecTotalRight[i].bCheck); GlobalFunc::SetCaption(m_CheckState[count].pStatic , (LPTSTR)g_InterfaceManager.GetInterfaceString(m_vecTotalRight[i].dwStringCode)); count++; } TCHAR szMessage[INTERFACE_STRING_LENGTH] ={0,}; TCHAR szPage[INTERFACE_STRING_LENGTH] ={0, }; //5796 %dÆäÀÌÁö g_InterfaceManager.GetInterfaceString(5796, szPage); Snprintf(szMessage, INTERFACE_STRING_LENGTH -1, szPage, m_iCurPage +1); GlobalFunc::SetCaption(m_pTextPage, szMessage); } #endif //_NA_003923_20120217_GUILD_RENEWAL_UI_GUILD_MANAGER