#include "SunClientPrecompiledHeader.h" #include "InterfaceManager.h" #include "uiDominationTimer/uiDominationTimer.h" #include "GlobalFunc.h" #include "Hero.h" #include "ItemManager.h" #include "DominationInfoParser.h" #include "Map.h" #ifdef _NA_008334_20150608_SONNENSCHEIN #include "uiDominationTowerMan/uiDominationTowerMan.h" #endif //_NA_008334_20150608_SONNENSCHEIN ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// WzID uiDominationTimer::m_wzID[eDIALOG_DOMINATION_TIMER_MAX] = { StrToWzID("ST00"),//eDIALOG_DOMINATION_TIMER_TIME, StrToWzID("ST01"),//eDIALOG_DOMINATION_TIMER_PLAYER_CNT, }; ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// uiDominationTimer::uiDominationTimer(InterfaceManager * pUIMan) : uiBase(pUIMan) { m_bShow = FALSE; } ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// uiDominationTimer::~uiDominationTimer() { } ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// void uiDominationTimer::Init(CDrawBase* pDrawBase) { uiBase::Init(pDrawBase); m_bShow = FALSE; m_bStarted = false; m_dwCurrentTime = 0; if(g_pMap) { const sDOMINATION_INFO* pDI = DominationInfoParser::Instance()->GetDominationInfo(g_pMap->GetCurrentFieldID()); if(pDI) { m_iMaxPlayerCnt = pDI->m_MaxUser; } } InitControl(); #ifdef _NA_008334_20150608_SONNENSCHEIN event_state_ = 0; #endif //_NA_008334_20150608_SONNENSCHEIN } ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// void uiDominationTimer::Release() { } ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// void uiDominationTimer::OnUpdateSolarDialog() { if( ! m_bShow ) { ShowDialog(FALSE); } } ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// void uiDominationTimer::Process(DWORD dwTick) { if(true == m_bStarted) { if(m_dwCurrentTime > dwTick) m_dwCurrentTime -= dwTick; else m_dwCurrentTime = 0; SetTimer(m_dwCurrentTime); if(0 == m_dwCurrentTime) SetStartTimer(false); } } ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// void uiDominationTimer::OnShowWindow(BOOL val) { if( val ) { if(g_pMap) { const sDOMINATION_INFO* pDI = DominationInfoParser::Instance()->GetDominationInfo(g_pMap->GetCurrentFieldID()); if(pDI) { m_iMaxPlayerCnt = pDI->m_MaxUser; } } this->MoveDefaultWindowPos(); m_bShow = TRUE; } else { m_bShow = FALSE; #ifdef _NA_008334_20150608_SONNENSCHEIN event_state_ = 0; #endif //_NA_008334_20150608_SONNENSCHEIN } } ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// void uiDominationTimer::SetTimer(DWORD dwTime, bool bFirst /*= false*/ ) { if(bFirst) m_dwCurrentTime = dwTime; DWORD minTick = 0; DWORD secTick = 0; DWORD msecTick = 0; if(dwTime) { DWORD dwTimeTemp1 = dwTime / SEC_PER_TICK; DWORD dwTimeTemp2 = dwTime % SEC_PER_TICK; if(dwTimeTemp1) { minTick = dwTimeTemp1 / 60; secTick = dwTimeTemp1 % 60; } if(dwTimeTemp2) msecTick = dwTimeTemp2 / 10; } TCHAR szTime[16] = {0,}; sprintf(szTime, "%02d\'%02d\"%02d", minTick, secTick, msecTick); if(10 <= minTick) m_pctrlTime->SetTextColor(RGBA(255, 255, 0, 255)); else m_pctrlTime->SetTextColor(RGBA(255, 0, 0, 255)); m_pctrlTime->SetTextWZ(szTime); } ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// void uiDominationTimer::SetStartTimer(bool bStart) { m_bStarted = bStart; } ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// void uiDominationTimer::SetPlayerCnt(int iPlayerCnt /*= 20*/) { #ifdef _NA_006826_20130722_DOMINATION_RENEWAL #else m_iPlayerCnt = iPlayerCnt; TCHAR szPlayerCnt[16] = {0,}; sprintf(szPlayerCnt, "%d / %d", m_iPlayerCnt, m_iMaxPlayerCnt); m_pctrlPlayerCnt->SetTextWZ(szPlayerCnt); #endif //_NA_006826_20130722_DOMINATION_RENEWAL } ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// void uiDominationTimer::InitControl() { m_pctrlTime = (CCtrlStaticWZ*)getControl(eDIALOG_DOMINATION_TIMER_TIME); assert(m_pctrlTime); m_pctrlPlayerCnt = (CCtrlStaticWZ*)getControl(eDIALOG_DOMINATION_TIMER_PLAYER_CNT); assert(m_pctrlPlayerCnt); #ifdef _NA_006826_20130722_DOMINATION_RENEWAL if (m_pctrlPlayerCnt) { m_pctrlPlayerCnt->ShowWindowWZ(WZ_HIDE); } #endif //_NA_006826_20130722_DOMINATION_RENEWAL } #ifdef _NA_008334_20150608_SONNENSCHEIN void uiDominationTimer::set_event_state(BYTE state) { // Á¡·ÉÀü°ú ¼Ò³Ù»þÀο¡¼­ ÁøÇà»óŰ¡ ¹Ù²î¾úÀ»¶§ ¹öÇÁ ¶ç¿ïÁö ¾È¶ç¿ïÁö¸¦ °»½ÅÇØÁÖ·Á°í »ç¿ë event_state_ = state; uiDominationTowerMan::RefreshZoneMarkInfo(); } #endif //_NA_008334_20150608_SONNENSCHEIN ////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////