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>
75 lines
2.2 KiB
C++
75 lines
2.2 KiB
C++
#ifndef _CCREATURE_H_
|
||
#define _CCREATURE_H_
|
||
|
||
#include "stdafx.h"
|
||
|
||
#include <DB/DBdefine.h>
|
||
#include <Network/Packet/PacketStruct/CharItemPacketStruct.h>
|
||
|
||
#include "EnemyCheck.h"
|
||
#include "CreatureStructure.h"
|
||
|
||
|
||
class CCell;
|
||
class CCharacter;
|
||
class CParty;
|
||
namespace Item
|
||
{
|
||
class CItem;
|
||
};
|
||
|
||
class CCreature
|
||
{
|
||
|
||
public:
|
||
|
||
enum MoveInfo
|
||
{
|
||
S_CELL_CHANGED = 1,
|
||
S_CELL_UNCHANGED = 2,
|
||
F_CELL_CANNOTCHANGE = 3,
|
||
F_TOO_FAST = 4
|
||
};
|
||
|
||
CCreature(unsigned long dwCID) : m_dwCID(dwCID) { }
|
||
virtual ~CCreature() { }
|
||
|
||
const Position& GetCurrentPos(void) const { return m_CurrentPos; }
|
||
const Position& GetCastingPos(void) const { return m_CastingPos; }
|
||
void SetCurrentPos(const Position& pos) { m_CurrentPos = pos; }
|
||
void SetCurrentPos(float fX, float fY, float fZ) { m_CurrentPos.m_fPointX = fX; m_CurrentPos.m_fPointY = fY; m_CurrentPos.m_fPointZ = fZ; }
|
||
void SetCastingPos() { m_CastingPos = m_CurrentPos; }
|
||
void SetCastingPos(const Position& pos) { m_CastingPos = pos; }
|
||
void SetCastingPos(float fX, float fY, float fZ) { m_CastingPos.m_fPointX = fX; m_CastingPos.m_fPointY = fY; m_CastingPos.m_fPointZ = fZ; }
|
||
|
||
const MotionInfo& GetMotionInfo(void) const { return m_MotionInfo; }
|
||
void SetDirection(float fDir) { m_MotionInfo.m_fDirection = fDir; }
|
||
|
||
EnchantInfo& GetEnchantInfo(void) { return m_EnchantInfo; }
|
||
|
||
unsigned long GetCID(void) const { return m_dwCID; }
|
||
|
||
virtual unsigned long RepairItem(Item::CEquipment* pEquipment, unsigned long& dwCurrentGold) { return 0; }
|
||
|
||
virtual Item::CItem* SellToCharacter(CCharacter *lpCustomer, unsigned short wKindItem, TakeType takeType,
|
||
Item::CItem* lpRequestItem, unsigned long &dwPrice, unsigned short wCouponID, unsigned short &usError) = 0;
|
||
|
||
virtual EnemyCheck::EnemyType IsEnemy(CCreature* lpTarget, unsigned char* cResult = NULL) = 0;
|
||
virtual unsigned char GetNation() const = 0;
|
||
virtual CParty* GetParty() = 0;
|
||
virtual bool IsPeaceMode() = 0;
|
||
virtual unsigned long GetGID() const = 0;
|
||
virtual bool IsRideArms() const = 0;
|
||
|
||
|
||
protected:
|
||
|
||
Position m_CurrentPos; // <20><><EFBFBD><EFBFBD> <20><>ġ
|
||
Position m_CastingPos; // <20><>ų ij<><C4B3><EFBFBD><EFBFBD> <20><>ġ
|
||
MotionInfo m_MotionInfo; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
EnchantInfo m_EnchantInfo; // æƮ/<2F><>æƮ <20><><EFBFBD><EFBFBD>
|
||
|
||
unsigned long m_dwCID; // ij<><C4B3><EFBFBD><EFBFBD> CID.
|
||
};
|
||
|
||
#endif |