Files
Leviathan/Client/Game/game/Interface/Party/SUIPartyCreateWnd.cpp
T
2026-06-01 12:46:52 +02:00

158 lines
3.9 KiB
C++

#include "stdafx.h"
#include "SUIPartyCreateWnd.h"
#include "SGameManager.h"
#include "SGameInterface.h"
#include "SPlayerInfoMgr.h"
#include "KUIControlButton.h"
#include "KUIControlEdit.h"
bool SUIPartyCreate::InitControls( KPoint kPos )
{
return SUIWnd::InitControls( kPos );
}
bool SUIPartyCreate::InitData( bool bReload /*= false*/ )
{
SetCustomMovingRect( KRect( 0, 0, 350, 24 ) );
KUIControlCheck * pCheck00 = dynamicCast<KUIControlCheck*>(GetChild( "button_check_00" ));
KUIControlCheck * pCheck01 = dynamicCast<KUIControlCheck*>(GetChild( "button_check_01" ));
KUIControlCheck * pCheck02 = dynamicCast<KUIControlCheck*>(GetChild( "button_check_02" ));
pCheck00->SetCheck( true );
pCheck01->SetCheck( false );
pCheck02->SetCheck( false );
return SUIWnd::InitData( bReload );
}
void SUIPartyCreate::PumpUpMessage( LPCSTR lpszControlID, DWORD nMessage, DWORD lparam, DWORD wparam )
{
static bool bCheck00 = false;
static bool bCheck01 = false;
static bool bCheck02 = false;
switch( nMessage )
{
case KUI_MESSAGE::KBUTTON_CLICK:
{
if( ::_stricmp( lpszControlID, "button_close" ) == 0 ||
::_stricmp( lpszControlID, "button_cancel" ) == 0 )
{
m_pGameManager->PostMsgAtDynamic( new SIMSG_SHOW_UIWINDOW( SIMSG_TOGGLE_UIWINDOW::UIWINDOW_PARTY_CREATE, false ) );
}
else if( ::_stricmp( lpszControlID, "button_ok" ) == 0 )
{
KUIControlEdit * pEdit = dynamicCast<KUIControlEdit*>(GetChild( "edit_party" ));
if( !pEdit ) return;
SMSG_PARTY_COMMAND* pMsg = new SMSG_PARTY_COMMAND;
pMsg->mode = SMSG_PARTY_COMMAND::PARTY_CREATE;
// pMsg->strName = "party";
pMsg->strName = pEdit->GetText();
//파티 이름을 넣어야 함.
if( pMsg->strName.length() <= 0 )
{
SAFE_DELETE( pMsg );
return;
}
m_pGameManager->PostMsgAtDynamic( pMsg );
//닫기
m_pGameManager->PostMsgAtDynamic( new SIMSG_SHOW_UIWINDOW( SIMSG_TOGGLE_UIWINDOW::UIWINDOW_PARTY_CREATE, false ) );
}
}
break;
case KUI_MESSAGE::KCHECK_CHANGE:
{
m_pGameManager->StartSound( "ui_button_click.wav" );
KUIControlCheck * pCheck00 = dynamicCast<KUIControlCheck*>(GetChild( "button_check_00" ));
KUIControlCheck * pCheck01 = dynamicCast<KUIControlCheck*>(GetChild( "button_check_01" ));
KUIControlCheck * pCheck02 = dynamicCast<KUIControlCheck*>(GetChild( "button_check_02" ));
if( !pCheck00 || !pCheck01 || !pCheck02 ) return;
//각자
if( ::_stricmp( lpszControlID, "button_check_00" ) == 0 )
{
if( pCheck00->GetCheck() )
{
pCheck01->SetCheck( false );
pCheck02->SetCheck( false );
bCheck00 = true;
bCheck01 = false;
bCheck02 = false;
}
else
{
if (bCheck00)
pCheck00->SetCheck( true );
}
}
//순차
else if( ::_stricmp( lpszControlID, "button_check_01" ) == 0 )
{
if( pCheck01->GetCheck() )
{
pCheck00->SetCheck( false );
pCheck02->SetCheck( false );
bCheck00 = false;
bCheck01 = true;
bCheck02 = false;
}
else
{
if (bCheck01)
pCheck01->SetCheck( true );
}
}
//랜덤
else if( ::_stricmp( lpszControlID, "button_check_02" ) == 0 )
{
if( pCheck02->GetCheck() )
{
pCheck00->SetCheck( false );
pCheck01->SetCheck( false );
bCheck00 = false;
bCheck01 = false;
bCheck02 = true;
}
else
{
if (bCheck02)
pCheck02->SetCheck( true );
}
}
}
break;
case KUI_MESSAGE::KGENWND_MOVE: // 윈도우 이동
{
LimitMoveWnd(); // 게임 외부로 나가지 못하게 제한
}
break;
}
SUIWnd::PumpUpMessage( lpszControlID, nMessage, lparam, wparam );
}
void SUIPartyCreate::ProcMsgAtStatic( SGameMessage* pMsg )
{
}
void SUIPartyCreate::OnNotifyUIWindowOpen( bool bOpen, bool bLimitWnd/* = true*/ )
{
if( bOpen )
m_pGameManager->StartSound( "ui_popup_window01.wav" );
else m_pGameManager->StartSound( "ui_button_click.wav" );
}