Files
Client/Server/RylServerProject/RylGameLibrary/Skill/Spell/SpellMgr.h
LGram16 dd97ddec92 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>
2025-11-29 20:17:20 +09:00

44 lines
955 B
C++

#ifndef _CSPELL_MGR_H_
#define _CSPELL_MGR_H_
#include "Casting.h"
#include "Affected.h"
// 전방 참조
class CSpell;
class CAggresiveCreature;
class CSpellMgr
{
public:
CSpellMgr();
~CSpellMgr();
inline void SetOwner(CAggresiveCreature* pOwner); // 생성시 반드시 호출해 줄 것.
inline CAggresiveCreature* GetOwner() { return m_pOwner; }
inline CCastingSpell& GetCastingInfo() { return m_CastingInfo; }
inline CAffectedSpell& GetAffectedInfo() { return m_AffectedInfo; }
void SetSpell(const SPELL spell);
protected:
CAggresiveCreature* m_pOwner; // 현재 매니저를 소유하고 있는 Creature.(바뀌지 않음)
CCastingSpell m_CastingInfo;
CAffectedSpell m_AffectedInfo;
friend class CSpell; // Caster와 Affected의 상호참조 관리를 외부로 노출시키지 않기 위함.
};
inline void CSpellMgr::SetOwner(CAggresiveCreature* pOwner)
{
m_pOwner = pOwner;
m_CastingInfo.SetOwner(pOwner);
m_AffectedInfo.SetOwner(pOwner);
}
#endif