]> git.jsancho.org Git - lugaru.git/blobdiff - Source/Objects/Person.hpp
Moved PersonType class to its own file
[lugaru.git] / Source / Objects / Person.hpp
index 62af3a6a5c97d0ac0f50a3b2cede01f7b16d23f5..3f96a26f1b73e430636eceba768b35c56d80446e 100644 (file)
@@ -1,6 +1,6 @@
 /*
 Copyright (C) 2003, 2010 - Wolfire Games
-Copyright (C) 2010-2016 - Lugaru contributors (see AUTHORS file)
+Copyright (C) 2010-2017 - Lugaru contributors (see AUTHORS file)
 
 This file is part of Lugaru.
 
@@ -27,7 +27,8 @@ along with Lugaru.  If not, see <http://www.gnu.org/licenses/>.
 #include "Graphic/gamegl.hpp"
 #include "Graphic/Models.hpp"
 #include "Graphic/Sprite.hpp"
-#include "Math/Quaternions.hpp"
+#include "Math/XYZ.hpp"
+#include "Objects/PersonType.hpp"
 #include "Objects/Weapons.hpp"
 
 #include <cmath>
@@ -43,9 +44,6 @@ along with Lugaru.  If not, see <http://www.gnu.org/licenses/>.
 #define getweapontype 7
 #define pathfindtype 8
 
-#define rabbittype 0
-#define wolftype 1
-
 struct InvalidPersonException : public exception {
    const char * what () const throw () {
       return "Invalid weapon number";
@@ -54,6 +52,9 @@ struct InvalidPersonException : public exception {
 
 class Person : public enable_shared_from_this<Person>
 {
+private:
+    float proportions[4];
+
 public:
     static std::vector<std::shared_ptr<Person>> players;
 
@@ -95,10 +96,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 +331,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();
@@ -387,7 +390,7 @@ public:
     void Puff(int whichlabel);
     void FootLand(bodypart whichfoot, float opacity);
     void DoStuff();
-    void setAnimation(int);
+    void setTargetAnimation(int);
     void DoAnimations();
     void RagDoll(bool checkcollision);
 
@@ -395,6 +398,8 @@ public:
 
     bool addClothes(const int& clothesId);
     void addClothes();
+
+    void doAI();
 };
 
 const int maxplayers = 10;