2002-11-16 08:07:38 +00:00
|
|
|
#ifndef GAMEINPUT_H
|
|
|
|
|
#define GAMEINPUT_H
|
2002-04-16 17:31:00 +00:00
|
|
|
/*
|
|
|
|
|
-----------------------------------------------------------------------------
|
|
|
|
|
Class: GameInput
|
|
|
|
|
|
|
|
|
|
Desc: An input event specific to a Game definied by an instrument and a button space.
|
|
|
|
|
|
2002-05-19 01:59:48 +00:00
|
|
|
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
|
2002-04-16 17:31:00 +00:00
|
|
|
Chris Danford
|
|
|
|
|
-----------------------------------------------------------------------------
|
|
|
|
|
*/
|
2002-07-27 19:29:51 +00:00
|
|
|
enum GameController
|
2002-04-16 17:31:00 +00:00
|
|
|
{
|
2002-07-31 19:40:40 +00:00
|
|
|
GAME_CONTROLLER_1 = 0, // left controller
|
|
|
|
|
GAME_CONTROLLER_2, // right controller
|
2002-07-27 19:29:51 +00:00
|
|
|
MAX_GAME_CONTROLLERS, // leave this at the end
|
2002-07-31 19:40:40 +00:00
|
|
|
GAME_CONTROLLER_INVALID,
|
2002-04-16 17:31:00 +00:00
|
|
|
};
|
|
|
|
|
|
2002-07-31 19:40:40 +00:00
|
|
|
typedef int GameButton;
|
|
|
|
|
|
|
|
|
|
enum // DanceButtons
|
2002-04-16 17:31:00 +00:00
|
|
|
{
|
2002-07-31 19:40:40 +00:00
|
|
|
DANCE_BUTTON_LEFT,
|
|
|
|
|
DANCE_BUTTON_RIGHT,
|
|
|
|
|
DANCE_BUTTON_UP,
|
|
|
|
|
DANCE_BUTTON_DOWN,
|
|
|
|
|
DANCE_BUTTON_UPLEFT,
|
|
|
|
|
DANCE_BUTTON_UPRIGHT,
|
|
|
|
|
DANCE_BUTTON_START,
|
|
|
|
|
DANCE_BUTTON_BACK,
|
|
|
|
|
DANCE_BUTTON_MENULEFT,
|
|
|
|
|
DANCE_BUTTON_MENURIGHT,
|
|
|
|
|
DANCE_BUTTON_MENUUP,
|
|
|
|
|
DANCE_BUTTON_MENUDOWN,
|
2003-01-19 04:44:22 +00:00
|
|
|
DANCE_BUTTON_COIN,
|
2003-02-12 11:43:08 +00:00
|
|
|
DANCE_BUTTON_OPERATOR,
|
2002-07-31 19:40:40 +00:00
|
|
|
NUM_DANCE_BUTTONS, // leave this at the end
|
2002-04-16 17:31:00 +00:00
|
|
|
};
|
|
|
|
|
|
2002-07-31 19:40:40 +00:00
|
|
|
enum // PumpButtons
|
|
|
|
|
{
|
|
|
|
|
PUMP_BUTTON_UPLEFT,
|
|
|
|
|
PUMP_BUTTON_UPRIGHT,
|
|
|
|
|
PUMP_BUTTON_CENTER,
|
|
|
|
|
PUMP_BUTTON_DOWNLEFT,
|
|
|
|
|
PUMP_BUTTON_DOWNRIGHT,
|
|
|
|
|
PUMP_BUTTON_START,
|
|
|
|
|
PUMP_BUTTON_BACK,
|
|
|
|
|
PUMP_BUTTON_MENULEFT,
|
|
|
|
|
PUMP_BUTTON_MENURIGHT,
|
|
|
|
|
PUMP_BUTTON_MENUUP,
|
|
|
|
|
PUMP_BUTTON_MENUDOWN,
|
2003-01-19 04:44:22 +00:00
|
|
|
PUMP_BUTTON_COIN,
|
2003-02-12 11:43:08 +00:00
|
|
|
PUMP_BUTTON_OPERATOR,
|
2002-07-31 19:40:40 +00:00
|
|
|
NUM_PUMP_BUTTONS, // leave this at the end
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum // EZ2Buttons
|
|
|
|
|
{
|
|
|
|
|
EZ2_BUTTON_FOOTUPLEFT,
|
|
|
|
|
EZ2_BUTTON_FOOTUPRIGHT,
|
|
|
|
|
EZ2_BUTTON_FOOTDOWN,
|
|
|
|
|
EZ2_BUTTON_HANDUPLEFT,
|
|
|
|
|
EZ2_BUTTON_HANDUPRIGHT,
|
|
|
|
|
EZ2_BUTTON_HANDLRLEFT,
|
|
|
|
|
EZ2_BUTTON_HANDLRRIGHT,
|
|
|
|
|
EZ2_BUTTON_START,
|
|
|
|
|
EZ2_BUTTON_BACK,
|
|
|
|
|
EZ2_BUTTON_MENULEFT,
|
|
|
|
|
EZ2_BUTTON_MENURIGHT,
|
|
|
|
|
EZ2_BUTTON_MENUUP,
|
|
|
|
|
EZ2_BUTTON_MENUDOWN,
|
2003-01-19 04:44:22 +00:00
|
|
|
EZ2_BUTTON_COIN,
|
2003-02-12 11:43:08 +00:00
|
|
|
EZ2_BUTTON_OPERATOR,
|
2002-07-31 19:40:40 +00:00
|
|
|
NUM_EZ2_BUTTONS, // leave this at the end
|
|
|
|
|
};
|
|
|
|
|
|
2002-09-07 02:50:23 +00:00
|
|
|
enum // ParaButtons
|
|
|
|
|
{
|
|
|
|
|
PARA_BUTTON_LEFT,
|
|
|
|
|
PARA_BUTTON_UPLEFT,
|
|
|
|
|
PARA_BUTTON_UP,
|
|
|
|
|
PARA_BUTTON_UPRIGHT,
|
|
|
|
|
PARA_BUTTON_RIGHT,
|
|
|
|
|
PARA_BUTTON_START,
|
|
|
|
|
PARA_BUTTON_BACK,
|
|
|
|
|
PARA_BUTTON_MENULEFT,
|
|
|
|
|
PARA_BUTTON_MENURIGHT,
|
|
|
|
|
PARA_BUTTON_MENUUP,
|
|
|
|
|
PARA_BUTTON_MENUDOWN,
|
2003-01-19 04:44:22 +00:00
|
|
|
PARA_BUTTON_COIN,
|
2003-02-12 11:43:08 +00:00
|
|
|
PARA_BUTTON_OPERATOR,
|
2002-12-28 16:07:19 +00:00
|
|
|
NUM_PARA_BUTTONS, // leave this at the end
|
2002-09-07 02:50:23 +00:00
|
|
|
};
|
|
|
|
|
|
2002-12-28 16:07:19 +00:00
|
|
|
enum // 3DDX Buttons
|
|
|
|
|
{
|
|
|
|
|
DS3DDX_BUTTON_HANDLEFT,
|
|
|
|
|
DS3DDX_BUTTON_FOOTDOWNLEFT,
|
|
|
|
|
DS3DDX_BUTTON_FOOTUPLEFT,
|
|
|
|
|
DS3DDX_BUTTON_HANDUP,
|
|
|
|
|
DS3DDX_BUTTON_HANDDOWN,
|
|
|
|
|
DS3DDX_BUTTON_FOOTUPRIGHT,
|
|
|
|
|
DS3DDX_BUTTON_FOOTDOWNRIGHT,
|
|
|
|
|
DS3DDX_BUTTON_HANDRIGHT,
|
|
|
|
|
DS3DDX_BUTTON_START,
|
|
|
|
|
DS3DDX_BUTTON_BACK,
|
|
|
|
|
DS3DDX_BUTTON_MENULEFT,
|
|
|
|
|
DS3DDX_BUTTON_MENURIGHT,
|
|
|
|
|
DS3DDX_BUTTON_MENUUP,
|
|
|
|
|
DS3DDX_BUTTON_MENUDOWN,
|
2003-01-19 04:44:22 +00:00
|
|
|
DS3DDX_BUTTON_COIN,
|
2003-02-12 11:43:08 +00:00
|
|
|
DS3DDX_BUTTON_OPERATOR,
|
2002-12-28 16:07:19 +00:00
|
|
|
NUM_DS3DDX_BUTTONS, // leave this at the end.
|
|
|
|
|
};
|
2002-07-31 19:40:40 +00:00
|
|
|
|
2003-01-01 17:20:36 +00:00
|
|
|
enum // BM Buttons
|
|
|
|
|
{
|
2003-01-01 22:08:05 +00:00
|
|
|
BM_BUTTON_KEY1,
|
|
|
|
|
BM_BUTTON_KEY2,
|
|
|
|
|
BM_BUTTON_KEY3,
|
|
|
|
|
BM_BUTTON_KEY4,
|
|
|
|
|
BM_BUTTON_KEY5,
|
|
|
|
|
BM_BUTTON_KEY6,
|
|
|
|
|
BM_BUTTON_KEY7,
|
|
|
|
|
BM_BUTTON_SCRATCHUP,
|
|
|
|
|
/* XXX special case: this button is an alias of BM_BUTTON_SCRATCHUP for track
|
|
|
|
|
* matching. */
|
|
|
|
|
BM_BUTTON_SCRATCHDOWN,
|
2003-01-01 17:20:36 +00:00
|
|
|
BM_BUTTON_START,
|
2003-01-01 22:08:05 +00:00
|
|
|
BM_BUTTON_SELECT,
|
2003-01-01 17:20:36 +00:00
|
|
|
BM_BUTTON_MENULEFT,
|
|
|
|
|
BM_BUTTON_MENURIGHT,
|
|
|
|
|
BM_BUTTON_MENUUP,
|
|
|
|
|
BM_BUTTON_MENUDOWN,
|
2003-01-19 04:44:22 +00:00
|
|
|
BM_BUTTON_COIN,
|
2003-02-12 11:43:08 +00:00
|
|
|
BM_BUTTON_OPERATOR,
|
2003-01-01 17:20:36 +00:00
|
|
|
NUM_BM_BUTTONS, // leave this at the end.
|
|
|
|
|
};
|
|
|
|
|
|
2003-09-03 04:30:29 +00:00
|
|
|
enum // ManiaxButtons
|
|
|
|
|
{
|
|
|
|
|
MANIAX_BUTTON_HANDUPLEFT,
|
|
|
|
|
MANIAX_BUTTON_HANDUPRIGHT,
|
|
|
|
|
MANIAX_BUTTON_HANDLRLEFT,
|
|
|
|
|
MANIAX_BUTTON_HANDLRRIGHT,
|
|
|
|
|
MANIAX_BUTTON_START,
|
|
|
|
|
MANIAX_BUTTON_BACK,
|
|
|
|
|
MANIAX_BUTTON_MENULEFT,
|
|
|
|
|
MANIAX_BUTTON_MENURIGHT,
|
|
|
|
|
MANIAX_BUTTON_MENUUP,
|
|
|
|
|
MANIAX_BUTTON_MENUDOWN,
|
|
|
|
|
MANIAX_BUTTON_COIN,
|
|
|
|
|
MANIAX_BUTTON_OPERATOR,
|
|
|
|
|
NUM_MANIAX_BUTTONS, // leave this at the end
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum // TechnoButtons
|
|
|
|
|
{
|
|
|
|
|
TECHNO_BUTTON_LEFT,
|
|
|
|
|
TECHNO_BUTTON_RIGHT,
|
|
|
|
|
TECHNO_BUTTON_UP,
|
|
|
|
|
TECHNO_BUTTON_DOWN,
|
|
|
|
|
TECHNO_BUTTON_UPLEFT,
|
|
|
|
|
TECHNO_BUTTON_UPRIGHT,
|
|
|
|
|
TECHNO_BUTTON_CENTER,
|
|
|
|
|
TECHNO_BUTTON_DOWNLEFT,
|
|
|
|
|
TECHNO_BUTTON_DOWNRIGHT,
|
|
|
|
|
TECHNO_BUTTON_START,
|
|
|
|
|
TECHNO_BUTTON_BACK,
|
|
|
|
|
TECHNO_BUTTON_MENULEFT,
|
|
|
|
|
TECHNO_BUTTON_MENURIGHT,
|
|
|
|
|
TECHNO_BUTTON_MENUUP,
|
|
|
|
|
TECHNO_BUTTON_MENUDOWN,
|
|
|
|
|
TECHNO_BUTTON_COIN,
|
|
|
|
|
TECHNO_BUTTON_OPERATOR,
|
|
|
|
|
NUM_TECHNO_BUTTONS, // leave this at the end
|
|
|
|
|
};
|
|
|
|
|
|
2003-01-01 22:08:05 +00:00
|
|
|
const GameButton MAX_GAME_BUTTONS = 20;
|
2002-07-31 19:40:40 +00:00
|
|
|
const GameButton GAME_BUTTON_INVALID = MAX_GAME_BUTTONS+1;
|
|
|
|
|
|
|
|
|
|
|
2002-04-16 17:31:00 +00:00
|
|
|
|
|
|
|
|
struct GameInput
|
|
|
|
|
{
|
2002-08-26 06:39:51 +00:00
|
|
|
GameInput(): controller(GAME_CONTROLLER_INVALID), button(GAME_BUTTON_INVALID) { }
|
|
|
|
|
|
|
|
|
|
GameInput( GameController c, GameButton b ): controller(c), button(b) { }
|
2002-04-16 17:31:00 +00:00
|
|
|
|
2002-07-31 19:40:40 +00:00
|
|
|
GameController controller;
|
|
|
|
|
GameButton button;
|
2002-04-16 17:31:00 +00:00
|
|
|
|
2002-07-27 19:29:51 +00:00
|
|
|
bool operator==( const GameInput &other ) { return controller == other.controller && button == other.button; };
|
2002-04-16 17:31:00 +00:00
|
|
|
|
2002-07-31 19:40:40 +00:00
|
|
|
inline bool IsValid() const { return controller != GAME_CONTROLLER_INVALID; };
|
|
|
|
|
inline void MakeInvalid() { controller = GAME_CONTROLLER_INVALID; button = GAME_BUTTON_INVALID; };
|
2002-04-16 17:31:00 +00:00
|
|
|
|
2002-07-27 19:29:51 +00:00
|
|
|
CString toString();
|
|
|
|
|
bool fromString( CString s );
|
2002-04-16 17:31:00 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2002-11-16 08:07:38 +00:00
|
|
|
|
|
|
|
|
#endif
|