rayp was faster, but if you're still interested in my code:

Code:
void pl_Animate(ENTITY* chara, STRING* scene, var percent, var mode)
{
	ENTITY* piece;

	if (chara != NULL)
	{
		ent_animate(chara, scene, percent, mode);
		
		if (chara.phair != NULL)
		{
			piece = (ENTITY*)chara.phair;
			ent_animatefrom(piece, chara, scene, percent, mode);
			vec_set(piece.x, chara.x);
			vec_set(piece.pan, chara.pan);
		}
		if (chara.pchest != NULL)
		{
			piece = (ENTITY*)chara.pchest;
			ent_animatefrom(piece, chara, scene, percent, mode);
			vec_set(piece.x, chara.x);
			vec_set(piece.pan, chara.pan);
		}
		// and so on
	}
}



phair and pchest are skills I use to store pointers. The codeblocks repeat for all armor/clothing/whatever pieces.