Files
GTASource/game/script_headers/commands_pad.sch
expvintl 419f2e4752 init
2025-02-23 17:40:52 +08:00

1403 lines
54 KiB
Scheme

ENUM PAD_NUMBER
PAD1 = 0,
// PAD2 = 1,
// PAD3 = 2,
// PAD4 = 3,
DEBUG_PAD = 99
ENDENUM
#IF IS_DEBUG_BUILD
// It's going to take more work to make this Debug-only
// List of controls on the control pad - must match the order of the switch statement in
// GetPadState() in commands_pad.cpp in the games Script directory
ENUM PAD_BUTTON_NUMBER
LEFTSTICKX = 0,
LEFTSTICKY = 1,
RIGHTSTICKX = 2,
RIGHTSTICKY = 3,
LEFTSHOULDER1 = 4,
LEFTSHOULDER2 = 5,
RIGHTSHOULDER1 = 6,
RIGHTSHOULDER2 = 7,
DPADUP = 8,
DPADDOWN = 9,
DPADLEFT = 10,
DPADRIGHT = 11,
START = 12,
SELECT = 13,
SQUARE = 14,
TRIANGLE = 15,
CROSS = 16,
CIRCLE = 17,
LEFTSHOCK = 18, // (LEFTSHOULDER3 / the PS3 pad left nipple press)
RIGHTSHOCK = 19, // (RIGHTSHOULDER3 / the PS3 pad right nipple press)
NO_BUTTON_PRESSED = 9999 // this was added for using funtions that return a PAD_BUTTON_NUMBER, do not pass this value into any pad commands
ENDENUM
#ENDIF // IS_DEBUG_BUILD
// This ENUM should only be used with the SET_INPUT_EVENT scaleform method
ENUM SCALEFORM_INPUT_EVENT
SCALEFORM_INPUT_EVENT_LEFTSHOULDER1 = 4,
SCALEFORM_INPUT_EVENT_LEFTSHOULDER2 = 5,
SCALEFORM_INPUT_EVENT_RIGHTSHOULDER1 = 6,
SCALEFORM_INPUT_EVENT_RIGHTSHOULDER2 = 7,
SCALEFORM_INPUT_EVENT_UP = 8,
SCALEFORM_INPUT_EVENT_DOWN = 9,
SCALEFORM_INPUT_EVENT_LEFT = 10,
SCALEFORM_INPUT_EVENT_RIGHT = 11,
SCALEFORM_INPUT_EVENT_SELECT = 13,
SCALEFORM_INPUT_EVENT_SQUARE = 14,
SCALEFORM_INPUT_EVENT_TRIANGLE = 15,
SCALEFORM_INPUT_EVENT_CROSS = 16,
SCALEFORM_INPUT_EVENT_CIRCLE = 17,
SCALEFORM_INPUT_EVENT_LEFT_CLICK = 1001,
SCALEFORM_INPUT_EVENT_INVALID = 9999
ENDENUM
// It looks like this is used in Release scripts
// #IF IS_DEBUG_BUILD
//To be used with Actionscript / Scaleform
//To be used to indicate which icon to be used with instructional text
ENUM INSTRUCTIONAL_BUTTON_NUMBER
ICON_UP = 0,
ICON_DOWN = 1,
ICON_LEFT = 2,
ICON_RIGHT = 3,
ICON_DPAD_UP = 4,
ICON_DPAD_DOWN = 5,
ICON_DPAD_LEFT = 6,
ICON_DPAD_RIGHT = 7,
ICON_DPAD_NONE = 8,
ICON_DPAD_ALL = 9,
ICON_DPAD_UPDOWN = 10,
ICON_DPAD_LEFTRIGHT = 11,
ICON_LSTICK_UP = 12,
ICON_LSTICK_DOWN = 13,
ICON_LSTICK_LEFT = 14,
ICON_LSTICK_RIGHT = 15,
ICON_LSTICK_NONE = 16,
ICON_LSTICK_ALL1= 17,
ICON_LSTICK_UPDOWN = 18,
ICON_LSTICK_LEFTRIGHT = 19,
ICON_LSTICK_ROTATE = 20,
ICON_RSTICK_UP = 21,
ICON_RSTICK_DOWN = 22,
ICON_RSTICK_LEFT = 23,
ICON_RSTICK_RIGHT = 24,
ICON_RSTICK_NONE = 25,
ICON_RSTICK_ALL = 26,
ICON_RSTICK_UPDOWN = 27,
ICON_RSTICK_LEFTRIGHT = 28,
ICON_RSTICK_ROTATE = 29,
ICON_BUTTON_A = 30,
ICON_BUTTON_B = 31,
ICON_BUTTON_X = 32,
ICON_BUTTON_Y = 33,
ICON_BUTTON_LB = 34,
ICON_BUTTON_LT = 35,
ICON_BUTTON_RB = 36,
ICON_BUTTON_RT = 37,
ICON_BUTTON_START = 38,
ICON_BUTTON_BACK = 39,
ICON_SIXAXIS_DRIVE = 40,
ICON_SIXAXIS_PITCH = 41,
ICON_SIXAXIS_RELOAD = 42,
ICON_SIXAXIS_ROLL = 43,
ICON_SPINNER = 44,
ICON_GENERIC_UPDOWN_ARROWS = 45,
ICON_GENERIC_LEFTRIGHT_ARROWS = 46,
ICON_GENERIC_ALL_ARROWS = 47,
ICON_INVALID = 9999 //Needed for default value
ENDENUM
// #ENDIF // IS_DEBUG_BUILD
ENUM CONTROL_TYPE
PLAYER_CONTROL = 0,
CAMERA_CONTROL,
FRONTEND_CONTROL
ENDENUM
ENUM CONTROL_ACTION
//////////////////////////////////////////////////////////////////////////
// General Controls
//////////////////////////////////////////////////////////////////////////
// These act as on foot controls but are technically separate.
//////////////////////////////////////////////////////////////////////////
INPUT_NEXT_CAMERA = 0,
// In range -1 (left/up)...+1(right/down). Sign dependent on direction.
INPUT_LOOK_LR,
INPUT_LOOK_UD,
// In range 0...1. All directions positive.
INPUT_LOOK_UP_ONLY,
INPUT_LOOK_DOWN_ONLY,
INPUT_LOOK_LEFT_ONLY,
INPUT_LOOK_RIGHT_ONLY,
INPUT_CINEMATIC_SLOWMO,
INPUT_SCRIPTED_FLY_UD,
INPUT_SCRIPTED_FLY_LR,
INPUT_SCRIPTED_FLY_ZUP,
INPUT_SCRIPTED_FLY_ZDOWN,
// These are for selecting a position in the weapon wheel
INPUT_WEAPON_WHEEL_UD,
INPUT_WEAPON_WHEEL_LR,
// These switches between weapons in the same position of the weapon wheel
INPUT_WEAPON_WHEEL_NEXT,
INPUT_WEAPON_WHEEL_PREV,
// These directly switch to the next weapon (used for a PC mouse).
INPUT_SELECT_NEXT_WEAPON,
INPUT_SELECT_PREV_WEAPON,
INPUT_SKIP_CUTSCENE,
INPUT_CHARACTER_WHEEL,
INPUT_MULTIPLAYER_INFO,
//////////////////////////////////////////////////////////////////////////
// On Foot Controls
//////////////////////////////////////////////////////////////////////////
INPUT_SPRINT,
INPUT_JUMP,
INPUT_ENTER,
INPUT_ATTACK,
INPUT_AIM,
INPUT_LOOK_BEHIND,
INPUT_PHONE,
INPUT_SPECIAL_ABILITY,
INPUT_SPECIAL_ABILITY_SECONDARY,
// In range -1 (left/up)...+1(right/down). Sign dependent on direction.
INPUT_MOVE_LR,
INPUT_MOVE_UD,
// In range 0...1. All directions positive.
INPUT_MOVE_UP_ONLY,
INPUT_MOVE_DOWN_ONLY,
INPUT_MOVE_LEFT_ONLY,
INPUT_MOVE_RIGHT_ONLY,
INPUT_DUCK,
INPUT_SELECT_WEAPON,
INPUT_PICKUP,
INPUT_SNIPER_ZOOM,
INPUT_SNIPER_ZOOM_IN_ONLY,
INPUT_SNIPER_ZOOM_OUT_ONLY,
INPUT_SNIPER_ZOOM_IN_SECONDARY,
INPUT_SNIPER_ZOOM_OUT_SECONDARY,
INPUT_COVER,
INPUT_RELOAD,
INPUT_TALK,
INPUT_DETONATE,
INPUT_HUD_SPECIAL,
INPUT_ARREST,
INPUT_ACCURATE_AIM,
INPUT_CONTEXT,
INPUT_CONTEXT_SECONDARY,
INPUT_WEAPON_SPECIAL,
INPUT_WEAPON_SPECIAL_TWO,
INPUT_DIVE,
INPUT_DROP_WEAPON,
INPUT_DROP_AMMO,
INPUT_THROW_GRENADE,
//////////////////////////////////////////////////////////////////////////
// In Vehicle Controls
//////////////////////////////////////////////////////////////////////////
// In range -1 (left/up)...+1(right/down). Sign dependent on direction.
INPUT_VEH_MOVE_LR,
INPUT_VEH_MOVE_UD,
// In range 0...1. All directions positive.
INPUT_VEH_MOVE_UP_ONLY,
INPUT_VEH_MOVE_DOWN_ONLY,
INPUT_VEH_MOVE_LEFT_ONLY,
INPUT_VEH_MOVE_RIGHT_ONLY,
INPUT_VEH_SPECIAL,
INPUT_VEH_GUN_LR,
INPUT_VEH_GUN_UD,
INPUT_VEH_AIM,
INPUT_VEH_ATTACK,
INPUT_VEH_ATTACK2,
INPUT_VEH_ACCELERATE,
INPUT_VEH_BRAKE,
INPUT_VEH_DUCK,
INPUT_VEH_HEADLIGHT,
INPUT_VEH_EXIT,
INPUT_VEH_HANDBRAKE,
INPUT_VEH_HOTWIRE_LEFT,
INPUT_VEH_HOTWIRE_RIGHT,
INPUT_VEH_LOOK_BEHIND,
INPUT_VEH_CIN_CAM,
INPUT_VEH_NEXT_RADIO,
INPUT_VEH_PREV_RADIO,
INPUT_VEH_NEXT_RADIO_TRACK,
INPUT_VEH_PREV_RADIO_TRACK,
INPUT_VEH_RADIO_WHEEL,
INPUT_VEH_HORN,
INPUT_VEH_FLY_THROTTLE_UP,
INPUT_VEH_FLY_THROTTLE_DOWN,
INPUT_VEH_FLY_YAW_LEFT,
INPUT_VEH_FLY_YAW_RIGHT,
INPUT_VEH_PASSENGER_AIM,
INPUT_VEH_PASSENGER_ATTACK,
INPUT_VEH_SPECIAL_ABILITY_FRANKLIN,
INPUT_VEH_STUNT_UD,
INPUT_VEH_CINEMATIC_UD,
INPUT_VEH_CINEMATIC_UP_ONLY,
INPUT_VEH_CINEMATIC_DOWN_ONLY,
INPUT_VEH_CINEMATIC_LR,
INPUT_VEH_SELECT_NEXT_WEAPON,
INPUT_VEH_SELECT_PREV_WEAPON,
INPUT_VEH_ROOF,
INPUT_VEH_JUMP, // This is for bikes, try INPUT_VEH_CAR_JUMP
INPUT_VEH_GRAPPLING_HOOK,
INPUT_VEH_SHUFFLE,
INPUT_VEH_DROP_PROJECTILE,
INPUT_VEH_MOUSE_CONTROL_OVERRIDE,
//////////////////////////////////////////////////////////////////////////
// In Aircraft specific Controls
//////////////////////////////////////////////////////////////////////////
INPUT_VEH_FLY_ROLL_LR,
INPUT_VEH_FLY_ROLL_LEFT_ONLY,
INPUT_VEH_FLY_ROLL_RIGHT_ONLY,
INPUT_VEH_FLY_PITCH_UD,
INPUT_VEH_FLY_PITCH_UP_ONLY,
INPUT_VEH_FLY_PITCH_DOWN_ONLY,
INPUT_VEH_FLY_UNDERCARRIAGE,
INPUT_VEH_FLY_ATTACK,
INPUT_VEH_FLY_SELECT_NEXT_WEAPON,
INPUT_VEH_FLY_SELECT_PREV_WEAPON,
INPUT_VEH_FLY_SELECT_TARGET_LEFT,
INPUT_VEH_FLY_SELECT_TARGET_RIGHT,
INPUT_VEH_FLY_VERTICAL_FLIGHT_MODE,
INPUT_VEH_FLY_DUCK,
INPUT_VEH_FLY_ATTACK_CAMERA,
INPUT_VEH_FLY_MOUSE_CONTROL_OVERRIDE,
//////////////////////////////////////////////////////////////////////////
// In Sub Controls
//////////////////////////////////////////////////////////////////////////
INPUT_VEH_SUB_TURN_LR,
INPUT_VEH_SUB_TURN_LEFT_ONLY,
INPUT_VEH_SUB_TURN_RIGHT_ONLY,
INPUT_VEH_SUB_PITCH_UD,
INPUT_VEH_SUB_PITCH_UP_ONLY,
INPUT_VEH_SUB_PITCH_DOWN_ONLY,
INPUT_VEH_SUB_THROTTLE_UP,
INPUT_VEH_SUB_THROTTLE_DOWN,
INPUT_VEH_SUB_ASCEND,
INPUT_VEH_SUB_DESCEND,
INPUT_VEH_SUB_TURN_HARD_LEFT,
INPUT_VEH_SUB_TURN_HARD_RIGHT,
INPUT_VEH_SUB_MOUSE_CONTROL_OVERRIDE,
//////////////////////////////////////////////////////////////////////////
// On Pushbike Controls
//////////////////////////////////////////////////////////////////////////
INPUT_VEH_PUSHBIKE_PEDAL,
INPUT_VEH_PUSHBIKE_SPRINT,
INPUT_VEH_PUSHBIKE_FRONT_BRAKE,
INPUT_VEH_PUSHBIKE_REAR_BRAKE,
//////////////////////////////////////////////////////////////////////////
// Melee Combat Controls
//////////////////////////////////////////////////////////////////////////
INPUT_MELEE_ATTACK_LIGHT,
INPUT_MELEE_ATTACK_HEAVY,
INPUT_MELEE_ATTACK_ALTERNATE,
INPUT_MELEE_BLOCK,
//////////////////////////////////////////////////////////////////////////
// Parachute Controls
//////////////////////////////////////////////////////////////////////////
INPUT_PARACHUTE_DEPLOY,
INPUT_PARACHUTE_DETACH,
INPUT_PARACHUTE_TURN_LR,
INPUT_PARACHUTE_TURN_LEFT_ONLY,
INPUT_PARACHUTE_TURN_RIGHT_ONLY,
INPUT_PARACHUTE_PITCH_UD,
INPUT_PARACHUTE_PITCH_UP_ONLY,
INPUT_PARACHUTE_PITCH_DOWN_ONLY,
INPUT_PARACHUTE_BRAKE_LEFT,
INPUT_PARACHUTE_BRAKE_RIGHT,
INPUT_PARACHUTE_SMOKE,
INPUT_PARACHUTE_PRECISION_LANDING,
//////////////////////////////////////////////////////////////////////////
// PC Specific
//////////////////////////////////////////////////////////////////////////
INPUT_MAP,
INPUT_SELECT_WEAPON_UNARMED,
INPUT_SELECT_WEAPON_MELEE,
INPUT_SELECT_WEAPON_HANDGUN,
INPUT_SELECT_WEAPON_SHOTGUN,
INPUT_SELECT_WEAPON_SMG,
INPUT_SELECT_WEAPON_AUTO_RIFLE,
INPUT_SELECT_WEAPON_SNIPER,
INPUT_SELECT_WEAPON_HEAVY,
INPUT_SELECT_WEAPON_SPECIAL,
INPUT_SELECT_CHARACTER_MICHAEL,
INPUT_SELECT_CHARACTER_FRANKLIN,
INPUT_SELECT_CHARACTER_TREVOR,
INPUT_SELECT_CHARACTER_MULTIPLAYER,
INPUT_SAVE_REPLAY_CLIP,
INPUT_SPECIAL_ABILITY_PC, // This is so you can have the same input for both on foot and in-car special abilities on PC
//////////////////////////////////////////////////////////////////////////
// Cellphone Controls
//////////////////////////////////////////////////////////////////////////
INPUT_CELLPHONE_UP,
INPUT_CELLPHONE_DOWN,
INPUT_CELLPHONE_LEFT,
INPUT_CELLPHONE_RIGHT,
INPUT_CELLPHONE_SELECT,
INPUT_CELLPHONE_CANCEL,
INPUT_CELLPHONE_OPTION,
INPUT_CELLPHONE_EXTRA_OPTION,
INPUT_CELLPHONE_SCROLL_FORWARD,
INPUT_CELLPHONE_SCROLL_BACKWARD,
INPUT_CELLPHONE_CAMERA_FOCUS_LOCK,
INPUT_CELLPHONE_CAMERA_GRID,
INPUT_CELLPHONE_CAMERA_SELFIE,
INPUT_CELLPHONE_CAMERA_DOF,
INPUT_CELLPHONE_CAMERA_EXPRESSION,
//////////////////////////////////////////////////////////////////////////
// Direct Controls. Used By Frontend ONLY.
//////////////////////////////////////////////////////////////////////////
INPUT_FRONTEND_DOWN,
INPUT_FRONTEND_UP,
INPUT_FRONTEND_LEFT,
INPUT_FRONTEND_RIGHT,
INPUT_FRONTEND_RDOWN,
INPUT_FRONTEND_RUP,
INPUT_FRONTEND_RLEFT,
INPUT_FRONTEND_RRIGHT,
INPUT_FRONTEND_AXIS_X,
INPUT_FRONTEND_AXIS_Y,
INPUT_FRONTEND_RIGHT_AXIS_X,
INPUT_FRONTEND_RIGHT_AXIS_Y,
INPUT_FRONTEND_PAUSE,
INPUT_FRONTEND_PAUSE_ALTERNATE, // Alternate pause to get around conflict issues with Esc going back on PC.
INPUT_FRONTEND_ACCEPT,
INPUT_FRONTEND_CANCEL,
INPUT_FRONTEND_X,
INPUT_FRONTEND_Y,
INPUT_FRONTEND_LB,
INPUT_FRONTEND_RB,
INPUT_FRONTEND_LT,
INPUT_FRONTEND_RT,
INPUT_FRONTEND_LS,
INPUT_FRONTEND_RS,
INPUT_FRONTEND_LEADERBOARD,
INPUT_FRONTEND_SOCIAL_CLUB,
INPUT_FRONTEND_SOCIAL_CLUB_SECONDARY,
INPUT_FRONTEND_DELETE,
INPUT_FRONTEND_ENDSCREEN_ACCEPT,
INPUT_FRONTEND_ENDSCREEN_EXPAND,
INPUT_FRONTEND_SELECT, // DP: ensure you update INPUT_FRONTEND_CONTROL_END if you add any more frontend input!
////////////////////////////////////////////////////////////////////////////////////////////////////
// Remappable Script controls. For use in minigames and other scripts using a custom control scheme
// instead of direct pad controls and non-remappable front end controls
///////////////////////////////////////////////////////////////////////////////////////////////////
INPUT_SCRIPT_LEFT_AXIS_X, // Left stick X analogue input. Values may be > 1 when using a mouse. Usually maps to movement
INPUT_SCRIPT_LEFT_AXIS_Y, // Left stick Y analogue input. Values may be > 1 when using a mouse. Usually maps to movement
INPUT_SCRIPT_RIGHT_AXIS_X, // Right stick X analogue input. Values may be > 1 when using a mouse. Usually maps to look.
INPUT_SCRIPT_RIGHT_AXIS_Y, // Right stick Y analogue input. Values may be > 1 when using a mouse. Usually maps to look.
INPUT_SCRIPT_RUP, // PS3 = TRIANGLE, 360 = Y
INPUT_SCRIPT_RDOWN, // PS3 = X, 360 = A
INPUT_SCRIPT_RLEFT, // PS3 = SQUARE, 360 = X
INPUT_SCRIPT_RRIGHT, // PS3 = CIRCLE, 360 = B
INPUT_SCRIPT_LB, // Left shoulder button
INPUT_SCRIPT_RB, // Right shoulder button
INPUT_SCRIPT_LT, // Left shoulder trigger - DIGITAL ONLY
INPUT_SCRIPT_RT, // Right shoulder trigger - DIGITAL ONLY
INPUT_SCRIPT_LS, // Left stick L3 button,
INPUT_SCRIPT_RS, // Right stick R3 button
INPUT_SCRIPT_PAD_UP, // D-Pad / Directional buttons up
INPUT_SCRIPT_PAD_DOWN, // D-Pad / Directional buttons down
INPUT_SCRIPT_PAD_LEFT, // D-Pad / Directional buttons left
INPUT_SCRIPT_PAD_RIGHT, // D-Pad / Directional buttons right
INPUT_SCRIPT_SELECT, // Back button on 360, select on PS3
//////////////////////////////////////////////////////////////////////////
// NEXT GEN AND PC
//////////////////////////////////////////////////////////////////////////
INPUT_CURSOR_ACCEPT, // Touch pad click or mouse button 1 click
INPUT_CURSOR_CANCEL, // Mouse button 2 click
INPUT_CURSOR_X, // The cursor X position in the range of 0...1.
INPUT_CURSOR_Y, // The cursor Y position in the range of 0...1.
INPUT_CURSOR_SCROLL_UP, // Scroll up, e.g. mouse wheel
INPUT_CURSOR_SCROLL_DOWN, // Scroll down, e.g. mouse wheel
INPUT_ENTER_CHEAT_CODE, // Brings up the cheat code input box.
INPUT_INTERACTION_MENU, // Brings up the interaction menu.
INPUT_MP_TEXT_CHAT_ALL, // Brings up text chat box. Message sent to all players on a server.
INPUT_MP_TEXT_CHAT_TEAM, // Brings up text chat box. Message sent to all players on in the current team.
INPUT_MP_TEXT_CHAT_FRIENDS, // Brings up text chat box. Message sent to all friends on a server
INPUT_MP_TEXT_CHAT_CREW, // Brings up text chat box. Message sent to all crew on a server
INPUT_PC_PUSH_TO_TALK, // Push to talk for VOIP
INPUT_CREATOR_LS, // Creator Left stick equivalent for functions like field of view, etc.
INPUT_CREATOR_RS, // Creator right stick equivalent for functions like field of view, etc.
INPUT_CREATOR_LT, // Creator left trigger equivalent for zooming.
INPUT_CREATOR_RT, // Creator right trigger equivalent for zooming.
INPUT_CREATOR_MENU_TOGGLE, // Creator menu toggle on/off for PC keyboard and mouse.
INPUT_CREATOR_ACCEPT, // Creator accept/place items button.
INPUT_CREATOR_DELETE, // Creator delete items button.
//////////////////////////////////////////////////////////////////////////
// LEGACY SUPPORT
//////////////////////////////////////////////////////////////////////////
// Remove once legacy input support has been removed. Also, update
// GetValue()!
//////////////////////////////////////////////////////////////////////////
INPUT_ATTACK2, // Know one knows what this does!
INPUT_RAPPEL_JUMP,
INPUT_RAPPEL_LONG_JUMP,
INPUT_RAPPEL_SMASH_WINDOW,
// The weapon selecting works differently now. These are temporarily mapped to the weapon wheel. NOTE: the weapon can be switched in other ways than the weapon wheel on PC
// So these are NOT portable.
INPUT_PREV_WEAPON,
INPUT_NEXT_WEAPON,
INPUT_MELEE_ATTACK1, // This has been renamed to INPUT_MELEE_ATTACK_LIGHT. If this should be kept as it is, let me know thomas.randall@rockstarleeds.com
INPUT_MELEE_ATTACK2, // This has been renamed to INPUT_MELEE_ATTACK_HEAVY. If this should be kept as it is, let me know thomas.randall@rockstarleeds.com
INPUT_WHISTLE, // This is mapped to nothing and is not used anywhere, it is added here so scripts work. If this should be kept let me know thomas.randall@rockstarleeds.com
INPUT_MOVE_LEFT,
INPUT_MOVE_RIGHT,
INPUT_MOVE_UP,
INPUT_MOVE_DOWN,
INPUT_LOOK_LEFT,
INPUT_LOOK_RIGHT,
INPUT_LOOK_UP,
INPUT_LOOK_DOWN,
INPUT_SNIPER_ZOOM_IN,
INPUT_SNIPER_ZOOM_OUT,
INPUT_SNIPER_ZOOM_IN_ALTERNATE,
INPUT_SNIPER_ZOOM_OUT_ALTERNATE,
INPUT_VEH_MOVE_LEFT,
INPUT_VEH_MOVE_RIGHT,
INPUT_VEH_MOVE_UP,
INPUT_VEH_MOVE_DOWN,
INPUT_VEH_GUN_LEFT,
INPUT_VEH_GUN_RIGHT,
INPUT_VEH_GUN_UP,
INPUT_VEH_GUN_DOWN,
INPUT_VEH_LOOK_LEFT,
INPUT_VEH_LOOK_RIGHT,
INPUT_REPLAY_START_STOP_RECORDING,
INPUT_REPLAY_START_STOP_RECORDING_SECONDARY,
INPUT_SCALED_LOOK_LR,
INPUT_SCALED_LOOK_UD,
INPUT_SCALED_LOOK_UP_ONLY,
INPUT_SCALED_LOOK_DOWN_ONLY,
INPUT_SCALED_LOOK_LEFT_ONLY,
INPUT_SCALED_LOOK_RIGHT_ONLY,
INPUT_REPLAY_MARKER_DELETE,
INPUT_REPLAY_CLIP_DELETE,
INPUT_REPLAY_PAUSE,
INPUT_REPLAY_REWIND,
INPUT_REPLAY_FFWD,
INPUT_REPLAY_NEWMARKER,
INPUT_REPLAY_RECORD,
INPUT_REPLAY_SCREENSHOT,
INPUT_REPLAY_HIDEHUD,
INPUT_REPLAY_STARTPOINT,
INPUT_REPLAY_ENDPOINT,
INPUT_REPLAY_ADVANCE,
INPUT_REPLAY_BACK,
INPUT_REPLAY_TOOLS,
INPUT_REPLAY_RESTART,
INPUT_REPLAY_SHOWHOTKEY,
INPUT_REPLAY_CYCLEMARKERLEFT,
INPUT_REPLAY_CYCLEMARKERRIGHT,
INPUT_REPLAY_FOVINCREASE,
INPUT_REPLAY_FOVDECREASE,
INPUT_REPLAY_CAMERAUP,
INPUT_REPLAY_CAMERADOWN,
INPUT_REPLAY_SAVE,
INPUT_REPLAY_TOGGLETIME,
INPUT_REPLAY_TOGGLETIPS,
INPUT_REPLAY_PREVIEW,
INPUT_REPLAY_TOGGLE_TIMELINE,
INPUT_REPLAY_TIMELINE_PICKUP_CLIP,
INPUT_REPLAY_TIMELINE_DUPLICATE_CLIP,
INPUT_REPLAY_TIMELINE_PLACE_CLIP,
INPUT_REPLAY_CTRL,
INPUT_REPLAY_TIMELINE_SAVE,
INPUT_REPLAY_PREVIEW_AUDIO,
INPUT_VEH_DRIVE_LOOK,
INPUT_VEH_DRIVE_LOOK2,
INPUT_VEH_FLY_ATTACK2,
INPUT_RADIO_WHEEL_UD,
INPUT_RADIO_WHEEL_LR,
INPUT_VEH_SLOWMO_UP,
INPUT_VEH_SLOWMO_UP_ONLY,
INPUT_VEH_SLOWMO_DOWN_ONLY,
INPUT_VEH_HYDRAULICS_CONTROL_TOGGLE,
INPUT_VEH_HYDRAULICS_CONTROL_LEFT,
INPUT_VEH_HYDRAULICS_CONTROL_RIGHT,
INPUT_VEH_HYDRAULICS_CONTROL_UP,
INPUT_VEH_HYDRAULICS_CONTROL_DOWN,
INPUT_VEH_HYDRAULICS_CONTROL_LR,
INPUT_VEH_HYDRAULICS_CONTROL_UD,
INPUT_SWITCH_VISOR,
INPUT_VEH_MELEE_HOLD,
INPUT_VEH_MELEE_LEFT,
INPUT_VEH_MELEE_RIGHT,
INPUT_MAP_POI,
INPUT_REPLAY_SNAPMATIC_PHOTO,
INPUT_VEH_CAR_JUMP,
INPUT_VEH_ROCKET_BOOST,
INPUT_VEH_FLY_BOOST,
INPUT_VEH_PARACHUTE,
INPUT_VEH_BIKE_WINGS,
INPUT_VEH_FLY_BOMB_BAY,
INPUT_VEH_FLY_COUNTER,
INPUT_VEH_TRANSFORM,
INPUT_QUAD_LOCO_REVERSE,
INPUT_RESPAWN_FASTER,
// INPUT_CNC_INTERACT_ATM, temp removed because of ARCHIVED_SUMMER_CONTENT_ENABLED
INPUT_HUDMARKER_SELECT,
INPUT_EAT_SNACK,
INPUT_USE_ARMOR,
MAX_INPUTS
ENDENUM
ENUM CONTROL_ACTION_GROUP
INPUTGROUP_MOVE = 0,
INPUTGROUP_LOOK,
INPUTGROUP_WHEEL,
INPUTGROUP_CELLPHONE_NAVIGATE,
INPUTGROUP_CELLPHONE_NAVIGATE_UD,
INPUTGROUP_CELLPHONE_NAVIGATE_LR,
INPUTGROUP_FRONTEND_DPAD_ALL,
INPUTGROUP_FRONTEND_DPAD_UD,
INPUTGROUP_FRONTEND_DPAD_LR,
INPUTGROUP_FRONTEND_LSTICK_ALL,
INPUTGROUP_FRONTEND_RSTICK_ALL,
INPUTGROUP_FRONTEND_GENERIC_UD,
INPUTGROUP_FRONTEND_GENERIC_LR,
INPUTGROUP_FRONTEND_GENERIC_ALL,
INPUTGROUP_FRONTEND_BUMPERS,
INPUTGROUP_FRONTEND_TRIGGERS,
INPUTGROUP_FRONTEND_STICKS,
INPUTGROUP_SCRIPT_DPAD_ALL,
INPUTGROUP_SCRIPT_DPAD_UD,
INPUTGROUP_SCRIPT_DPAD_LR,
INPUTGROUP_SCRIPT_LSTICK_ALL,
INPUTGROUP_SCRIPT_RSTICK_ALL,
INPUTGROUP_SCRIPT_BUMPERS,
INPUTGROUP_SCRIPT_TRIGGERS,
INPUTGROUP_WEAPON_WHEEL_CYCLE,
INPUTGROUP_FLY,
INPUTGROUP_SUB,
INPUTGROUP_VEH_MOVE_ALL,
INPUTGROUP_CURSOR,
INPUTGROUP_CURSOR_SCROLL,
INPUTGROUP_SNIPER_ZOOM_SECONDARY,
INPUTGROUP_VEH_HYDRAULICS_CONTROL,
MAX_INPUTGROUPS
ENDENUM
ENUM MOTION_PREFERENCE
MP_HELI = 0, // Helis and Planes
MP_BIKE = 1,
MP_BOAT = 2,
MP_AFTERTOUCH = 3, // Vehicle aftertouch
MP_RELOAD = 4,
MP_ACTIVITY = 5 // e.g. Darts, bowling
ENDENUM
#IF IS_DEBUG_BUILD
//INFO:
//PARAM NOTES: PadLabel should be either PAD1 or PAD2.
// ButtonNumber should be one of the names in the KEY_NUMBER
// PURPOSE: Returns TRUE if the specified button on the specified controller is being pressed/used. More info..
NATIVE FUNC BOOL IS_BUTTON_PRESSED(PAD_NUMBER PadNumber, PAD_BUTTON_NUMBER ButtonNumber) = "0x7bdf096145218859"
//INFO:
//PARAM NOTES: PadLabel should be either PAD1 or PAD2.
// ButtonNumber should be one of the names in the KEY_NUMBER
// PURPOSE: Returns TRUE if the specified button on the specified controller is not being pressed/used. More info..
NATIVE FUNC BOOL IS_BUTTON_RELEASED(PAD_NUMBER PadNumber, PAD_BUTTON_NUMBER ButtonNumber) = "0xb7d69f6a253b695f"
//INFO:
//PARAM NOTES: PadLabel should be either PAD1 or PAD2.
// ButtonLabel should be one of the names in the Control Pad Button List
// PURPOSE: Returns TRUE if the specified button on the specified controller is has been pressed this frame. More info..
NATIVE FUNC BOOL IS_BUTTON_JUST_PRESSED(PAD_NUMBER PadNumber, PAD_BUTTON_NUMBER ButtonNumber) = "0x4f1e7dda6834e8d4"
//INFO:
//PARAM NOTES: PadLabel should be either PAD1 or PAD2.
// ButtonLabel should be one of the names in the Control Pad Button List
// PURPOSE: Returns TRUE if the specified button on the specified controller is has been released this frame. More info..
NATIVE FUNC BOOL IS_BUTTON_JUST_RELEASED(PAD_NUMBER PadNumber, PAD_BUTTON_NUMBER ButtonNumber) = "0xbd9daa2a34bb6051"
//PARAM NOTES: PadLabel should be either PAD1 or PAD2.
//ButtonLabel should be one of the names in the Control Pad Button List
// PURPOSE: Returns the values of the specified button on the specified controller for this frame
NATIVE FUNC INT GET_BUTTON_VALUE(PAD_NUMBER PadNumber, PAD_BUTTON_NUMBER ButtonNumber) = "0x75a69523a8ec1a39"
//INFO:
//PARAM NOTES: A value of 0 means that the stick is in the central position.
// PURPOSE: Gets the position of analogue stickes between -128 and 128. More info..
NATIVE PROC GET_POSITION_OF_ANALOGUE_STICKS(PAD_NUMBER PadNumber, INT &ReturnLeftX, INT &ReturnLeftY, INT &ReturnRightX, INT &ReturnRightY) = "0x4188d4863c710507"
#ENDIF // IS_DEBUG_BUILD
//INFO:
//PARAM NOTES:
// PURPOSE: Sets a light device to a constant color (if there is one).
NATIVE PROC SET_CONTROL_LIGHT_EFFECT_COLOR(CONTROL_TYPE control, INT red, INT green, INT blue) = "0x2638db8310d6ee6b"
//INFO:
//PARAM NOTES:
// PURPOSE: Clears any set colors on a light device.
NATIVE PROC CLEAR_CONTROL_LIGHT_EFFECT(CONTROL_TYPE control) = "0xe16df1340f6a4f39"
//INFO:
//PARAM NOTES:
//PURPOSE: Return if controller button related to an action is down.
NATIVE FUNC BOOL IS_CONTROL_PRESSED(CONTROL_TYPE control, CONTROL_ACTION action) = "0x4c1b8c5717647539"
//INFO:
//PARAM NOTES:
//PURPOSE: Return if controller button related to an action is up.
NATIVE FUNC BOOL IS_CONTROL_RELEASED(CONTROL_TYPE control, CONTROL_ACTION action) = "0x98e8b3ffceda25a5"
//INFO:
//PARAM NOTES:
//PURPOSE: Return if controller button related to an action has just been pressed down.
NATIVE FUNC BOOL IS_CONTROL_JUST_PRESSED(CONTROL_TYPE control, CONTROL_ACTION action) = "0xf09a4f413b0d30eb"
//INFO:
//PARAM NOTES:
//PURPOSE: Return if controller button related to an action has just been release up.
NATIVE FUNC BOOL IS_CONTROL_JUST_RELEASED(CONTROL_TYPE control, CONTROL_ACTION action) = "0x26009f50a14ad073"
//INFO:
//PARAM NOTES:
//PURPOSE: Return controller value related to an action (range 0 to 255)
NATIVE FUNC INT GET_CONTROL_VALUE(CONTROL_TYPE control, CONTROL_ACTION action) = "0xf439ff1991626cb9"
//INFO:
//PARAM NOTES:
//PURPOSE: Returns a mouse value adjusted for 3x1 and eyefinity coords
NATIVE FUNC FLOAT GET_ADJUSTED_MOUSE_VALUE(FLOAT fValue) = "0xa3f7d2ce2a1a994a"
//INFO:
//PARAM NOTES:
//PURPOSE: Return controller value related to an action (range between -1 to +1)
NATIVE FUNC FLOAT GET_CONTROL_NORMAL(CONTROL_TYPE control, CONTROL_ACTION action) = "0x664c0a1bf5e133fa"
//INFO:
//PARAM NOTES:
//PURPOSE: Set if you want to use the adjusted mouse coords
NATIVE PROC SET_USE_ADJUSTED_MOUSE_COORDS(BOOL control) = "0x4522e5855673d159"
//INFO:
//PARAM NOTES:
//PURPOSE: Gets it we are currently using the adjusted mouse coords
NATIVE FUNC FLOAT GET_USE_ADJUSTED_MOUSE_COORDS() = "0xa99cfcb5427dde55"
//INFO:
//PARAM NOTES:
//PURPOSE: Return controller value related to an action (range generally between -1 to +1 but can exceed this, usually by a mouse)
NATIVE FUNC FLOAT GET_CONTROL_UNBOUND_NORMAL(CONTROL_TYPE control, CONTROL_ACTION action) = "0x3bf65cf27f6cfbbe"
//INFO:
//PARAM NOTES:
//PURPOSE: Sets a control value for a give CONTROL_ACTION.
// RETURNS: TRUE if the value was set. If this turns false then the control is disabled.
NATIVE FUNC BOOL SET_CONTROL_VALUE_NEXT_FRAME(CONTROL_TYPE control, CONTROL_ACTION action, FLOAT value) = "0x9b3ae3991f75ef59"
//INFO:
//PARAM NOTES:
//PURPOSE: Return if controller button related to an action is down even if the control is disabled.
NATIVE FUNC BOOL IS_DISABLED_CONTROL_PRESSED(CONTROL_TYPE control, CONTROL_ACTION action) = "0x0dba73788f6e3c5f"
//INFO:
//PARAM NOTES:
//PURPOSE: Return if controller button related to an action is up even if the control is disabled.
NATIVE FUNC BOOL IS_DISABLED_CONTROL_RELEASED(CONTROL_TYPE control, CONTROL_ACTION action) = "0x154529612c25bc17"
//INFO:
//PARAM NOTES:
//PURPOSE: Return if controller button related to an action has just been pressed down even if the control is disabled.
NATIVE FUNC BOOL IS_DISABLED_CONTROL_JUST_PRESSED(CONTROL_TYPE control, CONTROL_ACTION action) = "0xf01464d7af0b7347"
//INFO:
//PARAM NOTES:
//PURPOSE: Return if controller button related to an action has just been release up even if the control is disabled.
NATIVE FUNC BOOL IS_DISABLED_CONTROL_JUST_RELEASED(CONTROL_TYPE control, CONTROL_ACTION action) = "0x51844f589d928a86"
//INFO:
//PARAM NOTES:
//PURPOSE: Return controller value related to an action (range between -1 to +1) even if the control is disabled.
NATIVE FUNC FLOAT GET_DISABLED_CONTROL_NORMAL(CONTROL_TYPE control, CONTROL_ACTION action) = "0x159f9b5a2920df4e"
//INFO:
//PARAM NOTES:
//PURPOSE: Return controller value related to an action (range generally between -1 to +1 but can exceed this, usually by a mouse) even if the control is disabled.
NATIVE FUNC FLOAT GET_DISABLED_CONTROL_UNBOUND_NORMAL(CONTROL_TYPE control, CONTROL_ACTION action) = "0x1ec2077a4d963881"
//INFO:
//PARAM NOTES:
//PURPOSE: Return how long ago a control last had a value (in milliseconds).
NATIVE FUNC INT GET_CONTROL_HOW_LONG_AGO(CONTROL_TYPE control) = "0xadb86701a67cb7e4"
//INFO:
//PARAM NOTES:
//PURPOSE: Return how long ago a disabled control last had a value (in milliseconds).
NATIVE FUNC INT GET_DISABLED_CONTROL_HOW_LONG_AGO(CONTROL_TYPE control) = "0x8587c8c397743fd1"
//INFO:
//PARAM NOTES:
//PURPOSE: Returns true if the player is using keyboard and mouse controls.
NATIVE FUNC BOOL IS_USING_KEYBOARD_AND_MOUSE(CONTROL_TYPE control) = "0x3a76a0944be2c291"
//INFO:
//PARAM NOTES:
//PURPOSE: Returns true if the cursor CONTROL_ACTIONS are valid (e.g. on a touchpad, the touchpad is actually being touched).
//NOTES: When this returns false, the values inside the cursor CONTROL_ACTIONS will be zero.
NATIVE FUNC BOOL IS_USING_CURSOR(CONTROL_TYPE control) = "0xe360d4c4ce76e4bb"
//INFO:
//PARAM NOTES:
//PURPOSE: Sets the mouse cursor position on the PC version.
//NOTES: Returns true if the cursor position was succesfully set (also returns false on platforms not supported).
NATIVE FUNC BOOL SET_CURSOR_POSITION(FLOAT x, FLOAT y) = "0x2969b478ff4db4df"
//INFO:
//PARAM NOTES:
//PURPOSE: Returns true if the the player is playing on a remote play device.
NATIVE FUNC BOOL IS_USING_REMOTE_PLAY(CONTROL_TYPE control) = "0xff31e3ef4ed19ceb"
//INFO:
//PARAM NOTES:
//PURPOSE: Returns true if controls have changed since the last call to this function, this can happen if the user changes their control options,
// switches between FPS and TPS mode, or between gamepad and keyboard/mouse.
NATIVE FUNC BOOL HAVE_CONTROLS_CHANGED(CONTROL_TYPE control) = "0xb1c1e679bd17a4f0"
//INFO:
//PARAM NOTES:
//PURPOSE: Return the INSTRUCTIONAL_BUTTON_NUMBER of a CONTROL_ACTION. ICON_INVALID will be returned on error!
//NOTES: This function is deprecated and will be removed! Use GET_CONTROL_INSTRUCTIONAL_BUTTONS_STRING instead.
NATIVE FUNC INSTRUCTIONAL_BUTTON_NUMBER GET_CONTROL_INSTRUCTIONAL_BUTTON(CONTROL_TYPE control, CONTROL_ACTION action, BOOL allowXOSwap = TRUE) = "0x43366bdb17bb18dc"
//INFO:
//PURPOSE: Return an encoded string of the icon to show of a CONTROL_ACTION. empty string will be returned on error!
NATIVE FUNC STRING GET_CONTROL_INSTRUCTIONAL_BUTTONS_STRING(CONTROL_TYPE control, CONTROL_ACTION action, BOOL allowXOSwap = TRUE) = "0x2018949b2c9fd96a"
//INFO:
//PARAM NOTES:
//PURPOSE: Return the INSTRUCTIONAL_BUTTON_NUMBER of a CONTROL_ACTION_GROUP. ICON_INVALID will be returned on error!
//NOTES: This function is deprecated and will be removed! Use GET_CONTROL_GROUP_INSTRUCTIONAL_BUTTONS_STRING instead.
NATIVE FUNC INSTRUCTIONAL_BUTTON_NUMBER GET_CONTROL_GROUP_INSTRUCTIONAL_BUTTON(CONTROL_TYPE control, CONTROL_ACTION_GROUP actionGroup, BOOL allowXOSwap = TRUE) = "0x4463abaac9f67f70"
//INFO:
//PURPOSE: Return an encoded string of the icon to show of a CONTROL_ACTION. empty string will be returned on error!
NATIVE FUNC STRING GET_CONTROL_GROUP_INSTRUCTIONAL_BUTTONS_STRING(CONTROL_TYPE control, CONTROL_ACTION_GROUP actionGroup, BOOL allowXOSwap = TRUE) = "0x19214818f925d149"
/// Special gamepad icons
//INFO:
// PURPOSE: Returns the TEXT_LABEL_63 that represents the Left Stick Rotate icon.
FUNC STRING GET_ICON_LSTICK_ROTATE_STRING()
STRING label = "b_20"
return label
ENDFUNC
//INFO:
// PURPOSE: Returns the TEXT_LABEL_63 that represents the Right Stick Rotate icon.
FUNC STRING GET_ICON_RSTICK_ROTATE_STRING()
STRING label = "b_29"
return label
ENDFUNC
//INFO:
// PURPOSE: Returns the TEXT_LABEL_63 that represents the Sixaxis Drive icon.
FUNC STRING GET_ICON_SIXAXIS_DRIVE_STRING()
STRING label = "b_40"
return label
ENDFUNC
//INFO:
// PURPOSE: Returns the TEXT_LABEL_63 that represents the Sixaxis Pitch icon.
FUNC STRING GET_ICON_SIXAXIS_PITCH_STRING()
STRING label = "b_41"
return label
ENDFUNC
//INFO:
// PURPOSE: Returns the TEXT_LABEL_63 that represents the Sixaxis Reload icon.
FUNC STRING GET_ICON_SIXAXIS_RELOAD_STRING()
STRING label = "b_42"
return label
ENDFUNC
//INFO:
// PURPOSE: Returns the TEXT_LABEL_63 that represents the Sixaxis Roll icon.
FUNC STRING GET_ICON_SIXAXIS_ROLL_STRING()
STRING label = "b_43"
return label
ENDFUNC
//INFO:
// PURPOSE: Returns the TEXT_LABEL_63 that represents the Spinner icon.
FUNC STRING GET_ICON_SPINNER_STRING()
STRING label = "b_44"
return label
ENDFUNC
//INFO:
//PARAM NOTES:
//PURPOSE: Return true if the control is disabled.
NATIVE FUNC BOOL IS_CONTROL_ENABLED(CONTROL_TYPE control, CONTROL_ACTION action) = "0xf98ff61cd2d3500d"
//INFO:
//PARAM NOTES: Frequency should be less than 256.
// Duration is in milliseconds
// PURPOSE: Causes the given Pad, assigned to a Control, to shake. More info..
NATIVE PROC SET_CONTROL_SHAKE(CONTROL_TYPE control, INT Duration, INT Frequency) = "0xf7a14a1a76b6dd17"
//INFO:
//PARAM NOTES: Frequency should be less than 256.
// Duration is in milliseconds
// PURPOSE: Causes the given Pad, assigned to a Control, to shake its triggers. More info..
NATIVE PROC SET_CONTROL_TRIGGER_SHAKE(CONTROL_TYPE control, INT leftDuration, INT leftFrequency, INT rightDuration, INT rightFrequency) = "0xf8bf168f565017ef"
//INFO:
// PURPOSE: Stops the given Pad, assigned to a Control, from shaking. More info..
NATIVE PROC STOP_CONTROL_SHAKE(CONTROL_TYPE control) = "0xf4ab1adb142fd39d"
//INFO:
// PURPOSE: Suppresses vibrations on a given control's pad when id set to other than -1, clear on -1
// or call CLEAR_CONTROL_SHAKE_SUPPRESSED_ID.
NATIVE PROC SET_CONTROL_SHAKE_SUPPRESSED_ID(CONTROL_TYPE control, INT SupressId) = "0x6120122451823936"
//INFO:
// PURPOSE: Clears a supress id passed to SET_CONTROL_SHAKE_SUPPRESSED_ID.
NATIVE PROC CLEAR_CONTROL_SHAKE_SUPPRESSED_ID(CONTROL_TYPE control) = "0xf3f6c6e90b9afc5d"
//INFO:
//PARAM NOTES:
// PURPOSE: Checks if the gamepad look is inverted.
NATIVE FUNC BOOL IS_LOOK_INVERTED() = "0xc63a09aa9006f776"
//INFO:
//PARAM NOTES:
// PURPOSE: Checks if the mouse y look is inverted.
// NOTES: Will return false for platforms that do not support the mouse. This does not mean the player is playing with a
// mouse, they could be playing on a gamepad.
NATIVE FUNC BOOL IS_MOUSE_LOOK_INVERTED() = "0x2ed671f67654fd28"
//INFO:
//PARAM NOTES:
// PURPOSE: Returns current player aim state (sometimes GET_PROFILE_SETTINGS doesn't return the correct one if not saved)
// NOTES: Will return free aim when the player is playing on the keyboard and mouse.
NATIVE FUNC INT GET_LOCAL_PLAYER_AIM_STATE() = "0x6f8ba9ef200e4310"
//INFO:
//PARAM NOTES:
// PURPOSE: Returns current player aim state (sometimes GET_PROFILE_SETTINGS doesn't return the correct one if not saved)
// NOTES: Will return the gamepad setting even if the player is playing on the keyboard and mouse.
NATIVE FUNC INT GET_LOCAL_PLAYER_GAMEPAD_AIM_STATE() = "0x4d3f908dba3908e4"
//INFO:
//PARAM NOTES:
// PURPOSE: Returns whether the player has the alternate handbrake profile option set (switching INPUT_VEH_HANDBRAKE and INPUT_VEH_DUCK)
NATIVE FUNC BOOL GET_IS_USING_ALTERNATE_HANDBRAKE() = "0xb6b1a58467f8a268"
//INFO:
//PARAM NOTES:
// PURPOSE: Returns whether the player has the alternate driveby profile option set
NATIVE FUNC BOOL GET_IS_USING_ALTERNATE_DRIVEBY() = "0xc77fd7c62139abaa"
//INFO:
//PARAM NOTES:
// PURPOSE: Returns if player can move while zoomed (sometimes GET_PROFILE_SETTINGS doesn't return the correct one if not saved)
NATIVE FUNC BOOL GET_ALLOW_MOVEMENT_WHILE_ZOOMED() = "0x78711a80544b2439"
//INFO:
//PARAM NOTES:
// PURPOSE: Set a flag to true so that pad shake is on when the controller is disabled.
NATIVE PROC SET_PLAYERPAD_SHAKES_WHEN_CONTROLLER_DISABLED(BOOL bSetPadShakes) = "0x802687ca71bc8666"
//INFO:
//PARAM NOTES:
// PURPOSE: returns whether standard (true) or classic (false) pad control.
NATIVE FUNC BOOL IS_USING_STANDARD_CONTROLS() = "0xb36d171806697a81"
//~> Motion control commands <~
//INFO:
//PARAM NOTES:
// PURPOSE: Returns True/false if motion controls are enabled / disabled.
NATIVE FUNC BOOL GET_PAD_PITCH_ROLL(PAD_NUMBER PadNumber, FLOAT &pitch, FLOAT &roll) = "0xeae8ff32a35b6797"
//INFO:
//PARAM NOTES:
// PURPOSE: Returns true/false if motion controls are enabled / disabled.
NATIVE FUNC BOOL HAS_RELOADED_WITH_MOTION_CONTROL(PAD_NUMBER PadNumber, BOOL &bHasReloaded) = "0xcabdedf70abe69db"
//INFO:
//PARAM NOTES:
// PURPOSE:Force all profile settings to do with motion control to be on or off.
NATIVE PROC SET_ALL_MOTION_CONTROL_PREFERENCES(BOOL bPreferencesActive) = "0xec16f157ca752992"
//INFO:
//PARAM NOTES:
// PURPOSE: Use to see if the user has a certain motion control preference turned on / off in the frontend
// RETURN: Will always return false on 360, or if no motion controller exists on ps3. More info..
NATIVE FUNC BOOL GET_MOTION_CONTROL_PREFERENCE(MOTION_PREFERENCE prefType) = "0x8e4183c5edc441b3"
//INFO:
//PARAM NOTES:
// PURPOSE: Sets an input to recieve exclusive input for 1 frame only. This will disable all inputs that
// are associated to the same buttons except for this one.
NATIVE PROC SET_INPUT_EXCLUSIVE (CONTROL_TYPE control, CONTROL_ACTION action) = "0x07899aaa5d680386"
//INFO:
//PARAM NOTES: If disableRelatedActions is true, related inputs will also be disabled. For example, disabling INPUT_SELECT_WEAPON
// will also disable INPUT_SELECT_WEAPON_UNARMED (and others) so no weapon can be selected.
// PURPOSE:
// RETURN: Disables the given action for 1 frame.
NATIVE PROC DISABLE_CONTROL_ACTION (CONTROL_TYPE control, CONTROL_ACTION action, BOOL disableRelatedActions = TRUE) = "0x7653d561c9574763"
//INFO:
//PARAM NOTES: If enableRelatedActions is true, related inputs will also be enabled. For example, enabling INPUT_SELECT_WEAPON
// will also enable INPUT_SELECT_WEAPON_UNARMED (and others) so the weapon can be selected by the other means.
// PURPOSE:
// RETURN: Enables the given action for 1 frame.
NATIVE PROC ENABLE_CONTROL_ACTION (CONTROL_TYPE control, CONTROL_ACTION action, BOOL enableRelatedActions = TRUE) = "0x5089dd830fa61d71"
//INFO:
//PARAM NOTES:
// PURPOSE: Disables all the inputs for a player control.
NATIVE PROC DISABLE_ALL_CONTROL_ACTIONS (CONTROL_TYPE control) = "0x58699da34f83b510"
//INFO:
//PARAM NOTES:
// PURPOSE: Enables all the inputs for a player control.
NATIVE PROC ENABLE_ALL_CONTROL_ACTIONS (CONTROL_TYPE control) = "0xa308468b6494bc8b"
//INFO:
//PARAM NOTES:
// PURPOSE: Initialises the dynamic scripted control schemes system and loads the specified sceme.
// NOTES: SHUTDOWN_PC_SCRIPTED_CONTROLS() must be called when finished.
NATIVE FUNC BOOL INIT_PC_SCRIPTED_CONTROLS (STRING SchemeName) = "0x9e4a185a00c358e1"
//INFO:
//PARAM NOTES:
// PURPOSE: Switched to a different PC dynamic scripted control scheme once the dynamic control system is already initialised.
// NOTES: This should only be called to switch to another control sceme when the dynamic system is loaded.
NATIVE FUNC BOOL SWITCH_PC_SCRIPTED_CONTROLS (STRING SchemeName) = "0x870fdfbb89c863ca"
//INFO:
//PARAM NOTES:
// PURPOSE: Shuts-down PC dynamic scripted control schemes.
NATIVE PROC SHUTDOWN_PC_SCRIPTED_CONTROLS () = "0x027f803a942fb98f"
//INFO:
//PARAM NOTES:
// PURPOSE: Switches INPUT_SCRIPT_* controls to use alternative layouts.
// NOTES: This must be called every frame or else the controls revert back to defaults. The INPUT_SCRIPT_* controls mimic a PS3/Xbox
// gamepad, however, the user may change the control layout in the settings. Some mission/script might need to know this.
// For example, if the INPUT_SCRIPT_* controls are being used to control movement and the camera, then the script need to know
// if the player has selected Southpaw (sticks are swapped) mode. Calling ALLOW_ALTERNATIVE_SCRIPT_CONTROLS_LAYOUT() every frame
// will calculate this for you so you can carry on using the INPUT_SCRIPT_* controls as if they were the standard layout when infact
// they are actually altered to reflect the user preferences.
// Some scripts/mission will *NOT* want this, for example, Yoga asks the user to move specific sticks. In this case, not calling
// ALLOW_ALTERNATIVE_SCRIPT_CONTROLS_LAYOUT() will default to use the standard gamepad layout no matter what the user has set their
// settings to.
NATIVE PROC ALLOW_ALTERNATIVE_SCRIPT_CONTROLS_LAYOUT (CONTROL_TYPE control) = "0x7bc5e5a5ff7f278f"
#IF IS_DEBUG_BUILD
//INFO:
//PARAM NOTES:
// PURPOSE:
// RETURN: Disables the given button for 1 frame.
NATIVE PROC DISABLE_CONTROL_BUTTON (CONTROL_TYPE control, PAD_BUTTON_NUMBER ButtonNumber) = "0x2a51b0600c959ac9"
#ENDIF // IS_DEBUG_BUILD
#IF IS_DEBUG_BUILD
ENUM KEY_NUMBER
// this was chosen to match Windows virtual key layout layout
// the KEY_ values are system-independent
KEY_BACK = 8, // 0x08, // Backspace. -- These key-code correspond to the virtual key codes (VK_*) in windows.
KEY_TAB = 9, // 0x09,
KEY_CLEAR = 12, // 0x0C,
KEY_RETURN = 13, // 0x0D, // 'Enter' on main keyboard.
KEY_PAUSE = 19, // 0x13, // Pause.
KEY_CAPITAL = 20, // 0x14,
KEY_KANA = 21, // 0x15, // (Japanese keyboard).
KEY_JUNJA = 23, // 0x17,
KEY_FINAL = 24, // 0x18,
KEY_KANJI = 25, // 0x19, // (Japanese keyboard).
KEY_ESCAPE = 27, // 0x1B,
KEY_CONVERT = 28, // 0x1C, // (Japanese keyboard).
KEY_NOCONVERT = 29, // 0x1D, // (Japanese keyboard).
KEY_ACCEPT = 30, // 0x1E,
KEY_MODECHANGE = 31, // 0x1F,
KEY_SPACE = 32, // 0x20,
KEY_PAGEUP = 33, // 0x21, // PgUp.
KEY_PRIOR = 33, // 0x21, // PgUp on arrow keypad.
KEY_PAGEDOWN = 34, // 0x22, // PgDn.
KEY_NEXT = 34, // 0x22, // PgDn on arrow keypad.
KEY_END = 35, // 0x23, // End on arrow keypad.
KEY_HOME = 36, // 0x24, // Home on arrow keypad.
KEY_LEFT = 37, // 0x25, // LeftArrow on arrow keypad.
KEY_UP = 38, // 0x26, // UpArrow on arrow keypad.
KEY_RIGHT = 39, // 0x27, // RightArrow on arrow keypad.
KEY_DOWN = 40, // 0x28, // DownArrow on arrow keypad.
KEY_SELECT = 41, // 0x29,
KEY_PRINT = 42, // 0x2A,
KEY_SYSRQ = 19, // 0x2A, // SysRq. NOTE: Here for legacy support, use KEY_PRINT instead.
KEY_EXE = 43, // 0x2B, // Execute.
KEY_SNAPSHOT = 44, // 0x2C,
KEY_INSERT = 45, // 0x2D, // Insert on arrow keypad.
KEY_DELETE = 46, // 0x2E, // Delete on arrow keypad.
KEY_HELP = 47, // 0x2F,
KEY_0 = 48, // 0x30,
KEY_1 = 49, // 0x31,
KEY_2 = 50, // 0x32,
KEY_3 = 51, // 0x33,
KEY_4 = 52, // 0x34,
KEY_5 = 53, // 0x35,
KEY_6 = 54, // 0x36,
KEY_7 = 55, // 0x37,
KEY_8 = 56, // 0x38,
KEY_9 = 57, // 0x39,
KEY_A = 65, // 0x41,
KEY_B = 66, // 0x42,
KEY_C = 67, // 0x43,
KEY_D = 68, // 0x44,
KEY_E = 69, // 0x45,
KEY_F = 70, // 0x46,
KEY_G = 71, // 0x47,
KEY_H = 72, // 0x48,
KEY_I = 73, // 0x49,
KEY_J = 74, // 0x4A,
KEY_K = 75, // 0x4B,
KEY_L = 76, // 0x4C,
KEY_M = 77, // 0x4D,
KEY_N = 78, // 0x4E,
KEY_O = 79, // 0x4F,
KEY_P = 80, // 0x50,
KEY_Q = 81, // 0x51,
KEY_R = 82, // 0x52,
KEY_S = 83, // 0x53,
KEY_T = 84, // 0x54,
KEY_U = 85, // 0x55,
KEY_V = 86, // 0x56,
KEY_W = 87, // 0x57,
KEY_X = 88, // 0x58,
KEY_Y = 89, // 0x59,
KEY_Z = 90, // 0x5A,
KEY_LWIN = 91, // 0x5B, // Left Windows key.
KEY_RWIN = 92, // 0x5C, // Right Windows key.
KEY_APPS = 93, // 0x5D, // AppMenu key.
KEY_SLEEP = 95, // 0x5F, // System Sleep.
KEY_NUMPAD0 = 96, // 0x60,
KEY_NUMPAD1 = 97, // 0x61,
KEY_NUMPAD2 = 98, // 0x62,
KEY_NUMPAD3 = 99, // 0x63,
KEY_NUMPAD4 = 100, // 0x64,
KEY_NUMPAD5 = 101, // 0x65,
KEY_NUMPAD6 = 102, // 0x66,
KEY_NUMPAD7 = 103, // 0x67,
KEY_NUMPAD8 = 104, // 0x68,
KEY_NUMPAD9 = 105, // 0x69,
KEY_MULTIPLY = 106, // 0x6A, // '*' on numeric keypad.
KEY_ADD = 107, // 0x6B, // '+' on numeric keypad.
KEY_SEPARATOR = 108, // 0x6C,
KEY_SUBTRACT = 109, // 0x6D, // '-' on numeric keypad.
KEY_DECIMAL = 110, // 0x6E, // '.' on numeric keypad.
KEY_DIVIDE = 111, // 0x6F, // '/' on numeric keypad.
KEY_F1 = 112, // 0x70,
KEY_F2 = 113, // 0x71,
KEY_F3 = 114, // 0x72,
KEY_F4 = 115, // 0x73,
KEY_F5 = 116, // 0x74,
KEY_F6 = 117, // 0x75,
KEY_F7 = 118, // 0x76,
KEY_F8 = 119, // 0x77,
KEY_F9 = 120, // 0x78,
KEY_F10 = 121, // 0x79,
KEY_F11 = 122, // 0x7A,
KEY_F12 = 123, // 0x7B,
KEY_F13 = 124, // 0x7C, // (NEC PC98).
KEY_F14 = 125, // 0x7D, // (NEC PC98).
KEY_F15 = 126, // 0x7E, // (NEC PC98).
KEY_F16 = 127, // 0x7F,
KEY_F17 = 128, // 0x80,
KEY_F18 = 129, // 0x81,
KEY_F19 = 130, // 0x82,
KEY_F20 = 131, // 0x83,
KEY_F21 = 132, // 0x84,
KEY_F22 = 133, // 0x85,
KEY_F23 = 134, // 0x86,
KEY_F24 = 135, // 0x87,
KEY_NUMLOCK = 144, // 0x90,
KEY_SCROLL = 145, // 0x91, // Scroll Lock.
KEY_NUMPADEQUALS = 146, // 0x92, // '=' on numeric keypad (NEC PC98).
key_FJ_JISHO = 146, // 0x92, // Fujitsu/OASYS 'Dictionary' Key.
key_FJ_MASSHOU = 147, // 0x93, // Fujitsu/OASYS 'Unregister word' Key.
key_FJ_TOUROKU = 148, // 0x94, // Fujitsu/OASYS 'Register word' Key.
key_FJ_LOYA = 149, // 0x95, // Fujitsu/OASYS 'Left OYAYUBI' Key.
key_FJ_ROYA = 150, // 0x96, // Fujitsu/OASYS 'Right OYAYUBI' Key.
KEY_LSHIFT = 160, // 0xA0,
KEY_RSHIFT = 161, // 0xA1,
KEY_LCONTROL = 162, // 0xA2,
KEY_RCONTROL = 163, // 0xA3,
KEY_LMENU = 164, // 0xA4, // Left Alt.
KEY_RMENU = 165, // 0xA5, // Right Alt.
KEY_WEBBACK = 166, // 0xA6, // Web Back.
KEY_WEBFORWARD = 167, // 0xA7, // Web Forward.
KEY_WEBREFRESH = 168, // 0xA8, // Web Refresh.
KEY_WEBSTOP = 169, // 0xA9, // Web Stop.
KEY_WEBSEARCH = 170, // 0xAA, // Web Search.
KEY_WEBFAVORITES = 171, // 0xAB, // Web Favorites.
KEY_WEBHOME = 172, // 0xAC, // Web home.
KEY_MUTE = 173, // 0xAD, // Mute.
KEY_VOLUMEDOWN = 174, // 0xAE, // Volume '-'.
KEY_VOLUMEUP = 175, // 0xAF, // Volume '+'.
KEY_NEXTTRACK = 176, // 0xB0, // Next Track.
KEY_PREVTRACK = 177, // 0xB1, // Previous Track (KEY_CIRCUMFLEX on Japanese keyboard).
KEY_MEDIASTOP = 178, // 0xB2, // Media Stop.
KEY_PLAYPAUSE = 179, // 0xB3, // Play / Pause.
KEY_MAIL = 180, // 0xB4, // Mail.
KEY_MEDIASELECT = 181, // 0xB5, // Media Select.
KEY_LAUNCHAPP1 = 182, // 0xB6,
KEY_LAUNCHAPP2 = 183, // 0xB7,
KEY_SEMICOLON = 186, // 0xBA, // Actually eq. VK_OEM_1 that might not be ;: on international keyboards.
KEY_OEM_1 = 186, // 0xBA,
KEY_PLUS = 187, // 0xBB, // Actually eq. VK_OEM_PLUS that might not be = on international keyboards.
KEY_EQUALS = 187, // 0xBB, // LEGACY, DO NOT USE. Use KEY_PLUS as it may not the equals key on interational keyboards.
KEY_COMMA = 188, // 0xBC,
KEY_MINUS = 189, // 0xBD, // '-' on main keyboard.
KEY_PERIOD = 190, // 0xBE, // '.' on main keyboard.
KEY_SLASH = 191, // 0xBF, // Actually eq. VK_OEM_2 that might not be /? on international keyboards.
KEY_OEM_2 = 191, // 0xBF,
KEY_TILDE = 192, // 0xC0, // Actually eq. VK_OEM_3 that might not be ~ on international (non-US) keyboards.
KEY_OEM_3 = 192, // 0xC0,
KEY_LBRACKET = 219, // 0xDB, // Actually eq. VK_OEM_4 that might not be [{ on international keyboards.
KEY_OEM_4 = 219, // 0xDB,
KEY_BACKSLASH = 220, // 0xDC, // Actually eq. VK_OEM_5 that might not be \| on international keyboards.
KEY_OEM_5 = 220, // 0xDC,
KEY_RBRACKET = 221, // 0xDD, // Actually eq. VK_OEM_6 that might not be ]} on international keyboards.
KEY_OEM_6 = 221, // 0xDD,
KEY_APOSTROPHE = 222, // 0xDE, // Actually eq. VK_OEM_7 that might not be '" on international keyboards.
KEY_OEM_7 = 222, // 0xDE,
KEY_GRAVE = 223, // 0xDF, // Actually eq. VK_OEM_8 that might not be ` on international (non-UK) keyboards.
KEY_OEM_8 = 223, // 0xDF,
KEY_AX = 225, // 0xE1, // (Japan AX).
KEY_OEM_102 = 226, // 0xE2, // < < | on UK/Germany keyboards.
KEY_ICO_HELP = 227, // 0xE3, // Help on ICO.
KEY_ICO_00 = 228, // 0xE4, // 00 on ICO
KEY_PROCESSKEY = 229, // 0xE5,
KEY_ICO_CLEAR = 230, // 0xE6,
KEY_PACKET = 231, // 0xE7,
KEY_NUMPADENTER = 253, // 0xFD, // Enter on numeric keypad.
KEY_CHATPAD_GREEN_SHIFT = 254, // 0xFE, // Xbox 360 chatpad green shift.
KEY_CHATPAD_ORANGE_SHIFT = 255 // 0xFF,
ENDENUM
ENUM MOUSE_BUTTON
MB_LEFT_BTN = 1,
MB_RIGHT_BTN = 2
ENDENUM
// Has to match with enum at the top of keyboard.h
ENUM KEYBOARD_MODIFIER
KEYBOARD_MODIFIER_NONE = 0,
KEYBOARD_MODIFIER_SHIFT = 13,
KEYBOARD_MODIFIER_CTRL = 14,
KEYBOARD_MODIFIER_ALT = 15,
KEYBOARD_MODIFIER_CTRL_SHIFT = 17
ENDENUM
//INFO:
//PARAM NOTES:
//PURPOSE: Checks for keys in Level Design keyboard mode.
NATIVE FUNC BOOL IS_DEBUG_KEY_PRESSED(KEY_NUMBER KeyNumber, KEYBOARD_MODIFIER KeyboardModifier, STRING pDescriptionOfUse) = "0x70cea47cea5148b2"
//INFO:
//PARAM NOTES:
//PURPOSE: Checks for keys in Level Design keyboard mode.
NATIVE FUNC BOOL IS_DEBUG_KEY_RELEASED(KEY_NUMBER KeyNumber, KEYBOARD_MODIFIER KeyboardModifier, STRING pDescriptionOfUse) = "0x9283c20d88f9aa74"
//INFO:
//PARAM NOTES:
//PURPOSE: Checks for keys in Level Design keyboard mode.
NATIVE FUNC BOOL IS_DEBUG_KEY_JUST_PRESSED(KEY_NUMBER KeyNumber, KEYBOARD_MODIFIER KeyboardModifier, STRING pDescriptionOfUse) = "0x765fbb5f50ea1ba4"
//INFO:
//PARAM NOTES:
//PURPOSE: Checks for keys in Level Design keyboard mode.
NATIVE FUNC BOOL IS_DEBUG_KEY_JUST_RELEASED(KEY_NUMBER KeyNumber, KEYBOARD_MODIFIER KeyboardModifier, STRING pDescriptionOfUse) = "0xea3a04fc4ef2369a"
//INFO:
//PARAM NOTES:
//PURPOSE: Checks for keys in Level Design keyboard mode.
NATIVE FUNC BOOL IS_KEYBOARD_KEY_PRESSED(KEY_NUMBER KeyNumber) = "0x5c5e9e56793fe873"
//INFO:
//PARAM NOTES:
//PURPOSE: Checks for keys in Level Design keyboard mode.
NATIVE FUNC BOOL IS_KEYBOARD_KEY_RELEASED(KEY_NUMBER KeyNumber) = "0x54513f1f06e805b9"
//INFO:
//PARAM NOTES:
//PURPOSE: Checks for keys in Level Design keyboard mode
NATIVE FUNC BOOL IS_KEYBOARD_KEY_JUST_PRESSED(KEY_NUMBER KeyNumber) = "0xd8a25bbf7491d032"
//INFO:
//PARAM NOTES:
//PURPOSE: Checks for keys in Level Design keyboard mode
NATIVE FUNC BOOL IS_KEYBOARD_KEY_JUST_RELEASED(KEY_NUMBER KeyNumber) = "0x1c31a69e6cc1e85f"
//INFO:
//PARAM NOTES:
//PURPOSE: Checks for keys in Game keyboard mode
NATIVE FUNC BOOL IS_GAME_KEYBOARD_KEY_PRESSED(KEY_NUMBER KeyNumber) = "0x5985a1aa8005975a"
//INFO:
//PARAM NOTES:
//PURPOSE: Checks for keys in Game keyboard mode
NATIVE FUNC BOOL IS_GAME_KEYBOARD_KEY_RELEASED(KEY_NUMBER KeyNumber) = "0x9e122ff04ae5d18d"
//INFO:
//PARAM NOTES:
//
//PURPOSE: Checks for keys in Game keyboard mode
NATIVE FUNC BOOL IS_GAME_KEYBOARD_KEY_JUST_PRESSED(KEY_NUMBER KeyNumber) = "0xc956318cc1099f68"
//INFO:
//PARAM NOTES:
//
//PURPOSE: Checks for keys in Game keyboard mode
NATIVE FUNC BOOL IS_GAME_KEYBOARD_KEY_JUST_RELEASED(KEY_NUMBER KeyNumber) = "0x3665b5dfbe67b932"
//INFO:
//PARAM NOTES:
//PURPOSE: Fakes a keypress. The next frame the IS_..._KEY_PRESSED etc functions will return this key has been pressed
NATIVE PROC FAKE_KEY_PRESS(KEY_NUMBER KeyNumber) = "0x8fc2e3197963de0a"
ENUM KEYBOARD_MODE
KEYBOARD_MODE_DEBUG = 0, // standard
KEYBOARD_MODE_GAME, // game/script
KEYBOARD_MODE_MARKETING // marketing tools
ENDENUM
NATIVE FUNC KEYBOARD_MODE GET_KEYBOARD_MODE() = "0x165be0f2a9685a34"
NATIVE PROC SET_KEYBOARD_MODE(KEYBOARD_MODE NewKeyboardMode) = "0xbb6490cf594af527"
//INFO:
//PARAM NOTES:
// PURPOSE:
// RETURN: Gets the x,y position of the mouse pointer on the screen. Starting top left 0.0 to bottom right 1.0
NATIVE PROC GET_MOUSE_POSITION (float &X, float &Y ) = "0x5a21367565868156"
//INFO:
//PARAM NOTES:
// PURPOSE:
// RETURN: Checks if the mouse button has just been pressed that frame
NATIVE FUNC BOOL IS_MOUSE_BUTTON_JUST_PRESSED (MOUSE_BUTTON BTN) = "0x4b89e34427b3875c"
//INFO:
//PARAM NOTES:
// PURPOSE:
// RETURN: Checks if the mouse button has just been released that frame
NATIVE FUNC BOOL IS_MOUSE_BUTTON_JUST_RELEASED (MOUSE_BUTTON BTN) = "0x4474cdf81869ab92"
//INFO:
//PARAM NOTES:
// PURPOSE:
// RETURN: Checks if the mouse button is currently pressed
NATIVE FUNC BOOL IS_MOUSE_BUTTON_PRESSED (MOUSE_BUTTON BTN) = "0xa9eba80bd0e8cf96"
//INFO:
//PARAM NOTES:
// PURPOSE:
// RETURN: Checks if the mouse button is currently released
NATIVE FUNC BOOL IS_MOUSE_BUTTON_RELEASED (MOUSE_BUTTON BTN) = "0x4ecabb4d295ea77b"
//INFO:
//PARAM NOTES:
// PURPOSE:
// RETURN: Returns if a companion app (Smartglass/Playstation app) is connected
NATIVE FUNC BOOL COMPANION_IS_DEVICE_CONNECTED () = "0x012fe1d3a9ed3f8b"
#ENDIF // IS_DEBUG_BUILD