#ifndef BASE_TYPES_H #define BASE_TYPES_H #include #include struct Alien { int Id; int type; QPointF pos; float angle; // -180 .. 180 float speed; // cells per tick (speed=1 is 60cells by 1 sec for 60fps e.g.) float health; QPoint finish; QVector path; int pathIndex; unsigned int gold; }; struct Tower { int Id; int type; int AlienId; // aim alien int PlayerId; // tower's owner QPoint pos; // not QPointF because tower fixed on grid float angle; // -180 .. 180 float range; float reload; // time for reload in ticks }; struct Splash { int Id; int type; int TowerId; // parent tower int AlienId; // aim alien (different from tower.AlienId) int lifetime; // in ticks float radius; float angle; // -180 .. 180 QPointF pos; }; struct Wave { int Id; QVector types; // some types of aliens (e.g. 2 fly and 3 grount in one wave) QVector counts; // count aliens of each type int wait_time; // time in ticks unsigned int gold; }; #endif // BASE_TYPES_H