📄 userinfomanager.cpp
字号:
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 + -