182 lines
3.8 KiB
C++
182 lines
3.8 KiB
C++
|
|
#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 = "<font:font_02><size:20><hcenter><out><@230202><#ed1c24><vcenter>";
|
|
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<SIMSG_MISSION_TITLE*>(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 );
|
|
}
|