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,176 @@
#ifndef _CELL_MANAGER_H_
#define _CELL_MANAGER_H_
#pragma once
#include <vector>
#include <Creature/CreatureStructure.h>
#include <Stream/Buffer/BufferFactory.h>
class CCell;
namespace VirtualArea
{
class CBGServerMgr;
}
class CBuffer;
class CCharacter;
class CCellManager
{
public:
static CCellManager& GetInstance();
void Destroy();
bool CheckPositionInZone(Position Pos);
void Load(void);
bool LoadComplete(void) { return m_bLoadComplete; }
bool SummonMonster(int nKID, Position Pos, CCharacter* lpMaster);
bool AdminSummonMonster(int nKID, Position Pos);
// Normal <20><><EFBFBD>¿<EFBFBD><C2BF><EFBFBD> wMoving<6E><67> Ȯ<><C8AE><EFBFBD><EFBFBD> Moving. (<28><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> 20%)
// <20>̵<EFBFBD><CCB5><EFBFBD> 20<32><30><EFBFBD>ο<EFBFBD><CEBF><EFBFBD> 80<38><30><EFBFBD>η<EFBFBD> <20><><EFBFBD><EFBFBD> 2008.07.10
void SetMoving(bool bMoving, unsigned short wMoving = 20) { m_bMoving = bMoving; m_wNumMoving = wMoving; }
void SetAvoid(bool bAvoid) { m_bAvoid = bAvoid; }
bool IsMoving(void) const { return m_bMoving; }
bool IsAvoid(void) const { return m_bAvoid; }
unsigned short GetMovingNum(void) const { return m_wNumMoving; }
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
CCell* GetCell(unsigned __int64 nItemID);
// <20><> <20><>ȣ<EFBFBD><C8A3> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
CCell* GetCell(unsigned short wMapIndex, unsigned char cCellX, unsigned char cCellZ);
// <20><><EFBFBD><EFBFBD> <20><>ǥ<EFBFBD><C7A5> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
CCell* GetCell(unsigned short wMapIndex, unsigned long dwPosX, unsigned long dwPosY, unsigned long dwPosZ);
CCell* GetCell(unsigned short wMapIndex, POS& Pos);
void LowerResolution(int nHighX, int nHighZ, int *nLowX, int *nLowZ);
void HigherResolution(int nLowX, int nLowZ, int *nHighX, int *nHighZ);
bool IsCampCreateArea(Position Pos);
bool IsSafetyZone(Position Pos);
CBufferFactory& GetBufferFactory() { return m_BufferFactory; }
template<typename FnRefCell>
inline bool ProcessAllCell(FnRefCell fnRefCell)
{
if (0 != m_CellData)
{
CCell* lpCellPos = m_CellData;
CCell* lpCellEnd = m_CellData + CCell::ms_CellSize * CCell::ms_CellSize;
for (; lpCellPos != lpCellEnd; ++lpCellPos)
{
fnRefCell(*lpCellPos);
}
return true;
}
return false;
}
template<typename FnRefCell, typename Arg1>
inline bool ProcessAllCell(FnRefCell fnRefCell, Arg1 arg1)
{
if (0 != m_CellData)
{
CCell* lpCellPos = m_CellData;
CCell* lpCellEnd = m_CellData + CCell::ms_CellSize * CCell::ms_CellSize;
for (; lpCellPos != lpCellEnd; ++lpCellPos)
{
fnRefCell(*lpCellPos, arg1);
}
return true;
}
return false;
}
// --------------------------------------------------------------------------------------------
// <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>Լ<EFBFBD><D4BC><EFBFBD>
bool CheckCellAggresiveCreatures(void); // <20><> <20><><EFBFBD><EFBFBD> <20><>ġ<EFBFBD><C4A1> CID<49><44> <20>ִ<EFBFBD><D6B4><EFBFBD> <20>˻<EFBFBD>
bool CheckCellStatus(void); // <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
private:
enum
{
BGM_TEXTURE_SIZE = 128,
SECTOR_SIZE = 31508
};
// Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> BGMƮ<4D><C6AE><EFBFBD>Ÿ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD>ϴ<EFBFBD>. (<28><><EFBFBD><EFBFBD> <20><><EFBFBD>ҽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>...)
struct SafetyZoneInfo
{
enum EventKey
{
EK_BGM_ONCE_SAFE = 0,
EK_BGM_LOOP_SAFE = 1,
EK_BGM_LOOP_UNSAFE = 2,
EK_BGM_ONCE_UNSAFE = 3,
EK_NOTBGM_SAFE = 4,
EK_BGM_TURN_AMB_SAFE = 5,
EK_BGM_TURN_AMB_UNSAFE = 6,
EK_CAMP_UNCREATE = 9,
EK_ESF_SAFE = 10,
EK_ESF_UNSAFE = 11
};
unsigned long m_dwSectorX;
unsigned long m_dwSectorY;
char m_szFilename[MAX_PATH];
unsigned long m_dwEventNum;
std::vector<unsigned long> m_vecEventKey;
std::vector<unsigned long> m_vecBGMColorKey;
unsigned long m_aryColorTable[BGM_TEXTURE_SIZE][BGM_TEXTURE_SIZE];
};
CCellManager();
~CCellManager();
bool InitAI(void);
bool CreateCell(void);
bool SetWeather(const char* szFileName);
bool LoginMonster(const char* szFileName, unsigned short wMapIndex = 0);
bool LoadSafetyZone(const char* szFileName);
private:
CCell* m_CellData;
unsigned char* m_WeatherRate;
unsigned short m_wNumMoving;
unsigned short m_usSummonCount;
CPoolBufferFactory m_BufferFactory;
std::vector<SafetyZoneInfo *> m_vecSafetyZone;
bool m_bMoving;
bool m_bAvoid;
bool m_bLoadComplete;
bool m_bPadding[1];
friend class VirtualArea::CBGServerMgr; // LoginMonster() ȣ<><C8A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>...
};
#endif