Files
Client/Tools/NeoPatchMaker/PatchMaker.h
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

135 lines
3.8 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 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_)