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

161 lines
4.8 KiB
C++

#include "stdafx.h"
#include "SStringDB.h"
#include <toolkit/XStringUtil.h>
#include "SGameManager.h"
#include "SGameMessage.h"
//#include "SGameMessageUI.h"
#include "SMessengerMgr.h"
#include "SPlayerInfoMgr.h"
#include "KUIControlButton.h"
#include "SUIGuildSubMasterTabAuthority.h"
SUIGuildSubMasterTabAuthority::SUIGuildSubMasterTabAuthority( SGameManager * pGameManager ) :
SUIWnd( pGameManager )
{
}
SUIGuildSubMasterTabAuthority::~SUIGuildSubMasterTabAuthority()
{
Release();
}
void SUIGuildSubMasterTabAuthority::Release()
{
}
bool SUIGuildSubMasterTabAuthority::InitControls( KPoint kPos )
{
KUIControlButton * pBtn = dynamicCast< KUIControlButton * >( GetChild( "button_master_01" ) );
pBtn->SetEnableColor( "<#ffffff>" );
pBtn->SetDisableColor( "<#a0a0a0>" );
pBtn = dynamicCast< KUIControlButton * >( GetChild( "button_master_02" ) );
pBtn->SetEnableColor( "<#ffffff>" );
pBtn->SetDisableColor( "<#a0a0a0>" );
return SUIWnd::InitControls( kPos );
}
void SUIGuildSubMasterTabAuthority::OnNotifyUIWindowOpen( bool bOpen, bool bLimitWnd)
{
if( bOpen )
{
}
else
{
// 길드장 인계 팝업 윈도우 닫기.
m_pGameManager->PostMsgAtDynamic( new SIMSG_SHOW_UIWINDOW( SIMSG_TOGGLE_UIWINDOW::_UIWINDOW_TYPE::UIWINDOW_GUILD_SUB_MASTER_PROMOTE, false ) );
}
}
void SUIGuildSubMasterTabAuthority::ProcMsgAtStatic( SGameMessage* pMsg )
{
switch( pMsg->nType )
{
// 길드해체.
case IMSG_UI_GUILD_DESTROY :
/// 2011.05.16 ProcMsgAtStatic는 정적 입력 변수이다 - prodongi
//m_pGameManager->ProcMsgAtStatic( new SMSG_GUILD_COMMAND( SMSG_GUILD_COMMAND::GUILD_DESTROY ) );
m_pGameManager->ProcMsgAtStatic( &SMSG_GUILD_COMMAND( SMSG_GUILD_COMMAND::GUILD_DESTROY ) );
pMsg->bUse = true;
break;
case IMSG_UI_GUILD_UPGRADE:
m_pGameManager->PostMsgAtDynamic( new SMSG_GUILD_COMMAND( SMSG_GUILD_COMMAND::GUILD_UPGRADE ) );
pMsg->bUse = true;
break;
}
}
void SUIGuildSubMasterTabAuthority::PumpUpMessage( LPCSTR lpszControlID, DWORD nMessage, DWORD lparam, DWORD wparam )
{
switch( nMessage )
{
case KUI_MESSAGE::KBUTTON_CLICK :
// 길드장 인계.
if( !::_stricmp( lpszControlID, "button_master_01" ) )
{
// 길드마스터인가?
if( GetIsMaster() )
{
//m_pGameManager->PostMsgAtDynamic( new SIMSG_REQ_OPEN_MSGBOX( SIMSG_REQ_OPEN_MSGBOX::_MSGBOXID::MSGBOX_GUILD_YES, "인계버튼" ) );
// 이전에 열려있을 경우를 대비해서 닫는다.
//m_pGameManager->PostMsgAtDynamic( new SIMSG_SHOW_UIWINDOW( SIMSG_TOGGLE_UIWINDOW::_UIWINDOW_TYPE::UIWINDOW_GUILD_SUB_MASTER_PROMOTE, false ) );
KUIWnd * pPosCtrl = GetChild( "pos_master_authority_01" );
KPoint pos( 100, 100 );
if( pPosCtrl )
{
pos.x = pPosCtrl->GetRect().left;
pos.y = pPosCtrl->GetRect().top;
}
//m_pGameManager->PostMsgAtDynamic( new SIMSG_UI_MOVE( SIMSG_TOGGLE_UIWINDOW::_UIWINDOW_TYPE::UIWINDOW_GUILD_SUB_MASTER_PROMOTE, pos.x, pos.y ) ); // 위치 지정.
//m_pGameManager->PostMsgAtDynamic( new SIMSG_SHOW_UIWINDOW( SIMSG_TOGGLE_UIWINDOW::_UIWINDOW_TYPE::UIWINDOW_GUILD_SUB_MASTER_PROMOTE, true ) ); // 팝업 Wnd 열기.
m_pGameManager->PostMsgAtDynamic( new SIMSG_UI_MOVE( SIMSG_TOGGLE_UIWINDOW::_UIWINDOW_TYPE::UIWINDOW_GUILD_SUB_MASTER_PROMOTE, pos.x, pos.y ) ); // 위치 지정.
m_pGameManager->PostMsgAtDynamic( new SIMSG_TOGGLE_UIWINDOW( SIMSG_TOGGLE_UIWINDOW::_UIWINDOW_TYPE::UIWINDOW_GUILD_SUB_MASTER_PROMOTE ) ); // 팝업 Wnd 열기.
}
}
// 길드 해체.
if( !::_stricmp( lpszControlID, "button_master_02" ) )
{
// 길드마스터인가?
if( GetIsMaster() )
{
string strMsg( S(611) ); // string DB 필요.
CStringUtil::ReplacePhrase( strMsg, "#@guild_name@#", m_GuildMgr.GetGuildName() );
/// 2011.05.16 ProcMsgAtStatic는 정적 입력 변수이다 - prodongi
//m_pGameManager->ProcMsgAtStatic( new SIMSG_REQ_OPEN_MSGBOX( SIMSG_REQ_OPEN_MSGBOX::_MSGBOXID::MSGBOX_GUILD_DESTROY, strMsg.c_str(), true ) );
m_pGameManager->ProcMsgAtStatic( &SIMSG_REQ_OPEN_MSGBOX( SIMSG_REQ_OPEN_MSGBOX::_MSGBOXID::MSGBOX_GUILD_DESTROY, strMsg.c_str(), true ) );
}
}
if( !::_stricmp( lpszControlID, "button_master_03" ) )
{
if( GetIsMaster() )
{
string strMsg( SR( 758, "#@point@#", m_GuildMgr.GetGuildObjectif() ) );
m_pGameManager->ProcMsgAtStatic( &SIMSG_REQ_OPEN_MSGBOX( SIMSG_REQ_OPEN_MSGBOX::_MSGBOXID::MSGBOX_GUILD_UPGRADE, strMsg.c_str(), true ) );
}
}
break;
}
SUIWnd::PumpUpMessage( lpszControlID, nMessage, lparam, wparam );
}
// 길드마스터인가?
bool SUIGuildSubMasterTabAuthority::GetIsMaster()
{
SPlayerInfo player = m_PlayerInfoMgr.GetPlayerInfo();
SPlayerSlot * pPlayerSlot = this->m_GuildMgr.FindMember( player.GetName() );
if( pPlayerSlot )
{
if( pPlayerSlot->GetAuthority() == 7 )
return true;
}
return false;
}