text: #pragma once
  #include "Module.h"
  #include "Globals.h"
  
  #define MAX_MOUSE_BUTTONS 5
  
  enum KEY_STATE
  {
  	KEY_IDLE = 0,
  	KEY_DOWN,
  	KEY_REPEAT,
  	KEY_UP
  };
  
  class MInput : public Module
  {
  public:
  	
  	MInput(bool start_enabled = true);
  	~MInput();
  
  	bool Init();
  	updateStatus PreUpdate(float dt) override;
  	updateStatus Update(float dt) override;
  	bool CleanUp();
  
  	KEY_STATE GetKey(int id) const
  	{
  		return keyboard[id];
  	}
  
  	KEY_STATE GetMouseButton(int id) const
  	{
  		return mouse_buttons[id];
  	}
  
  	int GetMouseX() const
  	{
  		return mouseX;
  	}
  
  	int GetMouseY() const
  	{
  		return mouseY;
  	}
  
  	int GetMouseZ() const
  	{
  		return mouseZ;
  	}
  
  	int GetMouseXMotion() const
  	{
  		return mouseXMotion;
  	}
  
  	int GetMouseYMotion() const
  	{
  		return mouseYMotion;
  	}
  
  private:
  	KEY_STATE* keyboard;
  	KEY_STATE mouse_buttons[MAX_MOUSE_BUTTONS];
  	int mouseX;
  	int mouseY;
  	int mouseZ;
  	int mouseXMotion;
  	int mouseYMotion;
  	//int mouse_z_motion;
  };