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>
135 lines
3.8 KiB
C++
135 lines
3.8 KiB
C++
// 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_)
|