X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FObjects%2FPerson.hpp;h=0734eaa5e2e3dd2022fde3f0316e1acdddd9896e;hb=c8a6dd9ee1b43f98d4d98e9feb981bde02ac8772;hp=4896cbd2e237c053ca5fec29763d7407c131d977;hpb=3bc5ee099a4322252ae9afd564335b60856a0054;p=lugaru.git diff --git a/Source/Objects/Person.hpp b/Source/Objects/Person.hpp index 4896cbd..0734eaa 100644 --- a/Source/Objects/Person.hpp +++ b/Source/Objects/Person.hpp @@ -23,12 +23,12 @@ along with Lugaru. If not, see . #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 @@ -44,54 +44,12 @@ along with Lugaru. If not, see . #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; - animation_type animFightIdle; - animation_type animBounceIdle; - animation_type animTalkIdle; - - sound_type soundsAttack[4]; - sound_type soundsTalk[2]; - - std::string figureFileName; - std::string lowFigureFileName; - std::string clothesFileName; - std::string modelFileNames[7]; - std::string lowModelFileName; - std::string modelClothesFileName; - - std::vector skins; - - GLubyte bloodText[512 * 512 * 3] = { 0 }; - - PersonType(); - bool hasAnimTalkIdle(); - - static std::vector types; - static void Load(); -}; - class Person : public enable_shared_from_this { private: @@ -138,11 +96,6 @@ public: XYZ coords; XYZ velocity; - //~ XYZ proportionhead; - //~ XYZ proportionlegs; - //~ XYZ proportionarms; - //~ XYZ proportionbody; - float unconscioustime; bool immobile; @@ -373,8 +326,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, 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();