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>
This commit is contained in:
2025-11-29 16:24:34 +09:00
commit e067522598
5135 changed files with 1745744 additions and 0 deletions

View File

@@ -0,0 +1,134 @@
// PatchMaker.h: interface for the CPatchMaker class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_PATCHMAKER_H__6D7C0314_CD51_4721_AC77_D3CFB22F57F7__INCLUDED_)
#define AFX_PATCHMAKER_H__6D7C0314_CD51_4721_AC77_D3CFB22F57F7__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "ZipArchive.h"
#include "PatchInfoList.h"
#include "Patch_Util.h"
#include <map>
//////////////////////////////////////////////////////////////////////////
enum FILE_LOCATION_TYPE { FILE_NONE, FILE_ON_FTP, FILE_ON_HTTP, FILE_ON_LOCAL };
//////////////////////////////////////////////////////////////////////////
class CPatchMaker
{
public:
CPatchMaker();
virtual ~CPatchMaker();
bool Go( CEdit* pEditOutput );
enum PATCHMAKER_STATE
{
PMS_IDLE,
PMS_LOAD_SERVER_PATCHINFO_LIST,
PMS_BUILD_LOCAL_PATCHINFO_LIST,
PMS_COLLECT_UPDATE_FILE_LIST,
PMS_UPDATE_PACKAGE,
PMS_UPDATE_PATCHINFO
};
PATCHMAKER_STATE GetState()
{
return m_PatchmakerState;
}
void SetPackageFilePath(const char* sz) { m_strPackageFilePath = sz; }
void SetLocalFilePath(const char* sz) { m_strLocalFilePath = sz; }
void SetDestFilePath(const char* sz) { m_strDestFilePath = sz; }
void SetSourceType(FILE_LOCATION_TYPE tp) { m_SourceType = tp; }
void SetDestType(FILE_LOCATION_TYPE tp) { m_DestType = tp; }
void SetPackageSize(DWORD dw) { m_dwPackageMaxSize = dw; }
void SetUpdateVersion(DWORD dw) { m_dwUpdateVersion = dw; }
void SetFTPServerAddr(const char* sz) { m_strFTPServerAddr = sz; }
void SetFTPAccount(const char* sz) { m_strFTPAccount = sz; }
void SetFTPPassword(const char* sz) { m_strFTPPassword = sz; }
void SetFTPPort(int n) { m_nFTPPort = n; }
void SetPassiveMode(BOOL b) { m_bPassiveMode = b; }
void SetPartialFileCompare(bool b) { m_bPartialFileCompare = b; }
void SetCheckNoticeFolder(bool b) { m_bCheckNoticeFolder = b; }
int GetPatchInfoVersion();
protected:
CZipArchive m_ZipArc;
CArray<int, int> m_arrIndexToUpdateLocalFile;
CPatchInfoList m_LocalPatchInfo;
CPatchInfoList m_ServerPatchInfo;
std::map< PTR_STRING, int, PTR_STRING_LESS > m_mapFileName2ServerListIndex;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>н<EFBFBD><D0BD><EFBFBD>. <20>ݵ<EFBFBD><DDB5><EFBFBD> path seperator( \ ) <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ѵ<EFBFBD>.
// -> CPatchMaker Ŭ<><C5AC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> seperator <20>ڵ<EFBFBD> <20>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD><EFBFBD>
CString m_strPackageFilePath;
CString m_strLocalFilePath;
CString m_strDestFilePath;
FILE_LOCATION_TYPE m_SourceType;
FILE_LOCATION_TYPE m_DestType;
CStringArray m_astrFileNameWithSubDirExclusionList;
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> Ư<><C6AF> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ġ<EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD>
CStringArray m_astrFileNameExclusionList;
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD≯<EFBFBD><CCB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ǻ<EFBFBD><C7BA>ϴ°<CFB4>
// . .. <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4B8AE>, vssver.scc <20><><EFBFBD><EFBFBD> <20>ʿ<EFBFBD><CABF><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ϵ<EFBFBD>
CStringArray m_astrSubDirExclusionList;
long m_dwUpdateVersion; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><> <20><> <20><><EFBFBD><EFBFBD>
CString m_strFTPServerAddr;
CString m_strFTPAccount;
CString m_strFTPPassword;
int m_nFTPPort;
BOOL m_bPassiveMode;
bool m_bPartialFileCompare;
bool m_bCheckNoticeFolder;
CString m_strCurrentNewPackageFileName;
DWORD m_dwPackageMaxSize;
PATCHMAKER_STATE m_PatchmakerState;
CString m_strStateInfoString;
bool CheckValidity( CEdit* pEditOutput );
bool LoadServerPatchInfoList();
bool BuildLocalPatchInfoList();
bool CollectUpdateFileList();
bool UpdatePackage();
bool UpdatePatchInfo();
const char* GetNextPackageFileName();
bool IsExcludedFile( const char* szFileName );
bool IsExcludedFileWithSubDir( const char* szFileNameWithSubDir );
bool IsExcludedSubDir( const char* szSubDir );
bool IsSoleFileWithSubDir( const char* szFileNameWithSubDir );
};
#endif // !defined(AFX_PATCHMAKER_H__6D7C0314_CD51_4721_AC77_D3CFB22F57F7__INCLUDED_)