// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved.
#pragma once
#include "Engine/Core/Config.h"
// The maximum amount of supported gamepads connected at once.
#define MAX_GAMEPADS 8
///
/// Hardware mouse cursor behavior.
///
API_ENUM() enum class CursorLockMode
{
///
/// The default mode.
///
None = 0,
///
/// Cursor position is locked to the center of the game window.
///
Locked = 1,
///
/// Cursor position is confined to the bounds of the game window.
///
Clipped = 2,
};
///
/// Mouse buttons types.
///
API_ENUM() enum class MouseButton
{
///
/// No button.
///
None = 0,
///
/// Left button.
///
Left = 1,
///
/// Middle button.
///
Middle = 2,
///
/// Right button.
///
Right = 3,
///
/// Extended button 1 (or XButton1).
///
Extended1 = 4,
///
/// Extended button 2 (or XButton2).
///
Extended2 = 5,
MAX
};
///
/// Axis for gamepad.
///
API_ENUM() enum class GamepadAxis
{
///
/// No axis.
///
None = 0,
///
/// The X-Axis of the left thumb stick.
///
LeftStickX = 1,
///
/// The Y-Axis of the left thumb stick.
///
LeftStickY = 2,
///
/// The X-Axis of the right thumb stick.
///
RightStickX = 3,
///
/// The Y-Axis of the right thumb stick.
///
RightStickY = 4,
///
/// The left trigger.
///
LeftTrigger = 5,
///
/// The right trigger.
///
RightTrigger = 6,
MAX
};
///
/// Buttons for gamepad.
///
API_ENUM() enum class GamepadButton
{
///
/// No buttons.
///
None = 0,
///
/// PadUp button (DPad / Directional Pad).
///
DPadUp = 1,
///
/// PadDown button (DPad / Directional Pad).
///
DPadDown = 2,
///
/// PadLeft button (DPad / Directional Pad).
///
DPadLeft = 3,
///
/// PadRight button (DPad / Directional Pad).
///
DPadRight = 4,
///
/// Start button.
///
Start = 5,
///
/// Back button.
///
Back = 6,
///
/// Left thumbstick button.
///
LeftThumb = 7,
///
/// Right thumbstick button.
///
RightThumb = 8,
///
/// Left shoulder button.
///
LeftShoulder = 9,
///
/// Right shoulder button.
///
RightShoulder = 10,
///
/// Left trigger button.
///
LeftTrigger = 11,
///
/// Right trigger button.
///
RightTrigger = 12,
///
/// A (face button down).
///
A = 13,
///
/// B (face button right).
///
B = 14,
///
/// X (face button left).
///
X = 15,
///
/// Y (face button up).
///
Y = 16,
///
/// The left stick up.
///
LeftStickUp = 17,
///
/// The left stick down.
///
LeftStickDown = 18,
///
/// The left stick left.
///
LeftStickLeft = 19,
///
/// The left stick right.
///
LeftStickRight = 20,
///
/// The right stick up.
///
RightStickUp = 21,
///
/// The right stick down.
///
RightStickDown = 22,
///
/// The right stick left.
///
RightStickLeft = 23,
///
/// The right stick right.
///
RightStickRight = 24,
MAX
};
///
/// The input action event trigger modes.
///
API_ENUM() enum class InputActionMode
{
///
/// User is pressing the key/button.
///
Pressing = 0,
///
/// User pressed the key/button (but wasn't pressing it in the previous frame).
///
Press = 1,
///
/// User released the key/button (was pressing it in the previous frame).
///
Release = 2,
};
///
/// The input action event phases.
///
API_ENUM() enum class InputActionState
{
///
/// The key/button is not assigned.
///
None = 0,
///
/// The key/button is waiting for input.
///
Waiting = 1,
///
/// User is pressing the key/button.
///
Pressing = 2,
///
/// User pressed the key/button (but wasn't pressing it in the previous frame).
///
Press = 3,
///
/// User released the key/button (was pressing it in the previous frame).
///
Release = 4,
};
///
/// The input gamepad index.
///
API_ENUM() enum class InputGamepadIndex
{
///
/// All detected gamepads.
///
All = -1,
///
/// The gamepad no. 0.
///
Gamepad0 = 0,
///
/// The gamepad no. 1.
///
Gamepad1 = 1,
///
/// The gamepad no. 2.
///
Gamepad2 = 2,
///
/// The gamepad no. 3.
///
Gamepad3 = 3,
///
/// The gamepad no. 4.
///
Gamepad4 = 4,
///
/// The gamepad no. 5.
///
Gamepad5 = 5,
};
///
/// The input axes types.
///
API_ENUM() enum class InputAxisType
{
///
/// The mouse X-Axis (mouse delta position scaled by the sensitivity).
///
MouseX = 0,
///
/// The mouse Y-Axis (mouse delta position scaled by the sensitivity).
///
MouseY = 1,
///
/// The mouse wheel (mouse wheel delta scaled by the sensitivity).
///
MouseWheel = 2,
///
/// The gamepad X-Axis of the left thumb stick.
///
GamepadLeftStickX = 3,
///
/// The gamepad Y-Axis of the left thumb stick.
///
GamepadLeftStickY = 4,
///
/// The gamepad X-Axis of the right thumb stick.
///
GamepadRightStickX = 5,
///
/// The gamepad Y-Axis of the right thumb stick.
///
GamepadRightStickY = 6,
///
/// The gamepad left trigger.
///
GamepadLeftTrigger = 7,
///
/// The gamepad right trigger.
///
GamepadRightTrigger = 8,
///
/// The keyboard only mode. For key inputs.
///
KeyboardOnly = 9,
///
/// Pad X axis - left/right (DPad / Directional Pad).
///
GamepadDPadX = 10,
///
/// Pad Y axis - up/down (DPad / Directional Pad).
///
GamepadDPadY = 11,
};