#include "stdafx.h" #include "KUIControlStatic.h" #include "KUIControlGauge.h" #include "KUIControlButton.h" #include "KSeqForm.h" #include "GameDefine.h" #include "SGameManager.h" #include "SUIDisplayInfo.h" #include "SJobDB.h" #include "SQuestDB.h" #include "SMonsterDB.h" #include "SCreatureDB.h" #include "SNpcResourceDB.h" #include "SPetDB.h" #include "SPlayerInfoMgr.h" #include "SGameSystem.h" //#include "SGameMessageUI.h" #include "SGameMessage.h" #include "SSummonSlotMgr.h" #include "SMessengerMgr.h" #include "SGameOption.h" //#include "Util.h" #include "SGameSystem.h" #include "SGameLobbyDefine.h" #include "SCobManager.h" //#include "SUIUtil.h" #include "SGame.h" #include "SGameAvatarEx.h" #include "SGameInterface.h" #include "SUIMissionTitleWnd.h" namespace { const int c_nSignPosX = 48; const int c_nSignPosY = 130 + 150; const float VIEW_TICK = 6000.f; }; SUIMissionTitleWnd::SUIMissionTitleWnd( SGameManager* pGameManager, SUIDisplayInfo* pDisplayInfo ) : SUIWnd( pGameManager ) , m_pDisplayInfo( pDisplayInfo ) { m_pStaticTitle = NULL; } SUIMissionTitleWnd::~SUIMissionTitleWnd() { m_pStaticTitle = NULL; } bool SUIMissionTitleWnd::InitData( bool bReload ) { m_dwTime = 0; m_dwStartTime = 0; return SUIWnd::InitData(bReload); } bool SUIMissionTitleWnd::InitControls( KPoint kPos ) { m_pStaticTitle = dynamicCast< KUIControlStatic* > (GetChild( "dungeon_target_title" )); // 던전목표제목 if(m_pStaticTitle == NULL) return false; m_pStaticTitle->SetShow(true); return SUIWnd::InitControls( kPos ); } void SUIMissionTitleWnd::InsertCaption_title(const char* pTitle) { if(NULL == m_pStaticTitle) return ; if(NULL == pTitle) return ; std::string strCaption = "<@230202><#ed1c24>"; strCaption += pTitle; m_pStaticTitle->SetEnableColor( "<#ed1c24>" ); m_pStaticTitle->SetEnableOption(true); m_pStaticTitle->SetCaption(strCaption.c_str()); } void SUIMissionTitleWnd::SetTitle( const char * pTitle ) { m_dwStartTime = ::GetSafeTickCount(); InsertCaption_title(pTitle); KUIWnd * pSign = GetChild( "dungeon_target_title" ); if( pSign && strlen(pTitle) > 0 ) { SetAlphaClose( VIEW_TICK ); InsertCaption_title( pTitle ); if( pSign ) { KRect signRect = pSign->GetRect(); int nHalfW = KUIWndManager::GetResolution().cx / 2; int nHalfH = KUIWndManager::GetResolution().cy / 2; pSign->MovePos( nHalfW - (pSign->GetRect().GetWidth() / 2), c_nSignPosY ); pSign->SetShow( true ); } } else { SetChildShow( "outframe" , false ); SetChildShow( "static_area_title", false ); } } void SUIMissionTitleWnd::Process(DWORD dwTime) { if( m_dwStartTime ) { DWORD dwLocalNameTime = dwTime-m_dwStartTime; if( dwLocalNameTime > VIEW_TICK ) { // UI 숨긴다 m_pGameManager->PostMsgAtDynamic( new SIMSG_SHOW_UIWINDOW( SIMSG_TOGGLE_UIWINDOW::UIWINDOW_MISSION_TITLE_WND, false ) ); m_dwStartTime = 0; } else { float fTmRate = dwLocalNameTime / (float)VIEW_TICK; float fAlpha = 1.0f; if( fTmRate < 0.2f ) { fAlpha = fTmRate / 0.2f; } else if( fTmRate < 0.5f ) { fAlpha = 1.0f; } else { fAlpha = 1.0f - ( fTmRate - 0.5f ) * 2.0f; } ChangeAlpha(fAlpha); } } } void SUIMissionTitleWnd::ProcMsgAtStatic( SGameMessage* pMsg ) { switch(pMsg->nType) { case IMSG_MISSION_TITLE: { SIMSG_MISSION_TITLE* msg = dynamicCast(pMsg); SetTitle(msg->title.c_str()); pMsg->bUse = true; } break; } } void SUIMissionTitleWnd::OnNotifyUIWindowOpen( bool bOpen, bool bLimitWnd ) { int k=0; k=0; SUIWnd::OnNotifyUIWindowOpen(bOpen); } void SUIMissionTitleWnd::PumpUpMessage( LPCSTR lpszControlID, DWORD nMessage, DWORD lparam, DWORD wparam ) { switch(nMessage) { case KUI_MESSAGE::KBUTTON_CLICK: { int kk=0; } break; } SUIWnd::PumpUpMessage( lpszControlID, nMessage, lparam, wparam ); }