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:
@@ -0,0 +1,126 @@
|
||||
#ifndef _SIEGE_OBJECT_MANAGER_H_
|
||||
#define _SIEGE_OBJECT_MANAGER_H_
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <map>
|
||||
#include <list>
|
||||
#include <boost/pool/pool.hpp>
|
||||
#include <boost/pool/pool_alloc.hpp>
|
||||
#include <Creature/Siege/SiegeConstants.h>
|
||||
#include <Network/Packet/PacketStruct/CastlePacket.h>
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
class CSendStream;
|
||||
class CDBComponent;
|
||||
class CSiegeObjectDB;
|
||||
class CCampDB;
|
||||
|
||||
class CSiegeObjectDBMgr
|
||||
{
|
||||
public:
|
||||
|
||||
static CSiegeObjectDBMgr& GetInstance();
|
||||
|
||||
// Ÿ<><C5B8> <20><><EFBFBD><EFBFBD>
|
||||
typedef std::map<unsigned long, CSiegeObjectDB*> SiegeObjectMap; // < CID, CSiegeObjectDB* >
|
||||
typedef std::map<unsigned long, CCampDB*> CampMap; // < CampID, CCampDB* >
|
||||
|
||||
bool Initialize(CDBComponent& DBComponent);
|
||||
void Process();
|
||||
void UpdateSiegeCount(); // <20><><EFBFBD><EFBFBD> <20>ð<EFBFBD> <20><><EFBFBD><EFBFBD> Ƚ<><C8BD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ
|
||||
|
||||
void UpdateRewardFame(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ð<EFBFBD> <20><><EFBFBD><EFBFBD> Ƚ<><C8BD> <20><><EFBFBD><EFBFBD>
|
||||
void DecreaseWeaponRemainSiegeTime(); // <20><><EFBFBD><EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ȣ<><C8A3><EFBFBD>ȴ<EFBFBD>.
|
||||
|
||||
// DB <20><><EFBFBD><EFBFBD> <20>о<EFBFBD><D0BE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20>Լ<EFBFBD>
|
||||
CSiegeObjectDB* CreateCastleObject(CastleObjectInfoDB& CastleObject);
|
||||
CSiegeObjectDB* CreateCamp(CampInfoDB& CampInfo, unsigned long dwCID=0);
|
||||
CSiegeObjectDB* CreateMiningCamp(CampInfoDB& CampInfo, unsigned long dwCID=0);
|
||||
CSiegeObjectDB* CreateCampShop(CampInfoDB& CampInfo, unsigned long dwCID=0);
|
||||
CSiegeObjectDB* CreateWorldWeapon(CampInfoDB& CampInfo, unsigned long dwCID=0);
|
||||
|
||||
// <20><><EFBFBD>Ӽ<EFBFBD><D3BC><EFBFBD><EFBFBD><EFBFBD> <20><>û<EFBFBD><C3BB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD> DB <20><> <20>߰<EFBFBD><DFB0>ϴ<EFBFBD> <20>Լ<EFBFBD>
|
||||
CSiegeObjectDB* CreateCamp(unsigned long dwGID, unsigned char cZone, unsigned char cChannel, POS Pos);
|
||||
CSiegeObjectDB* CreateWorldWeapon(unsigned long dwGID, unsigned short wObjectType, unsigned char cZone, unsigned char cChannel, POS Pos);
|
||||
CSiegeObjectDB* CreateSiegeArms(unsigned long dwOwnerID, unsigned char cNation, unsigned char cZone, unsigned char cChannel,
|
||||
unsigned short wObjectType, unsigned char cUpgradeStep, POS Pos);
|
||||
|
||||
// Get <20>Լ<EFBFBD>
|
||||
CCampDB* GetCamp(unsigned long dwCampID);
|
||||
CSiegeObjectDB* GetSiegeObject(unsigned long dwObjectID);
|
||||
unsigned char GetWorldWeaponNation(unsigned char cZone, unsigned char cChannel) const; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
void DeleteWorldWeaponNation(unsigned char cZone, unsigned char cChannel); // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʱ<EFBFBD>ȭ
|
||||
void UpdateWorldWeaponInfo(unsigned char cZone, unsigned char cChannel, unsigned char cOwenrNation,
|
||||
unsigned char cDestroyedWeaponNation, unsigned char cRemainSiegeTime);
|
||||
bool HasCampByGID(unsigned long dwGID, unsigned long dwExceptCampID=0);
|
||||
|
||||
// <20><>ü <20><><EFBFBD><EFBFBD> <20>Լ<EFBFBD>
|
||||
bool DeleteSiegeObject(unsigned long dwCID);
|
||||
bool DeleteSiegeObject(CSiegeObjectDB* lpObject);
|
||||
CampMap::iterator DeleteCamp(unsigned long dwCampID);
|
||||
|
||||
int DestroyCamp(unsigned long dwGID); // <20>ش<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ı<EFBFBD>, <20>ı<EFBFBD><C4B1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
void DestroySiegeArms(unsigned long dwOnwerCID); // <20><><EFBFBD><EFBFBD> Ż<><C5BB><EFBFBD><EFBFBD> <20>ش<EFBFBD> ij<><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⸦ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>
|
||||
void DestoryAllSiegeArms(); // <20><><EFBFBD><EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> <20><>ü <20><><EFBFBD><EFBFBD> <20>Լ<EFBFBD>
|
||||
bool ChangeCampType(unsigned long dwCampID, unsigned short wChangeType);
|
||||
|
||||
// GameServer <20><><EFBFBD><EFBFBD> Send <20>Լ<EFBFBD>
|
||||
void SendWorldWeaponInfo(CSendStream& SendStream, unsigned char cZone, unsigned char cChannel);
|
||||
void SendCampInfo(CSendStream& SendStream, unsigned char cZone, unsigned char cChannel);
|
||||
void SendSiegeArmsInfo(CSendStream& SendStream, unsigned char cZone, unsigned char cChannel);
|
||||
void SendProcessMining(unsigned long dwProcessType);
|
||||
|
||||
bool SerializeOutCastleObject(CSiegeObjectDB* lpObject_In, char* lpBuffer_Out, unsigned short& wBufferSize_Out);
|
||||
|
||||
private:
|
||||
|
||||
CSiegeObjectDBMgr();
|
||||
~CSiegeObjectDBMgr();
|
||||
|
||||
// CSiegeObjectDBMgr <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> Ÿ<><C5B8> <20><><EFBFBD><EFBFBD>
|
||||
typedef struct _WorldWeaponInfo
|
||||
{
|
||||
unsigned char m_cWorldWeaponNation; // <20><><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
unsigned char m_cKarRemainSiegeTime; // ī<><C4AB><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>μ<EFBFBD><CEBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ð<EFBFBD>
|
||||
unsigned char m_cMerRemainSiegeTime; // <20><EFBFBD>ī<EFBFBD><C4AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>μ<EFBFBD><CEBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ð<EFBFBD>
|
||||
} WorldWeaponInfo;
|
||||
|
||||
typedef std::map<unsigned long, WorldWeaponInfo> WorldWeaponInfoMap; // < dwZoneChannel, WorldWeaponInfo >
|
||||
// dwZoneChannel : Zone(16bit) | Channel(16bit)
|
||||
bool ReadCastleObjectInfoDB();
|
||||
bool ReadWorldWeaponInfoDB();
|
||||
bool ReadCampInfoDB();
|
||||
|
||||
unsigned long GetBlankIndex();
|
||||
|
||||
void CreateDummyCamp();
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ü<EFBFBD><C3BC> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20>Լ<EFBFBD>
|
||||
CSiegeObjectDB* CreateCastleObjectDB(const CastleObjectInfoDB& CastleObject);
|
||||
CSiegeObjectDB* CreateCampDB(const CampInfoDB& CampInfo);
|
||||
CSiegeObjectDB* CreateMiningCampDB(const CampInfoDB& CampInfo);
|
||||
CSiegeObjectDB* CreateCampShopDB(const CampInfoDB& CampInfo);
|
||||
CSiegeObjectDB* CreateWorldWeaponDB(const CampInfoDB& CampInfo);
|
||||
|
||||
CSiegeObjectDB* CreateCampDB(unsigned long dwCampID, unsigned long dwGID,
|
||||
unsigned char cZone, unsigned char cChannel, Position Pos);
|
||||
CSiegeObjectDB* CreateWorldWeaponDB(unsigned long dwCampID, unsigned long dwGID, unsigned short wObjectType,
|
||||
unsigned char cZone, unsigned char cChannel, Position Pos);
|
||||
CSiegeObjectDB* CreateSiegeArmsDB(unsigned long dwOwnerID,
|
||||
unsigned char cNation, unsigned short wObjectType, unsigned char cUpgradeStep,
|
||||
unsigned char cZone, unsigned char cChannel, Position Pos);
|
||||
|
||||
void DeleteSiegeObjectDB(CSiegeObjectDB* lpSiegeObjectDB);
|
||||
|
||||
SiegeObjectMap m_SiegeObjectMap;
|
||||
CampMap m_CampMap;
|
||||
WorldWeaponInfoMap m_WorldWeaponInfoMap;
|
||||
CDBComponent* m_lpDBComponent;
|
||||
};
|
||||
|
||||
#endif // _SIEGE_OBJECT_MANAGER_H_
|
||||
Reference in New Issue
Block a user