]> git.jsancho.org Git - lugaru.git/blobdiff - Source/Person.h
renames for readability
[lugaru.git] / Source / Person.h
index 28f21b559b6cc57250e7840010bec627b14528fb..146a96dd6343f0ef5dfc93129316dc86953f6242 100644 (file)
@@ -28,7 +28,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 #include "Quaternions.h"
 #include "Skeleton.h"
 #include "Models.h"
-#include "Constants.h"
 #include "Terrain.h"
 #include "Sprite.h"
 #include <cmath>
@@ -51,20 +50,26 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 class Person
 {
        public:
-               Person();
-               ~Person();
-
                int whichpatchx;
                int whichpatchz;
                
-               int currentframe;
-               int targetframe;
-               int currentanimation;
-               int targetanimation;
-               int oldcurrentframe;
-               int oldtargetframe;
-               int oldcurrentanimation;
-               int oldtargetanimation;
+        // animCurrent and animTarget are used to interpolate between different animations
+        // (and for a bunch of other things).
+        // animations interpolate with one another at various speeds.
+        // animTarget seems to determine the combat state?
+               int animCurrent;
+               int animTarget;
+
+        // frameCurrent and frameTarget are used to interpolate between the frames of an animation
+        // (e.g. the crouched animation has only two frames, lerped back and forth).
+        // animations advance at various speeds.
+               int frameCurrent;
+               int frameTarget;
+
+               int oldanimCurrent;
+               int oldanimTarget;
+               int oldframeCurrent;
+               int oldframeTarget;
                
                int howactive;
                
@@ -97,15 +102,15 @@ class Person
                bool immobile;
                
                float velspeed;
-               float targetrotation;
+               float targetyaw;
                float targetrot;
                float rot;
                float oldrot;
-               float lookrotation;
-               float lookrotation2;
-               float rotation;
-               float rotation2;
-               float lowrotation;
+               float lookyaw;
+               float lookpitch;
+               float yaw;
+               float pitch;
+               float lowyaw;
                float tilt;
                float targettilt;
                float tilt2;
@@ -122,7 +127,8 @@ class Person
                float damagetolerance;
                float damage;
                float permanentdamage;
-               float superpermanentdamage;             float lastcollide;
+               float superpermanentdamage;
+        float lastcollide;
                int dead;
                
                float jumppower;
@@ -142,8 +148,8 @@ class Person
                int direction;
                float texupdatedelay;
                
-               float headrotation,headrotation2;
-               float targetheadrotation,targetheadrotation2;
+               float headyaw,headpitch;
+               float targetheadyaw,targetheadpitch;
                
                bool onterrain;
                bool pause;
@@ -184,7 +190,6 @@ class Person
                float turnspeed;
                
                int aitype;
-               int aitarget;
                float aiupdatedelay;
                float losupdatedelay;
                int ally;
@@ -195,7 +200,8 @@ class Person
                bool loaded;
                bool whichdirection;
                float whichdirectiondelay;
-               bool avoidsomething;            XYZ avoidwhere;         
+               bool avoidsomething;
+        XYZ avoidwhere;                
                float blooddimamount;
                
                float staggerdelay;
@@ -255,7 +261,8 @@ class Person
                bool bled;
                bool spurt;
                bool onfire;
-               float onfiredelay;              float burnt;
+               float onfiredelay;
+        float burnt;
                float fireduration;
                
                float flamedelay;
@@ -298,7 +305,8 @@ class Person
                float lastchecktime;
                float stunned;
                float surprised;
-               float runninghowlong;           int lastoccluded;
+               float runninghowlong;
+        int lastoccluded;
                int laststanding;
                int escapednum;
                
@@ -317,86 +325,73 @@ class Person
                
                float occluded;
                
+               bool jumpclimb;
+
+
+
                void CheckKick();
                void CatchFire();
                void DoBlood(float howmuch, int which);
                void DoBloodBig(float howmuch, int which);
                bool DoBloodBigWhere(float howmuch, int which, XYZ where);
                
-               bool wasIdle()
-               {
-                 return animation_bits[currentanimation] & ab_idle;
-               }
-               bool isIdle()
-               {
-                 return animation_bits[targetanimation] & ab_idle;
-               }
+               bool wasIdle() { return animation_bits[animCurrent] & ab_idle; }
+               bool isIdle() { return animation_bits[animTarget] & ab_idle; }
                int getIdle();
                
-               bool isSitting()
-               {
-                 return animation_bits[targetanimation] & ab_sit;
-               }
+               bool isSitting() { return animation_bits[animTarget] & ab_sit; }
 
-               bool isSleeping()
-               {
-                 return animation_bits[targetanimation] & ab_sleep;
-               }
+               bool isSleeping() { return animation_bits[animTarget] & ab_sleep; }
 
-               bool wasCrouch()
-               {
-                 return animation_bits[currentanimation] & ab_crouch;
-               }
-               bool isCrouch()
-               {
-                 return animation_bits[targetanimation] & ab_crouch;
-               }
+               bool wasCrouch() { return animation_bits[animCurrent] & ab_crouch; }
+               bool isCrouch() { return animation_bits[animTarget] & ab_crouch; }
                int getCrouch();
                
-               bool wasStop();
-               bool isStop();
+               bool wasStop() { return animation_bits[animCurrent] & ab_stop; }
+               bool isStop() { return animation_bits[animTarget] & ab_stop; }
                int getStop();
                
                bool wasSneak();
                bool isSneak();
                int getSneak();
                
-               bool wasRun()
-               {
-                 return animation_bits[currentanimation] & ab_run;
-               }
-               bool isRun()
-               {
-                 return animation_bits[targetanimation] & ab_run;
-               }
+               bool wasRun() { return animation_bits[animCurrent] & ab_run; }
+               bool isRun() { return animation_bits[animTarget] & ab_run; }
                int getRun();
-               
-               bool wasLanding();
-               bool isLanding();
+
+               bool wasLanding() { return animation_bits[animCurrent] & ab_land; }
+               bool isLanding() { return animation_bits[animTarget] & ab_land; }
                int getLanding();
-               
-               bool wasLandhard();
-               bool isLandhard();
+
+               bool wasLandhard() { return animation_bits[animCurrent] & ab_landhard; }
+               bool isLandhard() { return animation_bits[animTarget] & ab_landhard; }
                int getLandhard();
-               
-               bool isFlip();
-               bool wasFlip();
-               
-               bool jumpclimb;
-               
-               bool isWallJump();
+
+               bool wasFlip() { return animation_bits[animCurrent] & ab_flip; }
+               bool isFlip() { return animation_bits[animTarget] & ab_flip; }
+
+               bool isWallJump() { return animation_bits[animTarget] & ab_walljump; }
                void Reverse();
                void DoDamage(float howmuch);
                void DoHead();
-               void DoMipmaps(int howmanylevels, float startx, float endx, float starty, float endy);
+               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 DrawSkeleton();
                void Puff(int whichlabel);
                void FootLand(int which, float opacity);
                void DoStuff();
+               Joint& getJointFor(int);
+               void setAnimation(int);
                void DoAnimations();
                void RagDoll(bool checkcollision);
 };
 
+const int maxplayers = 10;
 extern Person player[maxplayers];
 #endif