Skip to content
Snippets Groups Projects
Select Git revision
  • 29cb21ddb92413931e473eb799a02e2d8cdf4a45
  • main default protected
  • 3.10
  • 3.11
  • revert-15688-bpo-38031-_io-FileIO-opener-crash
  • 3.8
  • 3.9
  • 3.7
  • enum-fix_auto
  • branch-v3.11.0
  • backport-c3648f4-3.11
  • gh-93963/remove-importlib-resources-abcs
  • refactor-wait_for
  • shared-testcase
  • v3.12.0a2
  • v3.12.0a1
  • v3.11.0
  • v3.8.15
  • v3.9.15
  • v3.10.8
  • v3.7.15
  • v3.11.0rc2
  • v3.8.14
  • v3.9.14
  • v3.7.14
  • v3.10.7
  • v3.11.0rc1
  • v3.10.6
  • v3.11.0b5
  • v3.11.0b4
  • v3.10.5
  • v3.11.0b3
  • v3.11.0b2
  • v3.9.13
34 results

topics.py

Blame
  • BaseAnimating.h 2.63 KiB
    
    /***********************************************************
    Copyright © Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
    See the license in LICENSE
    ***********************************************************/
    
    /*!
    \file
    Анимированный игровой объект
    */
    
    /*! \defgroup cbaseanimating Моделированные объекты
    \ingroup cbaseentity
    @{
    */
    
    #ifndef __BASE_ANIMATING_H
    #define __BASE_ANIMATING_H
    
    #include "BaseEntity.h"
    #include <anim/sxanim.h>
    
    //! Анимированный игровой объект
    class CBaseAnimating: public CBaseEntity
    {
    	DECLARE_CLASS(CBaseAnimating, CBaseEntity);
    	DECLARE_PROPTABLE();
    public:
    	CBaseAnimating(CEntityManager * pMgr);
    	~CBaseAnimating();
    
    	void getMinMax(float3 * min, float3 * max);
    	void getSphere(float3 * center, float * radius);
    
    	bool setKV(const char * name, const char * value);
    
    	virtual void setModel(const char * mdl);
    
    	float3 getAttachmentPos(int id);
    	SMQuaternion getAttachmentRot(int id);
    
    	void onSync();
    
    	void playAnimation(const char * name, UINT uFadeTime = 0, UINT slot = 0);
    	void playActivity(const char * name, UINT uFadeTime = 0, UINT slot = 0);
    
    	void playAnimationNext(const char * name, UINT uFadeTime = 0, UINT slot = 0);
    	void playActivityNext(const char * name, UINT uFadeTime = 0, UINT slot = 0);
    
    	void cancelNextAnimation(int iSlot = -1);
    
    	bool playingAnimations(const char* name);
    	void setPos(const float3 & pos);
    	void setOrient(const SMQuaternion & q);
    
    	void setSkin(int iSkin);
    	
    	void setCollisionGroup(COLLISION_GROUP group, COLLISION_GROUP mask = CG_ALL);
    	COLLISION_GROUP getCollisionGroup();
    
    protected:
    	virtual void _initEditorBoxes();
    	virtual void _releaseEditorBoxes();
    
    	void inputPlayAnim(inputdata_t * pInputdata);
    	void inputPlayAnimNext(inputdata_t * pInputdata);
    
    	void inputPlayActivity(inputdata_t * pInputdata);
    	void inputPlayActivityNext(inputdata_t * pInputdata);
    
    	void inputSetSkin(inputdata_t * pInputdata);
    
    	IAnimPlayer * m_pAnimPlayer;
    	const char * m_szModelFile;
    	float m_fBaseScale;
    	bool m_isStatic;
    
    	CBaseEntity *m_pEntColorRef = NULL;
    	float3_t m_vGlowColor;
    
    	virtual void initPhysics();
    	virtual void releasePhysics();
    	virtual void createPhysBody();
    	virtual void removePhysBody();
    
    	btCollisionShape * m_pCollideShape;
    	btRigidBody * m_pRigidBody;
    
    	virtual void _cleanup();
    
    	virtual void onAnimationStateChanged(int slot, ANIM_STATE as);
    
    	void onIsStaticChange(bool isStatic);
    
    	int m_iSkin = 0;
    
    	struct
    	{
    		char szName[MODEL_MAX_NAME];
    		UINT uFadeTime;
    		bool isActivity;
    	} m_vNextAnim[BLEND_MAX];
    
    private:
    	COLLISION_GROUP m_collisionGroup;
    	COLLISION_GROUP m_collisionMask = CG_ALL;
    };
    
    #endif
    
    /*! @} cbaseanimating */