#pragma once

#include "../../engine/event.h"
#include "../../engine/keyboard.h"
#include "../../engine/mouse.h"

#define INPUT_COUNT INPUT_PAUSE + 1
typedef enum InputType
{
	INPUT_LEFT,
	INPUT_RIGHT,
	INPUT_UP,
	INPUT_DOWN,
	INPUT_SHOOT,
	INPUT_SWING,
	INPUT_REDIRECT,
	INPUT_LOCK,
	INPUT_RECALL,
	INPUT_HEART,
	INPUT_SELECT,
	INPUT_PAUSE,
} InputType;

typedef struct KeyboardInputEntry
{
	KeyboardKeyType* types;
	u32 count;
} KeyboardInputEntry;

typedef struct MouseInputEntry
{
	MouseButtonType* types;
	u32 count;
} MouseInputEntry;

typedef struct Input
{
	Keyboard keyboard;
	Mouse mouse;
	Event event;
	bool current[INPUT_COUNT];
	bool previous[INPUT_COUNT];
} Input;
