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();