#include "Animation/Animation.hpp"
#include "Animation/Skeleton.hpp"
-#include "Audio/Sounds.hpp"
#include "Environment/Terrain.hpp"
#include "Graphic/gamegl.hpp"
#include "Graphic/Models.hpp"
#include "Graphic/Sprite.hpp"
#include "Math/XYZ.hpp"
+#include "Objects/PersonType.hpp"
#include "Objects/Weapons.hpp"
#include <cmath>
#define getweapontype 7
#define pathfindtype 8
-enum person_type
-{
- rabbittype = 0,
- wolftype = 1
-};
-
struct InvalidPersonException : public exception {
const char * what () const throw () {
return "Invalid weapon number";
}
};
-class PersonType
-{
-public:
- // head, body, arms, legs
- XYZ proportions[4];
- animation_type animRun;
- animation_type animRunning;
- animation_type animCrouch;
- animation_type animStop;
- animation_type animLanding;
- animation_type animLandingHard;
- sound_type soundsAttack[4];
- sound_type soundsTalk[2];
-
- std::string figureFileName;
- std::string lowFigureFileName;
- std::string clothesFileName;
- std::string modelFileNames[7];
- std::string lowModelFileName;
- std::string modelClothesFileName;
-
- static std::vector<PersonType> types;
- static void Load();
-};
-
class Person : public enable_shared_from_this<Person>
{
private:
inline AnimationFrame& currentFrame() { return Animation::animations.at(animCurrent).frames.at(frameCurrent); }
inline AnimationFrame& targetFrame() { return Animation::animations.at(animTarget).frames.at(frameTarget); }
- void setProportions(float, float, float, float);
- XYZ getProportion(int part) const;
+ void setProportions(float head, float body, float arms, float legs);
+ float getProportion(int part) const;
+ XYZ getProportionXYZ(int part) const;
void CheckKick();
void CatchFire();