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

📄 userinfomanager.cpp

📁 墨香最新私服
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	if( IsValidInterfacePos( pDlg->GetCaptionRect(), UII.DIALOG_INFO[eSD_Quest].lPosX, UII.DIALOG_INFO[eSD_Quest].lPosY ) )
		pDlg->SetAbsXY( UII.DIALOG_INFO[eSD_Quest].lPosX, UII.DIALOG_INFO[eSD_Quest].lPosY );
	if( m_bMapChange )
	{
		if( pDlg->IsActive() != UII.DIALOG_INFO[eSD_Quest].dwFlag & eUIF_ACTIVE )
			pDlg->SetActive( UII.DIALOG_INFO[eSD_Quest].dwFlag & eUIF_ACTIVE );
//		if( UII.DIALOG_INFO[eSD_Quest].dwFlag & eUIF_TABNUM2 )
//			((CQuestTotalDialog*)pDlg)->SelectTab( 1 );
//		else if( UII.DIALOG_INFO[eSD_Quest].dwFlag & eUIF_TABNUM3 )
//			((CQuestTotalDialog*)pDlg)->SelectTab( 2 );
	}
}

void CUserInfoManager::SaveInterfaceInfo( char* strFilePath )
{
	cDialog* pDlg;
	sUSERINFO_INTERFACE UII;

	pDlg = WINDOWMGR->GetWindowForID( CG_GUAGEDLG );
	if( pDlg )
	{
		UII.DIALOG_INFO[eSD_HeroGuage].lPosX		= (LONG)pDlg->GetAbsX();
		UII.DIALOG_INFO[eSD_HeroGuage].lPosY		= (LONG)pDlg->GetAbsY();
		if( pDlg->IsActive() )	UII.DIALOG_INFO[eSD_HeroGuage].dwFlag = eUIF_ACTIVE; // '=' 檬扁拳档 鞍捞
		else					UII.DIALOG_INFO[eSD_HeroGuage].dwFlag = 0;
	}

	pDlg = WINDOWMGR->GetWindowForID( CG_MONSTERGUAGEDLG );
	if( pDlg )
	{
		UII.DIALOG_INFO[eSD_MonsterGuage].lPosX		= (LONG)pDlg->GetAbsX();
		UII.DIALOG_INFO[eSD_MonsterGuage].lPosY		= (LONG)pDlg->GetAbsY();
		if( pDlg->IsActive() )	UII.DIALOG_INFO[eSD_MonsterGuage].dwFlag = eUIF_ACTIVE; // '=' 檬扁拳档 鞍捞
		else					UII.DIALOG_INFO[eSD_MonsterGuage].dwFlag = 0;
	}

	pDlg = WINDOWMGR->GetWindowForID( MNM_DIALOG );
	if( pDlg )
	{
		UII.DIALOG_INFO[eSD_MiniMap].lPosX			= (LONG)pDlg->GetAbsX();
		UII.DIALOG_INFO[eSD_MiniMap].lPosY			= (LONG)pDlg->GetAbsY();
		if( pDlg->IsActive() )	UII.DIALOG_INFO[eSD_MiniMap].dwFlag = eUIF_ACTIVE; // '=' 檬扁拳档 鞍捞
		else					UII.DIALOG_INFO[eSD_MiniMap].dwFlag = 0;
		
		if( ((CMiniMapDlg*)pDlg)->GetCurMode() == eMINIMAPMODE_SMALL )
			UII.DIALOG_INFO[eSD_MiniMap].dwFlag |= eUIF_SECONDFORM;
		
	}

	pDlg = WINDOWMGR->GetWindowForID( QI_QUICKDLG );
	if( pDlg )
	{
		UII.DIALOG_INFO[eSD_Quick].lPosX			= (LONG)pDlg->GetAbsX();
		UII.DIALOG_INFO[eSD_Quick].lPosY			= (LONG)pDlg->GetAbsY();
		if( pDlg->IsActive() )	UII.DIALOG_INFO[eSD_Quick].dwFlag = eUIF_ACTIVE; // '=' 檬扁拳档 鞍捞
		else					UII.DIALOG_INFO[eSD_Quick].dwFlag = 0;
		if(	((CQuickDialog*)pDlg)->GetSelectedPageNumber() == 1 )
			UII.DIALOG_INFO[eSD_Quick].dwFlag |= eUIF_TABNUM2;
		else if( ((CQuickDialog*)pDlg)->GetSelectedPageNumber() == 2 )
			UII.DIALOG_INFO[eSD_Quick].dwFlag |= eUIF_TABNUM3;
		else if( ((CQuickDialog*)pDlg)->GetSelectedPageNumber() == 3 )
			UII.DIALOG_INFO[eSD_Quick].dwFlag |= eUIF_TABNUM4;
	}

	pDlg = WINDOWMGR->GetWindowForID( MI_MAINDLG );
	if( pDlg )
	{
		UII.DIALOG_INFO[eSD_MainBar].lPosX			= (LONG)pDlg->GetAbsX();
		UII.DIALOG_INFO[eSD_MainBar].lPosY			= (LONG)pDlg->GetAbsY();
		if( pDlg->IsActive() )	UII.DIALOG_INFO[eSD_MainBar].dwFlag = eUIF_ACTIVE; // '=' 檬扁拳档 鞍捞
		else					UII.DIALOG_INFO[eSD_MainBar].dwFlag = 0;
		//立躯阑 锭
		if( ((CMainBarDialog*)pDlg)->IsFolded() ) UII.DIALOG_INFO[eSD_MainBar].dwFlag |= eUIF_SECONDFORM;
	}
	
	pDlg = WINDOWMGR->GetWindowForID( CTI_DLG );
	if( pDlg )
	{
		UII.DIALOG_INFO[eSD_Chat].lPosX				= (LONG)pDlg->GetAbsX();
		UII.DIALOG_INFO[eSD_Chat].lPosY				= (LONG)pDlg->GetAbsY();
		if( pDlg->IsActive() )	UII.DIALOG_INFO[eSD_Chat].dwFlag = eUIF_ACTIVE; // '=' 檬扁拳档 鞍捞
		else					UII.DIALOG_INFO[eSD_Chat].dwFlag = 0;
		if( ((CChatDialog*)pDlg)->GetCurSheetNum() == 1 )
			UII.DIALOG_INFO[eSD_Chat].dwFlag |= eUIF_TABNUM2;
		else if( ((CChatDialog*)pDlg)->GetCurSheetNum() == 2 )
			UII.DIALOG_INFO[eSD_Chat].dwFlag |= eUIF_TABNUM3;

		UII.DIALOG_INFO[eSD_Chat].dwParam = ((CChatDialog*)pDlg)->GetLineNum();
	}

	pDlg = WINDOWMGR->GetWindowForID( IN_INVENTORYDLG );
	if( pDlg )
	{
		UII.DIALOG_INFO[eSD_Inventory].lPosX		= (LONG)pDlg->GetAbsX();
		UII.DIALOG_INFO[eSD_Inventory].lPosY		= (LONG)pDlg->GetAbsY();
		if( pDlg->IsActive() )	UII.DIALOG_INFO[eSD_Inventory].dwFlag = eUIF_ACTIVE; // '=' 檬扁拳档 鞍捞
		else					UII.DIALOG_INFO[eSD_Inventory].dwFlag = 0;
		if( ((CInventoryExDialog*)pDlg)->GetCurTabNum() == 1 )
			UII.DIALOG_INFO[eSD_Inventory].dwFlag |= eUIF_TABNUM2;
		else if( ((CInventoryExDialog*)pDlg)->GetCurTabNum() == 2 )
			UII.DIALOG_INFO[eSD_Inventory].dwFlag |= eUIF_TABNUM3;
		else if( ((CInventoryExDialog*)pDlg)->GetCurTabNum() == 3 )
			UII.DIALOG_INFO[eSD_Inventory].dwFlag |= eUIF_TABNUM4;
	}

	pDlg = WINDOWMGR->GetWindowForID( CI_CHARDLG );
	if( pDlg )
	{
		UII.DIALOG_INFO[eSD_Character].lPosX		= (LONG)pDlg->GetAbsX();
		UII.DIALOG_INFO[eSD_Character].lPosY		= (LONG)pDlg->GetAbsY();
		if( pDlg->IsActive() )	UII.DIALOG_INFO[eSD_Character].dwFlag = eUIF_ACTIVE; // '=' 檬扁拳档 鞍捞
		else					UII.DIALOG_INFO[eSD_Character].dwFlag = 0;
	}

	pDlg = WINDOWMGR->GetWindowForID( MGI_MUGONGSURYUNDLG );
	if( pDlg )
	{
		UII.DIALOG_INFO[eSD_Skill].lPosX			= (LONG)pDlg->GetAbsX();
		UII.DIALOG_INFO[eSD_Skill].lPosY			= (LONG)pDlg->GetAbsY();
		if( pDlg->IsActive() )	UII.DIALOG_INFO[eSD_Skill].dwFlag = eUIF_ACTIVE; // '=' 檬扁拳档 鞍捞
		else					UII.DIALOG_INFO[eSD_Skill].dwFlag = 0;
		if( ((CMugongSuryunDialog*)pDlg)->GetCurTabNum() == 1 )
		{
			UII.DIALOG_INFO[eSD_Skill].dwFlag |= eUIF_TABNUM2;
			if( GAMEIN->GetSuryunDialog()->GetCurTabNum() == 1 )
				UII.DIALOG_INFO[eSD_Skill].dwFlag |= eUIF_SUBTABNUM2;
			else if( GAMEIN->GetSuryunDialog()->GetCurTabNum() == 2 )
				UII.DIALOG_INFO[eSD_Skill].dwFlag |= eUIF_SUBTABNUM3;
			else if( GAMEIN->GetSuryunDialog()->GetCurTabNum() == 3 )
				UII.DIALOG_INFO[eSD_Skill].dwFlag |= eUIF_SUBTABNUM4;
		}
	}
/*
	pDlg = WINDOWMGR->GetWindowForID( NOTE_NOTEDLG );
	if( pDlg )
	{
		UII.DIALOG_INFO[eSD_Note].lPosX				= (LONG)pDlg->GetAbsX();
		UII.DIALOG_INFO[eSD_Note].lPosY				= (LONG)pDlg->GetAbsY();
		if( pDlg->IsActive() )	UII.DIALOG_INFO[eSD_Note].dwFlag = eUIF_ACTIVE; // '=' 檬扁拳档 鞍捞
		else					UII.DIALOG_INFO[eSD_Note].dwFlag = 0;
	}

	pDlg = WINDOWMGR->GetWindowForID( FRI_FRIENDDLG );
	if( pDlg )
	{
		UII.DIALOG_INFO[eSD_Friend].lPosX			= (LONG)pDlg->GetAbsX();
		UII.DIALOG_INFO[eSD_Friend].lPosY			= (LONG)pDlg->GetAbsY();
		if( pDlg->IsActive() )	UII.DIALOG_INFO[eSD_Friend].dwFlag = eUIF_ACTIVE; // '=' 檬扁拳档 鞍捞
		else					UII.DIALOG_INFO[eSD_Friend].dwFlag = 0;
	}
*/
	pDlg = WINDOWMGR->GetWindowForID( OTI_TABDLG );
	if( pDlg )
	{
		UII.DIALOG_INFO[eSD_Option].lPosX			= (LONG)pDlg->GetAbsX();
		UII.DIALOG_INFO[eSD_Option].lPosY			= (LONG)pDlg->GetAbsY();
		if( pDlg->IsActive() )	UII.DIALOG_INFO[eSD_Option].dwFlag = eUIF_ACTIVE; // '=' 檬扁拳档 鞍捞
		else					UII.DIALOG_INFO[eSD_Option].dwFlag = 0;
		if( ((COptionDialog*)pDlg)->GetCurTabNum() == 1 )
			UII.DIALOG_INFO[eSD_Option].dwFlag |= eUIF_TABNUM2;
		if( ((COptionDialog*)pDlg)->GetCurTabNum() == 2 )
			UII.DIALOG_INFO[eSD_Option].dwFlag |= eUIF_TABNUM3;
		if( ((COptionDialog*)pDlg)->GetCurTabNum() == 3 )
			UII.DIALOG_INFO[eSD_Option].dwFlag |= eUIF_TABNUM4;
	}

	pDlg = WINDOWMGR->GetWindowForID( QUE_TOTALDLG );
	if( pDlg )
	{
		UII.DIALOG_INFO[eSD_Quest].lPosX			= (LONG)pDlg->GetAbsX();
		UII.DIALOG_INFO[eSD_Quest].lPosY			= (LONG)pDlg->GetAbsY();
		if( pDlg->IsActive() )	UII.DIALOG_INFO[eSD_Quest].dwFlag = eUIF_ACTIVE; // '=' 檬扁拳档 鞍捞
		else					UII.DIALOG_INFO[eSD_Quest].dwFlag = 0;
//		if( ((CQuestTotalDialog*)pDlg)->GetCurTabNum() == 1 )
//			UII.DIALOG_INFO[eSD_Quest].dwFlag |= eUIF_TABNUM2;
//		if( ((CQuestTotalDialog*)pDlg)->GetCurTabNum() == 2 )
//			UII.DIALOG_INFO[eSD_Quest].dwFlag |= eUIF_TABNUM3;
	}	
//----
	HANDLE hFile = CreateFile( strFilePath, GENERIC_WRITE, 0, NULL, 
								CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL );

	if( hFile == INVALID_HANDLE_VALUE ) return;

	DWORD dwSize;
	DWORD dwVersion = USERINFO_INTERFACE_VER;
	WriteFile( hFile, &dwVersion, sizeof(DWORD), &dwSize, NULL );
	WriteFile( hFile, &UII, sizeof(UII), &dwSize, NULL );

	CloseHandle( hFile );
}


