Create all frames in sequence on the same line at 'Char.png'.

Follow the magpie for example:

/**
 * TODO are all these guessed explanations correct?
 * GetClassAnimationFrames() is the total animation frames per second, so Frame is from 0 to 15 here
 * Magpie has 8 pictures, so it will draw the same picture for each 2 frames.
 * GetBitmapPos() method will be called only once and stored on the savegame file, therefore there is no need for speed.
 */

================================================================
bodypart.h

+ITEM(magpietorso, normaltorso)
+{
+ protected:
+  virtual int GetClassAnimationFrames() const { return 16; }
+  virtual v2 GetBitmapPos(int) const;
+};

bodypart.cpp

+v2 magpietorso::GetBitmapPos(int Frame) const
+{
+  v2 BasePos = torso::GetBitmapPos(Frame);
+  Frame &= 0xF;
+
+  float fPicTot=8.0;
+  float fDiv = GetClassAnimationFrames()/fPicTot; //each 2 frames
+  int iPic=Frame/fDiv; DBG3(Frame,fDiv,iPic);
+  return v2(BasePos.X + iPic*TILE_SIZE, BasePos.Y);
+}

================================================================
nonhuman.h

+CHARACTER(magpie, nonhumanoid)
+ protected:
+  virtual bodypart* MakeBodyPart(int) const;

nonhuman.cpp

+bodypart* magpie::MakeBodyPart(int) const { return magpietorso::Spawn(0, NO_MATERIALS); }

================================================================
item.dat

# tricky part, if this is not present will crash at protosystem::Initialize() as GetConfigData() would return NULL.

+magpietorso /* normaltorso-> */
+{
+}
