#if !defined(LD_GAME_PLAYER_H_)
#define LD_GAME_PLAYER_H_

#include "../core/types.h"
#include "../core/macros.h"

#include <SDL3/SDL_events.h>

#define PLAYER_SPEED 10.0f
#define PLAYER_RELOAD_TIME 1.5f
#define PLAYER_BULLET_COUNT 6

typedef struct ControlState ControlState;
struct ControlState {
  bool rightDown;
  bool leftDown;
  bool upDown;
  bool downDown;
  bool shot;
};

typedef struct Player Player;
struct Player
{
    World *world;
    V2f pos;
    World_Area currentArea;
    U32 bulletsLoaded;
    ControlState controls;
    V2f shotPos;

		G_Outfit outfit;

    F32 reloadTimer;
};

function void PlayerInit(G_State *game, Player *player);
function void PlayerDraw(D_Context *draw, Player *player);

function void PlayerInput(SDL_Event *event, Player *player);
function void PlayerUpdate(F32 delta, Player *player);

#endif  // LD_GAME_PLAYER_H_
