yuck. implement copy ctor to copy tweening queue

This commit is contained in:
Glenn Maynard
2005-07-19 06:21:10 +00:00
parent a305c072c0
commit c05cf4806a
2 changed files with 62 additions and 4 deletions
+58
View File
@@ -114,6 +114,64 @@ Actor::~Actor()
UnsubcribeAndClearCommands(); UnsubcribeAndClearCommands();
} }
Actor::Actor( const Actor &cpy )
{
#define CPY(x) x = cpy.x
CPY( m_sName );
CPY( m_pLuaInstance );
CPY( m_baseRotation );
CPY( m_baseScale );
CPY( m_fBaseAlpha );
CPY( m_size );
CPY( m_current );
CPY( m_start );
for( unsigned i = 0; i < cpy.m_Tweens.size(); ++i )
m_Tweens.push_back( new TweenStateAndInfo(*cpy.m_Tweens[i]) );
CPY( m_tempState );
CPY( m_pTempState );
CPY( m_bFirstUpdate );
CPY( m_HorizAlign );
CPY( m_VertAlign );
CPY( m_Effect );
CPY( m_sEffectCommand );
CPY( m_fSecsIntoEffect );
CPY( m_fEffectDelta );
CPY( m_fEffectPeriodSeconds );
CPY( m_fEffectDelay );
CPY( m_fEffectOffset );
CPY( m_EffectClock );
CPY( m_effectColor1 );
CPY( m_effectColor2 );
CPY( m_vEffectMagnitude );
CPY( m_bVisible );
CPY( m_fHibernateSecondsLeft );
CPY( m_fShadowLength );
CPY( m_bIsAnimating );
CPY( m_iDrawOrder );
CPY( m_bTextureWrapping );
CPY( m_BlendMode );
CPY( m_bClearZBuffer );
CPY( m_ZTestMode );
CPY( m_bZWrite );
CPY( m_fZBias );
CPY( m_CullMode );
CPY( m_mapNameToCommands );
CPY( m_vsSubscribedTo );
vector<CString> m_vsSubscribedTo;
#undef CPY
}
void Actor::LoadFromNode( const CString& sDir, const XNode* pNode ) void Actor::LoadFromNode( const CString& sDir, const XNode* pNode )
{ {
// Load Name, if any. // Load Name, if any.
+4 -4
View File
@@ -26,6 +26,7 @@ class Actor : public IMessageSubscriber
{ {
public: public:
Actor(); Actor();
Actor( const Actor &cpy );
virtual ~Actor(); virtual ~Actor();
virtual Actor *Copy() const; virtual Actor *Copy() const;
void UnsubcribeAndClearCommands(); void UnsubcribeAndClearCommands();
@@ -96,9 +97,6 @@ public:
void UpdateTweening( float fDeltaTime ); void UpdateTweening( float fDeltaTime );
void CopyTweening( const Actor &from ); void CopyTweening( const Actor &from );
CString m_sName;
const CString &GetName() const { return m_sName; } const CString &GetName() const { return m_sName; }
virtual void SetName( const CString &sName ) { m_sName = sName; } virtual void SetName( const CString &sName ) { m_sName = sName; }
@@ -335,7 +333,6 @@ public:
// Lua // Lua
// //
virtual void PushSelf( lua_State *L ); virtual void PushSelf( lua_State *L );
HiddenPtr<LuaClass> m_pLuaInstance;
// //
// Commands // Commands
@@ -369,7 +366,10 @@ public:
virtual void SetSecondsIntoAnimation( float fSeconds ) {} virtual void SetSecondsIntoAnimation( float fSeconds ) {}
virtual void SetUpdateRate( float fRate ) {} virtual void SetUpdateRate( float fRate ) {}
HiddenPtr<LuaClass> m_pLuaInstance;
protected: protected:
CString m_sName;
struct TweenInfo struct TweenInfo
{ {