C:/Documents and Settings/jegan/Desktop/projectX/Person.h

Go to the documentation of this file.
00001 #ifndef PERSON_H
00002 #define PERSON_H
00003 
00004 
00005 #include "Object.h"
00006 #include "Sprite.h"
00007 #include "ShowOneSprite.h"
00008 
00009 class Weapon;
00010 class WeaponPunch;
00011 
00012 typedef enum { JUMPING, STANDING, RUNNING, FALLING, WALLFALLING, CROUCHING, PUNCHING, DEAD } State;
00013 
00014 class Person : public Object
00015 {
00016 public:
00017 
00018         //Person();
00019         Person(List* personInfo, int x, int y);
00020         ~Person();
00021         void draw();
00022         void collide( Object* o );
00023         virtual void update();
00024         void jump(xDirection xDir);
00025         void jumpReset();
00026         void crouch();
00027         void uncrouch();
00028         void shoot();
00029         virtual void setPos(int x, int y);
00030 
00031         virtual Object *copy();
00032 
00033         void load(List *personInfo, bool fromConstructor = true);
00034 
00035         void setVelocity(int x, int y) {_xVelocity = x; _yVelocity = y;}
00036 
00037         int getHealth() {return _health;}
00038         virtual void addHealth(int dHealth);
00039 
00040         //static Person * load(List* personInfo, int x, int y);
00041 
00042         //void move(int x, int y);
00043         void incrVelocity(int xVel, int yVel);
00044 
00045 
00046         void setXDirection(xDirection xDir){_prevXDirection = _xDirection; _xDirection = xDir;};
00047         int getAccel();
00048 
00049         xDirection getXDirection() { return _xDirection; }
00050         yDirection getYDirection() { return _yDirection; }
00051 
00052 
00053         void aim( yDirection direction){_yDirection = direction;};
00054 
00055         bool touchingAbove(int pels = 1);
00056         bool touchingBelow(int pels = 1);
00057         bool touchingLeft(int pels = 1);
00058         bool touchingRight(int pels = 1);
00059 
00060         virtual bool invincible() { return _invincible;}
00061         virtual void setInvincible(bool inv) {_invincible = inv;}
00062 
00063         virtual void die();
00064         virtual void live();
00065 protected:
00066 
00067 
00068         bool _invincible;
00069 
00070         int _xVelocity;
00071         int _yVelocity;
00072         int _maxXVel;
00073         int _maxYVel;
00074         int _maxFallRate;
00075 
00076         int _previousX;
00077         int _previousY;
00078 
00079         xDirection _xDirection;
00080         xDirection _prevXDirection;
00081         yDirection _yDirection;
00082         State _state;
00083 
00084         std::string _dropItem;
00085 
00086         bool _crouching;
00087         /*
00088         True if the person is jumping
00089         */
00090         //bool _jumping;
00091 
00092         //int _wallJump;
00093 
00094         /* true if the person is wallJumping
00095         */
00096         //bool _wallJumping;
00097 
00098         int _health;
00099                    
00100         int _gravity;
00101         int _accel;
00102         int _airAccel;
00103         double _groundDrag;
00104         double _airDrag;
00105 
00106         int _jumpTimer;
00107         int _maxJumpTime;
00108         bool _jumpReset;
00109         bool _wallJumpReset;
00110 
00111         int _wallFallTime;
00112 
00113 
00114         Weapon *_primaryWeapon;
00115         WeaponPunch *_punchWeapon;
00116         int _punchTimer;
00117 
00118         ShowOneSprite *_sprite;
00119 
00120 };
00121 
00122 #endif

Generated on Fri May 5 00:20:19 2006 for ProjectX by  doxygen 1.4.6-NO