Restructure repository to include all source folders

Move git root from Client/ to src/ to track all source code:
- Client: Game client source (moved to Client/Client/)
- Server: Game server source
- GameTools: Development tools
- CryptoSource: Encryption utilities
- database: Database scripts
- Script: Game scripts
- rylCoder_16.02.2008_src: Legacy coder tools
- GMFont, Game: Additional resources

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-29 20:17:20 +09:00
parent 5d3cd64a25
commit dd97ddec92
11602 changed files with 1446576 additions and 0 deletions

View File

@@ -0,0 +1,238 @@
#ifndef _ITEM_STRUCTURE_H_
#define _ITEM_STRUCTURE_H_
#include "ItemConstants.h"
namespace Item
{
#pragma pack(1)
// ------------------------------------------------------------------------------------------
// UseLimit, ItemInfo <20><> <20><>ũ<EFBFBD><C5A9>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD> <20>ִ´<D6B4>.
struct ItemPos
{
unsigned short m_cPos : 4; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Equip, Inven...) (0~15)
unsigned short m_cIndex : 12; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD> (0~4095)
ItemPos() : m_cPos(0), m_cIndex(0) { }
ItemPos(unsigned char cPos, unsigned short usIndex) : m_cPos(cPos), m_cIndex(usIndex) { }
inline void SetPos(unsigned short wIndex) { m_cIndex = wIndex; }
inline void SetPos(unsigned char cXIndex, unsigned char cYIndex, unsigned char cZIndex);
inline void GetPos(unsigned char& cXIndex, unsigned char& cYIndex, unsigned char& cZIndex) const;
inline unsigned char GetXIndex(void) const { return (m_cIndex & 0x00F); }
inline unsigned char GetYIndex(void) const { return (m_cIndex & 0x0F0) >> 4; }
inline unsigned char GetZIndex(void) const { return (m_cIndex & 0xF00) >> 8; }
inline void SetXIndex(unsigned char cXIndex) { m_cIndex = (m_cIndex & 0xFF0) + cXIndex; }
inline void SetYIndex(unsigned char cYIndex) { m_cIndex = (m_cIndex & 0xF0F) + (cYIndex << 4); }
inline void SetZIndex(unsigned char cZIndex) { m_cIndex = (m_cIndex & 0x0FF) + (cZIndex << 8); }
inline bool operator == (const ItemPos& rhs) const { return (m_cPos == rhs.m_cPos && m_cIndex == rhs.m_cIndex); }
};
inline void ItemPos::SetPos(unsigned char cXIndex, unsigned char cYIndex, unsigned char cZIndex)
{
m_cIndex = (cZIndex << 8) + (cYIndex << 4) + cXIndex;
}
inline void ItemPos::GetPos(unsigned char& cXIndex, unsigned char& cYIndex, unsigned char& cZIndex) const
{
cXIndex = (m_cIndex & 0x00F);
cYIndex = (m_cIndex & 0x0F0) >> 4;
cZIndex = (m_cIndex & 0xF00) >> 8;
}
struct ItemData
{
unsigned __int64 m_dwUID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> UID
unsigned short m_usProtoTypeID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ID
ItemPos m_ItemPos; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ġ
unsigned char m_cItemSize; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ü ũ<><C5A9>.
unsigned char m_cNumOrDurability; // <20><><EFBFBD><EFBFBD> Ȥ<><C8A4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ItemData() { m_dwUID = m_usProtoTypeID = m_cNumOrDurability = 0; m_cItemSize = sizeof(ItemData); }
};
struct ItemAttribute
{
unsigned short m_cType : 6; // <20>Ӽ<EFBFBD> <20><><EFBFBD><EFBFBD> 6bit (64<36><34><EFBFBD><EFBFBD>)
short m_usValue : 10; // <20>Ӽ<EFBFBD> <20><> 10bit (-512~511<31><31><EFBFBD><EFBFBD>)
ItemAttribute() : m_cType(0), m_usValue(0) { }
ItemAttribute(unsigned char cType, unsigned short usValue) : m_cType(cType), m_usValue(usValue) { }
};
// <20>ڿ<EFBFBD> Socket<65><74><EFBFBD><EFBFBD><EBB9B0> m_cSocketNum<75><6D>ŭ, Attribute<74><65> m_cDiffAttributeNum<75><6D>ŭ <20>ٴ´<D9B4>.
struct EquipmentInfo
{
enum
{
MAX_MINSIZE_SOCKET_NUM = 6, // ũ<>Ⱑ 1by1<79><31> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><>
MAX_MINSIZE_ATTRIBUTE_NUM = 6, // ũ<>Ⱑ 1by1<79><31> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20>Ӽ<EFBFBD> <20><>
MAX_SOCKET_NUM = 8, // <20>Ϲ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><>
MAX_ATTRIBUTE_NUM = 12, // <20>Ϲ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20>Ӽ<EFBFBD> <20><>
MAX_SOCKET_AND_ATTRIBUTE_MINISIZE = (MAX_MINSIZE_SOCKET_NUM * sizeof(char) + MAX_MINSIZE_ATTRIBUTE_NUM * sizeof(ItemAttribute)),
MAX_SOCKET_AND_ATTRIBUTE_SIZE = (MAX_SOCKET_NUM * sizeof(char) + MAX_ATTRIBUTE_NUM * sizeof(ItemAttribute))
};
unsigned short m_cRuneSocket : 11; // <20><> <20><><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ID
short m_cDiffMaterialType : 5; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> + m_cDiffMaterialType = <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>(-16~15)
char m_cDiffMaxSocket : 5; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> + m_cDiffMaxSocket = <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><> (-16~15)
unsigned char m_cReserved : 3; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...
unsigned char m_cSocketNum : 4; // <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> (0~15)
unsigned char m_cAttributeNum : 4; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ۿ<EFBFBD> <20><><EFBFBD>ų<EFBFBD>, <20><>ġ<EFBFBD><C4A1> <20>ٸ<EFBFBD> <20>Ӽ<EFBFBD> <20><>(0~15<31><35>)
char m_cDiffMaxDurability; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>۰<EFBFBD><DBB0><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
unsigned char m_cReserved2; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...
EquipmentInfo()
{
m_cRuneSocket = m_cDiffMaterialType = m_cDiffMaxSocket = m_cDiffMaxDurability =
m_cSocketNum = m_cAttributeNum = m_cReserved = m_cReserved2 = 0;
}
};
#pragma pack()
const unsigned char MAX_ITEM_SIZE = sizeof(ItemData) +
sizeof(EquipmentInfo) + EquipmentInfo::MAX_SOCKET_AND_ATTRIBUTE_SIZE;
struct SpriteData
{
enum { MAX_NAME = 64, MAX_SPRITE_NAME = 32 };
char m_szName[MAX_NAME];
char m_szSpriteName[MAX_SPRITE_NAME];
unsigned short m_nSpriteMinX;
unsigned short m_nSpriteMinY;
unsigned short m_nSpriteMaxX;
unsigned short m_nSpriteMaxY;
SpriteData();
void Initialize();
};
struct StringData
{
enum
{
MAX_FIELD_MODEL_NAME = 32, MAX_EQUIP_MODEL_NAME = 32,
MAX_EFFECT_SOUND_NAME = 32, MAX_ITEM_DESCRIBE = 256
};
char m_szFieldModelName[MAX_FIELD_MODEL_NAME];
char m_szEquipModelName[MAX_EQUIP_MODEL_NAME];
char m_szEffectSoundName[MAX_EFFECT_SOUND_NAME];
char m_szItemDescribe[MAX_ITEM_DESCRIBE];
StringData();
void Initialize();
};
struct DetailData
{
enum Flags
{
EQUIP = ( 1 << 0), // <20><><EFBFBD><EFBFBD><EFBFBD>Ҽ<EFBFBD> <20>ִ<EFBFBD><D6B4><EFBFBD> <20><><EFBFBD><EFBFBD>
USE_ITEM = ( 1 << 1), // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD><D6B4><EFBFBD> <20><><EFBFBD><EFBFBD>
QUICKSLOT_IN = ( 1 << 2), // <20><><EFBFBD><EFBFBD><EFBFBD>Կ<EFBFBD> <20><><EFBFBD><20><> <20>ִ<EFBFBD><D6B4><EFBFBD> <20><><EFBFBD><EFBFBD>
STACKABLE = ( 1 << 3), // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD><D6B4><EFBFBD> <20><><EFBFBD><EFBFBD>
TWOHANDED = ( 1 << 4), // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
WEAPON = ( 1 << 5), // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
ARMOUR = ( 1 << 6), // <20><><EFBFBD>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
SKILL_ARM = ( 1 << 7), // <20><>ų<EFBFBD><C5B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
};
unsigned char m_cItemType; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>( namespace Type <20><><EFBFBD><EFBFBD> )
unsigned char m_cXSize; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><58><C5A9>
unsigned char m_cYSize; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><59><C5A9>
unsigned char m_cOptionLimit;
unsigned char m_cDefaultDurabilityOrStack;
unsigned char m_cMaxDurabilityOrStack;
unsigned char m_cMaterialType;
unsigned char m_cMaxSocketNum;
Grade::Type m_ItemGrade;
unsigned long m_dwPrice;
unsigned long m_dwBlackPrice;
unsigned long m_dwFlags;
DetailData();
void Initialize();
};
struct EquipAttribute
{
unsigned short m_usAttributeValue[Item::Attribute::MAX_ATTRIBUTE_NUM];
unsigned short m_nAttibuteNum;
EquipAttribute();
void Initialize();
};
struct UseItemInfo
{
unsigned short m_usSkill_ID;
unsigned short m_usSkill_LockCount;
UseItemInfo();
void Initialize();
};
struct UseLimit
{
enum DeactivatedType
{
STATUS_LIMIT = ( 1 << 0),
CLASS_LIMIT = ( 1 << 1),
BROKEN_ITEM = ( 1 << 2)
};
unsigned short m_nStatusLimit[StatusLimit::MAX_STATUS_LIMIT];
unsigned short m_nSkillType; // <20><>ų <20><><EFBFBD><EFBFBD> Ÿ<><C5B8>
unsigned char m_cSkillLevel; // <20><>ų <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
unsigned char m_cLevelLimit;
unsigned long m_dwClassLimit;
UseLimit();
void Initialize();
};
#pragma pack(8)
struct ItemInfo
{
unsigned short m_usProtoTypeID;
DetailData m_DetailData;
UseLimit m_UseLimit;
SpriteData m_SpriteData;
StringData m_StringData;
EquipAttribute m_EquipAttribute;
UseItemInfo m_UseItemInfo;
ItemInfo();
ItemInfo(unsigned short usPrototypeID);
void Initialize();
inline bool operator < (ItemInfo& rhs)
{ return (m_usProtoTypeID < rhs.m_usProtoTypeID); }
};
#pragma pack()
};
#endif