home *** CD-ROM | disk | FTP | other *** search
- #ifndef __Vehicle_h__
- #define __Vehicle_h__
-
- #include "GameObject.h"
- #include "Client.h"
- #include "Input.h"
- #include "collision.h"
- #include "Weapon.h"
- #include "PhysicsInfo.h"
-
- class Vehicle: public GameObject{
- public:
- Client* client;
-
- vec3_t vel_inp;
- AABB_t moveAABB;
- AABB_t hitAABB;
- float boundingSphereRadius;
- PhysicsInfo physicsInfo;
-
- int armor;
- int maxArmor;
- float energy;
- int maxEnergy;
- float energyRecovery;
-
- GameObject* target;
- Weapon* weapons[4];
-
- unsigned long lastProcessMillis;
- unsigned long lastMoveMillis;
- unsigned long lastRecoveryMillis;
- unsigned long lastTakeDamageMillis;
-
- Vehicle(Client* client);
- virtual ~Vehicle();
-
- virtual void processInputArray(inputArray_t inputArray);
- virtual void turnLeft(float deltaT);
- virtual void turnRight(float deltaT);
- virtual void turnUp(float deltaT);
- virtual void turnDown(float deltaT);
-
- virtual void moveForward(float deltaT);
- virtual void moveBackward(float deltaT);
- virtual void moveLeft(float deltaT);
- virtual void moveRight(float deltaT);
- virtual void moveUp(float deltaT);
- virtual void moveDown(float deltaT);
-
- virtual void move();
- virtual bool collisionDetection(vec3_t displacement);
- virtual void calcRecovery();
- virtual void takeDamage(int amount);
- virtual void explode();
-
- virtual void addDynamicLightParticleCluster(DynamicLightParticleCluster* dlpc);
- virtual void removeDynamicLightParticleCluster(DynamicLightParticleCluster* dlpc);
- virtual void render();
-
- static Vehicle* createVehicleForClient(Client* client);
-
- };
-
- #endif /* __Vehicle_h__ */
-