void CUserInfoManager::LoadUserState( char* strFilePath )
{
	HANDLE hFile = CreateFile( strFilePath, GENERIC_READ, 0, NULL, 
								OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );

	if( hFile == INVALID_HANDLE_VALUE ) return;

	DWORD dwSize;
	DWORD dwVersion;
	if( !ReadFile( hFile, &dwVersion, sizeof(DWORD), &dwSize, NULL ) )
	{
		CloseHandle( hFile );
		return;
	}
	if( dwVersion != USERINFO_USERSTATE_VER )
	{
		CloseHandle( hFile );
		return;
	}

	sUSERINFO_USERSTATE UIS;
	if( !ReadFile( hFile, &UIS, sizeof(UIS), &dwSize, NULL ) )
	{
		CloseHandle( hFile );
		return;
	}

	CloseHandle( hFile );

	if( m_bMapChange && HERO )
	{
		HERO->SetKyungGongMode( UIS.bIsKyungGongMode );
		HERO->SetKyungGongGrade( UIS.wKyungGongIdx );	//security
		CAMERA->SetDistance( 0, UIS.fZoomDistance, 0 );
	}
}

void CUserInfoManager::SaveUserState( char* strFilePath )
{
	sUSERINFO_USERSTATE UIS;

	if( HERO == NULL )	return;

	UIS.bIsKyungGongMode	= HERO->GetKyungGongMode();
	UIS.wKyungGongIdx		= HERO->GetKyungGongGrade();
	UIS.fZoomDistance		= CAMERA->GetDistance(0);

	HANDLE hFile = CreateFile( strFilePath, GENERIC_WRITE, 0, NULL, 
								CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL );

	if( hFile == INVALID_HANDLE_VALUE ) return;

	DWORD dwSize;
	DWORD dwVersion = USERINFO_USERSTATE_VER;
	WriteFile( hFile, &dwVersion, sizeof(DWORD), &dwSize, NULL );
	WriteFile( hFile, &UIS, sizeof(UIS), &dwSize, NULL );

	CloseHandle( hFile );
}


void CUserInfoManager::SetUserID( char* strID )
{
	strcpy( m_strUserID, strID );
}


//for Interface
BOOL CUserInfoManager::IsValidInterfacePos( RECT* prcCaption, LONG lX, LONG lY )
{
	if( lX + prcCaption->left < 0 )		return FALSE;
	if( lX + prcCaption->right > 1024 ) return FALSE;
	if( lY + prcCaption->top < 0 )		return FALSE;
	if( lY + prcCaption->bottom > 768 ) return FALSE;

	return TRUE;
}
/*
void CUserInfoManager::AddSaveDialog( cDialog* pDlg )
{
	m_listInterface.AddTail( pDlg );
}

*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -