//structs used to pass data between classes all at once #ifndef __PLAYERLOCATION_H__ #define __PLAYERLOCATION_H__ #ifndef IGNORE_DEPEND #include #endif #include "vector.h" ///////////////////////////////////////////////////////////// // #define MAXPLAYERS 25 #define toRadian(x) ((x)*M_PI/180) #define abs(x) ((x>0)?x:-x) enum { X = 0, Y, Z }; enum { ATTACHED_CAMERA=0, TAILING_CAMERA, DETACHED_CAMERA, ADJUST_CAMERA, NUM_CAMERA_MODE}; typedef Vector::vector3d vector3f; //////////////////////////////////////////////////////////// // #define BASE_GLOW (-250) #define FULL_GLOW 250 #define BASE_HP 5000 #define GLOW_DAMAGE 2000 //how many hp you lose if someone starts glowing within range of you #define GLOW_AREA_DAMAGE 20 //how many hp per frame you lose if someone nearby you is glowing #define GLOWDISTANCE 7 //how many tiles away the glow reaches struct PlayerState { vector3f loc; float theta, phi; float speed; float angle; int model; int frame; int glowing;//glow left-have a system to regulate it: if it's above BASE_GLOW lose 1 glow per update state. if >0, you're glowing. if <0 but >base youre regenerating. if <=base you can glow again, and go up to full glow if you do. int hp;//hit points-if less than 0, you cant move. regenerate 1 per update state up to base }; struct CameraState { vector3f eye; vector3f at; vector3f up; vector3f dir; int mode; }; #endif