632 lines
21 KiB
C++
632 lines
21 KiB
C++
#include "stdafx.h"
|
|
|
|
#include "KUITabControl.h"
|
|
#include "KUIControlStatic.h"
|
|
#include "KUIDragAndDrop.h" // 드래그 앤 쥬d
|
|
#include "KUIControlClockBox.h"
|
|
|
|
#include "SGameManager.h"
|
|
#include "SUIMotionWnd.h"
|
|
#include "SUIDisplayInfo.h"
|
|
#include "GameDefine.h"
|
|
|
|
#include "SMotionMgr.h"
|
|
|
|
//#include "SGameMessageUI.h"
|
|
#include "SGameMessage.h"
|
|
// MJ 임시
|
|
#include "SUISysMsgDefine.h"
|
|
|
|
namespace{
|
|
|
|
const int c_nTabClickArea = 9;
|
|
|
|
const int c_nSysMenu = 56; // 왼쪽 메뉴 바 width
|
|
const int c_nIconSelectDelta = 6; // 아이콘 선택 static 표시 위치 delta
|
|
|
|
const int c_nMaxSlotNum = 30+3+4; // sonador #2.3.1.1 파티 랜덤 분배 방식 오류 수정
|
|
|
|
enum{ // 탭 타입
|
|
TAB_NORMAL = 0,
|
|
TAB_PARTY,
|
|
TAB_GESTURE,
|
|
TAB_ETC,
|
|
};
|
|
};
|
|
|
|
bool SUIMotionWnd::InitControls( KPoint kPos )
|
|
{
|
|
SetCustomMovingRect( KRect( 0, 0, 292, 20 ) ); // 타이틀 바 선택 영역, 이동위해 클릭 Area
|
|
// // 리사이즈 할때 단위 설정, ( 세로, 가로, 위드, 헤잇 )
|
|
// SetResizeUnit( 0, 0, KSize(GetRect().GetWidth(), GetRect().GetHeight()), KSize(GetRect().GetWidth(), GetRect().GetHeight()) );
|
|
|
|
//// 탭 만들기
|
|
//KUISimpleTabControl* pTabControl = (KUISimpleTabControl*)GetChild("motion_tab");
|
|
//if( pTabControl )
|
|
//{
|
|
// pTabControl->SetTabProperty( -19, false, 4 );
|
|
// pTabControl->AddTabItem( "<size:10>기본", "기본 조작" );
|
|
// pTabControl->AddTabItem( "<size:10>파티", "파티 조작" );
|
|
// pTabControl->AddTabItem( "<size:10>모션", "모션 조작" );
|
|
// pTabControl->AddTabItem( "<size:10>기타", "기타 조작" );
|
|
// pTabControl->SetCorrectionRect( KRect( c_nTabClickArea, 0, -c_nTabClickArea, 0 ) );
|
|
|
|
// pTabControl->SetDisableTab(1);
|
|
// pTabControl->SetDisableTab(2);
|
|
// pTabControl->SetDisableTab(3);
|
|
//}
|
|
|
|
KUIWnd* pWnd = NULL;
|
|
// 각 아이콘 영역 재 설정 (클릭영역 위해)
|
|
int i;
|
|
for( i = 0; i < c_nMaxSlotNum; i++ )
|
|
{
|
|
pWnd = GetChild( CStringUtil::StringFormat( "motion_normal_icon%02d", i ).c_str() );
|
|
if( pWnd )
|
|
{
|
|
// pWnd->SetCorrectionRect( KRect(0, 0, 77, 0) );
|
|
(( KUIControlIconStatic*)pWnd)->SetTooltipSprite( c_szDEF_SPR_NAME );
|
|
}
|
|
}
|
|
|
|
// 스킬 재사용 시간 컨트롤
|
|
for( i = 0; i < c_nMaxSlotNum; i++ )
|
|
{
|
|
if ( i == 5 || i== 29 ) continue;
|
|
KUIWnd* pIcon = GetChild( CStringUtil::StringFormat("motion_normal_icon%02d", i).c_str() );
|
|
if( pIcon )
|
|
{
|
|
KUIWnd* pWnd = m_pManager->CreateControl( KUIWND_CREATE_ARG( "clockbox", CStringUtil::StringFormat("motion_normal_clockbox%02d", i).c_str(), " ", pIcon->GetRect(), 0, KFLAG_NO_GET_MESSAGE, this, "", c_szDEF_SPR_NAME, m_pManager, 0, "", KANCHOR_LEFT | KANCHOR_TOP ) );
|
|
if( pWnd ) ((KUIControlClockBox*)pWnd)->SetColor( c_ColorClockControl );
|
|
}
|
|
}
|
|
|
|
return SUIWnd::InitControls(kPos);
|
|
}
|
|
bool SUIMotionWnd::InitData( bool bReload )
|
|
{
|
|
HideSelectBar();
|
|
|
|
SetChildAsTop( "motion_icon_select" );
|
|
SetChildShow( "motion_icon_select" );
|
|
|
|
return SUIWnd::InitData(bReload);
|
|
}
|
|
void SUIMotionWnd::OnNotifyUIWindowOpen( bool bOpen, bool bLimitWnd )
|
|
{
|
|
SUIWnd::OnNotifyUIWindowOpen(bOpen);
|
|
|
|
if( bOpen )
|
|
{
|
|
RefreshSlots();
|
|
m_pGameManager->StartSound( "ui_popup_window01.wav" );
|
|
}
|
|
}
|
|
void* SUIMotionWnd::Perform( KID id, KArg& msg )
|
|
{
|
|
_CID( UI_BEGIN_DRAG );
|
|
_CID( UI_SEND_DROP );
|
|
|
|
if ( id == id_UI_BEGIN_DRAG )
|
|
{
|
|
KUIBeginDragMessage* pBeginMsg = static_cast<KUIBeginDragMessage*>( &msg );
|
|
const char* szControlID = pBeginMsg->sDragControlID.c_str();
|
|
|
|
KUIWnd* pWnd = GetChild( szControlID );
|
|
if( NULL != pWnd )
|
|
{
|
|
int nMotionID = GetMotionIDByCtrlName( szControlID );
|
|
if( (-1) != nMotionID )
|
|
{
|
|
m_pDisplayInfo->SetUIDragInfo( new SUIMotionDragInfo( nMotionID, m_MotionMgr.GetMotionCommandID( nMotionID ) ) );
|
|
m_pDragAndDropIcon->SetStateIcon( pWnd->GetSprName(), pWnd->GetAniName(), pWnd->GetFrameIndex(), STATE_NORMAL );
|
|
|
|
pBeginMsg->pDragAndDropRenderer = m_pDragAndDropIcon;
|
|
}
|
|
}
|
|
return NULL;
|
|
}
|
|
else if ( id == id_UI_SEND_DROP )
|
|
{
|
|
KUISendRecvDropMessage* pSendMsg = static_cast<KUISendRecvDropMessage*>( &msg );
|
|
|
|
SUIDragInfo* pUIDragInfo = m_pDisplayInfo->GetUIDragInfo();
|
|
if( NULL != pUIDragInfo ) m_pDisplayInfo->SetUIDragInfo();
|
|
return NULL;
|
|
}
|
|
return SUIWnd::Perform( id, msg );
|
|
}
|
|
void SUIMotionWnd::PumpUpMessage( LPCSTR lpszControlID, DWORD nMessage, DWORD lparam, DWORD wparam )
|
|
{
|
|
switch(nMessage)
|
|
{
|
|
case KUI_MESSAGE::KBUTTON_CLICK:
|
|
{
|
|
if( ::_stricmp( lpszControlID, "button_close" ) == 0 )
|
|
m_pGameManager->PostMsgAtDynamic( new SIMSG_SHOW_UIWINDOW( SIMSG_TOGGLE_UIWINDOW::UIWINDOW_MOTION, false) );
|
|
}
|
|
break;
|
|
case KUI_MESSAGE::KGENWND_MOVE: // 윈도우 이동
|
|
{
|
|
LimitMoveWnd(); // 게임 외부로 나가지 못하게 제한
|
|
// 좌측 메뉴도 이동시켜 준다
|
|
// m_pGameManager->PostMsgAtDynamic( new SIMSG_UI_MOVE( SIMSG_TOGGLE_UIWINDOW::UIWINDOW_SYSMENU, GetRect().left, GetRect().top ) );
|
|
}
|
|
break;
|
|
case KUI_MESSAGE::KSCROLL_SELECT: // 스크롤 선택
|
|
break;
|
|
case KUI_MESSAGE::KTAB_SELECT: // 탭 변경
|
|
ShowTabChild(m_nTabType);
|
|
break;
|
|
case KUI_MESSAGE::KGENWND_RESIZE: // 윈도우 리사이즈
|
|
break;
|
|
case KUI_MESSAGE::KFOCUS_ACTIVATED:
|
|
{
|
|
if( GetRect().IsInRect( static_cast<int>(lparam), static_cast<int>(wparam) ) )
|
|
m_pGameManager->PostMsgAtDynamic( new SIMSG_UI_FOCUS(SIMSG_TOGGLE_UIWINDOW::UIWINDOW_MOTION) );
|
|
}
|
|
break;
|
|
case KUI_MESSAGE::KICON_PRESSING:
|
|
{
|
|
//플레이어
|
|
if( ::_stricmp( lpszControlID, "motion_normal_icon00" ) == 0 ) ShowSelectBar(0);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon01" ) == 0 ) ShowSelectBar(1);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon02" ) == 0 ) ShowSelectBar(2);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon03" ) == 0 ) ShowSelectBar(3);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon04" ) == 0 ) ShowSelectBar(4);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon05" ) == 0 ) ShowSelectBar(5);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon06" ) == 0 ) ShowSelectBar(6);
|
|
//크리처
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon07" ) == 0 ) ShowSelectBar(7);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon08" ) == 0 ) ShowSelectBar(8);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon09" ) == 0 ) ShowSelectBar(9);
|
|
//거래
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon10" ) == 0 ) ShowSelectBar(10);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon11" ) == 0 ) ShowSelectBar(11);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon12" ) == 0 ) ShowSelectBar(12);
|
|
//이모션
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon13" ) == 0 ) ShowSelectBar(13);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon14" ) == 0 ) ShowSelectBar(14);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon15" ) == 0 ) ShowSelectBar(15);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon16" ) == 0 ) ShowSelectBar(16);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon17" ) == 0 ) ShowSelectBar(17);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon18" ) == 0 ) ShowSelectBar(18);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon19" ) == 0 ) ShowSelectBar(19);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon20" ) == 0 ) ShowSelectBar(20);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon21" ) == 0 ) ShowSelectBar(21);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon22" ) == 0 ) ShowSelectBar(22);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon23" ) == 0 ) ShowSelectBar(23);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon24" ) == 0 ) ShowSelectBar(24);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon25" ) == 0 ) ShowSelectBar(25);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon26" ) == 0 ) ShowSelectBar(26);
|
|
//파티
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon27" ) == 0 ) ShowSelectBar(27);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon28" ) == 0 ) ShowSelectBar(28);
|
|
|
|
// AziaMafia ADD EMOTE
|
|
else if (::_stricmp(lpszControlID, "motion_normal_icon30") == 0) ShowSelectBar(30);
|
|
else if (::_stricmp(lpszControlID, "motion_normal_icon31") == 0) ShowSelectBar(31);
|
|
else if (::_stricmp(lpszControlID, "motion_normal_icon32") == 0) ShowSelectBar(32);
|
|
else if (::_stricmp(lpszControlID, "motion_normal_icon33") == 0) ShowSelectBar(33);
|
|
else if (::_stricmp(lpszControlID, "motion_normal_icon34") == 0) ShowSelectBar(34);
|
|
else if (::_stricmp(lpszControlID, "motion_normal_icon35") == 0) ShowSelectBar(35);
|
|
else if (::_stricmp(lpszControlID, "motion_normal_icon36") == 0) ShowSelectBar(36);
|
|
}
|
|
break;
|
|
case KUI_MESSAGE::KICON_CLICK:
|
|
{
|
|
m_pGameManager->StartSound( "ui_button_click.wav" );
|
|
|
|
// 플레이어
|
|
if( ::_stricmp( lpszControlID, "motion_normal_icon00" ) == 0 ) UseMotion(0);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon01" ) == 0 ) UseMotion(1);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon02" ) == 0 ) UseMotion(2);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon03" ) == 0 ) UseMotion(3);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon04" ) == 0 ) UseMotion(4);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon05" ) == 0 ) UseMotion(5);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon06" ) == 0 ) UseMotion(6);
|
|
//크리처
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon07" ) == 0 ) UseMotion(7);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon08" ) == 0 ) UseMotion(8);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon09" ) == 0 ) UseMotion(9);
|
|
//거래
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon10" ) == 0 ) UseMotion(10);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon11" ) == 0 ) UseMotion(11);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon12" ) == 0 ) UseMotion(12);
|
|
//이모션
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon13" ) == 0 ) UseMotion(13);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon14" ) == 0 ) UseMotion(14);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon15" ) == 0 ) UseMotion(15);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon16" ) == 0 ) UseMotion(16);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon17" ) == 0 ) UseMotion(17);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon18" ) == 0 ) UseMotion(18);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon19" ) == 0 ) UseMotion(19);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon20" ) == 0 ) UseMotion(20);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon21" ) == 0 ) UseMotion(21);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon22" ) == 0 ) UseMotion(22);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon23" ) == 0 ) UseMotion(23);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon24" ) == 0 ) UseMotion(24);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon25" ) == 0 ) UseMotion(25);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon26" ) == 0 ) UseMotion(26);
|
|
//파티
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon27" ) == 0 ) UseMotion(27);
|
|
else if( ::_stricmp( lpszControlID, "motion_normal_icon28" ) == 0 ) UseMotion(28);
|
|
|
|
// AziaMafia ADD EMOTE
|
|
else if (::_stricmp(lpszControlID, "motion_normal_icon30") == 0) UseMotion(30);
|
|
else if (::_stricmp(lpszControlID, "motion_normal_icon31") == 0) UseMotion(31);
|
|
else if (::_stricmp(lpszControlID, "motion_normal_icon32") == 0) UseMotion(32);
|
|
else if (::_stricmp(lpszControlID, "motion_normal_icon33") == 0) UseMotion(33);
|
|
else if (::_stricmp(lpszControlID, "motion_normal_icon34") == 0) UseMotion(34);
|
|
else if (::_stricmp(lpszControlID, "motion_normal_icon35") == 0) UseMotion(35);
|
|
else if (::_stricmp(lpszControlID, "motion_normal_icon36") == 0) UseMotion(36);
|
|
|
|
HideSelectBar();
|
|
}
|
|
break;
|
|
}
|
|
|
|
SUIWnd::PumpUpMessage( lpszControlID, nMessage, lparam, wparam );
|
|
}
|
|
|
|
|
|
void SUIMotionWnd::ProcMsgAtStatic( SGameMessage* pMsg )
|
|
{
|
|
switch( pMsg->nType )
|
|
{
|
|
case IMSG_TOGGLE_UIWINDOW:
|
|
case IMSG_SHOW_UIWINDOW:
|
|
{
|
|
//ShowTabChild(m_nTabType);
|
|
//if( m_nSysMenuPosX > -99 && m_nSysMenuPosY > -99 ) MovePos(m_nSysMenuPosX, m_nSysMenuPosY);
|
|
|
|
pMsg->bUse = true;
|
|
}
|
|
break;
|
|
case IMSG_UI_MOVE:
|
|
{
|
|
//SIMSG_UI_MOVE* pMoveMsg = ( SIMSG_UI_MOVE* )pMsg;
|
|
//m_nSysMenuPosX = pMoveMsg->m_nX;
|
|
//m_nSysMenuPosY = pMoveMsg->m_nY;
|
|
pMsg->bUse = true;
|
|
}
|
|
break;
|
|
case IMSG_UI_FOCUS:
|
|
{
|
|
m_pManager->SetFocus(this);
|
|
pMsg->bUse = true;
|
|
}
|
|
break;
|
|
case MSG_ATTACK :
|
|
{
|
|
SMSG_ATTACK * pAttack = dynamicCast<SMSG_ATTACK*>(pMsg);
|
|
//클럭 박스 Disable 처리
|
|
if( pAttack->attack_flag & TS_ATTACK_EVENT::ATTACK_FLAG_BOW ||
|
|
pAttack->attack_flag & TS_ATTACK_EVENT::ATTACK_FLAG_CROSS_BOW )
|
|
{
|
|
if( pAttack->attack_action == TS_ATTACK_EVENT::ATTACK_AIMING )
|
|
{
|
|
ShowClockBox( MOTION_ATTACK, true );
|
|
}
|
|
//클럭 박스 쿨타임 시작
|
|
else if( pAttack->attack_action == TS_ATTACK_EVENT::ATTACK_ATTACK )
|
|
{
|
|
ShowClockBox( MOTION_ATTACK);
|
|
}
|
|
//클럭 박스 Enable 처리
|
|
else if( pAttack->attack_action == TS_ATTACK_EVENT::ATTACK_END ||
|
|
pAttack->attack_action == TS_ATTACK_EVENT::ATTACK_CANCEL )
|
|
{
|
|
ShowClockBox( MOTION_ATTACK, false );
|
|
}
|
|
}
|
|
|
|
pMsg->bUse = true;
|
|
}
|
|
break;
|
|
case IMSG_UI_MOTION_TIME_UPDATE :
|
|
{
|
|
SIMSG_UI_MOTION_TIME_UPDATE* pMotionMsg = (SIMSG_UI_MOTION_TIME_UPDATE*)pMsg;
|
|
RefreshClock();
|
|
RefreshSlots();
|
|
|
|
pMsg->bUse = true;
|
|
}
|
|
}
|
|
}
|
|
void SUIMotionWnd::RefreshSlots()
|
|
{
|
|
if( m_MotionMgr.GetMotionCount() <= 0 ) return;
|
|
|
|
KUIControlIconStatic* pIcon = NULL;
|
|
for( int i = 0; i < c_nMaxSlotNum; i++ )
|
|
{
|
|
pIcon = dynamicCast<KUIControlIconStatic*>(GetChild( CStringUtil::StringFormat( "motion_normal_icon%02d", i ).c_str() ));
|
|
if( pIcon )
|
|
{
|
|
const SMotionSlot* pMotion = m_MotionMgr.GetMotion(i);
|
|
if( pMotion )
|
|
{
|
|
pIcon->SetIcon( c_szDEF_SPR_NAME, pMotion->GetIconName() );
|
|
pIcon->SetTooltip( CStringUtil::StringFormat( "%s<br>%s", pMotion->GetName(), pMotion->GetToolTip() ).c_str() );
|
|
|
|
// _oprint( "operation Icon : %s %s \n", CStringUtil::StringFormat( "motion_normal_icon%02d", i ).c_str(), pMotion->GetIconName() );
|
|
|
|
// SetChildCaption( CStringUtil::StringFormat( "motion_normal_info%02d", i+1 ).c_str(), CStringUtil::StringFormat( "<B>%s</B>", pMotion->GetName() ).c_str() );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
void SUIMotionWnd::RefreshClock()
|
|
{
|
|
if( m_MotionMgr.GetMotionCount() <= 0 ) return;
|
|
|
|
KUIControlClockBox* pClock = NULL;
|
|
for( int i = 0; i < c_nMaxSlotNum; i++ )
|
|
{
|
|
if ( i == 5 || i== 29 ) continue;
|
|
pClock = dynamicCast<KUIControlClockBox*>(GetChild( CStringUtil::StringFormat( "motion_normal_clockbox%02d", i ).c_str() ));
|
|
if( pClock )
|
|
{
|
|
const SMotionSlot* pMotion = m_MotionMgr.GetMotion(i);
|
|
if( pMotion )
|
|
{
|
|
if( pMotion->IsCasting() )
|
|
pClock->Init();
|
|
else if( pMotion->IsShooting() )
|
|
{
|
|
pClock->SetMaxTime( pMotion->GetMaxTime() );
|
|
pClock->SetCurTime( pMotion->GetBeginTime() );
|
|
pClock->Begin();
|
|
}
|
|
else
|
|
{
|
|
pClock->SetMaxTime( 0 );
|
|
pClock->SetCurTime( 0 );
|
|
pClock->Begin();
|
|
}
|
|
}
|
|
pClock->SetShow(true);
|
|
}
|
|
}
|
|
}
|
|
void SUIMotionWnd::ShowClockBox( int nMotion, bool bDiable )
|
|
{
|
|
if( bDiable )
|
|
{
|
|
for( int i = 0; i < c_nMaxSlotNum; i++ )
|
|
{
|
|
if ( i == 5 || i== 29 ) continue;
|
|
if( m_MotionMgr.GetMotionCommandID( i ) == nMotion )
|
|
{
|
|
KUIWnd* pWnd = GetChild( CStringUtil::StringFormat("motion_normal_clockbox%02d", i).c_str() );
|
|
if( pWnd && m_MotionMgr.IsCastingMotion( nMotion ) )
|
|
((KUIControlClockBox*)pWnd)->Init();
|
|
return;
|
|
}
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
for( int i = 0; i < c_nMaxSlotNum; i++ )
|
|
{
|
|
if ( i == 5 || i== 29 ) continue;
|
|
if( m_MotionMgr.GetMotionCommandID( i ) == nMotion )
|
|
{
|
|
KUIWnd* pWnd = GetChild( CStringUtil::StringFormat("motion_normal_clockbox%02d", i).c_str() );
|
|
if( pWnd && m_MotionMgr.IsShootingMotion( nMotion ) )
|
|
{
|
|
((KUIControlClockBox*)pWnd)->SetMaxTime( m_MotionMgr.GetSkillMaxTime(nMotion) );
|
|
((KUIControlClockBox*)pWnd)->SetCurTime( m_MotionMgr.GetSkillCurTime(nMotion) );
|
|
((KUIControlClockBox*)pWnd)->Begin();
|
|
}
|
|
return;
|
|
}
|
|
}
|
|
|
|
}
|
|
//스킬 사용 취소
|
|
void SUIMotionWnd::CancelMotion( int nMotionID )
|
|
{
|
|
for( int i = 0; i < c_nMaxSlotNum; i++ )
|
|
{
|
|
if ( i == 5 || i== 29 ) continue;
|
|
if( m_MotionMgr.GetMotionCommandID( i ) == nMotionID )
|
|
{
|
|
KUIControlClockBox* pClock = dynamicCast<KUIControlClockBox*>(GetChild( CStringUtil::StringFormat("motion_normal_clockbox%02d", i).c_str() ));
|
|
if( pClock )
|
|
{
|
|
pClock->SetMaxTime( 0 );
|
|
pClock->SetCurTime( 0 );
|
|
pClock->Begin();
|
|
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
////////////////////////////////////
|
|
// 탭
|
|
//////////////////////////////////////
|
|
void SUIMotionWnd::ShowTabChild( int nTabType )
|
|
{
|
|
//KUISimpleTabControl* pTab = ( KUISimpleTabControl* )GetChild("motion_tab");
|
|
//if( pTab == NULL ) return;
|
|
|
|
//m_nTabType = pTab->GetSelectedItem();
|
|
//if( m_nTabType == nTabType ) return;
|
|
}
|
|
|
|
//////////////////////////////////////////////
|
|
// 모션사용
|
|
////////////////////////////////////////////////
|
|
void SUIMotionWnd::UseMotion( int nIndex )
|
|
{
|
|
ShowSelectBar(nIndex);
|
|
m_pDisplayInfo->UseMotion(nIndex);
|
|
}
|
|
|
|
///////////////////////////////////////////////
|
|
// 드래그앤드랍
|
|
///////////////////////////////////////////////
|
|
int SUIMotionWnd::GetMotionIDByCtrlName( const char* szCtrlName ) const
|
|
{
|
|
if( m_MotionMgr.GetMotionCount() <= 0 ) return -1;
|
|
|
|
for( int i = 0; i < c_nMaxSlotNum; i++ )
|
|
{
|
|
if( ::_stricmp(szCtrlName, CStringUtil::StringFormat("motion_normal_icon%02d", i).c_str()) == 0 )
|
|
return i;
|
|
}
|
|
|
|
return -1;
|
|
}
|
|
//////////////////////////////////////////////
|
|
// 선택바
|
|
////////////////////////////////////////////////
|
|
void SUIMotionWnd::HideSelectBar()
|
|
{
|
|
SetChildShow( "motion_normal_select" );
|
|
// SetChildShow( "motion_normal_icon_select" );
|
|
}
|
|
void SUIMotionWnd::ShowSelectBar( int nIndex )
|
|
{
|
|
HideSelectBar();
|
|
|
|
KUIWnd* pWnd = GetChild( CStringUtil::StringFormat( "motion_normal_icon%02d", nIndex ).c_str() );
|
|
if( pWnd )
|
|
{
|
|
KRect rt = pWnd->GetRect();
|
|
|
|
// SetChildShow( "motion_normal_select", true );
|
|
// SetChildShow( "motion_normal_icon_select", true );
|
|
|
|
// SetMovePos( "motion_normal_select", rt.left+38, rt.top );
|
|
SetMovePos( "motion_icon_select", pWnd->GetRect().left, pWnd->GetRect().top );
|
|
SetChildShow( "motion_icon_select", true );
|
|
}
|
|
}
|
|
void SUIMotionWnd::ToggleSelectBar( int nIndex )
|
|
{
|
|
//KUIWnd* pWnd = GetChild( "motion_icon_select" );
|
|
//if( pWnd )
|
|
//{
|
|
// if( pWnd->IsShow() ) pWnd->SetShow( false );
|
|
// else
|
|
// {
|
|
// pWnd->SetShow( true );
|
|
// KUIWnd* pIcon = GetChild( CStringUtil::StringFormat( "motion_normal_icon%02d", nIndex ).c_str() );
|
|
// if( pIcon )
|
|
// pWnd->Resize( pIcon->GetRect() );
|
|
// }
|
|
//}
|
|
}
|
|
//////////////////////////////////////////////////
|
|
//
|
|
// SUIMotionNormalChild
|
|
//
|
|
///////////////////////////////////////////////////
|
|
//bool SUIMotionNormalChild::InitControls( KPoint kPos )
|
|
//{
|
|
//
|
|
//
|
|
// return SUIWnd::InitControls(kPos);
|
|
//}
|
|
//void SUIMotionNormalChild::PumpUpMessage( LPCSTR lpszControlID, DWORD nMessage, DWORD lparam, DWORD wparam )
|
|
//{
|
|
// switch(nMessage)
|
|
// {
|
|
// case KUI_MESSAGE::KBUTTON_CLICK:
|
|
// m_pGameManager->StartSound( "ui_button_click.wav" );
|
|
// break;
|
|
//
|
|
// case KUI_MESSAGE::KICON_PRESSING:
|
|
// case KUI_MESSAGE::KICON_CLICK:
|
|
// {
|
|
// if( nMessage == KUI_MESSAGE::KICON_CLICK )
|
|
// m_pGameManager->StartSound( "ui_button_click.wav" );
|
|
//
|
|
// }
|
|
// break;
|
|
// case KUI_MESSAGE::KICON_DBLCLK:
|
|
// break;
|
|
// }
|
|
//
|
|
// SUIWnd::PumpUpMessage( lpszControlID, nMessage, lparam, wparam );
|
|
//}
|
|
//
|
|
//
|
|
//void SUIMotionNormalChild::ProcMsgAtStatic( SGameMessage* pMsg )
|
|
//{
|
|
// switch(pMsg->nType)
|
|
// {
|
|
// case IMSG_UI_MOVE:
|
|
// break;
|
|
// }
|
|
//}
|
|
//
|
|
////////////////////////////////////////////////////
|
|
////
|
|
//// SUIMotionPartyChild
|
|
////
|
|
/////////////////////////////////////////////////////
|
|
//bool SUIMotionPartyChild::InitControls( KPoint kPos )
|
|
//{
|
|
// return SUIWnd::InitControls(kPos);
|
|
//}
|
|
//void SUIMotionPartyChild::PumpUpMessage( LPCSTR lpszControlID, DWORD nMessage, DWORD lparam, DWORD wparam )
|
|
//{
|
|
// switch(nMessage)
|
|
// {
|
|
// case KUI_MESSAGE::KBUTTON_CLICK:
|
|
// {
|
|
// m_pGameManager->StartSound( "ui_button_click.wav" );
|
|
// }
|
|
// break;
|
|
// }
|
|
//
|
|
// SUIWnd::PumpUpMessage( lpszControlID, nMessage, lparam, wparam );
|
|
//}
|
|
//
|
|
//
|
|
//void SUIMotionPartyChild::ProcMsgAtStatic( SGameMessage* pMsg )
|
|
//{
|
|
//}
|
|
//
|
|
////////////////////////////////////////////////////
|
|
////
|
|
//// SUIMotionGestureChild
|
|
////
|
|
/////////////////////////////////////////////////////
|
|
//bool SUIMotionGestureChild::InitControls( KPoint kPos )
|
|
//{
|
|
// return SUIWnd::InitControls(kPos);
|
|
//}
|
|
//void SUIMotionGestureChild::PumpUpMessage( LPCSTR lpszControlID, DWORD nMessage, DWORD lparam, DWORD wparam )
|
|
//{
|
|
// switch(nMessage)
|
|
// {
|
|
// case KUI_MESSAGE::KBUTTON_CLICK:
|
|
// {
|
|
// m_pGameManager->StartSound( "ui_button_click.wav" );
|
|
// }
|
|
// break;
|
|
// }
|
|
//
|
|
// SUIWnd::PumpUpMessage( lpszControlID, nMessage, lparam, wparam );
|
|
//}
|
|
//
|
|
//
|
|
//void SUIMotionGestureChild::ProcMsgAtStatic( SGameMessage* pMsg )
|
|
//{
|
|
// switch(pMsg->nType)
|
|
// {
|
|
// case IMSG_UI_MOVE:
|
|
// {
|
|
//
|
|
// pMsg->bUse = true;
|
|
// }
|
|
// break;
|
|
// }
|
|
//}
|