X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FPerson.h;h=dcf3b21f377a263cb341fb08c8baacb3b68c0238;hb=b17ec650f79ea8efbfda00ae93bd82434fcea686;hp=31bb43197913bf034ec1aff45254686c8afef994;hpb=e724a1c4bd1f94b55ac1331bedd32c51eebb08d9;p=lugaru.git diff --git a/Source/Person.h b/Source/Person.h index 31bb431..dcf3b21 100644 --- a/Source/Person.h +++ b/Source/Person.h @@ -49,18 +49,27 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. class Person { - public: + public: 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 slowly). + // animations advance at various speeds. + int frameCurrent; + int frameTarget; + + int oldanimCurrent; + int oldanimTarget; + int oldframeCurrent; + int oldframeTarget; int howactive; @@ -85,9 +94,6 @@ class Person XYZ proportionarms; XYZ proportionbody; - float heightleft; - float heightright; - float unconscioustime; bool immobile; @@ -119,7 +125,7 @@ class Person float damage; float permanentdamage; float superpermanentdamage; - float lastcollide; + float lastcollide; int dead; float jumppower; @@ -192,7 +198,7 @@ class Person bool whichdirection; float whichdirectiondelay; bool avoidsomething; - XYZ avoidwhere; + XYZ avoidwhere; float blooddimamount; float staggerdelay; @@ -253,7 +259,7 @@ class Person bool spurt; bool onfire; float onfiredelay; - float burnt; + float burnt; float fireduration; float flamedelay; @@ -297,7 +303,7 @@ class Person float stunned; float surprised; float runninghowlong; - int lastoccluded; + int lastoccluded; int laststanding; int escapednum; @@ -320,55 +326,60 @@ class Person + // convenience + Joint& joint(int); + XYZ& jointPos(int); + XYZ& jointVel(int); + 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() { return animation_bits[currentanimation] & ab_stop; } - bool isStop() { return animation_bits[targetanimation] & ab_stop; } + 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() { return animation_bits[currentanimation] & ab_land; } - bool isLanding() { return animation_bits[targetanimation] & ab_land; } + bool wasLanding() { return animation_bits[animCurrent] & ab_land; } + bool isLanding() { return animation_bits[animTarget] & ab_land; } int getLanding(); - bool wasLandhard() { return animation_bits[currentanimation] & ab_landhard; } - bool isLandhard() { return animation_bits[targetanimation] & ab_landhard; } + bool wasLandhard() { return animation_bits[animCurrent] & ab_landhard; } + bool isLandhard() { return animation_bits[animTarget] & ab_landhard; } int getLandhard(); - bool wasFlip() { return animation_bits[currentanimation] & ab_flip; } - bool isFlip() { return animation_bits[targetanimation] & ab_flip; } + bool wasFlip() { return animation_bits[animCurrent] & ab_flip; } + bool isFlip() { return animation_bits[animTarget] & ab_flip; } - bool isWallJump() { return animation_bits[targetanimation] & ab_walljump; } + bool isWallJump() { return animation_bits[animTarget] & ab_walljump; } void Reverse(); void DoDamage(float howmuch); void DoHead(); void DoMipmaps() { skeleton.drawmodel.textureptr.bind(); - glTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_TRUE); + 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]); } @@ -377,7 +388,6 @@ class Person void Puff(int whichlabel); void FootLand(int which, float opacity); void DoStuff(); - Joint& getJointFor(int); void setAnimation(int); void DoAnimations(); void RagDoll(bool checkcollision);