diff options
Diffstat (limited to 'indra/llcharacter/llkeyframemotion.h')
-rw-r--r-- | indra/llcharacter/llkeyframemotion.h | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/indra/llcharacter/llkeyframemotion.h b/indra/llcharacter/llkeyframemotion.h index 9b8c04ac92..5a03f7549a 100644 --- a/indra/llcharacter/llkeyframemotion.h +++ b/indra/llcharacter/llkeyframemotion.h @@ -20,6 +20,7 @@ #include "llhandmotion.h" #include "lljointstate.h" #include "llmotion.h" +#include "llmemory.h" #include "llptrskipmap.h" #include "llquaternion.h" #include "v3dmath.h" @@ -124,14 +125,14 @@ public: static void onLoadComplete(LLVFS *vfs, const LLUUID& asset_uuid, LLAssetType::EType type, - void* user_data, S32 status); + void* user_data, S32 status, LLExtStat ext_status); public: U32 getFileSize(); BOOL serialize(LLDataPacker& dp) const; BOOL deserialize(LLDataPacker& dp); void writeCAL3D(apr_file_t* fp); - BOOL isLoaded() { return mJointMotionList != NULL; } + BOOL isLoaded() { return mJointMotionList.notNull(); } // setters for modifying a keyframe animation @@ -371,8 +372,11 @@ public: //------------------------------------------------------------------------- // JointMotionList //------------------------------------------------------------------------- - class JointMotionList + class JointMotionList : public LLRefCount { + protected: + ~JointMotionList(); + public: U32 mNumJointMotions; JointMotion* mJointMotionArray; @@ -390,7 +394,6 @@ public: LLBBoxLocal mPelvisBBox; public: JointMotionList(); - ~JointMotionList(); U32 dumpDiagInfo(); }; @@ -401,7 +404,7 @@ protected: //------------------------------------------------------------------------- // Member Data //------------------------------------------------------------------------- - JointMotionList* mJointMotionList; + LLPointer<JointMotionList> mJointMotionList; LLJointState* mJointStates; LLJoint* mPelvisp; LLCharacter* mCharacter; @@ -421,7 +424,7 @@ public: LLKeyframeDataCache(){}; ~LLKeyframeDataCache(); - typedef std::map<LLUUID, class LLKeyframeMotion::JointMotionList*> keyframe_data_map_t; + typedef std::map<LLUUID, LLPointer<class LLKeyframeMotion::JointMotionList> > keyframe_data_map_t; static keyframe_data_map_t sKeyframeDataMap; static void addKeyframeData(const LLUUID& id, LLKeyframeMotion::JointMotionList*); @@ -436,3 +439,4 @@ public: #endif // LL_LLKEYFRAMEMOTION_H + |