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

Public Member Functions

virtual int GetComponentTypeId () const
 
virtual void Init (const CParamNode &paramNode)
 
virtual void Deinit ()
 
template<typename S >
void SerializeCommon (S &serialize)
 
virtual void Serialize (ISerializer &serialize)
 
virtual void Deserialize (const CParamNode &paramNode, IDeserializer &deserialize)
 
virtual void HandleMessage (const CMessage &msg, bool global)
 
virtual CBoundingBoxAligned GetBounds () const
 Get the world-space bounding box of the object's visual representation. More...
 
virtual CUnitGetUnit ()
 Returns the underlying unit of this visual actor. More...
 
virtual CBoundingBoxOriented GetSelectionBox () const
 Get the oriented world-space bounding box of the object's visual representation, clipped at the Y=0 plane in object space to prevent it from extending into the terrain. More...
 
virtual CVector3D GetPosition () const
 Get the world-space position of the base point of the object's visual representation. More...
 
virtual std::wstring GetActorShortName () const
 Return the short name of the actor that's being displayed, or the empty string on error. More...
 
virtual std::wstring GetProjectileActor () const
 Return the filename of the actor to be used for projectiles from this unit, or the empty string if none. More...
 
virtual CVector3D GetProjectileLaunchPoint () const
 Return the exact position where a projectile should be launched from (based on the actor's ammo prop points). More...
 
virtual void SetVariant (const CStr &key, const CStr &selection)
 Set the variant selection of the actor for a certain key. More...
 
virtual std::string GetAnimationName () const
 Returns the name of the currently played animation. More...
 
virtual void SelectAnimation (const std::string &name, bool once, fixed speed, const std::wstring &soundgroup)
 Start playing the given animation. More...
 
virtual void ReplaceMoveAnimation (const std::string &name, const std::string &replace)
 Replaces a specified animation with another. More...
 
virtual void ResetMoveAnimation (const std::string &name)
 Ensures that the given animation will be used when it normally would be, removing reference to any animation that might replace it. More...
 
virtual void SelectMovementAnimation (fixed runThreshold)
 Start playing the walk/run animations, scaled to the unit's movement speed. More...
 
virtual void SetAnimationSyncRepeat (fixed repeattime)
 Adjust the speed of the current animation, so it can match simulation events. More...
 
virtual void SetAnimationSyncOffset (fixed actiontime)
 Adjust the offset of the current animation, so it can match simulation events. More...
 
virtual void SetShadingColor (fixed r, fixed g, fixed b, fixed a)
 Set the shading color that will be modulated with the model's textures. More...
 
virtual void SetVariable (const std::string &name, float value)
 Set an arbitrarily-named variable that the model may use to alter its appearance (e.g. More...
 
virtual u32 GetActorSeed () const
 Get actor seed used for random variations. More...
 
virtual void SetActorSeed (u32 seed)
 Set actor seed for random variations and reload model. More...
 
virtual bool HasConstructionPreview () const
 Returns true if this entity should have a construction preview. More...
 
virtual void Hotload (const VfsPath &name)
 Called when an actor file has been modified and reloaded dynamically. More...
 
- 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 (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 (ScriptInterface &, JS::HandleValue)
 
static void Deallocate (IComponent *cmp)
 
static std::string GetSchema ()
 
- Static Public Member Functions inherited from IComponent
static std::string GetSchema ()
 
static u8 GetSerializationVersion ()
 

Private Member Functions

void InitModel (const CParamNode &paramNode)
 Helper function shared by component init and actor reloading. More...
 
void InitSelectionShapeDescriptor (const CParamNode &paramNode)
 Helper method; initializes the model selection shape descriptor from XML. Factored out for readability of Init. More...
 
void ReloadActor ()
 
void ReloadUnitAnimation ()
 
void Update (fixed turnLength)
 

Private Attributes

std::wstring m_BaseActorName
 
std::wstring m_ActorName
 
bool m_IsFoundationActor
 
CUnitm_Unit
 
fixed m_R
 
fixed m_G
 
fixed m_B
 
std::map< std::string, std::string > m_AnimOverride
 
fixed m_AnimRunThreshold
 
std::string m_AnimName
 
bool m_AnimOnce
 
fixed m_AnimSpeed
 
std::wstring m_SoundGroup
 
fixed m_AnimDesync
 
fixed m_AnimSyncRepeatTime
 
fixed m_AnimSyncOffsetTime
 
std::map< CStr, CStr > m_VariantSelections
 
u32 m_Seed
 
bool m_ConstructionPreview
 
bool m_VisibleInAtlasOnly
 
bool m_IsActorOnly
 
ICmpUnitRenderer::tag_t m_ModelTag
 

Member Function Documentation

static IComponent* CCmpVisualActor::Allocate ( ScriptInterface ,
JS::HandleValue   
)
inlinestatic
static void CCmpVisualActor::ClassInit ( CComponentManager componentManager)
inlinestatic
static void CCmpVisualActor::Deallocate ( IComponent cmp)
inlinestatic
virtual void CCmpVisualActor::Deinit ( )
inlinevirtual

Implements IComponent.

virtual void CCmpVisualActor::Deserialize ( const CParamNode paramNode,
IDeserializer deserialize 
)
inlinevirtual

Implements IComponent.

virtual u32 CCmpVisualActor::GetActorSeed ( ) const
inlinevirtual

Get actor seed used for random variations.

Implements ICmpVisual.

virtual std::wstring CCmpVisualActor::GetActorShortName ( ) const
inlinevirtual

Return the short name of the actor that's being displayed, or the empty string on error.

(Not safe for use in simulation code.)

Implements ICmpVisual.

virtual std::string CCmpVisualActor::GetAnimationName ( ) const
inlinevirtual

Returns the name of the currently played animation.

Implements ICmpVisual.

virtual CBoundingBoxAligned CCmpVisualActor::GetBounds ( ) const
inlinevirtual

Get the world-space bounding box of the object's visual representation.

(Not safe for use in simulation code.)

Implements ICmpVisual.

virtual int CCmpVisualActor::GetComponentTypeId ( ) const
inlinevirtual

Implements IComponent.

virtual CVector3D CCmpVisualActor::GetPosition ( ) const
inlinevirtual

Get the world-space position of the base point of the object's visual representation.

(Not safe for use in simulation code.)

Implements ICmpVisual.

virtual std::wstring CCmpVisualActor::GetProjectileActor ( ) const
inlinevirtual

Return the filename of the actor to be used for projectiles from this unit, or the empty string if none.

(Not safe for use in simulation code.)

Implements ICmpVisual.

virtual CVector3D CCmpVisualActor::GetProjectileLaunchPoint ( ) const
inlinevirtual

Return the exact position where a projectile should be launched from (based on the actor's ammo prop points).

Returns (0,0,0) if no point can be found.

Implements ICmpVisual.

static std::string CCmpVisualActor::GetSchema ( )
inlinestatic
virtual CBoundingBoxOriented CCmpVisualActor::GetSelectionBox ( ) const
inlinevirtual

Get the oriented world-space bounding box of the object's visual representation, clipped at the Y=0 plane in object space to prevent it from extending into the terrain.

The primary difference with GetBounds is that this bounding box is not aligned to the world axes, but arbitrarily rotated according to the model transform.

Implements ICmpVisual.

virtual CUnit* CCmpVisualActor::GetUnit ( )
inlinevirtual

Returns the underlying unit of this visual actor.

May return NULL to indicate that no unit exists (e.g. may happen if the game is started without graphics rendering). Originally intended for introspection purposes in Atlas; for other purposes, consider using a specialized getter first.

Implements ICmpVisual.

virtual void CCmpVisualActor::HandleMessage ( const CMessage msg,
bool  global 
)
inlinevirtual

Reimplemented from IComponent.

virtual bool CCmpVisualActor::HasConstructionPreview ( ) const
inlinevirtual

Returns true if this entity should have a construction preview.

Implements ICmpVisual.

virtual void CCmpVisualActor::Hotload ( const VfsPath name)
inlinevirtual

Called when an actor file has been modified and reloaded dynamically.

If this component uses the named actor file, it should regenerate its actor to pick up the new definitions.

Implements ICmpVisual.

virtual void CCmpVisualActor::Init ( const CParamNode paramNode)
inlinevirtual

Implements IComponent.

void CCmpVisualActor::InitModel ( const CParamNode paramNode)
private

Helper function shared by component init and actor reloading.

void CCmpVisualActor::InitSelectionShapeDescriptor ( const CParamNode paramNode)
private

Helper method; initializes the model selection shape descriptor from XML. Factored out for readability of Init.

void CCmpVisualActor::ReloadActor ( )
private
void CCmpVisualActor::ReloadUnitAnimation ( )
private
virtual void CCmpVisualActor::ReplaceMoveAnimation ( const std::string &  name,
const std::string &  replace 
)
inlinevirtual

Replaces a specified animation with another.

Only affects the special speed-based animation determination behaviour.

Parameters
nameAnimation to match.
replaceAnimation that should replace the matched animation.

Implements ICmpVisual.

virtual void CCmpVisualActor::ResetMoveAnimation ( const std::string &  name)
inlinevirtual

Ensures that the given animation will be used when it normally would be, removing reference to any animation that might replace it.

Parameters
nameAnimation name to remove from the replacement map.

Implements ICmpVisual.

virtual void CCmpVisualActor::SelectAnimation ( const std::string &  name,
bool  once,
fixed  speed,
const std::wstring &  soundgroup 
)
inlinevirtual

Start playing the given animation.

If there are multiple possible animations then it will pick one at random (not network-synchronised). If soundgroup is specified, then the sound will be played at each 'event' point in the animation cycle.

Parameters
nameanimation name (e.g. "idle", "walk", "melee"; the names are determined by actor XML files)
onceif true then the animation will play once and freeze at the final frame, else it will loop
speedanimation speed multiplier (typically 1.0 for the default speed)
soundgroupVFS path of sound group .xml, relative to audio/, or empty string for none

Implements ICmpVisual.

virtual void CCmpVisualActor::SelectMovementAnimation ( fixed  runThreshold)
inlinevirtual

Start playing the walk/run animations, scaled to the unit's movement speed.

Parameters
runThresholdmovement speed at which to switch to the run animation

Implements ICmpVisual.

virtual void CCmpVisualActor::Serialize ( ISerializer serialize)
inlinevirtual

Implements IComponent.

template<typename S >
void CCmpVisualActor::SerializeCommon ( S &  serialize)
inline
virtual void CCmpVisualActor::SetActorSeed ( u32  seed)
inlinevirtual

Set actor seed for random variations and reload model.

Implements ICmpVisual.

virtual void CCmpVisualActor::SetAnimationSyncOffset ( fixed  actiontime)
inlinevirtual

Adjust the offset of the current animation, so it can match simulation events.

Parameters
actiontimetime between now and when the 'action' event should occur, in msec

Implements ICmpVisual.

virtual void CCmpVisualActor::SetAnimationSyncRepeat ( fixed  repeattime)
inlinevirtual

Adjust the speed of the current animation, so it can match simulation events.

Parameters
repeattimetime for complete loop of animation, in msec

Implements ICmpVisual.

virtual void CCmpVisualActor::SetShadingColor ( fixed  r,
fixed  g,
fixed  b,
fixed  a 
)
inlinevirtual

Set the shading color that will be modulated with the model's textures.

Default shading is (1, 1, 1, 1). Alpha should probably be 1 else it's unlikely to work properly.

Parameters
rred component, expected range [0, 1]
ggreen component, expected range [0, 1]
bblue component, expected range [0, 1]
aalpha component, expected range [0, 1]

Implements ICmpVisual.

virtual void CCmpVisualActor::SetVariable ( const std::string &  name,
float  value 
)
inlinevirtual

Set an arbitrarily-named variable that the model may use to alter its appearance (e.g.

in particle emitter parameter computations).

Implements ICmpVisual.

virtual void CCmpVisualActor::SetVariant ( const CStr &  key,
const CStr &  selection 
)
inlinevirtual

Set the variant selection of the actor for a certain key.

This overrides a previous selection on that key, so every component should use unique keys.

Implements ICmpVisual.

void CCmpVisualActor::Update ( fixed  turnLength)
private

Member Data Documentation

std::wstring CCmpVisualActor::m_ActorName
private
fixed CCmpVisualActor::m_AnimDesync
private
std::string CCmpVisualActor::m_AnimName
private
bool CCmpVisualActor::m_AnimOnce
private
std::map<std::string, std::string> CCmpVisualActor::m_AnimOverride
private
fixed CCmpVisualActor::m_AnimRunThreshold
private
fixed CCmpVisualActor::m_AnimSpeed
private
fixed CCmpVisualActor::m_AnimSyncOffsetTime
private
fixed CCmpVisualActor::m_AnimSyncRepeatTime
private
fixed CCmpVisualActor::m_B
private
std::wstring CCmpVisualActor::m_BaseActorName
private
bool CCmpVisualActor::m_ConstructionPreview
private
fixed CCmpVisualActor::m_G
private
bool CCmpVisualActor::m_IsActorOnly
private
bool CCmpVisualActor::m_IsFoundationActor
private
ICmpUnitRenderer::tag_t CCmpVisualActor::m_ModelTag
private
fixed CCmpVisualActor::m_R
private
u32 CCmpVisualActor::m_Seed
private
std::wstring CCmpVisualActor::m_SoundGroup
private
CUnit* CCmpVisualActor::m_Unit
private
std::map<CStr, CStr> CCmpVisualActor::m_VariantSelections
private
bool CCmpVisualActor::m_VisibleInAtlasOnly
private

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