I found the problem guys so I’ll post the solution in case anyone has a similar problem.
m_pGruntAnimation = CCAnimation::create(FrameArray);
is wrong. It needs a second parameter to define the delay between each frame.
m_pGruntAnimation =CCAnimation::create(FrameArray, (1.0f/FrameArray->count()));
where the 1.0f is the animation length and FrameArray->count() is obviously the number of frames (so a 10 frame animation will have a pause of 1.0f/10.0f or 0.1 seconds between frames)
I’m not sure if this is a bug or if its intended behavior but it is really annoying. I even tried setting the delay separately but that didn’t work either. Having the second parameter is the only thing that worked for me.
Hope this helps someone else.