Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
162 lines
3.7 KiB
C++
162 lines
3.7 KiB
C++
// CharParty.cpp : 구현 파일입니다.
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "GameDBTool.h"
|
|
#include "CharParty.h"
|
|
|
|
#include "GameDBTool.h"
|
|
#include "GameDBToolDlg.h"
|
|
#include ".\charparty.h"
|
|
|
|
// CCharParty 대화 상자입니다.
|
|
|
|
IMPLEMENT_DYNAMIC(CCharParty, CDialog)
|
|
CCharParty::CCharParty(CWnd* pParent /*=NULL*/)
|
|
: CDialog(CCharParty::IDD, pParent), m_PID(0)
|
|
, m_PIDOut(_T(""))
|
|
{
|
|
memset(&m_PartyInfo, 0, sizeof(PARTY_INFO));
|
|
}
|
|
|
|
CCharParty::~CCharParty()
|
|
{
|
|
}
|
|
|
|
void CCharParty::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
DDX_Text(pDX, IDC_PID, m_PIDOut);
|
|
DDX_Control(pDX, IDC_PARTY_LIST, m_PartyList);
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CCharParty, CDialog)
|
|
ON_BN_CLICKED(IDC_PARTY_LOAD, OnBnClickedPartyLoad)
|
|
ON_BN_CLICKED(IDC_PARTY_DELETE, OnBnClickedPartyDelete)
|
|
ON_BN_CLICKED(IDC_PARTY_DELETEMEM, OnBnClickedPartyDeletemem)
|
|
ON_WM_CTLCOLOR()
|
|
END_MESSAGE_MAP()
|
|
|
|
BOOL CCharParty::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
m_PartyList.SetColumn();
|
|
|
|
CCharParty::OnBnClickedPartyLoad();
|
|
return TRUE;
|
|
}
|
|
void CCharParty::OnBnClickedPartyLoad()
|
|
{
|
|
CGameDBToolApp* pAppWnd = (CGameDBToolApp*)AfxGetApp();
|
|
CGameDBToolDlg* pDlgWnd = (CGameDBToolDlg*)pAppWnd->m_pMainWnd;
|
|
|
|
PARTY_DB_INFO partyDBInfo;
|
|
if(!DBComponent::GameDB::GetPartyInfo(CDBSingleObject::GetInstance(), m_PID, &partyDBInfo))
|
|
{
|
|
pDlgWnd->m_Log.LogPrint("[파티] 파티 정보 읽기중에 오류가 발생. %s", CDBSingleObject::GetInstance().GetErrorString());
|
|
}
|
|
|
|
m_PartyInfo = partyDBInfo.PartyInfo;
|
|
|
|
m_PIDOut.Format("%d", m_PID);
|
|
m_PartyList.AddPartyRows(&m_PartyInfo);
|
|
|
|
UpdateData(FALSE);
|
|
}
|
|
|
|
void CCharParty::OnBnClickedPartyDelete()
|
|
{
|
|
UpdateData();
|
|
|
|
CGameDBToolApp* pAppWnd = (CGameDBToolApp*)AfxGetApp();
|
|
CGameDBToolDlg* pDlgWnd = (CGameDBToolDlg*)pAppWnd->m_pMainWnd;
|
|
|
|
PARTY_DB_INFO partyDBInfo;
|
|
partyDBInfo.PartyInfo = m_PartyInfo;
|
|
|
|
if(!DBComponent::GameDB::DeleteParty(CDBSingleObject::GetInstance(), &partyDBInfo, m_PID))
|
|
{
|
|
pDlgWnd->m_Log.LogPrint("[파티] 파티 삭제중에 오류가 발생. %s", CDBSingleObject::GetInstance().GetErrorString());
|
|
}
|
|
else
|
|
{
|
|
pDlgWnd->m_Log.LogPrint("[파티] 파티 삭제 성공. %d", m_PID);
|
|
pDlgWnd->UpdateCharTable();
|
|
|
|
m_PID = 0;
|
|
memset(&m_PartyInfo, 0, sizeof(PARTY_INFO));
|
|
}
|
|
|
|
CCharParty::OnBnClickedPartyLoad();
|
|
|
|
UpdateData(FALSE);
|
|
}
|
|
|
|
void CCharParty::OnBnClickedPartyDeletemem()
|
|
{
|
|
/* UpdateData();
|
|
|
|
CGameDBToolApp* pAppWnd = (CGameDBToolApp*)AfxGetApp();
|
|
CGameDBToolDlg* pDlgWnd = (CGameDBToolDlg*)pAppWnd->m_pMainWnd;
|
|
|
|
CDBSingleObject *lpDB = pDlgWnd->m_pDB;
|
|
|
|
DWORD CID = 0;
|
|
char strCID[100] = "";
|
|
|
|
POSITION Pos;
|
|
int Index;
|
|
|
|
Pos = m_PartyList.GetFirstSelectedItemPosition();
|
|
if(Pos != NULL)
|
|
{
|
|
Index = m_PartyList.GetNextSelectedItem(Pos);
|
|
|
|
if(m_PartyList.GetItemText(Index, 0, strCID, 256))
|
|
{
|
|
CID = atoi(strCID);
|
|
if(!DBComponent::GameDB::DeletePartyMember(CDBSingleObject::GetInstance(), m_PID, &m_PartyInfo, CID)) // 업데이트 될 m_PartyInfo여야 함
|
|
{
|
|
pDlgWnd->m_Log.LogPrint("[파티] 멤버 삭제 실패 %d : %s", CID, CDBSingleObject::GetInstance().GetErrorString());
|
|
}
|
|
else
|
|
{
|
|
pDlgWnd->m_Log.LogPrint("[파티] 멤버 삭제 완료 %d", CID);
|
|
}
|
|
}
|
|
}
|
|
|
|
CCharParty::OnBnClickedPartyLoad();
|
|
UpdateData(FALSE);
|
|
*/
|
|
}
|
|
|
|
HBRUSH CCharParty::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
|
|
{
|
|
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
|
|
|
|
// TODO: 여기서 DC의 특성을 변경합니다.
|
|
|
|
HBRUSH m_hBrush;
|
|
|
|
m_hBrush = CreateSolidBrush(RGB( 255, 169, 128));
|
|
|
|
switch( nCtlColor ){
|
|
case CTLCOLOR_DLG:
|
|
pDC->SetBkColor(RGB( 255, 255, 255));
|
|
pDC->SetTextColor(RGB( 0, 0, 0));
|
|
return m_hBrush;
|
|
break;
|
|
case CTLCOLOR_STATIC:
|
|
pDC->SetBkColor(RGB( 255, 169, 128));
|
|
pDC->SetTextColor(RGB( 0, 0, 0));
|
|
return m_hBrush;
|
|
break;
|
|
default:
|
|
return hbr;
|
|
break;
|
|
}
|
|
}
|