Pyrogenesis  trunk
Classes | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
CCmpProjectileManager Class Referencefinal
Inheritance diagram for CCmpProjectileManager:
Inheritance graph
[legend]
Collaboration diagram for CCmpProjectileManager:
Collaboration graph
[legend]

Classes

struct  Projectile
 
struct  ProjectileImpactAnimation
 

Public Member Functions

int GetComponentTypeId () const override
 
void Init (const CParamNode &paramNode) override
 
void Deinit () override
 
void Serialize (ISerializer &serialize) override
 
void Deserialize (const CParamNode &paramNode, IDeserializer &deserialize) override
 
void HandleMessage (const CMessage &msg, bool global) override
 
uint32_t LaunchProjectileAtPoint (const CFixedVector3D &launchPoint, const CFixedVector3D &target, fixed speed, fixed gravity, const std::wstring &actorName, const std::wstring &impactActorName, fixed impactAnimationLifetime) override
 Launch a projectile from entity source to point target. More...
 
void RemoveProjectile (uint32_t) override
 Removes a projectile, used when the projectile has hit a target. More...
 
void RenderModel (CModelAbstract &model, const CVector3D &position, SceneCollector &collector, const CFrustum &frustum, bool culling, const CLosQuerier &los, bool losRevealAll) const
 
- Public Member Functions inherited from IComponent
virtual ~IComponent ()
 
CEntityHandle GetEntityHandle () const
 
void SetEntityHandle (CEntityHandle ent)
 
entity_id_t GetEntityId () const
 
CEntityHandle GetSystemEntity () const
 
const CSimContextGetSimContext () const
 
void SetSimContext (const CSimContext &context)
 
virtual bool NewJSObject (const ScriptInterface &scriptInterface, JS::MutableHandleObject out) const
 Returns false by default, indicating that a scripted wrapper of this IComponent is not supported. More...
 
virtual JS::Value GetJSInstance () const
 

Static Public Member Functions

static void ClassInit (CComponentManager &componentManager)
 
static IComponentAllocate (const ScriptInterface &, JS::HandleValue)
 
static void Deallocate (IComponent *cmp)
 
static std::string GetSchema ()
 
- Static Public Member Functions inherited from IComponent
static std::string GetSchema ()
 
static void RegisterComponentType (CComponentManager &mgr, EInterfaceId iid, EComponentTypeId cid, AllocFunc alloc, DeallocFunc dealloc, const char *name, const std::string &schema)
 
static void RegisterComponentTypeScriptWrapper (CComponentManager &mgr, EInterfaceId iid, EComponentTypeId cid, AllocFunc alloc, DeallocFunc dealloc, const char *name, const std::string &schema)
 
static u8 GetSerializationVersion ()
 

Private Member Functions

uint32_t LaunchProjectile (CFixedVector3D launchPoint, CFixedVector3D targetPoint, fixed speed, fixed gravity, const std::wstring &actorName, const std::wstring &impactActorName, fixed impactAnimationLifetime)
 
void AdvanceProjectile (Projectile &projectile, float dt) const
 
void Interpolate (float frameTime)
 
void RenderSubmit (SceneCollector &collector, const CFrustum &frustum, bool culling) const
 

Private Attributes

std::vector< Projectilem_Projectiles
 
std::vector< ProjectileImpactAnimationm_ProjectileImpactAnimations
 
uint32_t m_ActorSeed
 
uint32_t m_NextId
 

Additional Inherited Members

- Public Types inherited from IComponent
using AllocFunc = IComponent *(*)(const ScriptInterface &scriptInterface, JS::HandleValue ctor)
 
using DeallocFunc = void(*)(IComponent *)
 

Member Function Documentation

◆ AdvanceProjectile()

void CCmpProjectileManager::AdvanceProjectile ( Projectile projectile,
float  dt 
) const
private

◆ Allocate()

