metaforce/Runtime/Input/ControlMapper.hpp

116 lines
2.6 KiB
C++

#ifndef __RETRO_CCONTROLMAPPER_HPP__
#define __RETRO_CCONTROLMAPPER_HPP__
namespace Retro
{
class CFinalInput;
class ControlMapper
{
public:
enum ECommands
{
CmdForward,
CmdBackward,
CmdTurnLeft,
CmdTurnRight,
CmdStrafeLeft,
CmdStrafeRight,
CmdLookLeft,
CmdLookRight,
CmdLookUp,
CmdLookDown,
CmdJumpOrBoost,
CmdFireOrBomb,
CmdMissileOrPowerBomb,
CmdMorph,
CmdAimUp,
CmdAimDown,
CmdCycleBeamUp,
CmdCycleBeamDown,
CmdCycleItem,
CmdPowerBeam,
CmdIceBeam,
CmdWaveBeam,
CmdPlasmaBeam,
CmdToggleHolster,
CmdOrbitClose,
CmdOrbitFar,
CmdOrbitObject,
CmdOrbitSelect,
CmdOrbitConfirm,
CmdOrbitLeft,
CmdOrbitRight,
CmdOrbitUp,
CmdOrbitDown,
CmdLookHold1,
CmdLookHold2,
CmdLookZoomIn,
CmdLookZoomOut,
CmdAimHold,
CmdMapCircleUp,
CmdMapCircleDown,
CmdMapCircleLeft,
CmdMapCircleRight,
CmdMapMoveForward,
CmdMapMoveBack,
CmdMapMoveLeft,
CmdMapMoveRight,
CmdMapZoomIn,
CmdMapZoomOut,
CmdChaseCamera,
CmdXrayVisor,
CmdThermoVisor,
CmdInviroVisor,
CmdNoVisor,
CmdVisorMenu,
CmdVisorUp,
CmdVisorDown,
CmdUseSheild=0x3B,
CmdScanItem=0x3C,
CmdUNKNOWN,
CmdNone,
CmdMAX
};
enum EFunctionList
{
FuncNone,
FuncLeftStickUp,
FuncLeftStickDown,
FuncLeftStickLeft,
FuncLeftStickRight,
FuncRightStickUp,
FuncRightStickDown,
FuncRightStickLeft,
FuncRightStickRight,
FuncLeftTrigger,
FuncRightTrigger,
FuncDPadUp,
FuncDPadDown,
FuncDPadLeft,
FuncDPadRight,
FuncAButton,
FuncBButton,
FuncXButton,
FuncYButton,
FuncZButton,
FuncLeftTriggerPress,
FuncRightTriggerPress,
FuncStart,
FuncMAX // default case
};
static void SetCommandFiltered(ECommands cmd, bool filtered);
static void ResetCommandFilters();
static bool GetPressInput(ECommands cmd, const CFinalInput& input);
static bool GetDigitalInput(ECommands cmd, const CFinalInput& input);
static float GetAnalogInput(ECommands cmd, const CFinalInput& input);
static const char* GetDescriptionForCommand(ECommands cmd);
static const char* GetDescriptionForFunction(EFunctionList func);
};
}
#endif // __RETRO_CCONTROLMAPPER_HPP__