//    Copyright 2025 Bill Rossi
//    
//    This file is part of Starship Futuretime
//
//    Starship Futuretime is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
//
//    Starship Futuretime is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
//
//    You should have received a copy of the GNU General Public License along with Starship Futuretime. If not, see <https://www.gnu.org/licenses/>. 

#ifndef GAME_H
#define GAME_H

typedef struct Game Game;

#include <stdlib.h>
#include "player.h"
#include "entity.h"
#include "level.h"

struct Game {
  Player *player;
  Entities *enemies;
  Entities *bullets;
  Level *level;
  Camera2D *camera;
  /*
  Levels levels;
  */
  bool should_close;
};

void initialize_game(Game *g);
void run_until_closing(Game *g);
void add_entity(Entities *entities, Entity *e);

#endif