X-Git-Url: https://git.jsancho.org/?p=lugaru.git;a=blobdiff_plain;f=Source%2FObjects%2FPerson.hpp;h=57f3ebb1f49bc5a7bf7221e061f1488ddc472e4e;hp=bd384241f22ade2c5305afbce46037960a54676c;hb=5ab55c3eea543a30fe979f623d4a984935e2a0fb;hpb=ad6e136b758996db756f7784e978426ba5a703dc diff --git a/Source/Objects/Person.hpp b/Source/Objects/Person.hpp index bd38424..57f3ebb 100644 --- a/Source/Objects/Person.hpp +++ b/Source/Objects/Person.hpp @@ -43,8 +43,11 @@ along with Lugaru. If not, see . #define getweapontype 7 #define pathfindtype 8 -#define rabbittype 0 -#define wolftype 1 +enum person_type +{ + rabbittype = 0, + wolftype = 1 +}; struct InvalidPersonException : public exception { const char * what () const throw () { @@ -52,8 +55,20 @@ struct InvalidPersonException : public exception { } }; +class PersonType +{ +public: + // head, body, arms, legs + XYZ proportions[4]; + static std::vector types; + static void Load(); +}; + class Person : public enable_shared_from_this { +private: + float proportions[4]; + public: static std::vector> players; @@ -95,10 +110,10 @@ public: XYZ coords; XYZ velocity; - XYZ proportionhead; - XYZ proportionlegs; - XYZ proportionarms; - XYZ proportionbody; + //~ XYZ proportionhead; + //~ XYZ proportionlegs; + //~ XYZ proportionarms; + //~ XYZ proportionbody; float unconscioustime; @@ -330,6 +345,8 @@ public: 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 CheckKick(); void CatchFire();