rtsInputState.h 1.49 KB
#ifndef INPUTSTATE_H
#define INPUTSTATE_H

class rtsInputState
{
private:
	//mouse states
	bool m_left_button;
	bool m_right_button;
	bool m_middle_button;

	//keyboard keys
	char* m_keys_pressed;

	//mouse position
	int m_mouse_x;
	int m_mouse_y;

	//some cool states for general use
	bool m_selection_state;

	//modifier keys
	bool m_alt_key;
	bool m_ctrl_key;
	bool m_shift_key;

public:
	void PressLeftButton() {m_left_button = true;}
	void ReleaseLeftButton() {m_left_button = false;}
	void PressMiddleButton() {m_middle_button = true;}
	void ReleaseMiddleButton() {m_middle_button = false;}
	void PressRightButton() {m_right_button = true;}
	void ReleaseRightButton() {m_right_button = false;}
	void SetMousePosition(int x, int y) {m_mouse_x = x; m_mouse_y = y;}
	
	
	bool getRightButton() {return m_right_button;}
	bool getLeftButton() {return m_left_button;}
	bool getMiddleButton() {return m_middle_button;}
	int getMouseX()	{return m_mouse_x;}
	int getMouseY()	{return m_mouse_y;}

	//modifier keys
	bool getShiftState(){return m_shift_key;}
	bool getAltState(){return m_alt_key;}
	bool getCtrlState(){return m_ctrl_key;}
	void setShiftState(bool val){m_shift_key = val;}
	void setCtrlState(bool val){m_ctrl_key = val;}
	void setAltState(bool val){m_alt_key = val;}

	//other useful states
	bool getSelectionState(){return m_selection_state;}
	void StartSelection(){m_selection_state = true;}
	void EndSelection(){m_selection_state = false;}
};



#endif