⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cwindowsystemfunc.cpp

📁 墨香最新私服
💻 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 + -