Code:
#include "stdafx.h"
#include "AppDefine.h"
#include "WndAdminCreateItem.h"
CWndAdminCreateItem::CWndAdminCreateItem()
{
}
CWndAdminCreateItem::~CWndAdminCreateItem()
{
}
void CWndAdminCreateItem::OnDraw( C2DRender* p2DRender )
{
}
CString CWndAdminCreateItem::MakeName( ItemProp *pProp )
{
CString szName;
szName.Format( "%s (Lv%d)", pProp->szName, pProp->dwLimitLevel1 );
return szName;
}
void CWndAdminCreateItem::OnInitialUpdate()
{
CWndNeuz::OnInitialUpdate();
CWndListBox* pListBox = (CWndListBox*)GetDlgItem( WIDC_CONTROL1 );
for( int i = 0; i < prj.m_aPropItem.GetSize(); i++ )
{
ItemProp* pItemProp = prj.GetItemProp( i );
if( pItemProp )
{
if( GetLanguage() != LANG_KOR && pItemProp->nVer >= 7 && pItemProp->bCharged == TRUE )
continue;
int nIndex = pListBox->AddString( MakeName( pItemProp ) );
pListBox->SetItemDataPtr( nIndex, pItemProp );
}
}
CWndComboBox* pWndItemKind = (CWndComboBox*)GetDlgItem( WIDC_ITEM_KIND );
CWndComboBox* pWndItemSex = (CWndComboBox*)GetDlgItem( WIDC_ITEM_SEX );
CWndComboBox* pWndItemJob = (CWndComboBox*)GetDlgItem( WIDC_ITEM_JOB );
#ifdef __EXTENDED_ADMIN_CREATE_ITEM
CWndComboBox* pWndItemKind3 = (CWndComboBox*)GetDlgItem( WIDC_ITEM_KIND3 );
#endif
//CWndEdit* pWndLevel = (CWndEdit*)GetDlgItem( WIDC_LEVEL );
CStringArray strArray;
CScript::GetFindIdToArray( "IK2_", &strArray );
int nIndex = pWndItemKind->AddString( "ALL" );
pWndItemKind->SetItemData( nIndex, NULL_ID );
for( i = 0; i < strArray.GetSize(); i++ )
{
nIndex = pWndItemKind->AddString( strArray.GetAt( i ) );
DWORD dwNum = CScript::GetDefineNum( strArray.GetAt( i ) );
pWndItemKind->SetItemData( nIndex, dwNum );
}
pWndItemKind->m_wndListBox.SortListBox();
nIndex = pWndItemKind->m_wndListBox.FindString( 0, "ALL" );
pWndItemKind->SetCurSel( nIndex );
strArray.RemoveAll();
CScript::GetFindIdToArray( "SEX_", &strArray );
for( i = 0; i < strArray.GetSize(); i++ )
{
nIndex = pWndItemSex->AddString( strArray.GetAt( i ) );
DWORD dwNum = CScript::GetDefineNum( strArray.GetAt( i ) );
pWndItemSex->SetItemData( nIndex, dwNum );
}
pWndItemSex->SetCurSel( 2 );
strArray.RemoveAll();
CScript::GetFindIdToArray( "JOB_", &strArray );
nIndex = pWndItemJob->AddString( "ALL" );
pWndItemJob->SetItemData( nIndex, -1 );
for( i = 0; i < strArray.GetSize(); i++ )
{
nIndex = pWndItemJob->AddString( strArray.GetAt( i ) );
DWORD dwNum = CScript::GetDefineNum( strArray.GetAt( i ) );
pWndItemJob->SetItemData( nIndex, dwNum );
}
pWndItemJob->m_wndListBox.SortListBox();
nIndex = pWndItemJob->m_wndListBox.FindString( 0, "ALL" );
pWndItemJob->SetCurSel( nIndex );
strArray.RemoveAll();
// ÁÂÇ¥ À̵¿
#ifdef __EXTENDED_ADMIN_CREATE_ITEM
CScript::GetFindIdToArray( "IK3_", &strArray );
nIndex = pWndItemKind3->AddString( "ALL" );
pWndItemKind3->SetItemData( nIndex, NULL_ID );
for( i = 0; i < strArray.GetSize(); i++ )
{
nIndex = pWndItemKind3->AddString( strArray.GetAt( i ) );
DWORD dwNum = CScript::GetDefineNum( strArray.GetAt( i ) );
pWndItemKind3->SetItemData( nIndex, dwNum );
}
pWndItemKind3->m_wndListBox.SortListBox();
nIndex = pWndItemKind3->m_wndListBox.FindString( 0, "ALL" );
pWndItemKind3->SetCurSel( nIndex );
#endif
CRect rectRoot = m_pWndRoot->GetLayoutRect();
CRect rectWindow = GetWindowRect();
CPoint point( rectRoot.right - rectWindow.Width(), 110 );
Move( point );
MoveParentCenter();
}
// óÀ½ ÀÌ ÇÔ¼ö¸¦ ºÎ¸£¸é À©µµ°¡ ¿*¸°´Ù.
BOOL CWndAdminCreateItem::Initialize( CWndBase* pWndParent, DWORD /*dwWndId*/ )
{
// Daisy¿¡¼* ¼³Á¤ÇÑ ¸®¼Ò½º·Î À©µµ¸¦ ¿¬´Ù.
return CWndNeuz::InitDialog( g_Neuz.GetSafeHwnd(), APP_ADMIN_CREATEITEM, 0, CPoint( 0, 0 ), pWndParent );
}
#ifdef __EXTENDED_ADMIN_CREATE_ITEM
void CWndAdminCreateItem::InitializeComboBoxen()
{
CWndComboBox* pWndItemKind = (CWndComboBox*)GetDlgItem( WIDC_ITEM_KIND );
CWndComboBox* pWndItemSex = (CWndComboBox*)GetDlgItem( WIDC_ITEM_SEX );
CWndComboBox* pWndItemJob = (CWndComboBox*)GetDlgItem( WIDC_ITEM_JOB );
CWndComboBox* pWndItemKind3 = (CWndComboBox*)GetDlgItem( WIDC_ITEM_KIND3 );
CWndComboBox* pWndItemElement = (CWndComboBox*)GetDlgItem( WIDC_ITEM_ELEMENT );
pWndItemKind->m_wndListBox.SetWndSize(pWndItemKind->m_wndListBox.GetWndRect().Size().cx, 150);
pWndItemSex->m_wndListBox.SetWndSize(pWndItemSex->m_wndListBox.GetWndRect().Size().cx, 150);
pWndItemJob->m_wndListBox.SetWndSize(pWndItemJob->m_wndListBox.GetWndRect().Size().cx, 150);
pWndItemKind3->m_wndListBox.SetWndSize(pWndItemKind3->m_wndListBox.GetWndRect().Size().cx, 150);
int nIndex = pWndItemElement->AddString( "NONE" );
pWndItemElement->SetItemData( nIndex, 0 );
nIndex = pWndItemElement->AddString( "FIRE" );
pWndItemElement->SetItemData( nIndex, 1 );
nIndex = pWndItemElement->AddString( "WATER" );
pWndItemElement->SetItemData( nIndex, 2 );
nIndex = pWndItemElement->AddString( "ELECTRICITY" );
pWndItemElement->SetItemData( nIndex, 3 );
nIndex = pWndItemElement->AddString( "WIND" );
pWndItemElement->SetItemData( nIndex, 4 );
nIndex = pWndItemElement->AddString( "EARTH" );
pWndItemElement->SetItemData( nIndex, 5 );
pWndItemElement->m_wndListBox.SortListBox();
nIndex = pWndItemElement->m_wndListBox.FindString( 0, "NONE" );
pWndItemElement->SetCurSel( nIndex );
}
#endif
/*
Á÷Á¢ À©µµ¸¦ ¿*¶§ »ç¿ë
BOOL CWndAdminCreateItem::Initialize( CWndBase* pWndParent, DWORD dwWndId )
{
CRect rectWindow = m_pWndRoot->GetWindowRect();
CRect rect( 50 ,50, 300, 300 );
SetTitle( _T( "title" ) );
return CWndNeuz::Create( WBS_THICKFRAME | WBS_MOVE | WBS_SOUND | WBS_CAPTION, rect, pWndParent, dwWndId );
}
*/
BOOL CWndAdminCreateItem::OnCommand( UINT nID, DWORD dwMessage, CWndBase* pWndBase )
{
return CWndNeuz::OnCommand( nID, dwMessage, pWndBase );
}
void CWndAdminCreateItem::OnSize( UINT nType, int cx, int cy ) \
{
CWndNeuz::OnSize( nType, cx, cy );
}
void CWndAdminCreateItem::OnLButtonUp( UINT nFlags, CPoint point )
{
}
void CWndAdminCreateItem::OnLButtonDown( UINT nFlags, CPoint point )
{
}
BOOL CWndAdminCreateItem::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
{
ItemProp* pItemProp;
CWndListBox* pListBox = (CWndListBox*)GetDlgItem( WIDC_CONTROL1 );
#ifdef __EXTENDED_ADMIN_CREATE_ITEM
if( nID == WIDC_ITEM_KIND || nID == WIDC_ITEM_KIND3 || nID == WIDC_ITEM_SEX || nID == WIDC_ITEM_JOB || nID == WIDC_LEVEL || nID == WIDC_ITEM_NAME)
#else
if( nID == WIDC_ITEM_KIND || nID == WIDC_ITEM_SEX || nID == WIDC_ITEM_JOB || nID == WIDC_LEVEL)
#endif
{
if( message == WNM_SELCHANGE || message == EN_CHANGE )
{
DWORD dwLevel = 0;
CWndEdit* pWndEdit = (CWndEdit*)GetDlgItem( WIDC_LEVEL );
CString string = pWndEdit->GetString();
dwLevel = atoi( string );
CWndComboBox* pWndItemKind = (CWndComboBox*)GetDlgItem( WIDC_ITEM_KIND );
CWndComboBox* pWndItemSex = (CWndComboBox*)GetDlgItem( WIDC_ITEM_SEX );
CWndComboBox* pWndItemJob = (CWndComboBox*)GetDlgItem( WIDC_ITEM_JOB );
#ifdef __EXTENDED_ADMIN_CREATE_ITEM
CWndComboBox* pWndItemKind3 = (CWndComboBox*)GetDlgItem( WIDC_ITEM_KIND3 );
#endif
pListBox->ResetContent();
for( int i = 0; i < prj.m_aPropItem.GetSize(); i++ )
{
ItemProp* pItemProp = prj.GetItemProp( i );
DWORD dwKind = pWndItemKind->GetItemData( pWndItemKind->GetCurSel() );
DWORD dwSex = pWndItemSex->GetItemData( pWndItemSex->GetCurSel() );
DWORD dwJob = pWndItemJob->GetItemData( pWndItemJob->GetCurSel() );
#ifdef __EXTENDED_ADMIN_CREATE_ITEM
DWORD dwKind3 = pWndItemKind3->GetItemData( pWndItemKind3->GetCurSel() );
CString szName = ((CWndText*)GetDlgItem( WIDC_ITEM_NAME ))->m_string;
#endif
if( pItemProp && ( pItemProp->dwItemKind2 == dwKind || dwKind == NULL_ID ) &&
#ifdef __EXTENDED_ADMIN_CREATE_ITEM
( pItemProp->dwItemKind3 == dwKind3 || dwKind3 == NULL_ID ) &&
( szName.GetLength() == 0 || ((CString)pItemProp->szName).Find( szName ) != std::string::npos ) &&
#endif
( pItemProp->dwItemSex == dwSex || dwSex == SEX_SEXLESS ) )
{
if( pItemProp->dwLimitLevel1 >= dwLevel && ( pItemProp->dwItemJob == dwJob || dwJob == -1 ) )
{
if( GetLanguage() != LANG_KOR && pItemProp->nVer >= 7 && pItemProp->bCharged == TRUE )
continue;
int nIndex = pListBox->AddString( MakeName( pItemProp ) );
pListBox->SetItemDataPtr( nIndex, pItemProp );
}
}
}
}
}
else
if( nID == WIDC_OK || ( nID == WIDC_CONTROL1 && message == WNM_DBLCLK ) )
{
CString string;
CWndText* pWndItemName = (CWndText*)GetDlgItem( WIDC_ITEM_NAME );
CWndText* pWndItemNum = (CWndText*)GetDlgItem( WIDC_ITEM_NUM );
#ifdef __EXTENDED_ADMIN_CREATE_ITEM
CWndText* pWndItemUpgrade = (CWndText*)GetDlgItem( WIDC_ITEM_UPGRADE );
CWndComboBox* pWndItemElement = (CWndComboBox*)GetDlgItem( WIDC_ITEM_ELEMENT );
CWndText* pWndItemElementUpgrade = (CWndText*)GetDlgItem( WIDC_ELEMENT_UPGRADE );
DWORD dwUpgrade = _ttoi(pWndItemUpgrade->m_string);
DWORD dwElement = pWndItemElement->GetItemData( pWndItemElement->GetCurSel() );
DWORD dwElementUpgrade = _ttoi(pWndItemElementUpgrade->m_string);
#endif
DWORD dwNum;
if( pWndItemNum->m_string.GetLength() )
{
dwNum = _ttoi(pWndItemNum->m_string);
}
else
{
dwNum = 1;
}
dwNum = ( dwNum == 0? 1:dwNum );
#ifdef __EXTENDED_ADMIN_CREATE_ITEM
if( pWndItemName->m_string.GetLength() && nID != WIDC_CONTROL1)
#else
if( pWndItemName->m_string.GetLength() )
#endif
{
CString str2;
str2 = pWndItemName->m_string;
#ifdef __EXTENDED_ADMIN_CREATE_ITEM
string.Format( "/ci \"%s\" %d %d %d %d",str2, dwNum, dwUpgrade, dwElement, dwElementUpgrade);
#else
string.Format( "/ci \"%s\" %d", str2, dwNum);
#endif
ParsingCommand( string.LockBuffer(), g_pPlayer );
string.UnlockBuffer();
}
else
{
int nIndex = pListBox->GetCurSel();
if( nIndex != -1 )
{
pItemProp = (ItemProp*)pListBox->GetItemDataPtr( nIndex );
if( pItemProp )
{
#ifdef __EXTENDED_ADMIN_CREATE_ITEM
string.Format( "/ci \"%s\" %d %d %d %d",pItemProp->szName, dwNum, dwUpgrade, dwElement, dwElementUpgrade);
#else
string.Format( "/ci \"%s\" %d", pItemProp->szName, dwNum);
#endif
ParsingCommand( string.LockBuffer(), g_pPlayer );
string.UnlockBuffer();
}
}
}
// nID = WTBID_CLOSE;
}
else
if( nID == WIDC_CANCEL || nID == WTBID_CLOSE )
{
nID = WTBID_CLOSE;
Destroy( TRUE );
return TRUE;
}
return CWndNeuz::OnChildNotify( message, nID, pLResult );
}