Files
Client/Tools/PatchMaker/PMSetting.cpp
LGram16 e067522598 Initial commit: ROW Client source code
Game client codebase including:
- CharacterActionControl: Character and creature management
- GlobalScript: Network, items, skills, quests, utilities
- RYLClient: Main client application with GUI and event handlers
- Engine: 3D rendering engine (RYLGL)
- MemoryManager: Custom memory allocation
- Library: Third-party dependencies (DirectX, boost, etc.)
- Tools: Development utilities

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 16:24:34 +09:00

115 lines
2.6 KiB
C++

// SettingOptionPage.cpp : 구현 파일입니다.
//
#include "stdafx.h"
#include "PMSetting.h"
CPMSetting::CPMSetting()
: m_szSetupFileName(_T(""))
{
}
CPMSetting::~CPMSetting()
{
m_SetupDataMap.RemoveAll();
}
bool CPMSetting::SaveSetting()
{
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
CStdioFile setupFile;
if (setupFile.Open(m_szSetupFileName, CFile::modeWrite | CFile::typeText))
{
CString szLine;
CString szKey;
CString szValue;
for (POSITION pos = m_SetupDataMap.GetStartPosition(); pos != NULL; )
{
m_SetupDataMap.GetNextAssoc(pos, szKey, szValue);
szLine.Format("%s = %s\n", szKey, szValue);
setupFile.WriteString(szLine);
}
setupFile.Close();
return true;
}
return false;
}
bool CPMSetting::LoadSetting(LPCTSTR szSetupFileName)
{
m_SetupDataMap.RemoveAll();
m_szSetupFileName.SetString(szSetupFileName);
CStdioFile setupFile;
if (setupFile.Open(m_szSetupFileName,
CFile::modeCreate | CFile::modeNoTruncate | CFile::modeRead | CFile::shareDenyNone | CFile::typeText))
{
CString szLine;
CString szKey;
CString szValue;
LPCTSTR szSeps = _T("=\t\r\n");
while(setupFile.ReadString(szLine))
{
// 세팅을 한줄한줄 읽어서 넣는다.
int nTokenPos = 0;
if (0 != szLine.Compare(_T("")))
{
szKey = szLine.Tokenize(szSeps, nTokenPos);
if (0 < nTokenPos)
{
szValue = szLine.Tokenize(szSeps, nTokenPos);
if (0 != szKey.Compare(_T("")) && 0 != szValue.Compare(_T("")))
{
szKey.Trim();
szValue.Trim();
szKey.MakeUpper();
m_SetupDataMap.SetAt(szKey, szValue);
}
}
}
}
setupFile.Close();
return true;
}
return false;
}
bool CPMSetting::GetSettingData(LPCTSTR szKey, CString& szValue)
{
CString szKeyString(szKey);
szKeyString.MakeUpper();
return (TRUE == m_SetupDataMap.Lookup(szKeyString, szValue)) ? true : false;
}
void CPMSetting::SetSettingData(LPCTSTR szKey, LPCTSTR szValue)
{
CString szKeyString(szKey);
szKeyString.MakeUpper();
m_SetupDataMap.SetAt(szKeyString, szValue);
}
CPMSetting& CPMDefaultSetting::GetInstance()
{
static CPMSetting pmSetting;
return pmSetting;
}
LPCTSTR CPMDefaultSetting::GetDefaultSettingName()
{
return _T("PatchMaker.cfg");
}