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,138 @@
#include "stdafx.h"
#include <Item/Item.h>
#include <Item/Container/ItemContainer.h>
#include <Network/Dispatch/GameClient/GameClientDispatch.h>
#include <Network/Dispatch/GameClient/SendCharItem.h>
#include <Creature/Character/Character.h>
#include <Log/ItemLog.h>
#include "TempInvenContainer.h"
Item::CTempInvenContainer::CTempInvenContainer()
: m_lpOwner(NULL), m_cItemNum(0)
{
}
Item::CTempInvenContainer::~CTempInvenContainer()
{
}
bool Item::CTempInvenContainer::Initialize(CCharacter* lpCharacter, unsigned short nMaxSize)
{
m_lpOwner = lpCharacter;
return Item::CListContainer::Initialize(lpCharacter->GetCID(), nMaxSize);
}
Item::CItem* Item::CTempInvenContainer::GetItem(Item::ItemPos itemPos)
{
CItem* lpItem = m_lppItems[0];
return (lpItem != m_lpNullItem) ? lpItem : NULL;
}
bool Item::CTempInvenContainer::SetItem(Item::ItemPos itemPos, Item::CItem* lpItem)
{
CGameClientDispatch* lpDispatch = m_lpOwner->GetDispatcher();
if (true == IsFull())
{
CCell::ItemInfo itemInfo;
CCell* lpCell = m_lpOwner->GetCellPos().m_lpCell;
if (NULL == lpCell)
{
ERRLOG1(g_Log, "CID:%10u / <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", m_lpOwner->GetCID());
return false;
}
// <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Item::CItem* lpItem = m_lppItems[0];
ItemPos itemPos(TakeType::TS_TEMPINVEN, 0);
// <20>ӽ<EFBFBD> <20>κ<EFBFBD><CEBA><EFBFBD><E4B8AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
if (false == RemoveItem(itemPos))
{
ERRLOG1(g_Log, "CID:%10u / <20>ӽ<EFBFBD> <20>κ<EFBFBD><CEBA><EFBFBD><E4B8AE> <20><> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD>ϴ<EFBFBD>. (<28>ӽ<EFBFBD> <20>κ<EFBFBD><CEBA><EFBFBD><E4B8AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)",
m_lpOwner->GetCID());
return false;
}
// <20>ʵ忡 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
lpCell->SetItem(m_lpOwner->GetCurrentPos(), lpItem, 0, m_lpOwner->GetCID(), CCell::NONE, itemInfo);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
GAMELOG::LogDropItem(*m_lpOwner, itemPos, itemInfo.m_lpItem, 0, 0);
if (0 != lpDispatch)
{
GameClientSendPacket::SendCharPullDown(lpDispatch->GetSendStream(),
m_lpOwner->GetCID(), itemPos, itemInfo, PktBase::NO_SERVER_ERR);
}
}
itemPos.m_cIndex = m_cItemNum;
if (!Item::CListContainer::SetItem(itemPos, lpItem))
{
ERRLOG1(g_Log, "CID:%10u / <20>ӽ<EFBFBD> <20>κ<EFBFBD><CEBA><EFBFBD><E4B8AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD>ϴ<EFBFBD>.", m_lpOwner->GetCID());
return false;
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
++m_cItemNum;
if (0 != lpDispatch)
{
unsigned char cNum = (lpItem->IsSet(Item::DetailData::STACKABLE)) ? lpItem->GetNumOrDurability() : 1;
GameClientSendPacket::SendCharPickUp(lpDispatch->GetSendStream(), m_lpOwner->GetCID(),
0, 0, lpItem, itemPos, cNum, PktBase::NO_SERVER_ERR);
}
return true;
}
bool Item::CTempInvenContainer::RemoveItem(Item::ItemPos itemPos)
{
if (NULL == m_lppItems[0])
{
ERRLOG1(g_Log, "CID:%10u / <20>ӽ<EFBFBD> <20>κ<EFBFBD><CEBA><EFBFBD><E4B8AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴµ<CFB4> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD>ϴ<EFBFBD>.", m_dwCID);
return false;
}
for (unsigned char cIndex = 0; cIndex < m_nMaxSize - 1; ++cIndex)
{
m_lppItems[cIndex] = m_lppItems[cIndex + 1];
if (NULL != m_lppItems[cIndex])
{
m_lppItems[cIndex]->MoveItem(ItemPos(TakeType::TS_TEMPINVEN, cIndex));
}
}
m_lppItems[m_nMaxSize - 1] = NULL;
--m_cItemNum;
return true;
}
bool Item::CTempInvenContainer::SerializeIn(const char* szItemBuffer_In, unsigned long dwBufferSize_In)
{
if (false == CListContainer::SerializeIn(szItemBuffer_In, dwBufferSize_In))
{
return false;
}
for (unsigned char cIndex = 0; cIndex < m_nMaxSize; ++cIndex)
{
if (NULL == m_lppItems[cIndex])
{
break;
}
++m_cItemNum;
}
return true;
}