Files
Client/Tools/PatchCommon/PatchInfoList.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

96 lines
1.5 KiB
C++

#pragma once
#include <windows.h>
#include <vector>
//////////////////////////////////////////////////////////////////////////
#pragma pack(push)
#pragma pack(4)
#define MAX_PACKAGE_FILE_NAME_LENGTH 50
#define MAX_FILE_NAME_LENGTH 200
struct FilePatchInfoRecord
{
char szFileName[MAX_FILE_NAME_LENGTH]; // (게임루트로부터의)서브폴더명+파일명
char szPackageFileName[MAX_PACKAGE_FILE_NAME_LENGTH]; // 년월일_시분_nnn (확장자 ".zip" 제외)
DWORD dwSize;
DWORD dwCRC32;
DWORD dwVersion;
FilePatchInfoRecord()
{
szFileName[0] = '\0';
szPackageFileName[0] = '\0';
dwSize = 0;
dwCRC32 = 0;
dwVersion = 100;
}
};
//////////////////////////////////////////////////////////////////////////
struct PTR_STRING
{
char* m_pStr;
PTR_STRING( char* p )
{
m_pStr = p;
}
};
struct PTR_STRING_LESS
{
bool operator()( const PTR_STRING ps1, const PTR_STRING ps2 ) const
{
return ( stricmp( ps1.m_pStr , ps2.m_pStr ) < 0 );
}
};
//////////////////////////////////////////////////////////////////////////
class CPatchInfoList
{
public:
bool Load( const char* szFileName );
bool Save( const char* szFileName );
void Reset();
void SetVersion( DWORD dwVer )
{
m_dwVersion = dwVer;
}
DWORD GetVersion()
{
return m_dwVersion;
}
std::vector<FilePatchInfoRecord> &GetList()
{
return m_vecPatchInfo;
}
bool LoadV1( const char* szFileName );
protected:
DWORD m_dwVersion;
std::vector<FilePatchInfoRecord> m_vecPatchInfo;
static const char* ms_cszHeaderString;
};
#pragma pack(pop)