#ifndef _GAME_RENDER_NPCANIMATION_H #define _GAME_RENDER_NPCANIMATION_H #include "animation.hpp" #include #include #include #include #include #include "../mwworld/refdata.hpp" #include "../mwworld/ptr.hpp" #include "../mwworld/environment.hpp" #include "components/nifogre/ogre_nif_loader.hpp" namespace MWRender{ class NpcAnimation: public Animation{ private: int mStateID; //Free Parts Ogre::Entity* chest; std::vector* chestShapes; Ogre::Entity* skirt; std::vector* skirtShapes; Ogre::Entity* rhand; std::vector* rhandShapes; Ogre::Entity* lhand; std::vector* lhandShapes; Ogre::Entity* tail; std::vector* tailShapes; Ogre::Entity* lBeastFoot; std::vector* lBeastFootShapes; Ogre::Entity* rBeastFoot; std::vector* rBeastFootShapes; //Bounded Parts Ogre::Entity* lclavicle; Ogre::Entity* rclavicle; Ogre::Entity* rupperArm; Ogre::Entity* lupperArm; Ogre::Entity* rUpperLeg; Ogre::Entity* lUpperLeg; Ogre::Entity* lForearm; Ogre::Entity* rForearm; Ogre::Entity* lWrist; Ogre::Entity* rWrist; Ogre::Entity* rKnee; Ogre::Entity* lKnee; Ogre::Entity* neck; Ogre::Entity* rAnkle; Ogre::Entity* lAnkle; Ogre::Entity* groin; Ogre::Entity* lfoot; Ogre::Entity* rfoot; Ogre::Entity* hair; Ogre::Entity* head; public: NpcAnimation(const MWWorld::Ptr& ptr, MWWorld::Environment& _env, OEngine::Render::OgreRenderer& _rend); virtual ~NpcAnimation(); Ogre::Entity* insertBoundedPart(const std::string &mesh, std::string bonename); void insertFreePart(const std::string &mesh, const std::string suffix, Ogre::SceneNode* insert); virtual void runAnimation(float timepassed); }; } #endif