static IComponent* CCmpProjectileManager::Allocate ( const ScriptInterface ,
JS::HandleValue   
)
inlinestatic

◆ ClassInit()

static void CCmpProjectileManager::ClassInit ( CComponentManager componentManager)
inlinestatic

◆ Deallocate()

static void CCmpProjectileManager::Deallocate ( IComponent cmp)
inlinestatic

◆ Deinit()

void CCmpProjectileManager::Deinit ( )
inlineoverridevirtual

Implements IComponent.

◆ Deserialize()

void CCmpProjectileManager::Deserialize ( const CParamNode paramNode,
IDeserializer deserialize 
)
inlineoverridevirtual

Implements IComponent.

◆ GetComponentTypeId()

int CCmpProjectileManager::GetComponentTypeId ( ) const
inlineoverridevirtual

Implements IComponent.

◆ GetSchema()

static std::string CCmpProjectileManager::GetSchema ( )
inlinestatic

◆ HandleMessage()

void CCmpProjectileManager::HandleMessage ( const CMessage msg,
bool  global 
)
inlineoverridevirtual

Reimplemented from IComponent.

◆ Init()

void CCmpProjectileManager::Init ( const CParamNode paramNode)
inlineoverridevirtual

Implements IComponent.

◆ Interpolate()

void CCmpProjectileManager::Interpolate ( float  frameTime)
private

◆ LaunchProjectile()

uint32_t CCmpProjectileManager::LaunchProjectile ( CFixedVector3D  launchPoint,
CFixedVector3D  targetPoint,
fixed  speed,
fixed  gravity,
const std::wstring &  actorName,
const std::wstring &  impactActorName,
fixed  impactAnimationLifetime 
)
private

◆ LaunchProjectileAtPoint()

uint32_t CCmpProjectileManager::LaunchProjectileAtPoint ( const CFixedVector3D launchPoint,
const CFixedVector3D target,
fixed  speed,
fixed  gravity,
const std::wstring &  actorName,
const std::wstring &  impactActorName,
fixed  impactAnimationLifetime 
)
inlineoverridevirtual

Launch a projectile from entity source to point target.

Parameters
sourcesource entity; the projectile will determined from the "projectile" prop in its actor
targettarget point
speedhorizontal speed in m/s
gravitygravitational acceleration in m/s^2 (determines the height of the ballistic curve)
actorNamename of the flying projectile actor
impactActorNamename of the animation actor played when the projectile hits the target or the ground
impactAnimationLifetimeanimation lenth
Returns
id of the created projectile

Implements ICmpProjectileManager.

◆ RemoveProjectile()

void CCmpProjectileManager::RemoveProjectile ( uint32_t  id)
overridevirtual

Removes a projectile, used when the projectile has hit a target.

Parameters
idof the projectile to remove

Implements ICmpProjectileManager.

◆ RenderModel()

void CCmpProjectileManager::RenderModel ( CModelAbstract model,
const CVector3D position,
SceneCollector collector,
const CFrustum frustum,
bool  culling,
const CLosQuerier los,
bool  losRevealAll 
) const

◆ RenderSubmit()

void CCmpProjectileManager::RenderSubmit ( SceneCollector collector,
const CFrustum frustum,
bool  culling 
) const
private

◆ Serialize()

void CCmpProjectileManager::Serialize ( ISerializer serialize)
inlineoverridevirtual

Implements IComponent.

Member Data Documentation

◆ m_ActorSeed

uint32_t CCmpProjectileManager::m_ActorSeed
private

◆ m_NextId

uint32_t CCmpProjectileManager::m_NextId
private

◆ m_ProjectileImpactAnimations

std::vector<ProjectileImpactAnimation> CCmpProjectileManager::m_ProjectileImpactAnimations
private

◆ m_Projectiles

std::vector<Projectile> CCmpProjectileManager::m_Projectiles
private

The documentation for this class was generated from the following file: