#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];
-
- static std::vector<PersonType> types;
- static void Load();
-};
-
class Person : public enable_shared_from_this<Person>
{
private:
XYZ coords;
XYZ velocity;
- //~ XYZ proportionhead;
- //~ XYZ proportionlegs;
- //~ XYZ proportionarms;
- //~ XYZ proportionbody;
-
float unconscioustime;
bool immobile;
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();