#include "SunClientPrecompiledHeader.h" #include "uiCommunityInfo.h" #include "uiCommunityMan/uiCommunityMan.h" #include "uiSystemMan/uiSystemMan.h" #include "Hero.h" #include "GlobalFunc.h" #include "interfacemanager.h" #include "GameFramework.h" #include "globalfunc.h" #include "MapInfoParser.h" #include "SceneBase.h" #include "GuildRankInfoParser.h" #ifdef _NA_003923_20120217_GUILD_RENEWAL_UI_GUILD_MANAGER #include "GuildSystem/GuildSystemFunction.h" #include "GuildSystem/GuildSystemData.h" #else #include "uiGuildMan/uiGuildMan.h" #endif //_NA_003923_20120217_GUILD_RENEWAL_UI_GUILD_MANAGER #include "AppearanceResourceCode.h" //------------------------------------------------------------------------------ WzID uiCommunityInfo::m_wzId[COMMUNITY_INFO_DIALOG_MAX] = { #ifdef _NA_003923_20120222_GUILD_RENEWAL_UI_RENEWAL StrToWzID("B999"),//COMMUNITY_INFO_DIALOG_EXIT #else StrToWzID("B001"),//COMMUNITY_INFO_DIALOG_EXIT #endif //_NA_003923_20120222_GUILD_RENEWAL_UI_RENEWAL StrToWzID("L001"),//COMMUNITY_INFO_DIALOG_LIST StrToWzID("B002"),//COMMUNITY_INFO_DIALOG_BTN_GAME StrToWzID("B003"),//COMMUNITY_INFO_DIALOG_BTN_MSG StrToWzID("B004"),//COMMUNITY_INFO_DIALOG_BTN_REFRESH StrToWzID("B005"),//COMMUNITY_INFO_DIALOG_BTN_CHAT #ifdef _NA_0_20100527_ADD_CHAR_RELATION_MEMO StrToWzID("E001"), //COMMUNITY_INFO_DIALOG_EDIT_MEMO_INPUT StrToWzID("B006"), //COMMUNITY_INFO_DIALOG_BTN_MEMO_ENABLE StrToWzID("B000"), //COMMUNITY_INFO_DIALOG_BTN_MEMO_UPDATE #endif //_NA_0_20100527_ADD_CHAR_RELATION_MEMO StrToWzID("V000"), StrToWzID("P003"), }; //------------------------------------------------------------------------------ /** */ uiCommunityInfo::uiCommunityInfo(InterfaceManager *pUIMan) : uiBase(pUIMan) , m_bControlsInitialized(false) , request_uimanager_id_(0) , multilineedit_control_(NULL) { this->m_pCommunityMan = static_cast(this->GetUIMan()->GetUserInterfaceManager(UIMAN_COMMUNITY)); assert (m_pCommunityMan); if (!this->m_pCommunityMan) { #ifdef _DEBUG uiSystemMan * pSystemMan = (uiSystemMan *)g_InterfaceManager.GetUserInterfaceManager(UIMAN_SYSTEM); if(pSystemMan) pSystemMan->Sys_VerifyLock(_T("m_pCommunityManÀÌ ¾ø½À´Ï´Ù.")); #endif this->ShowInterface(FALSE); return; } //m_bShow = false; } //------------------------------------------------------------------------------ /** */ uiCommunityInfo::~uiCommunityInfo() { this->Release(); } //------------------------------------------------------------------------------ /** */ void uiCommunityInfo::Init(CDrawBase* pDrawBase) { uiBase::Init(pDrawBase); this->InitControls(); } //------------------------------------------------------------------------------ /** */ void uiCommunityInfo::Release() { } //------------------------------------------------------------------------------ /** */ void uiCommunityInfo::InitControls() { m_pCommunityInfoList = static_cast(getControl(COMMUNITY_INFO_DIALOG_LIST)); for(int i=0; i(getControl(COMMUNITY_INFO_DIALOG_BTN_GAME + i)); assert(m_pBtnCtrls[i]); } #ifdef _NA_0_20100527_ADD_CHAR_RELATION_MEMO if (getControl(COMMUNITY_INFO_DIALOG_EDIT_MEMO_INPUT) != NULL) { if (getControl(COMMUNITY_INFO_DIALOG_EDIT_MEMO_INPUT)->GetCtrlStyle() & CTRL_ES_MULTILINE) { multilineedit_control_ = static_cast(getControl(COMMUNITY_INFO_DIALOG_EDIT_MEMO_INPUT)); multilineedit_control()->SetLimitText(MAX_FRIEND_MEMO_LENGHT); multilineedit_control()->SetLimitLine(4); multilineedit_control()->GetVScroll()->ShowWindowWZ(WZ_HIDE); multilineedit_control()->SetUseInputEnterKey(false); } } #endif //_NA_0_20100527_ADD_CHAR_RELATION_MEMO this->m_bControlsInitialized = true; } //------------------------------------------------------------------------------ void uiCommunityInfo::OnShowWindow( BOOL val ) { if (val) { //this->MoveDefaultWindowPos(); if (!this->m_bControlsInitialized) { this->ShowInterface(FALSE); return; } //m_bShow = true; keyMsg msg; ZeroMemory(&msg,sizeof(msg)); msg.dwType = eDoType_dialog_community_info; msg.wParam = InterfaceManager::DIALOG_COMMUNITY_INFO; msg.DoSomething = GlobalFunc::DoShowWindow; g_KeyQueueManager.PushBack(msg); _prepareShow(); FriendMemo_InputButtonState(kFriendMemoButtonStatus_Disable); RefreshList(); } else { //m_bShow = false; g_KeyQueueManager.DeleteMsg(eDoType_dialog_community_info); } } //------------------------------------------------------------------------------ void uiCommunityInfo::OnButtonClick_UpdateMemo() { #ifdef _NA_0_20100527_ADD_CHAR_RELATION_MEMO if (multilineedit_control() != NULL) { TCHAR memo[MAX_FRIEND_MEMO_LENGHT] = {NULL, }; ZeroMemory(memo, sizeof(memo)); multilineedit_control()->GetTextWZ(memo, MAX_FRIEND_MEMO_LENGHT); if (_tcscmp(memo, GetManager()->m_FriendInfo.m_ptszMemo) != 0) { GetManager()->SEND_CW_FRIEND_MEMO_UPDATE_SYN(GetManager()->m_FriendInfo.m_dwCharGuid, memo); //! ¾÷µ¥ÀÌÅÍ ÇØ ³õ´Â´Ù. StrnCopy(GetManager()->m_FriendInfo.m_ptszMemo, memo, MAX_FRIEND_MEMO_LENGHT); //! ¹öư »óÅ º¯°æ FriendMemo_InputButtonState(kFriendMemoButtonStatus_Lock); } else { //! multieditbox ¿¡ ÀÖ´Â ³»¿ëÀ» ¿ø»ó º¹±¸ ÇÑ´Ù multilineedit_control()->SetTextWZ(GetManager()->m_FriendInfo.m_ptszMemo); //! ¹öư »óÅ º¯°æ FriendMemo_InputButtonState(kFriendMemoButtonStatus_Disable); } } #endif //_NA_0_20100527_ADD_CHAR_RELATION_MEMO } //------------------------------------------------------------------------------ void uiCommunityInfo::FriendMemo_InputButtonState(FriendMemoButtonStatus status) { #ifdef _NA_0_20100527_ADD_CHAR_RELATION_MEMO CControlWZ* control = NULL; if (status == kFriendMemoButtonStatus_Modify) { control = getControl(COMMUNITY_INFO_DIALOG_BTN_MEMO_ENABLE); if (control != NULL) { control->ShowWindowWZ(WZ_HIDE); control->EnableWindowWZ(true); } control = getControl(COMMUNITY_INFO_DIALOG_BTN_MEMO_UPDATE); if (control != NULL) { control->ShowWindowWZ(WZ_SHOW); control->EnableWindowWZ(true); } control = getControl(COMMUNITY_INFO_DIALOG_EDIT_MEMO_INPUT); if (control != NULL) { control->EnableWindowWZ(true); control->OnFocusIn(); } } else if (status == kFriendMemoButtonStatus_Disable) { control = getControl(COMMUNITY_INFO_DIALOG_BTN_MEMO_ENABLE); if (control != NULL) { control->ShowWindowWZ(WZ_SHOW); control->EnableWindowWZ(true); } control = getControl(COMMUNITY_INFO_DIALOG_BTN_MEMO_UPDATE); if (control != NULL) { control->ShowWindowWZ(WZ_HIDE); control->EnableWindowWZ(true); } control = getControl(COMMUNITY_INFO_DIALOG_EDIT_MEMO_INPUT); if (control != NULL) { control->EnableWindowWZ(false); control->OnFocusOut(); } } else if (status == kFriendMemoButtonStatus_Lock) { control = getControl(COMMUNITY_INFO_DIALOG_BTN_MEMO_ENABLE); if (control != NULL) { control->ShowWindowWZ(WZ_SHOW); control->EnableWindowWZ(false); } control = getControl(COMMUNITY_INFO_DIALOG_BTN_MEMO_UPDATE); if (control != NULL) { control->ShowWindowWZ(WZ_HIDE); control->EnableWindowWZ(false); } control = getControl(COMMUNITY_INFO_DIALOG_EDIT_MEMO_INPUT); if (control != NULL) { control->EnableWindowWZ(false); control->OnFocusOut(); } } #endif //_NA_0_20100527_ADD_CHAR_RELATION_MEMO } //------------------------------------------------------------------------------ /** */ void uiCommunityInfo::_prepareShow() { if(!GetManager()) { return; } if (GetManager()->IsOnline(GetManager()->m_FriendInfo.m_ptszCharName) == FALSE) { // COMMUNITY_INFO_DIALOG_BTN_GAME : °ÔÀÓ °°ÀÌ Çϱâ Ç¥½Ã if (m_pBtnCtrls[COMMUNITY_INFO_BTN_GAME]) { m_pBtnCtrls[COMMUNITY_INFO_BTN_GAME]->EnableWindowWZ(false); } // COMMUNITY_INFO_DIALOG_BTN_MSG : ÂÊÁö º¸³»±â Ç¥½Ã if (m_pBtnCtrls[COMMUNITY_INFO_BTN_MSG]) { m_pBtnCtrls[COMMUNITY_INFO_BTN_MSG]->EnableWindowWZ(true); } // COMMUNITY_INFO_DIALOG_BTN_CHAT : ´ëÈ­Çϱâ Ç¥½Ã if (m_pBtnCtrls[COMMUNITY_INFO_BTN_CHAT]) { m_pBtnCtrls[COMMUNITY_INFO_BTN_CHAT]->EnableWindowWZ(false); } return; } #ifdef _YMS_GUILD_DETAL_SPEC if (request_uimanager_id() == UIMAN_GUILD) { // COMMUNITY_INFO_DIALOG_BTN_GAME : °ÔÀÓ °°ÀÌ Çϱâ Ç¥½Ã if (m_pBtnCtrls[COMMUNITY_INFO_BTN_GAME]) { m_pBtnCtrls[COMMUNITY_INFO_BTN_GAME]->EnableWindowWZ(true); //ShowWindowWZ(WZ_SHOW); } // COMMUNITY_INFO_DIALOG_BTN_MSG : ÂÊÁö º¸³»±â Ç¥½Ã if (m_pBtnCtrls[COMMUNITY_INFO_BTN_MSG]) { m_pBtnCtrls[COMMUNITY_INFO_BTN_MSG]->EnableWindowWZ(true); //ShowWindowWZ(WZ_SHOW); } // COMMUNITY_INFO_DIALOG_BTN_CHAT : ´ëÈ­Çϱâ Ç¥½Ã if (m_pBtnCtrls[COMMUNITY_INFO_BTN_CHAT]) { m_pBtnCtrls[COMMUNITY_INFO_BTN_CHAT]->EnableWindowWZ(false); //ShowWindowWZ(WZ_HIDE); } return; } #ifdef _NA_0_20110613_GAME_SHOP_RENEWAL else if (request_uimanager_id() == UIMAN_CONVENIENCESTORE) { // COMMUNITY_INFO_DIALOG_BTN_GAME : °ÔÀÓ °°ÀÌ Çϱâ Ç¥½Ã if (m_pBtnCtrls[COMMUNITY_INFO_BTN_GAME]) { m_pBtnCtrls[COMMUNITY_INFO_BTN_GAME]->EnableWindowWZ(false); //ShowWindowWZ(WZ_SHOW); } // COMMUNITY_INFO_DIALOG_BTN_MSG : ÂÊÁö º¸³»±â Ç¥½Ã if (m_pBtnCtrls[COMMUNITY_INFO_BTN_MSG]) { m_pBtnCtrls[COMMUNITY_INFO_BTN_MSG]->EnableWindowWZ(false); //ShowWindowWZ(WZ_SHOW); } // COMMUNITY_INFO_DIALOG_BTN_CHAT : ´ëÈ­Çϱâ Ç¥½Ã if (m_pBtnCtrls[COMMUNITY_INFO_BTN_CHAT]) { m_pBtnCtrls[COMMUNITY_INFO_BTN_CHAT]->EnableWindowWZ(false); //ShowWindowWZ(WZ_HIDE); } return; } #endif //_NA_0_20110613_GAME_SHOP_RENEWAL #endif if(GetManager()->GetPendingInfoMode() == eCM_FRIEND|| GetManager()->GetPendingInfoMode() == eCM_GROUP) { // COMMUNITY_INFO_DIALOG_BTN_GAME : °ÔÀÓ °°ÀÌ Çϱâ Ç¥½Ã if(m_pBtnCtrls[COMMUNITY_INFO_BTN_GAME]) { m_pBtnCtrls[COMMUNITY_INFO_BTN_GAME]->EnableWindowWZ(true); //ShowWindowWZ(WZ_SHOW); } // COMMUNITY_INFO_DIALOG_BTN_MSG : ÂÊÁö º¸³»±â Ç¥½Ã if(m_pBtnCtrls[COMMUNITY_INFO_BTN_MSG]) { m_pBtnCtrls[COMMUNITY_INFO_BTN_MSG]->EnableWindowWZ(true); //ShowWindowWZ(WZ_SHOW); } // COMMUNITY_INFO_DIALOG_BTN_CHAT : ´ëÈ­Çϱâ Ç¥½Ã if(m_pBtnCtrls[COMMUNITY_INFO_BTN_CHAT]) { m_pBtnCtrls[COMMUNITY_INFO_BTN_CHAT]->EnableWindowWZ(true); //ShowWindowWZ(WZ_SHOW); } } else if(GetManager()->GetPendingInfoMode() == eCM_REVENGE) { // COMMUNITY_INFO_DIALOG_BTN_GAME : °ÔÀÓ °°ÀÌ Çϱ⠼û±è if(m_pBtnCtrls[COMMUNITY_INFO_BTN_GAME]) { m_pBtnCtrls[COMMUNITY_INFO_BTN_GAME]->EnableWindowWZ(false); //ShowWindowWZ(WZ_HIDE); } // COMMUNITY_INFO_DIALOG_BTN_MSG : ÂÊÁö º¸³»±â ¼û±è if(m_pBtnCtrls[COMMUNITY_INFO_BTN_MSG]) { m_pBtnCtrls[COMMUNITY_INFO_BTN_MSG]->EnableWindowWZ(false); //ShowWindowWZ(WZ_HIDE); } // COMMUNITY_INFO_DIALOG_BTN_CHAT : ´ëÈ­Çϱ⠼û±è if(m_pBtnCtrls[COMMUNITY_INFO_BTN_CHAT]) { m_pBtnCtrls[COMMUNITY_INFO_BTN_CHAT]->EnableWindowWZ(false); //ShowWindowWZ(WZ_HIDE); } } } //------------------------------------------------------------------------------ /** */ BOOL uiCommunityInfo::_isEnable() { if(GENERALPARAM->IsNet()) { if (this->IsLock()) return FALSE; if(!g_pHero) return FALSE; if(g_pHero && g_pHero->IsShowFullMap()) return FALSE; if(!GetManager()) return FALSE; return TRUE; } else { return TRUE; } } //------------------------------------------------------------------------------ /** */ void uiCommunityInfo::MessageProc( SI_MESSAGE * pMessage ) { if (!_isEnable()) return; if (GetManager() == NULL) { return; } TCHAR szMessage[INTERFACE_STRING_LENGTH] = {0,}; switch( pMessage->eResultMsg ) { case RT_MSG_LBUTTONCLICK: { switch( getCtrlIDToPos( pMessage->dwCtrlID ) ) { #ifdef _NA_0_20100527_ADD_CHAR_RELATION_MEMO case COMMUNITY_INFO_DIALOG_BTN_MEMO_ENABLE: // ¸Þ¸ð ÀԷ Ȱ¼ºÈ­ { FriendMemo_InputButtonState(kFriendMemoButtonStatus_Modify); } break; case COMMUNITY_INFO_DIALOG_BTN_MEMO_UPDATE: { OnButtonClick_UpdateMemo(); } break; #endif //_NA_0_20100527_ADD_CHAR_RELATION_MEMO case COMMUNITY_INFO_DIALOG_BTN_GAME: // °°ÀÌ °ÔÀÓÇϱâ { if(GameFramework::GetCurrentScene()->GetType() == SCENE_TYPE_VILLAGE) { GetManager()->Send_CW_FRIEND_STATUS_JOIN_SYN(); } else { //1424 ¸¶À»¿¡¼­¸¸ ÇÒ¼ö ÀÖ´Ù g_InterfaceManager.GetInterfaceString( 1424, szMessage, INTERFACE_STRING_LENGTH ); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage); } } break; case COMMUNITY_INFO_DIALOG_BTN_MSG: { // ÂÊÁö ¾²±â GetManager()->ShowWriteMailDlg(GetManager()->m_FriendInfo.m_ptszCharName); } break; case COMMUNITY_INFO_DIALOG_BTN_CHAT: { GetManager()->RequestFriendChat(true); } break; case COMMUNITY_INFO_DIALOG_BTN_REFRESH: //»õ·Î°íħ { GetManager()->RqstRefreshFriendInfo(); } break; case COMMUNITY_INFO_DIALOG_EXIT: { //m_bShow = false; ShowInterface(FALSE); } break; } } break; case RT_MSG_SB_LINETOP: { if(getCtrlIDToPos( pMessage->dwCtrlID ) == COMMUNITY_VSCROLL_V000) { UpScroll(); } } break; case RT_MSG_SB_LINEBOTTOM: { if(getCtrlIDToPos( pMessage->dwCtrlID ) == COMMUNITY_VSCROLL_V000) { DownScroll(); } } break; case RT_MSG_SB_THUMBTRACK: //!< ½æÀ» µå·¡±× Çϰí ÀÖ´Ù. case RT_MSG_SB_THUMBPOSITION: //!< ½æÀ» µå·¡±×ÇÑÈÄ ¸¶¿ì½º¸¦ ³õ¾Ò´Ù. case RT_MSG_SB_ENDSCROLL: //!< ½ºÅ©·ÑÀÌ Á¾·á µÇ¾ú´Ù. { if(getCtrlIDToPos( pMessage->dwCtrlID ) == COMMUNITY_VSCROLL_V000) { ThumbScroll(); } } break; default: { SolarDialog::MessageProc( pMessage ); } break; } } //------------------------------------------------------------------------------ /** */ void uiCommunityInfo::OnUpdateSolarDialog() { //if(!m_bShow) //{ // ShowInterface(FALSE); // return; //} if (!_isEnable()) { return; } #ifdef _NA_0_20100527_ADD_CHAR_RELATION_MEMO if (multilineedit_control() != NULL) { TCHAR memo[MAX_FRIEND_MEMO_LENGHT + 20] = {NULL, }; ZeroMemory(memo, sizeof(memo)); multilineedit_control()->GetTextWZ(memo, MAX_FRIEND_MEMO_LENGHT + 20); //! ±æÀÌ Ã¼Å© if(_tcslen(memo) > MAX_FRIEND_MEMO_LENGHT) { ZeroMemory(memo, sizeof(memo)); multilineedit_control()->GetTextWZ(memo, MAX_FRIEND_MEMO_LENGHT); multilineedit_control()->SetTextWZ(memo); } } #endif //_NA_0_20100527_ADD_CHAR_RELATION_MEMO CCtrlVScrollWZ* pControl = static_cast(getControl(COMMUNITY_VSCROLL_V000)); if (m_pCommunityInfoList != NULL && pControl != NULL) { RECT area = m_pCommunityInfoList->GetSizeRect(); BYTE wheel_msg = uiBase::GetMouseWheelStatus(&area); switch (wheel_msg) { case MOUSE_WHEEL_UP: return UpScroll(); case MOUSE_WHEEL_DOWN: return DownScroll(); } } } //------------------------------------------------------------------------------ /** */ void uiCommunityInfo::_addListItem(int idx, COLORREF TextColor, TCHAR *pMsg) { DWORD c_dwBackColor = RGBA(0,0,0,0); GlobalFunc::SetItemText(m_pCommunityInfoList, idx, pMsg); m_pCommunityInfoList->SetItemFontID(idx, 0, StrToWzID("m212")); m_pCommunityInfoList->SetItemTextColor( idx, 0, TextColor ); m_pCommunityInfoList->SetItemBKColor( idx, 0, c_dwBackColor ); m_pCommunityInfoList->SetItemSelTextColor( idx, 0, TextColor ); } //------------------------------------------------------------------------------ /** */ void uiCommunityInfo::RefreshList() { if(!m_pCommunityInfoList) return; if(!GetManager()) return; m_pCommunityInfoList->DeleteItemAll(); DWORD c_dwCategoryTextColor = RGBA(0, 128, 128, 255); DWORD c_dwTextColor = RGBA(255, 255, 255, 255); TCHAR szTemp[INTERFACE_STRING_LENGTH] = {0,}; TCHAR szTemp2[INTERFACE_STRING_LENGTH] = {0,}; TCHAR szMessage[INTERFACE_STRING_LENGTH] = {0,}; // 1671 %s´ÔÀÇ ±âº» Á¤º¸ g_InterfaceManager.GetInterfaceString(1671, szTemp, INTERFACE_STRING_LENGTH); Snprintf(szMessage, INTERFACE_STRING_LENGTH-1, szTemp, GetManager()->m_FriendInfo.m_ptszCharName); int idx = m_pCommunityInfoList->InsertItemBack(); _addListItem(idx, c_dwCategoryTextColor, szMessage); LEVELTYPE character_level = GetSelectPlayerLevel(GetManager()->m_FriendInfo.m_ptszCharName); BYTE character_class = GetSelectPlayerClass(GetManager()->m_FriendInfo.m_ptszCharName); // 1672 ·¹º§: %d g_InterfaceManager.GetInterfaceString(1672, szTemp, INTERFACE_STRING_LENGTH); Snprintf(szMessage, INTERFACE_STRING_LENGTH-1, szTemp, character_level); idx = m_pCommunityInfoList->InsertItemBack(); _addListItem(idx, c_dwTextColor, szMessage); #ifdef _NA_006642_20120416_COMMUNITY_INFO_BUG_MODIFY // 1673 Á¾Á·: %s GenderType::Value gender_type = GetSelectPlayerGender(GetManager()->m_FriendInfo.m_ptszCharName); eCHAR_TYPE race_type = ResourceCode::GetImageClassType((eCHAR_TYPE)character_class, gender_type ); g_InterfaceManager.GetInterfaceString(1673, szTemp, INTERFACE_STRING_LENGTH); Snprintf(szMessage, INTERFACE_STRING_LENGTH-1, szTemp, GlobalFunc::GetRaceString(race_type)); idx = m_pCommunityInfoList->InsertItemBack(); _addListItem(idx, c_dwTextColor, szMessage); #endif //_NA_006642_20120416_COMMUNITY_INFO_BUG_MODIFY // 1730 Ŭ·¡½º: %s g_InterfaceManager.GetInterfaceString(1730, szTemp, INTERFACE_STRING_LENGTH); Snprintf(szMessage, INTERFACE_STRING_LENGTH-1, szTemp, GlobalFunc::GetClassString((eCHAR_TYPE)character_class)); idx = m_pCommunityInfoList->InsertItemBack(); _addListItem(idx, c_dwTextColor, szMessage); // 1674 ±æµå: [%s]ÀÇ %s if(_tcslen(GetManager()->m_FriendInfo.m_tszGuildName)) { g_InterfaceManager.GetInterfaceString(1674, szTemp, INTERFACE_STRING_LENGTH); int iStringIndex = _getMemberStringIndex((eGUILD_DUTY)GetManager()->m_FriendInfo.m_byDuty); if(iStringIndex > 0) { g_InterfaceManager.GetInterfaceString(iStringIndex, szTemp2, INTERFACE_STRING_LENGTH); Snprintf(szMessage, INTERFACE_STRING_LENGTH-1, szTemp, GetManager()->m_FriendInfo.m_tszGuildName, szTemp2); } else { //1095 ±æµå: %s g_InterfaceManager.GetInterfaceString(1095, szTemp); Snprintf(szMessage, INTERFACE_STRING_LENGTH-1, szTemp, GetManager()->m_FriendInfo.m_tszGuildName); } idx = m_pCommunityInfoList->InsertItemBack(); _addListItem(idx, c_dwTextColor, szMessage); } // °ø¹é ÇÑÁÙ Snprintf(szMessage, INTERFACE_STRING_LENGTH-1, _T("")); idx = m_pCommunityInfoList->InsertItemBack(); _addListItem(idx, c_dwTextColor, szMessage); // 1684 Á¢¼ÓÁ¤º¸ g_InterfaceManager.GetInterfaceString(1684, szMessage, INTERFACE_STRING_LENGTH); idx = m_pCommunityInfoList->InsertItemBack(); _addListItem(idx, c_dwCategoryTextColor, szMessage); if (GetManager()->IsOnline(GetManager()->m_FriendInfo.m_ptszCharName) == TRUE) { // 1677 Á¢¼ÓÁßÀΠä³Î: %d ä³Î g_InterfaceManager.GetInterfaceString(1677, szTemp, INTERFACE_STRING_LENGTH); Snprintf(szMessage, INTERFACE_STRING_LENGTH-1, szTemp, GetManager()->m_FriendInfo.m_byChannel); idx = m_pCommunityInfoList->InsertItemBack(); _addListItem(idx, c_dwTextColor, szMessage); // 1678 ij¸¯ÅÍ »óÅÂ: %s g_InterfaceManager.GetInterfaceString(1678, szTemp, INTERFACE_STRING_LENGTH); //ij¸¯ÅÍ »óÅÂ: int iZoneType = 685;//¾Ë¼ö¾øÀ½ switch(GetManager()->m_FriendInfo.m_byZoneType) { case eZONETYPE_LOBBY: iZoneType = 1679; break;//·Îºñ case eZONETYPE_VILLAGE: iZoneType = 1336; break;//¸¶À» case eZONETYPE_CHARSELECT: iZoneType = 50; break;//ij¸¯Å;À case eZONETYPE_FIELD: iZoneType = 1680; break;//Çʵå case eZONETYPE_CHUNTING: iZoneType = 641; break;//ÇåÆÃ case eZONETYPE_MISSION: iZoneType = 640; break;//¹Ì¼Ç case eZONETYPE_PVP: iZoneType = 685; break;//PVP case eZONETYPE_INSTANCE: iZoneType = 5455; break;//´øÁ¯ } g_InterfaceManager.GetInterfaceString(iZoneType, szTemp2, INTERFACE_STRING_LENGTH ); // ¾Ë ¼ö ¾øÀ½ Snprintf(szMessage, INTERFACE_STRING_LENGTH-1, szTemp, szTemp2); idx = m_pCommunityInfoList->InsertItemBack(); _addListItem(idx, c_dwTextColor, szMessage); if( GetManager()->m_FriendInfo.m_byZoneType == eZONETYPE_LOBBY || GetManager()->m_FriendInfo.m_byZoneType == eZONETYPE_CHUNTING || GetManager()->m_FriendInfo.m_byZoneType == eZONETYPE_MISSION || GetManager()->m_FriendInfo.m_byZoneType == eZONETYPE_PVP) { // 1682 ÁøÇàÁßÀÎ ¹èƲÁ¸ ¹øÈ£: %d if(GetManager()->m_FriendInfo.m_dwZoneKey) { g_InterfaceManager.GetInterfaceString(1682, szTemp, INTERFACE_STRING_LENGTH); Snprintf(szMessage, INTERFACE_STRING_LENGTH-1, szTemp, GetManager()->m_FriendInfo.m_dwZoneKey); idx = m_pCommunityInfoList->InsertItemBack(); _addListItem(idx, c_dwTextColor, szMessage); } } // 1683 »ó¼¼À§Ä¡: %s int iStrIndx = _getMapNameStringIndex(GetManager()->m_FriendInfo.m_MapCode); if(iStrIndx) { g_InterfaceManager.GetInterfaceString(1683, szTemp, INTERFACE_STRING_LENGTH); g_InterfaceManager.GetInterfaceString(iStrIndx, szTemp2, INTERFACE_STRING_LENGTH); Snprintf(szMessage, INTERFACE_STRING_LENGTH-1, szTemp, szTemp2); idx = m_pCommunityInfoList->InsertItemBack(); _addListItem(idx, c_dwTextColor, szMessage); } } else { //! offline g_InterfaceManager.GetInterfaceString(70501, szMessage ,INTERFACE_STRING_LENGTH); idx = m_pCommunityInfoList->InsertItemBack(); _addListItem(idx, c_dwTextColor, szMessage); } #ifdef _NA_0_20100527_ADD_CHAR_RELATION_MEMO if (multilineedit_control() != NULL) { multilineedit_control()->SetTextWZ(GetManager()->m_FriendInfo.m_ptszMemo); } #endif //_NA_0_20100527_ADD_CHAR_RELATION_MEMO resetScroll(); } //------------------------------------------------------------------------------ /** */ int uiCommunityInfo::_getMapNameStringIndex(CODETYPE mapCode) { const sMAPINFO * pMapInfo = MapInfoParser::Instance()->FindMapInfo((MAPCODE)mapCode); if(pMapInfo) { return pMapInfo->dwNCode; } return 0; } //------------------------------------------------------------------------------ /** */ int uiCommunityInfo::_getMemberStringIndex(eGUILD_DUTY eDuty) { DWORD dwStringIndex = 0; uiGuildMan * pGuildMan = (uiGuildMan *) g_InterfaceManager.GetUserInterfaceManager(UIMAN_GUILD); if( pGuildMan ) { #ifdef _NA_003923_20120217_GUILD_RENEWAL_UI_GUILD_MANAGER dwStringIndex = GuildSystem::Function::GetGuildDutyStringCode(eDuty); #else GUILD_DUTY_USE_INFO * pDutyUseInfo = GuildRankInfoParser::Instance()->GetGuildDutyUseInfo(GRADE_AT_GUILD_CREATE, eDuty); if(pDutyUseInfo) dwStringIndex = pDutyUseInfo->m_dwStringCode; #endif //_NA_003923_20120217_GUILD_RENEWAL_UI_GUILD_MANAGER } return dwStringIndex; } //------------------------------------------------------------------------------ LEVELTYPE uiCommunityInfo::GetSelectPlayerLevel(TCHAR* character_name) { if (request_uimanager_id() == UIMAN_GUILD) { #ifdef _NA_003923_20120217_GUILD_RENEWAL_UI_GUILD_MANAGER GUILD_MEMBER_INFO* guild_member_info = GuildSystem::GetGuildSystemData().GetGuildMemberInfo(character_name); if (guild_member_info != NULL) { return guild_member_info->m_Level; } #else uiGuildMan* guild_manager = static_cast(g_InterfaceManager.GetUserInterfaceManager(UIMAN_GUILD)); if (guild_manager) { stGUILD_MEMBER_INFO* member_info = guild_manager->GetGuildMemberInfo(character_name); if (member_info) { return member_info->m_Level; } } #endif //_NA_003923_20120217_GUILD_RENEWAL_UI_GUILD_MANAGER return 0; } return GetManager()->GetLevel(); } #ifdef _NA_006642_20120416_COMMUNITY_INFO_BUG_MODIFY GenderType::Value uiCommunityInfo::GetSelectPlayerGender(TCHAR* character_name) { return GetManager()->GetGender(); } #endif //_NA_006642_20120416_COMMUNITY_INFO_BUG_MODIFY //------------------------------------------------------------------------------ BYTE uiCommunityInfo::GetSelectPlayerClass(TCHAR* character_name) { if (request_uimanager_id() == UIMAN_GUILD) { #ifdef _NA_003923_20120217_GUILD_RENEWAL_UI_GUILD_MANAGER GUILD_MEMBER_INFO* guild_member_info = GuildSystem::GetGuildSystemData().GetGuildMemberInfo(character_name); if (guild_member_info != NULL) { return guild_member_info->m_byClass; } #else uiGuildMan* guild_manager = static_cast(g_InterfaceManager.GetUserInterfaceManager(UIMAN_GUILD)); if (guild_manager) { stGUILD_MEMBER_INFO* member_info = guild_manager->GetGuildMemberInfo(character_name); if (member_info) { return member_info->m_byClass; } } #endif //_NA_003923_20120217_GUILD_RENEWAL_UI_GUILD_MANAGER return 0; } return GetManager()->GetClass(); } void uiCommunityInfo::UpScroll() { CCtrlVScrollWZ* pControl = static_cast(getControl(COMMUNITY_VSCROLL_V000)); if(pControl == NULL) { return; } int pos = pControl->GetScrollPosWZ(); int mmin = 0, mmax = 0; pControl->GetScrollRangeWZ(&mmin, &mmax); if(pos > mmin) { --pos; pControl->SetScrollPosWZ(pos); } m_pCommunityInfoList->SetBeginDrawIndex(pos); } void uiCommunityInfo::DownScroll() { CCtrlVScrollWZ* pControl = static_cast(getControl(COMMUNITY_VSCROLL_V000)); if(pControl == NULL) { return; } int pos = pControl->GetScrollPosWZ(); int mmin = 0, mmax = 0; pControl->GetScrollRangeWZ(&mmin, &mmax); if (pos < mmax) { ++pos; pControl->SetScrollPosWZ(pos); } m_pCommunityInfoList->SetBeginDrawIndex(pos); } void uiCommunityInfo::ThumbScroll() { CCtrlVScrollWZ* pControl = static_cast(getControl(COMMUNITY_VSCROLL_V000)); if(pControl == NULL) { return; } int pos2 = pControl->GetScrollPosWZ(); int pos = pos2; int mmin = 0, mmax = 0; pControl->GetScrollRangeWZ(&mmin, &mmax); pos = max(mmin, pos); pos = min(mmax, pos); if(pos != pos2) { pControl->SetScrollPosWZ(pos); } m_pCommunityInfoList->SetBeginDrawIndex(pos); } void uiCommunityInfo::resetScroll() { CCtrlVScrollWZ* pControl = static_cast(getControl(COMMUNITY_VSCROLL_V000)); if(pControl == NULL) { return; } pControl->ShowWindowWZ(WZ_SHOW); if(CControlWZ* pPictureControl = getControl(COMMUNITY_PICTURE_P003)) { pPictureControl->ShowWindowWZ(WZ_SHOW); } int scroll_max_num = max(0, m_pCommunityInfoList->GetListRowCnt() - m_pCommunityInfoList->GetDrawRowCount()); if(scroll_max_num == 0) { pControl->ShowWindowWZ(WZ_HIDE); if(CControlWZ* pPictureControl = getControl(COMMUNITY_PICTURE_P003)) { pPictureControl->ShowWindowWZ(WZ_HIDE); } return; } int thumb_size = 100 / (scroll_max_num + 1); thumb_size = max(10, thumb_size); pControl->SetChangeSizeThumb(thumb_size); pControl->SetScrollRangeWZ(0, scroll_max_num); int begin_index = m_pCommunityInfoList->GetBeginDrawIndex(); int new_draw_index = begin_index <= scroll_max_num ? begin_index : scroll_max_num; m_pCommunityInfoList->SetBeginDrawIndex(new_draw_index); pControl->SetScrollPosWZ(new_draw_index); }