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>
131 lines
3.7 KiB
C++
131 lines
3.7 KiB
C++
#include "stdafx.h"
|
|
|
|
#include <Utility/Math/Math.h>
|
|
#include <Log/ServerLog.h>
|
|
|
|
#include <algorithm>
|
|
|
|
#include "OldItemStructure.h"
|
|
|
|
using namespace OldItem;
|
|
|
|
void OldItem::ItemData::DumpInfo(unsigned long dwCID, const char* szExtraString) const
|
|
{
|
|
const int MIN_BUFFER = 32;
|
|
char szItemUID[MIN_BUFFER];
|
|
|
|
Math::Convert::Hex64ToStr(szItemUID, m_dwUID);
|
|
ERRLOG8(g_Log, "CID:0x%08x / ItemUID:%s / ProtoTypeID:%d / ItemPos(%d, 0x%04x) / ItemSize:%d / NumOrDurability:%d %s",
|
|
dwCID, szItemUID, m_usProtoTypeID, m_ItemPos.m_cPos, m_ItemPos.m_cIndex,
|
|
m_cItemSize, m_cNumOrDurability, szExtraString);
|
|
}
|
|
|
|
|
|
OldItem::SpriteData::SpriteData() { Initialize(); }
|
|
|
|
void OldItem::SpriteData::Initialize()
|
|
{
|
|
memset(m_szName, 0, MAX_NAME);
|
|
memset(m_szSpriteName, 0, MAX_SPRITE_NAME);
|
|
|
|
m_nSpriteMinX = m_nSpriteMinY = m_nSpriteMaxX = m_nSpriteMaxY = 0;
|
|
}
|
|
|
|
OldItem::StringData::StringData() { Initialize(); }
|
|
void OldItem::StringData::Initialize()
|
|
{
|
|
memset(m_szFieldModelName, 0, MAX_FIELD_MODEL_NAME);
|
|
memset(m_szEquipModelName, 0, MAX_EQUIP_MODEL_NAME);
|
|
memset(m_szEffectSoundName, 0, MAX_EFFECT_SOUND_NAME);
|
|
memset(m_szTypeName, 0, MAX_TYPE_NAME);
|
|
memset(m_szItemDescribe, 0, MAX_ITEM_DESCRIBE);
|
|
}
|
|
|
|
OldItem::DetailData::DetailData() { Initialize(); }
|
|
void OldItem::DetailData::Initialize()
|
|
{
|
|
m_ItemGrade = OldItem::Grade::ETC;
|
|
m_dwFlags = m_dwPrice = m_dwBlackPrice = m_dwMedalPrice = m_dwCraftExp = 0;
|
|
m_cOptionLimit = m_cItemType = m_cXSize = m_cYSize =
|
|
m_cDefaultDurabilityOrStack = m_cMaxDurabilityOrStack = m_cMaterialType = m_cMaxSocketNum = 0;
|
|
}
|
|
|
|
OldItem::EquipAttribute::EquipAttribute() { Initialize(); }
|
|
void OldItem::EquipAttribute::Initialize()
|
|
{
|
|
m_nAttibuteNum = 0;
|
|
std::fill_n(m_usAttributeValue, unsigned short(OldItem::Attribute::MAX_ATTRIBUTE_NUM), 0);
|
|
}
|
|
|
|
OldItem::UseItemInfo::UseItemInfo() { Initialize(); }
|
|
void OldItem::UseItemInfo::Initialize()
|
|
{
|
|
m_usSkill_ID = 0;
|
|
m_usSkill_LockCount = 0;
|
|
m_cZone = 0;
|
|
m_dwAmount = 0;
|
|
}
|
|
|
|
|
|
OldItem::UseLimit::UseLimit() { Initialize(); }
|
|
void OldItem::UseLimit::Initialize()
|
|
{
|
|
std::fill_n(m_nStatusLimit, unsigned short(StatusLimit::MAX_STATUS_LIMIT), 0);
|
|
m_dwClassLimit = m_nSkillType = m_cSkillLevel = m_cLevelLimit = 0;
|
|
}
|
|
|
|
|
|
OldItem::ItemInfo::ItemInfo() { Initialize(); }
|
|
OldItem::ItemInfo::ItemInfo(unsigned short usProtoTypeID) { Initialize(); m_usProtoTypeID = usProtoTypeID; }
|
|
|
|
void OldItem::ItemInfo::Initialize()
|
|
{
|
|
m_usProtoTypeID = 0;
|
|
|
|
m_DetailData.Initialize();
|
|
m_UseLimit.Initialize();
|
|
m_SpriteData.Initialize();
|
|
m_StringData.Initialize();
|
|
|
|
m_EquipAttribute.Initialize();
|
|
m_UseItemInfo.Initialize();
|
|
}
|
|
|
|
|
|
/*
|
|
const char* OldItem::ItemInfo::GetItemDescribe(void) const
|
|
{
|
|
if (OldItem::ItemType::SKILLBOOK == m_DetailData.m_cItemType)
|
|
{
|
|
const Skill::ProtoType* pSkillProtoType = CSkillMgr::GetInstance().GetSkillProtoType(m_UseItemInfo.m_usSkill_ID);
|
|
if (NULL != pSkillProtoType)
|
|
{
|
|
return pSkillProtoType[m_UseItemInfo.m_usSkill_LockCount].m_szSkillDescribe;
|
|
}
|
|
}
|
|
|
|
return m_StringData.m_szItemDescribe;
|
|
}
|
|
*/
|
|
|
|
OldItem::ItemGarbage::ItemGarbage(CItem* lpItem, unsigned long dwRemainNum)
|
|
: m_lpItem(lpItem), m_dwRemainNum(dwRemainNum)
|
|
{
|
|
|
|
}
|
|
|
|
OldItem::ChemicalInfo::ChemicalInfo()
|
|
: m_wPickkingItemID(0), m_wTargetItemID(0), m_wResultItemID(0),
|
|
m_cPickkingItemNum(0), m_cTargetItemNum(0), m_cResultItemNum(0)
|
|
{
|
|
|
|
}
|
|
|
|
OldItem::ChemicalInfo::ChemicalInfo(unsigned short wPickkingItemID, unsigned char cPickkingItemNum,
|
|
unsigned short wTargetItemID, unsigned char cTargetItemNum)
|
|
: m_wPickkingItemID(wPickkingItemID), m_wTargetItemID(wTargetItemID), m_wResultItemID(0),
|
|
m_cPickkingItemNum(cPickkingItemNum),m_cTargetItemNum(cTargetItemNum), m_cResultItemNum(0)
|
|
{
|
|
|
|
}
|