|
You last visited: Today at 12:24
Advertisement
end of file found before left brace line : 1664
Discussion on end of file found before left brace line : 1664 within the Flyff Private Server forum part of the Flyff category.
08/27/2014, 17:33
|
#1
|
elite*gold: 0
Join Date: Aug 2014
Posts: 113
Received Thanks: 36
|
end of file found before left brace line : 1664
Hey guys im using VS2012 im trying to make a clean v16 source based on the v15 one , im adding item link but when i compile i get this error :
Code:
1>..\_Interface\WndCommunication.cpp(1830): fatal error C1075: end of file found before the left brace '{' at '..\_Interface\WndCommunication.cpp(1644)' was matched
i searched on google didn't find solution , and here's my WndCommunication :
Code:
#include "stdafx.h"
#include "defineText.h"
#include "AppDefine.h"
#include "WndCommand.h"
#include "party.h"
#include "WndManager.h"
#include "WndChatFilter.h"
#include "DPClient.h"
extern CDPClient g_DPlay;
#define MAX_HISTORY_STRING 20
CWndEditChat::CWndEditChat()
{
}
CWndEditChat::~CWndEditChat()
{
}
void CWndEditChat::OnLButtonDown(UINT nFlags, CPoint point)
{
CWndChat* pWndChat = (CWndChat*) m_pParentWnd;
if( pWndChat->m_pWndCommand )
pWndChat->m_pWndCommand->Destroy();
CWndEdit::OnLButtonDown( nFlags, point );
}
void CWndEditChat::OnSetFocus(CWndBase* pOldWnd)
{
if( m_string.IsEmpty() )
{
CWndChat* pWndChat = (CWndChat*) m_pParentWnd;
if( pWndChat->m_pWndCommand == NULL )
{
if( pWndChat->m_nChatChannel == CHATSTY_GENERAL )
{
}
else
if( pWndChat->m_nChatChannel == CHATSTY_WHISPER )
{
CString string;
if( pWndChat->m_strCharName.IsEmpty() )
string.Format( "/w " );
else
string.Format( "/w %s ", pWndChat->m_strCharName );
SetString( string );
}
else
if( pWndChat->m_nChatChannel == CHATSTY_SHOUT )
{
SetString( "/s " );
}
else
if( pWndChat->m_nChatChannel == CHATSTY_PARTY )
{
SetString( "/p " );
}
else
if( pWndChat->m_nChatChannel == CHATSTY_GUILD )
{
SetString( "/g " );
}
}
}
CWndEdit::OnSetFocus( pOldWnd );
}
void CWndEditChat::OnKillFocus(CWndBase* pNewWnd)
{
CWndChat* pWndChat = (CWndChat*) m_pParentWnd;
if( pWndChat->m_pWndCommand && this!= pNewWnd )
pWndChat->m_pWndCommand->Destroy();
CWndEdit::OnKillFocus( pNewWnd );
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// äÆà À©µµ
//
/////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////
CWndMacroChat::CWndMacroChat()
{
}
CWndMacroChat::~CWndMacroChat()
{
}
void CWndMacroChat::OnDraw( C2DRender* p2DRender )
{
CWndChat* pWndChat = (CWndChat*)g_WndMng.GetApplet( APP_COMMUNICATION_CHAT );
CWndEditChat* pWndEdit = &pWndChat->m_wndEdit;//GetDlgItem( WIDC_EDIT );
if( pWndEdit->m_string.IsEmpty() == FALSE )
p2DRender->RenderTexture( CPoint( 0, 0 ), &m_texMacroChat );
}
void CWndMacroChat::OnLButtonDown(UINT nFlags, CPoint point)
{
CWndChat* pWndChat = (CWndChat*)g_WndMng.GetApplet( APP_COMMUNICATION_CHAT );
CWndEditChat* pWndEdit = &pWndChat->m_wndEdit;//GetDlgItem( WIDC_EDIT );
if( pWndEdit->m_string.IsEmpty() == FALSE )
{
CWndChat* pWndChat = (CWndChat*)g_WndMng.GetApplet( APP_COMMUNICATION_CHAT );
m_GlobalShortcut.m_dwShortcut = SHORTCUT_CHAT;
m_GlobalShortcut.m_pFromWnd = this;
m_GlobalShortcut.m_pTexture = m_pTexMacro; //.m_pFromWnd = this;
m_GlobalShortcut.m_dwData = 0;
//CWndEdit* pWndEdit = (CWndEdit*)pWndChat->GetDlgItem( WIDC_EDIT );
//strcpy( m_GlobalShortcut.m_szString, pWndEdit->m_string );
CString strFormat;
strFormat = pWndEdit->m_string;
pWndEdit->m_string.GetTextFormat(strFormat);
if( pWndEdit->m_string.GetLength() >= MAX_SHORTCUT_STRING-1 )
{
memcpy( m_GlobalShortcut.m_szString, strFormat, MAX_SHORTCUT_STRING-1 );
}
else
{
strcpy( m_GlobalShortcut.m_szString, strFormat );
}
}
}
void CWndMacroChat::OnMouseMove(UINT nFlags, CPoint point)
{
}
void CWndMacroChat::OnInitialUpdate()
{
//m_ptexMacroe.LoadTexture( m_pApp->m_pd3dDevice, MakePath( DIR_ICON, "icon_MacroChat.dds" ), 0xffff00ff );
m_pTexMacro = m_textureMng.AddTexture( m_pApp->m_pd3dDevice, MakePath( DIR_ICON, "icon_MacroChat.dds" ), 0xffff00ff );//, bMyLoader );
m_texMacroChat.LoadTexture( m_pApp->m_pd3dDevice, MakePath( DIR_THEME, "wndButtMacroChat.bmp" ), 0xffff00ff );
}
CWndTextChat::CWndTextChat()
{
}
CWndTextChat::~CWndTextChat()
{
}
BOOL CWndTextChat::IsPickupSpace( CPoint point )
{
return FALSE;
}
int CWndChat::m_nChatChannel = CHATSTY_GENERAL;
CWndChat::CWndChat()
{
m_pWndCommand = NULL;
// m_timerInsMsg.Set( MIN( 1 ) );
m_timerInsMsg.Set( MIN( 2 ) ); // µµ¿ò¸» Ç¥½Ã °£°Ý Áõ°¡
#ifdef __CSC_GAME_GRADE
m_timerAlertGGrade.Set( MIN(60) );
#endif //__CSC_GAME_GRADE
m_nInsMsgCnt = 0;
m_bChatLock = FALSE;
m_bMoveLock = FALSE;
m_pWndChatFilter = NULL;
m_nHistoryIndex = 0;
#if __VER >= 8 //__CSC_VER8_1
m_bChatLog = FALSE;
#endif //__CSC_VER8_1
#ifdef __ITEM_LINK
m_pWndLinkedItem = NULL;
#endif
}
CWndChat::~CWndChat()
{
SAFE_DELETE( m_pWndCommand );
SAFE_DELETE( m_pWndChatFilter );
#ifdef __ITEM_LINK
SAFE_DELETE(m_pWndLinkedItem);
#endif
}
void CWndChat::OnDraw(C2DRender* p2DRender)
{
if( g_pPlayer == NULL )
return;
//if( timer.IsTimeOut() )
//{
// timer.Set( SEC( 10 ) );
// if( szMessage[ nMsgCnt ][0] )
// PutString( szMessage[ nMsgCnt ++ ] );
//}
if( g_Option.m_nInstantHelp )
{
CString string;
if( m_strArray.GetSize() && m_timerInsMsg.TimeOut() )
{
m_timerInsMsg.Reset();
//string = "[µµ¿ò¸»] ";
string = prj.GetText(TID_SYS_HELP);
string += " ";
string += m_strArray.GetAt( m_nInsMsgCnt );
g_WndMng.PutString( string, NULL, 0xffffff00, CHATSTY_HELP );
m_nInsMsgCnt++;
if( m_nInsMsgCnt == m_strArray.GetSize() )
m_nInsMsgCnt = 0;
}
}
#ifdef __CSC_GAME_GRADE
if(m_timerAlertGGrade.TimeOut())
{
m_timerAlertGGrade.Reset();
//PK¼*¹ö ±¸ºÐ 12¼¼ or 15¼¼
if(g_eLocal.GetState( EVE_PK ))
g_WndMng.PutString( prj.GetText(TID_SYS_ALERTGGRADE_PK), NULL, 0xffffff00, CHATSTY_HELP );
else
g_WndMng.PutString( prj.GetText(TID_SYS_ALERTGGRADE_NONPK), NULL, 0xffffff00, CHATSTY_HELP );
}
#endif //__CSC_GAME_GRADE
CWndButton* pWndRadio4 = (CWndButton*)GetDlgItem( WIDC_RADIO4 ); // party
CWndButton* pWndRadio5 = (CWndButton*)GetDlgItem( WIDC_RADIO5 ); // guild
pWndRadio4->EnableWindow( g_Party.IsMember( g_pPlayer->m_idPlayer ) );
pWndRadio5->EnableWindow( g_pPlayer->GetGuild() == NULL ? FALSE : TRUE );
if( ::GetLanguage() == LANG_KOR || ::GetLanguage() == LANG_TWN || ::GetLanguage() == LANG_HK )
{
static TCHAR text[12] = { 0 };
static wchar_t* wText = g_imeMgr.GetStringIndicator();
if( wText )
{
CWndStatic* pWndStatic = (CWndStatic*)GetDlgItem( WIDC_STATIC1 );
if( pWndStatic )
{
WideCharToMultiByteEx(g_imeMgr.m_codePage, 0, wText, wcslen(wText), text, 12, NULL, NULL);
pWndStatic->m_dwColor = D3DCOLOR_ARGB( 255, 50, 50, 220 );
if( PRIMARYLANGID(g_imeMgr.m_hkl)==LANG_KOREAN )
{
if( g_imeMgr.GetImeState() == 0 )
{
_tcscpy( text, "En" );
}
}
else
if( PRIMARYLANGID(g_imeMgr.m_hkl)==LANG_CHINESE )
{
static wchar_t wTextCh[3][3] =
{
L"\x6CE8",
L"\x65B0",
L"\x5176",
};
if( g_imeMgr.IsNewPhonetic() )
{
if( g_imeMgr.GetImeState() == 2 )
_tcscpy( text, "En" );
else
WideCharToMultiByteEx(g_imeMgr.m_codePage, 0, wTextCh[1], wcslen(wTextCh[1]), text, 12, NULL, NULL);
}
else
if( g_imeMgr.IsPhonetic() )
{
if( g_imeMgr.GetImeState() == 0 )
_tcscpy( text, "En" );
else
WideCharToMultiByteEx(g_imeMgr.m_codePage, 0, wTextCh[0], wcslen(wTextCh[0]), text, 12, NULL, NULL);
}
else
{
if( g_imeMgr.GetImeState() == 0 )
_tcscpy( text, "En" );
else
WideCharToMultiByteEx(g_imeMgr.m_codePage, 0, wTextCh[2], wcslen(wTextCh[2]), text, 12, NULL, NULL);
}
}
pWndStatic->SetTitle( text );
}
}
}
}
void CWndChat::OnInitialUpdate()
{
CWndNeuz::OnInitialUpdate();
//AddWndStyle( WBS_THICKFRAME );
m_timerDobe.Set( SEC( 5 ) );
LPWNDCTRL lpWndCtrl = GetWndCtrl( WIDC_MACRO_CHAT );
LPWNDCTRL lpWndText = GetWndCtrl( WIDC_CUSTOM1 );
m_wndMacroChat.Create( "g", WBS_NODRAWFRAME, lpWndCtrl->rect, this, WIDC_MACRO_CHAT );
m_wndMacroChat.AddWndStyle( WBS_NODRAWFRAME );
lpWndCtrl = GetWndCtrl( WIDC_EDIT );
m_wndEdit.Create( g_Neuz.GetSafeHwnd(), WBS_NODRAWFRAME, lpWndCtrl->rect, this, WIDC_EDIT );
m_wndText.Create( WBS_NOFRAME | WBS_NODRAWFRAME | WBS_VSCROLL, lpWndText->rect, this, WIDC_TEXT );
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
CWndEdit* pWndHead = (CWndEdit*)GetDlgItem( WIDC_HEAD );
CWndEdit* pWndEdit = (CWndEdit*)GetDlgItem( WIDC_EDIT );
if( g_pPlayer->IsAuthHigher( AUTH_GAMEMASTER ) )
{
pWndText->m_bEnableClipboard = TRUE;
pWndHead->m_bEnableClipboard = TRUE;
pWndEdit->m_bEnableClipboard = TRUE;
}
pWndEdit->SetNativeMode();
#if __VER >= 11 // __CSC_VER11_1
CRect rectEdit = m_wndEdit.GetWndRect();
rectEdit.left = rectEdit.left - 90;
m_wndEdit.SetWndRect( rectEdit );
CRect customRect = lpWndCtrl->rect;
CWndCustom* pCustom = (CWndCustom*)GetDlgItem(WIDC_MACRO_CHAT);
if(pCustom)
pCustom->Move(customRect.TopLeft().x - 119, customRect.TopLeft().y);
if(pWndHead)
{
pWndHead->EnableWindow(FALSE);
pWndHead->SetVisible(FALSE);
}
#endif //__CSC_VER11_1
if( g_Option.m_nInstantHelp )
{
CScript s;
s.Load( MakePath( DIR_CLIENT, "InstantHelp.inc" ) );
s.GetToken();
while( s.tok != FINISHED )
{
m_strArray.Add( s.Token );
s.GetToken();
}
}
//m_strArray.
/*
CRect rect = GetClientRect();
rect.top = rect.bottom - 20;
rect.right = 70;
rect.left += 5;
rect.DeflateRect( 1, 1 );
m_wndBeginning.Create( g_Neuz.GetSafeHwnd(), WBS_NODRAWFRAME, rect, this, 1000);
rect = GetClientRect();
rect.top = rect.bottom - 20;
rect.left = 75;
rect.right -= 134;
rect.DeflateRect( 1, 1 );
//rect.left = rect.Width() * 20 / 100;
//m_wndEdit.AddWndStyle( WBS_NODRAWFRAME );
m_wndEdit.Create( g_Neuz.GetSafeHwnd(), WBS_NODRAWFRAME, rect, this, 1001 );
*/
// m_texEdit.LoadTexture( m_pApp->m_pd3dDevice, MakePath( DIR_THEME, "WndChat2.bmp" ), 0xffff00ff, TRUE );
/*
rect = GetClientRect();
rect.top = rect.bottom - 20;
rect.left = rect.right - 134;
rect.right = r mnnnnft + 15;
rect.DeflateRect( 1, 1 );
m_wndShout.Create( " ", 0, rect, this, 1010 );
rect = GetClientRect();
rect.top = rect.bottom - 20;
rect.left = rect.right - 117;
rect.right = rect.left + 15;
rect.DeflateRect( 1, 1 );
m_wndParty.Create( " ", 0, rect, this, 1011 );
*/
/*
m_wndText.AddWndStyle( WBS_VSCROLL );
m_wndText.AddWndStyle( WBS_NOFRAME );
m_wndText.AddWndStyle( WBS_NODRAWFRAME );
m_wndText.Create( 0, rect, this, 1003 );
m_wndText.SetFont( g_Neuz.m_Theme.m_pFontChat );
m_wndText.m_string.Reset( m_pFont, &rect);
*/
/*
rect = GetClientRect();
rect.left = rect.right - 100;
//rect.bottom -= 80;
rect.DeflateRect( 1, 1 );
m_wndReceiver.AddWndStyle( WBS_VSCROLL );
m_wndReceiver.AddWndStyle( WBS_NOFRAME );
m_wndReceiver.Create( EBS_AUTOVSCROLL, rect, this, 1002 );
m_wndReceiver.AddString( "Vampyre\n" );
m_wndReceiver.AddString( "Xuzhu\n" );
m_wndReceiver.AddString( "Zodiacus\n" );
m_wndReceiver.AddString( "Jeff\n" );
m_wndReceiver.m_string.Reset( m_pFont, &rect);
*/
//CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
SetChannel();
CWndButton* pWndRadio1 = (CWndButton*)GetDlgItem( WIDC_RADIO1 );
CWndButton* pWndRadio2 = (CWndButton*)GetDlgItem( WIDC_RADIO2 );
CWndButton* pWndRadio3 = (CWndButton*)GetDlgItem( WIDC_RADIO3 );
CWndButton* pWndRadio4 = (CWndButton*)GetDlgItem( WIDC_RADIO4 );
CWndButton* pWndRadio5 = (CWndButton*)GetDlgItem( WIDC_RADIO5 );
if( m_nChatChannel == CHATSTY_GENERAL ) pWndRadio1->SetCheck( TRUE ); else
if( m_nChatChannel == CHATSTY_WHISPER ) pWndRadio2->SetCheck( TRUE ); else
if( m_nChatChannel == CHATSTY_SHOUT ) pWndRadio3->SetCheck( TRUE ); else
if( m_nChatChannel == CHATSTY_PARTY ) pWndRadio4->SetCheck( TRUE ); else
if( m_nChatChannel == CHATSTY_GUILD ) pWndRadio5->SetCheck( TRUE );
//pWndText->m_string.Init(
//pWndText->m_string = g_WndMng.m_ChatString;
pWndText->m_nLineSpace = 2;
//pWndText->m_string.Reset( m_pFont, &pWndText->GetClientRect() );
//pWndText->
/*
CRect rect = GetClientRect();
rect.bottom -= 20;
rect.right -= 0;//100;
rect.DeflateRect( 1, 1);
m_wndText.SetWndRect( rect );
*/
//LPBYTE m_wndChatEdit[3];
//CSize sizeWndChatEdit[3];
#if __VER >= 11 // __CSC_VER11_1
LoadTGA( MakePath( DIR_THEME, "WndChatEdit00_1.tga" ), &m_wndChatEdit[0] );
#else //__CSC_VER11_1
LoadTGA( MakePath( DIR_THEME, "WndChatEdit00.tga" ), &m_wndChatEdit[0] );
#endif //__CSC_VER11_1
LoadTGA( MakePath( DIR_THEME, "WndChatEdit01.tga" ), &m_wndChatEdit[1] );
#ifdef __LANG_IME_0327
LoadTGA( MakePath( "Theme\\", ::GetLanguage(), "WndChatEdit02.tga" ), &m_wndChatEdit[2] );
#else // __LANG_IME_0327
LoadTGA( MakePath( DIR_THEME, "WndChatEdit02.tga" ), &m_wndChatEdit[2] );
#endif // __LANG_IME_0327
if( m_wndChatEdit[2].lpData == NULL )
{
Error( "CWndChat::OnInitialUpdate() m_wndChatEdit[2].lpData = NULL" );
return;
}
/*
CRect rectRoot = m_pWndRoot->GetLayoutRect();
CRect rectWindow = GetWindowRect();
CPoint point( 154, rectRoot.bottom - rectWindow.Height() );
Move( point );
*/
CWndButton* pWndLock = (CWndButton*)GetDlgItem( WIDC_CHECK1 );
pWndLock->SetCheck( m_bChatLock );
CWndButton* pWndMoveLock = (CWndButton*)GetDlgItem( WIDC_MOVELOCK );
pWndMoveLock->SetCheck( m_bMoveLock );
CRect rectRoot = m_pWndRoot->GetLayoutRect();
CRect rect = GetWindowRect();
int nWidth = rect.Width();
int nHeight = rect.Height();
int x = 0;//rectRoot.left + (rectRoot.Width() / 2) - (nWidth / 2);
int y = rectRoot.bottom - nHeight;
CPoint point( x, y );
Move( point );
m_timerInputTimeOut.Set( SEC( 300 ) );
#if __VER >= 8 //__Y_CHAT_SYSTEM_8
if( g_WndMng.m_pWndChatLog == NULL )
{
g_WndMng.m_pWndChatLog = new CWndChatLog;
if( g_WndMng.m_pWndChatLog )
{
g_WndMng.m_pWndChatLog->Initialize( NULL, APP_CHAT_LOG );
CRect rectRoot = m_pWndRoot->GetLayoutRect();
CRect rect = GetWindowRect(TRUE);
CRect rect2 = g_WndMng.m_pWndChatLog->GetClientRect(TRUE);
int x = 0;
int y = rect.top;
if( (rect.right+rect2.Width()) < rectRoot.right )
x = rect.right;
else
x = (rect.left - rect2.Width() );
CPoint point( x, y );
g_WndMng.m_pWndChatLog->Move( point );
g_WndMng.m_pWndChatLog->SetVisible(FALSE);
}
}
if( g_WndMng.m_pWndChatLog )
{
CWndButton* pWndCheck3 = (CWndButton*)GetDlgItem( WIDC_CHECK3 );
if( pWndCheck3 )
pWndCheck3->SetCheck(g_WndMng.m_pWndChatLog->m_bVisible);
}
#endif //__Y_CHAT_SYSTEM_8
}
BOOL CWndChat::Process ()
{
if( m_timerInputTimeOut.IsTimeOut() )
{
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
pWndText->m_string.SetAlpha( 0 );
}
if( 0 < strlen( g_Neuz.m_szWhisperName ) )
{
LPCTSTR lpstr = m_wndEdit.GetString();
BOOL bCommand = FALSE;
if( strcmp( lpstr, "/r " ) == 0 || strcmp( lpstr, "/R " ) == 0 || ( GetLanguage() == LANG_KOR && strcmp( lpstr, "/¤¡ " ) == 0 ) )
{
CString strWhisper;
strWhisper.Format( "/whisper %s ", g_Neuz.m_szWhisperName );
m_wndEdit.SetString( strWhisper );
m_wndEdit.SetFocus();
}
}
return TRUE;
}
void CWndChat::SetChannel()
{
m_wndText.SetString( "" );
int nChannel = 0;
switch( CWndChat::m_nChatChannel )
{
case CHATSTY_GENERAL: nChannel = 0; break;
case CHATSTY_WHISPER: nChannel = 1; break;
case CHATSTY_SHOUT : nChannel = 2; break;
case CHATSTY_PARTY : nChannel = 3; break;
case CHATSTY_GUILD : nChannel = 4; break;
}
DWORD dwChatFilter = g_Option.m_dwChatFilterEtc | g_Option.m_dwChatFilter[ nChannel ];
for( int i = 0; i < g_WndMng.m_aChatString.GetSize(); i++ )
{
if( g_WndMng.m_aChatStyle.GetAt( i ) & dwChatFilter )
{
CString string = g_WndMng.m_aChatString.GetAt( i );
m_wndText.m_string.AddParsingString( string, g_WndMng.m_aChatColor.GetAt( i ), 0x00000000, 0, PS_NOT_MACRO );
m_wndText.m_string.AddString( "\n" );
}
}
m_wndText.ResetString();
m_wndText.m_wndScrollBar.SetMaxScrollPos();
}
void CWndChat::OnSetFocus(CWndBase* pOldWnd)
{
}
void CWndChat::OnKillFocus(CWndBase* pNewWnd)
{
//if( m_pWndCommand && pNewWnd != m_pWndCommand )
// m_pWndCommand->Destroy();
}
BOOL CWndChat::Initialize(CWndBase* pWndParent,DWORD dwWndId)
{
CRect rectWindow = m_pWndRoot->GetWindowRect();
CRect rect( 154, rectWindow.Height() - 100, 154 + rectWindow.Width() - 300, rectWindow.Height() );
SetTitle( GETTEXT( TID_APP_COMMUNICATION_CHAT ) );
return CWndNeuz::InitDialog( g_Neuz.GetSafeHwnd(), dwWndId, WBS_KEY| WBS_THICKFRAME, CPoint( 792, 130 ), pWndParent );
//return CWndNeuz::Create( 0|WBS_MOVE|/*WBS_DOCKABLE|*/WBS_SOUND|WBS_CAPTION|WBS_THICKFRAME|WBS_MAXIMIZEBOX, rect, &g_WndMng, dwWndId);
}
/*
"applet" TY_CLIENT 0
"to" TY_SERVER 0
"to" TY_SERVER 0
"to" TY_SERVER 0
*/
extern CDPClient g_DPlay;
void CWndChat::OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags)
{
}
void CWndChat::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
}
void CWndChat::OnDestroyChildWnd( CWndBase* pWndChild )
{
if( m_pWndCommand == pWndChild )
{
SAFE_DELETE( m_pWndCommand );
}
if( m_pWndChatFilter == pWndChild )
{
SAFE_DELETE( m_pWndChatFilter );
//ChatFilter Wnd DestroyÈÄ Focus°¡ World·Î µÇ¾îÀÖÁö ¾Ê¾Æ À̵¿Å°°¡ ¸ÔÁö ¾Ê±â ¶§¹®¿¡ SetFocusÇØÁÜ.
CWndWorld* pWndWorld = (CWndWorld*)g_WndMng.GetApplet( APP_WORLD );
if( pWndWorld )
pWndWorld->SetFocus();
}
}
void CWndChat::SerializeRegInfo( CAr& ar, DWORD& dwVersion )
{
CWndNeuz::SerializeRegInfo( ar, dwVersion );
if( ar.IsLoading() )
{
if( dwVersion == 0 )
{
}
else
{
ar >> m_bChatLock;
}
CWndButton* pWndLock = (CWndButton*)GetDlgItem( WIDC_CHECK1 );
pWndLock->SetCheck( m_bChatLock );
}
else
{
dwVersion = 1;
ar << m_bChatLock;
}
}
BOOL CWndChat::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
{
m_timerInputTimeOut.Reset();
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
if( pWndText )
pWndText->m_string.SetAlpha( 255 );
switch(nID)
{
case WIDC_CLOSE:
nID = WTBID_CLOSE;
break;
case WIDC_HELP:
nID = WTBID_HELP;
break;
case WIDC_BUTTON1:
{
if( m_pWndChatFilter == NULL )
{
m_pWndChatFilter = new CWndChatFilter;
m_pWndChatFilter->Initialize( this );
}
}
break;
case WIDC_CHECK1: // äÆà ÀÔ·Ââ Àᱸ±â
{
CWndButton* pWndCheck = (CWndButton*)GetDlgItem( WIDC_CHECK1 );
m_bChatLock = pWndCheck->GetCheck();
}
break;
#if __VER >= 8 //__Y_CHAT_SYSTEM_8
case WIDC_CHECK3: // ½Ã½ºÅ½Ã¢
{
CWndButton* pWndCheck = (CWndButton*)GetDlgItem( WIDC_CHECK3 );
BOOL bChatLog = pWndCheck->GetCheck();
#if __VER >= 8 //__CSC_VER8_1 ¸ðµç À©µµ¿ì¸¦ Áö¿ï¶§ ChatLogÀÇ À¯¹« ±¸º°À» À§ÇØ Ãß°¡.
m_bChatLog = bChatLog;
#endif //_CSC_VER8_1
if( g_WndMng.m_pWndChatLog )
{
if( bChatLog )
{
CRect rectRoot = m_pWndRoot->GetLayoutRect();
CRect rect = GetWindowRect(TRUE);
CRect rect2 = g_WndMng.m_pWndChatLog->GetClientRect(TRUE);
int x = 0;
int y = rect.top;
if( (rect.right+rect2.Width()) < rectRoot.right )
x = rect.right;
else
x = (rect.left - rect2.Width() );
CPoint point( x, y );
g_WndMng.m_pWndChatLog->Move( point );
}
g_WndMng.m_pWndChatLog->SetVisible( bChatLog );
}
}
break;
#endif //__Y_CHAT_SYSTEM_8
case WIDC_MOVELOCK: // À̵¿ Àá±×±â
{
CWndButton* pWndCheck = (CWndButton*)GetDlgItem( WIDC_MOVELOCK );
m_bMoveLock = pWndCheck->GetCheck();
DWORD dwStyle = GetWndStyle();
if( m_bMoveLock )
dwStyle &= (~WBS_MOVE);
else
dwStyle |= WBS_MOVE;
SetWndStyle( dwStyle );
}
break;
case WIDC_RADIO1:
m_nChatChannel = CHATSTY_GENERAL;
m_wndEdit.SetString( "" );
m_wndEdit.SetFocus();
SetChannel();
break;
case WIDC_RADIO2:
m_nChatChannel = CHATSTY_WHISPER;
m_wndEdit.SetString( "/w " );
m_wndEdit.SetFocus();
SetChannel();
break;
case WIDC_RADIO3:
m_nChatChannel = CHATSTY_SHOUT;
m_wndEdit.SetString( "/s " );
m_wndEdit.SetFocus();
SetChannel();
break;
case WIDC_RADIO4:
m_nChatChannel = CHATSTY_PARTY;
m_wndEdit.SetString( "/p " );
m_wndEdit.SetFocus();
SetChannel();
break;
case WIDC_RADIO5:
m_nChatChannel = CHATSTY_GUILD;
m_wndEdit.SetString( "/g " );
m_wndEdit.SetFocus();
SetChannel();
break;
case APP_COMMAND:
{
if( message == WNM_DBLCLK )
{
CString string;
m_pWndCommand->GetText( m_pWndCommand->GetCurSel(), string );
string += " ";
m_wndEdit.SetString( "/" );
m_wndEdit.AddString( string );
m_wndEdit.ResetString();
m_pWndCommand->Destroy();
}
SetFocus();
}
case WIDC_HEAD: // ¸»¸Ó¸®
if( message == EN_RETURN )
{
g_WndMng.SetFocus();
}
break;
case WIDC_EDIT: // º»¹®
if( message == EN_UP )
{
if( m_strHistory.size() == 0 )
return FALSE;
if( m_nHistoryIndex >= (int)( m_strHistory.size() ) )
{
m_strHistory.front();
m_nHistoryIndex = 0;
}
m_nHistoryIndex++;
#ifdef __ITEM_LINK
m_wndEdit.SetString(m_strHistory[m_strHistory.size()-m_nHistoryIndex]);
#else
m_wndEdit.m_string = m_strHistory[m_strHistory.size()-m_nHistoryIndex];
#endif
return TRUE;
}
if( message == EN_RETURN )
{
BOOL bFinished = TRUE;
if( m_pWndCommand )
{
CString str1, str2;
str1 = m_wndEdit.m_string.Right( m_wndEdit.m_string.GetLength() - 1 );
if( m_pWndCommand->GetCurSel() != -1 )
{
m_pWndCommand->GetText( m_pWndCommand->GetCurSel(), str2 );
if( str1 != str2 )
{
str2 += " ";
m_wndEdit.SetString( "/" );
m_wndEdit.AddString( str2 );
m_wndEdit.ResetString();
bFinished = FALSE;
}
}
m_pWndCommand->Destroy();
}
if( bFinished == TRUE )
{
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
CWndEdit* pWndHead = (CWndEdit*)GetDlgItem( WIDC_HEAD );
CString string;
if( pWndHead->m_string.IsEmpty() == FALSE &&
( pWndHead->m_string[ 0 ] == '/' ||
( m_wndEdit.m_string.IsEmpty() == FALSE && pWndHead->m_string[ 0 ] != '/' && m_wndEdit.m_string[ 0 ] != '/' ) )
)
string = pWndHead->m_string + " ";
WORD wCodePage = g_codePage;
const char* begin = m_wndEdit.m_string;
const char* end = begin + m_wndEdit.m_string.GetLength();
const char* iter = begin;
while(*iter && iter < end)
{
if(*((BYTE*)iter) >= 0x80)
{
if(wCodePage != m_wndEdit.m_string.m_awCodePage[iter-begin])
{
wCodePage = m_wndEdit.m_string.m_awCodePage[iter-begin];
char temp[16];
if(wCodePage == g_codePage)
{
wsprintf(temp, "#nl");
}
else
{
wsprintf(temp, "#l%04d", wCodePage);
}
string += temp;
}
}
const char* next = CharNextEx(iter, wCodePage);
char temp[16];
memcpy(temp, iter, next-iter);
temp[next-iter] = 0;
string += temp;
iter = next;
}
if( m_strHistory.size() >= MAX_HISTORY_STRING )
{
m_nHistoryIndex = 0;
m_strHistory.erase( m_strHistory.begin() );
}
m_strHistory.push_back(string);
int a = string.GetLength();
if( !m_wndEdit.m_string.IsEmpty() )
m_wndEdit.m_string.GetTextFormat(string);
#ifdef __ITEM_LINK
m_strHistory.push_back(string);
#endif
g_WndMng.ParsingChat( string );
CScanner scanner;
scanner.SetProg( m_wndEdit.m_string.LockBuffer() );
scanner.GetToken(); //
if( scanner.Token == "/" )
{
scanner.GetToken();
if( scanner.Token == "w" || scanner.Token == "whisper" )
{
scanner.GetToken();
m_strCharName = scanner.Token;
}
}
m_wndEdit.m_string.UnlockBuffer();
m_wndEdit.Empty();
if( m_bChatLock == FALSE )
{
if( IsWndStyle( WBS_MODAL ) == TRUE )
{
DelWndStyle( WBS_MODAL );
if( g_Neuz.pOldModalWindow )
{
g_Neuz.pOldModalWindow->SetFocus();
}
}
else
{
CWndWorld* pWndWorld = ( CWndWorld* )g_WndMng.GetApplet( APP_WORLD );
if( pWndWorld )
{
pWndWorld->SetFocus();
}
else
{
g_WndMng.SetFocus();
}
}
}
else
m_wndEdit.SetFocus();
}
}
else
if( message == EN_CHANGE )
{
if( m_wndEdit.m_string.IsEmpty() == FALSE )
{
if( m_wndEdit.m_string[ 0 ] == '/' && m_wndEdit.GetOffset() == 1 && m_pWndCommand == NULL )
{
m_pWndCommand = new CWndCommand;
m_pWndCommand->m_pWndEdit = this;
m_pWndCommand->Initialize( this );
CRect rect = m_wndEdit.GetScreenRect();
CPoint point = rect.TopLeft();
point.y -= m_pWndCommand->GetWndRect().Height();
m_pWndCommand->Move( point );
}
else
if( m_pWndCommand )
{
CString string;
string = m_wndEdit.m_string.Right( m_wndEdit.m_string.GetLength() - 1 );
// Áß°£¿¡ ½ºÆäÀ̽º°¡ ²¸ ÀÖÀ¸¸é ´Ý¾Æ¹ö¸°´Ù.
if( string.Find( ' ' ) == -1 )
m_pWndCommand->SelectString( 0, string );
else
m_pWndCommand->Destroy();
if( ::GetLanguage() == LANG_KOR )
{
if( m_wndEdit.m_string == "/¤¾ " )
{
m_wndEdit.SetString( "/g " );
}
else if( m_wndEdit.m_string == "/¤Ä " )
{
m_wndEdit.SetString( "/p " );
}
else if( m_wndEdit.m_string == "/¤¤ " )
{
m_wndEdit.SetString( "/s " );
}
#if __VER >= 11 // __CSC_VER11_1
else if( m_wndEdit.m_string == "/¤¸ " )
{
m_wndEdit.SetString( "/w " );
}
#endif //__CSC_VER11_1
}
}
}
else
if( m_pWndCommand )
m_pWndCommand->Destroy();
}
break;
case 10000: // ÃÖ¼ÒÈ*
break;
case 10001: // ÃÖ´ëÈ*
break;
case 10002: // Á¾·á
Destroy();
break;
}
//¾Æ·¡ ƯÁ¤ ¹öÆ° ´©¸¦ °æ¿ì Focus°¡ World·Î µÇ¾îÀÖÁö ¾Ê¾Æ À̵¿Å°°¡ ¸ÔÁö ¾Ê±â ¶§¹®¿¡ SetFocusÇØÁÜ.
if(nID == WIDC_CHECK1 || nID == WIDC_CHECK3 || nID == WIDC_MOVELOCK)
{
CWndWorld* pWndWorld = (CWndWorld*)g_WndMng.GetApplet( APP_WORLD );
if( pWndWorld )
pWndWorld->SetFocus();
}
return CWndNeuz::OnChildNotify( message, nID, pLResult );
}
BOOL CWndChat::OnCommand( UINT nID, DWORD dwMessage, CWndBase* pWndBase )
{
return CWndNeuz::OnCommand(nID,dwMessage,pWndBase);
}
void CWndChat::Parsing( CString string )
{
/*
MotionProp* pProp;
for( int i = 0; i < prj.m_aMotionProp.GetSize(); i++ )
{
pProp = prj.GetMotionProp( i );
if( pProp && pProp->dwRequireLv )
{
if( string.Find( pProp->szLink ) != -1 )
{
// g_pPlayer->SendActMsg( OBJMSG_MOTION, pProp->dwID );
}
}
}
*/
}
void CWndChat::PutString( LPCTSTR lpszString, DWORD dwColor, DWORD dwPStyle )
{
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
if( dwColor != 0xffffff00 )
{
m_timerInputTimeOut.Reset();
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
pWndText->m_string.SetAlpha( 255 );
}
BOOL bLineEnd = FALSE;
if( pWndText->m_wndScrollBar.GetScrollPos() == ( pWndText->m_wndScrollBar.GetMaxScrollPos() - pWndText->m_wndScrollBar.GetScrollPage() ) )
bLineEnd = TRUE;
pWndText->AddString( lpszString, dwColor, dwPStyle );
pWndText->AddString( "\n", dwColor );// += '\n';
// ±Û ³»¿ëÀÌ 1000ÁÙÀ» ³Ñ¾î°¡¸é 500¶óÀÎÀ» À߶󳽴Ù.
if( pWndText->m_string.GetLineCount() >= 1000 )
{
pWndText->m_string.DeleteLine( 0, 500 );
pWndText->UpdateScrollBar();
}
if( bLineEnd )
pWndText->m_wndScrollBar.SetMaxScrollPos();
}
void CWndChat::OnDestroy()
{
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
g_WndMng.m_ChatString = pWndText->m_string;
}
void CWndChat::SetWndRect( CRect rectWnd, BOOL bOnSize )
{
#if __VER >= 8 //__Y_CHAT_SYSTEM_8
AdjustMinRect( &rectWnd, 16 * 29, 16 * 3 );
#else // __Y_CHAT_SYSTEM_8
AdjustMinRect( &rectWnd, 16 * 26, 16 * 3 );
#endif //__Y_CHAT_SYSTEM_8
CRect rectOld = m_rectClient;
m_rectWindow = rectWnd;
m_rectClient = m_rectWindow;
m_rectClient.DeflateRect( 4, 4, 6, 6 );
m_rectLayout = m_rectClient;
if( bOnSize && ( rectOld.Width() != m_rectClient.Width() || rectOld.Height() != m_rectClient.Height() ) )
OnSize( 0, m_rectClient.Width(), m_rectClient.Height() );
MakeVertexBuffer();
}
void CWndChat::OnSize(UINT nType, int cx, int cy)
{
//#ifdef __NEWINTERFACE
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
CWndEdit* pWndHead = (CWndEdit*)GetDlgItem( WIDC_HEAD );
CWndEdit* pWndEdit = (CWndEdit*)GetDlgItem( WIDC_EDIT );
CRect rectEdit;
CRect rect = GetClientRect();
//rect.left = 60;
rect.top = 0;
rect.left = 0;
rect.right -= 0;
rect.bottom -= 39;
pWndText->SetWndRect( rect );
pWndText->m_wndScrollBar.SetMaxScrollPos();
rect = GetClientRect();
rectEdit = pWndHead->GetWndRect();
rectEdit.top = rect.bottom - 18;
rectEdit.bottom = rect.bottom;
rect.DeflateRect( 1, 1 );
pWndHead->SetWndRect( rectEdit );
rect = GetClientRect();
rectEdit = m_wndEdit.GetWndRect();
rectEdit.top = rect.bottom - 18;
rectEdit.bottom = rect.bottom;
rectEdit.right = rect.right - 20;
rect.DeflateRect( 1, 1 );
m_wndEdit.SetWndRect( rectEdit );
rect = GetClientRect();
rectEdit = m_wndMacroChat.GetWndRect();
rectEdit.top = rect.bottom - 19;
rectEdit.bottom = rect.bottom;
m_wndMacroChat.SetWndRect( rectEdit );
CWndButton* pWndRadio1 = (CWndButton*)GetDlgItem( WIDC_RADIO1 );
CWndButton* pWndRadio2 = (CWndButton*)GetDlgItem( WIDC_RADIO2 );
CWndButton* pWndRadio3 = (CWndButton*)GetDlgItem( WIDC_RADIO3 );
CWndButton* pWndRadio4 = (CWndButton*)GetDlgItem( WIDC_RADIO4 );
CWndButton* pWndRadio5 = (CWndButton*)GetDlgItem( WIDC_RADIO5 );
CWndButton* pWndCheck = (CWndButton*)GetDlgItem( WIDC_CHECK1 );
CWndButton* pWndCheck2 = (CWndButton*)GetDlgItem( WIDC_MOVELOCK );
CWndButton* pWndButton1 = (CWndButton*)GetDlgItem( WIDC_BUTTON1 );
CWndButton* pWndButton2 = (CWndButton*)GetDlgItem( WIDC_HELP );
CWndButton* pWndButton3 = (CWndButton*)GetDlgItem( WIDC_CLOSE );
#if __VER >= 8 //__Y_CHAT_SYSTEM_8
CWndButton* pWndCheck3 = (CWndButton*)GetDlgItem( WIDC_CHECK3 );
#else //__Y_CHAT_SYSTEM_8
CWndButton* pWndCheck3 = (CWndButton*)GetDlgItem( WIDC_CHECK3 );
pWndCheck3->SetVisible(FALSE);
#endif //__Y_CHAT_SYSTEM_8
rect = GetClientRect();
rectEdit = pWndRadio1->GetWndRect();
rectEdit.top = rect.bottom - 38;
rectEdit.left = 0;
pWndRadio1->Move( rectEdit.TopLeft() );
rectEdit.left = 50;
pWndRadio2->Move( rectEdit.TopLeft() );
rectEdit.left = 100;
pWndRadio3->Move( rectEdit.TopLeft() );
rectEdit.left = 150;
pWndRadio4->Move( rectEdit.TopLeft() );
rectEdit.left = 200;
pWndRadio5->Move( rectEdit.TopLeft() );
#if __VER >= 8 //__Y_CHAT_SYSTEM_8
rectEdit.left = rect.right - 200;
pWndCheck->Move( rectEdit.TopLeft() );
rectEdit.left = rect.right - 150;
pWndButton1->Move( rectEdit.TopLeft() );
rectEdit.left = rect.right - 100;
pWndCheck3->Move( rectEdit.TopLeft() );
#else //__Y_CHAT_SYSTEM_8
rectEdit.left = rect.right - 150;
pWndCheck->Move( rectEdit.TopLeft() );
rectEdit.left = rect.right - 100;
pWndButton1->Move( rectEdit.TopLeft() );
#endif //__Y_CHAT_SYSTEM_8
rectEdit.left = rect.right - 49;
CRect rectEdit2 = rectEdit;
rectEdit2.top += 1;
pWndCheck2->Move( rectEdit2.TopLeft() );
rectEdit.left = rect.right - 32;
rectEdit.top += 1;
pWndButton2->Move( rectEdit.TopLeft() );
rectEdit.left = rect.right - 15;
pWndButton3->Move( rectEdit.TopLeft() );
CWndStatic* pWndStatic = (CWndStatic*)GetDlgItem( WIDC_STATIC1 );
if( pWndStatic )
{
rectEdit.top += 20;
rectEdit.left -= 5;
pWndStatic->Move( rectEdit.TopLeft() );
}
CWndNeuz::OnSize(nType,cx,cy);
}
void CWndChat::OnLButtonUp(UINT nFlags, CPoint point)
{
if(IsWndRoot())
return;
//if(IsWndStyle(WBS_CAPTION) && m_bPickup)
{//
// m_wndTitleBar.m_wndMinimize.SetVisible(TRUE);
//m_wndTitleBar.m_wndMaximize.SetVisible(TRUE);
}
if( g_WndMng.m_pWndWorld )
{
CRect rect = GetWindowRect( TRUE );
CPoint p;
p.x = point.x + rect.left;
p.y = point.y + rect.top;
// g_WndMng.m_pWndWorld->m_bLButtonDown = TRUE;
g_WndMng.m_pWndWorld->OnLButtonUp( nFlags, p );
}
}
void CWndChat::OnLButtonDown(UINT nFlags, CPoint point)
{
if( m_pWndCommand )
m_pWndCommand->Destroy();
if( g_WndMng.m_pWndWorld )
{
CRect rect = GetWindowRect( TRUE );
CPoint p;
p.x = point.x + rect.left;
p.y = point.y + rect.top;
g_WndMng.m_pWndWorld->m_bLButtonDown = TRUE;
g_WndMng.m_pWndWorld->OnLButtonDown( nFlags, p );
}
}
void CWndChat::OnRButtonDown(UINT nFlags, CPoint point)
{
if( g_WndMng.m_pWndWorld )
{
CRect rect = GetWindowRect( TRUE );
CPoint p;
p.x = point.x + rect.left;
p.y = point.y + rect.top;
g_WndMng.m_pWndWorld->m_bRButtonDown = TRUE;
g_WndMng.m_pWndWorld->OnRButtonDown( nFlags, p );
}
int nLineCount = m_wndText.m_string.GetLineCount();
int nPos = m_wndText.IsWndStyle( WBS_VSCROLL ) ? m_wndText.m_wndScrollBar.GetScrollPos() : 0;
DWORD dwMaxHeight = m_wndText.GetFontHeight();
for( int i = nPos ; i < nLineCount ; ++i )
{
if( (int)( ((i-nPos) * dwMaxHeight) ) <= point.y && point.y < (int)( (dwMaxHeight * (i-nPos + 1)) ) )
{
CString str = m_wndText.m_string.GetLine( i );
#ifdef __ITEM_LINK
CString strTmp = str;
#endif
char szFind[MAX_NAME] = {0,};
BOOL bChat = FALSE;
// ÀÏ¹Ý Ã¤Æà °Ë»ö
int nFindName = str.Find( " :" );
if( 0 < nFindName && nFindName < MAX_NAME )
{
int nFindSpace = str.Find( ' ' );
if( nFindSpace == -1 || nFindName <= nFindSpace )
{
#ifdef __ITEM_LINK
int nExtent = m_wndText.m_pFont->GetTextExtent(str.Mid(0,nFindName)).cx;
if(point.x < nExtent)
{
#endif
strncpy( szFind, str, nFindName );
if( strcmp( szFind, g_pPlayer->GetName() ) != 0 )
bChat = TRUE;
#ifdef __ITEM_LINK
}
#endif
}
}
// ±Ó¼Ó¸» °Ë»ö
if( bChat == FALSE )
{
int nFindName1 = str.Find( "<- [" );
int nFindName2 = str.Find( "]" );
if( 0 == nFindName1 )
{
str.Replace( "<- [", "" );
}
else
{
nFindName1 = str.Find( "-> [" );
str.Replace( "-> [", "" );
}
if( 0 == nFindName1 && 0 < nFindName2 && nFindName2 - nFindName1 < MAX_NAME + 4 )
{
nFindName2 = str.Find( "]" );
strncpy( szFind, str, nFindName2 );
int nFindSpace = strspn( " ", szFind );
#ifdef __ITEM_LINK
int nFindName3 = strTmp.Find("]");
int nExtent = m_wndText.m_pFont->GetTextExtent(strTmp.Mid(0,nFindName3)).cx;
if(point.x < nExtent)
{
#endif
if( nFindSpace < 1 && strcmp( szFind, g_pPlayer->GetName() ) != 0 )
bChat = TRUE;
#ifdef __ITEM_LINK
}
#endif
}
}
// ¿ÜÄ¡±â °Ë»ö( ¾Ë¸²Àº ºüÁü )
if( bChat == FALSE )
{
int nFindName1 = str.Find( "[" );
int nFindName2 = str.Find( "]" );
if( 0 == nFindName1 && 0 < nFindName2 && nFindName2 - nFindName1 < MAX_NAME + 1 )
{
str.Replace( "[", "" );
nFindName2 = str.Find( "]" );
strncpy( szFind, str, nFindName2 );
int nFindSpace = strspn( " ", szFind );
#ifdef __ITEM_LINK
int nFindName3 = strTmp.Find("]");
int nExtent = m_wndText.m_pFont->GetTextExtent(strTmp.Mid(0,nFindName3)).cx;
if(point.x < nExtent)
{
#endif
if( nFindSpace < 1 && strcmp( szFind, g_pPlayer->GetName() ) != 0 )
bChat = TRUE;
#ifdef __ITEM_LINK
}
#endif
CString strSystem = prj.GetText(TID_ADMIN_ANNOUNCE);
strSystem.Replace( "[", "" );
int nFindSystem = strSystem.Find("]");
if( 0 < nFindSystem )
{
char szFindSystem[MAX_NAME] = {0,};
strncpy( szFindSystem, strSystem, nFindSystem );
if( strcmp( szFind, szFindSystem ) == 0 )
bChat = FALSE;
}
}
}
#ifdef __ITEM_LINK
{
if(!bChat)
{
int nFindBeg = strTmp.Find("<");
int nFindEnd = strTmp.Find(">");
while(nFindBeg != -1 || nFindEnd != -1)
{
int nExtentEnd;
int nExtentBeg;
if(nFindBeg != -1)// check line changed
nExtentBeg = m_wndText.m_pFont->GetTextExtent(strTmp.Mid(0,nFindBeg)).cx;
else
nExtentBeg = 0;
if(nFindEnd != -1) // check line changed
nExtentEnd = m_wndText.m_pFont->GetTextExtent(strTmp.Mid(nFindBeg,nFindEnd-nFindBeg)).cx+nExtentBeg;
else{
nExtentEnd = m_wndText.m_pFont->GetTextExtent(strTmp.Mid(nFindBeg,str.GetLength()-nFindBeg)).cx+nExtentBeg;
}
if(point.x > nExtentBeg && point.x < nExtentEnd) // clicked on link
{
DWORD dwLinkID = m_wndText.m_string.m_adwLinkedID.GetAt(nFindBeg+m_wndText.m_string.GetLineOffset(i));
if(dwLinkID) //check if is linked item or normal string
g_DPlay.SendGetLinkedItem(dwLinkID);
Error("%d",dwLinkID);
}
nFindBeg = strTmp.Find("<",nFindEnd);
nFindEnd = strTmp.Find(">",nFindEnd+1);
}
}
}
#endif
if( bChat )
{
CString strWhisper;
strWhisper.Format( "/whisper %s ", szFind );
m_wndEdit.SetString( strWhisper );
m_wndEdit.SetFocus();
}
break;
}
}
}
void CWndChat::OnRButtonUp(UINT nFlags, CPoint point)
{
if( g_WndMng.m_pWndWorld )
{
CRect rect = GetWindowRect( TRUE );
CPoint p;
p.x = point.x + rect.left;
p.y = point.y + rect.top;
// g_WndMng.m_pWndWorld->m_bRButtonDown = TRUE;
g_WndMng.m_pWndWorld->OnRButtonUp( nFlags, p );
}
}
void CWndChat::OnMouseMove(UINT nFlags, CPoint point)
{
if( g_WndMng.m_pWndWorld )
{
CRect rect = GetWindowRect( TRUE );
CPoint p;
p.x = point.x + rect.left;
p.y = point.y + rect.top;
// g_WndMng.m_pWndWorld->m_bRButtonDown = TRUE;
g_WndMng.m_pWndWorld->OnMouseMove( nFlags, p );
}
}
BOOL CWndChat::OnEraseBkgnd(C2DRender* p2DRender)
{
return TRUE;
}
//void CWndNeuz::PaintTexture( LPBYTE pDest, LPBYTE pSrc, CPoint pt,
// CSize sizeTexture, CSize sizeSurface )
void CWndChat::AdditionalSkinTexture( LPWORD pDest, CSize size, D3DFORMAT d3dFormat )
{
CWndNeuz::AdditionalSkinTexture( pDest, size, d3dFormat );
CRect rect = GetWindowRect();
CPoint point = CPoint( 0, rect.Height() - m_wndChatEdit[0].size.cy );
PaintTexture( pDest, &m_wndChatEdit[0], point, size );
int nWidth = ( rect.Width() - m_wndChatEdit[0].size.cx ) / m_wndChatEdit[1].size.cx;
point.x += m_wndChatEdit[0].size.cx;
for( int i = 0; i < nWidth; i++ )
{
if( i == nWidth - 2 )
PaintTexture( pDest, &m_wndChatEdit[2], point, size );
else
if( i < nWidth - 2 )
PaintTexture( pDest, &m_wndChatEdit[1], point, size );
point.x += m_wndChatEdit[1].size.cx;
}
}
#if __VER >= 8 //__Y_CHAT_SYSTEM_8
CWndChatLog::CWndChatLog()
{
}
CWndChatLog::~CWndChatLog()
{
}
/*
void CWndChatLog::OnDraw(C2DRender* p2DRender)
{
}
*/
void CWndChatLog::OnInitialUpdate()
{
CWndNeuz::OnInitialUpdate();
LPWNDCTRL lpWndText = GetWndCtrl( WIDC_CUSTOM1 );
m_wndText.Create( WBS_NOFRAME | WBS_NODRAWFRAME | WBS_VSCROLL, lpWndText->rect, this, WIDC_TEXT );
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
if( g_pPlayer->IsAuthHigher( AUTH_GAMEMASTER ) )
{
pWndText->m_bEnableClipboard = TRUE;
}
pWndText->m_nLineSpace = 2;
CRect rectRoot = m_pWndRoot->GetLayoutRect();
CRect rect = GetWindowRect();
int nWidth = rect.Width();
int nHeight = rect.Height();
int x = 0;//rectRoot.left + (rectRoot.Width() / 2) - (nWidth / 2);
int y = rectRoot.bottom - nHeight;
CPoint point( x, y );
Move( point );
m_wndMenuPlace.CreateMenu( this );
m_wndMenuPlace.AppendMenu( 0, 0 , prj.GetText(TID_GAME_GUIDE_HIDE) );
}
BOOL CWndChatLog::Process ()
{
return TRUE;
}
void CWndChatLog::OnSetFocus(CWndBase* pOldWnd)
{
}
void CWndChatLog::OnKillFocus(CWndBase* pNewWnd)
{
}
BOOL CWndChatLog::Initialize(CWndBase* pWndParent,DWORD dwWndId)
{
CRect rectWindow = m_pWndRoot->GetWindowRect();
CRect rect( 154, rectWindow.Height() - 100, 154 + rectWindow.Width() - 300, rectWindow.Height() );
SetTitle( GETTEXT( TID_APP_COMMUNICATION_CHAT ) );
return CWndNeuz::InitDialog( g_Neuz.GetSafeHwnd(), dwWndId, WBS_THICKFRAME, CPoint( 792, 130 ), pWndParent );
// return CWndNeuz::InitDialog( g_Neuz.GetSafeHwnd(), dwWndId, 0, CPoint( 792, 130 ), pWndParent );
}
void CWndChatLog::OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags)
{
}
void CWndChatLog::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
}
void CWndChatLog::OnDestroyChildWnd( CWndBase* pWndChild )
{
}
BOOL CWndChatLog::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
{
CWndBase* pWndBase = (CWndBase*) pLResult;
if( pWndBase->m_pParentWnd == &m_wndMenuPlace )
{
SetFocus();
switch( nID )
{
case 0:
{
CWndChat* pWndChat = (CWndChat*)g_WndMng.GetWndBase( APP_COMMUNICATION_CHAT );
if( pWndChat )
{
CWndButton* pWndCheck = (CWndButton*)pWndChat->GetDlgItem( WIDC_CHECK3 );
if( pWndCheck )
pWndCheck->SetCheck(FALSE);
}
SetVisible(FALSE);
}
break;
}
}
return CWndNeuz::OnChildNotify( message, nID, pLResult );
}
BOOL CWndChatLog::OnCommand( UINT nID, DWORD dwMessage, CWndBase* pWndBase )
{
return CWndNeuz::OnCommand(nID,dwMessage,pWndBase);
}
void CWndChatLog::PutString( LPCTSTR lpszString, DWORD dwColor, DWORD dwPStyle )
{
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
BOOL bLineEnd = FALSE;
if( pWndText->m_wndScrollBar.GetScrollPos() == ( pWndText->m_wndScrollBar.GetMaxScrollPos() - pWndText->m_wndScrollBar.GetScrollPage() ) )
bLineEnd = TRUE;
pWndText->AddString( lpszString, dwColor, dwPStyle );
pWndText->AddString( "\n", dwColor );// += '\n';
// ±Û ³»¿ëÀÌ 1000ÁÙÀ» ³Ñ¾î°¡¸é 500¶óÀÎÀ» À߶󳽴Ù.
if( pWndText->m_string.GetLineCount() >= 1000 )
{
pWndText->m_string.DeleteLine( 0, 500 );
pWndText->UpdateScrollBar();
}
if( bLineEnd )
pWndText->m_wndScrollBar.SetMaxScrollPos();
}
void CWndChatLog::OnDestroy()
{
}
void CWndChatLog::OnSize(UINT nType, int cx, int cy)
{
CRect rectEdit;
CRect rect = GetClientRect();
//rect.left = 60;
rect.top = 0;
rect.left = 0;
rect.right -= 0;
rect.bottom -= 0;
m_wndText.SetWndRect( rect );
m_wndText.m_wndScrollBar.SetMaxScrollPos();
CWndNeuz::OnSize(nType,cx,cy);
}
void CWndChatLog::OnLButtonUp(UINT nFlags, CPoint point)
{
}
void CWndChatLog::OnLButtonDown(UINT nFlags, CPoint point)
{
if( g_WndMng.m_pWndWorld )
{
CRect rect = GetWindowRect( TRUE );
CPoint p;
p.x = point.x + rect.left;
p.y = point.y + rect.top;
g_WndMng.m_pWndWorld->m_bLButtonDown = TRUE;
g_WndMng.m_pWndWorld->OnLButtonDown( nFlags, p );
}
}
void CWndChatLog::OnRButtonDown(UINT nFlags, CPoint point)
{
CRect rect = GetWindowRect( TRUE );
CRect menurect = m_wndMenuPlace.GetWindowRect();
rect.top += point.y;
rect.left += point.x;
m_wndMenuPlace.Move( CPoint( rect.left, rect.top ) );
m_wndMenuPlace.SetVisible( !m_wndMenuPlace.IsVisible() );
m_wndMenuPlace.SetFocus();
}
void CWndChatLog::OnRButtonUp(UINT nFlags, CPoint point)
{
}
void CWndChatLog::OnMouseMove(UINT nFlags, CPoint point)
{
}
/*
BOOL CWndChatLog::OnEraseBkgnd(C2DRender* p2DRender)
{
return TRUE;
}
*/
void CWndChatLog::AdditionalSkinTexture( LPWORD pDest, CSize size, D3DFORMAT d3dFormat )
{
CWndNeuz::AdditionalSkinTexture( pDest, size, d3dFormat );
}
void CWndChatLog::SetWndRect( CRect rectWnd, BOOL bOnSize )
{
AdjustMinRect( &rectWnd, 16 * 17, 16 * 3 );
CRect rectOld = m_rectClient;
m_rectWindow = rectWnd;
m_rectClient = m_rectWindow;
m_rectClient.DeflateRect( 4, 4, 6, 6 );
m_rectLayout = m_rectClient;
if( bOnSize && ( rectOld.Width() != m_rectClient.Width() || rectOld.Height() != m_rectClient.Height() ) )
OnSize( 0, m_rectClient.Width(), m_rectClient.Height() );
MakeVertexBuffer();
}
#endif //__Y_CHAT_SYSTEM_8
#ifdef __ITEM_LINK
CWndLinkedItem::CWndLinkedItem()
{
m_pItem = NULL;
CString strPath;
if(::GetLanguage() == LANG_FRE)
strPath = MakePath( "Theme\\", ::GetLanguage(), "Icon_Ultimate.dds");
else
strPath = MakePath( DIR_ICON, "Icon_Ultimate.dds");
m_pUltimateTexture = CWndBase::m_textureMng.AddTexture( g_Neuz.m_pd3dDevice, strPath, 0xffff00ff );
strPath = MakePath( DIR_ICON, "icon_Baruna01.dds" );
m_pBarunaTexture = CWndBase::m_textureMng.AddTexture( g_Neuz.m_pd3dDevice, strPath, 0xffff00ff );
m_pJewelBgTexture = CWndBase::m_textureMng.AddTexture( g_Neuz.m_pd3dDevice, MakePath( DIR_THEME, "WndChgElemItem.bmp"), 0xffff00ff );
}
CWndLinkedItem::~CWndLinkedItem()
{
SAFE_DELETE(m_pItem);
}
BOOL CWndLinkedItem::Initialize(CWndBase *pWndParent,DWORD dwStyle)
{
return CWndNeuz::InitDialog(g_Neuz.GetSafeHwnd(),APP_TOOLTIP_LINKEDITEM,dwStyle,CPoint(0,0),pWndParent);
}
void CWndLinkedItem::OnInitialUpdate()
{
CWndNeuz::OnInitialUpdate();
MoveParentCenter();
rectItem = GetWndCtrl(WIDC_CUSTOM1)->rect;
}
void CWndLinkedItem::OnMouseWndSurface(CPoint point)
{
/*
if(m_pItem && rectItem.PtInRect(point))
{
CRect hitrect = rectItem;
CPoint point2 = point;
ClientToScreen(&point2);
ClientToScreen(&hitrect);
g_WndMng.PutToolTip_Item(m_pItem,point2,&hitrect);
}
*/
}
void CWndLinkedItem::OnDraw(C2DRender *p2DRender)
{
if(m_pItem)
{
CMover* pMover = g_pPlayer;
m_pItem->GetTexture()->Render(p2DRender,rectItem.TopLeft(),255);
CEditString strEdit;
ItemProp* pItemProp = m_pItem->GetProp();
strEdit.SetParsingString("");
strEdit.Init( CWndBase::m_Theme.m_pFontText, &CRect( 0, 0, 240, 0 ) );
DWORD dwColorBuf = g_WndMng.PutItemName(m_pItem, &strEdit);
g_WndMng.PutItemAbilityPiercing( m_pItem, &strEdit, dwColorBuf );
if( m_pItem->GetProp() && m_pItem->GetProp()->dwFlag & IP_FLAG_EQUIP_BIND )
{
strEdit.AddString("\r\n");
if( m_pItem->IsFlag( CItemElem::binds ) )
strEdit.AddString( GETTEXT( TID_TOOLTIP_EQUIPBIND_AFTER ), GETTEXTCOLOR( TID_TOOLTIP_EQUIPBIND_AFTER ) );
else
strEdit.AddString( GETTEXT( TID_TOOLTIP_EQUIPBIND_BEFORE ), GETTEXTCOLOR( TID_TOOLTIP_EQUIPBIND_BEFORE ) );
}
g_WndMng.PutWeapon( m_pItem, &strEdit );
CString strExp;
#ifdef __MODEL_CHANGE
g_WndMng.PutSex( pMover, m_pItem, &strEdit );
switch( pItemProp->dwItemKind2 )
{
case IK2_WEAPON_DIRECT:
case IK2_WEAPON_MAGIC:
case IK2_ARMORETC:
case IK2_CLOTHETC:
case IK2_ARMOR:
case IK2_CLOTH:
case IK2_BLINKWING:
{
g_WndMng.PutItemMinMax( pMover, m_pItem, &strEdit );
g_WndMng.PutItemSpeed( m_pItem, &strEdit );
if( pItemProp->dwItemKind3 == IK3_ELECARD )
g_WndMng.PutItemResist( m_pItem, &strEdit );
else if( m_pItem->m_nResistAbilityOption && ( pItemProp->dwItemKind1 == IK1_WEAPON || pItemProp->dwItemKind1 == IK1_ARMOR ) )
g_WndMng.PutItemResist( m_pItem, &strEdit );
g_WndMng.PutBaseResist( m_pItem, &strEdit ); // ¼Ó¼º ÀúÇ×·Â
g_WndMng.PutBaseItemOpt( m_pItem, &strEdit );
g_WndMng.PutJob( pMover, m_pItem, &strEdit );
g_WndMng.PutLevel( pMover, m_pItem, &strEdit );
g_WndMng.PutCommand( m_pItem, &strEdit );
g_WndMng.PutItemGold( pMover, m_pItem, &strEdit, 0 ); // °¡°Ý
g_WndMng.PutSetItemOpt( pMover, m_pItem, &strEdit );
g_WndMng.PutPiercingOpt( m_pItem, &strEdit );
g_WndMng.PutRandomOpt( m_pItem, &strEdit );
g_WndMng.PutEnchantOpt( pMover, m_pItem, &strEdit, 0 );
break;
}
case IK2_REFRESHER:
case IK2_FOOD:
case IK2_POTION:
{
g_WndMng.PutMedicine( m_pItem, m_pItem->GetProp()->dwDestParam1, pItemProp->nAdjParamVal1, &strEdit );
g_WndMng.PutMedicine( m_pItem, m_pItem->GetProp()->dwDestParam2, pItemProp->nAdjParamVal2, &strEdit );
break;
}
case IK2_JEWELRY:
{
g_WndMng.PutBaseItemOpt( m_pItem, &strEdit );
break;
}
case IK2_SYSTEM:
{
if( pItemProp->dwItemKind3 == IK3_VIS )
{
g_WndMng.PutNeededVis( m_pItem, &strEdit );
g_WndMng.PutBaseItemOpt( m_pItem, &strEdit );
}
if( m_pItem->m_dwItemId == II_SYS_SYS_SCR_SEALCHARACTER )
{
g_WndMng.PutSealChar( m_pItem, &strEdit );
}
break;
}
case IK2_GMTEXT:
{
if( pItemProp->dwItemKind3 == IK3_TEXT_DISGUISE )
{
g_WndMng.PutDestParam( pItemProp->dwDestParam[0], pItemProp->dwDestParam[1],
pItemProp->nAdjParamVal[0], pItemProp->nAdjParamVal[1], strEdit );
if( pItemProp->dwActiveSkill != NULL_ID )
{
ItemProp *pSkillProp;
AddSkillProp* pAddSkillProp;
pMover->GetSkillProp( &pSkillProp, &pAddSkillProp, pItemProp->dwActiveSkill, 1, "CWndMgr::PutToolTip_Item" );
if( pAddSkillProp )
{
g_WndMng.PutDestParam( pAddSkillProp->dwDestParam[0], pAddSkillProp->dwDestParam[1],
pAddSkillProp->nAdjParamVal[0], pAddSkillProp->nAdjParamVal[1], strEdit );
}
}
}
break;
}
default:
{
break;
}
}
if( m_pItem->IsEatPet() )
{
if( pItemProp->dwActiveSkill != NULL_ID )
{
ItemProp *pSkillProp;
AddSkillProp* pAddSkillProp;
pMover->GetSkillProp( &pSkillProp, &pAddSkillProp, pItemProp->dwActiveSkill, 1, "CWndMgr::PutToolTip_Item" );
if( pAddSkillProp )
{
g_WndMng.PutDestParam( pAddSkillProp->dwDestParam[0], pAddSkillProp->dwDestParam[1],
pAddSkillProp->nAdjParamVal[0], pAddSkillProp->nAdjParamVal[1], strEdit );
}
}
}
if( m_pItem->IsVisPet( ) )
g_WndMng.PutVisPetInfo( m_pItem, &strEdit );
g_WndMng.PutCoolTime( pMover, m_pItem, &strEdit ); // ÄðŸÀÓ
g_WndMng.PutEndurance( m_pItem, &strEdit, 0 ); // ³»±¸·Â
g_WndMng.PutKeepTime( m_pItem, &strEdit ); // »ç¿ëÇÒ¼ö ÀÖ´Â ½Ã°£
if( pItemProp->dwItemKind3 == IK3_EGG && m_pItem->m_pPet )//&& pItemElem->m_pPet->GetLevel() != PL_EGG )
g_WndMng.PutPetInfo( m_pItem, &strEdit );
if( pItemProp->dwID == II_SYS_SYS_SCR_PET_FEED_POCKET ) //¸ÔÀÌ ÁÖ¸Ó´Ï ÅøÆÁ
g_WndMng.PutPetFeedPocket( m_pItem, &strEdit );
//g_WndMng.PutPiercingOpt( m_pItem, &strEdit );
g_WndMng.PutAwakeningBlessing( m_pItem, &strEdit );
if( (pItemProp->dwItemKind2 == IK2_WEAPON_DIRECT || pItemProp->dwItemKind2 == IK2_WEAPON_MAGIC) && m_pItem->GetProp()->dwReferStat1 == WEAPON_ULTIMATE )
g_WndMng.PutAddedOpt( m_pItem, &strEdit );
if( (pItemProp->dwItemKind2 == IK2_WEAPON_DIRECT || pItemProp->dwItemKind2 == IK2_WEAPON_MAGIC) && pItemProp->IsUltimate() )
m_pUltimateTexture->Render( p2DRender, CPoint( 10, 55) );
// else if( (pItemProp->dwItemKind2 == IK2_WEAPON_DIRECT || pItemProp->dwItemKind2 == IK2_WEAPON_MAGIC) && pItemProp->IsBaruna() )
// m_pBarunaTexture->Render( p2DRender, CPoint( 10, 55) );
m_p2DRender->TextOut_EditString(rectItem.left - 80, rectItem.bottom + 15, strEdit);
this->SetWndSize(90 + p2DRender->m_pFont->GetTextExtent(strEdit).cx, 100 + p2DRender->m_pFont->GetTextExtent(strEdit).cy);
}
}
void CWndLinkedItem::SetItem(CItemElem *pItem)
{
if( pItem && pItem->GetProp() )
this->m_pItem = pItem;
}
#endif //__MODEL_CHANGE
#endif
maybe it's a misssing brace.
|
|
|
08/27/2014, 18:51
|
#2
|
elite*gold: 0
Join Date: May 2014
Posts: 4,404
Received Thanks: 933
|
Im not a Dev but i think that you have an error on line 1644.
-->{<--- maybe this is wrong ...
|
|
|
08/27/2014, 19:03
|
#3
|
elite*gold: 0
Join Date: Jun 2013
Posts: 166
Received Thanks: 259
|
Quote:
Originally Posted by xMeher
maybe it's a misssing brace.
|
Your parents must be really proud...
Code:
#include "stdafx.h"
#include "defineText.h"
#include "AppDefine.h"
#include "WndCommand.h"
#include "party.h"
#include "WndManager.h"
#include "WndChatFilter.h"
#include "DPClient.h"
extern CDPClient g_DPlay;
#define MAX_HISTORY_STRING 20
CWndEditChat::CWndEditChat()
{
}
CWndEditChat::~CWndEditChat()
{
}
void CWndEditChat::OnLButtonDown(UINT nFlags, CPoint point)
{
CWndChat* pWndChat = (CWndChat*) m_pParentWnd;
if( pWndChat->m_pWndCommand )
pWndChat->m_pWndCommand->Destroy();
CWndEdit::OnLButtonDown( nFlags, point );
}
void CWndEditChat::OnSetFocus(CWndBase* pOldWnd)
{
if( m_string.IsEmpty() )
{
CWndChat* pWndChat = (CWndChat*) m_pParentWnd;
if( pWndChat->m_pWndCommand == NULL )
{
if( pWndChat->m_nChatChannel == CHATSTY_GENERAL )
{
}
else
if( pWndChat->m_nChatChannel == CHATSTY_WHISPER )
{
CString string;
if( pWndChat->m_strCharName.IsEmpty() )
string.Format( "/w " );
else
string.Format( "/w %s ", pWndChat->m_strCharName );
SetString( string );
}
else
if( pWndChat->m_nChatChannel == CHATSTY_SHOUT )
{
SetString( "/s " );
}
else
if( pWndChat->m_nChatChannel == CHATSTY_PARTY )
{
SetString( "/p " );
}
else
if( pWndChat->m_nChatChannel == CHATSTY_GUILD )
{
SetString( "/g " );
}
}
}
CWndEdit::OnSetFocus( pOldWnd );
}
void CWndEditChat::OnKillFocus(CWndBase* pNewWnd)
{
CWndChat* pWndChat = (CWndChat*) m_pParentWnd;
if( pWndChat->m_pWndCommand && this!= pNewWnd )
pWndChat->m_pWndCommand->Destroy();
CWndEdit::OnKillFocus( pNewWnd );
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// äÆà À©µµ
//
/////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////
CWndMacroChat::CWndMacroChat()
{
}
CWndMacroChat::~CWndMacroChat()
{
}
void CWndMacroChat::OnDraw( C2DRender* p2DRender )
{
CWndChat* pWndChat = (CWndChat*)g_WndMng.GetApplet( APP_COMMUNICATION_CHAT );
CWndEditChat* pWndEdit = &pWndChat->m_wndEdit;//GetDlgItem( WIDC_EDIT );
if( pWndEdit->m_string.IsEmpty() == FALSE )
p2DRender->RenderTexture( CPoint( 0, 0 ), &m_texMacroChat );
}
void CWndMacroChat::OnLButtonDown(UINT nFlags, CPoint point)
{
CWndChat* pWndChat = (CWndChat*)g_WndMng.GetApplet( APP_COMMUNICATION_CHAT );
CWndEditChat* pWndEdit = &pWndChat->m_wndEdit;//GetDlgItem( WIDC_EDIT );
if( pWndEdit->m_string.IsEmpty() == FALSE )
{
CWndChat* pWndChat = (CWndChat*)g_WndMng.GetApplet( APP_COMMUNICATION_CHAT );
m_GlobalShortcut.m_dwShortcut = SHORTCUT_CHAT;
m_GlobalShortcut.m_pFromWnd = this;
m_GlobalShortcut.m_pTexture = m_pTexMacro; //.m_pFromWnd = this;
m_GlobalShortcut.m_dwData = 0;
//CWndEdit* pWndEdit = (CWndEdit*)pWndChat->GetDlgItem( WIDC_EDIT );
//strcpy( m_GlobalShortcut.m_szString, pWndEdit->m_string );
CString strFormat;
strFormat = pWndEdit->m_string;
pWndEdit->m_string.GetTextFormat(strFormat);
if( pWndEdit->m_string.GetLength() >= MAX_SHORTCUT_STRING-1 )
{
memcpy( m_GlobalShortcut.m_szString, strFormat, MAX_SHORTCUT_STRING-1 );
}
else
{
strcpy( m_GlobalShortcut.m_szString, strFormat );
}
}
}
void CWndMacroChat::OnMouseMove(UINT nFlags, CPoint point)
{
}
void CWndMacroChat::OnInitialUpdate()
{
//m_ptexMacroe.LoadTexture( m_pApp->m_pd3dDevice, MakePath( DIR_ICON, "icon_MacroChat.dds" ), 0xffff00ff );
m_pTexMacro = m_textureMng.AddTexture( m_pApp->m_pd3dDevice, MakePath( DIR_ICON, "icon_MacroChat.dds" ), 0xffff00ff );//, bMyLoader );
m_texMacroChat.LoadTexture( m_pApp->m_pd3dDevice, MakePath( DIR_THEME, "wndButtMacroChat.bmp" ), 0xffff00ff );
}
CWndTextChat::CWndTextChat()
{
}
CWndTextChat::~CWndTextChat()
{
}
BOOL CWndTextChat::IsPickupSpace( CPoint point )
{
return FALSE;
}
int CWndChat::m_nChatChannel = CHATSTY_GENERAL;
CWndChat::CWndChat()
{
m_pWndCommand = NULL;
// m_timerInsMsg.Set( MIN( 1 ) );
m_timerInsMsg.Set( MIN( 2 ) ); // µµ¿ò¸» Ç¥½Ã °£°Ý Áõ°¡
#ifdef __CSC_GAME_GRADE
m_timerAlertGGrade.Set( MIN(60) );
#endif //__CSC_GAME_GRADE
m_nInsMsgCnt = 0;
m_bChatLock = FALSE;
m_bMoveLock = FALSE;
m_pWndChatFilter = NULL;
m_nHistoryIndex = 0;
#if __VER >= 8 //__CSC_VER8_1
m_bChatLog = FALSE;
#endif //__CSC_VER8_1
#ifdef __ITEM_LINK
m_pWndLinkedItem = NULL;
#endif
}
CWndChat::~CWndChat()
{
SAFE_DELETE( m_pWndCommand );
SAFE_DELETE( m_pWndChatFilter );
#ifdef __ITEM_LINK
SAFE_DELETE(m_pWndLinkedItem);
#endif
}
void CWndChat::OnDraw(C2DRender* p2DRender)
{
if( g_pPlayer == NULL )
return;
//if( timer.IsTimeOut() )
//{
// timer.Set( SEC( 10 ) );
// if( szMessage[ nMsgCnt ][0] )
// PutString( szMessage[ nMsgCnt ++ ] );
//}
if( g_Option.m_nInstantHelp )
{
CString string;
if( m_strArray.GetSize() && m_timerInsMsg.TimeOut() )
{
m_timerInsMsg.Reset();
//string = "[µµ¿ò¸»] ";
string = prj.GetText(TID_SYS_HELP);
string += " ";
string += m_strArray.GetAt( m_nInsMsgCnt );
g_WndMng.PutString( string, NULL, 0xffffff00, CHATSTY_HELP );
m_nInsMsgCnt++;
if( m_nInsMsgCnt == m_strArray.GetSize() )
m_nInsMsgCnt = 0;
}
}
#ifdef __CSC_GAME_GRADE
if(m_timerAlertGGrade.TimeOut())
{
m_timerAlertGGrade.Reset();
//PK¼*¹ö ±¸ºÐ 12¼¼ or 15¼¼
if(g_eLocal.GetState( EVE_PK ))
g_WndMng.PutString( prj.GetText(TID_SYS_ALERTGGRADE_PK), NULL, 0xffffff00, CHATSTY_HELP );
else
g_WndMng.PutString( prj.GetText(TID_SYS_ALERTGGRADE_NONPK), NULL, 0xffffff00, CHATSTY_HELP );
}
#endif //__CSC_GAME_GRADE
CWndButton* pWndRadio4 = (CWndButton*)GetDlgItem( WIDC_RADIO4 ); // party
CWndButton* pWndRadio5 = (CWndButton*)GetDlgItem( WIDC_RADIO5 ); // guild
pWndRadio4->EnableWindow( g_Party.IsMember( g_pPlayer->m_idPlayer ) );
pWndRadio5->EnableWindow( g_pPlayer->GetGuild() == NULL ? FALSE : TRUE );
if( ::GetLanguage() == LANG_KOR || ::GetLanguage() == LANG_TWN || ::GetLanguage() == LANG_HK )
{
static TCHAR text[12] = { 0 };
static wchar_t* wText = g_imeMgr.GetStringIndicator();
if( wText )
{
CWndStatic* pWndStatic = (CWndStatic*)GetDlgItem( WIDC_STATIC1 );
if( pWndStatic )
{
WideCharToMultiByteEx(g_imeMgr.m_codePage, 0, wText, wcslen(wText), text, 12, NULL, NULL);
pWndStatic->m_dwColor = D3DCOLOR_ARGB( 255, 50, 50, 220 );
if( PRIMARYLANGID(g_imeMgr.m_hkl)==LANG_KOREAN )
{
if( g_imeMgr.GetImeState() == 0 )
{
_tcscpy( text, "En" );
}
}
else
if( PRIMARYLANGID(g_imeMgr.m_hkl)==LANG_CHINESE )
{
static wchar_t wTextCh[3][3] =
{
L"\x6CE8",
L"\x65B0",
L"\x5176",
};
if( g_imeMgr.IsNewPhonetic() )
{
if( g_imeMgr.GetImeState() == 2 )
_tcscpy( text, "En" );
else
WideCharToMultiByteEx(g_imeMgr.m_codePage, 0, wTextCh[1], wcslen(wTextCh[1]), text, 12, NULL, NULL);
}
else
if( g_imeMgr.IsPhonetic() )
{
if( g_imeMgr.GetImeState() == 0 )
_tcscpy( text, "En" );
else
WideCharToMultiByteEx(g_imeMgr.m_codePage, 0, wTextCh[0], wcslen(wTextCh[0]), text, 12, NULL, NULL);
}
else
{
if( g_imeMgr.GetImeState() == 0 )
_tcscpy( text, "En" );
else
WideCharToMultiByteEx(g_imeMgr.m_codePage, 0, wTextCh[2], wcslen(wTextCh[2]), text, 12, NULL, NULL);
}
}
pWndStatic->SetTitle( text );
}
}
}
}
void CWndChat::OnInitialUpdate()
{
CWndNeuz::OnInitialUpdate();
//AddWndStyle( WBS_THICKFRAME );
m_timerDobe.Set( SEC( 5 ) );
LPWNDCTRL lpWndCtrl = GetWndCtrl( WIDC_MACRO_CHAT );
LPWNDCTRL lpWndText = GetWndCtrl( WIDC_CUSTOM1 );
m_wndMacroChat.Create( "g", WBS_NODRAWFRAME, lpWndCtrl->rect, this, WIDC_MACRO_CHAT );
m_wndMacroChat.AddWndStyle( WBS_NODRAWFRAME );
lpWndCtrl = GetWndCtrl( WIDC_EDIT );
m_wndEdit.Create( g_Neuz.GetSafeHwnd(), WBS_NODRAWFRAME, lpWndCtrl->rect, this, WIDC_EDIT );
m_wndText.Create( WBS_NOFRAME | WBS_NODRAWFRAME | WBS_VSCROLL, lpWndText->rect, this, WIDC_TEXT );
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
CWndEdit* pWndHead = (CWndEdit*)GetDlgItem( WIDC_HEAD );
CWndEdit* pWndEdit = (CWndEdit*)GetDlgItem( WIDC_EDIT );
if( g_pPlayer->IsAuthHigher( AUTH_GAMEMASTER ) )
{
pWndText->m_bEnableClipboard = TRUE;
pWndHead->m_bEnableClipboard = TRUE;
pWndEdit->m_bEnableClipboard = TRUE;
}
pWndEdit->SetNativeMode();
#if __VER >= 11 // __CSC_VER11_1
CRect rectEdit = m_wndEdit.GetWndRect();
rectEdit.left = rectEdit.left - 90;
m_wndEdit.SetWndRect( rectEdit );
CRect customRect = lpWndCtrl->rect;
CWndCustom* pCustom = (CWndCustom*)GetDlgItem(WIDC_MACRO_CHAT);
if(pCustom)
pCustom->Move(customRect.TopLeft().x - 119, customRect.TopLeft().y);
if(pWndHead)
{
pWndHead->EnableWindow(FALSE);
pWndHead->SetVisible(FALSE);
}
#endif //__CSC_VER11_1
if( g_Option.m_nInstantHelp )
{
CScript s;
s.Load( MakePath( DIR_CLIENT, "InstantHelp.inc" ) );
s.GetToken();
while( s.tok != FINISHED )
{
m_strArray.Add( s.Token );
s.GetToken();
}
}
//m_strArray.
/*
CRect rect = GetClientRect();
rect.top = rect.bottom - 20;
rect.right = 70;
rect.left += 5;
rect.DeflateRect( 1, 1 );
m_wndBeginning.Create( g_Neuz.GetSafeHwnd(), WBS_NODRAWFRAME, rect, this, 1000);
rect = GetClientRect();
rect.top = rect.bottom - 20;
rect.left = 75;
rect.right -= 134;
rect.DeflateRect( 1, 1 );
//rect.left = rect.Width() * 20 / 100;
//m_wndEdit.AddWndStyle( WBS_NODRAWFRAME );
m_wndEdit.Create( g_Neuz.GetSafeHwnd(), WBS_NODRAWFRAME, rect, this, 1001 );
*/
// m_texEdit.LoadTexture( m_pApp->m_pd3dDevice, MakePath( DIR_THEME, "WndChat2.bmp" ), 0xffff00ff, TRUE );
/*
rect = GetClientRect();
rect.top = rect.bottom - 20;
rect.left = rect.right - 134;
rect.right = r mnnnnft + 15;
rect.DeflateRect( 1, 1 );
m_wndShout.Create( " ", 0, rect, this, 1010 );
rect = GetClientRect();
rect.top = rect.bottom - 20;
rect.left = rect.right - 117;
rect.right = rect.left + 15;
rect.DeflateRect( 1, 1 );
m_wndParty.Create( " ", 0, rect, this, 1011 );
*/
/*
m_wndText.AddWndStyle( WBS_VSCROLL );
m_wndText.AddWndStyle( WBS_NOFRAME );
m_wndText.AddWndStyle( WBS_NODRAWFRAME );
m_wndText.Create( 0, rect, this, 1003 );
m_wndText.SetFont( g_Neuz.m_Theme.m_pFontChat );
m_wndText.m_string.Reset( m_pFont, &rect);
*/
/*
rect = GetClientRect();
rect.left = rect.right - 100;
//rect.bottom -= 80;
rect.DeflateRect( 1, 1 );
m_wndReceiver.AddWndStyle( WBS_VSCROLL );
m_wndReceiver.AddWndStyle( WBS_NOFRAME );
m_wndReceiver.Create( EBS_AUTOVSCROLL, rect, this, 1002 );
m_wndReceiver.AddString( "Vampyre\n" );
m_wndReceiver.AddString( "Xuzhu\n" );
m_wndReceiver.AddString( "Zodiacus\n" );
m_wndReceiver.AddString( "Jeff\n" );
m_wndReceiver.m_string.Reset( m_pFont, &rect);
*/
//CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
SetChannel();
CWndButton* pWndRadio1 = (CWndButton*)GetDlgItem( WIDC_RADIO1 );
CWndButton* pWndRadio2 = (CWndButton*)GetDlgItem( WIDC_RADIO2 );
CWndButton* pWndRadio3 = (CWndButton*)GetDlgItem( WIDC_RADIO3 );
CWndButton* pWndRadio4 = (CWndButton*)GetDlgItem( WIDC_RADIO4 );
CWndButton* pWndRadio5 = (CWndButton*)GetDlgItem( WIDC_RADIO5 );
if( m_nChatChannel == CHATSTY_GENERAL ) pWndRadio1->SetCheck( TRUE ); else
if( m_nChatChannel == CHATSTY_WHISPER ) pWndRadio2->SetCheck( TRUE ); else
if( m_nChatChannel == CHATSTY_SHOUT ) pWndRadio3->SetCheck( TRUE ); else
if( m_nChatChannel == CHATSTY_PARTY ) pWndRadio4->SetCheck( TRUE ); else
if( m_nChatChannel == CHATSTY_GUILD ) pWndRadio5->SetCheck( TRUE );
//pWndText->m_string.Init(
//pWndText->m_string = g_WndMng.m_ChatString;
pWndText->m_nLineSpace = 2;
//pWndText->m_string.Reset( m_pFont, &pWndText->GetClientRect() );
//pWndText->
/*
CRect rect = GetClientRect();
rect.bottom -= 20;
rect.right -= 0;//100;
rect.DeflateRect( 1, 1);
m_wndText.SetWndRect( rect );
*/
//LPBYTE m_wndChatEdit[3];
//CSize sizeWndChatEdit[3];
#if __VER >= 11 // __CSC_VER11_1
LoadTGA( MakePath( DIR_THEME, "WndChatEdit00_1.tga" ), &m_wndChatEdit[0] );
#else //__CSC_VER11_1
LoadTGA( MakePath( DIR_THEME, "WndChatEdit00.tga" ), &m_wndChatEdit[0] );
#endif //__CSC_VER11_1
LoadTGA( MakePath( DIR_THEME, "WndChatEdit01.tga" ), &m_wndChatEdit[1] );
#ifdef __LANG_IME_0327
LoadTGA( MakePath( "Theme\\", ::GetLanguage(), "WndChatEdit02.tga" ), &m_wndChatEdit[2] );
#else // __LANG_IME_0327
LoadTGA( MakePath( DIR_THEME, "WndChatEdit02.tga" ), &m_wndChatEdit[2] );
#endif // __LANG_IME_0327
if( m_wndChatEdit[2].lpData == NULL )
{
Error( "CWndChat::OnInitialUpdate() m_wndChatEdit[2].lpData = NULL" );
return;
}
/*
CRect rectRoot = m_pWndRoot->GetLayoutRect();
CRect rectWindow = GetWindowRect();
CPoint point( 154, rectRoot.bottom - rectWindow.Height() );
Move( point );
*/
CWndButton* pWndLock = (CWndButton*)GetDlgItem( WIDC_CHECK1 );
pWndLock->SetCheck( m_bChatLock );
CWndButton* pWndMoveLock = (CWndButton*)GetDlgItem( WIDC_MOVELOCK );
pWndMoveLock->SetCheck( m_bMoveLock );
CRect rectRoot = m_pWndRoot->GetLayoutRect();
CRect rect = GetWindowRect();
int nWidth = rect.Width();
int nHeight = rect.Height();
int x = 0;//rectRoot.left + (rectRoot.Width() / 2) - (nWidth / 2);
int y = rectRoot.bottom - nHeight;
CPoint point( x, y );
Move( point );
m_timerInputTimeOut.Set( SEC( 300 ) );
#if __VER >= 8 //__Y_CHAT_SYSTEM_8
if( g_WndMng.m_pWndChatLog == NULL )
{
g_WndMng.m_pWndChatLog = new CWndChatLog;
if( g_WndMng.m_pWndChatLog )
{
g_WndMng.m_pWndChatLog->Initialize( NULL, APP_CHAT_LOG );
CRect rectRoot = m_pWndRoot->GetLayoutRect();
CRect rect = GetWindowRect(TRUE);
CRect rect2 = g_WndMng.m_pWndChatLog->GetClientRect(TRUE);
int x = 0;
int y = rect.top;
if( (rect.right+rect2.Width()) < rectRoot.right )
x = rect.right;
else
x = (rect.left - rect2.Width() );
CPoint point( x, y );
g_WndMng.m_pWndChatLog->Move( point );
g_WndMng.m_pWndChatLog->SetVisible(FALSE);
}
}
if( g_WndMng.m_pWndChatLog )
{
CWndButton* pWndCheck3 = (CWndButton*)GetDlgItem( WIDC_CHECK3 );
if( pWndCheck3 )
pWndCheck3->SetCheck(g_WndMng.m_pWndChatLog->m_bVisible);
}
#endif //__Y_CHAT_SYSTEM_8
}
BOOL CWndChat::Process ()
{
if( m_timerInputTimeOut.IsTimeOut() )
{
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
pWndText->m_string.SetAlpha( 0 );
}
if( 0 < strlen( g_Neuz.m_szWhisperName ) )
{
LPCTSTR lpstr = m_wndEdit.GetString();
BOOL bCommand = FALSE;
if( strcmp( lpstr, "/r " ) == 0 || strcmp( lpstr, "/R " ) == 0 || ( GetLanguage() == LANG_KOR && strcmp( lpstr, "/¤¡ " ) == 0 ) )
{
CString strWhisper;
strWhisper.Format( "/whisper %s ", g_Neuz.m_szWhisperName );
m_wndEdit.SetString( strWhisper );
m_wndEdit.SetFocus();
}
}
return TRUE;
}
void CWndChat::SetChannel()
{
m_wndText.SetString( "" );
int nChannel = 0;
switch( CWndChat::m_nChatChannel )
{
case CHATSTY_GENERAL: nChannel = 0; break;
case CHATSTY_WHISPER: nChannel = 1; break;
case CHATSTY_SHOUT : nChannel = 2; break;
case CHATSTY_PARTY : nChannel = 3; break;
case CHATSTY_GUILD : nChannel = 4; break;
}
DWORD dwChatFilter = g_Option.m_dwChatFilterEtc | g_Option.m_dwChatFilter[ nChannel ];
for( int i = 0; i < g_WndMng.m_aChatString.GetSize(); i++ )
{
if( g_WndMng.m_aChatStyle.GetAt( i ) & dwChatFilter )
{
CString string = g_WndMng.m_aChatString.GetAt( i );
m_wndText.m_string.AddParsingString( string, g_WndMng.m_aChatColor.GetAt( i ), 0x00000000, 0, PS_NOT_MACRO );
m_wndText.m_string.AddString( "\n" );
}
}
m_wndText.ResetString();
m_wndText.m_wndScrollBar.SetMaxScrollPos();
}
void CWndChat::OnSetFocus(CWndBase* pOldWnd)
{
}
void CWndChat::OnKillFocus(CWndBase* pNewWnd)
{
//if( m_pWndCommand && pNewWnd != m_pWndCommand )
// m_pWndCommand->Destroy();
}
BOOL CWndChat::Initialize(CWndBase* pWndParent,DWORD dwWndId)
{
CRect rectWindow = m_pWndRoot->GetWindowRect();
CRect rect( 154, rectWindow.Height() - 100, 154 + rectWindow.Width() - 300, rectWindow.Height() );
SetTitle( GETTEXT( TID_APP_COMMUNICATION_CHAT ) );
return CWndNeuz::InitDialog( g_Neuz.GetSafeHwnd(), dwWndId, WBS_KEY| WBS_THICKFRAME, CPoint( 792, 130 ), pWndParent );
//return CWndNeuz::Create( 0|WBS_MOVE|/*WBS_DOCKABLE|*/WBS_SOUND|WBS_CAPTION|WBS_THICKFRAME|WBS_MAXIMIZEBOX, rect, &g_WndMng, dwWndId);
}
/*
"applet" TY_CLIENT 0
"to" TY_SERVER 0
"to" TY_SERVER 0
"to" TY_SERVER 0
*/
extern CDPClient g_DPlay;
void CWndChat::OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags)
{
}
void CWndChat::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
}
void CWndChat::OnDestroyChildWnd( CWndBase* pWndChild )
{
if( m_pWndCommand == pWndChild )
{
SAFE_DELETE( m_pWndCommand );
}
if( m_pWndChatFilter == pWndChild )
{
SAFE_DELETE( m_pWndChatFilter );
//ChatFilter Wnd DestroyÈÄ Focus°¡ World·Î µÇ¾îÀÖÁö ¾Ê¾Æ À̵¿Å°°¡ ¸ÔÁö ¾Ê±â ¶§¹®¿¡ SetFocusÇØÁÜ.
CWndWorld* pWndWorld = (CWndWorld*)g_WndMng.GetApplet( APP_WORLD );
if( pWndWorld )
pWndWorld->SetFocus();
}
}
void CWndChat::SerializeRegInfo( CAr& ar, DWORD& dwVersion )
{
CWndNeuz::SerializeRegInfo( ar, dwVersion );
if( ar.IsLoading() )
{
if( dwVersion == 0 )
{
}
else
{
ar >> m_bChatLock;
}
CWndButton* pWndLock = (CWndButton*)GetDlgItem( WIDC_CHECK1 );
pWndLock->SetCheck( m_bChatLock );
}
else
{
dwVersion = 1;
ar << m_bChatLock;
}
}
BOOL CWndChat::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
{
m_timerInputTimeOut.Reset();
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
if( pWndText )
pWndText->m_string.SetAlpha( 255 );
switch(nID)
{
case WIDC_CLOSE:
nID = WTBID_CLOSE;
break;
case WIDC_HELP:
nID = WTBID_HELP;
break;
case WIDC_BUTTON1:
{
if( m_pWndChatFilter == NULL )
{
m_pWndChatFilter = new CWndChatFilter;
m_pWndChatFilter->Initialize( this );
}
}
break;
case WIDC_CHECK1: // äÆà ÀÔ·Ââ Àᱸ±â
{
CWndButton* pWndCheck = (CWndButton*)GetDlgItem( WIDC_CHECK1 );
m_bChatLock = pWndCheck->GetCheck();
}
break;
#if __VER >= 8 //__Y_CHAT_SYSTEM_8
case WIDC_CHECK3: // ½Ã½ºÅ½Ã¢
{
CWndButton* pWndCheck = (CWndButton*)GetDlgItem( WIDC_CHECK3 );
BOOL bChatLog = pWndCheck->GetCheck();
#if __VER >= 8 //__CSC_VER8_1 ¸ðµç À©µµ¿ì¸¦ Áö¿ï¶§ ChatLogÀÇ À¯¹« ±¸º°À» À§ÇØ Ãß°¡.
m_bChatLog = bChatLog;
#endif //_CSC_VER8_1
if( g_WndMng.m_pWndChatLog )
{
if( bChatLog )
{
CRect rectRoot = m_pWndRoot->GetLayoutRect();
CRect rect = GetWindowRect(TRUE);
CRect rect2 = g_WndMng.m_pWndChatLog->GetClientRect(TRUE);
int x = 0;
int y = rect.top;
if( (rect.right+rect2.Width()) < rectRoot.right )
x = rect.right;
else
x = (rect.left - rect2.Width() );
CPoint point( x, y );
g_WndMng.m_pWndChatLog->Move( point );
}
g_WndMng.m_pWndChatLog->SetVisible( bChatLog );
}
}
break;
#endif //__Y_CHAT_SYSTEM_8
case WIDC_MOVELOCK: // À̵¿ Àá±×±â
{
CWndButton* pWndCheck = (CWndButton*)GetDlgItem( WIDC_MOVELOCK );
m_bMoveLock = pWndCheck->GetCheck();
DWORD dwStyle = GetWndStyle();
if( m_bMoveLock )
dwStyle &= (~WBS_MOVE);
else
dwStyle |= WBS_MOVE;
SetWndStyle( dwStyle );
}
break;
case WIDC_RADIO1:
m_nChatChannel = CHATSTY_GENERAL;
m_wndEdit.SetString( "" );
m_wndEdit.SetFocus();
SetChannel();
break;
case WIDC_RADIO2:
m_nChatChannel = CHATSTY_WHISPER;
m_wndEdit.SetString( "/w " );
m_wndEdit.SetFocus();
SetChannel();
break;
case WIDC_RADIO3:
m_nChatChannel = CHATSTY_SHOUT;
m_wndEdit.SetString( "/s " );
m_wndEdit.SetFocus();
SetChannel();
break;
case WIDC_RADIO4:
m_nChatChannel = CHATSTY_PARTY;
m_wndEdit.SetString( "/p " );
m_wndEdit.SetFocus();
SetChannel();
break;
case WIDC_RADIO5:
m_nChatChannel = CHATSTY_GUILD;
m_wndEdit.SetString( "/g " );
m_wndEdit.SetFocus();
SetChannel();
break;
case APP_COMMAND:
{
if( message == WNM_DBLCLK )
{
CString string;
m_pWndCommand->GetText( m_pWndCommand->GetCurSel(), string );
string += " ";
m_wndEdit.SetString( "/" );
m_wndEdit.AddString( string );
m_wndEdit.ResetString();
m_pWndCommand->Destroy();
}
SetFocus();
}
case WIDC_HEAD: // ¸»¸Ó¸®
if( message == EN_RETURN )
{
g_WndMng.SetFocus();
}
break;
case WIDC_EDIT: // º»¹®
if( message == EN_UP )
{
if( m_strHistory.size() == 0 )
return FALSE;
if( m_nHistoryIndex >= (int)( m_strHistory.size() ) )
{
m_strHistory.front();
m_nHistoryIndex = 0;
}
m_nHistoryIndex++;
#ifdef __ITEM_LINK
m_wndEdit.SetString(m_strHistory[m_strHistory.size()-m_nHistoryIndex]);
#else
m_wndEdit.m_string = m_strHistory[m_strHistory.size()-m_nHistoryIndex];
#endif
return TRUE;
}
if( message == EN_RETURN )
{
BOOL bFinished = TRUE;
if( m_pWndCommand )
{
CString str1, str2;
str1 = m_wndEdit.m_string.Right( m_wndEdit.m_string.GetLength() - 1 );
if( m_pWndCommand->GetCurSel() != -1 )
{
m_pWndCommand->GetText( m_pWndCommand->GetCurSel(), str2 );
if( str1 != str2 )
{
str2 += " ";
m_wndEdit.SetString( "/" );
m_wndEdit.AddString( str2 );
m_wndEdit.ResetString();
bFinished = FALSE;
}
}
m_pWndCommand->Destroy();
}
if( bFinished == TRUE )
{
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
CWndEdit* pWndHead = (CWndEdit*)GetDlgItem( WIDC_HEAD );
CString string;
if( pWndHead->m_string.IsEmpty() == FALSE &&
( pWndHead->m_string[ 0 ] == '/' ||
( m_wndEdit.m_string.IsEmpty() == FALSE && pWndHead->m_string[ 0 ] != '/' && m_wndEdit.m_string[ 0 ] != '/' ) )
)
string = pWndHead->m_string + " ";
WORD wCodePage = g_codePage;
const char* begin = m_wndEdit.m_string;
const char* end = begin + m_wndEdit.m_string.GetLength();
const char* iter = begin;
while(*iter && iter < end)
{
if(*((BYTE*)iter) >= 0x80)
{
if(wCodePage != m_wndEdit.m_string.m_awCodePage[iter-begin])
{
wCodePage = m_wndEdit.m_string.m_awCodePage[iter-begin];
char temp[16];
if(wCodePage == g_codePage)
{
wsprintf(temp, "#nl");
}
else
{
wsprintf(temp, "#l%04d", wCodePage);
}
string += temp;
}
}
const char* next = CharNextEx(iter, wCodePage);
char temp[16];
memcpy(temp, iter, next-iter);
temp[next-iter] = 0;
string += temp;
iter = next;
}
if( m_strHistory.size() >= MAX_HISTORY_STRING )
{
m_nHistoryIndex = 0;
m_strHistory.erase( m_strHistory.begin() );
}
m_strHistory.push_back(string);
int a = string.GetLength();
if( !m_wndEdit.m_string.IsEmpty() )
m_wndEdit.m_string.GetTextFormat(string);
#ifdef __ITEM_LINK
m_strHistory.push_back(string);
#endif
g_WndMng.ParsingChat( string );
CScanner scanner;
scanner.SetProg( m_wndEdit.m_string.LockBuffer() );
scanner.GetToken(); //
if( scanner.Token == "/" )
{
scanner.GetToken();
if( scanner.Token == "w" || scanner.Token == "whisper" )
{
scanner.GetToken();
m_strCharName = scanner.Token;
}
}
m_wndEdit.m_string.UnlockBuffer();
m_wndEdit.Empty();
if( m_bChatLock == FALSE )
{
if( IsWndStyle( WBS_MODAL ) == TRUE )
{
DelWndStyle( WBS_MODAL );
if( g_Neuz.pOldModalWindow )
{
g_Neuz.pOldModalWindow->SetFocus();
}
}
else
{
CWndWorld* pWndWorld = ( CWndWorld* )g_WndMng.GetApplet( APP_WORLD );
if( pWndWorld )
{
pWndWorld->SetFocus();
}
else
{
g_WndMng.SetFocus();
}
}
}
else
m_wndEdit.SetFocus();
}
}
else
if( message == EN_CHANGE )
{
if( m_wndEdit.m_string.IsEmpty() == FALSE )
{
if( m_wndEdit.m_string[ 0 ] == '/' && m_wndEdit.GetOffset() == 1 && m_pWndCommand == NULL )
{
m_pWndCommand = new CWndCommand;
m_pWndCommand->m_pWndEdit = this;
m_pWndCommand->Initialize( this );
CRect rect = m_wndEdit.GetScreenRect();
CPoint point = rect.TopLeft();
point.y -= m_pWndCommand->GetWndRect().Height();
m_pWndCommand->Move( point );
}
else
if( m_pWndCommand )
{
CString string;
string = m_wndEdit.m_string.Right( m_wndEdit.m_string.GetLength() - 1 );
// Áß°£¿¡ ½ºÆäÀ̽º°¡ ²¸ ÀÖÀ¸¸é ´Ý¾Æ¹ö¸°´Ù.
if( string.Find( ' ' ) == -1 )
m_pWndCommand->SelectString( 0, string );
else
m_pWndCommand->Destroy();
if( ::GetLanguage() == LANG_KOR )
{
if( m_wndEdit.m_string == "/¤¾ " )
{
m_wndEdit.SetString( "/g " );
}
else if( m_wndEdit.m_string == "/¤Ä " )
{
m_wndEdit.SetString( "/p " );
}
else if( m_wndEdit.m_string == "/¤¤ " )
{
m_wndEdit.SetString( "/s " );
}
#if __VER >= 11 // __CSC_VER11_1
else if( m_wndEdit.m_string == "/¤¸ " )
{
m_wndEdit.SetString( "/w " );
}
#endif //__CSC_VER11_1
}
}
}
else
if( m_pWndCommand )
m_pWndCommand->Destroy();
}
break;
case 10000: // ÃÖ¼ÒÈ*
break;
case 10001: // ÃÖ´ëÈ*
break;
case 10002: // Á¾·á
Destroy();
break;
}
//¾Æ·¡ ƯÁ¤ ¹öÆ° ´©¸¦ °æ¿ì Focus°¡ World·Î µÇ¾îÀÖÁö ¾Ê¾Æ À̵¿Å°°¡ ¸ÔÁö ¾Ê±â ¶§¹®¿¡ SetFocusÇØÁÜ.
if(nID == WIDC_CHECK1 || nID == WIDC_CHECK3 || nID == WIDC_MOVELOCK)
{
CWndWorld* pWndWorld = (CWndWorld*)g_WndMng.GetApplet( APP_WORLD );
if( pWndWorld )
pWndWorld->SetFocus();
}
return CWndNeuz::OnChildNotify( message, nID, pLResult );
}
BOOL CWndChat::OnCommand( UINT nID, DWORD dwMessage, CWndBase* pWndBase )
{
return CWndNeuz::OnCommand(nID,dwMessage,pWndBase);
}
void CWndChat::Parsing( CString string )
{
/*
MotionProp* pProp;
for( int i = 0; i < prj.m_aMotionProp.GetSize(); i++ )
{
pProp = prj.GetMotionProp( i );
if( pProp && pProp->dwRequireLv )
{
if( string.Find( pProp->szLink ) != -1 )
{
// g_pPlayer->SendActMsg( OBJMSG_MOTION, pProp->dwID );
}
}
}
*/
}
void CWndChat::PutString( LPCTSTR lpszString, DWORD dwColor, DWORD dwPStyle )
{
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
if( dwColor != 0xffffff00 )
{
m_timerInputTimeOut.Reset();
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
pWndText->m_string.SetAlpha( 255 );
}
BOOL bLineEnd = FALSE;
if( pWndText->m_wndScrollBar.GetScrollPos() == ( pWndText->m_wndScrollBar.GetMaxScrollPos() - pWndText->m_wndScrollBar.GetScrollPage() ) )
bLineEnd = TRUE;
pWndText->AddString( lpszString, dwColor, dwPStyle );
pWndText->AddString( "\n", dwColor );// += '\n';
// ±Û ³»¿ëÀÌ 1000ÁÙÀ» ³Ñ¾î°¡¸é 500¶óÀÎÀ» À߶󳽴Ù.
if( pWndText->m_string.GetLineCount() >= 1000 )
{
pWndText->m_string.DeleteLine( 0, 500 );
pWndText->UpdateScrollBar();
}
if( bLineEnd )
pWndText->m_wndScrollBar.SetMaxScrollPos();
}
void CWndChat::OnDestroy()
{
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
g_WndMng.m_ChatString = pWndText->m_string;
}
void CWndChat::SetWndRect( CRect rectWnd, BOOL bOnSize )
{
#if __VER >= 8 //__Y_CHAT_SYSTEM_8
AdjustMinRect( &rectWnd, 16 * 29, 16 * 3 );
#else // __Y_CHAT_SYSTEM_8
AdjustMinRect( &rectWnd, 16 * 26, 16 * 3 );
#endif //__Y_CHAT_SYSTEM_8
CRect rectOld = m_rectClient;
m_rectWindow = rectWnd;
m_rectClient = m_rectWindow;
m_rectClient.DeflateRect( 4, 4, 6, 6 );
m_rectLayout = m_rectClient;
if( bOnSize && ( rectOld.Width() != m_rectClient.Width() || rectOld.Height() != m_rectClient.Height() ) )
OnSize( 0, m_rectClient.Width(), m_rectClient.Height() );
MakeVertexBuffer();
}
void CWndChat::OnSize(UINT nType, int cx, int cy)
{
//#ifdef __NEWINTERFACE
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
CWndEdit* pWndHead = (CWndEdit*)GetDlgItem( WIDC_HEAD );
CWndEdit* pWndEdit = (CWndEdit*)GetDlgItem( WIDC_EDIT );
CRect rectEdit;
CRect rect = GetClientRect();
//rect.left = 60;
rect.top = 0;
rect.left = 0;
rect.right -= 0;
rect.bottom -= 39;
pWndText->SetWndRect( rect );
pWndText->m_wndScrollBar.SetMaxScrollPos();
rect = GetClientRect();
rectEdit = pWndHead->GetWndRect();
rectEdit.top = rect.bottom - 18;
rectEdit.bottom = rect.bottom;
rect.DeflateRect( 1, 1 );
pWndHead->SetWndRect( rectEdit );
rect = GetClientRect();
rectEdit = m_wndEdit.GetWndRect();
rectEdit.top = rect.bottom - 18;
rectEdit.bottom = rect.bottom;
rectEdit.right = rect.right - 20;
rect.DeflateRect( 1, 1 );
m_wndEdit.SetWndRect( rectEdit );
rect = GetClientRect();
rectEdit = m_wndMacroChat.GetWndRect();
rectEdit.top = rect.bottom - 19;
rectEdit.bottom = rect.bottom;
m_wndMacroChat.SetWndRect( rectEdit );
CWndButton* pWndRadio1 = (CWndButton*)GetDlgItem( WIDC_RADIO1 );
CWndButton* pWndRadio2 = (CWndButton*)GetDlgItem( WIDC_RADIO2 );
CWndButton* pWndRadio3 = (CWndButton*)GetDlgItem( WIDC_RADIO3 );
CWndButton* pWndRadio4 = (CWndButton*)GetDlgItem( WIDC_RADIO4 );
CWndButton* pWndRadio5 = (CWndButton*)GetDlgItem( WIDC_RADIO5 );
CWndButton* pWndCheck = (CWndButton*)GetDlgItem( WIDC_CHECK1 );
CWndButton* pWndCheck2 = (CWndButton*)GetDlgItem( WIDC_MOVELOCK );
CWndButton* pWndButton1 = (CWndButton*)GetDlgItem( WIDC_BUTTON1 );
CWndButton* pWndButton2 = (CWndButton*)GetDlgItem( WIDC_HELP );
CWndButton* pWndButton3 = (CWndButton*)GetDlgItem( WIDC_CLOSE );
#if __VER >= 8 //__Y_CHAT_SYSTEM_8
CWndButton* pWndCheck3 = (CWndButton*)GetDlgItem( WIDC_CHECK3 );
#else //__Y_CHAT_SYSTEM_8
CWndButton* pWndCheck3 = (CWndButton*)GetDlgItem( WIDC_CHECK3 );
pWndCheck3->SetVisible(FALSE);
#endif //__Y_CHAT_SYSTEM_8
rect = GetClientRect();
rectEdit = pWndRadio1->GetWndRect();
rectEdit.top = rect.bottom - 38;
rectEdit.left = 0;
pWndRadio1->Move( rectEdit.TopLeft() );
rectEdit.left = 50;
pWndRadio2->Move( rectEdit.TopLeft() );
rectEdit.left = 100;
pWndRadio3->Move( rectEdit.TopLeft() );
rectEdit.left = 150;
pWndRadio4->Move( rectEdit.TopLeft() );
rectEdit.left = 200;
pWndRadio5->Move( rectEdit.TopLeft() );
#if __VER >= 8 //__Y_CHAT_SYSTEM_8
rectEdit.left = rect.right - 200;
pWndCheck->Move( rectEdit.TopLeft() );
rectEdit.left = rect.right - 150;
pWndButton1->Move( rectEdit.TopLeft() );
rectEdit.left = rect.right - 100;
pWndCheck3->Move( rectEdit.TopLeft() );
#else //__Y_CHAT_SYSTEM_8
rectEdit.left = rect.right - 150;
pWndCheck->Move( rectEdit.TopLeft() );
rectEdit.left = rect.right - 100;
pWndButton1->Move( rectEdit.TopLeft() );
#endif //__Y_CHAT_SYSTEM_8
rectEdit.left = rect.right - 49;
CRect rectEdit2 = rectEdit;
rectEdit2.top += 1;
pWndCheck2->Move( rectEdit2.TopLeft() );
rectEdit.left = rect.right - 32;
rectEdit.top += 1;
pWndButton2->Move( rectEdit.TopLeft() );
rectEdit.left = rect.right - 15;
pWndButton3->Move( rectEdit.TopLeft() );
CWndStatic* pWndStatic = (CWndStatic*)GetDlgItem( WIDC_STATIC1 );
if( pWndStatic )
{
rectEdit.top += 20;
rectEdit.left -= 5;
pWndStatic->Move( rectEdit.TopLeft() );
}
CWndNeuz::OnSize(nType,cx,cy);
}
void CWndChat::OnLButtonUp(UINT nFlags, CPoint point)
{
if(IsWndRoot())
return;
//if(IsWndStyle(WBS_CAPTION) && m_bPickup)
{//
// m_wndTitleBar.m_wndMinimize.SetVisible(TRUE);
//m_wndTitleBar.m_wndMaximize.SetVisible(TRUE);
}
if( g_WndMng.m_pWndWorld )
{
CRect rect = GetWindowRect( TRUE );
CPoint p;
p.x = point.x + rect.left;
p.y = point.y + rect.top;
// g_WndMng.m_pWndWorld->m_bLButtonDown = TRUE;
g_WndMng.m_pWndWorld->OnLButtonUp( nFlags, p );
}
}
void CWndChat::OnLButtonDown(UINT nFlags, CPoint point)
{
if( m_pWndCommand )
m_pWndCommand->Destroy();
if( g_WndMng.m_pWndWorld )
{
CRect rect = GetWindowRect( TRUE );
CPoint p;
p.x = point.x + rect.left;
p.y = point.y + rect.top;
g_WndMng.m_pWndWorld->m_bLButtonDown = TRUE;
g_WndMng.m_pWndWorld->OnLButtonDown( nFlags, p );
}
}
void CWndChat::OnRButtonDown(UINT nFlags, CPoint point)
{
if( g_WndMng.m_pWndWorld )
{
CRect rect = GetWindowRect( TRUE );
CPoint p;
p.x = point.x + rect.left;
p.y = point.y + rect.top;
g_WndMng.m_pWndWorld->m_bRButtonDown = TRUE;
g_WndMng.m_pWndWorld->OnRButtonDown( nFlags, p );
}
int nLineCount = m_wndText.m_string.GetLineCount();
int nPos = m_wndText.IsWndStyle( WBS_VSCROLL ) ? m_wndText.m_wndScrollBar.GetScrollPos() : 0;
DWORD dwMaxHeight = m_wndText.GetFontHeight();
for( int i = nPos ; i < nLineCount ; ++i )
{
if( (int)( ((i-nPos) * dwMaxHeight) ) <= point.y && point.y < (int)( (dwMaxHeight * (i-nPos + 1)) ) )
{
CString str = m_wndText.m_string.GetLine( i );
#ifdef __ITEM_LINK
CString strTmp = str;
#endif
char szFind[MAX_NAME] = {0,};
BOOL bChat = FALSE;
// ÀÏ¹Ý Ã¤Æà °Ë»ö
int nFindName = str.Find( " :" );
if( 0 < nFindName && nFindName < MAX_NAME )
{
int nFindSpace = str.Find( ' ' );
if( nFindSpace == -1 || nFindName <= nFindSpace )
{
#ifdef __ITEM_LINK
int nExtent = m_wndText.m_pFont->GetTextExtent(str.Mid(0,nFindName)).cx;
if(point.x < nExtent)
{
#endif
strncpy( szFind, str, nFindName );
if( strcmp( szFind, g_pPlayer->GetName() ) != 0 )
bChat = TRUE;
#ifdef __ITEM_LINK
}
#endif
}
}
// ±Ó¼Ó¸» °Ë»ö
if( bChat == FALSE )
{
int nFindName1 = str.Find( "<- [" );
int nFindName2 = str.Find( "]" );
if( 0 == nFindName1 )
{
str.Replace( "<- [", "" );
}
else
{
nFindName1 = str.Find( "-> [" );
str.Replace( "-> [", "" );
}
if( 0 == nFindName1 && 0 < nFindName2 && nFindName2 - nFindName1 < MAX_NAME + 4 )
{
nFindName2 = str.Find( "]" );
strncpy( szFind, str, nFindName2 );
int nFindSpace = strspn( " ", szFind );
#ifdef __ITEM_LINK
int nFindName3 = strTmp.Find("]");
int nExtent = m_wndText.m_pFont->GetTextExtent(strTmp.Mid(0,nFindName3)).cx;
if(point.x < nExtent)
{
#endif
if( nFindSpace < 1 && strcmp( szFind, g_pPlayer->GetName() ) != 0 )
bChat = TRUE;
#ifdef __ITEM_LINK
}
#endif
}
}
// ¿ÜÄ¡±â °Ë»ö( ¾Ë¸²Àº ºüÁü )
if( bChat == FALSE )
{
int nFindName1 = str.Find( "[" );
int nFindName2 = str.Find( "]" );
if( 0 == nFindName1 && 0 < nFindName2 && nFindName2 - nFindName1 < MAX_NAME + 1 )
{
str.Replace( "[", "" );
nFindName2 = str.Find( "]" );
strncpy( szFind, str, nFindName2 );
int nFindSpace = strspn( " ", szFind );
#ifdef __ITEM_LINK
int nFindName3 = strTmp.Find("]");
int nExtent = m_wndText.m_pFont->GetTextExtent(strTmp.Mid(0,nFindName3)).cx;
if(point.x < nExtent)
{
#endif
if( nFindSpace < 1 && strcmp( szFind, g_pPlayer->GetName() ) != 0 )
bChat = TRUE;
#ifdef __ITEM_LINK
}
#endif
CString strSystem = prj.GetText(TID_ADMIN_ANNOUNCE);
strSystem.Replace( "[", "" );
int nFindSystem = strSystem.Find("]");
if( 0 < nFindSystem )
{
char szFindSystem[MAX_NAME] = {0,};
strncpy( szFindSystem, strSystem, nFindSystem );
if( strcmp( szFind, szFindSystem ) == 0 )
bChat = FALSE;
}
}
}
#ifdef __ITEM_LINK
{
if(!bChat)
{
int nFindBeg = strTmp.Find("<");
int nFindEnd = strTmp.Find(">");
while(nFindBeg != -1 || nFindEnd != -1)
{
int nExtentEnd;
int nExtentBeg;
if(nFindBeg != -1)// check line changed
nExtentBeg = m_wndText.m_pFont->GetTextExtent(strTmp.Mid(0,nFindBeg)).cx;
else
nExtentBeg = 0;
if(nFindEnd != -1) // check line changed
nExtentEnd = m_wndText.m_pFont->GetTextExtent(strTmp.Mid(nFindBeg,nFindEnd-nFindBeg)).cx+nExtentBeg;
else{
nExtentEnd = m_wndText.m_pFont->GetTextExtent(strTmp.Mid(nFindBeg,str.GetLength()-nFindBeg)).cx+nExtentBeg;
}
if(point.x > nExtentBeg && point.x < nExtentEnd) // clicked on link
{
DWORD dwLinkID = m_wndText.m_string.m_adwLinkedID.GetAt(nFindBeg+m_wndText.m_string.GetLineOffset(i));
if(dwLinkID) //check if is linked item or normal string
g_DPlay.SendGetLinkedItem(dwLinkID);
Error("%d",dwLinkID);
}
nFindBeg = strTmp.Find("<",nFindEnd);
nFindEnd = strTmp.Find(">",nFindEnd+1);
}
}
}
#endif
if( bChat )
{
CString strWhisper;
strWhisper.Format( "/whisper %s ", szFind );
m_wndEdit.SetString( strWhisper );
m_wndEdit.SetFocus();
}
break;
}
}
}
void CWndChat::OnRButtonUp(UINT nFlags, CPoint point)
{
if( g_WndMng.m_pWndWorld )
{
CRect rect = GetWindowRect( TRUE );
CPoint p;
p.x = point.x + rect.left;
p.y = point.y + rect.top;
// g_WndMng.m_pWndWorld->m_bRButtonDown = TRUE;
g_WndMng.m_pWndWorld->OnRButtonUp( nFlags, p );
}
}
void CWndChat::OnMouseMove(UINT nFlags, CPoint point)
{
if( g_WndMng.m_pWndWorld )
{
CRect rect = GetWindowRect( TRUE );
CPoint p;
p.x = point.x + rect.left;
p.y = point.y + rect.top;
// g_WndMng.m_pWndWorld->m_bRButtonDown = TRUE;
g_WndMng.m_pWndWorld->OnMouseMove( nFlags, p );
}
}
BOOL CWndChat::OnEraseBkgnd(C2DRender* p2DRender)
{
return TRUE;
}
//void CWndNeuz::PaintTexture( LPBYTE pDest, LPBYTE pSrc, CPoint pt,
// CSize sizeTexture, CSize sizeSurface )
void CWndChat::AdditionalSkinTexture( LPWORD pDest, CSize size, D3DFORMAT d3dFormat )
{
CWndNeuz::AdditionalSkinTexture( pDest, size, d3dFormat );
CRect rect = GetWindowRect();
CPoint point = CPoint( 0, rect.Height() - m_wndChatEdit[0].size.cy );
PaintTexture( pDest, &m_wndChatEdit[0], point, size );
int nWidth = ( rect.Width() - m_wndChatEdit[0].size.cx ) / m_wndChatEdit[1].size.cx;
point.x += m_wndChatEdit[0].size.cx;
for( int i = 0; i < nWidth; i++ )
{
if( i == nWidth - 2 )
PaintTexture( pDest, &m_wndChatEdit[2], point, size );
else
if( i < nWidth - 2 )
PaintTexture( pDest, &m_wndChatEdit[1], point, size );
point.x += m_wndChatEdit[1].size.cx;
}
}
#if __VER >= 8 //__Y_CHAT_SYSTEM_8
CWndChatLog::CWndChatLog()
{
}
CWndChatLog::~CWndChatLog()
{
}
/*
void CWndChatLog::OnDraw(C2DRender* p2DRender)
{
}
*/
void CWndChatLog::OnInitialUpdate()
{
CWndNeuz::OnInitialUpdate();
LPWNDCTRL lpWndText = GetWndCtrl( WIDC_CUSTOM1 );
m_wndText.Create( WBS_NOFRAME | WBS_NODRAWFRAME | WBS_VSCROLL, lpWndText->rect, this, WIDC_TEXT );
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
if( g_pPlayer->IsAuthHigher( AUTH_GAMEMASTER ) )
{
pWndText->m_bEnableClipboard = TRUE;
}
pWndText->m_nLineSpace = 2;
CRect rectRoot = m_pWndRoot->GetLayoutRect();
CRect rect = GetWindowRect();
int nWidth = rect.Width();
int nHeight = rect.Height();
int x = 0;//rectRoot.left + (rectRoot.Width() / 2) - (nWidth / 2);
int y = rectRoot.bottom - nHeight;
CPoint point( x, y );
Move( point );
m_wndMenuPlace.CreateMenu( this );
m_wndMenuPlace.AppendMenu( 0, 0 , prj.GetText(TID_GAME_GUIDE_HIDE) );
}
BOOL CWndChatLog::Process ()
{
return TRUE;
}
void CWndChatLog::OnSetFocus(CWndBase* pOldWnd)
{
}
void CWndChatLog::OnKillFocus(CWndBase* pNewWnd)
{
}
BOOL CWndChatLog::Initialize(CWndBase* pWndParent,DWORD dwWndId)
{
CRect rectWindow = m_pWndRoot->GetWindowRect();
CRect rect( 154, rectWindow.Height() - 100, 154 + rectWindow.Width() - 300, rectWindow.Height() );
SetTitle( GETTEXT( TID_APP_COMMUNICATION_CHAT ) );
return CWndNeuz::InitDialog( g_Neuz.GetSafeHwnd(), dwWndId, WBS_THICKFRAME, CPoint( 792, 130 ), pWndParent );
// return CWndNeuz::InitDialog( g_Neuz.GetSafeHwnd(), dwWndId, 0, CPoint( 792, 130 ), pWndParent );
}
void CWndChatLog::OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags)
{
}
void CWndChatLog::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
}
void CWndChatLog::OnDestroyChildWnd( CWndBase* pWndChild )
{
}
BOOL CWndChatLog::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
{
CWndBase* pWndBase = (CWndBase*) pLResult;
if( pWndBase->m_pParentWnd == &m_wndMenuPlace )
{
SetFocus();
switch( nID )
{
case 0:
{
CWndChat* pWndChat = (CWndChat*)g_WndMng.GetWndBase( APP_COMMUNICATION_CHAT );
if( pWndChat )
{
CWndButton* pWndCheck = (CWndButton*)pWndChat->GetDlgItem( WIDC_CHECK3 );
if( pWndCheck )
pWndCheck->SetCheck(FALSE);
}
SetVisible(FALSE);
}
break;
}
}
return CWndNeuz::OnChildNotify( message, nID, pLResult );
}
BOOL CWndChatLog::OnCommand( UINT nID, DWORD dwMessage, CWndBase* pWndBase )
{
return CWndNeuz::OnCommand(nID,dwMessage,pWndBase);
}
void CWndChatLog::PutString( LPCTSTR lpszString, DWORD dwColor, DWORD dwPStyle )
{
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
BOOL bLineEnd = FALSE;
if( pWndText->m_wndScrollBar.GetScrollPos() == ( pWndText->m_wndScrollBar.GetMaxScrollPos() - pWndText->m_wndScrollBar.GetScrollPage() ) )
bLineEnd = TRUE;
pWndText->AddString( lpszString, dwColor, dwPStyle );
pWndText->AddString( "\n", dwColor );// += '\n';
// ±Û ³»¿ëÀÌ 1000ÁÙÀ» ³Ñ¾î°¡¸é 500¶óÀÎÀ» À߶󳽴Ù.
if( pWndText->m_string.GetLineCount() >= 1000 )
{
pWndText->m_string.DeleteLine( 0, 500 );
pWndText->UpdateScrollBar();
}
if( bLineEnd )
pWndText->m_wndScrollBar.SetMaxScrollPos();
}
void CWndChatLog::OnDestroy()
{
}
void CWndChatLog::OnSize(UINT nType, int cx, int cy)
{
CRect rectEdit;
CRect rect = GetClientRect();
//rect.left = 60;
rect.top = 0;
rect.left = 0;
rect.right -= 0;
rect.bottom -= 0;
m_wndText.SetWndRect( rect );
m_wndText.m_wndScrollBar.SetMaxScrollPos();
CWndNeuz::OnSize(nType,cx,cy);
}
void CWndChatLog::OnLButtonUp(UINT nFlags, CPoint point)
{
}
void CWndChatLog::OnLButtonDown(UINT nFlags, CPoint point)
{
if( g_WndMng.m_pWndWorld )
{
CRect rect = GetWindowRect( TRUE );
CPoint p;
p.x = point.x + rect.left;
p.y = point.y + rect.top;
g_WndMng.m_pWndWorld->m_bLButtonDown = TRUE;
g_WndMng.m_pWndWorld->OnLButtonDown( nFlags, p );
}
}
void CWndChatLog::OnRButtonDown(UINT nFlags, CPoint point)
{
CRect rect = GetWindowRect( TRUE );
CRect menurect = m_wndMenuPlace.GetWindowRect();
rect.top += point.y;
rect.left += point.x;
m_wndMenuPlace.Move( CPoint( rect.left, rect.top ) );
m_wndMenuPlace.SetVisible( !m_wndMenuPlace.IsVisible() );
m_wndMenuPlace.SetFocus();
}
void CWndChatLog::OnRButtonUp(UINT nFlags, CPoint point)
{
}
void CWndChatLog::OnMouseMove(UINT nFlags, CPoint point)
{
}
/*
BOOL CWndChatLog::OnEraseBkgnd(C2DRender* p2DRender)
{
return TRUE;
}
*/
void CWndChatLog::AdditionalSkinTexture( LPWORD pDest, CSize size, D3DFORMAT d3dFormat )
{
CWndNeuz::AdditionalSkinTexture( pDest, size, d3dFormat );
}
void CWndChatLog::SetWndRect( CRect rectWnd, BOOL bOnSize )
{
AdjustMinRect( &rectWnd, 16 * 17, 16 * 3 );
CRect rectOld = m_rectClient;
m_rectWindow = rectWnd;
m_rectClient = m_rectWindow;
m_rectClient.DeflateRect( 4, 4, 6, 6 );
m_rectLayout = m_rectClient;
if( bOnSize && ( rectOld.Width() != m_rectClient.Width() || rectOld.Height() != m_rectClient.Height() ) )
OnSize( 0, m_rectClient.Width(), m_rectClient.Height() );
MakeVertexBuffer();
}
#endif //__Y_CHAT_SYSTEM_8
#ifdef __ITEM_LINK
CWndLinkedItem::CWndLinkedItem()
{
m_pItem = NULL;
CString strPath;
if(::GetLanguage() == LANG_FRE)
strPath = MakePath( "Theme\\", ::GetLanguage(), "Icon_Ultimate.dds");
else
strPath = MakePath( DIR_ICON, "Icon_Ultimate.dds");
m_pUltimateTexture = CWndBase::m_textureMng.AddTexture( g_Neuz.m_pd3dDevice, strPath, 0xffff00ff );
strPath = MakePath( DIR_ICON, "icon_Baruna01.dds" );
m_pBarunaTexture = CWndBase::m_textureMng.AddTexture( g_Neuz.m_pd3dDevice, strPath, 0xffff00ff );
m_pJewelBgTexture = CWndBase::m_textureMng.AddTexture( g_Neuz.m_pd3dDevice, MakePath( DIR_THEME, "WndChgElemItem.bmp"), 0xffff00ff );
}
CWndLinkedItem::~CWndLinkedItem()
{
SAFE_DELETE(m_pItem);
}
BOOL CWndLinkedItem::Initialize(CWndBase *pWndParent,DWORD dwStyle)
{
return CWndNeuz::InitDialog(g_Neuz.GetSafeHwnd(),APP_TOOLTIP_LINKEDITEM,dwStyle,CPoint(0,0),pWndParent);
}
void CWndLinkedItem::OnInitialUpdate()
{
CWndNeuz::OnInitialUpdate();
MoveParentCenter();
rectItem = GetWndCtrl(WIDC_CUSTOM1)->rect;
}
void CWndLinkedItem::OnMouseWndSurface(CPoint point)
{
/*
if(m_pItem && rectItem.PtInRect(point))
{
CRect hitrect = rectItem;
CPoint point2 = point;
ClientToScreen(&point2);
ClientToScreen(&hitrect);
g_WndMng.PutToolTip_Item(m_pItem,point2,&hitrect);
}
*/
}
void CWndLinkedItem::OnDraw(C2DRender *p2DRender)
{
if(m_pItem)
{
CMover* pMover = g_pPlayer;
m_pItem->GetTexture()->Render(p2DRender,rectItem.TopLeft(),255);
CEditString strEdit;
ItemProp* pItemProp = m_pItem->GetProp();
strEdit.SetParsingString("");
strEdit.Init( CWndBase::m_Theme.m_pFontText, &CRect( 0, 0, 240, 0 ) );
DWORD dwColorBuf = g_WndMng.PutItemName(m_pItem, &strEdit);
g_WndMng.PutItemAbilityPiercing( m_pItem, &strEdit, dwColorBuf );
if( m_pItem->GetProp() && m_pItem->GetProp()->dwFlag & IP_FLAG_EQUIP_BIND )
{
strEdit.AddString("\r\n");
if( m_pItem->IsFlag( CItemElem::binds ) )
strEdit.AddString( GETTEXT( TID_TOOLTIP_EQUIPBIND_AFTER ), GETTEXTCOLOR( TID_TOOLTIP_EQUIPBIND_AFTER ) );
else
strEdit.AddString( GETTEXT( TID_TOOLTIP_EQUIPBIND_BEFORE ), GETTEXTCOLOR( TID_TOOLTIP_EQUIPBIND_BEFORE ) );
}
g_WndMng.PutWeapon( m_pItem, &strEdit );
CString strExp;
#ifdef __MODEL_CHANGE
g_WndMng.PutSex( pMover, m_pItem, &strEdit );
switch( pItemProp->dwItemKind2 )
{
case IK2_WEAPON_DIRECT:
case IK2_WEAPON_MAGIC:
case IK2_ARMORETC:
case IK2_CLOTHETC:
case IK2_ARMOR:
case IK2_CLOTH:
case IK2_BLINKWING:
{
g_WndMng.PutItemMinMax( pMover, m_pItem, &strEdit );
g_WndMng.PutItemSpeed( m_pItem, &strEdit );
if( pItemProp->dwItemKind3 == IK3_ELECARD )
g_WndMng.PutItemResist( m_pItem, &strEdit );
else if( m_pItem->m_nResistAbilityOption && ( pItemProp->dwItemKind1 == IK1_WEAPON || pItemProp->dwItemKind1 == IK1_ARMOR ) )
g_WndMng.PutItemResist( m_pItem, &strEdit );
g_WndMng.PutBaseResist( m_pItem, &strEdit ); // ¼Ó¼º ÀúÇ×·Â
g_WndMng.PutBaseItemOpt( m_pItem, &strEdit );
g_WndMng.PutJob( pMover, m_pItem, &strEdit );
g_WndMng.PutLevel( pMover, m_pItem, &strEdit );
g_WndMng.PutCommand( m_pItem, &strEdit );
g_WndMng.PutItemGold( pMover, m_pItem, &strEdit, 0 ); // °¡°Ý
g_WndMng.PutSetItemOpt( pMover, m_pItem, &strEdit );
g_WndMng.PutPiercingOpt( m_pItem, &strEdit );
g_WndMng.PutRandomOpt( m_pItem, &strEdit );
g_WndMng.PutEnchantOpt( pMover, m_pItem, &strEdit, 0 );
break;
}
case IK2_REFRESHER:
case IK2_FOOD:
case IK2_POTION:
{
g_WndMng.PutMedicine( m_pItem, m_pItem->GetProp()->dwDestParam1, pItemProp->nAdjParamVal1, &strEdit );
g_WndMng.PutMedicine( m_pItem, m_pItem->GetProp()->dwDestParam2, pItemProp->nAdjParamVal2, &strEdit );
break;
}
case IK2_JEWELRY:
{
g_WndMng.PutBaseItemOpt( m_pItem, &strEdit );
break;
}
case IK2_SYSTEM:
{
if( pItemProp->dwItemKind3 == IK3_VIS )
{
g_WndMng.PutNeededVis( m_pItem, &strEdit );
g_WndMng.PutBaseItemOpt( m_pItem, &strEdit );
}
if( m_pItem->m_dwItemId == II_SYS_SYS_SCR_SEALCHARACTER )
{
g_WndMng.PutSealChar( m_pItem, &strEdit );
}
break;
}
case IK2_GMTEXT:
{
if( pItemProp->dwItemKind3 == IK3_TEXT_DISGUISE )
{
g_WndMng.PutDestParam( pItemProp->dwDestParam[0], pItemProp->dwDestParam[1],
pItemProp->nAdjParamVal[0], pItemProp->nAdjParamVal[1], strEdit );
if( pItemProp->dwActiveSkill != NULL_ID )
{
ItemProp *pSkillProp;
AddSkillProp* pAddSkillProp;
pMover->GetSkillProp( &pSkillProp, &pAddSkillProp, pItemProp->dwActiveSkill, 1, "CWndMgr::PutToolTip_Item" );
if( pAddSkillProp )
{
g_WndMng.PutDestParam( pAddSkillProp->dwDestParam[0], pAddSkillProp->dwDestParam[1],
pAddSkillProp->nAdjParamVal[0], pAddSkillProp->nAdjParamVal[1], strEdit );
}
}
}
}
break;
}
default:
{
break;
}
}
if( m_pItem->IsEatPet() )
{
if( pItemProp->dwActiveSkill != NULL_ID )
{
ItemProp *pSkillProp;
AddSkillProp* pAddSkillProp;
pMover->GetSkillProp( &pSkillProp, &pAddSkillProp, pItemProp->dwActiveSkill, 1, "CWndMgr::PutToolTip_Item" );
if( pAddSkillProp )
{
g_WndMng.PutDestParam( pAddSkillProp->dwDestParam[0], pAddSkillProp->dwDestParam[1],
pAddSkillProp->nAdjParamVal[0], pAddSkillProp->nAdjParamVal[1], strEdit );
}
}
}
if( m_pItem->IsVisPet( ) )
g_WndMng.PutVisPetInfo( m_pItem, &strEdit );
g_WndMng.PutCoolTime( pMover, m_pItem, &strEdit ); // ÄðŸÀÓ
g_WndMng.PutEndurance( m_pItem, &strEdit, 0 ); // ³»±¸·Â
g_WndMng.PutKeepTime( m_pItem, &strEdit ); // »ç¿ëÇÒ¼ö ÀÖ´Â ½Ã°£
if( pItemProp->dwItemKind3 == IK3_EGG && m_pItem->m_pPet )//&& pItemElem->m_pPet->GetLevel() != PL_EGG )
g_WndMng.PutPetInfo( m_pItem, &strEdit );
if( pItemProp->dwID == II_SYS_SYS_SCR_PET_FEED_POCKET ) //¸ÔÀÌ ÁÖ¸Ó´Ï ÅøÆÁ
g_WndMng.PutPetFeedPocket( m_pItem, &strEdit );
//g_WndMng.PutPiercingOpt( m_pItem, &strEdit );
g_WndMng.PutAwakeningBlessing( m_pItem, &strEdit );
if( (pItemProp->dwItemKind2 == IK2_WEAPON_DIRECT || pItemProp->dwItemKind2 == IK2_WEAPON_MAGIC) && m_pItem->GetProp()->dwReferStat1 == WEAPON_ULTIMATE )
g_WndMng.PutAddedOpt( m_pItem, &strEdit );
if( (pItemProp->dwItemKind2 == IK2_WEAPON_DIRECT || pItemProp->dwItemKind2 == IK2_WEAPON_MAGIC) && pItemProp->IsUltimate() )
m_pUltimateTexture->Render( p2DRender, CPoint( 10, 55) );
// else if( (pItemProp->dwItemKind2 == IK2_WEAPON_DIRECT || pItemProp->dwItemKind2 == IK2_WEAPON_MAGIC) && pItemProp->IsBaruna() )
// m_pBarunaTexture->Render( p2DRender, CPoint( 10, 55) );
m_p2DRender->TextOut_EditString(rectItem.left - 80, rectItem.bottom + 15, strEdit);
this->SetWndSize(90 + p2DRender->m_pFont->GetTextExtent(strEdit).cx, 100 + p2DRender->m_pFont->GetTextExtent(strEdit).cy);
}
}
void CWndLinkedItem::SetItem(CItemElem *pItem)
{
if( pItem && pItem->GetProp() )
this->m_pItem = pItem;
}
#endif //__MODEL_CHANGE
|
|
|
08/27/2014, 19:09
|
#4
|
elite*gold: 0
Join Date: Aug 2014
Posts: 113
Received Thanks: 36
|
Quote:
Originally Posted by WurstbrotQT
Your parents must be really proud...
Code:
#include "stdafx.h"
#include "defineText.h"
#include "AppDefine.h"
#include "WndCommand.h"
#include "party.h"
#include "WndManager.h"
#include "WndChatFilter.h"
#include "DPClient.h"
extern CDPClient g_DPlay;
#define MAX_HISTORY_STRING 20
CWndEditChat::CWndEditChat()
{
}
CWndEditChat::~CWndEditChat()
{
}
void CWndEditChat::OnLButtonDown(UINT nFlags, CPoint point)
{
CWndChat* pWndChat = (CWndChat*) m_pParentWnd;
if( pWndChat->m_pWndCommand )
pWndChat->m_pWndCommand->Destroy();
CWndEdit::OnLButtonDown( nFlags, point );
}
void CWndEditChat::OnSetFocus(CWndBase* pOldWnd)
{
if( m_string.IsEmpty() )
{
CWndChat* pWndChat = (CWndChat*) m_pParentWnd;
if( pWndChat->m_pWndCommand == NULL )
{
if( pWndChat->m_nChatChannel == CHATSTY_GENERAL )
{
}
else
if( pWndChat->m_nChatChannel == CHATSTY_WHISPER )
{
CString string;
if( pWndChat->m_strCharName.IsEmpty() )
string.Format( "/w " );
else
string.Format( "/w %s ", pWndChat->m_strCharName );
SetString( string );
}
else
if( pWndChat->m_nChatChannel == CHATSTY_SHOUT )
{
SetString( "/s " );
}
else
if( pWndChat->m_nChatChannel == CHATSTY_PARTY )
{
SetString( "/p " );
}
else
if( pWndChat->m_nChatChannel == CHATSTY_GUILD )
{
SetString( "/g " );
}
}
}
CWndEdit::OnSetFocus( pOldWnd );
}
void CWndEditChat::OnKillFocus(CWndBase* pNewWnd)
{
CWndChat* pWndChat = (CWndChat*) m_pParentWnd;
if( pWndChat->m_pWndCommand && this!= pNewWnd )
pWndChat->m_pWndCommand->Destroy();
CWndEdit::OnKillFocus( pNewWnd );
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// äÆà À©µµ
//
/////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////
CWndMacroChat::CWndMacroChat()
{
}
CWndMacroChat::~CWndMacroChat()
{
}
void CWndMacroChat::OnDraw( C2DRender* p2DRender )
{
CWndChat* pWndChat = (CWndChat*)g_WndMng.GetApplet( APP_COMMUNICATION_CHAT );
CWndEditChat* pWndEdit = &pWndChat->m_wndEdit;//GetDlgItem( WIDC_EDIT );
if( pWndEdit->m_string.IsEmpty() == FALSE )
p2DRender->RenderTexture( CPoint( 0, 0 ), &m_texMacroChat );
}
void CWndMacroChat::OnLButtonDown(UINT nFlags, CPoint point)
{
CWndChat* pWndChat = (CWndChat*)g_WndMng.GetApplet( APP_COMMUNICATION_CHAT );
CWndEditChat* pWndEdit = &pWndChat->m_wndEdit;//GetDlgItem( WIDC_EDIT );
if( pWndEdit->m_string.IsEmpty() == FALSE )
{
CWndChat* pWndChat = (CWndChat*)g_WndMng.GetApplet( APP_COMMUNICATION_CHAT );
m_GlobalShortcut.m_dwShortcut = SHORTCUT_CHAT;
m_GlobalShortcut.m_pFromWnd = this;
m_GlobalShortcut.m_pTexture = m_pTexMacro; //.m_pFromWnd = this;
m_GlobalShortcut.m_dwData = 0;
//CWndEdit* pWndEdit = (CWndEdit*)pWndChat->GetDlgItem( WIDC_EDIT );
//strcpy( m_GlobalShortcut.m_szString, pWndEdit->m_string );
CString strFormat;
strFormat = pWndEdit->m_string;
pWndEdit->m_string.GetTextFormat(strFormat);
if( pWndEdit->m_string.GetLength() >= MAX_SHORTCUT_STRING-1 )
{
memcpy( m_GlobalShortcut.m_szString, strFormat, MAX_SHORTCUT_STRING-1 );
}
else
{
strcpy( m_GlobalShortcut.m_szString, strFormat );
}
}
}
void CWndMacroChat::OnMouseMove(UINT nFlags, CPoint point)
{
}
void CWndMacroChat::OnInitialUpdate()
{
//m_ptexMacroe.LoadTexture( m_pApp->m_pd3dDevice, MakePath( DIR_ICON, "icon_MacroChat.dds" ), 0xffff00ff );
m_pTexMacro = m_textureMng.AddTexture( m_pApp->m_pd3dDevice, MakePath( DIR_ICON, "icon_MacroChat.dds" ), 0xffff00ff );//, bMyLoader );
m_texMacroChat.LoadTexture( m_pApp->m_pd3dDevice, MakePath( DIR_THEME, "wndButtMacroChat.bmp" ), 0xffff00ff );
}
CWndTextChat::CWndTextChat()
{
}
CWndTextChat::~CWndTextChat()
{
}
BOOL CWndTextChat::IsPickupSpace( CPoint point )
{
return FALSE;
}
int CWndChat::m_nChatChannel = CHATSTY_GENERAL;
CWndChat::CWndChat()
{
m_pWndCommand = NULL;
// m_timerInsMsg.Set( MIN( 1 ) );
m_timerInsMsg.Set( MIN( 2 ) ); // µµ¿ò¸» Ç¥½Ã °£°Ý Áõ°¡
#ifdef __CSC_GAME_GRADE
m_timerAlertGGrade.Set( MIN(60) );
#endif //__CSC_GAME_GRADE
m_nInsMsgCnt = 0;
m_bChatLock = FALSE;
m_bMoveLock = FALSE;
m_pWndChatFilter = NULL;
m_nHistoryIndex = 0;
#if __VER >= 8 //__CSC_VER8_1
m_bChatLog = FALSE;
#endif //__CSC_VER8_1
#ifdef __ITEM_LINK
m_pWndLinkedItem = NULL;
#endif
}
CWndChat::~CWndChat()
{
SAFE_DELETE( m_pWndCommand );
SAFE_DELETE( m_pWndChatFilter );
#ifdef __ITEM_LINK
SAFE_DELETE(m_pWndLinkedItem);
#endif
}
void CWndChat::OnDraw(C2DRender* p2DRender)
{
if( g_pPlayer == NULL )
return;
//if( timer.IsTimeOut() )
//{
// timer.Set( SEC( 10 ) );
// if( szMessage[ nMsgCnt ][0] )
// PutString( szMessage[ nMsgCnt ++ ] );
//}
if( g_Option.m_nInstantHelp )
{
CString string;
if( m_strArray.GetSize() && m_timerInsMsg.TimeOut() )
{
m_timerInsMsg.Reset();
//string = "[µµ¿ò¸»] ";
string = prj.GetText(TID_SYS_HELP);
string += " ";
string += m_strArray.GetAt( m_nInsMsgCnt );
g_WndMng.PutString( string, NULL, 0xffffff00, CHATSTY_HELP );
m_nInsMsgCnt++;
if( m_nInsMsgCnt == m_strArray.GetSize() )
m_nInsMsgCnt = 0;
}
}
#ifdef __CSC_GAME_GRADE
if(m_timerAlertGGrade.TimeOut())
{
m_timerAlertGGrade.Reset();
//PK¼*¹ö ±¸ºÐ 12¼¼ or 15¼¼
if(g_eLocal.GetState( EVE_PK ))
g_WndMng.PutString( prj.GetText(TID_SYS_ALERTGGRADE_PK), NULL, 0xffffff00, CHATSTY_HELP );
else
g_WndMng.PutString( prj.GetText(TID_SYS_ALERTGGRADE_NONPK), NULL, 0xffffff00, CHATSTY_HELP );
}
#endif //__CSC_GAME_GRADE
CWndButton* pWndRadio4 = (CWndButton*)GetDlgItem( WIDC_RADIO4 ); // party
CWndButton* pWndRadio5 = (CWndButton*)GetDlgItem( WIDC_RADIO5 ); // guild
pWndRadio4->EnableWindow( g_Party.IsMember( g_pPlayer->m_idPlayer ) );
pWndRadio5->EnableWindow( g_pPlayer->GetGuild() == NULL ? FALSE : TRUE );
if( ::GetLanguage() == LANG_KOR || ::GetLanguage() == LANG_TWN || ::GetLanguage() == LANG_HK )
{
static TCHAR text[12] = { 0 };
static wchar_t* wText = g_imeMgr.GetStringIndicator();
if( wText )
{
CWndStatic* pWndStatic = (CWndStatic*)GetDlgItem( WIDC_STATIC1 );
if( pWndStatic )
{
WideCharToMultiByteEx(g_imeMgr.m_codePage, 0, wText, wcslen(wText), text, 12, NULL, NULL);
pWndStatic->m_dwColor = D3DCOLOR_ARGB( 255, 50, 50, 220 );
if( PRIMARYLANGID(g_imeMgr.m_hkl)==LANG_KOREAN )
{
if( g_imeMgr.GetImeState() == 0 )
{
_tcscpy( text, "En" );
}
}
else
if( PRIMARYLANGID(g_imeMgr.m_hkl)==LANG_CHINESE )
{
static wchar_t wTextCh[3][3] =
{
L"\x6CE8",
L"\x65B0",
L"\x5176",
};
if( g_imeMgr.IsNewPhonetic() )
{
if( g_imeMgr.GetImeState() == 2 )
_tcscpy( text, "En" );
else
WideCharToMultiByteEx(g_imeMgr.m_codePage, 0, wTextCh[1], wcslen(wTextCh[1]), text, 12, NULL, NULL);
}
else
if( g_imeMgr.IsPhonetic() )
{
if( g_imeMgr.GetImeState() == 0 )
_tcscpy( text, "En" );
else
WideCharToMultiByteEx(g_imeMgr.m_codePage, 0, wTextCh[0], wcslen(wTextCh[0]), text, 12, NULL, NULL);
}
else
{
if( g_imeMgr.GetImeState() == 0 )
_tcscpy( text, "En" );
else
WideCharToMultiByteEx(g_imeMgr.m_codePage, 0, wTextCh[2], wcslen(wTextCh[2]), text, 12, NULL, NULL);
}
}
pWndStatic->SetTitle( text );
}
}
}
}
void CWndChat::OnInitialUpdate()
{
CWndNeuz::OnInitialUpdate();
//AddWndStyle( WBS_THICKFRAME );
m_timerDobe.Set( SEC( 5 ) );
LPWNDCTRL lpWndCtrl = GetWndCtrl( WIDC_MACRO_CHAT );
LPWNDCTRL lpWndText = GetWndCtrl( WIDC_CUSTOM1 );
m_wndMacroChat.Create( "g", WBS_NODRAWFRAME, lpWndCtrl->rect, this, WIDC_MACRO_CHAT );
m_wndMacroChat.AddWndStyle( WBS_NODRAWFRAME );
lpWndCtrl = GetWndCtrl( WIDC_EDIT );
m_wndEdit.Create( g_Neuz.GetSafeHwnd(), WBS_NODRAWFRAME, lpWndCtrl->rect, this, WIDC_EDIT );
m_wndText.Create( WBS_NOFRAME | WBS_NODRAWFRAME | WBS_VSCROLL, lpWndText->rect, this, WIDC_TEXT );
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
CWndEdit* pWndHead = (CWndEdit*)GetDlgItem( WIDC_HEAD );
CWndEdit* pWndEdit = (CWndEdit*)GetDlgItem( WIDC_EDIT );
if( g_pPlayer->IsAuthHigher( AUTH_GAMEMASTER ) )
{
pWndText->m_bEnableClipboard = TRUE;
pWndHead->m_bEnableClipboard = TRUE;
pWndEdit->m_bEnableClipboard = TRUE;
}
pWndEdit->SetNativeMode();
#if __VER >= 11 // __CSC_VER11_1
CRect rectEdit = m_wndEdit.GetWndRect();
rectEdit.left = rectEdit.left - 90;
m_wndEdit.SetWndRect( rectEdit );
CRect customRect = lpWndCtrl->rect;
CWndCustom* pCustom = (CWndCustom*)GetDlgItem(WIDC_MACRO_CHAT);
if(pCustom)
pCustom->Move(customRect.TopLeft().x - 119, customRect.TopLeft().y);
if(pWndHead)
{
pWndHead->EnableWindow(FALSE);
pWndHead->SetVisible(FALSE);
}
#endif //__CSC_VER11_1
if( g_Option.m_nInstantHelp )
{
CScript s;
s.Load( MakePath( DIR_CLIENT, "InstantHelp.inc" ) );
s.GetToken();
while( s.tok != FINISHED )
{
m_strArray.Add( s.Token );
s.GetToken();
}
}
//m_strArray.
/*
CRect rect = GetClientRect();
rect.top = rect.bottom - 20;
rect.right = 70;
rect.left += 5;
rect.DeflateRect( 1, 1 );
m_wndBeginning.Create( g_Neuz.GetSafeHwnd(), WBS_NODRAWFRAME, rect, this, 1000);
rect = GetClientRect();
rect.top = rect.bottom - 20;
rect.left = 75;
rect.right -= 134;
rect.DeflateRect( 1, 1 );
//rect.left = rect.Width() * 20 / 100;
//m_wndEdit.AddWndStyle( WBS_NODRAWFRAME );
m_wndEdit.Create( g_Neuz.GetSafeHwnd(), WBS_NODRAWFRAME, rect, this, 1001 );
*/
// m_texEdit.LoadTexture( m_pApp->m_pd3dDevice, MakePath( DIR_THEME, "WndChat2.bmp" ), 0xffff00ff, TRUE );
/*
rect = GetClientRect();
rect.top = rect.bottom - 20;
rect.left = rect.right - 134;
rect.right = r mnnnnft + 15;
rect.DeflateRect( 1, 1 );
m_wndShout.Create( " ", 0, rect, this, 1010 );
rect = GetClientRect();
rect.top = rect.bottom - 20;
rect.left = rect.right - 117;
rect.right = rect.left + 15;
rect.DeflateRect( 1, 1 );
m_wndParty.Create( " ", 0, rect, this, 1011 );
*/
/*
m_wndText.AddWndStyle( WBS_VSCROLL );
m_wndText.AddWndStyle( WBS_NOFRAME );
m_wndText.AddWndStyle( WBS_NODRAWFRAME );
m_wndText.Create( 0, rect, this, 1003 );
m_wndText.SetFont( g_Neuz.m_Theme.m_pFontChat );
m_wndText.m_string.Reset( m_pFont, &rect);
*/
/*
rect = GetClientRect();
rect.left = rect.right - 100;
//rect.bottom -= 80;
rect.DeflateRect( 1, 1 );
m_wndReceiver.AddWndStyle( WBS_VSCROLL );
m_wndReceiver.AddWndStyle( WBS_NOFRAME );
m_wndReceiver.Create( EBS_AUTOVSCROLL, rect, this, 1002 );
m_wndReceiver.AddString( "Vampyre\n" );
m_wndReceiver.AddString( "Xuzhu\n" );
m_wndReceiver.AddString( "Zodiacus\n" );
m_wndReceiver.AddString( "Jeff\n" );
m_wndReceiver.m_string.Reset( m_pFont, &rect);
*/
//CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
SetChannel();
CWndButton* pWndRadio1 = (CWndButton*)GetDlgItem( WIDC_RADIO1 );
CWndButton* pWndRadio2 = (CWndButton*)GetDlgItem( WIDC_RADIO2 );
CWndButton* pWndRadio3 = (CWndButton*)GetDlgItem( WIDC_RADIO3 );
CWndButton* pWndRadio4 = (CWndButton*)GetDlgItem( WIDC_RADIO4 );
CWndButton* pWndRadio5 = (CWndButton*)GetDlgItem( WIDC_RADIO5 );
if( m_nChatChannel == CHATSTY_GENERAL ) pWndRadio1->SetCheck( TRUE ); else
if( m_nChatChannel == CHATSTY_WHISPER ) pWndRadio2->SetCheck( TRUE ); else
if( m_nChatChannel == CHATSTY_SHOUT ) pWndRadio3->SetCheck( TRUE ); else
if( m_nChatChannel == CHATSTY_PARTY ) pWndRadio4->SetCheck( TRUE ); else
if( m_nChatChannel == CHATSTY_GUILD ) pWndRadio5->SetCheck( TRUE );
//pWndText->m_string.Init(
//pWndText->m_string = g_WndMng.m_ChatString;
pWndText->m_nLineSpace = 2;
//pWndText->m_string.Reset( m_pFont, &pWndText->GetClientRect() );
//pWndText->
/*
CRect rect = GetClientRect();
rect.bottom -= 20;
rect.right -= 0;//100;
rect.DeflateRect( 1, 1);
m_wndText.SetWndRect( rect );
*/
//LPBYTE m_wndChatEdit[3];
//CSize sizeWndChatEdit[3];
#if __VER >= 11 // __CSC_VER11_1
LoadTGA( MakePath( DIR_THEME, "WndChatEdit00_1.tga" ), &m_wndChatEdit[0] );
#else //__CSC_VER11_1
LoadTGA( MakePath( DIR_THEME, "WndChatEdit00.tga" ), &m_wndChatEdit[0] );
#endif //__CSC_VER11_1
LoadTGA( MakePath( DIR_THEME, "WndChatEdit01.tga" ), &m_wndChatEdit[1] );
#ifdef __LANG_IME_0327
LoadTGA( MakePath( "Theme\\", ::GetLanguage(), "WndChatEdit02.tga" ), &m_wndChatEdit[2] );
#else // __LANG_IME_0327
LoadTGA( MakePath( DIR_THEME, "WndChatEdit02.tga" ), &m_wndChatEdit[2] );
#endif // __LANG_IME_0327
if( m_wndChatEdit[2].lpData == NULL )
{
Error( "CWndChat::OnInitialUpdate() m_wndChatEdit[2].lpData = NULL" );
return;
}
/*
CRect rectRoot = m_pWndRoot->GetLayoutRect();
CRect rectWindow = GetWindowRect();
CPoint point( 154, rectRoot.bottom - rectWindow.Height() );
Move( point );
*/
CWndButton* pWndLock = (CWndButton*)GetDlgItem( WIDC_CHECK1 );
pWndLock->SetCheck( m_bChatLock );
CWndButton* pWndMoveLock = (CWndButton*)GetDlgItem( WIDC_MOVELOCK );
pWndMoveLock->SetCheck( m_bMoveLock );
CRect rectRoot = m_pWndRoot->GetLayoutRect();
CRect rect = GetWindowRect();
int nWidth = rect.Width();
int nHeight = rect.Height();
int x = 0;//rectRoot.left + (rectRoot.Width() / 2) - (nWidth / 2);
int y = rectRoot.bottom - nHeight;
CPoint point( x, y );
Move( point );
m_timerInputTimeOut.Set( SEC( 300 ) );
#if __VER >= 8 //__Y_CHAT_SYSTEM_8
if( g_WndMng.m_pWndChatLog == NULL )
{
g_WndMng.m_pWndChatLog = new CWndChatLog;
if( g_WndMng.m_pWndChatLog )
{
g_WndMng.m_pWndChatLog->Initialize( NULL, APP_CHAT_LOG );
CRect rectRoot = m_pWndRoot->GetLayoutRect();
CRect rect = GetWindowRect(TRUE);
CRect rect2 = g_WndMng.m_pWndChatLog->GetClientRect(TRUE);
int x = 0;
int y = rect.top;
if( (rect.right+rect2.Width()) < rectRoot.right )
x = rect.right;
else
x = (rect.left - rect2.Width() );
CPoint point( x, y );
g_WndMng.m_pWndChatLog->Move( point );
g_WndMng.m_pWndChatLog->SetVisible(FALSE);
}
}
if( g_WndMng.m_pWndChatLog )
{
CWndButton* pWndCheck3 = (CWndButton*)GetDlgItem( WIDC_CHECK3 );
if( pWndCheck3 )
pWndCheck3->SetCheck(g_WndMng.m_pWndChatLog->m_bVisible);
}
#endif //__Y_CHAT_SYSTEM_8
}
BOOL CWndChat::Process ()
{
if( m_timerInputTimeOut.IsTimeOut() )
{
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
pWndText->m_string.SetAlpha( 0 );
}
if( 0 < strlen( g_Neuz.m_szWhisperName ) )
{
LPCTSTR lpstr = m_wndEdit.GetString();
BOOL bCommand = FALSE;
if( strcmp( lpstr, "/r " ) == 0 || strcmp( lpstr, "/R " ) == 0 || ( GetLanguage() == LANG_KOR && strcmp( lpstr, "/¤¡ " ) == 0 ) )
{
CString strWhisper;
strWhisper.Format( "/whisper %s ", g_Neuz.m_szWhisperName );
m_wndEdit.SetString( strWhisper );
m_wndEdit.SetFocus();
}
}
return TRUE;
}
void CWndChat::SetChannel()
{
m_wndText.SetString( "" );
int nChannel = 0;
switch( CWndChat::m_nChatChannel )
{
case CHATSTY_GENERAL: nChannel = 0; break;
case CHATSTY_WHISPER: nChannel = 1; break;
case CHATSTY_SHOUT : nChannel = 2; break;
case CHATSTY_PARTY : nChannel = 3; break;
case CHATSTY_GUILD : nChannel = 4; break;
}
DWORD dwChatFilter = g_Option.m_dwChatFilterEtc | g_Option.m_dwChatFilter[ nChannel ];
for( int i = 0; i < g_WndMng.m_aChatString.GetSize(); i++ )
{
if( g_WndMng.m_aChatStyle.GetAt( i ) & dwChatFilter )
{
CString string = g_WndMng.m_aChatString.GetAt( i );
m_wndText.m_string.AddParsingString( string, g_WndMng.m_aChatColor.GetAt( i ), 0x00000000, 0, PS_NOT_MACRO );
m_wndText.m_string.AddString( "\n" );
}
}
m_wndText.ResetString();
m_wndText.m_wndScrollBar.SetMaxScrollPos();
}
void CWndChat::OnSetFocus(CWndBase* pOldWnd)
{
}
void CWndChat::OnKillFocus(CWndBase* pNewWnd)
{
//if( m_pWndCommand && pNewWnd != m_pWndCommand )
// m_pWndCommand->Destroy();
}
BOOL CWndChat::Initialize(CWndBase* pWndParent,DWORD dwWndId)
{
CRect rectWindow = m_pWndRoot->GetWindowRect();
CRect rect( 154, rectWindow.Height() - 100, 154 + rectWindow.Width() - 300, rectWindow.Height() );
SetTitle( GETTEXT( TID_APP_COMMUNICATION_CHAT ) );
return CWndNeuz::InitDialog( g_Neuz.GetSafeHwnd(), dwWndId, WBS_KEY| WBS_THICKFRAME, CPoint( 792, 130 ), pWndParent );
//return CWndNeuz::Create( 0|WBS_MOVE|/*WBS_DOCKABLE|*/WBS_SOUND|WBS_CAPTION|WBS_THICKFRAME|WBS_MAXIMIZEBOX, rect, &g_WndMng, dwWndId);
}
/*
"applet" TY_CLIENT 0
"to" TY_SERVER 0
"to" TY_SERVER 0
"to" TY_SERVER 0
*/
extern CDPClient g_DPlay;
void CWndChat::OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags)
{
}
void CWndChat::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
}
void CWndChat::OnDestroyChildWnd( CWndBase* pWndChild )
{
if( m_pWndCommand == pWndChild )
{
SAFE_DELETE( m_pWndCommand );
}
if( m_pWndChatFilter == pWndChild )
{
SAFE_DELETE( m_pWndChatFilter );
//ChatFilter Wnd DestroyÈÄ Focus°¡ World·Î µÇ¾îÀÖÁö ¾Ê¾Æ À̵¿Å°°¡ ¸ÔÁö ¾Ê±â ¶§¹®¿¡ SetFocusÇØÁÜ.
CWndWorld* pWndWorld = (CWndWorld*)g_WndMng.GetApplet( APP_WORLD );
if( pWndWorld )
pWndWorld->SetFocus();
}
}
void CWndChat::SerializeRegInfo( CAr& ar, DWORD& dwVersion )
{
CWndNeuz::SerializeRegInfo( ar, dwVersion );
if( ar.IsLoading() )
{
if( dwVersion == 0 )
{
}
else
{
ar >> m_bChatLock;
}
CWndButton* pWndLock = (CWndButton*)GetDlgItem( WIDC_CHECK1 );
pWndLock->SetCheck( m_bChatLock );
}
else
{
dwVersion = 1;
ar << m_bChatLock;
}
}
BOOL CWndChat::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
{
m_timerInputTimeOut.Reset();
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
if( pWndText )
pWndText->m_string.SetAlpha( 255 );
switch(nID)
{
case WIDC_CLOSE:
nID = WTBID_CLOSE;
break;
case WIDC_HELP:
nID = WTBID_HELP;
break;
case WIDC_BUTTON1:
{
if( m_pWndChatFilter == NULL )
{
m_pWndChatFilter = new CWndChatFilter;
m_pWndChatFilter->Initialize( this );
}
}
break;
case WIDC_CHECK1: // äÆà ÀÔ·Ââ Àᱸ±â
{
CWndButton* pWndCheck = (CWndButton*)GetDlgItem( WIDC_CHECK1 );
m_bChatLock = pWndCheck->GetCheck();
}
break;
#if __VER >= 8 //__Y_CHAT_SYSTEM_8
case WIDC_CHECK3: // ½Ã½ºÅ½Ã¢
{
CWndButton* pWndCheck = (CWndButton*)GetDlgItem( WIDC_CHECK3 );
BOOL bChatLog = pWndCheck->GetCheck();
#if __VER >= 8 //__CSC_VER8_1 ¸ðµç À©µµ¿ì¸¦ Áö¿ï¶§ ChatLogÀÇ À¯¹« ±¸º°À» À§ÇØ Ãß°¡.
m_bChatLog = bChatLog;
#endif //_CSC_VER8_1
if( g_WndMng.m_pWndChatLog )
{
if( bChatLog )
{
CRect rectRoot = m_pWndRoot->GetLayoutRect();
CRect rect = GetWindowRect(TRUE);
CRect rect2 = g_WndMng.m_pWndChatLog->GetClientRect(TRUE);
int x = 0;
int y = rect.top;
if( (rect.right+rect2.Width()) < rectRoot.right )
x = rect.right;
else
x = (rect.left - rect2.Width() );
CPoint point( x, y );
g_WndMng.m_pWndChatLog->Move( point );
}
g_WndMng.m_pWndChatLog->SetVisible( bChatLog );
}
}
break;
#endif //__Y_CHAT_SYSTEM_8
case WIDC_MOVELOCK: // À̵¿ Àá±×±â
{
CWndButton* pWndCheck = (CWndButton*)GetDlgItem( WIDC_MOVELOCK );
m_bMoveLock = pWndCheck->GetCheck();
DWORD dwStyle = GetWndStyle();
if( m_bMoveLock )
dwStyle &= (~WBS_MOVE);
else
dwStyle |= WBS_MOVE;
SetWndStyle( dwStyle );
}
break;
case WIDC_RADIO1:
m_nChatChannel = CHATSTY_GENERAL;
m_wndEdit.SetString( "" );
m_wndEdit.SetFocus();
SetChannel();
break;
case WIDC_RADIO2:
m_nChatChannel = CHATSTY_WHISPER;
m_wndEdit.SetString( "/w " );
m_wndEdit.SetFocus();
SetChannel();
break;
case WIDC_RADIO3:
m_nChatChannel = CHATSTY_SHOUT;
m_wndEdit.SetString( "/s " );
m_wndEdit.SetFocus();
SetChannel();
break;
case WIDC_RADIO4:
m_nChatChannel = CHATSTY_PARTY;
m_wndEdit.SetString( "/p " );
m_wndEdit.SetFocus();
SetChannel();
break;
case WIDC_RADIO5:
m_nChatChannel = CHATSTY_GUILD;
m_wndEdit.SetString( "/g " );
m_wndEdit.SetFocus();
SetChannel();
break;
case APP_COMMAND:
{
if( message == WNM_DBLCLK )
{
CString string;
m_pWndCommand->GetText( m_pWndCommand->GetCurSel(), string );
string += " ";
m_wndEdit.SetString( "/" );
m_wndEdit.AddString( string );
m_wndEdit.ResetString();
m_pWndCommand->Destroy();
}
SetFocus();
}
case WIDC_HEAD: // ¸»¸Ó¸®
if( message == EN_RETURN )
{
g_WndMng.SetFocus();
}
break;
case WIDC_EDIT: // º»¹®
if( message == EN_UP )
{
if( m_strHistory.size() == 0 )
return FALSE;
if( m_nHistoryIndex >= (int)( m_strHistory.size() ) )
{
m_strHistory.front();
m_nHistoryIndex = 0;
}
m_nHistoryIndex++;
#ifdef __ITEM_LINK
m_wndEdit.SetString(m_strHistory[m_strHistory.size()-m_nHistoryIndex]);
#else
m_wndEdit.m_string = m_strHistory[m_strHistory.size()-m_nHistoryIndex];
#endif
return TRUE;
}
if( message == EN_RETURN )
{
BOOL bFinished = TRUE;
if( m_pWndCommand )
{
CString str1, str2;
str1 = m_wndEdit.m_string.Right( m_wndEdit.m_string.GetLength() - 1 );
if( m_pWndCommand->GetCurSel() != -1 )
{
m_pWndCommand->GetText( m_pWndCommand->GetCurSel(), str2 );
if( str1 != str2 )
{
str2 += " ";
m_wndEdit.SetString( "/" );
m_wndEdit.AddString( str2 );
m_wndEdit.ResetString();
bFinished = FALSE;
}
}
m_pWndCommand->Destroy();
}
if( bFinished == TRUE )
{
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
CWndEdit* pWndHead = (CWndEdit*)GetDlgItem( WIDC_HEAD );
CString string;
if( pWndHead->m_string.IsEmpty() == FALSE &&
( pWndHead->m_string[ 0 ] == '/' ||
( m_wndEdit.m_string.IsEmpty() == FALSE && pWndHead->m_string[ 0 ] != '/' && m_wndEdit.m_string[ 0 ] != '/' ) )
)
string = pWndHead->m_string + " ";
WORD wCodePage = g_codePage;
const char* begin = m_wndEdit.m_string;
const char* end = begin + m_wndEdit.m_string.GetLength();
const char* iter = begin;
while(*iter && iter < end)
{
if(*((BYTE*)iter) >= 0x80)
{
if(wCodePage != m_wndEdit.m_string.m_awCodePage[iter-begin])
{
wCodePage = m_wndEdit.m_string.m_awCodePage[iter-begin];
char temp[16];
if(wCodePage == g_codePage)
{
wsprintf(temp, "#nl");
}
else
{
wsprintf(temp, "#l%04d", wCodePage);
}
string += temp;
}
}
const char* next = CharNextEx(iter, wCodePage);
char temp[16];
memcpy(temp, iter, next-iter);
temp[next-iter] = 0;
string += temp;
iter = next;
}
if( m_strHistory.size() >= MAX_HISTORY_STRING )
{
m_nHistoryIndex = 0;
m_strHistory.erase( m_strHistory.begin() );
}
m_strHistory.push_back(string);
int a = string.GetLength();
if( !m_wndEdit.m_string.IsEmpty() )
m_wndEdit.m_string.GetTextFormat(string);
#ifdef __ITEM_LINK
m_strHistory.push_back(string);
#endif
g_WndMng.ParsingChat( string );
CScanner scanner;
scanner.SetProg( m_wndEdit.m_string.LockBuffer() );
scanner.GetToken(); //
if( scanner.Token == "/" )
{
scanner.GetToken();
if( scanner.Token == "w" || scanner.Token == "whisper" )
{
scanner.GetToken();
m_strCharName = scanner.Token;
}
}
m_wndEdit.m_string.UnlockBuffer();
m_wndEdit.Empty();
if( m_bChatLock == FALSE )
{
if( IsWndStyle( WBS_MODAL ) == TRUE )
{
DelWndStyle( WBS_MODAL );
if( g_Neuz.pOldModalWindow )
{
g_Neuz.pOldModalWindow->SetFocus();
}
}
else
{
CWndWorld* pWndWorld = ( CWndWorld* )g_WndMng.GetApplet( APP_WORLD );
if( pWndWorld )
{
pWndWorld->SetFocus();
}
else
{
g_WndMng.SetFocus();
}
}
}
else
m_wndEdit.SetFocus();
}
}
else
if( message == EN_CHANGE )
{
if( m_wndEdit.m_string.IsEmpty() == FALSE )
{
if( m_wndEdit.m_string[ 0 ] == '/' && m_wndEdit.GetOffset() == 1 && m_pWndCommand == NULL )
{
m_pWndCommand = new CWndCommand;
m_pWndCommand->m_pWndEdit = this;
m_pWndCommand->Initialize( this );
CRect rect = m_wndEdit.GetScreenRect();
CPoint point = rect.TopLeft();
point.y -= m_pWndCommand->GetWndRect().Height();
m_pWndCommand->Move( point );
}
else
if( m_pWndCommand )
{
CString string;
string = m_wndEdit.m_string.Right( m_wndEdit.m_string.GetLength() - 1 );
// Áß°£¿¡ ½ºÆäÀ̽º°¡ ²¸ ÀÖÀ¸¸é ´Ý¾Æ¹ö¸°´Ù.
if( string.Find( ' ' ) == -1 )
m_pWndCommand->SelectString( 0, string );
else
m_pWndCommand->Destroy();
if( ::GetLanguage() == LANG_KOR )
{
if( m_wndEdit.m_string == "/¤¾ " )
{
m_wndEdit.SetString( "/g " );
}
else if( m_wndEdit.m_string == "/¤Ä " )
{
m_wndEdit.SetString( "/p " );
}
else if( m_wndEdit.m_string == "/¤¤ " )
{
m_wndEdit.SetString( "/s " );
}
#if __VER >= 11 // __CSC_VER11_1
else if( m_wndEdit.m_string == "/¤¸ " )
{
m_wndEdit.SetString( "/w " );
}
#endif //__CSC_VER11_1
}
}
}
else
if( m_pWndCommand )
m_pWndCommand->Destroy();
}
break;
case 10000: // ÃÖ¼ÒÈ*
break;
case 10001: // ÃÖ´ëÈ*
break;
case 10002: // Á¾·á
Destroy();
break;
}
//¾Æ·¡ ƯÁ¤ ¹öÆ° ´©¸¦ °æ¿ì Focus°¡ World·Î µÇ¾îÀÖÁö ¾Ê¾Æ À̵¿Å°°¡ ¸ÔÁö ¾Ê±â ¶§¹®¿¡ SetFocusÇØÁÜ.
if(nID == WIDC_CHECK1 || nID == WIDC_CHECK3 || nID == WIDC_MOVELOCK)
{
CWndWorld* pWndWorld = (CWndWorld*)g_WndMng.GetApplet( APP_WORLD );
if( pWndWorld )
pWndWorld->SetFocus();
}
return CWndNeuz::OnChildNotify( message, nID, pLResult );
}
BOOL CWndChat::OnCommand( UINT nID, DWORD dwMessage, CWndBase* pWndBase )
{
return CWndNeuz::OnCommand(nID,dwMessage,pWndBase);
}
void CWndChat::Parsing( CString string )
{
/*
MotionProp* pProp;
for( int i = 0; i < prj.m_aMotionProp.GetSize(); i++ )
{
pProp = prj.GetMotionProp( i );
if( pProp && pProp->dwRequireLv )
{
if( string.Find( pProp->szLink ) != -1 )
{
// g_pPlayer->SendActMsg( OBJMSG_MOTION, pProp->dwID );
}
}
}
*/
}
void CWndChat::PutString( LPCTSTR lpszString, DWORD dwColor, DWORD dwPStyle )
{
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
if( dwColor != 0xffffff00 )
{
m_timerInputTimeOut.Reset();
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
pWndText->m_string.SetAlpha( 255 );
}
BOOL bLineEnd = FALSE;
if( pWndText->m_wndScrollBar.GetScrollPos() == ( pWndText->m_wndScrollBar.GetMaxScrollPos() - pWndText->m_wndScrollBar.GetScrollPage() ) )
bLineEnd = TRUE;
pWndText->AddString( lpszString, dwColor, dwPStyle );
pWndText->AddString( "\n", dwColor );// += '\n';
// ±Û ³»¿ëÀÌ 1000ÁÙÀ» ³Ñ¾î°¡¸é 500¶óÀÎÀ» À߶󳽴Ù.
if( pWndText->m_string.GetLineCount() >= 1000 )
{
pWndText->m_string.DeleteLine( 0, 500 );
pWndText->UpdateScrollBar();
}
if( bLineEnd )
pWndText->m_wndScrollBar.SetMaxScrollPos();
}
void CWndChat::OnDestroy()
{
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
g_WndMng.m_ChatString = pWndText->m_string;
}
void CWndChat::SetWndRect( CRect rectWnd, BOOL bOnSize )
{
#if __VER >= 8 //__Y_CHAT_SYSTEM_8
AdjustMinRect( &rectWnd, 16 * 29, 16 * 3 );
#else // __Y_CHAT_SYSTEM_8
AdjustMinRect( &rectWnd, 16 * 26, 16 * 3 );
#endif //__Y_CHAT_SYSTEM_8
CRect rectOld = m_rectClient;
m_rectWindow = rectWnd;
m_rectClient = m_rectWindow;
m_rectClient.DeflateRect( 4, 4, 6, 6 );
m_rectLayout = m_rectClient;
if( bOnSize && ( rectOld.Width() != m_rectClient.Width() || rectOld.Height() != m_rectClient.Height() ) )
OnSize( 0, m_rectClient.Width(), m_rectClient.Height() );
MakeVertexBuffer();
}
void CWndChat::OnSize(UINT nType, int cx, int cy)
{
//#ifdef __NEWINTERFACE
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
CWndEdit* pWndHead = (CWndEdit*)GetDlgItem( WIDC_HEAD );
CWndEdit* pWndEdit = (CWndEdit*)GetDlgItem( WIDC_EDIT );
CRect rectEdit;
CRect rect = GetClientRect();
//rect.left = 60;
rect.top = 0;
rect.left = 0;
rect.right -= 0;
rect.bottom -= 39;
pWndText->SetWndRect( rect );
pWndText->m_wndScrollBar.SetMaxScrollPos();
rect = GetClientRect();
rectEdit = pWndHead->GetWndRect();
rectEdit.top = rect.bottom - 18;
rectEdit.bottom = rect.bottom;
rect.DeflateRect( 1, 1 );
pWndHead->SetWndRect( rectEdit );
rect = GetClientRect();
rectEdit = m_wndEdit.GetWndRect();
rectEdit.top = rect.bottom - 18;
rectEdit.bottom = rect.bottom;
rectEdit.right = rect.right - 20;
rect.DeflateRect( 1, 1 );
m_wndEdit.SetWndRect( rectEdit );
rect = GetClientRect();
rectEdit = m_wndMacroChat.GetWndRect();
rectEdit.top = rect.bottom - 19;
rectEdit.bottom = rect.bottom;
m_wndMacroChat.SetWndRect( rectEdit );
CWndButton* pWndRadio1 = (CWndButton*)GetDlgItem( WIDC_RADIO1 );
CWndButton* pWndRadio2 = (CWndButton*)GetDlgItem( WIDC_RADIO2 );
CWndButton* pWndRadio3 = (CWndButton*)GetDlgItem( WIDC_RADIO3 );
CWndButton* pWndRadio4 = (CWndButton*)GetDlgItem( WIDC_RADIO4 );
CWndButton* pWndRadio5 = (CWndButton*)GetDlgItem( WIDC_RADIO5 );
CWndButton* pWndCheck = (CWndButton*)GetDlgItem( WIDC_CHECK1 );
CWndButton* pWndCheck2 = (CWndButton*)GetDlgItem( WIDC_MOVELOCK );
CWndButton* pWndButton1 = (CWndButton*)GetDlgItem( WIDC_BUTTON1 );
CWndButton* pWndButton2 = (CWndButton*)GetDlgItem( WIDC_HELP );
CWndButton* pWndButton3 = (CWndButton*)GetDlgItem( WIDC_CLOSE );
#if __VER >= 8 //__Y_CHAT_SYSTEM_8
CWndButton* pWndCheck3 = (CWndButton*)GetDlgItem( WIDC_CHECK3 );
#else //__Y_CHAT_SYSTEM_8
CWndButton* pWndCheck3 = (CWndButton*)GetDlgItem( WIDC_CHECK3 );
pWndCheck3->SetVisible(FALSE);
#endif //__Y_CHAT_SYSTEM_8
rect = GetClientRect();
rectEdit = pWndRadio1->GetWndRect();
rectEdit.top = rect.bottom - 38;
rectEdit.left = 0;
pWndRadio1->Move( rectEdit.TopLeft() );
rectEdit.left = 50;
pWndRadio2->Move( rectEdit.TopLeft() );
rectEdit.left = 100;
pWndRadio3->Move( rectEdit.TopLeft() );
rectEdit.left = 150;
pWndRadio4->Move( rectEdit.TopLeft() );
rectEdit.left = 200;
pWndRadio5->Move( rectEdit.TopLeft() );
#if __VER >= 8 //__Y_CHAT_SYSTEM_8
rectEdit.left = rect.right - 200;
pWndCheck->Move( rectEdit.TopLeft() );
rectEdit.left = rect.right - 150;
pWndButton1->Move( rectEdit.TopLeft() );
rectEdit.left = rect.right - 100;
pWndCheck3->Move( rectEdit.TopLeft() );
#else //__Y_CHAT_SYSTEM_8
rectEdit.left = rect.right - 150;
pWndCheck->Move( rectEdit.TopLeft() );
rectEdit.left = rect.right - 100;
pWndButton1->Move( rectEdit.TopLeft() );
#endif //__Y_CHAT_SYSTEM_8
rectEdit.left = rect.right - 49;
CRect rectEdit2 = rectEdit;
rectEdit2.top += 1;
pWndCheck2->Move( rectEdit2.TopLeft() );
rectEdit.left = rect.right - 32;
rectEdit.top += 1;
pWndButton2->Move( rectEdit.TopLeft() );
rectEdit.left = rect.right - 15;
pWndButton3->Move( rectEdit.TopLeft() );
CWndStatic* pWndStatic = (CWndStatic*)GetDlgItem( WIDC_STATIC1 );
if( pWndStatic )
{
rectEdit.top += 20;
rectEdit.left -= 5;
pWndStatic->Move( rectEdit.TopLeft() );
}
CWndNeuz::OnSize(nType,cx,cy);
}
void CWndChat::OnLButtonUp(UINT nFlags, CPoint point)
{
if(IsWndRoot())
return;
//if(IsWndStyle(WBS_CAPTION) && m_bPickup)
{//
// m_wndTitleBar.m_wndMinimize.SetVisible(TRUE);
//m_wndTitleBar.m_wndMaximize.SetVisible(TRUE);
}
if( g_WndMng.m_pWndWorld )
{
CRect rect = GetWindowRect( TRUE );
CPoint p;
p.x = point.x + rect.left;
p.y = point.y + rect.top;
// g_WndMng.m_pWndWorld->m_bLButtonDown = TRUE;
g_WndMng.m_pWndWorld->OnLButtonUp( nFlags, p );
}
}
void CWndChat::OnLButtonDown(UINT nFlags, CPoint point)
{
if( m_pWndCommand )
m_pWndCommand->Destroy();
if( g_WndMng.m_pWndWorld )
{
CRect rect = GetWindowRect( TRUE );
CPoint p;
p.x = point.x + rect.left;
p.y = point.y + rect.top;
g_WndMng.m_pWndWorld->m_bLButtonDown = TRUE;
g_WndMng.m_pWndWorld->OnLButtonDown( nFlags, p );
}
}
void CWndChat::OnRButtonDown(UINT nFlags, CPoint point)
{
if( g_WndMng.m_pWndWorld )
{
CRect rect = GetWindowRect( TRUE );
CPoint p;
p.x = point.x + rect.left;
p.y = point.y + rect.top;
g_WndMng.m_pWndWorld->m_bRButtonDown = TRUE;
g_WndMng.m_pWndWorld->OnRButtonDown( nFlags, p );
}
int nLineCount = m_wndText.m_string.GetLineCount();
int nPos = m_wndText.IsWndStyle( WBS_VSCROLL ) ? m_wndText.m_wndScrollBar.GetScrollPos() : 0;
DWORD dwMaxHeight = m_wndText.GetFontHeight();
for( int i = nPos ; i < nLineCount ; ++i )
{
if( (int)( ((i-nPos) * dwMaxHeight) ) <= point.y && point.y < (int)( (dwMaxHeight * (i-nPos + 1)) ) )
{
CString str = m_wndText.m_string.GetLine( i );
#ifdef __ITEM_LINK
CString strTmp = str;
#endif
char szFind[MAX_NAME] = {0,};
BOOL bChat = FALSE;
// ÀÏ¹Ý Ã¤Æà °Ë»ö
int nFindName = str.Find( " :" );
if( 0 < nFindName && nFindName < MAX_NAME )
{
int nFindSpace = str.Find( ' ' );
if( nFindSpace == -1 || nFindName <= nFindSpace )
{
#ifdef __ITEM_LINK
int nExtent = m_wndText.m_pFont->GetTextExtent(str.Mid(0,nFindName)).cx;
if(point.x < nExtent)
{
#endif
strncpy( szFind, str, nFindName );
if( strcmp( szFind, g_pPlayer->GetName() ) != 0 )
bChat = TRUE;
#ifdef __ITEM_LINK
}
#endif
}
}
// ±Ó¼Ó¸» °Ë»ö
if( bChat == FALSE )
{
int nFindName1 = str.Find( "<- [" );
int nFindName2 = str.Find( "]" );
if( 0 == nFindName1 )
{
str.Replace( "<- [", "" );
}
else
{
nFindName1 = str.Find( "-> [" );
str.Replace( "-> [", "" );
}
if( 0 == nFindName1 && 0 < nFindName2 && nFindName2 - nFindName1 < MAX_NAME + 4 )
{
nFindName2 = str.Find( "]" );
strncpy( szFind, str, nFindName2 );
int nFindSpace = strspn( " ", szFind );
#ifdef __ITEM_LINK
int nFindName3 = strTmp.Find("]");
int nExtent = m_wndText.m_pFont->GetTextExtent(strTmp.Mid(0,nFindName3)).cx;
if(point.x < nExtent)
{
#endif
if( nFindSpace < 1 && strcmp( szFind, g_pPlayer->GetName() ) != 0 )
bChat = TRUE;
#ifdef __ITEM_LINK
}
#endif
}
}
// ¿ÜÄ¡±â °Ë»ö( ¾Ë¸²Àº ºüÁü )
if( bChat == FALSE )
{
int nFindName1 = str.Find( "[" );
int nFindName2 = str.Find( "]" );
if( 0 == nFindName1 && 0 < nFindName2 && nFindName2 - nFindName1 < MAX_NAME + 1 )
{
str.Replace( "[", "" );
nFindName2 = str.Find( "]" );
strncpy( szFind, str, nFindName2 );
int nFindSpace = strspn( " ", szFind );
#ifdef __ITEM_LINK
int nFindName3 = strTmp.Find("]");
int nExtent = m_wndText.m_pFont->GetTextExtent(strTmp.Mid(0,nFindName3)).cx;
if(point.x < nExtent)
{
#endif
if( nFindSpace < 1 && strcmp( szFind, g_pPlayer->GetName() ) != 0 )
bChat = TRUE;
#ifdef __ITEM_LINK
}
#endif
CString strSystem = prj.GetText(TID_ADMIN_ANNOUNCE);
strSystem.Replace( "[", "" );
int nFindSystem = strSystem.Find("]");
if( 0 < nFindSystem )
{
char szFindSystem[MAX_NAME] = {0,};
strncpy( szFindSystem, strSystem, nFindSystem );
if( strcmp( szFind, szFindSystem ) == 0 )
bChat = FALSE;
}
}
}
#ifdef __ITEM_LINK
{
if(!bChat)
{
int nFindBeg = strTmp.Find("<");
int nFindEnd = strTmp.Find(">");
while(nFindBeg != -1 || nFindEnd != -1)
{
int nExtentEnd;
int nExtentBeg;
if(nFindBeg != -1)// check line changed
nExtentBeg = m_wndText.m_pFont->GetTextExtent(strTmp.Mid(0,nFindBeg)).cx;
else
nExtentBeg = 0;
if(nFindEnd != -1) // check line changed
nExtentEnd = m_wndText.m_pFont->GetTextExtent(strTmp.Mid(nFindBeg,nFindEnd-nFindBeg)).cx+nExtentBeg;
else{
nExtentEnd = m_wndText.m_pFont->GetTextExtent(strTmp.Mid(nFindBeg,str.GetLength()-nFindBeg)).cx+nExtentBeg;
}
if(point.x > nExtentBeg && point.x < nExtentEnd) // clicked on link
{
DWORD dwLinkID = m_wndText.m_string.m_adwLinkedID.GetAt(nFindBeg+m_wndText.m_string.GetLineOffset(i));
if(dwLinkID) //check if is linked item or normal string
g_DPlay.SendGetLinkedItem(dwLinkID);
Error("%d",dwLinkID);
}
nFindBeg = strTmp.Find("<",nFindEnd);
nFindEnd = strTmp.Find(">",nFindEnd+1);
}
}
}
#endif
if( bChat )
{
CString strWhisper;
strWhisper.Format( "/whisper %s ", szFind );
m_wndEdit.SetString( strWhisper );
m_wndEdit.SetFocus();
}
break;
}
}
}
void CWndChat::OnRButtonUp(UINT nFlags, CPoint point)
{
if( g_WndMng.m_pWndWorld )
{
CRect rect = GetWindowRect( TRUE );
CPoint p;
p.x = point.x + rect.left;
p.y = point.y + rect.top;
// g_WndMng.m_pWndWorld->m_bRButtonDown = TRUE;
g_WndMng.m_pWndWorld->OnRButtonUp( nFlags, p );
}
}
void CWndChat::OnMouseMove(UINT nFlags, CPoint point)
{
if( g_WndMng.m_pWndWorld )
{
CRect rect = GetWindowRect( TRUE );
CPoint p;
p.x = point.x + rect.left;
p.y = point.y + rect.top;
// g_WndMng.m_pWndWorld->m_bRButtonDown = TRUE;
g_WndMng.m_pWndWorld->OnMouseMove( nFlags, p );
}
}
BOOL CWndChat::OnEraseBkgnd(C2DRender* p2DRender)
{
return TRUE;
}
//void CWndNeuz::PaintTexture( LPBYTE pDest, LPBYTE pSrc, CPoint pt,
// CSize sizeTexture, CSize sizeSurface )
void CWndChat::AdditionalSkinTexture( LPWORD pDest, CSize size, D3DFORMAT d3dFormat )
{
CWndNeuz::AdditionalSkinTexture( pDest, size, d3dFormat );
CRect rect = GetWindowRect();
CPoint point = CPoint( 0, rect.Height() - m_wndChatEdit[0].size.cy );
PaintTexture( pDest, &m_wndChatEdit[0], point, size );
int nWidth = ( rect.Width() - m_wndChatEdit[0].size.cx ) / m_wndChatEdit[1].size.cx;
point.x += m_wndChatEdit[0].size.cx;
for( int i = 0; i < nWidth; i++ )
{
if( i == nWidth - 2 )
PaintTexture( pDest, &m_wndChatEdit[2], point, size );
else
if( i < nWidth - 2 )
PaintTexture( pDest, &m_wndChatEdit[1], point, size );
point.x += m_wndChatEdit[1].size.cx;
}
}
#if __VER >= 8 //__Y_CHAT_SYSTEM_8
CWndChatLog::CWndChatLog()
{
}
CWndChatLog::~CWndChatLog()
{
}
/*
void CWndChatLog::OnDraw(C2DRender* p2DRender)
{
}
*/
void CWndChatLog::OnInitialUpdate()
{
CWndNeuz::OnInitialUpdate();
LPWNDCTRL lpWndText = GetWndCtrl( WIDC_CUSTOM1 );
m_wndText.Create( WBS_NOFRAME | WBS_NODRAWFRAME | WBS_VSCROLL, lpWndText->rect, this, WIDC_TEXT );
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
if( g_pPlayer->IsAuthHigher( AUTH_GAMEMASTER ) )
{
pWndText->m_bEnableClipboard = TRUE;
}
pWndText->m_nLineSpace = 2;
CRect rectRoot = m_pWndRoot->GetLayoutRect();
CRect rect = GetWindowRect();
int nWidth = rect.Width();
int nHeight = rect.Height();
int x = 0;//rectRoot.left + (rectRoot.Width() / 2) - (nWidth / 2);
int y = rectRoot.bottom - nHeight;
CPoint point( x, y );
Move( point );
m_wndMenuPlace.CreateMenu( this );
m_wndMenuPlace.AppendMenu( 0, 0 , prj.GetText(TID_GAME_GUIDE_HIDE) );
}
BOOL CWndChatLog::Process ()
{
return TRUE;
}
void CWndChatLog::OnSetFocus(CWndBase* pOldWnd)
{
}
void CWndChatLog::OnKillFocus(CWndBase* pNewWnd)
{
}
BOOL CWndChatLog::Initialize(CWndBase* pWndParent,DWORD dwWndId)
{
CRect rectWindow = m_pWndRoot->GetWindowRect();
CRect rect( 154, rectWindow.Height() - 100, 154 + rectWindow.Width() - 300, rectWindow.Height() );
SetTitle( GETTEXT( TID_APP_COMMUNICATION_CHAT ) );
return CWndNeuz::InitDialog( g_Neuz.GetSafeHwnd(), dwWndId, WBS_THICKFRAME, CPoint( 792, 130 ), pWndParent );
// return CWndNeuz::InitDialog( g_Neuz.GetSafeHwnd(), dwWndId, 0, CPoint( 792, 130 ), pWndParent );
}
void CWndChatLog::OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags)
{
}
void CWndChatLog::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
}
void CWndChatLog::OnDestroyChildWnd( CWndBase* pWndChild )
{
}
BOOL CWndChatLog::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
{
CWndBase* pWndBase = (CWndBase*) pLResult;
if( pWndBase->m_pParentWnd == &m_wndMenuPlace )
{
SetFocus();
switch( nID )
{
case 0:
{
CWndChat* pWndChat = (CWndChat*)g_WndMng.GetWndBase( APP_COMMUNICATION_CHAT );
if( pWndChat )
{
CWndButton* pWndCheck = (CWndButton*)pWndChat->GetDlgItem( WIDC_CHECK3 );
if( pWndCheck )
pWndCheck->SetCheck(FALSE);
}
SetVisible(FALSE);
}
break;
}
}
return CWndNeuz::OnChildNotify( message, nID, pLResult );
}
BOOL CWndChatLog::OnCommand( UINT nID, DWORD dwMessage, CWndBase* pWndBase )
{
return CWndNeuz::OnCommand(nID,dwMessage,pWndBase);
}
void CWndChatLog::PutString( LPCTSTR lpszString, DWORD dwColor, DWORD dwPStyle )
{
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
BOOL bLineEnd = FALSE;
if( pWndText->m_wndScrollBar.GetScrollPos() == ( pWndText->m_wndScrollBar.GetMaxScrollPos() - pWndText->m_wndScrollBar.GetScrollPage() ) )
bLineEnd = TRUE;
pWndText->AddString( lpszString, dwColor, dwPStyle );
pWndText->AddString( "\n", dwColor );// += '\n';
// ±Û ³»¿ëÀÌ 1000ÁÙÀ» ³Ñ¾î°¡¸é 500¶óÀÎÀ» À߶󳽴Ù.
if( pWndText->m_string.GetLineCount() >= 1000 )
{
pWndText->m_string.DeleteLine( 0, 500 );
pWndText->UpdateScrollBar();
}
if( bLineEnd )
pWndText->m_wndScrollBar.SetMaxScrollPos();
}
void CWndChatLog::OnDestroy()
{
}
void CWndChatLog::OnSize(UINT nType, int cx, int cy)
{
CRect rectEdit;
CRect rect = GetClientRect();
//rect.left = 60;
rect.top = 0;
rect.left = 0;
rect.right -= 0;
rect.bottom -= 0;
m_wndText.SetWndRect( rect );
m_wndText.m_wndScrollBar.SetMaxScrollPos();
CWndNeuz::OnSize(nType,cx,cy);
}
void CWndChatLog::OnLButtonUp(UINT nFlags, CPoint point)
{
}
void CWndChatLog::OnLButtonDown(UINT nFlags, CPoint point)
{
if( g_WndMng.m_pWndWorld )
{
CRect rect = GetWindowRect( TRUE );
CPoint p;
p.x = point.x + rect.left;
p.y = point.y + rect.top;
g_WndMng.m_pWndWorld->m_bLButtonDown = TRUE;
g_WndMng.m_pWndWorld->OnLButtonDown( nFlags, p );
}
}
void CWndChatLog::OnRButtonDown(UINT nFlags, CPoint point)
{
CRect rect = GetWindowRect( TRUE );
CRect menurect = m_wndMenuPlace.GetWindowRect();
rect.top += point.y;
rect.left += point.x;
m_wndMenuPlace.Move( CPoint( rect.left, rect.top ) );
m_wndMenuPlace.SetVisible( !m_wndMenuPlace.IsVisible() );
m_wndMenuPlace.SetFocus();
}
void CWndChatLog::OnRButtonUp(UINT nFlags, CPoint point)
{
}
void CWndChatLog::OnMouseMove(UINT nFlags, CPoint point)
{
}
/*
BOOL CWndChatLog::OnEraseBkgnd(C2DRender* p2DRender)
{
return TRUE;
}
*/
void CWndChatLog::AdditionalSkinTexture( LPWORD pDest, CSize size, D3DFORMAT d3dFormat )
{
CWndNeuz::AdditionalSkinTexture( pDest, size, d3dFormat );
}
void CWndChatLog::SetWndRect( CRect rectWnd, BOOL bOnSize )
{
AdjustMinRect( &rectWnd, 16 * 17, 16 * 3 );
CRect rectOld = m_rectClient;
m_rectWindow = rectWnd;
m_rectClient = m_rectWindow;
m_rectClient.DeflateRect( 4, 4, 6, 6 );
m_rectLayout = m_rectClient;
if( bOnSize && ( rectOld.Width() != m_rectClient.Width() || rectOld.Height() != m_rectClient.Height() ) )
OnSize( 0, m_rectClient.Width(), m_rectClient.Height() );
MakeVertexBuffer();
}
#endif //__Y_CHAT_SYSTEM_8
#ifdef __ITEM_LINK
CWndLinkedItem::CWndLinkedItem()
{
m_pItem = NULL;
CString strPath;
if(::GetLanguage() == LANG_FRE)
strPath = MakePath( "Theme\\", ::GetLanguage(), "Icon_Ultimate.dds");
else
strPath = MakePath( DIR_ICON, "Icon_Ultimate.dds");
m_pUltimateTexture = CWndBase::m_textureMng.AddTexture( g_Neuz.m_pd3dDevice, strPath, 0xffff00ff );
strPath = MakePath( DIR_ICON, "icon_Baruna01.dds" );
m_pBarunaTexture = CWndBase::m_textureMng.AddTexture( g_Neuz.m_pd3dDevice, strPath, 0xffff00ff );
m_pJewelBgTexture = CWndBase::m_textureMng.AddTexture( g_Neuz.m_pd3dDevice, MakePath( DIR_THEME, "WndChgElemItem.bmp"), 0xffff00ff );
}
CWndLinkedItem::~CWndLinkedItem()
{
SAFE_DELETE(m_pItem);
}
BOOL CWndLinkedItem::Initialize(CWndBase *pWndParent,DWORD dwStyle)
{
return CWndNeuz::InitDialog(g_Neuz.GetSafeHwnd(),APP_TOOLTIP_LINKEDITEM,dwStyle,CPoint(0,0),pWndParent);
}
void CWndLinkedItem::OnInitialUpdate()
{
CWndNeuz::OnInitialUpdate();
MoveParentCenter();
rectItem = GetWndCtrl(WIDC_CUSTOM1)->rect;
}
void CWndLinkedItem::OnMouseWndSurface(CPoint point)
{
/*
if(m_pItem && rectItem.PtInRect(point))
{
CRect hitrect = rectItem;
CPoint point2 = point;
ClientToScreen(&point2);
ClientToScreen(&hitrect);
g_WndMng.PutToolTip_Item(m_pItem,point2,&hitrect);
}
*/
}
void CWndLinkedItem::OnDraw(C2DRender *p2DRender)
{
if(m_pItem)
{
CMover* pMover = g_pPlayer;
m_pItem->GetTexture()->Render(p2DRender,rectItem.TopLeft(),255);
CEditString strEdit;
ItemProp* pItemProp = m_pItem->GetProp();
strEdit.SetParsingString("");
strEdit.Init( CWndBase::m_Theme.m_pFontText, &CRect( 0, 0, 240, 0 ) );
DWORD dwColorBuf = g_WndMng.PutItemName(m_pItem, &strEdit);
g_WndMng.PutItemAbilityPiercing( m_pItem, &strEdit, dwColorBuf );
if( m_pItem->GetProp() && m_pItem->GetProp()->dwFlag & IP_FLAG_EQUIP_BIND )
{
strEdit.AddString("\r\n");
if( m_pItem->IsFlag( CItemElem::binds ) )
strEdit.AddString( GETTEXT( TID_TOOLTIP_EQUIPBIND_AFTER ), GETTEXTCOLOR( TID_TOOLTIP_EQUIPBIND_AFTER ) );
else
strEdit.AddString( GETTEXT( TID_TOOLTIP_EQUIPBIND_BEFORE ), GETTEXTCOLOR( TID_TOOLTIP_EQUIPBIND_BEFORE ) );
}
g_WndMng.PutWeapon( m_pItem, &strEdit );
CString strExp;
#ifdef __MODEL_CHANGE
g_WndMng.PutSex( pMover, m_pItem, &strEdit );
switch( pItemProp->dwItemKind2 )
{
case IK2_WEAPON_DIRECT:
case IK2_WEAPON_MAGIC:
case IK2_ARMORETC:
case IK2_CLOTHETC:
case IK2_ARMOR:
case IK2_CLOTH:
case IK2_BLINKWING:
{
g_WndMng.PutItemMinMax( pMover, m_pItem, &strEdit );
g_WndMng.PutItemSpeed( m_pItem, &strEdit );
if( pItemProp->dwItemKind3 == IK3_ELECARD )
g_WndMng.PutItemResist( m_pItem, &strEdit );
else if( m_pItem->m_nResistAbilityOption && ( pItemProp->dwItemKind1 == IK1_WEAPON || pItemProp->dwItemKind1 == IK1_ARMOR ) )
g_WndMng.PutItemResist( m_pItem, &strEdit );
g_WndMng.PutBaseResist( m_pItem, &strEdit ); // ¼Ó¼º ÀúÇ×·Â
g_WndMng.PutBaseItemOpt( m_pItem, &strEdit );
g_WndMng.PutJob( pMover, m_pItem, &strEdit );
g_WndMng.PutLevel( pMover, m_pItem, &strEdit );
g_WndMng.PutCommand( m_pItem, &strEdit );
g_WndMng.PutItemGold( pMover, m_pItem, &strEdit, 0 ); // °¡°Ý
g_WndMng.PutSetItemOpt( pMover, m_pItem, &strEdit );
g_WndMng.PutPiercingOpt( m_pItem, &strEdit );
g_WndMng.PutRandomOpt( m_pItem, &strEdit );
g_WndMng.PutEnchantOpt( pMover, m_pItem, &strEdit, 0 );
break;
}
case IK2_REFRESHER:
case IK2_FOOD:
case IK2_POTION:
{
g_WndMng.PutMedicine( m_pItem, m_pItem->GetProp()->dwDestParam1, pItemProp->nAdjParamVal1, &strEdit );
g_WndMng.PutMedicine( m_pItem, m_pItem->GetProp()->dwDestParam2, pItemProp->nAdjParamVal2, &strEdit );
break;
}
case IK2_JEWELRY:
{
g_WndMng.PutBaseItemOpt( m_pItem, &strEdit );
break;
}
case IK2_SYSTEM:
{
if( pItemProp->dwItemKind3 == IK3_VIS )
{
g_WndMng.PutNeededVis( m_pItem, &strEdit );
g_WndMng.PutBaseItemOpt( m_pItem, &strEdit );
}
if( m_pItem->m_dwItemId == II_SYS_SYS_SCR_SEALCHARACTER )
{
g_WndMng.PutSealChar( m_pItem, &strEdit );
}
break;
}
case IK2_GMTEXT:
{
if( pItemProp->dwItemKind3 == IK3_TEXT_DISGUISE )
{
g_WndMng.PutDestParam( pItemProp->dwDestParam[0], pItemProp->dwDestParam[1],
pItemProp->nAdjParamVal[0], pItemProp->nAdjParamVal[1], strEdit );
if( pItemProp->dwActiveSkill != NULL_ID )
{
ItemProp *pSkillProp;
AddSkillProp* pAddSkillProp;
pMover->GetSkillProp( &pSkillProp, &pAddSkillProp, pItemProp->dwActiveSkill, 1, "CWndMgr::PutToolTip_Item" );
if( pAddSkillProp )
{
g_WndMng.PutDestParam( pAddSkillProp->dwDestParam[0], pAddSkillProp->dwDestParam[1],
pAddSkillProp->nAdjParamVal[0], pAddSkillProp->nAdjParamVal[1], strEdit );
}
}
}
}
break;
}
default:
{
break;
}
}
if( m_pItem->IsEatPet() )
{
if( pItemProp->dwActiveSkill != NULL_ID )
{
ItemProp *pSkillProp;
AddSkillProp* pAddSkillProp;
pMover->GetSkillProp( &pSkillProp, &pAddSkillProp, pItemProp->dwActiveSkill, 1, "CWndMgr::PutToolTip_Item" );
if( pAddSkillProp )
{
g_WndMng.PutDestParam( pAddSkillProp->dwDestParam[0], pAddSkillProp->dwDestParam[1],
pAddSkillProp->nAdjParamVal[0], pAddSkillProp->nAdjParamVal[1], strEdit );
}
}
}
if( m_pItem->IsVisPet( ) )
g_WndMng.PutVisPetInfo( m_pItem, &strEdit );
g_WndMng.PutCoolTime( pMover, m_pItem, &strEdit ); // ÄðŸÀÓ
g_WndMng.PutEndurance( m_pItem, &strEdit, 0 ); // ³»±¸·Â
g_WndMng.PutKeepTime( m_pItem, &strEdit ); // »ç¿ëÇÒ¼ö ÀÖ´Â ½Ã°£
if( pItemProp->dwItemKind3 == IK3_EGG && m_pItem->m_pPet )//&& pItemElem->m_pPet->GetLevel() != PL_EGG )
g_WndMng.PutPetInfo( m_pItem, &strEdit );
if( pItemProp->dwID == II_SYS_SYS_SCR_PET_FEED_POCKET ) //¸ÔÀÌ ÁÖ¸Ó´Ï ÅøÆÁ
g_WndMng.PutPetFeedPocket( m_pItem, &strEdit );
//g_WndMng.PutPiercingOpt( m_pItem, &strEdit );
g_WndMng.PutAwakeningBlessing( m_pItem, &strEdit );
if( (pItemProp->dwItemKind2 == IK2_WEAPON_DIRECT || pItemProp->dwItemKind2 == IK2_WEAPON_MAGIC) && m_pItem->GetProp()->dwReferStat1 == WEAPON_ULTIMATE )
g_WndMng.PutAddedOpt( m_pItem, &strEdit );
if( (pItemProp->dwItemKind2 == IK2_WEAPON_DIRECT || pItemProp->dwItemKind2 == IK2_WEAPON_MAGIC) && pItemProp->IsUltimate() )
m_pUltimateTexture->Render( p2DRender, CPoint( 10, 55) );
// else if( (pItemProp->dwItemKind2 == IK2_WEAPON_DIRECT || pItemProp->dwItemKind2 == IK2_WEAPON_MAGIC) && pItemProp->IsBaruna() )
// m_pBarunaTexture->Render( p2DRender, CPoint( 10, 55) );
m_p2DRender->TextOut_EditString(rectItem.left - 80, rectItem.bottom + 15, strEdit);
this->SetWndSize(90 + p2DRender->m_pFont->GetTextExtent(strEdit).cx, 100 + p2DRender->m_pFont->GetTextExtent(strEdit).cy);
}
}
void CWndLinkedItem::SetItem(CItemElem *pItem)
{
if( pItem && pItem->GetProp() )
this->m_pItem = pItem;
}
#endif //__MODEL_CHANGE
|
Thanks , thats what i did in the beginning but i removed it because of this error
Code:
1>..\_Interface\WndCommunication.cpp(1813): fatal error C1070: mismatched #if/#endif pair in file 'c:\users\meher\desktop\v15\official source\official source\_interface\wndcommunication.cpp'
|
|
|
08/27/2014, 21:52
|
#5
|
elite*gold: 0
Join Date: Nov 2010
Posts: 119
Received Thanks: 35
|
Quote:
Originally Posted by WurstbrotQT
Your parents must be really proud...
Code:
#include "stdafx.h"
#include "defineText.h"
#include "AppDefine.h"
#include "WndCommand.h"
#include "party.h"
#include "WndManager.h"
#include "WndChatFilter.h"
#include "DPClient.h"
extern CDPClient g_DPlay;
#define MAX_HISTORY_STRING 20
CWndEditChat::CWndEditChat()
{
}
CWndEditChat::~CWndEditChat()
{
}
void CWndEditChat::OnLButtonDown(UINT nFlags, CPoint point)
{
CWndChat* pWndChat = (CWndChat*) m_pParentWnd;
if( pWndChat->m_pWndCommand )
pWndChat->m_pWndCommand->Destroy();
CWndEdit::OnLButtonDown( nFlags, point );
}
void CWndEditChat::OnSetFocus(CWndBase* pOldWnd)
{
if( m_string.IsEmpty() )
{
CWndChat* pWndChat = (CWndChat*) m_pParentWnd;
if( pWndChat->m_pWndCommand == NULL )
{
if( pWndChat->m_nChatChannel == CHATSTY_GENERAL )
{
}
else
if( pWndChat->m_nChatChannel == CHATSTY_WHISPER )
{
CString string;
if( pWndChat->m_strCharName.IsEmpty() )
string.Format( "/w " );
else
string.Format( "/w %s ", pWndChat->m_strCharName );
SetString( string );
}
else
if( pWndChat->m_nChatChannel == CHATSTY_SHOUT )
{
SetString( "/s " );
}
else
if( pWndChat->m_nChatChannel == CHATSTY_PARTY )
{
SetString( "/p " );
}
else
if( pWndChat->m_nChatChannel == CHATSTY_GUILD )
{
SetString( "/g " );
}
}
}
CWndEdit::OnSetFocus( pOldWnd );
}
void CWndEditChat::OnKillFocus(CWndBase* pNewWnd)
{
CWndChat* pWndChat = (CWndChat*) m_pParentWnd;
if( pWndChat->m_pWndCommand && this!= pNewWnd )
pWndChat->m_pWndCommand->Destroy();
CWndEdit::OnKillFocus( pNewWnd );
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// äÆà À©µµ
//
/////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////
CWndMacroChat::CWndMacroChat()
{
}
CWndMacroChat::~CWndMacroChat()
{
}
void CWndMacroChat::OnDraw( C2DRender* p2DRender )
{
CWndChat* pWndChat = (CWndChat*)g_WndMng.GetApplet( APP_COMMUNICATION_CHAT );
CWndEditChat* pWndEdit = &pWndChat->m_wndEdit;//GetDlgItem( WIDC_EDIT );
if( pWndEdit->m_string.IsEmpty() == FALSE )
p2DRender->RenderTexture( CPoint( 0, 0 ), &m_texMacroChat );
}
void CWndMacroChat::OnLButtonDown(UINT nFlags, CPoint point)
{
CWndChat* pWndChat = (CWndChat*)g_WndMng.GetApplet( APP_COMMUNICATION_CHAT );
CWndEditChat* pWndEdit = &pWndChat->m_wndEdit;//GetDlgItem( WIDC_EDIT );
if( pWndEdit->m_string.IsEmpty() == FALSE )
{
CWndChat* pWndChat = (CWndChat*)g_WndMng.GetApplet( APP_COMMUNICATION_CHAT );
m_GlobalShortcut.m_dwShortcut = SHORTCUT_CHAT;
m_GlobalShortcut.m_pFromWnd = this;
m_GlobalShortcut.m_pTexture = m_pTexMacro; //.m_pFromWnd = this;
m_GlobalShortcut.m_dwData = 0;
//CWndEdit* pWndEdit = (CWndEdit*)pWndChat->GetDlgItem( WIDC_EDIT );
//strcpy( m_GlobalShortcut.m_szString, pWndEdit->m_string );
CString strFormat;
strFormat = pWndEdit->m_string;
pWndEdit->m_string.GetTextFormat(strFormat);
if( pWndEdit->m_string.GetLength() >= MAX_SHORTCUT_STRING-1 )
{
memcpy( m_GlobalShortcut.m_szString, strFormat, MAX_SHORTCUT_STRING-1 );
}
else
{
strcpy( m_GlobalShortcut.m_szString, strFormat );
}
}
}
void CWndMacroChat::OnMouseMove(UINT nFlags, CPoint point)
{
}
void CWndMacroChat::OnInitialUpdate()
{
//m_ptexMacroe.LoadTexture( m_pApp->m_pd3dDevice, MakePath( DIR_ICON, "icon_MacroChat.dds" ), 0xffff00ff );
m_pTexMacro = m_textureMng.AddTexture( m_pApp->m_pd3dDevice, MakePath( DIR_ICON, "icon_MacroChat.dds" ), 0xffff00ff );//, bMyLoader );
m_texMacroChat.LoadTexture( m_pApp->m_pd3dDevice, MakePath( DIR_THEME, "wndButtMacroChat.bmp" ), 0xffff00ff );
}
CWndTextChat::CWndTextChat()
{
}
CWndTextChat::~CWndTextChat()
{
}
BOOL CWndTextChat::IsPickupSpace( CPoint point )
{
return FALSE;
}
int CWndChat::m_nChatChannel = CHATSTY_GENERAL;
CWndChat::CWndChat()
{
m_pWndCommand = NULL;
// m_timerInsMsg.Set( MIN( 1 ) );
m_timerInsMsg.Set( MIN( 2 ) ); // µµ¿ò¸» Ç¥½Ã °£°Ý Áõ°¡
#ifdef __CSC_GAME_GRADE
m_timerAlertGGrade.Set( MIN(60) );
#endif //__CSC_GAME_GRADE
m_nInsMsgCnt = 0;
m_bChatLock = FALSE;
m_bMoveLock = FALSE;
m_pWndChatFilter = NULL;
m_nHistoryIndex = 0;
#if __VER >= 8 //__CSC_VER8_1
m_bChatLog = FALSE;
#endif //__CSC_VER8_1
#ifdef __ITEM_LINK
m_pWndLinkedItem = NULL;
#endif
}
CWndChat::~CWndChat()
{
SAFE_DELETE( m_pWndCommand );
SAFE_DELETE( m_pWndChatFilter );
#ifdef __ITEM_LINK
SAFE_DELETE(m_pWndLinkedItem);
#endif
}
void CWndChat::OnDraw(C2DRender* p2DRender)
{
if( g_pPlayer == NULL )
return;
//if( timer.IsTimeOut() )
//{
// timer.Set( SEC( 10 ) );
// if( szMessage[ nMsgCnt ][0] )
// PutString( szMessage[ nMsgCnt ++ ] );
//}
if( g_Option.m_nInstantHelp )
{
CString string;
if( m_strArray.GetSize() && m_timerInsMsg.TimeOut() )
{
m_timerInsMsg.Reset();
//string = "[µµ¿ò¸»] ";
string = prj.GetText(TID_SYS_HELP);
string += " ";
string += m_strArray.GetAt( m_nInsMsgCnt );
g_WndMng.PutString( string, NULL, 0xffffff00, CHATSTY_HELP );
m_nInsMsgCnt++;
if( m_nInsMsgCnt == m_strArray.GetSize() )
m_nInsMsgCnt = 0;
}
}
#ifdef __CSC_GAME_GRADE
if(m_timerAlertGGrade.TimeOut())
{
m_timerAlertGGrade.Reset();
//PK¼*¹ö ±¸ºÐ 12¼¼ or 15¼¼
if(g_eLocal.GetState( EVE_PK ))
g_WndMng.PutString( prj.GetText(TID_SYS_ALERTGGRADE_PK), NULL, 0xffffff00, CHATSTY_HELP );
else
g_WndMng.PutString( prj.GetText(TID_SYS_ALERTGGRADE_NONPK), NULL, 0xffffff00, CHATSTY_HELP );
}
#endif //__CSC_GAME_GRADE
CWndButton* pWndRadio4 = (CWndButton*)GetDlgItem( WIDC_RADIO4 ); // party
CWndButton* pWndRadio5 = (CWndButton*)GetDlgItem( WIDC_RADIO5 ); // guild
pWndRadio4->EnableWindow( g_Party.IsMember( g_pPlayer->m_idPlayer ) );
pWndRadio5->EnableWindow( g_pPlayer->GetGuild() == NULL ? FALSE : TRUE );
if( ::GetLanguage() == LANG_KOR || ::GetLanguage() == LANG_TWN || ::GetLanguage() == LANG_HK )
{
static TCHAR text[12] = { 0 };
static wchar_t* wText = g_imeMgr.GetStringIndicator();
if( wText )
{
CWndStatic* pWndStatic = (CWndStatic*)GetDlgItem( WIDC_STATIC1 );
if( pWndStatic )
{
WideCharToMultiByteEx(g_imeMgr.m_codePage, 0, wText, wcslen(wText), text, 12, NULL, NULL);
pWndStatic->m_dwColor = D3DCOLOR_ARGB( 255, 50, 50, 220 );
if( PRIMARYLANGID(g_imeMgr.m_hkl)==LANG_KOREAN )
{
if( g_imeMgr.GetImeState() == 0 )
{
_tcscpy( text, "En" );
}
}
else
if( PRIMARYLANGID(g_imeMgr.m_hkl)==LANG_CHINESE )
{
static wchar_t wTextCh[3][3] =
{
L"\x6CE8",
L"\x65B0",
L"\x5176",
};
if( g_imeMgr.IsNewPhonetic() )
{
if( g_imeMgr.GetImeState() == 2 )
_tcscpy( text, "En" );
else
WideCharToMultiByteEx(g_imeMgr.m_codePage, 0, wTextCh[1], wcslen(wTextCh[1]), text, 12, NULL, NULL);
}
else
if( g_imeMgr.IsPhonetic() )
{
if( g_imeMgr.GetImeState() == 0 )
_tcscpy( text, "En" );
else
WideCharToMultiByteEx(g_imeMgr.m_codePage, 0, wTextCh[0], wcslen(wTextCh[0]), text, 12, NULL, NULL);
}
else
{
if( g_imeMgr.GetImeState() == 0 )
_tcscpy( text, "En" );
else
WideCharToMultiByteEx(g_imeMgr.m_codePage, 0, wTextCh[2], wcslen(wTextCh[2]), text, 12, NULL, NULL);
}
}
pWndStatic->SetTitle( text );
}
}
}
}
void CWndChat::OnInitialUpdate()
{
CWndNeuz::OnInitialUpdate();
//AddWndStyle( WBS_THICKFRAME );
m_timerDobe.Set( SEC( 5 ) );
LPWNDCTRL lpWndCtrl = GetWndCtrl( WIDC_MACRO_CHAT );
LPWNDCTRL lpWndText = GetWndCtrl( WIDC_CUSTOM1 );
m_wndMacroChat.Create( "g", WBS_NODRAWFRAME, lpWndCtrl->rect, this, WIDC_MACRO_CHAT );
m_wndMacroChat.AddWndStyle( WBS_NODRAWFRAME );
lpWndCtrl = GetWndCtrl( WIDC_EDIT );
m_wndEdit.Create( g_Neuz.GetSafeHwnd(), WBS_NODRAWFRAME, lpWndCtrl->rect, this, WIDC_EDIT );
m_wndText.Create( WBS_NOFRAME | WBS_NODRAWFRAME | WBS_VSCROLL, lpWndText->rect, this, WIDC_TEXT );
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
CWndEdit* pWndHead = (CWndEdit*)GetDlgItem( WIDC_HEAD );
CWndEdit* pWndEdit = (CWndEdit*)GetDlgItem( WIDC_EDIT );
if( g_pPlayer->IsAuthHigher( AUTH_GAMEMASTER ) )
{
pWndText->m_bEnableClipboard = TRUE;
pWndHead->m_bEnableClipboard = TRUE;
pWndEdit->m_bEnableClipboard = TRUE;
}
pWndEdit->SetNativeMode();
#if __VER >= 11 // __CSC_VER11_1
CRect rectEdit = m_wndEdit.GetWndRect();
rectEdit.left = rectEdit.left - 90;
m_wndEdit.SetWndRect( rectEdit );
CRect customRect = lpWndCtrl->rect;
CWndCustom* pCustom = (CWndCustom*)GetDlgItem(WIDC_MACRO_CHAT);
if(pCustom)
pCustom->Move(customRect.TopLeft().x - 119, customRect.TopLeft().y);
if(pWndHead)
{
pWndHead->EnableWindow(FALSE);
pWndHead->SetVisible(FALSE);
}
#endif //__CSC_VER11_1
if( g_Option.m_nInstantHelp )
{
CScript s;
s.Load( MakePath( DIR_CLIENT, "InstantHelp.inc" ) );
s.GetToken();
while( s.tok != FINISHED )
{
m_strArray.Add( s.Token );
s.GetToken();
}
}
//m_strArray.
/*
CRect rect = GetClientRect();
rect.top = rect.bottom - 20;
rect.right = 70;
rect.left += 5;
rect.DeflateRect( 1, 1 );
m_wndBeginning.Create( g_Neuz.GetSafeHwnd(), WBS_NODRAWFRAME, rect, this, 1000);
rect = GetClientRect();
rect.top = rect.bottom - 20;
rect.left = 75;
rect.right -= 134;
rect.DeflateRect( 1, 1 );
//rect.left = rect.Width() * 20 / 100;
//m_wndEdit.AddWndStyle( WBS_NODRAWFRAME );
m_wndEdit.Create( g_Neuz.GetSafeHwnd(), WBS_NODRAWFRAME, rect, this, 1001 );
*/
// m_texEdit.LoadTexture( m_pApp->m_pd3dDevice, MakePath( DIR_THEME, "WndChat2.bmp" ), 0xffff00ff, TRUE );
/*
rect = GetClientRect();
rect.top = rect.bottom - 20;
rect.left = rect.right - 134;
rect.right = r mnnnnft + 15;
rect.DeflateRect( 1, 1 );
m_wndShout.Create( " ", 0, rect, this, 1010 );
rect = GetClientRect();
rect.top = rect.bottom - 20;
rect.left = rect.right - 117;
rect.right = rect.left + 15;
rect.DeflateRect( 1, 1 );
m_wndParty.Create( " ", 0, rect, this, 1011 );
*/
/*
m_wndText.AddWndStyle( WBS_VSCROLL );
m_wndText.AddWndStyle( WBS_NOFRAME );
m_wndText.AddWndStyle( WBS_NODRAWFRAME );
m_wndText.Create( 0, rect, this, 1003 );
m_wndText.SetFont( g_Neuz.m_Theme.m_pFontChat );
m_wndText.m_string.Reset( m_pFont, &rect);
*/
/*
rect = GetClientRect();
rect.left = rect.right - 100;
//rect.bottom -= 80;
rect.DeflateRect( 1, 1 );
m_wndReceiver.AddWndStyle( WBS_VSCROLL );
m_wndReceiver.AddWndStyle( WBS_NOFRAME );
m_wndReceiver.Create( EBS_AUTOVSCROLL, rect, this, 1002 );
m_wndReceiver.AddString( "Vampyre\n" );
m_wndReceiver.AddString( "Xuzhu\n" );
m_wndReceiver.AddString( "Zodiacus\n" );
m_wndReceiver.AddString( "Jeff\n" );
m_wndReceiver.m_string.Reset( m_pFont, &rect);
*/
//CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
SetChannel();
CWndButton* pWndRadio1 = (CWndButton*)GetDlgItem( WIDC_RADIO1 );
CWndButton* pWndRadio2 = (CWndButton*)GetDlgItem( WIDC_RADIO2 );
CWndButton* pWndRadio3 = (CWndButton*)GetDlgItem( WIDC_RADIO3 );
CWndButton* pWndRadio4 = (CWndButton*)GetDlgItem( WIDC_RADIO4 );
CWndButton* pWndRadio5 = (CWndButton*)GetDlgItem( WIDC_RADIO5 );
if( m_nChatChannel == CHATSTY_GENERAL ) pWndRadio1->SetCheck( TRUE ); else
if( m_nChatChannel == CHATSTY_WHISPER ) pWndRadio2->SetCheck( TRUE ); else
if( m_nChatChannel == CHATSTY_SHOUT ) pWndRadio3->SetCheck( TRUE ); else
if( m_nChatChannel == CHATSTY_PARTY ) pWndRadio4->SetCheck( TRUE ); else
if( m_nChatChannel == CHATSTY_GUILD ) pWndRadio5->SetCheck( TRUE );
//pWndText->m_string.Init(
//pWndText->m_string = g_WndMng.m_ChatString;
pWndText->m_nLineSpace = 2;
//pWndText->m_string.Reset( m_pFont, &pWndText->GetClientRect() );
//pWndText->
/*
CRect rect = GetClientRect();
rect.bottom -= 20;
rect.right -= 0;//100;
rect.DeflateRect( 1, 1);
m_wndText.SetWndRect( rect );
*/
//LPBYTE m_wndChatEdit[3];
//CSize sizeWndChatEdit[3];
#if __VER >= 11 // __CSC_VER11_1
LoadTGA( MakePath( DIR_THEME, "WndChatEdit00_1.tga" ), &m_wndChatEdit[0] );
#else //__CSC_VER11_1
LoadTGA( MakePath( DIR_THEME, "WndChatEdit00.tga" ), &m_wndChatEdit[0] );
#endif //__CSC_VER11_1
LoadTGA( MakePath( DIR_THEME, "WndChatEdit01.tga" ), &m_wndChatEdit[1] );
#ifdef __LANG_IME_0327
LoadTGA( MakePath( "Theme\\", ::GetLanguage(), "WndChatEdit02.tga" ), &m_wndChatEdit[2] );
#else // __LANG_IME_0327
LoadTGA( MakePath( DIR_THEME, "WndChatEdit02.tga" ), &m_wndChatEdit[2] );
#endif // __LANG_IME_0327
if( m_wndChatEdit[2].lpData == NULL )
{
Error( "CWndChat::OnInitialUpdate() m_wndChatEdit[2].lpData = NULL" );
return;
}
/*
CRect rectRoot = m_pWndRoot->GetLayoutRect();
CRect rectWindow = GetWindowRect();
CPoint point( 154, rectRoot.bottom - rectWindow.Height() );
Move( point );
*/
CWndButton* pWndLock = (CWndButton*)GetDlgItem( WIDC_CHECK1 );
pWndLock->SetCheck( m_bChatLock );
CWndButton* pWndMoveLock = (CWndButton*)GetDlgItem( WIDC_MOVELOCK );
pWndMoveLock->SetCheck( m_bMoveLock );
CRect rectRoot = m_pWndRoot->GetLayoutRect();
CRect rect = GetWindowRect();
int nWidth = rect.Width();
int nHeight = rect.Height();
int x = 0;//rectRoot.left + (rectRoot.Width() / 2) - (nWidth / 2);
int y = rectRoot.bottom - nHeight;
CPoint point( x, y );
Move( point );
m_timerInputTimeOut.Set( SEC( 300 ) );
#if __VER >= 8 //__Y_CHAT_SYSTEM_8
if( g_WndMng.m_pWndChatLog == NULL )
{
g_WndMng.m_pWndChatLog = new CWndChatLog;
if( g_WndMng.m_pWndChatLog )
{
g_WndMng.m_pWndChatLog->Initialize( NULL, APP_CHAT_LOG );
CRect rectRoot = m_pWndRoot->GetLayoutRect();
CRect rect = GetWindowRect(TRUE);
CRect rect2 = g_WndMng.m_pWndChatLog->GetClientRect(TRUE);
int x = 0;
int y = rect.top;
if( (rect.right+rect2.Width()) < rectRoot.right )
x = rect.right;
else
x = (rect.left - rect2.Width() );
CPoint point( x, y );
g_WndMng.m_pWndChatLog->Move( point );
g_WndMng.m_pWndChatLog->SetVisible(FALSE);
}
}
if( g_WndMng.m_pWndChatLog )
{
CWndButton* pWndCheck3 = (CWndButton*)GetDlgItem( WIDC_CHECK3 );
if( pWndCheck3 )
pWndCheck3->SetCheck(g_WndMng.m_pWndChatLog->m_bVisible);
}
#endif //__Y_CHAT_SYSTEM_8
}
BOOL CWndChat::Process ()
{
if( m_timerInputTimeOut.IsTimeOut() )
{
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
pWndText->m_string.SetAlpha( 0 );
}
if( 0 < strlen( g_Neuz.m_szWhisperName ) )
{
LPCTSTR lpstr = m_wndEdit.GetString();
BOOL bCommand = FALSE;
if( strcmp( lpstr, "/r " ) == 0 || strcmp( lpstr, "/R " ) == 0 || ( GetLanguage() == LANG_KOR && strcmp( lpstr, "/¤¡ " ) == 0 ) )
{
CString strWhisper;
strWhisper.Format( "/whisper %s ", g_Neuz.m_szWhisperName );
m_wndEdit.SetString( strWhisper );
m_wndEdit.SetFocus();
}
}
return TRUE;
}
void CWndChat::SetChannel()
{
m_wndText.SetString( "" );
int nChannel = 0;
switch( CWndChat::m_nChatChannel )
{
case CHATSTY_GENERAL: nChannel = 0; break;
case CHATSTY_WHISPER: nChannel = 1; break;
case CHATSTY_SHOUT : nChannel = 2; break;
case CHATSTY_PARTY : nChannel = 3; break;
case CHATSTY_GUILD : nChannel = 4; break;
}
DWORD dwChatFilter = g_Option.m_dwChatFilterEtc | g_Option.m_dwChatFilter[ nChannel ];
for( int i = 0; i < g_WndMng.m_aChatString.GetSize(); i++ )
{
if( g_WndMng.m_aChatStyle.GetAt( i ) & dwChatFilter )
{
CString string = g_WndMng.m_aChatString.GetAt( i );
m_wndText.m_string.AddParsingString( string, g_WndMng.m_aChatColor.GetAt( i ), 0x00000000, 0, PS_NOT_MACRO );
m_wndText.m_string.AddString( "\n" );
}
}
m_wndText.ResetString();
m_wndText.m_wndScrollBar.SetMaxScrollPos();
}
void CWndChat::OnSetFocus(CWndBase* pOldWnd)
{
}
void CWndChat::OnKillFocus(CWndBase* pNewWnd)
{
//if( m_pWndCommand && pNewWnd != m_pWndCommand )
// m_pWndCommand->Destroy();
}
BOOL CWndChat::Initialize(CWndBase* pWndParent,DWORD dwWndId)
{
CRect rectWindow = m_pWndRoot->GetWindowRect();
CRect rect( 154, rectWindow.Height() - 100, 154 + rectWindow.Width() - 300, rectWindow.Height() );
SetTitle( GETTEXT( TID_APP_COMMUNICATION_CHAT ) );
return CWndNeuz::InitDialog( g_Neuz.GetSafeHwnd(), dwWndId, WBS_KEY| WBS_THICKFRAME, CPoint( 792, 130 ), pWndParent );
//return CWndNeuz::Create( 0|WBS_MOVE|/*WBS_DOCKABLE|*/WBS_SOUND|WBS_CAPTION|WBS_THICKFRAME|WBS_MAXIMIZEBOX, rect, &g_WndMng, dwWndId);
}
/*
"applet" TY_CLIENT 0
"to" TY_SERVER 0
"to" TY_SERVER 0
"to" TY_SERVER 0
*/
extern CDPClient g_DPlay;
void CWndChat::OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags)
{
}
void CWndChat::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
}
void CWndChat::OnDestroyChildWnd( CWndBase* pWndChild )
{
if( m_pWndCommand == pWndChild )
{
SAFE_DELETE( m_pWndCommand );
}
if( m_pWndChatFilter == pWndChild )
{
SAFE_DELETE( m_pWndChatFilter );
//ChatFilter Wnd DestroyÈÄ Focus°¡ World·Î µÇ¾îÀÖÁö ¾Ê¾Æ À̵¿Å°°¡ ¸ÔÁö ¾Ê±â ¶§¹®¿¡ SetFocusÇØÁÜ.
CWndWorld* pWndWorld = (CWndWorld*)g_WndMng.GetApplet( APP_WORLD );
if( pWndWorld )
pWndWorld->SetFocus();
}
}
void CWndChat::SerializeRegInfo( CAr& ar, DWORD& dwVersion )
{
CWndNeuz::SerializeRegInfo( ar, dwVersion );
if( ar.IsLoading() )
{
if( dwVersion == 0 )
{
}
else
{
ar >> m_bChatLock;
}
CWndButton* pWndLock = (CWndButton*)GetDlgItem( WIDC_CHECK1 );
pWndLock->SetCheck( m_bChatLock );
}
else
{
dwVersion = 1;
ar << m_bChatLock;
}
}
BOOL CWndChat::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
{
m_timerInputTimeOut.Reset();
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
if( pWndText )
pWndText->m_string.SetAlpha( 255 );
switch(nID)
{
case WIDC_CLOSE:
nID = WTBID_CLOSE;
break;
case WIDC_HELP:
nID = WTBID_HELP;
break;
case WIDC_BUTTON1:
{
if( m_pWndChatFilter == NULL )
{
m_pWndChatFilter = new CWndChatFilter;
m_pWndChatFilter->Initialize( this );
}
}
break;
case WIDC_CHECK1: // äÆà ÀÔ·Ââ Àᱸ±â
{
CWndButton* pWndCheck = (CWndButton*)GetDlgItem( WIDC_CHECK1 );
m_bChatLock = pWndCheck->GetCheck();
}
break;
#if __VER >= 8 //__Y_CHAT_SYSTEM_8
case WIDC_CHECK3: // ½Ã½ºÅ½Ã¢
{
CWndButton* pWndCheck = (CWndButton*)GetDlgItem( WIDC_CHECK3 );
BOOL bChatLog = pWndCheck->GetCheck();
#if __VER >= 8 //__CSC_VER8_1 ¸ðµç À©µµ¿ì¸¦ Áö¿ï¶§ ChatLogÀÇ À¯¹« ±¸º°À» À§ÇØ Ãß°¡.
m_bChatLog = bChatLog;
#endif //_CSC_VER8_1
if( g_WndMng.m_pWndChatLog )
{
if( bChatLog )
{
CRect rectRoot = m_pWndRoot->GetLayoutRect();
CRect rect = GetWindowRect(TRUE);
CRect rect2 = g_WndMng.m_pWndChatLog->GetClientRect(TRUE);
int x = 0;
int y = rect.top;
if( (rect.right+rect2.Width()) < rectRoot.right )
x = rect.right;
else
x = (rect.left - rect2.Width() );
CPoint point( x, y );
g_WndMng.m_pWndChatLog->Move( point );
}
g_WndMng.m_pWndChatLog->SetVisible( bChatLog );
}
}
break;
#endif //__Y_CHAT_SYSTEM_8
case WIDC_MOVELOCK: // À̵¿ Àá±×±â
{
CWndButton* pWndCheck = (CWndButton*)GetDlgItem( WIDC_MOVELOCK );
m_bMoveLock = pWndCheck->GetCheck();
DWORD dwStyle = GetWndStyle();
if( m_bMoveLock )
dwStyle &= (~WBS_MOVE);
else
dwStyle |= WBS_MOVE;
SetWndStyle( dwStyle );
}
break;
case WIDC_RADIO1:
m_nChatChannel = CHATSTY_GENERAL;
m_wndEdit.SetString( "" );
m_wndEdit.SetFocus();
SetChannel();
break;
case WIDC_RADIO2:
m_nChatChannel = CHATSTY_WHISPER;
m_wndEdit.SetString( "/w " );
m_wndEdit.SetFocus();
SetChannel();
break;
case WIDC_RADIO3:
m_nChatChannel = CHATSTY_SHOUT;
m_wndEdit.SetString( "/s " );
m_wndEdit.SetFocus();
SetChannel();
break;
case WIDC_RADIO4:
m_nChatChannel = CHATSTY_PARTY;
m_wndEdit.SetString( "/p " );
m_wndEdit.SetFocus();
SetChannel();
break;
case WIDC_RADIO5:
m_nChatChannel = CHATSTY_GUILD;
m_wndEdit.SetString( "/g " );
m_wndEdit.SetFocus();
SetChannel();
break;
case APP_COMMAND:
{
if( message == WNM_DBLCLK )
{
CString string;
m_pWndCommand->GetText( m_pWndCommand->GetCurSel(), string );
string += " ";
m_wndEdit.SetString( "/" );
m_wndEdit.AddString( string );
m_wndEdit.ResetString();
m_pWndCommand->Destroy();
}
SetFocus();
}
case WIDC_HEAD: // ¸»¸Ó¸®
if( message == EN_RETURN )
{
g_WndMng.SetFocus();
}
break;
case WIDC_EDIT: // º»¹®
if( message == EN_UP )
{
if( m_strHistory.size() == 0 )
return FALSE;
if( m_nHistoryIndex >= (int)( m_strHistory.size() ) )
{
m_strHistory.front();
m_nHistoryIndex = 0;
}
m_nHistoryIndex++;
#ifdef __ITEM_LINK
m_wndEdit.SetString(m_strHistory[m_strHistory.size()-m_nHistoryIndex]);
#else
m_wndEdit.m_string = m_strHistory[m_strHistory.size()-m_nHistoryIndex];
#endif
return TRUE;
}
if( message == EN_RETURN )
{
BOOL bFinished = TRUE;
if( m_pWndCommand )
{
CString str1, str2;
str1 = m_wndEdit.m_string.Right( m_wndEdit.m_string.GetLength() - 1 );
if( m_pWndCommand->GetCurSel() != -1 )
{
m_pWndCommand->GetText( m_pWndCommand->GetCurSel(), str2 );
if( str1 != str2 )
{
str2 += " ";
m_wndEdit.SetString( "/" );
m_wndEdit.AddString( str2 );
m_wndEdit.ResetString();
bFinished = FALSE;
}
}
m_pWndCommand->Destroy();
}
if( bFinished == TRUE )
{
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
CWndEdit* pWndHead = (CWndEdit*)GetDlgItem( WIDC_HEAD );
CString string;
if( pWndHead->m_string.IsEmpty() == FALSE &&
( pWndHead->m_string[ 0 ] == '/' ||
( m_wndEdit.m_string.IsEmpty() == FALSE && pWndHead->m_string[ 0 ] != '/' && m_wndEdit.m_string[ 0 ] != '/' ) )
)
string = pWndHead->m_string + " ";
WORD wCodePage = g_codePage;
const char* begin = m_wndEdit.m_string;
const char* end = begin + m_wndEdit.m_string.GetLength();
const char* iter = begin;
while(*iter && iter < end)
{
if(*((BYTE*)iter) >= 0x80)
{
if(wCodePage != m_wndEdit.m_string.m_awCodePage[iter-begin])
{
wCodePage = m_wndEdit.m_string.m_awCodePage[iter-begin];
char temp[16];
if(wCodePage == g_codePage)
{
wsprintf(temp, "#nl");
}
else
{
wsprintf(temp, "#l%04d", wCodePage);
}
string += temp;
}
}
const char* next = CharNextEx(iter, wCodePage);
char temp[16];
memcpy(temp, iter, next-iter);
temp[next-iter] = 0;
string += temp;
iter = next;
}
if( m_strHistory.size() >= MAX_HISTORY_STRING )
{
m_nHistoryIndex = 0;
m_strHistory.erase( m_strHistory.begin() );
}
m_strHistory.push_back(string);
int a = string.GetLength();
if( !m_wndEdit.m_string.IsEmpty() )
m_wndEdit.m_string.GetTextFormat(string);
#ifdef __ITEM_LINK
m_strHistory.push_back(string);
#endif
g_WndMng.ParsingChat( string );
CScanner scanner;
scanner.SetProg( m_wndEdit.m_string.LockBuffer() );
scanner.GetToken(); //
if( scanner.Token == "/" )
{
scanner.GetToken();
if( scanner.Token == "w" || scanner.Token == "whisper" )
{
scanner.GetToken();
m_strCharName = scanner.Token;
}
}
m_wndEdit.m_string.UnlockBuffer();
m_wndEdit.Empty();
if( m_bChatLock == FALSE )
{
if( IsWndStyle( WBS_MODAL ) == TRUE )
{
DelWndStyle( WBS_MODAL );
if( g_Neuz.pOldModalWindow )
{
g_Neuz.pOldModalWindow->SetFocus();
}
}
else
{
CWndWorld* pWndWorld = ( CWndWorld* )g_WndMng.GetApplet( APP_WORLD );
if( pWndWorld )
{
pWndWorld->SetFocus();
}
else
{
g_WndMng.SetFocus();
}
}
}
else
m_wndEdit.SetFocus();
}
}
else
if( message == EN_CHANGE )
{
if( m_wndEdit.m_string.IsEmpty() == FALSE )
{
if( m_wndEdit.m_string[ 0 ] == '/' && m_wndEdit.GetOffset() == 1 && m_pWndCommand == NULL )
{
m_pWndCommand = new CWndCommand;
m_pWndCommand->m_pWndEdit = this;
m_pWndCommand->Initialize( this );
CRect rect = m_wndEdit.GetScreenRect();
CPoint point = rect.TopLeft();
point.y -= m_pWndCommand->GetWndRect().Height();
m_pWndCommand->Move( point );
}
else
if( m_pWndCommand )
{
CString string;
string = m_wndEdit.m_string.Right( m_wndEdit.m_string.GetLength() - 1 );
// Áß°£¿¡ ½ºÆäÀ̽º°¡ ²¸ ÀÖÀ¸¸é ´Ý¾Æ¹ö¸°´Ù.
if( string.Find( ' ' ) == -1 )
m_pWndCommand->SelectString( 0, string );
else
m_pWndCommand->Destroy();
if( ::GetLanguage() == LANG_KOR )
{
if( m_wndEdit.m_string == "/¤¾ " )
{
m_wndEdit.SetString( "/g " );
}
else if( m_wndEdit.m_string == "/¤Ä " )
{
m_wndEdit.SetString( "/p " );
}
else if( m_wndEdit.m_string == "/¤¤ " )
{
m_wndEdit.SetString( "/s " );
}
#if __VER >= 11 // __CSC_VER11_1
else if( m_wndEdit.m_string == "/¤¸ " )
{
m_wndEdit.SetString( "/w " );
}
#endif //__CSC_VER11_1
}
}
}
else
if( m_pWndCommand )
m_pWndCommand->Destroy();
}
break;
case 10000: // ÃÖ¼ÒÈ*
break;
case 10001: // ÃÖ´ëÈ*
break;
case 10002: // Á¾·á
Destroy();
break;
}
//¾Æ·¡ ƯÁ¤ ¹öÆ° ´©¸¦ °æ¿ì Focus°¡ World·Î µÇ¾îÀÖÁö ¾Ê¾Æ À̵¿Å°°¡ ¸ÔÁö ¾Ê±â ¶§¹®¿¡ SetFocusÇØÁÜ.
if(nID == WIDC_CHECK1 || nID == WIDC_CHECK3 || nID == WIDC_MOVELOCK)
{
CWndWorld* pWndWorld = (CWndWorld*)g_WndMng.GetApplet( APP_WORLD );
if( pWndWorld )
pWndWorld->SetFocus();
}
return CWndNeuz::OnChildNotify( message, nID, pLResult );
}
BOOL CWndChat::OnCommand( UINT nID, DWORD dwMessage, CWndBase* pWndBase )
{
return CWndNeuz::OnCommand(nID,dwMessage,pWndBase);
}
void CWndChat::Parsing( CString string )
{
/*
MotionProp* pProp;
for( int i = 0; i < prj.m_aMotionProp.GetSize(); i++ )
{
pProp = prj.GetMotionProp( i );
if( pProp && pProp->dwRequireLv )
{
if( string.Find( pProp->szLink ) != -1 )
{
// g_pPlayer->SendActMsg( OBJMSG_MOTION, pProp->dwID );
}
}
}
*/
}
void CWndChat::PutString( LPCTSTR lpszString, DWORD dwColor, DWORD dwPStyle )
{
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
if( dwColor != 0xffffff00 )
{
m_timerInputTimeOut.Reset();
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
pWndText->m_string.SetAlpha( 255 );
}
BOOL bLineEnd = FALSE;
if( pWndText->m_wndScrollBar.GetScrollPos() == ( pWndText->m_wndScrollBar.GetMaxScrollPos() - pWndText->m_wndScrollBar.GetScrollPage() ) )
bLineEnd = TRUE;
pWndText->AddString( lpszString, dwColor, dwPStyle );
pWndText->AddString( "\n", dwColor );// += '\n';
// ±Û ³»¿ëÀÌ 1000ÁÙÀ» ³Ñ¾î°¡¸é 500¶óÀÎÀ» À߶󳽴Ù.
if( pWndText->m_string.GetLineCount() >= 1000 )
{
pWndText->m_string.DeleteLine( 0, 500 );
pWndText->UpdateScrollBar();
}
if( bLineEnd )
pWndText->m_wndScrollBar.SetMaxScrollPos();
}
void CWndChat::OnDestroy()
{
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
g_WndMng.m_ChatString = pWndText->m_string;
}
void CWndChat::SetWndRect( CRect rectWnd, BOOL bOnSize )
{
#if __VER >= 8 //__Y_CHAT_SYSTEM_8
AdjustMinRect( &rectWnd, 16 * 29, 16 * 3 );
#else // __Y_CHAT_SYSTEM_8
AdjustMinRect( &rectWnd, 16 * 26, 16 * 3 );
#endif //__Y_CHAT_SYSTEM_8
CRect rectOld = m_rectClient;
m_rectWindow = rectWnd;
m_rectClient = m_rectWindow;
m_rectClient.DeflateRect( 4, 4, 6, 6 );
m_rectLayout = m_rectClient;
if( bOnSize && ( rectOld.Width() != m_rectClient.Width() || rectOld.Height() != m_rectClient.Height() ) )
OnSize( 0, m_rectClient.Width(), m_rectClient.Height() );
MakeVertexBuffer();
}
void CWndChat::OnSize(UINT nType, int cx, int cy)
{
//#ifdef __NEWINTERFACE
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
CWndEdit* pWndHead = (CWndEdit*)GetDlgItem( WIDC_HEAD );
CWndEdit* pWndEdit = (CWndEdit*)GetDlgItem( WIDC_EDIT );
CRect rectEdit;
CRect rect = GetClientRect();
//rect.left = 60;
rect.top = 0;
rect.left = 0;
rect.right -= 0;
rect.bottom -= 39;
pWndText->SetWndRect( rect );
pWndText->m_wndScrollBar.SetMaxScrollPos();
rect = GetClientRect();
rectEdit = pWndHead->GetWndRect();
rectEdit.top = rect.bottom - 18;
rectEdit.bottom = rect.bottom;
rect.DeflateRect( 1, 1 );
pWndHead->SetWndRect( rectEdit );
rect = GetClientRect();
rectEdit = m_wndEdit.GetWndRect();
rectEdit.top = rect.bottom - 18;
rectEdit.bottom = rect.bottom;
rectEdit.right = rect.right - 20;
rect.DeflateRect( 1, 1 );
m_wndEdit.SetWndRect( rectEdit );
rect = GetClientRect();
rectEdit = m_wndMacroChat.GetWndRect();
rectEdit.top = rect.bottom - 19;
rectEdit.bottom = rect.bottom;
m_wndMacroChat.SetWndRect( rectEdit );
CWndButton* pWndRadio1 = (CWndButton*)GetDlgItem( WIDC_RADIO1 );
CWndButton* pWndRadio2 = (CWndButton*)GetDlgItem( WIDC_RADIO2 );
CWndButton* pWndRadio3 = (CWndButton*)GetDlgItem( WIDC_RADIO3 );
CWndButton* pWndRadio4 = (CWndButton*)GetDlgItem( WIDC_RADIO4 );
CWndButton* pWndRadio5 = (CWndButton*)GetDlgItem( WIDC_RADIO5 );
CWndButton* pWndCheck = (CWndButton*)GetDlgItem( WIDC_CHECK1 );
CWndButton* pWndCheck2 = (CWndButton*)GetDlgItem( WIDC_MOVELOCK );
CWndButton* pWndButton1 = (CWndButton*)GetDlgItem( WIDC_BUTTON1 );
CWndButton* pWndButton2 = (CWndButton*)GetDlgItem( WIDC_HELP );
CWndButton* pWndButton3 = (CWndButton*)GetDlgItem( WIDC_CLOSE );
#if __VER >= 8 //__Y_CHAT_SYSTEM_8
CWndButton* pWndCheck3 = (CWndButton*)GetDlgItem( WIDC_CHECK3 );
#else //__Y_CHAT_SYSTEM_8
CWndButton* pWndCheck3 = (CWndButton*)GetDlgItem( WIDC_CHECK3 );
pWndCheck3->SetVisible(FALSE);
#endif //__Y_CHAT_SYSTEM_8
rect = GetClientRect();
rectEdit = pWndRadio1->GetWndRect();
rectEdit.top = rect.bottom - 38;
rectEdit.left = 0;
pWndRadio1->Move( rectEdit.TopLeft() );
rectEdit.left = 50;
pWndRadio2->Move( rectEdit.TopLeft() );
rectEdit.left = 100;
pWndRadio3->Move( rectEdit.TopLeft() );
rectEdit.left = 150;
pWndRadio4->Move( rectEdit.TopLeft() );
rectEdit.left = 200;
pWndRadio5->Move( rectEdit.TopLeft() );
#if __VER >= 8 //__Y_CHAT_SYSTEM_8
rectEdit.left = rect.right - 200;
pWndCheck->Move( rectEdit.TopLeft() );
rectEdit.left = rect.right - 150;
pWndButton1->Move( rectEdit.TopLeft() );
rectEdit.left = rect.right - 100;
pWndCheck3->Move( rectEdit.TopLeft() );
#else //__Y_CHAT_SYSTEM_8
rectEdit.left = rect.right - 150;
pWndCheck->Move( rectEdit.TopLeft() );
rectEdit.left = rect.right - 100;
pWndButton1->Move( rectEdit.TopLeft() );
#endif //__Y_CHAT_SYSTEM_8
rectEdit.left = rect.right - 49;
CRect rectEdit2 = rectEdit;
rectEdit2.top += 1;
pWndCheck2->Move( rectEdit2.TopLeft() );
rectEdit.left = rect.right - 32;
rectEdit.top += 1;
pWndButton2->Move( rectEdit.TopLeft() );
rectEdit.left = rect.right - 15;
pWndButton3->Move( rectEdit.TopLeft() );
CWndStatic* pWndStatic = (CWndStatic*)GetDlgItem( WIDC_STATIC1 );
if( pWndStatic )
{
rectEdit.top += 20;
rectEdit.left -= 5;
pWndStatic->Move( rectEdit.TopLeft() );
}
CWndNeuz::OnSize(nType,cx,cy);
}
void CWndChat::OnLButtonUp(UINT nFlags, CPoint point)
{
if(IsWndRoot())
return;
//if(IsWndStyle(WBS_CAPTION) && m_bPickup)
{//
// m_wndTitleBar.m_wndMinimize.SetVisible(TRUE);
//m_wndTitleBar.m_wndMaximize.SetVisible(TRUE);
}
if( g_WndMng.m_pWndWorld )
{
CRect rect = GetWindowRect( TRUE );
CPoint p;
p.x = point.x + rect.left;
p.y = point.y + rect.top;
// g_WndMng.m_pWndWorld->m_bLButtonDown = TRUE;
g_WndMng.m_pWndWorld->OnLButtonUp( nFlags, p );
}
}
void CWndChat::OnLButtonDown(UINT nFlags, CPoint point)
{
if( m_pWndCommand )
m_pWndCommand->Destroy();
if( g_WndMng.m_pWndWorld )
{
CRect rect = GetWindowRect( TRUE );
CPoint p;
p.x = point.x + rect.left;
p.y = point.y + rect.top;
g_WndMng.m_pWndWorld->m_bLButtonDown = TRUE;
g_WndMng.m_pWndWorld->OnLButtonDown( nFlags, p );
}
}
void CWndChat::OnRButtonDown(UINT nFlags, CPoint point)
{
if( g_WndMng.m_pWndWorld )
{
CRect rect = GetWindowRect( TRUE );
CPoint p;
p.x = point.x + rect.left;
p.y = point.y + rect.top;
g_WndMng.m_pWndWorld->m_bRButtonDown = TRUE;
g_WndMng.m_pWndWorld->OnRButtonDown( nFlags, p );
}
int nLineCount = m_wndText.m_string.GetLineCount();
int nPos = m_wndText.IsWndStyle( WBS_VSCROLL ) ? m_wndText.m_wndScrollBar.GetScrollPos() : 0;
DWORD dwMaxHeight = m_wndText.GetFontHeight();
for( int i = nPos ; i < nLineCount ; ++i )
{
if( (int)( ((i-nPos) * dwMaxHeight) ) <= point.y && point.y < (int)( (dwMaxHeight * (i-nPos + 1)) ) )
{
CString str = m_wndText.m_string.GetLine( i );
#ifdef __ITEM_LINK
CString strTmp = str;
#endif
char szFind[MAX_NAME] = {0,};
BOOL bChat = FALSE;
// ÀÏ¹Ý Ã¤Æà °Ë»ö
int nFindName = str.Find( " :" );
if( 0 < nFindName && nFindName < MAX_NAME )
{
int nFindSpace = str.Find( ' ' );
if( nFindSpace == -1 || nFindName <= nFindSpace )
{
#ifdef __ITEM_LINK
int nExtent = m_wndText.m_pFont->GetTextExtent(str.Mid(0,nFindName)).cx;
if(point.x < nExtent)
{
#endif
strncpy( szFind, str, nFindName );
if( strcmp( szFind, g_pPlayer->GetName() ) != 0 )
bChat = TRUE;
#ifdef __ITEM_LINK
}
#endif
}
}
// ±Ó¼Ó¸» °Ë»ö
if( bChat == FALSE )
{
int nFindName1 = str.Find( "<- [" );
int nFindName2 = str.Find( "]" );
if( 0 == nFindName1 )
{
str.Replace( "<- [", "" );
}
else
{
nFindName1 = str.Find( "-> [" );
str.Replace( "-> [", "" );
}
if( 0 == nFindName1 && 0 < nFindName2 && nFindName2 - nFindName1 < MAX_NAME + 4 )
{
nFindName2 = str.Find( "]" );
strncpy( szFind, str, nFindName2 );
int nFindSpace = strspn( " ", szFind );
#ifdef __ITEM_LINK
int nFindName3 = strTmp.Find("]");
int nExtent = m_wndText.m_pFont->GetTextExtent(strTmp.Mid(0,nFindName3)).cx;
if(point.x < nExtent)
{
#endif
if( nFindSpace < 1 && strcmp( szFind, g_pPlayer->GetName() ) != 0 )
bChat = TRUE;
#ifdef __ITEM_LINK
}
#endif
}
}
// ¿ÜÄ¡±â °Ë»ö( ¾Ë¸²Àº ºüÁü )
if( bChat == FALSE )
{
int nFindName1 = str.Find( "[" );
int nFindName2 = str.Find( "]" );
if( 0 == nFindName1 && 0 < nFindName2 && nFindName2 - nFindName1 < MAX_NAME + 1 )
{
str.Replace( "[", "" );
nFindName2 = str.Find( "]" );
strncpy( szFind, str, nFindName2 );
int nFindSpace = strspn( " ", szFind );
#ifdef __ITEM_LINK
int nFindName3 = strTmp.Find("]");
int nExtent = m_wndText.m_pFont->GetTextExtent(strTmp.Mid(0,nFindName3)).cx;
if(point.x < nExtent)
{
#endif
if( nFindSpace < 1 && strcmp( szFind, g_pPlayer->GetName() ) != 0 )
bChat = TRUE;
#ifdef __ITEM_LINK
}
#endif
CString strSystem = prj.GetText(TID_ADMIN_ANNOUNCE);
strSystem.Replace( "[", "" );
int nFindSystem = strSystem.Find("]");
if( 0 < nFindSystem )
{
char szFindSystem[MAX_NAME] = {0,};
strncpy( szFindSystem, strSystem, nFindSystem );
if( strcmp( szFind, szFindSystem ) == 0 )
bChat = FALSE;
}
}
}
#ifdef __ITEM_LINK
{
if(!bChat)
{
int nFindBeg = strTmp.Find("<");
int nFindEnd = strTmp.Find(">");
while(nFindBeg != -1 || nFindEnd != -1)
{
int nExtentEnd;
int nExtentBeg;
if(nFindBeg != -1)// check line changed
nExtentBeg = m_wndText.m_pFont->GetTextExtent(strTmp.Mid(0,nFindBeg)).cx;
else
nExtentBeg = 0;
if(nFindEnd != -1) // check line changed
nExtentEnd = m_wndText.m_pFont->GetTextExtent(strTmp.Mid(nFindBeg,nFindEnd-nFindBeg)).cx+nExtentBeg;
else{
nExtentEnd = m_wndText.m_pFont->GetTextExtent(strTmp.Mid(nFindBeg,str.GetLength()-nFindBeg)).cx+nExtentBeg;
}
if(point.x > nExtentBeg && point.x < nExtentEnd) // clicked on link
{
DWORD dwLinkID = m_wndText.m_string.m_adwLinkedID.GetAt(nFindBeg+m_wndText.m_string.GetLineOffset(i));
if(dwLinkID) //check if is linked item or normal string
g_DPlay.SendGetLinkedItem(dwLinkID);
Error("%d",dwLinkID);
}
nFindBeg = strTmp.Find("<",nFindEnd);
nFindEnd = strTmp.Find(">",nFindEnd+1);
}
}
}
#endif
if( bChat )
{
CString strWhisper;
strWhisper.Format( "/whisper %s ", szFind );
m_wndEdit.SetString( strWhisper );
m_wndEdit.SetFocus();
}
break;
}
}
}
void CWndChat::OnRButtonUp(UINT nFlags, CPoint point)
{
if( g_WndMng.m_pWndWorld )
{
CRect rect = GetWindowRect( TRUE );
CPoint p;
p.x = point.x + rect.left;
p.y = point.y + rect.top;
// g_WndMng.m_pWndWorld->m_bRButtonDown = TRUE;
g_WndMng.m_pWndWorld->OnRButtonUp( nFlags, p );
}
}
void CWndChat::OnMouseMove(UINT nFlags, CPoint point)
{
if( g_WndMng.m_pWndWorld )
{
CRect rect = GetWindowRect( TRUE );
CPoint p;
p.x = point.x + rect.left;
p.y = point.y + rect.top;
// g_WndMng.m_pWndWorld->m_bRButtonDown = TRUE;
g_WndMng.m_pWndWorld->OnMouseMove( nFlags, p );
}
}
BOOL CWndChat::OnEraseBkgnd(C2DRender* p2DRender)
{
return TRUE;
}
//void CWndNeuz::PaintTexture( LPBYTE pDest, LPBYTE pSrc, CPoint pt,
// CSize sizeTexture, CSize sizeSurface )
void CWndChat::AdditionalSkinTexture( LPWORD pDest, CSize size, D3DFORMAT d3dFormat )
{
CWndNeuz::AdditionalSkinTexture( pDest, size, d3dFormat );
CRect rect = GetWindowRect();
CPoint point = CPoint( 0, rect.Height() - m_wndChatEdit[0].size.cy );
PaintTexture( pDest, &m_wndChatEdit[0], point, size );
int nWidth = ( rect.Width() - m_wndChatEdit[0].size.cx ) / m_wndChatEdit[1].size.cx;
point.x += m_wndChatEdit[0].size.cx;
for( int i = 0; i < nWidth; i++ )
{
if( i == nWidth - 2 )
PaintTexture( pDest, &m_wndChatEdit[2], point, size );
else
if( i < nWidth - 2 )
PaintTexture( pDest, &m_wndChatEdit[1], point, size );
point.x += m_wndChatEdit[1].size.cx;
}
}
#if __VER >= 8 //__Y_CHAT_SYSTEM_8
CWndChatLog::CWndChatLog()
{
}
CWndChatLog::~CWndChatLog()
{
}
/*
void CWndChatLog::OnDraw(C2DRender* p2DRender)
{
}
*/
void CWndChatLog::OnInitialUpdate()
{
CWndNeuz::OnInitialUpdate();
LPWNDCTRL lpWndText = GetWndCtrl( WIDC_CUSTOM1 );
m_wndText.Create( WBS_NOFRAME | WBS_NODRAWFRAME | WBS_VSCROLL, lpWndText->rect, this, WIDC_TEXT );
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
if( g_pPlayer->IsAuthHigher( AUTH_GAMEMASTER ) )
{
pWndText->m_bEnableClipboard = TRUE;
}
pWndText->m_nLineSpace = 2;
CRect rectRoot = m_pWndRoot->GetLayoutRect();
CRect rect = GetWindowRect();
int nWidth = rect.Width();
int nHeight = rect.Height();
int x = 0;//rectRoot.left + (rectRoot.Width() / 2) - (nWidth / 2);
int y = rectRoot.bottom - nHeight;
CPoint point( x, y );
Move( point );
m_wndMenuPlace.CreateMenu( this );
m_wndMenuPlace.AppendMenu( 0, 0 , prj.GetText(TID_GAME_GUIDE_HIDE) );
}
BOOL CWndChatLog::Process ()
{
return TRUE;
}
void CWndChatLog::OnSetFocus(CWndBase* pOldWnd)
{
}
void CWndChatLog::OnKillFocus(CWndBase* pNewWnd)
{
}
BOOL CWndChatLog::Initialize(CWndBase* pWndParent,DWORD dwWndId)
{
CRect rectWindow = m_pWndRoot->GetWindowRect();
CRect rect( 154, rectWindow.Height() - 100, 154 + rectWindow.Width() - 300, rectWindow.Height() );
SetTitle( GETTEXT( TID_APP_COMMUNICATION_CHAT ) );
return CWndNeuz::InitDialog( g_Neuz.GetSafeHwnd(), dwWndId, WBS_THICKFRAME, CPoint( 792, 130 ), pWndParent );
// return CWndNeuz::InitDialog( g_Neuz.GetSafeHwnd(), dwWndId, 0, CPoint( 792, 130 ), pWndParent );
}
void CWndChatLog::OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags)
{
}
void CWndChatLog::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
}
void CWndChatLog::OnDestroyChildWnd( CWndBase* pWndChild )
{
}
BOOL CWndChatLog::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
{
CWndBase* pWndBase = (CWndBase*) pLResult;
if( pWndBase->m_pParentWnd == &m_wndMenuPlace )
{
SetFocus();
switch( nID )
{
case 0:
{
CWndChat* pWndChat = (CWndChat*)g_WndMng.GetWndBase( APP_COMMUNICATION_CHAT );
if( pWndChat )
{
CWndButton* pWndCheck = (CWndButton*)pWndChat->GetDlgItem( WIDC_CHECK3 );
if( pWndCheck )
pWndCheck->SetCheck(FALSE);
}
SetVisible(FALSE);
}
break;
}
}
return CWndNeuz::OnChildNotify( message, nID, pLResult );
}
BOOL CWndChatLog::OnCommand( UINT nID, DWORD dwMessage, CWndBase* pWndBase )
{
return CWndNeuz::OnCommand(nID,dwMessage,pWndBase);
}
void CWndChatLog::PutString( LPCTSTR lpszString, DWORD dwColor, DWORD dwPStyle )
{
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT );
BOOL bLineEnd = FALSE;
if( pWndText->m_wndScrollBar.GetScrollPos() == ( pWndText->m_wndScrollBar.GetMaxScrollPos() - pWndText->m_wndScrollBar.GetScrollPage() ) )
bLineEnd = TRUE;
pWndText->AddString( lpszString, dwColor, dwPStyle );
pWndText->AddString( "\n", dwColor );// += '\n';
// ±Û ³»¿ëÀÌ 1000ÁÙÀ» ³Ñ¾î°¡¸é 500¶óÀÎÀ» À߶󳽴Ù.
if( pWndText->m_string.GetLineCount() >= 1000 )
{
pWndText->m_string.DeleteLine( 0, 500 );
pWndText->UpdateScrollBar();
}
if( bLineEnd )
pWndText->m_wndScrollBar.SetMaxScrollPos();
}
void CWndChatLog::OnDestroy()
{
}
void CWndChatLog::OnSize(UINT nType, int cx, int cy)
{
CRect rectEdit;
CRect rect = GetClientRect();
//rect.left = 60;
rect.top = 0;
rect.left = 0;
rect.right -= 0;
rect.bottom -= 0;
m_wndText.SetWndRect( rect );
m_wndText.m_wndScrollBar.SetMaxScrollPos();
CWndNeuz::OnSize(nType,cx,cy);
}
void CWndChatLog::OnLButtonUp(UINT nFlags, CPoint point)
{
}
void CWndChatLog::OnLButtonDown(UINT nFlags, CPoint point)
{
if( g_WndMng.m_pWndWorld )
{
CRect rect = GetWindowRect( TRUE );
CPoint p;
p.x = point.x + rect.left;
p.y = point.y + rect.top;
g_WndMng.m_pWndWorld->m_bLButtonDown = TRUE;
g_WndMng.m_pWndWorld->OnLButtonDown( nFlags, p );
}
}
void CWndChatLog::OnRButtonDown(UINT nFlags, CPoint point)
{
CRect rect = GetWindowRect( TRUE );
CRect menurect = m_wndMenuPlace.GetWindowRect();
rect.top += point.y;
rect.left += point.x;
m_wndMenuPlace.Move( CPoint( rect.left, rect.top ) );
m_wndMenuPlace.SetVisible( !m_wndMenuPlace.IsVisible() );
m_wndMenuPlace.SetFocus();
}
void CWndChatLog::OnRButtonUp(UINT nFlags, CPoint point)
{
}
void CWndChatLog::OnMouseMove(UINT nFlags, CPoint point)
{
}
/*
BOOL CWndChatLog::OnEraseBkgnd(C2DRender* p2DRender)
{
return TRUE;
}
*/
void CWndChatLog::AdditionalSkinTexture( LPWORD pDest, CSize size, D3DFORMAT d3dFormat )
{
CWndNeuz::AdditionalSkinTexture( pDest, size, d3dFormat );
}
void CWndChatLog::SetWndRect( CRect rectWnd, BOOL bOnSize )
{
AdjustMinRect( &rectWnd, 16 * 17, 16 * 3 );
CRect rectOld = m_rectClient;
m_rectWindow = rectWnd;
m_rectClient = m_rectWindow;
m_rectClient.DeflateRect( 4, 4, 6, 6 );
m_rectLayout = m_rectClient;
if( bOnSize && ( rectOld.Width() != m_rectClient.Width() || rectOld.Height() != m_rectClient.Height() ) )
OnSize( 0, m_rectClient.Width(), m_rectClient.Height() );
MakeVertexBuffer();
}
#endif //__Y_CHAT_SYSTEM_8
#ifdef __ITEM_LINK
CWndLinkedItem::CWndLinkedItem()
{
m_pItem = NULL;
CString strPath;
if(::GetLanguage() == LANG_FRE)
strPath = MakePath( "Theme\\", ::GetLanguage(), "Icon_Ultimate.dds");
else
strPath = MakePath( DIR_ICON, "Icon_Ultimate.dds");
m_pUltimateTexture = CWndBase::m_textureMng.AddTexture( g_Neuz.m_pd3dDevice, strPath, 0xffff00ff );
strPath = MakePath( DIR_ICON, "icon_Baruna01.dds" );
m_pBarunaTexture = CWndBase::m_textureMng.AddTexture( g_Neuz.m_pd3dDevice, strPath, 0xffff00ff );
m_pJewelBgTexture = CWndBase::m_textureMng.AddTexture( g_Neuz.m_pd3dDevice, MakePath( DIR_THEME, "WndChgElemItem.bmp"), 0xffff00ff );
}
CWndLinkedItem::~CWndLinkedItem()
{
SAFE_DELETE(m_pItem);
}
BOOL CWndLinkedItem::Initialize(CWndBase *pWndParent,DWORD dwStyle)
{
return CWndNeuz::InitDialog(g_Neuz.GetSafeHwnd(),APP_TOOLTIP_LINKEDITEM,dwStyle,CPoint(0,0),pWndParent);
}
void CWndLinkedItem::OnInitialUpdate()
{
CWndNeuz::OnInitialUpdate();
MoveParentCenter();
rectItem = GetWndCtrl(WIDC_CUSTOM1)->rect;
}
void CWndLinkedItem::OnMouseWndSurface(CPoint point)
{
/*
if(m_pItem && rectItem.PtInRect(point))
{
CRect hitrect = rectItem;
CPoint point2 = point;
ClientToScreen(&point2);
ClientToScreen(&hitrect);
g_WndMng.PutToolTip_Item(m_pItem,point2,&hitrect);
}
*/
}
void CWndLinkedItem::OnDraw(C2DRender *p2DRender)
{
if(m_pItem)
{
CMover* pMover = g_pPlayer;
m_pItem->GetTexture()->Render(p2DRender,rectItem.TopLeft(),255);
CEditString strEdit;
ItemProp* pItemProp = m_pItem->GetProp();
strEdit.SetParsingString("");
strEdit.Init( CWndBase::m_Theme.m_pFontText, &CRect( 0, 0, 240, 0 ) );
DWORD dwColorBuf = g_WndMng.PutItemName(m_pItem, &strEdit);
g_WndMng.PutItemAbilityPiercing( m_pItem, &strEdit, dwColorBuf );
if( m_pItem->GetProp() && m_pItem->GetProp()->dwFlag & IP_FLAG_EQUIP_BIND )
{
strEdit.AddString("\r\n");
if( m_pItem->IsFlag( CItemElem::binds ) )
strEdit.AddString( GETTEXT( TID_TOOLTIP_EQUIPBIND_AFTER ), GETTEXTCOLOR( TID_TOOLTIP_EQUIPBIND_AFTER ) );
else
strEdit.AddString( GETTEXT( TID_TOOLTIP_EQUIPBIND_BEFORE ), GETTEXTCOLOR( TID_TOOLTIP_EQUIPBIND_BEFORE ) );
}
g_WndMng.PutWeapon( m_pItem, &strEdit );
CString strExp;
#ifdef __MODEL_CHANGE
g_WndMng.PutSex( pMover, m_pItem, &strEdit );
switch( pItemProp->dwItemKind2 )
{
case IK2_WEAPON_DIRECT:
case IK2_WEAPON_MAGIC:
case IK2_ARMORETC:
case IK2_CLOTHETC:
case IK2_ARMOR:
case IK2_CLOTH:
case IK2_BLINKWING:
{
g_WndMng.PutItemMinMax( pMover, m_pItem, &strEdit );
g_WndMng.PutItemSpeed( m_pItem, &strEdit );
if( pItemProp->dwItemKind3 == IK3_ELECARD )
g_WndMng.PutItemResist( m_pItem, &strEdit );
else if( m_pItem->m_nResistAbilityOption && ( pItemProp->dwItemKind1 == IK1_WEAPON || pItemProp->dwItemKind1 == IK1_ARMOR ) )
g_WndMng.PutItemResist( m_pItem, &strEdit );
g_WndMng.PutBaseResist( m_pItem, &strEdit ); // ¼Ó¼º ÀúÇ×·Â
g_WndMng.PutBaseItemOpt( m_pItem, &strEdit );
g_WndMng.PutJob( pMover, m_pItem, &strEdit );
g_WndMng.PutLevel( pMover, m_pItem, &strEdit );
g_WndMng.PutCommand( m_pItem, &strEdit );
g_WndMng.PutItemGold( pMover, m_pItem, &strEdit, 0 ); // °¡°Ý
g_WndMng.PutSetItemOpt( pMover, m_pItem, &strEdit );
g_WndMng.PutPiercingOpt( m_pItem, &strEdit );
g_WndMng.PutRandomOpt( m_pItem, &strEdit );
g_WndMng.PutEnchantOpt( pMover, m_pItem, &strEdit, 0 );
break;
}
case IK2_REFRESHER:
case IK2_FOOD:
case IK2_POTION:
{
g_WndMng.PutMedicine( m_pItem, m_pItem->GetProp()->dwDestParam1, pItemProp->nAdjParamVal1, &strEdit );
g_WndMng.PutMedicine( m_pItem, m_pItem->GetProp()->dwDestParam2, pItemProp->nAdjParamVal2, &strEdit );
break;
}
case IK2_JEWELRY:
{
g_WndMng.PutBaseItemOpt( m_pItem, &strEdit );
break;
}
case IK2_SYSTEM:
{
if( pItemProp->dwItemKind3 == IK3_VIS )
{
g_WndMng.PutNeededVis( m_pItem, &strEdit );
g_WndMng.PutBaseItemOpt( m_pItem, &strEdit );
}
if( m_pItem->m_dwItemId == II_SYS_SYS_SCR_SEALCHARACTER )
{
g_WndMng.PutSealChar( m_pItem, &strEdit );
}
break;
}
case IK2_GMTEXT:
{
if( pItemProp->dwItemKind3 == IK3_TEXT_DISGUISE )
{
g_WndMng.PutDestParam( pItemProp->dwDestParam[0], pItemProp->dwDestParam[1],
pItemProp->nAdjParamVal[0], pItemProp->nAdjParamVal[1], strEdit );
if( pItemProp->dwActiveSkill != NULL_ID )
{
ItemProp *pSkillProp;
AddSkillProp* pAddSkillProp;
pMover->GetSkillProp( &pSkillProp, &pAddSkillProp, pItemProp->dwActiveSkill, 1, "CWndMgr::PutToolTip_Item" );
if( pAddSkillProp )
{
g_WndMng.PutDestParam( pAddSkillProp->dwDestParam[0], pAddSkillProp->dwDestParam[1],
pAddSkillProp->nAdjParamVal[0], pAddSkillProp->nAdjParamVal[1], strEdit );
}
}
}
}
break;
}
default:
{
break;
}
}
if( m_pItem->IsEatPet() )
{
if( pItemProp->dwActiveSkill != NULL_ID )
{
ItemProp *pSkillProp;
AddSkillProp* pAddSkillProp;
pMover->GetSkillProp( &pSkillProp, &pAddSkillProp, pItemProp->dwActiveSkill, 1, "CWndMgr::PutToolTip_Item" );
if( pAddSkillProp )
{
g_WndMng.PutDestParam( pAddSkillProp->dwDestParam[0], pAddSkillProp->dwDestParam[1],
pAddSkillProp->nAdjParamVal[0], pAddSkillProp->nAdjParamVal[1], strEdit );
}
}
}
if( m_pItem->IsVisPet( ) )
g_WndMng.PutVisPetInfo( m_pItem, &strEdit );
g_WndMng.PutCoolTime( pMover, m_pItem, &strEdit ); // ÄðŸÀÓ
g_WndMng.PutEndurance( m_pItem, &strEdit, 0 ); // ³»±¸·Â
g_WndMng.PutKeepTime( m_pItem, &strEdit ); // »ç¿ëÇÒ¼ö ÀÖ´Â ½Ã°£
if( pItemProp->dwItemKind3 == IK3_EGG && m_pItem->m_pPet )//&& pItemElem->m_pPet->GetLevel() != PL_EGG )
g_WndMng.PutPetInfo( m_pItem, &strEdit );
if( pItemProp->dwID == II_SYS_SYS_SCR_PET_FEED_POCKET ) //¸ÔÀÌ ÁÖ¸Ó´Ï ÅøÆÁ
g_WndMng.PutPetFeedPocket( m_pItem, &strEdit );
//g_WndMng.PutPiercingOpt( m_pItem, &strEdit );
g_WndMng.PutAwakeningBlessing( m_pItem, &strEdit );
if( (pItemProp->dwItemKind2 == IK2_WEAPON_DIRECT || pItemProp->dwItemKind2 == IK2_WEAPON_MAGIC) && m_pItem->GetProp()->dwReferStat1 == WEAPON_ULTIMATE )
g_WndMng.PutAddedOpt( m_pItem, &strEdit );
if( (pItemProp->dwItemKind2 == IK2_WEAPON_DIRECT || pItemProp->dwItemKind2 == IK2_WEAPON_MAGIC) && pItemProp->IsUltimate() )
m_pUltimateTexture->Render( p2DRender, CPoint( 10, 55) );
// else if( (pItemProp->dwItemKind2 == IK2_WEAPON_DIRECT || pItemProp->dwItemKind2 == IK2_WEAPON_MAGIC) && pItemProp->IsBaruna() )
// m_pBarunaTexture->Render( p2DRender, CPoint( 10, 55) );
m_p2DRender->TextOut_EditString(rectItem.left - 80, rectItem.bottom + 15, strEdit);
this->SetWndSize(90 + p2DRender->m_pFont->GetTextExtent(strEdit).cx, 100 + p2DRender->m_pFont->GetTextExtent(strEdit).cy);
}
}
void CWndLinkedItem::SetItem(CItemElem *pItem)
{
if( pItem && pItem->GetProp() )
this->m_pItem = pItem;
}
#endif //__MODEL_CHANGE
|
Your's too.
PHP Code:
void CWndLinkedItem::OnDraw(C2DRender *p2DRender) { if(m_pItem) { CMover* pMover = g_pPlayer; m_pItem->GetTexture()->Render(p2DRender,rectItem.TopLeft(),255); CEditString strEdit; ItemProp* pItemProp = m_pItem->GetProp(); strEdit.SetParsingString(""); strEdit.Init( CWndBase::m_Theme.m_pFontText, &CRect( 0, 0, 240, 0 ) ); DWORD dwColorBuf = g_WndMng.PutItemName(m_pItem, &strEdit); g_WndMng.PutItemAbilityPiercing( m_pItem, &strEdit, dwColorBuf ); if( m_pItem->GetProp() && m_pItem->GetProp()->dwFlag & IP_FLAG_EQUIP_BIND ) { strEdit.AddString("\r\n"); if( m_pItem->IsFlag( CItemElem::binds ) ) strEdit.AddString( GETTEXT( TID_TOOLTIP_EQUIPBIND_AFTER ), GETTEXTCOLOR( TID_TOOLTIP_EQUIPBIND_AFTER ) ); else strEdit.AddString( GETTEXT( TID_TOOLTIP_EQUIPBIND_BEFORE ), GETTEXTCOLOR( TID_TOOLTIP_EQUIPBIND_BEFORE ) ); } g_WndMng.PutWeapon( m_pItem, &strEdit ); CString strExp; #ifdef __MODEL_CHANGE g_WndMng.PutSex( pMover, m_pItem, &strEdit ); #endif //__MODEL_CHANGE switch( pItemProp->dwItemKind2 ) { case IK2_WEAPON_DIRECT: case IK2_WEAPON_MAGIC: case IK2_ARMORETC: case IK2_CLOTHETC: case IK2_ARMOR: case IK2_CLOTH: case IK2_BLINKWING: { g_WndMng.PutItemMinMax( pMover, m_pItem, &strEdit ); g_WndMng.PutItemSpeed( m_pItem, &strEdit ); if( pItemProp->dwItemKind3 == IK3_ELECARD ) g_WndMng.PutItemResist( m_pItem, &strEdit ); else if( m_pItem->m_nResistAbilityOption && ( pItemProp->dwItemKind1 == IK1_WEAPON || pItemProp->dwItemKind1 == IK1_ARMOR ) ) g_WndMng.PutItemResist( m_pItem, &strEdit ); g_WndMng.PutBaseResist( m_pItem, &strEdit ); // ¼Ó¼º ÀúÇ×·Â g_WndMng.PutBaseItemOpt( m_pItem, &strEdit ); g_WndMng.PutJob( pMover, m_pItem, &strEdit ); g_WndMng.PutLevel( pMover, m_pItem, &strEdit ); g_WndMng.PutCommand( m_pItem, &strEdit ); g_WndMng.PutItemGold( pMover, m_pItem, &strEdit, 0 ); // °¡°Ý g_WndMng.PutSetItemOpt( pMover, m_pItem, &strEdit ); g_WndMng.PutPiercingOpt( m_pItem, &strEdit ); g_WndMng.PutRandomOpt( m_pItem, &strEdit ); g_WndMng.PutEnchantOpt( pMover, m_pItem, &strEdit, 0 ); break; } case IK2_REFRESHER: case IK2_FOOD: case IK2_POTION: { g_WndMng.PutMedicine( m_pItem, m_pItem->GetProp()->dwDestParam1, pItemProp->nAdjParamVal1, &strEdit ); g_WndMng.PutMedicine( m_pItem, m_pItem->GetProp()->dwDestParam2, pItemProp->nAdjParamVal2, &strEdit ); break; } case IK2_JEWELRY: { g_WndMng.PutBaseItemOpt( m_pItem, &strEdit ); break; } case IK2_SYSTEM: { if( pItemProp->dwItemKind3 == IK3_VIS ) { g_WndMng.PutNeededVis( m_pItem, &strEdit ); g_WndMng.PutBaseItemOpt( m_pItem, &strEdit ); } if( m_pItem->m_dwItemId == II_SYS_SYS_SCR_SEALCHARACTER ) { g_WndMng.PutSealChar( m_pItem, &strEdit ); } break; } case IK2_GMTEXT: { if( pItemProp->dwItemKind3 == IK3_TEXT_DISGUISE ) { g_WndMng.PutDestParam( pItemProp->dwDestParam[0], pItemProp->dwDestParam[1], pItemProp->nAdjParamVal[0], pItemProp->nAdjParamVal[1], strEdit ); if( pItemProp->dwActiveSkill != NULL_ID ) { ItemProp *pSkillProp; AddSkillProp* pAddSkillProp; pMover->GetSkillProp( &pSkillProp, &pAddSkillProp, pItemProp->dwActiveSkill, 1, "CWndMgr::PutToolTip_Item" ); if( pAddSkillProp ) { g_WndMng.PutDestParam( pAddSkillProp->dwDestParam[0], pAddSkillProp->dwDestParam[1], pAddSkillProp->nAdjParamVal[0], pAddSkillProp->nAdjParamVal[1], strEdit ); } } } } break; } default: { break; } } if( m_pItem->IsEatPet() ) { if( pItemProp->dwActiveSkill != NULL_ID ) { ItemProp *pSkillProp; AddSkillProp* pAddSkillProp; pMover->GetSkillProp( &pSkillProp, &pAddSkillProp, pItemProp->dwActiveSkill, 1, "CWndMgr::PutToolTip_Item" ); if( pAddSkillProp ) { g_WndMng.PutDestParam( pAddSkillProp->dwDestParam[0], pAddSkillProp->dwDestParam[1], pAddSkillProp->nAdjParamVal[0], pAddSkillProp->nAdjParamVal[1], strEdit ); } } } if( m_pItem->IsVisPet( ) ) g_WndMng.PutVisPetInfo( m_pItem, &strEdit ); g_WndMng.PutCoolTime( pMover, m_pItem, &strEdit ); // ÄðŸÀÓ g_WndMng.PutEndurance( m_pItem, &strEdit, 0 ); // ³»±¸·Â g_WndMng.PutKeepTime( m_pItem, &strEdit ); // »ç¿ëÇÒ¼ö ÀÖ´Â ½Ã°£ if( pItemProp->dwItemKind3 == IK3_EGG && m_pItem->m_pPet )//&& pItemElem->m_pPet->GetLevel() != PL_EGG ) g_WndMng.PutPetInfo( m_pItem, &strEdit ); if( pItemProp->dwID == II_SYS_SYS_SCR_PET_FEED_POCKET ) //¸ÔÀÌ ÁÖ¸Ó´Ï ÅøÆÁ g_WndMng.PutPetFeedPocket( m_pItem, &strEdit ); //g_WndMng.PutPiercingOpt( m_pItem, &strEdit ); g_WndMng.PutAwakeningBlessing( m_pItem, &strEdit ); if( (pItemProp->dwItemKind2 == IK2_WEAPON_DIRECT || pItemProp->dwItemKind2 == IK2_WEAPON_MAGIC) && m_pItem->GetProp()->dwReferStat1 == WEAPON_ULTIMATE ) g_WndMng.PutAddedOpt( m_pItem, &strEdit ); if( (pItemProp->dwItemKind2 == IK2_WEAPON_DIRECT || pItemProp->dwItemKind2 == IK2_WEAPON_MAGIC) && pItemProp->IsUltimate() ) m_pUltimateTexture->Render( p2DRender, CPoint( 10, 55) ); // else if( (pItemProp->dwItemKind2 == IK2_WEAPON_DIRECT || pItemProp->dwItemKind2 == IK2_WEAPON_MAGIC) && pItemProp->IsBaruna() ) // m_pBarunaTexture->Render( p2DRender, CPoint( 10, 55) ); m_p2DRender->TextOut_EditString(rectItem.left - 80, rectItem.bottom + 15, strEdit); this->SetWndSize(90 + p2DRender->m_pFont->GetTextExtent(strEdit).cx, 100 + p2DRender->m_pFont->GetTextExtent(strEdit).cy); } } void CWndLinkedItem::SetItem(CItemElem *pItem) { if( pItem && pItem->GetProp() ) this->m_pItem = pItem; }
|
|
|
08/27/2014, 21:54
|
#6
|
elite*gold: 0
Join Date: Aug 2014
Posts: 113
Received Thanks: 36
|
Quote:
Originally Posted by max982
Your's too.
PHP Code:
void CWndLinkedItem::OnDraw(C2DRender *p2DRender) { if(m_pItem) { CMover* pMover = g_pPlayer; m_pItem->GetTexture()->Render(p2DRender,rectItem.TopLeft(),255); CEditString strEdit; ItemProp* pItemProp = m_pItem->GetProp(); strEdit.SetParsingString(""); strEdit.Init( CWndBase::m_Theme.m_pFontText, &CRect( 0, 0, 240, 0 ) ); DWORD dwColorBuf = g_WndMng.PutItemName(m_pItem, &strEdit); g_WndMng.PutItemAbilityPiercing( m_pItem, &strEdit, dwColorBuf ); if( m_pItem->GetProp() && m_pItem->GetProp()->dwFlag & IP_FLAG_EQUIP_BIND ) { strEdit.AddString("\r\n"); if( m_pItem->IsFlag( CItemElem::binds ) ) strEdit.AddString( GETTEXT( TID_TOOLTIP_EQUIPBIND_AFTER ), GETTEXTCOLOR( TID_TOOLTIP_EQUIPBIND_AFTER ) ); else strEdit.AddString( GETTEXT( TID_TOOLTIP_EQUIPBIND_BEFORE ), GETTEXTCOLOR( TID_TOOLTIP_EQUIPBIND_BEFORE ) ); } g_WndMng.PutWeapon( m_pItem, &strEdit ); CString strExp; #ifdef __MODEL_CHANGE g_WndMng.PutSex( pMover, m_pItem, &strEdit ); #endif //__MODEL_CHANGE switch( pItemProp->dwItemKind2 ) { case IK2_WEAPON_DIRECT: case IK2_WEAPON_MAGIC: case IK2_ARMORETC: case IK2_CLOTHETC: case IK2_ARMOR: case IK2_CLOTH: case IK2_BLINKWING: { g_WndMng.PutItemMinMax( pMover, m_pItem, &strEdit ); g_WndMng.PutItemSpeed( m_pItem, &strEdit ); if( pItemProp->dwItemKind3 == IK3_ELECARD ) g_WndMng.PutItemResist( m_pItem, &strEdit ); else if( m_pItem->m_nResistAbilityOption && ( pItemProp->dwItemKind1 == IK1_WEAPON || pItemProp->dwItemKind1 == IK1_ARMOR ) ) g_WndMng.PutItemResist( m_pItem, &strEdit ); g_WndMng.PutBaseResist( m_pItem, &strEdit ); // ¼Ó¼º ÀúÇ×·Â g_WndMng.PutBaseItemOpt( m_pItem, &strEdit ); g_WndMng.PutJob( pMover, m_pItem, &strEdit ); g_WndMng.PutLevel( pMover, m_pItem, &strEdit ); g_WndMng.PutCommand( m_pItem, &strEdit ); g_WndMng.PutItemGold( pMover, m_pItem, &strEdit, 0 ); // °¡°Ý g_WndMng.PutSetItemOpt( pMover, m_pItem, &strEdit ); g_WndMng.PutPiercingOpt( m_pItem, &strEdit ); g_WndMng.PutRandomOpt( m_pItem, &strEdit ); g_WndMng.PutEnchantOpt( pMover, m_pItem, &strEdit, 0 ); break; } case IK2_REFRESHER: case IK2_FOOD: case IK2_POTION: { g_WndMng.PutMedicine( m_pItem, m_pItem->GetProp()->dwDestParam1, pItemProp->nAdjParamVal1, &strEdit ); g_WndMng.PutMedicine( m_pItem, m_pItem->GetProp()->dwDestParam2, pItemProp->nAdjParamVal2, &strEdit ); break; } case IK2_JEWELRY: { g_WndMng.PutBaseItemOpt( m_pItem, &strEdit ); break; } case IK2_SYSTEM: { if( pItemProp->dwItemKind3 == IK3_VIS ) { g_WndMng.PutNeededVis( m_pItem, &strEdit ); g_WndMng.PutBaseItemOpt( m_pItem, &strEdit ); } if( m_pItem->m_dwItemId == II_SYS_SYS_SCR_SEALCHARACTER ) { g_WndMng.PutSealChar( m_pItem, &strEdit ); } break; } case IK2_GMTEXT: { if( pItemProp->dwItemKind3 == IK3_TEXT_DISGUISE ) { g_WndMng.PutDestParam( pItemProp->dwDestParam[0], pItemProp->dwDestParam[1], pItemProp->nAdjParamVal[0], pItemProp->nAdjParamVal[1], strEdit ); if( pItemProp->dwActiveSkill != NULL_ID ) { ItemProp *pSkillProp; AddSkillProp* pAddSkillProp; pMover->GetSkillProp( &pSkillProp, &pAddSkillProp, pItemProp->dwActiveSkill, 1, "CWndMgr::PutToolTip_Item" ); if( pAddSkillProp ) { g_WndMng.PutDestParam( pAddSkillProp->dwDestParam[0], pAddSkillProp->dwDestParam[1], pAddSkillProp->nAdjParamVal[0], pAddSkillProp->nAdjParamVal[1], strEdit ); } } } } break; } default: { break; } } if( m_pItem->IsEatPet() ) { if( pItemProp->dwActiveSkill != NULL_ID ) { ItemProp *pSkillProp; AddSkillProp* pAddSkillProp; pMover->GetSkillProp( &pSkillProp, &pAddSkillProp, pItemProp->dwActiveSkill, 1, "CWndMgr::PutToolTip_Item" ); if( pAddSkillProp ) { g_WndMng.PutDestParam( pAddSkillProp->dwDestParam[0], pAddSkillProp->dwDestParam[1], pAddSkillProp->nAdjParamVal[0], pAddSkillProp->nAdjParamVal[1], strEdit ); } } } if( m_pItem->IsVisPet( ) ) g_WndMng.PutVisPetInfo( m_pItem, &strEdit ); g_WndMng.PutCoolTime( pMover, m_pItem, &strEdit ); // ÄðŸÀÓ g_WndMng.PutEndurance( m_pItem, &strEdit, 0 ); // ³»±¸·Â g_WndMng.PutKeepTime( m_pItem, &strEdit ); // »ç¿ëÇÒ¼ö ÀÖ´Â ½Ã°£ if( pItemProp->dwItemKind3 == IK3_EGG && m_pItem->m_pPet )//&& pItemElem->m_pPet->GetLevel() != PL_EGG ) g_WndMng.PutPetInfo( m_pItem, &strEdit ); if( pItemProp->dwID == II_SYS_SYS_SCR_PET_FEED_POCKET ) //¸ÔÀÌ ÁÖ¸Ó´Ï ÅøÆÁ g_WndMng.PutPetFeedPocket( m_pItem, &strEdit ); //g_WndMng.PutPiercingOpt( m_pItem, &strEdit ); g_WndMng.PutAwakeningBlessing( m_pItem, &strEdit ); if( (pItemProp->dwItemKind2 == IK2_WEAPON_DIRECT || pItemProp->dwItemKind2 == IK2_WEAPON_MAGIC) && m_pItem->GetProp()->dwReferStat1 == WEAPON_ULTIMATE ) g_WndMng.PutAddedOpt( m_pItem, &strEdit ); if( (pItemProp->dwItemKind2 == IK2_WEAPON_DIRECT || pItemProp->dwItemKind2 == IK2_WEAPON_MAGIC) && pItemProp->IsUltimate() ) m_pUltimateTexture->Render( p2DRender, CPoint( 10, 55) ); // else if( (pItemProp->dwItemKind2 == IK2_WEAPON_DIRECT || pItemProp->dwItemKind2 == IK2_WEAPON_MAGIC) && pItemProp->IsBaruna() ) // m_pBarunaTexture->Render( p2DRender, CPoint( 10, 55) ); m_p2DRender->TextOut_EditString(rectItem.left - 80, rectItem.bottom + 15, strEdit); this->SetWndSize(90 + p2DRender->m_pFont->GetTextExtent(strEdit).cx, 100 + p2DRender->m_pFont->GetTextExtent(strEdit).cy); } } void CWndLinkedItem::SetItem(CItemElem *pItem) { if( pItem && pItem->GetProp() ) this->m_pItem = pItem; }
|
All of our parents are proud xD , ty max982
|
|
|
08/27/2014, 23:24
|
#7
|
elite*gold: 0
Join Date: Jun 2013
Posts: 166
Received Thanks: 259
|
Quote:
Originally Posted by max982
Your's too.
PHP Code:
void CWndLinkedItem::OnDraw(C2DRender *p2DRender) { if(m_pItem) { CMover* pMover = g_pPlayer; m_pItem->GetTexture()->Render(p2DRender,rectItem.TopLeft(),255); CEditString strEdit; ItemProp* pItemProp = m_pItem->GetProp(); strEdit.SetParsingString(""); strEdit.Init( CWndBase::m_Theme.m_pFontText, &CRect( 0, 0, 240, 0 ) ); DWORD dwColorBuf = g_WndMng.PutItemName(m_pItem, &strEdit); g_WndMng.PutItemAbilityPiercing( m_pItem, &strEdit, dwColorBuf ); if( m_pItem->GetProp() && m_pItem->GetProp()->dwFlag & IP_FLAG_EQUIP_BIND ) { strEdit.AddString("\r\n"); if( m_pItem->IsFlag( CItemElem::binds ) ) strEdit.AddString( GETTEXT( TID_TOOLTIP_EQUIPBIND_AFTER ), GETTEXTCOLOR( TID_TOOLTIP_EQUIPBIND_AFTER ) ); else strEdit.AddString( GETTEXT( TID_TOOLTIP_EQUIPBIND_BEFORE ), GETTEXTCOLOR( TID_TOOLTIP_EQUIPBIND_BEFORE ) ); } g_WndMng.PutWeapon( m_pItem, &strEdit ); CString strExp; #ifdef __MODEL_CHANGE g_WndMng.PutSex( pMover, m_pItem, &strEdit ); #endif //__MODEL_CHANGE
switch( pItemProp->dwItemKind2 ) { case IK2_WEAPON_DIRECT: case IK2_WEAPON_MAGIC: case IK2_ARMORETC: case IK2_CLOTHETC: case IK2_ARMOR: case IK2_CLOTH: case IK2_BLINKWING: { g_WndMng.PutItemMinMax( pMover, m_pItem, &strEdit ); g_WndMng.PutItemSpeed( m_pItem, &strEdit ); if( pItemProp->dwItemKind3 == IK3_ELECARD ) g_WndMng.PutItemResist( m_pItem, &strEdit ); else if( m_pItem->m_nResistAbilityOption && ( pItemProp->dwItemKind1 == IK1_WEAPON || pItemProp->dwItemKind1 == IK1_ARMOR ) ) g_WndMng.PutItemResist( m_pItem, &strEdit ); g_WndMng.PutBaseResist( m_pItem, &strEdit ); // ¼Ó¼º ÀúÇ×·Â g_WndMng.PutBaseItemOpt( m_pItem, &strEdit );
g_WndMng.PutJob( pMover, m_pItem, &strEdit ); g_WndMng.PutLevel( pMover, m_pItem, &strEdit ); g_WndMng.PutCommand( m_pItem, &strEdit ); g_WndMng.PutItemGold( pMover, m_pItem, &strEdit, 0 ); // °¡°Ý g_WndMng.PutSetItemOpt( pMover, m_pItem, &strEdit ); g_WndMng.PutPiercingOpt( m_pItem, &strEdit ); g_WndMng.PutRandomOpt( m_pItem, &strEdit ); g_WndMng.PutEnchantOpt( pMover, m_pItem, &strEdit, 0 ); break; } case IK2_REFRESHER: case IK2_FOOD: case IK2_POTION: { g_WndMng.PutMedicine( m_pItem, m_pItem->GetProp()->dwDestParam1, pItemProp->nAdjParamVal1, &strEdit ); g_WndMng.PutMedicine( m_pItem, m_pItem->GetProp()->dwDestParam2, pItemProp->nAdjParamVal2, &strEdit ); break; } case IK2_JEWELRY: { g_WndMng.PutBaseItemOpt( m_pItem, &strEdit ); break; } case IK2_SYSTEM: { if( pItemProp->dwItemKind3 == IK3_VIS ) { g_WndMng.PutNeededVis( m_pItem, &strEdit ); g_WndMng.PutBaseItemOpt( m_pItem, &strEdit ); } if( m_pItem->m_dwItemId == II_SYS_SYS_SCR_SEALCHARACTER ) { g_WndMng.PutSealChar( m_pItem, &strEdit ); } break; }
case IK2_GMTEXT: { if( pItemProp->dwItemKind3 == IK3_TEXT_DISGUISE ) { g_WndMng.PutDestParam( pItemProp->dwDestParam[0], pItemProp->dwDestParam[1], pItemProp->nAdjParamVal[0], pItemProp->nAdjParamVal[1], strEdit );
if( pItemProp->dwActiveSkill != NULL_ID ) { ItemProp *pSkillProp; AddSkillProp* pAddSkillProp; pMover->GetSkillProp( &pSkillProp, &pAddSkillProp, pItemProp->dwActiveSkill, 1, "CWndMgr::PutToolTip_Item" ); if( pAddSkillProp ) { g_WndMng.PutDestParam( pAddSkillProp->dwDestParam[0], pAddSkillProp->dwDestParam[1], pAddSkillProp->nAdjParamVal[0], pAddSkillProp->nAdjParamVal[1], strEdit ); } } } } break; } default: { break; } }
if( m_pItem->IsEatPet() ) { if( pItemProp->dwActiveSkill != NULL_ID ) { ItemProp *pSkillProp; AddSkillProp* pAddSkillProp; pMover->GetSkillProp( &pSkillProp, &pAddSkillProp, pItemProp->dwActiveSkill, 1, "CWndMgr::PutToolTip_Item" ); if( pAddSkillProp ) { g_WndMng.PutDestParam( pAddSkillProp->dwDestParam[0], pAddSkillProp->dwDestParam[1], pAddSkillProp->nAdjParamVal[0], pAddSkillProp->nAdjParamVal[1], strEdit ); } } } if( m_pItem->IsVisPet( ) ) g_WndMng.PutVisPetInfo( m_pItem, &strEdit );
g_WndMng.PutCoolTime( pMover, m_pItem, &strEdit ); // ÄðŸÀÓ g_WndMng.PutEndurance( m_pItem, &strEdit, 0 ); // ³»±¸·Â g_WndMng.PutKeepTime( m_pItem, &strEdit ); // »ç¿ëÇÒ¼ö ÀÖ´Â ½Ã°£
if( pItemProp->dwItemKind3 == IK3_EGG && m_pItem->m_pPet )//&& pItemElem->m_pPet->GetLevel() != PL_EGG ) g_WndMng.PutPetInfo( m_pItem, &strEdit ); if( pItemProp->dwID == II_SYS_SYS_SCR_PET_FEED_POCKET ) //¸ÔÀÌ ÁÖ¸Ó´Ï ÅøÆÁ g_WndMng.PutPetFeedPocket( m_pItem, &strEdit );
//g_WndMng.PutPiercingOpt( m_pItem, &strEdit );
g_WndMng.PutAwakeningBlessing( m_pItem, &strEdit );
if( (pItemProp->dwItemKind2 == IK2_WEAPON_DIRECT || pItemProp->dwItemKind2 == IK2_WEAPON_MAGIC) && m_pItem->GetProp()->dwReferStat1 == WEAPON_ULTIMATE ) g_WndMng.PutAddedOpt( m_pItem, &strEdit );
if( (pItemProp->dwItemKind2 == IK2_WEAPON_DIRECT || pItemProp->dwItemKind2 == IK2_WEAPON_MAGIC) && pItemProp->IsUltimate() ) m_pUltimateTexture->Render( p2DRender, CPoint( 10, 55) ); // else if( (pItemProp->dwItemKind2 == IK2_WEAPON_DIRECT || pItemProp->dwItemKind2 == IK2_WEAPON_MAGIC) && pItemProp->IsBaruna() ) // m_pBarunaTexture->Render( p2DRender, CPoint( 10, 55) ); m_p2DRender->TextOut_EditString(rectItem.left - 80, rectItem.bottom + 15, strEdit); this->SetWndSize(90 + p2DRender->m_pFont->GetTextExtent(strEdit).cx, 100 + p2DRender->m_pFont->GetTextExtent(strEdit).cy); } }
void CWndLinkedItem::SetItem(CItemElem *pItem) { if( pItem && pItem->GetProp() ) this->m_pItem = pItem; }
|
Your arguments are invalid since the call to PutSex has no relation to the model change itself.
I'd recommend to remove the condition instead of adding an ending macro.
|
|
|
08/28/2014, 00:10
|
#8
|
elite*gold: 0
Join Date: Aug 2014
Posts: 113
Received Thanks: 36
|
Quote:
Originally Posted by WurstbrotQT
Your arguments are invalid since the call to PutSex has no relation to the model change itself.
I'd recommend to remove the condition instead of adding an ending macro.
|
I already changed everything this item link sucks , i used yours ( GoW)
but thank you anyway.
|
|
|
|
Similar Threads
|
File's not found at the IIS Folder
04/06/2014 - SRO Private Server - 2 Replies
after i have finished all steps on my server setup i got no files on the IIS Folder can i continue without it or what would i do ?
http://i.epvpimg.com/LoRhd.png
|
Tetris HACK Found By ME lMarco666l 1 Line is 20000 Combo Unlimited KO's 21/01/2012
03/14/2012 - Facebook - 23 Replies
Tetris HACK Found By ME lMarco666l 1 Line is 20000 Combo Unlimited KO's 21/01/2012
Have fun With this Preview :)
Tetris HACK Found By ME lMarco666l 1 Line is 20000 Combo Unlimited KO's 21/01/2012 - YouTube
More to come :D
|
[Help]File/Session/provider.ccc Line 12 and CMD crashed
02/14/2011 - Dekaron Private Server - 1 Replies
i having this problem alot alot of time 3696 File/Session/provider.ccc Line 12 and i noticed it came up tat problem it was my CMD not working it crashed..any1 can help me out tat?
|
no sm.txt file found
04/22/2007 - Silkroad Online - 3 Replies
Hey guys,
Everytime i want to start iSRObot i get this massage:
No sm.txt file found. Please creat one and restart the client.
okay... so lets make a sm.txt. file, and i created one. Started bot again, failed.
wtf is going on with the bot? there is a sm.txt file and it tells me creat one! i installed the client 100 times again and again, nothing helped. so you can help me?
|
All times are GMT +1. The time now is 12:24.
|
|