Pyrogenesis  13997
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
CCmpVisualActor Class Reference
Inheritance diagram for CCmpVisualActor:
ICmpVisual IComponent

Public Member Functions

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 ()
 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 ()
 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 ()
 Get the world-space position of the base point of the object's visual representation. More...
 
virtual std::wstring GetActorShortName ()
 Return the short name of the actor that's being displayed, or the empty string on error. More...
 
virtual std::wstring GetProjectileActor ()
 Return the filename of the actor to be used for projectiles from this unit, or the empty string if none. More...
 
virtual CVector3D GetProjectileLaunchPoint ()
 Return the exact position where a projectile should be launched from (based on the actor's ammo prop points). More...
 
virtual void SelectAnimation (std::string name, bool once, fixed speed, std::wstring soundgroup)
 Start playing the given animation. More...
 
virtual void ReplaceMoveAnimation (std::string name, std::string replace)
 Replaces a specified animation with another. More...
 
virtual void ResetMoveAnimation (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 SetUnitEntitySelection (const CStr &selection)
 Sets the specified entity selection on the underlying unit. 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 SetShadingColour (fixed r, fixed g, fixed b, fixed a)
 Set the shading colour that will be modulated with the model's textures. More...
 
virtual void SetVariable (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 ()
 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 ()
 Returns true if this entity should have a construction preview. More...
 
virtual void SetConstructionProgress (fixed progress)
 Set construction progress of the model, this affects the rendered position of the model. 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 JSClass * GetJSClass () const
 
virtual jsval GetJSInstance () const
 

Static Public Member Functions

static void ClassInit (CComponentManager &componentManager)
 
static IComponentAllocate (ScriptInterface &, jsval)
 
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 Update (fixed turnLength)
 
void UpdateVisibility ()
 
void Interpolate (float frameTime, float frameOffset)
 
void RenderSubmit (SceneCollector &collector, const CFrustum &frustum, bool culling)
 

Private Attributes

std::wstring m_ActorName
 
CUnitm_Unit
 
fixed m_R
 
fixed m_G
 
fixed m_B
 
std::map< std::string,
std::string > 
m_AnimOverride
 
ICmpRangeManager::ELosVisibility m_Visibility
 
fixed m_AnimRunThreshold
 
std::string m_AnimName
 
bool m_AnimOnce
 
fixed m_AnimSpeed
 
std::wstring m_SoundGroup
 
fixed m_AnimDesync
 
fixed m_AnimSyncRepeatTime
 
u32 m_Seed
 
bool m_ConstructionPreview
 
fixed m_ConstructionProgress
 
bool m_VisibleInAtlasOnly
 
bool m_PreviouslyRendered
 Whether the visual actor has been rendered at least once. More...
 

Detailed Description

Definition at line 50 of file CCmpVisualActor.cpp.

Member Function Documentation

static IComponent* CCmpVisualActor::Allocate ( ScriptInterface ,
jsval   
)
inlinestatic

Definition at line 62 of file CCmpVisualActor.cpp.

static void CCmpVisualActor::ClassInit ( CComponentManager componentManager)
inlinestatic

Definition at line 53 of file CCmpVisualActor.cpp.

static void CCmpVisualActor::Deallocate ( IComponent cmp)
inlinestatic

Definition at line 62 of file CCmpVisualActor.cpp.

virtual void CCmpVisualActor::Deinit ( )
inlinevirtual

Implements IComponent.

Definition at line 197 of file CCmpVisualActor.cpp.

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

Implements IComponent.

Definition at line 241 of file CCmpVisualActor.cpp.

virtual u32 CCmpVisualActor::GetActorSeed ( )
inlinevirtual

Get actor seed used for random variations.

Implements ICmpVisual.

Definition at line 455 of file CCmpVisualActor.cpp.

virtual std::wstring CCmpVisualActor::GetActorShortName ( )
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.

Definition at line 337 of file CCmpVisualActor.cpp.

virtual CBoundingBoxAligned CCmpVisualActor::GetBounds ( )
inlinevirtual

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

(Not safe for use in simulation code.)

Implements ICmpVisual.

Definition at line 311 of file CCmpVisualActor.cpp.

virtual CVector3D CCmpVisualActor::GetPosition ( )
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.

Definition at line 330 of file CCmpVisualActor.cpp.

virtual std::wstring CCmpVisualActor::GetProjectileActor ( )
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.

Definition at line 344 of file CCmpVisualActor.cpp.

virtual CVector3D CCmpVisualActor::GetProjectileLaunchPoint ( )
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.

Definition at line 351 of file CCmpVisualActor.cpp.

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

Definition at line 96 of file CCmpVisualActor.cpp.

virtual CBoundingBoxOriented CCmpVisualActor::GetSelectionBox ( )
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.

Definition at line 323 of file CCmpVisualActor.cpp.

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.

Definition at line 318 of file CCmpVisualActor.cpp.

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

Reimplemented from IComponent.

Definition at line 270 of file CCmpVisualActor.cpp.

virtual bool CCmpVisualActor::HasConstructionPreview ( )
inlinevirtual

Returns true if this entity should have a construction preview.

Implements ICmpVisual.

Definition at line 469 of file CCmpVisualActor.cpp.

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.

Definition at line 479 of file CCmpVisualActor.cpp.

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

Implements IComponent.

Definition at line 172 of file CCmpVisualActor.cpp.

void CCmpVisualActor::InitModel ( const CParamNode paramNode)
private

Helper function shared by component init and actor reloading.

Definition at line 509 of file CCmpVisualActor.cpp.

void CCmpVisualActor::InitSelectionShapeDescriptor ( const CParamNode paramNode)
private

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

Definition at line 555 of file CCmpVisualActor.cpp.

void CCmpVisualActor::Interpolate ( float  frameTime,
float  frameOffset 
)
private

Definition at line 747 of file CCmpVisualActor.cpp.

void CCmpVisualActor::ReloadActor ( )
private

Definition at line 626 of file CCmpVisualActor.cpp.

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

Definition at line 806 of file CCmpVisualActor.cpp.

virtual void CCmpVisualActor::ReplaceMoveAnimation ( std::string  name,
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.

Definition at line 387 of file CCmpVisualActor.cpp.

virtual void CCmpVisualActor::ResetMoveAnimation ( 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.

Definition at line 392 of file CCmpVisualActor.cpp.

virtual void CCmpVisualActor::SelectAnimation ( std::string  name,
bool  once,
fixed  speed,
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.

Definition at line 369 of file CCmpVisualActor.cpp.

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.

Definition at line 407 of file CCmpVisualActor.cpp.

virtual void CCmpVisualActor::Serialize ( ISerializer serialize)
inlinevirtual

Implements IComponent.

Definition at line 229 of file CCmpVisualActor.cpp.

template<typename S >
void CCmpVisualActor::SerializeCommon ( S &  serialize)
inline

Definition at line 207 of file CCmpVisualActor.cpp.

virtual void CCmpVisualActor::SetActorSeed ( u32  seed)
inlinevirtual

Set actor seed for random variations and reload model.

Implements ICmpVisual.

Definition at line 460 of file CCmpVisualActor.cpp.

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.

Definition at line 430 of file CCmpVisualActor.cpp.

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.

Definition at line 419 of file CCmpVisualActor.cpp.

virtual void CCmpVisualActor::SetConstructionProgress ( fixed  progress)
inlinevirtual

Set construction progress of the model, this affects the rendered position of the model.

0.0 will be fully underground, 1.0 will be fully visible, 0.5 will be half underground.

Implements ICmpVisual.

Definition at line 474 of file CCmpVisualActor.cpp.

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

Set the shading colour 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.

Definition at line 439 of file CCmpVisualActor.cpp.

virtual void CCmpVisualActor::SetUnitEntitySelection ( const CStr &  selection)
inlinevirtual

Sets the specified entity selection on the underlying unit.

Implements ICmpVisual.

Definition at line 399 of file CCmpVisualActor.cpp.

virtual void CCmpVisualActor::SetVariable ( 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.

Definition at line 447 of file CCmpVisualActor.cpp.

void CCmpVisualActor::Update ( fixed  turnLength)
private

Definition at line 666 of file CCmpVisualActor.cpp.

void CCmpVisualActor::UpdateVisibility ( )
private

Definition at line 712 of file CCmpVisualActor.cpp.

Member Data Documentation

std::wstring CCmpVisualActor::m_ActorName
private

Definition at line 65 of file CCmpVisualActor.cpp.

fixed CCmpVisualActor::m_AnimDesync
private

Definition at line 80 of file CCmpVisualActor.cpp.

std::string CCmpVisualActor::m_AnimName
private

Definition at line 76 of file CCmpVisualActor.cpp.

bool CCmpVisualActor::m_AnimOnce
private

Definition at line 77 of file CCmpVisualActor.cpp.

std::map<std::string, std::string> CCmpVisualActor::m_AnimOverride
private

Definition at line 70 of file CCmpVisualActor.cpp.

fixed CCmpVisualActor::m_AnimRunThreshold
private

Definition at line 75 of file CCmpVisualActor.cpp.

fixed CCmpVisualActor::m_AnimSpeed
private

Definition at line 78 of file CCmpVisualActor.cpp.

fixed CCmpVisualActor::m_AnimSyncRepeatTime
private

Definition at line 81 of file CCmpVisualActor.cpp.

fixed CCmpVisualActor::m_B
private

Definition at line 68 of file CCmpVisualActor.cpp.

bool CCmpVisualActor::m_ConstructionPreview
private

Definition at line 85 of file CCmpVisualActor.cpp.

fixed CCmpVisualActor::m_ConstructionProgress
private

Definition at line 86 of file CCmpVisualActor.cpp.

fixed CCmpVisualActor::m_G
private

Definition at line 68 of file CCmpVisualActor.cpp.

bool CCmpVisualActor::m_PreviouslyRendered
private

Whether the visual actor has been rendered at least once.

Necessary because the visibility update runs on simulation update, which may not occur immediately if the game starts paused.

Definition at line 93 of file CCmpVisualActor.cpp.

fixed CCmpVisualActor::m_R
private

Definition at line 68 of file CCmpVisualActor.cpp.

u32 CCmpVisualActor::m_Seed
private

Definition at line 83 of file CCmpVisualActor.cpp.

std::wstring CCmpVisualActor::m_SoundGroup
private

Definition at line 79 of file CCmpVisualActor.cpp.

CUnit* CCmpVisualActor::m_Unit
private

Definition at line 66 of file CCmpVisualActor.cpp.

ICmpRangeManager::ELosVisibility CCmpVisualActor::m_Visibility
private

Definition at line 72 of file CCmpVisualActor.cpp.

bool CCmpVisualActor::m_VisibleInAtlasOnly
private

Definition at line 88 of file CCmpVisualActor.cpp.


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