diff --git a/docs/diagrams/classes.svg b/docs/diagrams/classes.svg
index d68ab02..df3320a 100644
--- a/docs/diagrams/classes.svg
+++ b/docs/diagrams/classes.svg
@@ -1 +1 @@
-Game Game() : void ~Game() : void addTile(int id, int x, int y) : void clean() : void getWinner() : bool handleEvents() : void init(const char * title, int xpos, int ypos, int width, int height, bool fullscreen) : void render() : void running() const : bool update() : void assets : AssetManager * colliders : std::vector<ColliderComponent *> counter : int event : SDL_Event isRunning : bool renderer : SDL_Renderer * window : SDL_Window * winner : bool GroupLabel MAP PLAYERS ENEMIES COLLIDERS PROJECTILE HEARTS Component ~Component() constexpr = default : void draw() : void init() : void update() : void entity : Entity * Manager addEntity() : Entity & addToGroup(Entity * mEntity, Group mGroup) : void draw() : void getGroup(Group mGroup) : std::vector<Entity *> & refresh() : void update() : void entities : std::vector<std::unique_ptr<Entity>> groupedEntities : std::array<std::vector<Entity *>,MAX_GROUPS> Entity Entity(Manager & mManager) : void addComponent<T,TArgs...>(TArgs &&... mArgs) : T & addGroup(Group mGroup) : void delGroup(Group mGroup) : void destroy() : void draw() const : void getComponent<T>() const : T & hasComponent<T>() const : _Bool hasGroup(Group mGroup) : bool isActive() const : bool update() const : void active : bool componentArray : ComponentArray componentBitSet : ComponentBitSet components : std::vector<std::unique_ptr<Component>> groupBitSet : GroupBitSet manager : Manager & Vector2D Vector2D() : void Vector2D(float x, float y) : void operator*(const int & i) : Vector2D & zero() : Vector2D & x : float y : float TransformComponent TransformComponent() : void TransformComponent(int scale) : void TransformComponent(float x, float y) : void TransformComponent(float x, float y, int scale) : void TransformComponent(float x, float y, int w, int h, int scale) : void init() : void update() : void height : int position : Vector2D scale : int speed : int velocity : Vector2D width : int Animation Animation() : void Animation(int i, int f, int s) : void frames : int index : int speed : int AnimationType IDLE WALK SpriteComponent SpriteComponent() = default : void SpriteComponent(const char * path) : void SpriteComponent(const char * path, bool isAnimated) : void ~SpriteComponent() : void draw() : void init() : void play(AnimationType type) : void setTexture(const char * path) : void update() : void animated : bool animationIndex : int animations : std::map<AnimationType,Animation *> destRect : SDL_Rect frames : int speed : int srcRect : SDL_Rect texture : SDL_Texture * transform : TransformComponent * KeyboardController KeyboardController() = default : void KeyboardController(SDL_Scancode up, SDL_Scancode down, SDL_Scancode left, SDL_Scancode right, SDL_Scancode fire, Vector2D fireVelocity) : void ~KeyboardController() constexpr = default : void init() : void update() : void down : SDL_Scancode fire : SDL_Scancode fireCooldown : Uint32 fireVelocity : Vector2D keystates : const Uint8 * lastFireTime : Uint32 left : SDL_Scancode player : TransformComponent * right : SDL_Scancode sprite : SpriteComponent * transform : TransformComponent * up : SDL_Scancode ColliderComponent ColliderComponent(const char * tag) : void init() : void removeCollision() : void update() : void collider : SDL_Rect hasCollision : bool tag : const char * transform : TransformComponent * TextureDict textureDictionary : const std::map<int,std::string> TileComponent TileComponent() = default : void TileComponent(int x, int y, int w, int h, int id) : void ~TileComponent() = default : void init() : void path : const char * sprite : SpriteComponent * textureDict : TextureDict tileID : int tileRect : SDL_Rect transform : TransformComponent * ProjectileComponent ProjectileComponent(int range, int speed, Vector2D velocity, bool source) : void ~ProjectileComponent() : void getSource() : bool init() : void update() : void distance : int range : int source : const bool speed : int transformComponent : TransformComponent * velocity : Vector2D HealthComponent HealthComponent(int health, Manager * manager, bool player) : void ~HealthComponent() : void createAllHearts() : void createHeartComponents(int x) : void getDamage() : void getHealth() : int init() : void health : int manager : Manager * player : bool AssetManager AssetManager(Manager * manager) : void ~AssetManager() : void addTexture(std::string id, const char * path) : void createProjectile(Vector2D pos, Vector2D velocity, bool source, int scale, int range, int speed, const char * texturePath) : void getTexture(std::string id) : SDL_Texture * man : Manager * textures : std::map<std::string,SDL_Texture *> Map Map() = default : void ~Map() constexpr = default : void loadMap(const char * path, int sizeX, int sizeY) : void cmp_str operator()(const char * a, const char * b) const : bool TextureManager TextureManager() : void TextureManager(const TextureManager &) = deleted : void ~TextureManager() : void operator=(const TextureManager &) = deleted : void draw(SDL_Texture * texture, SDL_Rect src, SDL_Rect dest) : void get() : TextureManager & loadTexture(const char * fileName) : SDL_Texture * splitSpriteSheet(SDL_Texture * spriteSheet, int width, int height, int spritesOnSheet) : std::vector<SDL_Rect> texture_cache : std::map<const char *,SDL_Texture *,cmp_str> GameObject GameObject(const char * texturesheet, int x, int y) : void ~GameObject() constexpr = default : void render() : void update() : void destRect : SDL_Rect objTexture : SDL_Texture * srcRect : SDL_Rect xPos : int yPos : int colliders assets entity manager position velocity transform transform player sprite fireVelocity transform transform sprite textureDict transformComponent velocity manager man
\ No newline at end of file
+Component ~Component() constexpr = default : void draw() : void init() : void update() : void entity : Entity * Vector2D Vector2D() : void Vector2D(float x, float y) : void operator*(const int & i) : Vector2D & zero() : Vector2D & x : float y : float ColliderComponent ColliderComponent(const char * tag) : void ColliderComponent(const char * tag, float hitboxScale) : void handleCollision(Vector2D & characterPos, SDL_Rect & characterCollider, SDL_Rect & componentCollider) : void init() : void removeCollision() : void update() : void collider : SDL_Rect hasCollision : bool hitboxScale : float isProjectile : bool tag : const char * transform : TransformComponent * GroupLabel MAPTILES PLAYERS ENEMIES COLLIDERS PROJECTILE HEARTS POWERUPS TeamLabel NONE BLUE RED Entity Entity(Manager & mManager) : void addComponent<T,TArgs...>(TArgs &&... mArgs) : T & addGroup(Group mGroup) : void delGroup(Group mGroup) : void destroy() : void draw() const : void getComponent<T>() const : T & getGroupBitSet() : std::bitset<MAX_GROUPS> getManager() : Manager & getTeam() : TeamLabel hasComponent<T>() const : _Bool hasGroup(Group mGroup) : bool isActive() const : bool setTeam(TeamLabel teamLabel) : void update() const : void active : bool componentArray : ComponentArray componentBitSet : ComponentBitSet components : std::vector<std::unique_ptr<Component>> groupBitSet : GroupBitSet manager : Manager & teamLabel : TeamLabel PowerupType HEART WALKINGSPEED SHOOTINGSPEED AssetManager AssetManager(Manager * manager) : void ~AssetManager() : void addSoundEffect(std::string id, const char * path) : void addTexture(std::string id, const char * path) : void calculateSpawnPosition() : Vector2D calculateType() : PowerupType createPowerup(Vector2D pos, PowerupType type) : void createProjectile(Vector2D pos, Vector2D velocity, int scale, int range, int speed, const char * texturePath, TeamLabel teamLabel) : void getSound(std::string id) : Mix_Chunk * getTexture(std::string id) : SDL_Texture * man : Manager * soundEffects : std::map<std::string,Mix_Chunk *> textures : std::map<std::string,SDL_Texture *> TextureDict powerupDictionary : std::map<PowerupType,std::string> tileDictionary : const std::map<int,std::string> TileComponent TileComponent() = default : void TileComponent(int x, int y, int w, int h, int id) : void ~TileComponent() = default : void init() : void path : const char * sprite : SpriteComponent * textureDict : TextureDict tileID : int tileRect : SDL_Rect transform : TransformComponent * TransformComponent TransformComponent() : void TransformComponent(int scale) : void TransformComponent(float x, float y) : void TransformComponent(float x, float y, int scale) : void TransformComponent(float x, float y, int w, int h, int scale) : void init() : void modifySpeed(int8_t modifier) : void update() : void direction : Vector2D height : int position : Vector2D scale : int speed : int width : int Animation Animation() : void Animation(uint8_t index, uint8_t frames, uint8_t speed) : void frames : uint8_t index : uint8_t speed : uint8_t AnimationType IDLE WALK Direction LEFT RIGHT SpriteComponent SpriteComponent() = default : void SpriteComponent(const char * path) : void SpriteComponent(const char * path, bool isAnimated) : void ~SpriteComponent() : void draw() : void init() : void playAnimation(AnimationType type) : void setDirection(Direction direction) : void setTexture(const char * path) : void update() : void animated : bool animationIndex : int animations : std::map<AnimationType,std::unique_ptr<Animation>> destRect : SDL_Rect flipped : bool frames : uint8_t speed : uint8_t srcRect : SDL_Rect texture : SDL_Texture * transform : TransformComponent * Manager addEntity() : Entity & addToGroup(Entity * mEntity, Group mGroup) : void addToTeam(Entity * mEntity, Team mTeam) : void draw() : void getAll() : std::vector<Entity *> getGroup(Group mGroup) : std::vector<Entity *> & getTeam(Team mTeam) : std::vector<Entity *> & refresh() : void update() : void entities : std::vector<std::unique_ptr<Entity>> entitiesByGroup : std::array<std::vector<Entity *>,MAX_GROUPS> entitiesByTeam : std::array<std::vector<Entity *>,MAX_TEAMS> TextureManager TextureManager() : void ~TextureManager() : void draw(SDL_Texture * texture, SDL_Rect src, SDL_Rect dest, bool flipped = false) : void loadTexture(const char * fileName) : SDL_Texture * splitSpriteSheet(SDL_Texture * spriteSheet, int width, int height, int spritesOnSheet) : std::vector<SDL_Rect> texture_cache : std::map<std::string,SDL_Texture *> SoundTypes STEPS THROW_EGG SoundManager SoundManager() : void SoundManager(const SoundManager &) = deleted : void ~SoundManager() : void operator=(const SoundManager &) = deleted : void loadSound(const char * fileName) : Mix_Chunk * playSound(SoundTypes sound) : void sound_cache : std::map<const char *,Mix_Chunk *> KeyboardController KeyboardController() = default : void KeyboardController(SDL_Scancode up, SDL_Scancode down, SDL_Scancode left, SDL_Scancode right, SDL_Scancode fire, Vector2D fireVelocity) : void ~KeyboardController() constexpr = default : void init() : void modifyAtkSpeed(int8_t modifier) : void update() : void down : SDL_Scancode fire : SDL_Scancode fireCooldown : uint32_t fireVelocity : Vector2D keystates : const uint8_t * lastFireTime : uint32_t left : SDL_Scancode player : TransformComponent * right : SDL_Scancode sprite : SpriteComponent * transform : TransformComponent * up : SDL_Scancode ProjectileComponent ProjectileComponent(int range, int speed, Vector2D direction) : void ~ProjectileComponent() : void init() : void update() : void direction : Vector2D distance : int range : int speed : int transformComponent : TransformComponent * HealthComponent HealthComponent(int health, Direction side) : void ~HealthComponent() : void createHeartComponents(int x) : void getHealth() : int init() : void modifyHealth(int health = -1) : void refreshHearts() : void setHealth(int health) : void health : int side : Direction Game Game() : void ~Game() : void addTile(unsigned long id, int x, int y) : void clean() : void getWinner() const : TeamLabel handleEvents() : void init(const char * title, int xpos, int ypos, int width, int height, bool fullscreen) : void refreshPlayers() : void render() : void running() const : bool selectCharacters(const char *& playerSprite, const char *& enemySprite) : void setWinner(TeamLabel winningTeam) : void update() : void assets : AssetManager * collisionHandler : CollisionHandler * counter : int event : SDL_Event isRunning : bool renderer : SDL_Renderer * soundManager : SoundManager * textureManager : TextureManager * window : SDL_Window * winner : TeamLabel direction LEFT RIGHT UP DOWN CollisionHandler CollisionHandler(Manager & mManager) : void ~CollisionHandler() : void getAnyIntersection<T>(Entity * entity, Vector2D posMod = = {}, const std::initializer_list<GroupLabel> & groupLabels = = {}, const std::initializer_list<TeamLabel> & teamLabels = = {}, bool negateTeam = false) : T getColliders(const std::initializer_list<GroupLabel> & groupLabels, const std::initializer_list<TeamLabel> & teamLabels = = {}, bool negateTeam = false) : std::vector<ColliderComponent *> getIntersection(Entity * entityA, Entity * entityB, Vector2D posModA = Vector2D(0,0), Vector2D posModB = Vector2D(0,0)) : IntersectionBitSet getIntersectionWithBounds(Entity * entity, Vector2D posMod = Vector2D(0,0)) : IntersectionBitSet update() : void manager : Manager & PowerupComponent PowerupComponent(PowerupType type) : void ~PowerupComponent() : void atkSpeedEffect(Entity * player) : void heartEffect(Entity * player) : void movementSpeedEffect(Entity * player) : void update() : void pickupFunc : void (PowerupComponent::*)(Entity *) PlayerComponent Map Map() = default : void ~Map() constexpr = default : void loadMap(const char * path, int sizeX, int sizeY) : bool Stats MOVEMENT_SPEED ATTACK_SPEED StatEffectsComponent StatEffectsComponent() : void ~StatEffectsComponent() : void init() : void modifyStatDur(Stats stat, int duration) : void modifyStatValue(Stats stat, int modifier) : void update() : void buffs : std::array<int,MAX_STATS> PopupWindow PopupWindow(const char * title, const std::string & message) : void ~PopupWindow() : void handleWinnerEvents() : void renderWinnerPopup(TeamLabel winner) : void shouldContinue() const : bool continueGame : bool interacted : bool renderer : SDL_Renderer * texture : SDL_Texture * window : SDL_Window * GameObject GameObject(const char * texturesheet, int x, int y) : void ~GameObject() constexpr = default : void render() : void update() : void destRect : SDL_Rect objTexture : SDL_Texture * srcRect : SDL_Rect xPos : int yPos : int entity transform manager teamLabel man transform sprite textureDict position direction transform transform player sprite fireVelocity transformComponent direction side winner collisionHandler assets textureManager soundManager manager
\ No newline at end of file
diff --git a/docs/diagrams/includes.svg b/docs/diagrams/includes.svg
index 959b2df..288e1de 100644
--- a/docs/diagrams/includes.svg
+++ b/docs/diagrams/includes.svg
@@ -1 +1 @@
-src include Game.cpp ECS.cpp TextureManager.cpp Map.cpp GameObject.cpp KeyboardController.cpp main.cpp Vector2D.cpp Game.h Components.h ECS.h Component.h Constants.h Manager.h Entity.h TransformComponent.h Vector2D.h SpriteComponent.h AnimationHandler.h KeyboardController.h ColliderComponent.h TileComponent.h TextureDict.h ProjectileComponent.h HealthComponent.h AssetManager.h Map.h TextureManager.h GameObject.h SDL.h SDL_image.h vector cstddef iostream array memory bitset map SDL_render.h string stdexcept fstream
\ No newline at end of file
+src include TileComponent.cpp Manager.cpp AssetManager.cpp ProjectileComponent.cpp PlayerComponent.cpp CollisionHandler.cpp Entity.cpp Map.cpp SpriteComponent.cpp StatEffectsComponent.cpp HealthComponent.cpp Vector2D.cpp ColliderComponent.cpp ECS.cpp TransformComponent.cpp SoundManager.cpp TextureManager.cpp PowerupComponent.cpp main.cpp KeyboardController.cpp Game.cpp PopupWindow.cpp GameObject.cpp TileComponent.h Component.h TextureDict.h AssetManager.h Entity.h ColliderComponent.h Vector2D.h ECS.h Constants.h TransformComponent.h SpriteComponent.h AnimationHandler.h Direction.h Manager.h TextureManager.h SoundManager.h Components.h KeyboardController.h ProjectileComponent.h HealthComponent.h Game.h CollisionHandler.h PowerupComponent.h PlayerComponent.h Map.h StatEffectsComponent.h PopupWindow.h GameObject.h SDL.h map string SDL_render.h SDL_mixer.h array memory bitset vector SDL_rect.h cstddef iostream cstdint algorithm SDL_image.h initializer_list tuple utility cassert cstdio cctype fstream SDL_timer.h stdexcept ctime SDL_ttf.h SDL_error.h
\ No newline at end of file
diff --git a/docs/diagrams/includes_no_external.svg b/docs/diagrams/includes_no_external.svg
index 3e4ed8b..6bb4891 100644
--- a/docs/diagrams/includes_no_external.svg
+++ b/docs/diagrams/includes_no_external.svg
@@ -1 +1 @@
-src include Game.cpp ECS.cpp TextureManager.cpp Map.cpp GameObject.cpp KeyboardController.cpp main.cpp Vector2D.cpp Game.h Components.h ECS.h Component.h Constants.h Manager.h Entity.h TransformComponent.h Vector2D.h SpriteComponent.h AnimationHandler.h KeyboardController.h ColliderComponent.h TileComponent.h TextureDict.h ProjectileComponent.h HealthComponent.h AssetManager.h Map.h TextureManager.h GameObject.h
\ No newline at end of file
+src include TileComponent.cpp Manager.cpp AssetManager.cpp ProjectileComponent.cpp PlayerComponent.cpp CollisionHandler.cpp Entity.cpp Map.cpp SpriteComponent.cpp StatEffectsComponent.cpp HealthComponent.cpp Vector2D.cpp ColliderComponent.cpp ECS.cpp TransformComponent.cpp SoundManager.cpp TextureManager.cpp PowerupComponent.cpp main.cpp KeyboardController.cpp Game.cpp PopupWindow.cpp GameObject.cpp TileComponent.h Component.h TextureDict.h AssetManager.h Entity.h ColliderComponent.h Vector2D.h ECS.h Constants.h TransformComponent.h SpriteComponent.h AnimationHandler.h Direction.h Manager.h TextureManager.h SoundManager.h Components.h KeyboardController.h ProjectileComponent.h HealthComponent.h Game.h CollisionHandler.h PowerupComponent.h PlayerComponent.h Map.h StatEffectsComponent.h PopupWindow.h GameObject.h
\ No newline at end of file
diff --git a/docs/diagrams/load_map_example_sequence.svg b/docs/diagrams/load_map_example_sequence.svg
index a396b19..797ac13 100644
--- a/docs/diagrams/load_map_example_sequence.svg
+++ b/docs/diagrams/load_map_example_sequence.svg
@@ -1 +1 @@
-Map Map Game Game Manager Manager Entity Entity TileComponent TileComponent getComponentTypeID<TileComponent>() getComponentTypeID<TileComponent>() getNewComponentTypeID() getNewComponentTypeID() ColliderComponent ColliderComponent getComponentTypeID<ColliderComponent>() getComponentTypeID<ColliderComponent>() loadMap(const char *,int,int) loop loop addTile(int,int,int) addEntity() addComponent(int &,int &,const int &,const int &,int &) TileComponent(int,int,int,int,int) init() alt addComponent(const char (&)[6]) ColliderComponent(const char *) init() addGroup(Group)
\ No newline at end of file
+Map Map Game Game Manager Manager Entity Entity TileComponent TileComponent getComponentTypeID<TileComponent>() getComponentTypeID<TileComponent>() getNewComponentTypeID() getNewComponentTypeID() TransformComponent TransformComponent getComponentTypeID<TransformComponent>() getComponentTypeID<TransformComponent>() Vector2D Vector2D getComponentTypeID<T>() getComponentTypeID<T>() getComponentTypeID<ColliderComponent>() getComponentTypeID<ColliderComponent>() getComponentTypeID<SpriteComponent>() getComponentTypeID<SpriteComponent>() getComponentTypeID<HealthComponent>() getComponentTypeID<HealthComponent>() getComponentTypeID<KeyboardController>() getComponentTypeID<KeyboardController>() getComponentTypeID<StatEffectsComponent>() getComponentTypeID<StatEffectsComponent>() SpriteComponent SpriteComponent TextureManager TextureManager ColliderComponent ColliderComponent StatEffectsComponent StatEffectsComponent loadMap(const char *,int,int) loop alt addTile(unsigned long,int,int) addEntity() Entity(Manager &) addComponent(int &,int &,const int &,const int &,unsigned long &) TileComponent(int,int,int,int,int) init() addComponent(int &,int &,int &,int &,int &&) TransformComponent(float,float,int,int,int) init() zero() getComponent() const addComponent(const char *&) SpriteComponent(const char *) setTexture(const char *) loadTexture(const char *) init() getComponent() const update() SpriteComponent(const char *) setTexture(const char *) loadTexture(const char *) init() getComponent() const update() getComponent() const alt addComponent(const char (&)[6]) ColliderComponent(const char *) init() alt [ hasComponent() const ] addComponent() TransformComponent() zero() init() zero() StatEffectsComponent() init() getComponent() const update() addGroup(Group) addToGroup(Entity *,Group)
\ No newline at end of file
diff --git a/docs/diagrams/sequence.svg b/docs/diagrams/sequence.svg
index a396b19..d0b5207 100644
--- a/docs/diagrams/sequence.svg
+++ b/docs/diagrams/sequence.svg
@@ -1 +1 @@
-Map Map Game Game Manager Manager Entity Entity TileComponent TileComponent getComponentTypeID<TileComponent>() getComponentTypeID<TileComponent>() getNewComponentTypeID() getNewComponentTypeID() ColliderComponent ColliderComponent getComponentTypeID<ColliderComponent>() getComponentTypeID<ColliderComponent>() loadMap(const char *,int,int) loop loop addTile(int,int,int) addEntity() addComponent(int &,int &,const int &,const int &,int &) TileComponent(int,int,int,int,int) init() alt addComponent(const char (&)[6]) ColliderComponent(const char *) init() addGroup(Group)
\ No newline at end of file
+main(int,char **) main(int,char **) Game Game TextureManager TextureManager Manager Manager Map Map Entity Entity TileComponent TileComponent getComponentTypeID<TileComponent>() getComponentTypeID<TileComponent>() getNewComponentTypeID() getNewComponentTypeID() TransformComponent TransformComponent getComponentTypeID<TransformComponent>() getComponentTypeID<TransformComponent>() Vector2D Vector2D getComponentTypeID<T>() getComponentTypeID<T>() getComponentTypeID<ColliderComponent>() getComponentTypeID<ColliderComponent>() getComponentTypeID<SpriteComponent>() getComponentTypeID<SpriteComponent>() getComponentTypeID<HealthComponent>() getComponentTypeID<HealthComponent>() getComponentTypeID<KeyboardController>() getComponentTypeID<KeyboardController>() getComponentTypeID<StatEffectsComponent>() getComponentTypeID<StatEffectsComponent>() SpriteComponent SpriteComponent ColliderComponent ColliderComponent StatEffectsComponent StatEffectsComponent AssetManager AssetManager SoundManager SoundManager KeyboardController KeyboardController HealthComponent HealthComponent Component Component CollisionHandler CollisionHandler PowerupComponent PowerupComponent getComponentTypeID<PowerupComponent>() getComponentTypeID<PowerupComponent>() PopupWindow PopupWindow Game() init(const char *,int,int,int,int,bool) loadTexture(const char *) selectCharacters(const char *&,const char *&) loop loadTexture(const char *) getGroup(Group) getGroup(Group) getGroup(Group) getGroup(Group) getGroup(Group) Map() alt [ loadMap(const char *,int,int) ] loop alt addTile(unsigned long,int,int) addEntity() Entity(Manager &) addComponent(int &,int &,const int &,const int &,unsigned long &) TileComponent(int,int,int,int,int) init() addComponent(int &,int &,int &,int &,int &&) TransformComponent(float,float,int,int,int) init() zero() getComponent() const addComponent(const char *&) SpriteComponent(const char *) setTexture(const char *) loadTexture(const char *) init() getComponent() const update() SpriteComponent(const char *) setTexture(const char *) loadTexture(const char *) init() getComponent() const update() getComponent() const alt addComponent(const char (&)[6]) ColliderComponent(const char *) init() alt [ hasComponent() const ] addComponent() TransformComponent() zero() init() zero() StatEffectsComponent() init() getComponent() const update() addGroup(Group) addToGroup(Entity *,Group) addSoundEffect(std::string,const char *) loadSound(const char *) addSoundEffect(std::string,const char *) loadSound(const char *) setTeam(TeamLabel) addToTeam(Entity *,Team) addComponent(int &&,int &&,int &&) TransformComponent(float,float,int) init() zero() addComponent(const char *&,bool &&) SpriteComponent(const char *,bool) playAnimation(AnimationType) setTexture(const char *) loadTexture(const char *) init() getComponent() const update() Vector2D(float,float) addComponent(SDL_Scancode &&,SDL_Scancode &&,SDL_Scancode &&,SDL_Scancode &&,SDL_Scancode &&,Vector2D &&) KeyboardController(SDL_Scancode,SDL_Scancode,SDL_Scancode,SDL_Scancode,SDL_Scancode,Vector2D) init() getComponent() const getComponent() const addComponent(const char (&)[7],float &&) ColliderComponent(const char *,float) init() alt [ hasComponent() const ] addComponent() TransformComponent() zero() init() zero() StatEffectsComponent() init() getComponent() const update() addComponent(int &&,Direction &&) HealthComponent(int,Direction) init() refreshHearts() loop [ getManager() ] [ getGroup(Group) ] alt [ getTeam() ] [ getTeam() ] destroy() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() loop alt createHeartComponents(int) getManager() addEntity() Entity(Manager &) addComponent(int &,int &&,int &&) TransformComponent(float,float,int) init() zero() addComponent(const char (&)[17]) SpriteComponent(const char *) setTexture(const char *) loadTexture(const char *) init() getComponent() const update() addGroup(Group) addToGroup(Entity *,Group) getTeam() setTeam(TeamLabel) addToTeam(Entity *,Team) createHeartComponents(int) getManager() addEntity() Entity(Manager &) addComponent(int &,int &&,int &&) TransformComponent(float,float,int) init() zero() addComponent(const char (&)[17]) SpriteComponent(const char *) setTexture(const char *) loadTexture(const char *) init() getComponent() const update() addGroup(Group) addToGroup(Entity *,Group) getTeam() setTeam(TeamLabel) addToTeam(Entity *,Team) addComponent() TransformComponent() zero() init() zero() StatEffectsComponent() init() addGroup(Group) addToGroup(Entity *,Group) setTeam(TeamLabel) addToTeam(Entity *,Team) addComponent(int &&,int &&,int &&) TransformComponent(float,float,int) init() zero() addComponent(const char *&,bool &&) SpriteComponent(const char *,bool) playAnimation(AnimationType) setTexture(const char *) loadTexture(const char *) init() getComponent() const update() Vector2D(float,float) addComponent(SDL_Scancode &&,SDL_Scancode &&,SDL_Scancode &&,SDL_Scancode &&,SDL_Scancode &&,Vector2D &&) KeyboardController(SDL_Scancode,SDL_Scancode,SDL_Scancode,SDL_Scancode,SDL_Scancode,Vector2D) init() getComponent() const getComponent() const addComponent(const char (&)[6],float &&) ColliderComponent(const char *,float) init() alt [ hasComponent() const ] addComponent() TransformComponent() zero() init() zero() StatEffectsComponent() init() getComponent() const update() addComponent(int &&,Direction &&) HealthComponent(int,Direction) init() refreshHearts() loop [ getManager() ] [ getGroup(Group) ] alt [ getTeam() ] [ getTeam() ] destroy() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() loop alt createHeartComponents(int) getManager() addEntity() Entity(Manager &) addComponent(int &,int &&,int &&) TransformComponent(float,float,int) init() zero() addComponent(const char (&)[17]) SpriteComponent(const char *) setTexture(const char *) loadTexture(const char *) init() getComponent() const update() addGroup(Group) addToGroup(Entity *,Group) getTeam() setTeam(TeamLabel) addToTeam(Entity *,Team) createHeartComponents(int) getManager() addEntity() Entity(Manager &) addComponent(int &,int &&,int &&) TransformComponent(float,float,int) init() zero() addComponent(const char (&)[17]) SpriteComponent(const char *) setTexture(const char *) loadTexture(const char *) init() getComponent() const update() addGroup(Group) addToGroup(Entity *,Group) getTeam() setTeam(TeamLabel) addToTeam(Entity *,Team) addComponent() TransformComponent() zero() init() zero() StatEffectsComponent() init() addGroup(Group) addToGroup(Entity *,Group) loop loop [ running() const ] handleEvents() update() getComponent() const getComponent() const refresh() update() loop update() const loop update() alt calculateSpawnPosition() Vector2D(float,float) loop loop [ getColliders(const std::initializer_list<GroupLabel> &,const std::initializer_list<TeamLabel> &,bool) ] loop [ getAll() ] alt [ getGroupBitSet() ] alt [ getTeam() ] alt [ hasComponent() const ] getComponent() const Vector2D(float,float) calculateType() createPowerup(Vector2D,PowerupType) addEntity() Entity(Manager &) addComponent(float &,float &,int &&,int &&,int &&) TransformComponent(float,float,int,int,int) init() zero() try addComponent(char *&&) SpriteComponent(const char *) setTexture(const char *) loadTexture(const char *) init() getComponent() const update() [std::runtime_error] addComponent(const char (&)[8],float &&) ColliderComponent(const char *,float) init() alt [ hasComponent() const ] addComponent() TransformComponent() zero() init() zero() StatEffectsComponent() init() getComponent() const update() addComponent(PowerupType &) PowerupComponent(PowerupType) init() addGroup(Group) addToGroup(Entity *,Group) loop [ getGroup(Group) ] alt [ getComponent() const ] [ getHealth() ] getTeam() setWinner(TeamLabel) render() loop draw() const loop draw() loop draw() const loop draw() loop draw() const loop draw() loop draw() const loop draw() loop draw() const loop draw() getWinner() const PopupWindow(const char *,const std::string &) renderWinnerPopup(TeamLabel) loop handleWinnerEvents() shouldContinue() const refreshPlayers() loop destroy() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() getComponent() const Vector2D(float,float) getComponent() const Vector2D(float,float) getComponent() const setHealth(int) refreshHearts() loop [ getManager() ] [ getGroup(Group) ] alt [ getTeam() ] [ getTeam() ] destroy() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() loop alt createHeartComponents(int) getManager() addEntity() Entity(Manager &) addComponent(int &,int &&,int &&) TransformComponent(float,float,int) init() zero() addComponent(const char (&)[17]) SpriteComponent(const char *) setTexture(const char *) loadTexture(const char *) init() getComponent() const update() addGroup(Group) addToGroup(Entity *,Group) getTeam() setTeam(TeamLabel) addToTeam(Entity *,Team) createHeartComponents(int) getManager() addEntity() Entity(Manager &) addComponent(int &,int &&,int &&) TransformComponent(float,float,int) init() zero() addComponent(const char (&)[17]) SpriteComponent(const char *) setTexture(const char *) loadTexture(const char *) init() getComponent() const update() addGroup(Group) addToGroup(Entity *,Group) getTeam() setTeam(TeamLabel) addToTeam(Entity *,Team) getComponent() const setHealth(int) refreshHearts() loop [ getManager() ] [ getGroup(Group) ] alt [ getTeam() ] [ getTeam() ] destroy() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() alt [ hasComponent() const ] getComponent() const removeCollision() loop alt createHeartComponents(int) getManager() addEntity() Entity(Manager &) addComponent(int &,int &&,int &&) TransformComponent(float,float,int) init() zero() addComponent(const char (&)[17]) SpriteComponent(const char *) setTexture(const char *) loadTexture(const char *) init() getComponent() const update() addGroup(Group) addToGroup(Entity *,Group) getTeam() setTeam(TeamLabel) addToTeam(Entity *,Team) createHeartComponents(int) getManager() addEntity() Entity(Manager &) addComponent(int &,int &&,int &&) TransformComponent(float,float,int) init() zero() addComponent(const char (&)[17]) SpriteComponent(const char *) setTexture(const char *) loadTexture(const char *) init() getComponent() const update() addGroup(Group) addToGroup(Entity *,Group) getTeam() setTeam(TeamLabel) addToTeam(Entity *,Team) update() getComponent() const getComponent() const refresh() update() loop update() const loop update() alt calculateSpawnPosition() Vector2D(float,float) loop loop [ getColliders(const std::initializer_list<GroupLabel> &,const std::initializer_list<TeamLabel> &,bool) ] loop [ getAll() ] alt [ getGroupBitSet() ] alt [ getTeam() ] alt [ hasComponent() const ] getComponent() const Vector2D(float,float) calculateType() createPowerup(Vector2D,PowerupType) addEntity() Entity(Manager &) addComponent(float &,float &,int &&,int &&,int &&) TransformComponent(float,float,int,int,int) init() zero() try addComponent(char *&&) SpriteComponent(const char *) setTexture(const char *) loadTexture(const char *) init() getComponent() const update() [std::runtime_error] addComponent(const char (&)[8],float &&) ColliderComponent(const char *,float) init() alt [ hasComponent() const ] addComponent() TransformComponent() zero() init() zero() StatEffectsComponent() init() getComponent() const update() addComponent(PowerupType &) PowerupComponent(PowerupType) init() addGroup(Group) addToGroup(Entity *,Group) loop [ getGroup(Group) ] alt [ getComponent() const ] [ getHealth() ] getTeam() setWinner(TeamLabel) clean()
\ No newline at end of file