diff options
| -rw-r--r-- | indra/llcharacter/llanimationstates.cpp | 26 | ||||
| -rw-r--r-- | indra/llcharacter/llanimationstates.h | 6 | ||||
| -rw-r--r-- | indra/llcharacter/llmotioncontroller.cpp | 29 | ||||
| -rw-r--r-- | indra/llcharacter/llmotioncontroller.h | 2 | ||||
| -rw-r--r-- | indra/newview/llappviewer.cpp | 8 | ||||
| -rw-r--r-- | indra/newview/llvoavatar.cpp | 59 | 
6 files changed, 120 insertions, 10 deletions
diff --git a/indra/llcharacter/llanimationstates.cpp b/indra/llcharacter/llanimationstates.cpp index 09deaf1932..ef0745fbcc 100644 --- a/indra/llcharacter/llanimationstates.cpp +++ b/indra/llcharacter/llanimationstates.cpp @@ -95,8 +95,8 @@ const LLUUID ANIM_AGENT_EXPRESS_WINK		= LLUUID("da020525-4d94-59d6-23d7-81fdebf3  const LLUUID ANIM_AGENT_EXPRESS_WORRY		= LLUUID("9c05e5c7-6f07-6ca4-ed5a-b230390c3950");  const LLUUID ANIM_AGENT_FALLDOWN			= LLUUID("666307d9-a860-572d-6fd4-c3ab8865c094");  const LLUUID ANIM_AGENT_FEMALE_RUN_NEW		= LLUUID("5c083e7f-6462-a637-8d33-afaefa7a97bc"); -const LLUUID ANIM_AGENT_FEMALE_WALK_NEW		= LLUUID("14b7b3c8-8987-85ab-9f29-5a5956058e55");  const LLUUID ANIM_AGENT_FEMALE_WALK			= LLUUID("f5fc7433-043d-e819-8298-f519a119b688"); +const LLUUID ANIM_AGENT_FEMALE_WALK_NEW		= LLUUID("14b7b3c8-8987-85ab-9f29-5a5956058e55");  const LLUUID ANIM_AGENT_FINGER_WAG			= LLUUID("c1bc7f36-3ba0-d844-f93c-93be945d644f");  const LLUUID ANIM_AGENT_FIST_PUMP			= LLUUID("7db00ccd-f380-f3ee-439d-61968ec69c8a");  const LLUUID ANIM_AGENT_FLY					= LLUUID("aec4610c-757f-bc4e-c092-c6e9caf18daf"); @@ -135,8 +135,8 @@ const LLUUID ANIM_AGENT_RPS_COUNTDOWN		= LLUUID("35db4f7e-28c2-6679-cea9-3ee108f  const LLUUID ANIM_AGENT_RPS_PAPER			= LLUUID("0836b67f-7f7b-f37b-c00a-460dc1521f5a");  const LLUUID ANIM_AGENT_RPS_ROCK			= LLUUID("42dd95d5-0bc6-6392-f650-777304946c0f");  const LLUUID ANIM_AGENT_RPS_SCISSORS		= LLUUID("16803a9f-5140-e042-4d7b-d28ba247c325"); -const LLUUID ANIM_AGENT_RUN_NEW					= LLUUID("25f649b2-c600-9ae3-a8e7-9eca357a20ce");  const LLUUID ANIM_AGENT_RUN					= LLUUID("05ddbff8-aaa9-92a1-2b74-8fe77a29b445"); +const LLUUID ANIM_AGENT_RUN_NEW				= LLUUID("25f649b2-c600-9ae3-a8e7-9eca357a20ce");  const LLUUID ANIM_AGENT_SAD					= LLUUID("0eb702e2-cc5a-9a88-56a5-661a55c0676a");  const LLUUID ANIM_AGENT_SALUTE				= LLUUID("cd7668a6-7011-d7e2-ead8-fc69eff1a104");  const LLUUID ANIM_AGENT_SHOOT_BOW_L			= LLUUID("e04d450d-fdb5-0432-fd68-818aaf5935f8"); @@ -171,8 +171,8 @@ const LLUUID ANIM_AGENT_TRYON_SHIRT			= LLUUID("83ff59fe-2346-f236-9009-4e3608af  const LLUUID ANIM_AGENT_TURNLEFT			= LLUUID("56e0ba0d-4a9f-7f27-6117-32f2ebbf6135");  const LLUUID ANIM_AGENT_TURNRIGHT			= LLUUID("2d6daa51-3192-6794-8e2e-a15f8338ec30");  const LLUUID ANIM_AGENT_TYPE				= LLUUID("c541c47f-e0c0-058b-ad1a-d6ae3a4584d9"); -const LLUUID ANIM_AGENT_WALK_NEW			= LLUUID("fa1e3197-5e7f-20d1-16d1-f5addc999ce7");  const LLUUID ANIM_AGENT_WALK				= LLUUID("6ed24bd8-91aa-4b12-ccc7-c97c857ab4e0"); +const LLUUID ANIM_AGENT_WALK_NEW			= LLUUID("fa1e3197-5e7f-20d1-16d1-f5addc999ce7");  const LLUUID ANIM_AGENT_WHISPER				= LLUUID("7693f268-06c7-ea71-fa21-2b30d6533f8f");  const LLUUID ANIM_AGENT_WHISTLE				= LLUUID("b1ed7982-c68e-a982-7561-52a88a5298c0");  const LLUUID ANIM_AGENT_WINK				= LLUUID("869ecdad-a44b-671e-3266-56aef2e3ac2e"); @@ -259,7 +259,9 @@ LLAnimationLibrary::LLAnimationLibrary() :  	mAnimMap[ANIM_AGENT_EXPRESS_WINK]=			mAnimStringTable.addString("express_wink_emote");  	mAnimMap[ANIM_AGENT_EXPRESS_WORRY]=			mAnimStringTable.addString("express_worry_emote");  	mAnimMap[ANIM_AGENT_FALLDOWN]=				mAnimStringTable.addString("falldown"); +	mAnimMap[ANIM_AGENT_FEMALE_RUN_NEW]=		mAnimStringTable.addString("female_run_new");  	mAnimMap[ANIM_AGENT_FEMALE_WALK]=			mAnimStringTable.addString("female_walk"); +	mAnimMap[ANIM_AGENT_FEMALE_WALK_NEW]=		mAnimStringTable.addString("female_walk_new");  	mAnimMap[ANIM_AGENT_FINGER_WAG]=			mAnimStringTable.addString("angry_fingerwag");  	mAnimMap[ANIM_AGENT_FIST_PUMP]=				mAnimStringTable.addString("fist_pump");  	mAnimMap[ANIM_AGENT_FLY]=					mAnimStringTable.addString("fly"); @@ -299,6 +301,7 @@ LLAnimationLibrary::LLAnimationLibrary() :  	mAnimMap[ANIM_AGENT_RPS_ROCK]=				mAnimStringTable.addString("rps_rock");  	mAnimMap[ANIM_AGENT_RPS_SCISSORS]=			mAnimStringTable.addString("rps_scissors");  	mAnimMap[ANIM_AGENT_RUN]=					mAnimStringTable.addString("run"); +	mAnimMap[ANIM_AGENT_RUN_NEW]=				mAnimStringTable.addString("run_new");  	mAnimMap[ANIM_AGENT_SAD]=					mAnimStringTable.addString("express_sad");  	mAnimMap[ANIM_AGENT_SALUTE]=				mAnimStringTable.addString("salute");  	mAnimMap[ANIM_AGENT_SHOOT_BOW_L]=			mAnimStringTable.addString("shoot_l_bow"); @@ -334,6 +337,7 @@ LLAnimationLibrary::LLAnimationLibrary() :  	mAnimMap[ANIM_AGENT_TURNRIGHT]=				mAnimStringTable.addString("turnright");  	mAnimMap[ANIM_AGENT_TYPE]=					mAnimStringTable.addString("type");  	mAnimMap[ANIM_AGENT_WALK]=					mAnimStringTable.addString("walk"); +	mAnimMap[ANIM_AGENT_WALK_NEW]=				mAnimStringTable.addString("walk_new");  	mAnimMap[ANIM_AGENT_WHISPER]=				mAnimStringTable.addString("whisper");  	mAnimMap[ANIM_AGENT_WHISTLE]=				mAnimStringTable.addString("whistle");  	mAnimMap[ANIM_AGENT_WINK]=					mAnimStringTable.addString("express_wink"); @@ -403,6 +407,14 @@ LLUUID LLAnimationLibrary::stringToAnimState( const std::string& name, BOOL allo  	return id;  } +//----------------------------------------------------------------------------- +// Associate an anim state with a name +//----------------------------------------------------------------------------- +void LLAnimationLibrary::animStateSetString( const LLUUID& state, const std::string& name) +{ +	mAnimMap[state] = mAnimStringTable.addString(name); +} +  // Animation states that the user can trigger as part of a gesture  // See struct LLAnimStateEntry in header for label location information  const LLAnimStateEntry gUserAnimStates[] = { @@ -480,6 +492,14 @@ const LLAnimStateEntry gUserAnimStates[] = {  const S32 gUserAnimStatesCount = LL_ARRAY_SIZE(gUserAnimStates); +std::string animationName( const LLUUID& id ) +{ +	const char *cptr = gAnimLibrary.animStateToString(id);  +	if (cptr) +		return std::string(cptr); +	else +		return std::string("[") + id.asString() + std::string("]"); +}  // End diff --git a/indra/llcharacter/llanimationstates.h b/indra/llcharacter/llanimationstates.h index 18a19c3eb5..8b6052e0f0 100644 --- a/indra/llcharacter/llanimationstates.h +++ b/indra/llcharacter/llanimationstates.h @@ -227,6 +227,11 @@ public:  	// Retun NULL if the name is invalid.  	//-----------------------------------------------------------------------------  	LLUUID stringToAnimState( const std::string& name, BOOL allow_ids = TRUE ); + +	//----------------------------------------------------------------------------- +	// Associate an anim state with a name +	//----------------------------------------------------------------------------- +	void animStateSetString( const LLUUID& state, const std::string& name);  };  struct LLAnimStateEntry @@ -252,6 +257,7 @@ extern const LLAnimStateEntry gUserAnimStates[];  extern const S32 gUserAnimStatesCount;  extern LLAnimationLibrary gAnimLibrary; +std::string animationName( const LLUUID& id );  #endif // LL_LLANIMATIONSTATES_H diff --git a/indra/llcharacter/llmotioncontroller.cpp b/indra/llcharacter/llmotioncontroller.cpp index bb9625b2bd..318fac847b 100644 --- a/indra/llcharacter/llmotioncontroller.cpp +++ b/indra/llcharacter/llmotioncontroller.cpp @@ -392,6 +392,8 @@ LLMotion* LLMotionController::createMotion( const LLUUID &id )  //-----------------------------------------------------------------------------  BOOL LLMotionController::startMotion(const LLUUID &id, F32 start_offset)  { +	llinfos << animationName(id) << llendl; +	  	// do we have an instance of this motion for this character?  	LLMotion *motion = findMotion(id); @@ -804,6 +806,8 @@ void LLMotionController::updateLoadingMotions()  //-----------------------------------------------------------------------------  void LLMotionController::updateMotions(bool force_update)  { +	dumpMotions(); +	  	BOOL use_quantum = (mTimeStep != 0.f);  	// Always update mPrevTimerElapsed @@ -1033,6 +1037,31 @@ LLMotion* LLMotionController::findMotion(const LLUUID& id) const  }  //----------------------------------------------------------------------------- +// dumpMotions() +//----------------------------------------------------------------------------- +void LLMotionController::dumpMotions() +{ +	for (motion_map_t::iterator iter = mAllMotions.begin(); +		 iter != mAllMotions.end(); iter++) +	{ +		llinfos << "=====================================" << llendl; +		LLUUID id = iter->first; +		std::string state_string; +		LLMotion *motion = iter->second; +		if (mLoadingMotions.find(motion) != mLoadingMotions.end()) +			state_string += std::string("l"); +		if (mLoadedMotions.find(motion) != mLoadedMotions.end()) +			state_string += std::string("L"); +		if (std::find(mActiveMotions.begin(), mActiveMotions.end(), motion)!=mActiveMotions.end()) +			state_string += std::string("A"); +		if (mDeprecatedMotions.find(motion) != mDeprecatedMotions.end()) +			state_string += std::string("D"); +		llinfos << animationName(id) << " " << state_string << llendl; +		 +	} +} + +//-----------------------------------------------------------------------------  // deactivateAllMotions()  //-----------------------------------------------------------------------------  void LLMotionController::deactivateAllMotions() diff --git a/indra/llcharacter/llmotioncontroller.h b/indra/llcharacter/llmotioncontroller.h index 5c3ec223cb..83dc2d487a 100644 --- a/indra/llcharacter/llmotioncontroller.h +++ b/indra/llcharacter/llmotioncontroller.h @@ -169,6 +169,8 @@ public:  	bool isMotionLoading( LLMotion *motion );  	LLMotion *findMotion( const LLUUID& id ) const; +	void dumpMotions(); +	  protected:  	// internal operations act on motion instances directly  	// as there can be duplicate motions per id during blending overlap diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 2f9bbb1407..b78d968e0e 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -3243,11 +3243,11 @@ bool LLAppViewer::initCache()  	{  		LLVFile::initClass(); -		//llinfos << "Static VFS listing" << llendl; -		//gStaticVFS->listFiles(); +		llinfos << "======= Static VFS listing ========" << llendl; +		gStaticVFS->listFiles(); -		//llinfos << "regular VFS listing" << llendl; -		//gVFS->listFiles(); +		llinfos << "========= regular VFS listing =====" << llendl; +		gVFS->listFiles();  		return true;  	} diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 05cb914e90..02baaeae41 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -1114,6 +1114,17 @@ void LLVOAvatar::initClass()  	{  		llerrs << "Error parsing skeleton node in avatar XML file: " << skeleton_path << llendl;  	} + +	gAnimLibrary.animStateSetString(ANIM_AGENT_BODY_NOISE,"body_noise"); +	gAnimLibrary.animStateSetString(ANIM_AGENT_BREATHE_ROT,"breathe_rot"); +	gAnimLibrary.animStateSetString(ANIM_AGENT_EDITING,"editing"); +	gAnimLibrary.animStateSetString(ANIM_AGENT_EYE,"eye"); +	gAnimLibrary.animStateSetString(ANIM_AGENT_FLY_ADJUST,"fly_adjust"); +	gAnimLibrary.animStateSetString(ANIM_AGENT_HAND_MOTION,"hand_motion"); +	gAnimLibrary.animStateSetString(ANIM_AGENT_HEAD_ROT,"head_rot"); +	gAnimLibrary.animStateSetString(ANIM_AGENT_PELVIS_FIX,"pelvis_fix"); +	gAnimLibrary.animStateSetString(ANIM_AGENT_TARGET,"target"); +	gAnimLibrary.animStateSetString(ANIM_AGENT_WALK_ADJUST,"walk_adjust");  } @@ -2120,6 +2131,30 @@ S32 LLVOAvatar::setTETexture(const U8 te, const LLUUID& uuid)  static LLFastTimer::DeclareTimer FTM_AVATAR_UPDATE("Update Avatar");  static LLFastTimer::DeclareTimer FTM_JOINT_UPDATE("Update Joints"); +void dumpAnimationState(LLVOAvatar *self) +{ +	llinfos << "==============================================" << llendl; +	for (LLVOAvatar::AnimIterator it = self->mSignaledAnimations.begin(); it != self->mSignaledAnimations.end(); ++it) +	{ +		LLUUID id = it->first; +		std::string playtag = ""; +		if (self->mPlayingAnimations.find(id) != self->mPlayingAnimations.end()) +		{ +			playtag = "*"; +		} +		llinfos << animationName(id) << playtag << llendl; +	} +	for (LLVOAvatar::AnimIterator it = self->mPlayingAnimations.begin(); it != self->mPlayingAnimations.end(); ++it) +	{ +		LLUUID id = it->first; +		bool is_signaled = self->mSignaledAnimations.find(id) != self->mSignaledAnimations.end(); +		if (!is_signaled) +		{ +			llinfos << animationName(id) << "!S" << llendl; +		} +	} +} +  //------------------------------------------------------------------------  // idleUpdate()  //------------------------------------------------------------------------ @@ -2223,6 +2258,12 @@ BOOL LLVOAvatar::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)  	idleUpdateNameTag( root_pos_last );  	idleUpdateRenderCost();  	idleUpdateTractorBeam(); + +	if (isSelf()) +	{ +		dumpAnimationState(this); +	} +	  	return TRUE;  } @@ -4430,12 +4471,17 @@ LLUUID LLVOAvatar::remapMotionID(const LLUUID& id)  //-----------------------------------------------------------------------------  BOOL LLVOAvatar::startMotion(const LLUUID& id, F32 time_offset)  { -	llinfos << "motion " << id.asString() << llendl; -  	LLMemType mt(LLMemType::MTYPE_AVATAR); +	llinfos << "motion requested " << id.asString() << " " << animationName(id) << llendl; +  	LLUUID remap_id = remapMotionID(id); -	 + +	if (remap_id != id) +	{ +		llinfos << "motion resultant " << remap_id.asString() << " " << animationName(remap_id) << llendl; +	} +  	if (isSelf() && remap_id == ANIM_AGENT_AWAY)  	{  		gAgent.setAFK(); @@ -4449,8 +4495,15 @@ BOOL LLVOAvatar::startMotion(const LLUUID& id, F32 time_offset)  //-----------------------------------------------------------------------------  BOOL LLVOAvatar::stopMotion(const LLUUID& id, BOOL stop_immediate)  { +	llinfos << "motion requested " << id.asString() << " " << animationName(id) << llendl; +  	LLUUID remap_id = remapMotionID(id); +	if (remap_id != id) +	{ +		llinfos << "motion resultant " << remap_id.asString() << " " << animationName(remap_id) << llendl; +	} +  	if (isSelf())  	{  		gAgent.onAnimStop(remap_id);  | 
