#include "Quaternions.h"
#include "Skeleton.h"
#include "Models.h"
-#include "Constants.h"
#include "Terrain.h"
#include "Sprite.h"
#include <cmath>
#include "Weapons.h"
+#include "Animation.h"
#define passivetype 0
#define guardtype 1
#define rabbittype 0
#define wolftype 1
-class Person
+struct Person
{
- public:
- Person();
- ~Person();
-
int whichpatchx;
int whichpatchz;
float turnspeed;
int aitype;
- int aitarget;
float aiupdatedelay;
float losupdatedelay;
int ally;
void DoBloodBig(float howmuch, int which);
bool DoBloodBigWhere(float howmuch, int which, XYZ where);
- bool wasIdle();
- bool isIdle();
+ bool wasIdle()
+ {
+ return animation_bits[currentanimation] & ab_idle;
+ }
+ bool isIdle()
+ {
+ return animation_bits[targetanimation] & ab_idle;
+ }
int getIdle();
- bool isSitting();
- bool isSleeping();
-
-
- bool wasCrouch();
- bool isCrouch();
+ bool isSitting()
+ {
+ return animation_bits[targetanimation] & ab_sit;
+ }
+
+ bool isSleeping()
+ {
+ return animation_bits[targetanimation] & ab_sleep;
+ }
+
+ bool wasCrouch()
+ {
+ return animation_bits[currentanimation] & ab_crouch;
+ }
+ bool isCrouch()
+ {
+ return animation_bits[targetanimation] & ab_crouch;
+ }
int getCrouch();
- bool wasStop();
- bool isStop();
+ bool wasStop()
+ {
+ return animation_bits[currentanimation] & ab_stop;
+ }
+ bool isStop()
+ {
+ return animation_bits[targetanimation] & ab_stop;
+ }
int getStop();
bool wasSneak();
bool isSneak();
int getSneak();
- bool wasRun();
- bool isRun();
+ bool wasRun()
+ {
+ return animation_bits[currentanimation] & ab_run;
+ }
+ bool isRun()
+ {
+ return animation_bits[targetanimation] & ab_run;
+ }
int getRun();
-
- bool wasLanding();
- bool isLanding();
+
+ bool wasLanding()
+ {
+ return animation_bits[currentanimation] & ab_land;
+ }
+ bool isLanding()
+ {
+ return animation_bits[targetanimation] & ab_land;
+ }
int getLanding();
-
- bool wasLandhard();
- bool isLandhard();
+
+ bool wasLandhard()
+ {
+ return animation_bits[currentanimation] & ab_landhard;
+ }
+ bool isLandhard()
+ {
+ return animation_bits[targetanimation] & ab_landhard;
+ }
int getLandhard();
-
- bool isFlip();
- bool wasFlip();
-
+
+ bool wasFlip()
+ {
+ return animation_bits[currentanimation] & ab_flip;
+ }
+ bool isFlip()
+ {
+ return animation_bits[targetanimation] & ab_flip;
+ }
+
bool jumpclimb;
-
- bool isWallJump();
+
+ bool isWallJump()
+ {
+ return animation_bits[targetanimation] & ab_walljump;
+ }
void Reverse();
void DoDamage(float howmuch);
void DoHead();
- void DoMipmaps(int howmanylevels, float startx, float endx, float starty, float endy);
+ void DoMipmaps()
+ {
+ glBindTexture(GL_TEXTURE_2D, skeleton.drawmodel.textureptr);
+ gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGB,
+ skeleton.skinsize,
+ skeleton.skinsize,
+ 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 RagDoll(bool checkcollision);
};
+const int maxplayers = 10;
+extern Person player[maxplayers];
#endif