Files
FC1/CryGame/GameObject.h
romkazvo 34d6c5d489 123
2023-08-07 19:29:24 +08:00

50 lines
1.7 KiB
C++

//////////////////////////////////////////////////////////////////////
//
// Crytek Source code
// Copyright (c) Crytek 2001-2004
//
//////////////////////////////////////////////////////////////////////
#ifndef _GAMEOBJECT_H_
#define _GAMEOBJECT_H_
struct IScriptObject;
/*!@see IEntityContainer
*/
class CGameObject :
public IEntityContainer
{
public:
//! constructor
CGameObject() {/* m_refCount = 0;*/m_pEntity = NULL; }
//! destructor
virtual ~CGameObject() {}
//! Return entity used by this game object.
IEntity* GetEntity() const { return m_pEntity; }
//! Forwards name calls to entity.
void SetName( const char *s ) { m_pEntity->SetName(s); };
//!@return the name of the entity
const char *GetName() const { return m_pEntity->GetName(); };
// interface IEntityContainer ------------------------------------------------------------
virtual void SetEntity( IEntity *e ) { m_pEntity = e; }
virtual void OnSetAngles( const Vec3 &ang ){};
virtual Vec3 CalcSoundPos() { if (m_pEntity) return m_pEntity->GetPos(); return Vec3(0.0f, 0.0f, 0.0f); }
virtual void Release() { delete this; };
virtual bool QueryContainerInterface(ContainerInterfaceType desired_interface, void** ppInterface) { *ppInterface=0; return false;}
virtual void OnDraw(const SRendParams & RendParams) {}
virtual bool IsSaveable() { return(true); }
virtual void OnEntityNetworkUpdate( const EntityId &idViewerEntity, const Vec3d &v3dViewer, uint32 &inoutPriority,
EntityCloneState &inoutCloneState ) const {}
protected: // ----------------------------------------------------------------------------------------
IEntity * m_pEntity; //!< Entity attached to object.
};
#endif //_GAMEOBJECT_H_