X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FObjects%2FPerson.hpp;h=2ead16e9a87922d662cbf65b5bc922175afe6a74;hb=6a8cb464330e92163c8feaf101b8b5837c973bba;hp=5339e03681b5347194e610c74f30abf07f01a559;hpb=635516adc7915de50d38cd01345871a07a24c390;p=lugaru.git diff --git a/Source/Objects/Person.hpp b/Source/Objects/Person.hpp index 5339e03..2ead16e 100644 --- a/Source/Objects/Person.hpp +++ b/Source/Objects/Person.hpp @@ -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. @@ -24,10 +24,11 @@ along with Lugaru. If not, see . #include "Animation/Animation.hpp" #include "Animation/Skeleton.hpp" #include "Environment/Terrain.hpp" -#include "Graphic/gamegl.hpp" #include "Graphic/Models.hpp" #include "Graphic/Sprite.hpp" -#include "Math/Quaternions.hpp" +#include "Graphic/gamegl.hpp" +#include "Math/XYZ.hpp" +#include "Objects/PersonType.hpp" #include "Objects/Weapons.hpp" #include @@ -43,17 +44,19 @@ along with Lugaru. If not, see . #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"; - } +struct InvalidPersonException : public exception +{ + const char* what() const throw() + { + return "Invalid weapon number"; + } }; class Person : public enable_shared_from_this { +private: + float proportions[4]; + public: static std::vector> players; @@ -95,11 +98,6 @@ public: XYZ coords; XYZ velocity; - XYZ proportionhead; - XYZ proportionlegs; - XYZ proportionarms; - XYZ proportionbody; - float unconscioustime; bool immobile; @@ -187,7 +185,6 @@ public: float jumpkeydowntime; bool freefall; - float turnspeed; int aitype; @@ -330,6 +327,9 @@ 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 head, float body, float arms, float legs); + float getProportion(int part) const; + XYZ getProportionXYZ(int part) const; void CheckKick(); void CatchFire(); @@ -376,22 +376,23 @@ public: void Reverse(); void DoDamage(float howmuch); void DoHead(); - void DoMipmaps() { + void DoMipmaps() + { skeleton.drawmodel.textureptr.bind(); glTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_TRUE); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, skeleton.skinsize, skeleton.skinsize, 0, GL_RGB, GL_UNSIGNED_BYTE, &skeleton.skinText[0]); } - int SphereCheck(XYZ *p1, float radius, XYZ *p, XYZ *move, float *rotate, Model *model); + int SphereCheck(XYZ* p1, float radius, XYZ* p, XYZ* move, float* rotate, Model* model); int DrawSkeleton(); void Puff(int whichlabel); void FootLand(bodypart whichfoot, float opacity); void DoStuff(); - void setAnimation(int); + void setTargetAnimation(int); void DoAnimations(); void RagDoll(bool checkcollision); - void takeWeapon (int weaponId); + void takeWeapon(int weaponId); bool addClothes(const int& clothesId); void addClothes();