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>
123 lines
3.9 KiB
C++
123 lines
3.9 KiB
C++
/* TODO : REMOVE HERE
|
|
#ifndef _OBJECT_INFO_H_
|
|
#define _OBJECT_INFO_H_
|
|
|
|
#include <Network/Packet/PacketStruct/CharBroadcastPacket.h>
|
|
|
|
|
|
namespace BroadcastInfo
|
|
{
|
|
// 전방 참조
|
|
class CObjectInfo;
|
|
class CAggresiveCreatureInfo;
|
|
class CMonsterInfo;
|
|
class CSummonMonsterInfo;
|
|
|
|
// 브로드캐스팅 정보 처리용 인터페이스
|
|
struct IProcessBroadcastInfo
|
|
{
|
|
// 각 처리 루틴을 전부 처리하여야 함. 타입에 맞춰서 함수가 호출된다.
|
|
virtual void Process(CObjectInfo& objectInfo) = 0;
|
|
virtual void Process(CAggresiveCreatureInfo& aggresiveCreatureInfo) = 0;
|
|
virtual void Process(CMonsterInfo& monsterInfo) = 0;
|
|
virtual void Process(CSummonMonsterInfo& monsterInfo) = 0;
|
|
};
|
|
|
|
class CObjectInfo
|
|
{
|
|
public:
|
|
|
|
virtual ~CObjectInfo() { }
|
|
virtual void Update(const SObject& object, unsigned long dwLastUpdateTick);
|
|
virtual void Process(IProcessBroadcastInfo& processBroadcastInfo) { processBroadcastInfo.Process(*this); }
|
|
|
|
unsigned long GetCID() const { return m_Object.m_dwCID; }
|
|
const CNetworkPos& GetNetworkPos() const { return m_Object.m_NetworkPos; }
|
|
const ObjectType::Type GetObjectType() const { return m_Object.GetObjectType(); }
|
|
unsigned long GetLastUpdateTick() const { return m_dwLastUpdateTick; }
|
|
|
|
struct LessCID
|
|
{
|
|
bool operator () (const BroadcastInfo::CObjectInfo& lhs, const BroadcastInfo::CObjectInfo& rhs) { return lhs.GetCID() < rhs.GetCID(); }
|
|
bool operator () (const BroadcastInfo::CObjectInfo& lhs, unsigned long dwCID) { return lhs.GetCID() < dwCID; }
|
|
bool operator () (unsigned long dwCID, const BroadcastInfo::CObjectInfo& rhs) { return dwCID < rhs.GetCID(); }
|
|
|
|
bool operator () (const BroadcastInfo::CObjectInfo* lhs, const BroadcastInfo::CObjectInfo* rhs) { return lhs->GetCID() < rhs->GetCID(); }
|
|
bool operator () (const BroadcastInfo::CObjectInfo* lhs, unsigned long dwCID) { return lhs->GetCID() < dwCID; }
|
|
bool operator () (unsigned long dwCID, const BroadcastInfo::CObjectInfo* rhs) { return dwCID < rhs->GetCID(); }
|
|
};
|
|
|
|
protected:
|
|
|
|
CObjectInfo();
|
|
|
|
SObject m_Object;
|
|
unsigned long m_dwLastUpdateTick;
|
|
|
|
friend class CObjectInfoMgr;
|
|
};
|
|
|
|
|
|
class CAggresiveCreatureInfo : public CObjectInfo
|
|
{
|
|
public:
|
|
|
|
virtual void Update(const SObject& object, unsigned long dwLastUpdateTick);
|
|
virtual void Process(IProcessBroadcastInfo& processBroadcastInfo) { processBroadcastInfo.Process(*this); }
|
|
|
|
unsigned short GetNowHP() { return m_nNowHP; }
|
|
EnchantInfo& GetEnchantInfo() { return m_EnchantInfo; }
|
|
|
|
static CAggresiveCreatureInfo* DowncastToAggresiveCreatureInfo(CObjectInfo* lpObjectInfo);
|
|
|
|
protected:
|
|
|
|
CAggresiveCreatureInfo();
|
|
|
|
EnchantInfo m_EnchantInfo;
|
|
unsigned short m_nNowHP;
|
|
|
|
friend class CObjectInfoMgr;
|
|
};
|
|
|
|
|
|
class CMonsterInfo : public CAggresiveCreatureInfo
|
|
{
|
|
public:
|
|
|
|
virtual void Update(const SObject& object, unsigned long dwLastUpdateTick);
|
|
virtual void Process(IProcessBroadcastInfo& processBroadcastInfo) { processBroadcastInfo.Process(*this); }
|
|
|
|
static CMonsterInfo* DowncastToMonsterInfo(CObjectInfo* lpObjectInfo);
|
|
|
|
protected:
|
|
|
|
CMonsterInfo();
|
|
|
|
friend class CObjectInfoMgr;
|
|
};
|
|
|
|
|
|
class CSummonMonsterInfo : public CMonsterInfo
|
|
{
|
|
public:
|
|
|
|
virtual void Update(const SObject& object, unsigned long dwLastUpdateTick);
|
|
virtual void Process(IProcessBroadcastInfo& processBroadcastInfo) { processBroadcastInfo.Process(*this); }
|
|
|
|
unsigned long GetMasterID() { return m_dwMasterID; }
|
|
|
|
static CSummonMonsterInfo* DowncastToSummonMonsterInfo(CObjectInfo* lpObjectInfo);
|
|
|
|
protected:
|
|
|
|
CSummonMonsterInfo();
|
|
|
|
unsigned long m_dwMasterID;
|
|
|
|
friend class CObjectInfoMgr;
|
|
};
|
|
}
|
|
|
|
#endif
|
|
*/ |