/* * Module Name: Game_overwatch * Description: Keep track of all the game citizens and their interactions. * This is the heavy part of the engine. */ class Actor; class Map; class Game_overwatch { //citizen linked list. struct citizen{ Actor * val; citizen * next; }; citizen * head; int population, dudelock; int leftkey, rightkey, zkey, xkey, ckey; public: Game_overwatch(void); ~Game_overwatch(void); void move_in(Actor *); void move_out(Actor *); int get_population(); void check_collisions(Map *); static bool line_colliding(int, int, int, int, int, int, int, int, int); void reset_collisions(); void collision_callback(Actor *, Actor *); void draw(SDL_Surface *, Map *); void act(SDL_Surface *, Map *, bool[]); void animate(); void handlephysics(Map*, int, int); void handleinput(Actor *, bool[]); void kill(Actor *); void dieloop(); };