//------------------------------------------------------------------------------ // uiPartyMember_dialogproc.cpp // (C) 2005 ckbang //------------------------------------------------------------------------------ #include "SunClientPrecompiledHeader.h" #include "uiPartyMan/uiPartyMan.h" #include "uiPartyMember.h" #include "Player.h" #include "ObjectManager.h" #include "StateInfoParser.h" #include "Mouse.h" #include "IconImage.h" #include "uitargetman/uitargetman.h" #include "TargetDialog.h" #include "character.h" #include "globalfunc.h" #include "InterfaceManager.h" #include "uiToolTipMan/uiToolTipMan.h" #include "uiBattleScoreMan\uiBattleScoreMan.h" #include "StatusIconManager.h" #include "AppearanceResourceCode.h" #ifdef _DH_BATTLEZONE2_ #include "MapInfoParser.h" #endif //_DH_BATTLEZONE2_ #ifdef _NA_008679_20160202_REWORK_BATTLEGROUND #include "ChaosZoneInfoParser.h" #endif //_NA_008679_20160202_REWORK_BATTLEGROUND //------------------------------------------------------------------------------ WzID uiPartyMember::m_wzId[DIALOG_MAX] = { StrToWzID("P000"), // DLGPOS_HPBAR, StrToWzID("P001"), // DLGPOS_BUFF01, StrToWzID("P002"), // DLGPOS_BUFF02, StrToWzID("P003"), // DLGPOS_BUFF03, StrToWzID("P004"), // DLGPOS_BUFF04, StrToWzID("P005"), // DLGPOS_BUFF05, StrToWzID("P006"), // DLGPOS_BUFF06, StrToWzID("P007"), // DLGPOS_BUFF07, StrToWzID("P008"), // DLGPOS_BUFF08, StrToWzID("P009"), // DLGPOS_BUFF09, StrToWzID("P010"), // DLGPOS_BUFF10, StrToWzID("PI01"), // DLGPOS_FACE00, //ÃÊ»óÈ­ ¹ö¼­Ä¿ StrToWzID("PI02"), // DLGPOS_FACE01, // µå¶ó°ï ³ªÀÌÆ® StrToWzID("PI03"), // DLGPOS_FACE02, // ¼¨µµ¿ì StrToWzID("PI04"), // DLGPOS_FACE03, // ¹ß۸® StrToWzID("PI05"), // DLGPOS_FACE04, // ¿¤¸®¸àÅ» StrToWzID("PI11"), // DLGPOS_FACE05, // ¹Ì½ºÆ½ //_NA_004965_20120613_NEW_CHARACTER_MYSTIC #ifdef _NA_000000_20130812_NEW_CHARACTER_HELLROID StrToWzID("PI12"), // DLGPOS_FACE06 #endif //_NA_000000_20130812_NEW_CHARACTER_HELLROID #ifdef _NA_007514_20140828_NEW_CHARACTER_WITCHBLADE StrToWzID("P032"), // DLGPOS_FACE07 #endif // _NA_007514_20140828_NEW_CHARACTER_WITCHBLADE StrToWzID("P011"), // DLGPOS_CLASS_MARK00, //¸¶Å© ¹ö¼­Ä¿ StrToWzID("P012"), // DLGPOS_CLASS_MARK01, // µå¶ó°ï ³ªÀÌÆ® StrToWzID("P013"), // DLGPOS_CLASS_MARK02, // ¼¨µµ¿ì StrToWzID("P014"), // DLGPOS_CLASS_MARK03, // ¹ß۸® StrToWzID("P015"), // DLGPOS_CLASS_MARK04, // ¿¤¸®¸àÅ» StrToWzID("P017"), // DLGPOS_CLASS_MARK05, // ¹Ì½ºÆ½ //_NA_004965_20120613_NEW_CHARACTER_MYSTIC #ifdef _NA_000000_20130812_NEW_CHARACTER_HELLROID StrToWzID("P029"), // DLGPOS_CLASS_MARK06 #endif //_NA_000000_20130812_NEW_CHARACTER_HELLROID #ifdef _NA_007514_20140828_NEW_CHARACTER_WITCHBLADE StrToWzID("P033"), // DLGPOS_CLASS_MARK07 #endif // _NA_007514_20140828_NEW_CHARACTER_WITCHBLADE StrToWzID("T000"), // DLGPOS_TXT, StrToWzID("BT00"), // DLGPOS_LEAVE, StrToWzID("PI10"), // DLGPOS_MINE, StrToWzID("B222"), // DLGPOS_TARGETSHARE, StrToWzID("PI00"), // DLGPOS_PCMARK #ifdef _NA_000000_20130114_RENEWER_UI #else StrToWzID("CT01"), // DLGPOS_MIC_ON, #endif StrToWzID("B100"), // DLGPOS_MASTER_MARK, StrToWzID("BT01"), // DLGPOS_BTN_SELECTED_MARK StrToWzID("PI06"), // DLGPOS_MPBAR, StrToWzID("ST00"), // DLGPOS_LEVEL_TEXT, StrToWzID("PI07"), // DLGPOS_HPBAR_BK #ifdef _NA_000000_20130114_RENEWER_UI #else StrToWzID("PI00"), //DLGPOS_LV_BK, // ·¹º§ ¹è°æ StrToWzID("PI08"), //DLGPOS_FACE_BK #endif StrToWzID("PI09"), //DLGPOS_NAME #ifdef _DH_BATTLEZONE2_ StrToWzID("P016"), //DLGPOS_BATTLEZONE_READY #endif //_DH_BATTLEZONE2_ #ifdef _NA_000000_20130114_RENEWER_UI StrToWzID("P019"), // DLGPOS_BUFF19, StrToWzID("P020"), // DLGPOS_BUFF20, StrToWzID("P021"), // DLGPOS_BUFF21, StrToWzID("P022"), // DLGPOS_BUFF22, StrToWzID("P023"), // DLGPOS_BUFF23, StrToWzID("P024"), // DLGPOS_BUFF24, StrToWzID("P025"), // DLGPOS_BUFF25, StrToWzID("P026"), // DLGPOS_BUFF26, StrToWzID("P027"), // DLGPOS_BUFF27, StrToWzID("P028"), // DLGPOS_BUFF28, StrToWzID("P018"), // DLGPOS_BUFF28, #endif }; //------------------------------------------------------------------------------ void uiPartyMember::MoveDefaultWindowPos() { uiBase::MoveDefaultWindowPos(); if (IsVisible() == TRUE) { RECT rc; GetDialogWZ()->GetDlgSize(&rc); double height = rc.bottom - rc.top; DWORD dwGap = m_nGap; MoveWindowWZ( m_fLeft, m_fTop + (((float)height * (float)dwGap)) ); } } //------------------------------------------------------------------------------ void uiPartyMember::OnShowWindow(BOOL val) { //this->m_bShow = val; // for uiBase::IsVisable() if (val) { uiBase::MoveDefaultWindowPos(); RECT rc; GetDialogWZ()->GetDlgSize(&rc); double height = rc.bottom - rc.top; DWORD dwGap = m_nGap; MoveWindowWZ( m_fLeft, m_fTop + (((float)height * (float)dwGap)) ); this->OffLock(); this->OffPending(); this->m_fGaugeSize = (float)this->m_rcInit.right; this->m_fMPGaugeSize = (float)this->m_rcMPInit.right; CCtrlStaticWZ* pControl = NULL; m_ctrlGaugeBackground = static_cast(this->getControl(DLGPOS_MINE)); if (pControl) { pControl->ShowWindowWZ(WZ_HIDE); } pControl = static_cast(this->getControl(DLGPOS_TARGETSHARE)); if (pControl) { pControl->ShowWindowWZ(WZ_HIDE); } #ifdef _NA_000000_20130114_RENEWER_UI CControlWZ* pSPBar = static_cast(this->getControl(DLGPOS_SPBAR)); if (pSPBar) { pSPBar->ShowWindowWZ(WZ_HIDE); } #else CCtrlButtonCheckWZ* pChkBtnControl = static_cast(this->getControl(DLGPOS_MIC_ON)); if (pChkBtnControl) { pChkBtnControl->ShowWindowWZ(WZ_HIDE); } #endif CCtrlButtonWZ* pBtnControl = static_cast(this->getControl(DLGPOS_BTN_SELECTED_MARK)); if (pBtnControl) { pBtnControl->ShowWindowWZ(WZ_HIDE); } pBtnControl = static_cast(this->getControl(DLGPOS_LEAVE)); if (pBtnControl) { pBtnControl->ShowWindowWZ(WZ_HIDE); } CControlWZ* pControlPos = NULL; pControlPos = getControl(DLGPOS_NAME); if(pControlPos) { rect_pos_init[0] = pControlPos->GetSizeRect(); } pControlPos = getControl(DLGPOS_BTN_SELECTED_MARK); if(pControlPos) { rect_pos_init[1] = pControlPos->GetSizeRect(); } pControlPos = getControl(DLGPOS_LEVEL_TEXT); if(pControlPos) { rect_pos_init[2] = pControlPos->GetSizeRect(); } pControlPos = getControl(DLGPOS_TXT); if(pControlPos) { rect_pos_init[3] = pControlPos->GetSizeRect(); } pBtnControl = static_cast(this->getControl(DLGPOS_LEAVE)); if (pBtnControl) { pBtnControl->ShowWindowWZ(WZ_HIDE); } pControlPos = getControl(DLGPOS_MINE); if(pControlPos) { rect_pos_string = pControlPos->GetSizeRect(); } } else { } } //------------------------------------------------------------------------------ /** */ void uiPartyMember::MessageProc( SI_MESSAGE * pMessage ) { if (this->IsLock()) return; switch( pMessage->eResultMsg ) { case RT_MSG_LBUTTONCLICK: { POSTYPE pos = getCtrlIDToPos( pMessage->dwCtrlID ); if( pos <= DIALOG_MAX ) { #ifdef _NA_000000_20130114_RENEWER_UI if (pos != DLGPOS_LEAVE && pos != DLGPOS_PCMARK) #else if (pos != DLGPOS_LEAVE && pos != DLGPOS_MIC_ON) #endif { this->SetTargeting(); } } } break; case RT_MSG_RBUTTONCLICK: { POSTYPE pos = getCtrlIDToPos( pMessage->dwCtrlID ); if( pos <= DIALOG_MAX ) { if (pos != DLGPOS_LEAVE) { this->TargetShare(false); } } } break; case RT_MSG_MOUSEOVER: { #ifdef _DH_BATTLEZONE2_ mouse_over_ = true; #endif //_DH_BATTLEZONE2_ } break; default: { SolarDialog::MessageProc( pMessage ); } break; } } //------------------------------------------------------------------------------ /** */ void uiPartyMember::SetPartView() { RECT rc; GetDialogWZ()->GetDlgSize(&rc); RECT rc_MemberWin = rc; double height = rc.bottom - rc.top; DWORD dwGap = m_nGap; float fWinTop = this->m_fTop + (((float)height * (float)dwGap)); bool bIsShowFace = false; if(this->GetManager() == NULL) { return; } #ifdef _NA_000000_20130114_RENEWER_UI bool isFaceOff = false; int Move_window_scale =0; CControlWZ* pControl = getControl(DLGPOS_BATTLEZONE_READY); if(pControl) { if(this->GetManager()->GetShowFace() == true) { Move_window_scale = 0; this->MoveWindowWZ(m_fLeft, fWinTop); bIsShowFace = true; isFaceOff = false; } else { Move_window_scale = -(pControl->GetSizeRect().right - pControl->GetSizeRect().left); this->MoveWindowWZ((float)(Move_window_scale), fWinTop); isFaceOff = true; } } if(this->GetManager()->GetShowGague() == false)//°ÔÀÌÁö°¡ ¾Èº¸À϶§ À̸§ À§Ä¡ À̵¿ { CControlWZ* pControl = NULL; pControl = getControl(DLGPOS_NAME); CControlWZ* pTargetControl = getControl(DLGPOS_BATTLEZONE_READY); RECT rt; //ÇöÀçÀ§Ä¡. //À̵¿ÈÄ À§Ä¡ int isTop= 0; RECT MoveRt = pTargetControl->GetSizeRect(); if(pControl) { isTop = pControl->GetSizeRect().top; rt = pControl->GetSize(); pControl->MoveWindowWZ((float)((MoveRt.right+1)+(isFaceOff ? 0 : Move_window_scale)), (float)(isTop), (float)rt.right, (float)rt.bottom); MoveRt = pControl->GetSizeRect(); } pControl = getControl(DLGPOS_BTN_SELECTED_MARK); if(pControl) { isTop = pControl->GetSizeRect().top; rt = pControl->GetSize(); pControl->MoveWindowWZ((float)(MoveRt.left+1)+ (isFaceOff ? 0 : Move_window_scale), (float)(isTop)+1, (float)rt.right, (float)rt.bottom); MoveRt = pControl->GetSizeRect(); } pControl = getControl(DLGPOS_LEVEL_TEXT); if(pControl) { isTop = pControl->GetSizeRect().top; rt = pControl->GetSize(); pControl->MoveWindowWZ((float)(MoveRt.left+1)+ (isFaceOff ? 0 : Move_window_scale) , (float)(isTop), (float)rt.right, (float)rt.bottom); MoveRt = pControl->GetSizeRect(); } pControl = getControl(DLGPOS_TXT); if(pControl) { isTop = pControl->GetSizeRect().top; rt = pControl->GetSize(); pControl->MoveWindowWZ((float)(MoveRt.right+1)+ (isFaceOff ? 0 : Move_window_scale) , (float)(isTop), (float)rt.right, (float)rt.bottom); } } else { //¿ø·¡ À§Ä¡·Î À̵¿ CControlWZ* pControl = NULL; pControl = getControl(DLGPOS_NAME); if(pControl) { pControl->MoveWindowWZ((float)rect_pos_init[0].left + Move_window_scale +(isFaceOff ? -m_fLeft : 0), (float)rect_pos_init[0].top, (float)pControl->GetSize().right, (float)pControl->GetSize().bottom); } pControl = getControl(DLGPOS_BTN_SELECTED_MARK); if(pControl) { pControl->MoveWindowWZ((float)rect_pos_init[1].left + Move_window_scale +(isFaceOff ? -m_fLeft : 0) , (float)rect_pos_init[0].top+1, (float)pControl->GetSize().right, (float)pControl->GetSize().bottom); } pControl = getControl(DLGPOS_LEVEL_TEXT); if(pControl) { pControl->MoveWindowWZ((float)rect_pos_init[2].left + Move_window_scale +(isFaceOff ? -m_fLeft : 0) , (float)rect_pos_init[0].top, (float)pControl->GetSize().right, (float)pControl->GetSize().bottom); } pControl = getControl(DLGPOS_TXT); if(pControl) { pControl->MoveWindowWZ((float)rect_pos_init[3].left + Move_window_scale +(isFaceOff ? -m_fLeft : 0) , (float)rect_pos_init[0].top, (float)pControl->GetSize().right, (float)pControl->GetSize().bottom); } } #else CControlWZ* pControl = getControl(DLGPOS_FACE00); if(pControl) { if(this->GetManager()->GetShowFace() == true) { this->MoveWindowWZ(m_fLeft, fWinTop); bIsShowFace = true; } else { this->MoveWindowWZ((m_fLeft - (pControl->GetSizeRect().right - pControl->GetSizeRect().left)), fWinTop); } } if(m_bInitPartPos != true) // ÄÁÆ®·ÑµéÀÇ rect°¡ ÃʱâÈ­ µÇÁö ¾Ê¾ÒÀ¸¸é À§Ä¡ º¯°æÀ» ÇÏÁö ¾Ê´Â´Ù. { return; } if(this->GetManager()->GetShowGague() == false) // °ÔÀÌÁö°¡ ¾Èº¸À϶§ ¹öÇÁ À§Ä¡ À̵¿ { for(int i = DLGPOS_BUFF01; i <= DLGPOS_BUFF10; ++i) { pControl = getControl(i); if(pControl) { pControl->MoveWindowWZ((float)(pControl->GetSizeRect().left), (float)(fWinTop + m_rcGague.top), (float)(pControl->GetSizeRect().right - pControl->GetSizeRect().left), (float)(m_rcBuf.bottom)); } } pControl = getControl(DLGPOS_MASTER_MARK); if(pControl) { height = pControl->GetSizeRect().right - pControl->GetSizeRect().left; pControl->MoveWindowWZ((float)(pControl->GetSizeRect().left), (float)(fWinTop + m_rcName.top), (float)(pControl->GetSizeRect().right - pControl->GetSizeRect().left), (float)(height)); } } else { for(int i = DLGPOS_BUFF01; i <= DLGPOS_BUFF10; ++i) { pControl = getControl(i); if(pControl) { pControl->MoveWindowWZ((float)(pControl->GetSizeRect().left), (float)(fWinTop + m_rcBuf.top), (float)(pControl->GetSizeRect().right - pControl->GetSizeRect().left), (float)(m_rcBuf.bottom)); } } pControl = getControl(DLGPOS_MASTER_MARK); if(pControl) { height = pControl->GetSizeRect().right - pControl->GetSizeRect().left; pControl->MoveWindowWZ((float)(pControl->GetSizeRect().left), (float)(fWinTop + m_rcGague.top), (float)(pControl->GetSizeRect().right - pControl->GetSizeRect().left), (float)(height)); } } #endif } //------------------------------------------------------------------------------ /** */ void uiPartyMember::OnUpdateSolarDialog() { if (this->GetUIMan()->IsShowDialog(InterfaceManager::DIALOG_BATTLE_LOBBY)) { this->ShowInterface(FALSE); return; } if (this->GetUIMan()->IsShowDialog(InterfaceManager::DIALOG_BATTLEZONE_CREATE)) { this->ShowInterface(FALSE); return; } if (this->GetUIMan()->IsShowDialog(InterfaceManager::DIALOG_BATTLEZONE_LIST)) { this->ShowInterface(FALSE); return; } const uicPartyMemberInfoPlus& memInfo = this->GetMyMemberInfo(); CCtrlButtonWZ* ctrlbtn_Selected = static_cast(this->getControl(DLGPOS_BTN_SELECTED_MARK)); if (ctrlbtn_Selected) { ctrlbtn_Selected->ShowWindowWZ(WZ_HIDE); TargetDialog* pTargetDlg = GET_CAST_DIALOG(TargetDialog, IM_TARGET_MANAGER::TARGET_DIALOG); if (pTargetDlg) { DWORD compKey = memInfo.Get().m_dwMemberKey; if (pTargetDlg->GetTargetKey() == compKey) { ctrlbtn_Selected->ShowWindowWZ(WZ_SHOW); } } } if (m_ctrlBtnMaster) { if (this->GetManager()->IsLeader()) { m_ctrlBtnMaster->ShowWindowWZ(WZ_HIDE); } else { if (memInfo.Get().m_dwMemberKey == GetManager()->GetMasterKey()) { m_ctrlBtnMaster->ShowWindowWZ(WZ_SHOW); } else { m_ctrlBtnMaster->ShowWindowWZ(WZ_HIDE); } } } #ifdef _DH_BATTLEZONE2_ CControlWZ* ctrl_pointer = getControl(DLGPOS_BATTLEZONE_READY); if (ctrl_pointer && this->GetManager()->GetShowFace()) { if ((memInfo.is_ready() == true) && (memInfo.Get().m_dwMemberKey != GetManager()->GetMasterKey())) { ctrl_pointer->ShowWindowWZ(WZ_SHOW); } else { ctrl_pointer->ShowWindowWZ(WZ_HIDE); } } #endif //_DH_BATTLEZONE2_ this->updateInfos(); } //------------------------------------------------------------------------------ /**i */ void uiPartyMember::updateInfos() { this->updateHP(); this->updateMP(); #ifdef _NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS //this->updateSD(); // ÇöÀç ÆÄÆ¼¸â¹öui¿¡ SD °ÔÀÌÁö¸¦ Ç¥½ÃÇÏÁö ¾ÊÀ½ #endif //_NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS } //------------------------------------------------------------------------------ /** */ void uiPartyMember::updateHP() { const uicPartyMemberInfoPlus& memInfo = this->GetMyMemberInfo(); SetHP ((float)(memInfo.Get().m_byHPRatio)); } //------------------------------------------------------------------------------ /** */ void uiPartyMember::updateMP() { const uicPartyMemberInfoPlus& memInfo = this->GetMyMemberInfo(); SetMP ((float)(memInfo.Get().m_byMPRatio)); } #ifdef _NA_006638_20120415_ADD_SHIELD_INFO_IN_TARGET_INFO //------------------------------------------------------------------------------ /** */ void uiPartyMember::updateSD() { // ÇöÀç ÆÄÆ¼¸â¹öui¿¡ SD °ÔÀÌÁö¸¦ Ç¥½ÃÇÏÁö ¾ÊÀ½ //const uicPartyMemberInfoPlus& memInfo = this->GetMyMemberInfo(); //SetSD ((float)(memInfo.Get().m_bySDRatio)); } #endif // _NA_006638_20120415_ADD_SHIELD_INFO_IN_TARGET_INFO //------------------------------------------------------------------------------ /** */ void uiPartyMember::UpdateStatusIcon() { status_icon_container_.clear(); bool is_show = (this->GetManager()->IsShowBuffInfos() && this->GetManager()->GetShowBuf() == true); if (is_show != true) { return; } const _PARTY_MEMBER_INFO& party_member_info = GetMyMemberInfo().Get(); Player* party_member = static_cast(g_ObjectManager.GetObject(party_member_info.m_dwMemberKey)); if ((party_member == NULL) || (party_member->IsKindOfObject(PLAYER_OBJECT) != TRUE)) { return; } int mouse_x_position = Mouse::Instance()->GetMouseX(); int mouse_y_position = Mouse::Instance()->GetMouseY(); // Ÿ°Ù ÀÇ SKILL_EFFECT ¸¦ ¼øÈ¸ BASE_STATEINFO* state_info = NULL; SKILL_EFFECT_IMAGE status_icon; DWORD hero_object_key = party_member_info.m_dwMemberKey; int status_Index = 0; CControlWZ* buff_control = NULL; std::vector& skill_effect_array = party_member->GetSkillEffectArray(); for( size_t i=0;i!=skill_effect_array.size();++i) { SKILL_EFFECT* skill_effect = skill_effect_array[i]; state_info = StateInfoParser::Instance()->GetStateInfo(skill_effect->dwStatusID); status_icon.iEffectID = skill_effect->iEffectID; status_icon.dwStatusID = skill_effect->dwStatusID; status_icon.dwOwnerID = hero_object_key; status_icon.pSkillEffect = skill_effect; status_icon.pStateInfo = state_info; //¿©±â¼­ ¾ËÆÄ°ª ´Ü°è¸¦ ³»¸®¸é µÇÁö¸¸.. À½.? if(status_Index < 10) { status_icon.m_byAlpha = 0xFF; } else { status_icon.m_byAlpha = StatusIconManager::ALPHA_VALUE_MOUSE_OVER_ICON; } // draw_rect °è»ê\ #ifdef _NA_000000_20130114_RENEWER_UI buff_control = status_Index < 10 ? (getControl(DLGPOS_BUFF01 + status_Index)):\ (getControl(DLGPOS_BUFF19 + status_Index - 10)); #else buff_control = getControl(DLGPOS_BUFF01 + status_Index); #endif if (buff_control != NULL) { status_icon.rcDrawRect = buff_control->GetSizeRect(); // ¸¶¿ì½º ¿À¹öüũ if ((status_icon.rcDrawRect.left <= mouse_x_position) && (status_icon.rcDrawRect.right >= mouse_x_position) && (status_icon.rcDrawRect.top <= mouse_y_position) && (status_icon.rcDrawRect.bottom >= mouse_y_position)) { // ÅøÆÁ Ãâ·Â uiToolTipMan* tooltip_manager = GET_DIALOG_MANAGER(uiToolTipMan, UIMAN_TOOLTIP); if (tooltip_manager) { tooltip_manager->RegisterSkillEffectInfoTooltip(&status_icon, TRUE); tooltip_manager->SetTooltipDialogID(GetDialogKey()); } } status_icon_container_.push_back(status_icon); } ++status_Index; if (status_Index >= StatusIconManager::MAX_PARTYMEMBER_ICON) { break; } } // status_icon_manager¿¡ »ðÀÔ StatusIconManager* status_icon_manager = g_InterfaceManager.GetStatusIconManager(); if (status_icon_manager) { status_icon_manager->RegisterStatusIconInfo(status_icon_container_); } } //------------------------------------------------------------------------------ /** */ void uiPartyMember::renderStringInfo() { const uicPartyMemberInfoPlus& memInfo = this->GetMyMemberInfo(); this->GetDrawBase()->x_pManagerTextOut->StartToUseFont(StrToWzID("st10")); CCtrlStaticWZ* pControl = (CCtrlStaticWZ*)getControl(DLGPOS_TXT); if (pControl) { RECT rc, rc2; rc2 = pControl->GetSizeRect(); rc2.top += 1; SetRect(&rc, rc2.left + 5, rc2.top, rc2.right - 10, rc2.top + 14); #ifdef _INTERNATIONAL_UI SetRect(&rc, rc2.left + 5, rc2.top,rc2.right,rc2.top+ 14); #else SetRect(&rc,rc2.left + 5, rc2.top,rc2.right - 10,rc2.top + 14); #endif//_INTERNATIONAL_UI WzColor _color = COLORDEF_UIPARTY_MEMBER_AT_TIME_LIVE; if(memInfo.Get().m_byHPRatio <= 0 ) { _color = COLORDEF_UIPARTY_MEMBER_AT_TIME_DEAD; } char* charName = const_cast( memInfo.Get().m_szCharName ); this->GetDrawBase()->x_pManagerTextOut->DrawText( charName, &rc, _color, WzColor_RGBA(0,0,0,0), TP_HLEFT, ETS_SHADOW ); #ifdef _NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS if (memInfo.IsConnected() == false) #else if( memInfo.IsUnexpectedTerminate()) #endif //_NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS { CControlWZ* control_pointer = getControl(DLGPOS_MINE); rc.top += 18; rc.left = rect_pos_string.left; rc.bottom += 18; // 5240 ºñÁ¤»óÁ¾·á this->GetDrawBase()->x_pManagerTextOut->DrawText( (TCHAR *) g_InterfaceManager.GetInterfaceString(5240), &rc, WzColor_RGBA(255,0,0,255), WzColor_RGBA(0,0,0,0), TP_HLEFT, ETS_SHADOW ); /////////////////////elfleeTest uiBattleScoreMan* pBattleScoreMan = static_cast(g_InterfaceManager.GetUserInterfaceManager(UIMAN_BATTLE_SCORE)); if(pBattleScoreMan && pBattleScoreMan->GetMode() != uiBattleScoreMan::eBTS_NONE_MODE) { int index = pBattleScoreMan->FindMember(memInfo.Get().m_dwMemberKey, eHomeTeam); if(index >= 0) { pBattleScoreMan->DisconnectMember(index, (E_TEAM)eHomeTeam); pBattleScoreMan->RefreshListCtrlData(); } } } #ifdef _DH_BATTLEZONE2_ else if (output_zone_type_ != OUTPUT_ZONE_NONE) { TCHAR message_text[INTERFACE_STRING_LENGTH] ={0,}; if (output_zone_type_ == OUTPUT_ZONE_FILED) { // 2489 Çʵå g_InterfaceManager.GetInterfaceString(2489, message_text, INTERFACE_STRING_LENGTH); } else if (output_zone_type_ == OUTPUT_ZONE_BATTLEZONE) { // 2490 ¹èƲÁ¸ g_InterfaceManager.GetInterfaceString(2490, message_text, INTERFACE_STRING_LENGTH); } rc.top += 18; rc.left = rect_pos_string.left; rc.bottom += 18; // Çʵå or ¹èƲÁ¸ this->GetDrawBase()->x_pManagerTextOut->DrawText( message_text, &rc, WzColor_RGBA(255,0,0,255), WzColor_RGBA(0,0,0,0), TP_HLEFT, ETS_SHADOW ); } #endif //_DH_BATTLEZONE2_ } #ifdef _NA_008679_20160202_REWORK_BATTLEGROUND // ÀüÀå¿¡¼± ·¹º§ °¡¸² + ºñÁ¤»ó Á¢¼Ó º¹±Í ½Ã Àá±ñÀÌ¶óµµ º¸ÀÏ °æ¿ì¸¦ ¿°·ÁÇÏ¿© ÆÄƼ¿øÀÌ ÀüÀåÀÎÁö·Î ±¸º° bool is_battle_ground = false; const ChaosZoneInfo* chaoszone_info = ChaosZoneInfoParser::Instance()->FindData(static_cast(GetMyMemberInfo().map_code()), kBattleGround); if (chaoszone_info) { is_battle_ground = true; } if(this->GetManager() && this->GetManager()->GetShowFace() == true && is_battle_ground == false) #else if(this->GetManager() && this->GetManager()->GetShowFace() == true) #endif //_NA_008679_20160202_REWORK_BATTLEGROUND { if(m_ctrlLevelStatic) { char buf[8] = {0,}; sprintf( buf, "%d", memInfo.Get().m_wLevel ); WzColor LvColor = COLORDEF_UIPARTY_MEMBER_AT_TIME_LIVE; RECT rcLevel = m_ctrlLevelStatic->GetSizeRect(); rcLevel.top += 1; this->GetDrawBase()->x_pManagerTextOut->DrawText( buf, &rcLevel, LvColor, WzColor_RGBA(0,0,0,0), TP_HCENTER, ETS_SHADOW); } } } //------------------------------------------------------------------------------ /** */ void uiPartyMember::OnRenderSolarDialog() { renderStringInfo(); int iMouseX = Mouse::Instance()->GetMouseX(); int iMouseY = Mouse::Instance()->GetMouseY(); #ifdef _DH_BATTLEZONE2_ //À§Ä¡ Ãâ·Â RECT rect; CControlWZ* control_pointer; bool is_draw_tooltip = false; control_pointer = getControl(DLGPOS_BTN_SELECTED_MARK); if (control_pointer) { rect = control_pointer->GetSizeRect(); if (rect.left <= iMouseX && rect.right >= iMouseX) { if (rect.top <= iMouseY && rect.bottom >= iMouseY) { is_draw_tooltip = true; } } } #ifdef _NA_000000_20130114_RENEWER_UI #else if (this->GetManager()->GetShowFace() == true) { control_pointer = getControl(DLGPOS_FACE_BK); if (control_pointer) { rect = control_pointer->GetSizeRect(); if (rect.left <= iMouseX && rect.right >= iMouseX) { if (rect.top <= iMouseY && rect.bottom >= iMouseY) { is_draw_tooltip = true; } } } } #endif if (this->GetManager()->GetShowGague() == true) { control_pointer = getControl(DLGPOS_MINE); if (control_pointer) { rect = control_pointer->GetSizeRect(); if (rect.left <= iMouseX && rect.right >= iMouseX) { if (rect.top <= iMouseY && rect.bottom >= iMouseY) { is_draw_tooltip = true; } } } } if ((is_draw_tooltip == true) && (mouse_over_ == true)) { uiToolTipMan* tooltip_manager = GET_DIALOG_MANAGER(uiToolTipMan, UIMAN_TOOLTIP); if (tooltip_manager && (GetMyMemberInfo().map_code() != 0)) { // ÇöÀçÁö¿ª const sMAPINFO* current_map_info = MapInfoParser::Instance()->FindMapInfo(static_cast(GetMyMemberInfo().map_code())); if (current_map_info != NULL) { TCHAR message[INTERFACE_STRING_LENGTH] = {0,}; g_InterfaceManager.GetInterfaceString(current_map_info->dwNCode, message); tooltip_manager->RegisterTooltipSimpleText(message); tooltip_manager->SetTooltipDialogID(GetDialogKey()); } } } else { mouse_over_ = false; } #endif //_DH_BATTLEZONE2_ //this->renderStringInfo(); } //------------------------------------------------------------------------------ /** */ void uiPartyMember::SetHP( float fHPPercent ) { CCtrlStaticWZ* ctlHp = (CCtrlStaticWZ*)getControl(DLGPOS_HPBAR); assert( ctlHp ); if( !ctlHp ) { return; } fHPPercent = max( 0.0f, min( 100.0f, fHPPercent ) ); RECT rc = ctlHp->GetSize(); float width = (m_fGaugeSize / 100.f) * fHPPercent; ctlHp->MoveWindowWZ( (float)rc.left, (float)rc.top, width, (float)rc.bottom ); CCtrlStaticWZ* ctlHpBk = (CCtrlStaticWZ*)getControl(DLGPOS_HPBAR_BK); assert( ctlHpBk ); if( !ctlHpBk ) { return; } ctlHpBk->MoveWindowWZ( (float)rc.left, (float)rc.top, width, (float)rc.bottom ); if( fHPPercent < 30.0f ) { ctlHp->ShowWindowWZ( WZ_HIDE ); DWORD curTick = clock_function::GetTickCount(); m_bHpBlinkType = true; if (this->GetManager() && this->GetManager()->GetShowGague() != true) { return; } else { // 0.06Ãʸ¶´Ù ±ôºýÀÓ if( curTick - m_blinkTick > 60 ) { m_blinkTick = curTick; ENUM_STATEWZ st = ( ctlHpBk->GetState() == WZ_SHOW ? WZ_HIDE : WZ_SHOW ); ctlHpBk->ShowWindowWZ( st ); } } } else { if (m_bHpBlinkType == true && this->GetManager()) { m_bHpBlinkType = false; if(this->GetManager()->GetShowGague() != true) { ctlHp->ShowWindowWZ(WZ_HIDE); } else { ctlHp->ShowWindowWZ(WZ_SHOW); } ctlHpBk->ShowWindowWZ(WZ_HIDE); } } } //------------------------------------------------------------------------------ /** */ void uiPartyMember::SetMP( float fMPPercent ) { CCtrlStaticWZ* ctlMp = (CCtrlStaticWZ*)getControl(DLGPOS_MPBAR); assert( ctlMp ); if( !ctlMp ) { return; } fMPPercent = max( 0.0f, min( 100.0f, fMPPercent ) ); RECT rc = ctlMp->GetSize(); float width = (m_fMPGaugeSize / 100.f) * fMPPercent; ctlMp->MoveWindowWZ( (float)rc.left, (float)rc.top, width, (float)rc.bottom ); } #ifdef _NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS //------------------------------------------------------------------------------ /** */ void uiPartyMember::SetSD( float fMPPercent ) { // ÇöÀç ÆÄÆ¼¸â¹öui¿¡ SD¸¦ Ç¥½ÃÇÏÁö ¾ÊÀ½ } #endif //_NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS //------------------------------------------------------------------------------ /** */ void uiPartyMember::ShowGagueControl(bool visibility) { CCtrlStaticWZ* ctlMp = (CCtrlStaticWZ*)getControl(DLGPOS_MPBAR); if (ctlMp != NULL) { if(visibility == true) { ctlMp->ShowWindowWZ(WZ_SHOW); } else { ctlMp->ShowWindowWZ(WZ_HIDE); } } CCtrlStaticWZ* ctlHp = (CCtrlStaticWZ*)getControl(DLGPOS_HPBAR); if (ctlHp != NULL) { if (visibility == true) { ctlHp->ShowWindowWZ(WZ_SHOW); } else { ctlHp->ShowWindowWZ(WZ_HIDE); } } CCtrlStaticWZ* ctlHpBk = (CCtrlStaticWZ*)getControl(DLGPOS_HPBAR_BK); if (ctlHpBk != NULL) { ctlHpBk->ShowWindowWZ(WZ_HIDE); } if (m_ctrlGaugeBackground != NULL) { if (visibility == true) { m_ctrlGaugeBackground->ShowWindowWZ(WZ_SHOW); } else { m_ctrlGaugeBackground->ShowWindowWZ(WZ_HIDE); } } } void uiPartyMember::ShowFaceControl(bool visibility) { #ifdef _NA_000000_20130114_RENEWER_UI #else CControlWZ* pControl = getControl(DLGPOS_FACE_BK); if(pControl) { if(this->GetManager()->GetShowFace() == true) { pControl->ShowWindowWZ(WZ_SHOW); } else { pControl->ShowWindowWZ(WZ_HIDE); } } #endif #ifdef _NA_000000_20130114_RENEWER_UI #else pControl = getControl(DLGPOS_LV_BK); if(pControl) { if(this->GetManager()->GetShowFace() == true) { pControl->ShowWindowWZ(WZ_SHOW); } else { pControl->ShowWindowWZ(WZ_HIDE); } } #endif // Á¤¸®Á»ÇÏÀÚ #ifdef _NA_000000_20130812_NEW_CHARACTER_HELLROID //Ŭ·¡½º·Î ÆÄƼâÀÇ ¸¶Å© ¼³Á¤ CControlWZ* ctrl_pointer; const uicPartyMemberInfoPlus& member_info = this->GetMyMemberInfo(); #ifdef _NA_007514_20140828_NEW_CHARACTER_WITCHBLADE for (int i=DLGPOS_CLASS_MARK00; i<(DLGPOS_CLASS_MARK07+1); ++i) #else for (int i=DLGPOS_CLASS_MARK00; i<(DLGPOS_CLASS_MARK06+1); ++i) //_NA_004965_20120613_NEW_CHARACTER_MYSTIC #endif // _NA_000000_20130812_NEW_CHARACTER_HELLROID { ctrl_pointer = getControl(i); if (ctrl_pointer) { ctrl_pointer->ShowWindowWZ(WZ_HIDE); } } ctrl_pointer = getControl(DLGPOS_CLASS_MARK00 + (member_info.Get().m_byClassType - 1)); if (ctrl_pointer) { ctrl_pointer->ShowWindowWZ(WZ_SHOW); } #else //_NA_000000_20130812_NEW_CHARACTER_HELLROID //Ŭ·¡½º·Î ÆÄƼâÀÇ ¸¶Å© ¼³Á¤ CControlWZ* ctrl_pointer; const uicPartyMemberInfoPlus& member_info = this->GetMyMemberInfo(); for (int i=DLGPOS_CLASS_MARK00; i<(DLGPOS_CLASS_MARK05+1); ++i) //_NA_004965_20120613_NEW_CHARACTER_MYSTIC { ctrl_pointer = getControl(i); if (ctrl_pointer) { ctrl_pointer->ShowWindowWZ(WZ_HIDE); } } ctrl_pointer = getControl(DLGPOS_CLASS_MARK00 + (member_info.Get().m_byClassType - 1)); if (ctrl_pointer) { ctrl_pointer->ShowWindowWZ(WZ_SHOW); } #endif //_NA_000000_20130812_NEW_CHARACTER_HELLROID //¿ÜÇüÀ¸·Î ÆÄƼâÀÇ ÃÊ»óÈ­ ¼³Á¤ eCHAR_TYPE class_type = static_cast(member_info.Get().m_byClassType); GenderType::Value gender = static_cast(member_info.Get().m_byGender); eCHAR_TYPE image_type = ResourceCode::GetImageClassType(class_type ,gender); #ifdef _NA_000000_20130812_NEW_CHARACTER_HELLROID #ifdef _NA_007514_20140828_NEW_CHARACTER_WITCHBLADE for (int i=DLGPOS_FACE00; i < (DLGPOS_FACE07 + 1); ++i) #else for (int i=DLGPOS_FACE00; i < (DLGPOS_FACE06 + 1); ++i) //_NA_004965_20120613_NEW_CHARACTER_MYSTIC #endif // _NA_000000_20130812_NEW_CHARACTER_HELLROID { ctrl_pointer = getControl(i); if (ctrl_pointer) { ctrl_pointer->ShowWindowWZ(WZ_HIDE); } } if ( image_type > eCHAR_NONE && image_type < eCHAR_TYPE_MAX) { ctrl_pointer = getControl(DLGPOS_FACE00 + (image_type - 1)); if (ctrl_pointer != NULL) { ctrl_pointer->ShowWindowWZ(WZ_SHOW); } } #else //_NA_000000_20130812_NEW_CHARACTER_HELLROID for (int i=DLGPOS_FACE00; i < (DLGPOS_FACE05 + 1); ++i) //_NA_004965_20120613_NEW_CHARACTER_MYSTIC { ctrl_pointer = getControl(i); if (ctrl_pointer) { ctrl_pointer->ShowWindowWZ(WZ_HIDE); } } if ( image_type > eCHAR_NONE && image_type < eCHAR_TYPE_MAX) { ctrl_pointer = getControl(DLGPOS_FACE00 + (image_type - 1)); if (ctrl_pointer != NULL) { ctrl_pointer->ShowWindowWZ(WZ_SHOW); } } #endif //_NA_000000_20130812_NEW_CHARACTER_HELLROID }