📄 cwindowsystemfunc.cpp
字号:
#include "stdafx.h"
#include "cWindowSystemFunc.h"
#include "WindowIDEnum.h"
#include "interface/cWindowManager.h"
#include "globaleventfunc.h"
#include "GameIn.h"
#include "CharMake.h"
#include "./Audio/MHAudioManager.h"
#include "ChatManager.h"
#include "ObjectManager.h"
#include "InventoryExDialog.h"
#include "PyogukDialog.h"
#include "MunpaDialog.h"
#include "QuickDialog.h"
#include "MugongDialog.h"
#include "ExchangeDialog.h"
#include "StreetStall.h"
#include "MonsterGuageDlg.h"
#include "DebugDlg.h"
#include "ChannelDialog.h"
#include "QuickManager.h"
#include "Item.h"
#include "MugongBase.h"
#include "ExchangeItem.h"
#include "cMsgBox.h"
#include "cImeEx.h"
#include "CharMakeDialog.h"
#include "MainTitle.h"
#include "ServerListDialog.h"
#include "MenuSlotDialog.h"
#include "PKManager.h"
#ifdef TAIWAN_LOCAL
#include "ChinaAdviceDlg.h"
#endif
//
// Drag & drop Process callback Function
//
void cbDragDropProcess(LONG curDragX, LONG curDragY, LONG id, LONG beforeDragX, LONG beforeDragY)
{
cDialog * srcDlg = WINDOWMGR->GetWindowForID(id);
if(!srcDlg) return;
ASSERT(srcDlg);
// srcDlg->ExcuteCBFunc( WE_DRAGEND );
if(srcDlg->GetType() & WT_ICON) // 酒捞能鸥涝捞促
{
//////////////////////////////////////////////////////////////////////////
// YHEDIT [8/27/2003]
WORD wtype = srcDlg->GetType();
if( !(wtype == WT_ITEM ||
wtype == WT_MUGONG ||
wtype == WT_JINBUB ||
wtype == WT_QUICKITEM ||
wtype == WT_EXCHANGEITEM ||
wtype == WT_STALLITEM ||
wtype == WT_DEALITEM ||
wtype == WT_ABILITYICON) )
{
ASSERT(0);
}
cIcon* pIcon = (cIcon*)srcDlg;
cDialog * targetdlg = WINDOWMGR->GetWindowForXYExceptIcon(curDragX,curDragY);
if(targetdlg)
{
// quest 东矫... jsd(2004.09.14)
if( pIcon->CanMoveToDialog(targetdlg) == FALSE )
{
WINDOWMGR->MsgBox(MBI_QUEST_NONE, MBT_OK, CHATMGR->GetChatMsg(652));
srcDlg->SetAbsXY((LONG)beforeDragX, (LONG)beforeDragY); // SetDragEnd()啊 乐绰单 鞘夸茄啊???眉农鞘
}
else
{
if(!targetdlg->FakeMoveIcon(curDragX,curDragY,(cIcon*)srcDlg))
{
//登倒覆
//WINDOWMGR->BackDragWindow();
srcDlg->SetAbsXY((LONG)beforeDragX, (LONG)beforeDragY); // SetDragEnd()啊 乐绰单 鞘夸茄啊???眉农鞘
}
switch(targetdlg->GetType())
{
case WT_QUICKDIALOG:
{
AUDIOMGR->Play(61, HERO);
}
break;
case WT_INVENTORYDIALOG:
break;
default:
{
AUDIOMGR->Play(58, HERO);
}
}
}
}
else
{
// drop in GROUND
// or dump icon and item, mugong icon
if( pIcon->CanDelete() )
{
if(GAMEIN->GetGameInInitKind() != eGameInInitKind_SuryunEnter)
SendDeleteIconMsg((cIcon*)srcDlg);
}
else
WINDOWMGR->MsgBox(MBI_QUEST_NONE, MBT_OK, CHATMGR->GetChatMsg(652));
srcDlg->SetAbsXY((LONG)beforeDragX, (LONG)beforeDragY); // SetDragEnd()啊 乐绰单 鞘夸茄啊???眉农鞘
}
/* if(targetdlg)
{
// jds quest item (2004.09.08)
if( ((CItem*)srcDlg)->GetItemKind() != eQUEST_ITEM_EQUIP )
{
if(!targetdlg->FakeMoveIcon(curDragX,curDragY,(cIcon*)srcDlg))
{
//登倒覆
//WINDOWMGR->BackDragWindow();
srcDlg->SetAbsXY((LONG)beforeDragX, (LONG)beforeDragY); // SetDragEnd()啊 乐绰单 鞘夸茄啊???眉农鞘
}
switch(targetdlg->GetType())
{
case WT_QUICKDIALOG:
{
AUDIOMGR->Play(61, HERO);
}
break;
case WT_INVENTORYDIALOG:
break;
default:
{
AUDIOMGR->Play(58, HERO);
}
}
}
else
{
if( targetdlg->GetType() == WT_INVENTORYDIALOG )
{
if(!targetdlg->FakeMoveIcon(curDragX,curDragY,(cIcon*)srcDlg))
{
srcDlg->SetAbsXY((LONG)beforeDragX, (LONG)beforeDragY);
}
}
else
{
srcDlg->SetAbsXY((LONG)beforeDragX, (LONG)beforeDragY);
WINDOWMGR->MsgBox(MBI_QUEST_NONE, MBT_OK, CHATMGR->GetChatMsg(652));
}
}
}
else
{
// jds quest item (2004.09.08)
if( ((CItem*)srcDlg)->GetItemKind() != eQUEST_ITEM_EQUIP )
{
// drop in GROUND
// or dump icon and item, mugong icon
SendDeleteIconMsg((cIcon*)srcDlg);
srcDlg->SetAbsXY((LONG)beforeDragX, (LONG)beforeDragY); // SetDragEnd()啊 乐绰单 鞘夸茄啊???眉农鞘
}
else
{
srcDlg->SetAbsXY((LONG)beforeDragX, (LONG)beforeDragY);
WINDOWMGR->MsgBox(MBI_QUEST_NONE, MBT_OK, CHATMGR->GetChatMsg(652));
}
}
*/
//////////////////////////////////////////////////////////////////////////
// NACK啊 吭阑 锭 盔贰 磊府肺 登倒覆
//srcDlg->SetAbsXY((LONG)beforeDragX, (LONG)beforeDragY); // SetDragEnd()啊 乐绰单 鞘夸茄啊???眉农鞘
ASSERT(srcDlg->GetParent());
if(srcDlg->GetParent()) //烙矫促!!! 狞酒捞捞袍 俊矾促. 捞繁版快 救积扁霸 荐沥窍矫坷!
{
if(!srcDlg->GetParent()->IsActive())
srcDlg->SetActive(FALSE);
srcDlg->SetDepend(TRUE);
}
else if( srcDlg->GetType() == WT_QUICKITEM )
{
QUICKMGR->ReleaseQuickItem( (CQuickItem*)srcDlg );
}
WINDOWMGR->SetMouseInputProcessed();
}
}
void SendDeleteIconMsg(cIcon * pIcon)
{
if(pIcon->GetType() == WT_ITEM)
{
if( PKMGR->IsPKLooted() ) return; //msg唱啊具瘤. KES 040801
GAMEIN->GetInventoryDialog()->FakeDeleteItem(((CItem *)pIcon));
WINDOWMGR->MsgBox( MBI_DELETEICONCHECK, MBT_YESNO, CHATMGR->GetChatMsg(363) );
GAMEIN->GetInventoryDialog()->SetDisable( TRUE );
GAMEIN->GetPyogukDialog()->SetDisable( TRUE );
GAMEIN->GetMunpaDialog()->SetDisable( TRUE );
}
else if(pIcon->GetType() == WT_QUICKITEM)
{
GAMEIN->GetQuickDialog()->FakeDeleteQuickItem( (CQuickItem *)pIcon );
AUDIOMGR->Play(67, HERO);
}
else if(pIcon->GetType() == WT_MUGONG || pIcon->GetType() == WT_JINBUB )
{
GAMEIN->GetMugongDialog()->FakeDeleteMugong(((CMugongBase*)pIcon));
WINDOWMGR->MsgBox(MBI_MUGONGDELETE, MBT_YESNO, CHATMGR->GetChatMsg(190));
GAMEIN->GetMugongDialog()->SetDisable( TRUE );
}
else if( pIcon->GetType() == WT_EXCHANGEITEM )
{
GAMEIN->GetExchangeDialog()->FakeDeleteItem(((CExchangeItem*)pIcon)->GetPosition());
AUDIOMGR->Play(67, HERO);
}
else if( pIcon->GetType() == WT_STALLITEM )
{
GAMEIN->GetStreetStallDialog()->FakeDeleteItem( ((CExchangeItem*)pIcon)->GetPosition() );
AUDIOMGR->Play(67, HERO);
}
else if( pIcon->GetType() == WT_MENUICON )
{
GAMEIN->GetMenuSlotDialog()->FakeDeleteIcon( (CMenuIcon*)pIcon );
AUDIOMGR->Play(67, HERO);
}
}
//
// Window Create and WindowSystem add Func
//
//
void CreateMainTitle_m()
{
#ifdef _FILE_BIN_
cWindow* window = WINDOWMGR->GetDlgInfoFromFile("./image/IDDlg.bin", "rb");
#else
cWindow* window = WINDOWMGR->GetDlgInfoFromFile("./image/IDDlg.txt");
#endif
WINDOWMGR->AddWindow(window);
cEditBox* pEdit;
pEdit = (cEditBox*)((cDialog*)window)->GetWindowForID( MT_IDEDITBOX );
if(GAMERESRCMNGR->m_GameDesc.LimitDay != 0 && GAMERESRCMNGR->m_GameDesc.LimitDay >= GetCurTimeValue())
pEdit->SetEditText(GAMERESRCMNGR->m_GameDesc.LimitID);
pEdit->SetValidCheck( VCM_ID );
pEdit = (cEditBox*)((cDialog*)window)->GetWindowForID( MT_PWDEDITBOX );
if(GAMERESRCMNGR->m_GameDesc.LimitDay != 0 && GAMERESRCMNGR->m_GameDesc.LimitDay >= GetCurTimeValue())
pEdit->SetEditText(GAMERESRCMNGR->m_GameDesc.LimitPWD);
pEdit->SetValidCheck( VCM_PASSWORD );
#ifndef TAIWAN_LOCAL
#ifdef _FILE_BIN_
cWindow* window1 = WINDOWMGR->GetDlgInfoFromFile("./image/copyright.bin", "rb");
#else
cWindow* window1 = WINDOWMGR->GetDlgInfoFromFile("./image/copyright.txt");
#endif
WINDOWMGR->AddWindow(window1);
#else //TAIWAN_LOCAL
#ifdef _FILE_BIN_
cWindow* window2 = WINDOWMGR->GetDlgInfoFromFile( "./image/CNAdviceDlg.bin", "rb" );
#else
cWindow* window2 = WINDOWMGR->GetDlgInfoFromFile( "./image/CNAdviceDlg.txt" );
#endif
((CChinaAdviceDlg*)window2)->Linking();
WINDOWMGR->AddWindow( window2 );
#endif
#ifdef _FILE_BIN_
cWindow* window3 = WINDOWMGR->GetDlgInfoFromFile( "./image/ServerListDlg.bin", "rb" );
#else
cWindow* window3 = WINDOWMGR->GetDlgInfoFromFile( "./image/ServerListDlg.txt" );
#endif
WINDOWMGR->AddWindow( window3 );
// dynamic dlg
#ifdef TAIWAN_LOCAL
#ifdef _FILE_BIN_
cWindow* window4 = WINDOWMGR->GetDlgInfoFromFile( "./image/Dynamic.bin", "rb" );
#else
cWindow* window4 = WINDOWMGR->GetDlgInfoFromFile( "./image/Dynamic.txt" );
#endif
WINDOWMGR->AddWindow( window4 );
#endif
}
void NewCreateCharSelect_m()
{
#ifdef _FILE_BIN_
cWindow * window = WINDOWMGR->GetDlgInfoFromFile("./image/CharSelectDlg.bin", "rb");
#else
cWindow * window = WINDOWMGR->GetDlgInfoFromFile("./image/CharSelectDlg.txt");
#endif
WINDOWMGR->AddWindow(window);
// taiyo interface com
//cWindow * window1 = WINDOWMGR->GetDlgInfoFromFile("./image/NewCharSelect/CharSelectMessage.txt");
//WINDOWMGR->AddWindow(window1);
}
void CreateCharMakeDlg()
{
#ifdef _FILE_BIN_
cWindow * window = WINDOWMGR->GetDlgInfoFromFile("./image/CharMakeDlg.bin", "rb");
#else
cWindow * window = WINDOWMGR->GetDlgInfoFromFile("./image/CharMakeDlg.txt");
#endif
WINDOWMGR->AddWindow(window);
CHARMAKE->SetCharMakeDialog((cCharMakeDlg*)window);
CHARMAKE->GetCharMakeDialog()->Linking();
cEditBox* pEdit = (cEditBox*)CHARMAKE->GetCharMakeDialog()->GetWindowForID( CMID_IDEDITBOX );
pEdit->SetValidCheck( VCM_CHARNAME );
}
void CharMessageDlg_m()
{
// cWindow * window = WINDOWMGR->GetDlgInfoFromFile("./image/CharMessage.txt");
// WINDOWMGR->AddWindow(window);
}
cWindow * CreateGameLoading_m()
{
#ifdef _FILE_BIN_
cWindow * window = WINDOWMGR->GetDlgInfoFromFile("./image/NewLoadDlg.bin", "rb");
#else
cWindow * window = WINDOWMGR->GetDlgInfoFromFile("./image/NewLoadDlg.txt");
#endif
WINDOWMGR->AddWindow(window);
return window;
}
//KES LOGO 031107
void CreateInitLogo_m()
{
#ifdef _FILE_BIN_
cWindow * window = WINDOWMGR->GetDlgInfoFromFile("./image/InitDlg.bin", "rb");
#else
cWindow * window = WINDOWMGR->GetDlgInfoFromFile("./image/InitDlg.txt");
#endif
WINDOWMGR->AddWindow(window);
}
void CreateMoneyDlg()
{
#ifdef _FILE_BIN_
cWindow * window = WINDOWMGR->GetDlgInfoFromFile("./image/moneyDlg.bin", "rb");
#else
cWindow * window = WINDOWMGR->GetDlgInfoFromFile("./image/moneyDlg.txt");
#endif
//window->SetID();
WINDOWMGR->AddWindow(window);
//GAMEIN->SetMoneyDialog((CMoneyDlg * )window);
}
void CreateMonsterGuageDlg()
{
#ifdef _FILE_BIN_
cWindow * window = WINDOWMGR->GetDlgInfoFromFile("./image/51.bin", "rb");
#else
cWindow * window = WINDOWMGR->GetDlgInfoFromFile("./image/51.txt");
#endif
WINDOWMGR->AddWindow(window);
GAMEIN->SetMonsterGuageDlg((CMonsterGuageDlg * )window);
GAMEIN->GetMonsterGuageDlg()->Linking();
}
void CreateChannelDlg()
{
#ifdef _FILE_BIN_
cWindow * window = WINDOWMGR->GetDlgInfoFromFile("./image/Channel.bin", "rb");
#else
cWindow * window = WINDOWMGR->GetDlgInfoFromFile("./image/Channel.txt");
#endif
WINDOWMGR->AddWindow(window);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -