#ifndef GUARD_GAME_H #define GUARD_GAME_H #include #include "mingl/mingl.h" #include "pixelManager.h" #include "utils.h" #include "playerDef.h" #include "player.h" #include "playMode.h" #include "configData.h" #include "projectiles.h" #include "scoresManager.h" #include "god.h" #include "invadersGrid.h" using namespace std; class Game { private: MinGL window; PixelManager pm; ConfigData confData; ScoresManager sm; God god; Position basePos; InvadersGrid grid; bool direction = true; vector missiles; vector torpedos; PlayMode playMode; vector players; // invaders related variables unsigned fireCooldown=120; // basic methods bool updateColumns(); void handleScoreSaving(); Position invIndexToPos(unsigned x, unsigned y) const; // drawing methods void displayAll(unsigned fps) const; void displayGod() const; void displayInvader(const Position& basePos, InvaderType type) const; void displayHearts(playerID) const; // managers void managePlayers(); void manageOnePlayer(playerID); bool manageInvaders(); // collision things void remCollidingProjectiles(); void moveMissiles(); void moveTorpedos(); bool checkMissilesAndPlayers(); bool checkTorpedosAndInvaders(); bool invadersTouchPlayer() const; // god things void awakeGod(); bool manageGod(); public: // in case someone wants to mess with the code, here's a minimal API, costs nothing to us Game(); void managedGames(); WinValue playGame(); bool reloadConfig(); }; #endif