/*************************************************************************/ /* global_constants.cpp */ /*************************************************************************/ /* This file is part of: */ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ /* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md) */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ /* "Software"), to deal in the Software without restriction, including */ /* without limitation the rights to use, copy, modify, merge, publish, */ /* distribute, sublicense, and/or sell copies of the Software, and to */ /* permit persons to whom the Software is furnished to do so, subject to */ /* the following conditions: */ /* */ /* The above copyright notice and this permission notice shall be */ /* included in all copies or substantial portions of the Software. */ /* */ /* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ /* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ /* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ /* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ /* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ /* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "global_constants.h" #include "object.h" #include "os/keyboard.h" #include "variant.h" struct _GlobalConstant { const char *name; int value; }; #define BIND_GLOBAL_CONSTANT(m_constant) \ { #m_constant, m_constant } static _GlobalConstant _global_constants[] = { //{ KEY_BACKSPACE, VK_BACK },// (0x08) // backspace BIND_GLOBAL_CONSTANT(MARGIN_LEFT), BIND_GLOBAL_CONSTANT(MARGIN_TOP), BIND_GLOBAL_CONSTANT(MARGIN_RIGHT), BIND_GLOBAL_CONSTANT(MARGIN_BOTTOM), BIND_GLOBAL_CONSTANT(VERTICAL), BIND_GLOBAL_CONSTANT(HORIZONTAL), BIND_GLOBAL_CONSTANT(HALIGN_LEFT), BIND_GLOBAL_CONSTANT(HALIGN_CENTER), BIND_GLOBAL_CONSTANT(HALIGN_RIGHT), BIND_GLOBAL_CONSTANT(VALIGN_TOP), BIND_GLOBAL_CONSTANT(VALIGN_CENTER), BIND_GLOBAL_CONSTANT(VALIGN_BOTTOM), // hueg list of keys BIND_GLOBAL_CONSTANT(SPKEY), BIND_GLOBAL_CONSTANT(KEY_ESCAPE), BIND_GLOBAL_CONSTANT(KEY_TAB), BIND_GLOBAL_CONSTANT(KEY_BACKTAB), BIND_GLOBAL_CONSTANT(KEY_BACKSPACE), BIND_GLOBAL_CONSTANT(KEY_RETURN), BIND_GLOBAL_CONSTANT(KEY_ENTER), BIND_GLOBAL_CONSTANT(KEY_INSERT), BIND_GLOBAL_CONSTANT(KEY_DELETE), BIND_GLOBAL_CONSTANT(KEY_PAUSE), BIND_GLOBAL_CONSTANT(KEY_PRINT), BIND_GLOBAL_CONSTANT(KEY_SYSREQ), BIND_GLOBAL_CONSTANT(KEY_CLEAR), BIND_GLOBAL_CONSTANT(KEY_HOME), BIND_GLOBAL_CONSTANT(KEY_END), BIND_GLOBAL_CONSTANT(KEY_LEFT), BIND_GLOBAL_CONSTANT(KEY_UP), BIND_GLOBAL_CONSTANT(KEY_RIGHT), BIND_GLOBAL_CONSTANT(KEY_DOWN), BIND_GLOBAL_CONSTANT(KEY_PAGEUP), BIND_GLOBAL_CONSTANT(KEY_PAGEDOWN), BIND_GLOBAL_CONSTANT(KEY_SHIFT), BIND_GLOBAL_CONSTANT(KEY_CONTROL), BIND_GLOBAL_CONSTANT(KEY_META), BIND_GLOBAL_CONSTANT(KEY_ALT), BIND_GLOBAL_CONSTANT(KEY_CAPSLOCK), BIND_GLOBAL_CONSTANT(KEY_NUMLOCK), BIND_GLOBAL_CONSTANT(KEY_SCROLLLOCK), BIND_GLOBAL_CONSTANT(KEY_F1), BIND_GLOBAL_CONSTANT(KEY_F2), BIND_GLOBAL_CONSTANT(KEY_F3), BIND_GLOBAL_CONSTANT(KEY_F4), BIND_GLOBAL_CONSTANT(KEY_F5), BIND_GLOBAL_CONSTANT(KEY_F6), BIND_GLOBAL_CONSTANT(KEY_F7), BIND_GLOBAL_CONSTANT(KEY_F8), BIND_GLOBAL_CONSTANT(KEY_F9), BIND_GLOBAL_CONSTANT(KEY_F10), BIND_GLOBAL_CONSTANT(KEY_F11), BIND_GLOBAL_CONSTANT(KEY_F12), BIND_GLOBAL_CONSTANT(KEY_F13), BIND_GLOBAL_CONSTANT(KEY_F14), BIND_GLOBAL_CONSTANT(KEY_F15), BIND_GLOBAL_CONSTANT(KEY_F16), BIND_GLOBAL_CONSTANT(KEY_KP_ENTER), BIND_GLOBAL_CONSTANT(KEY_KP_MULTIPLY), BIND_GLOBAL_CONSTANT(KEY_KP_DIVIDE), BIND_GLOBAL_CONSTANT(KEY_KP_SUBTRACT), BIND_GLOBAL_CONSTANT(KEY_KP_PERIOD), BIND_GLOBAL_CONSTANT(KEY_KP_ADD), BIND_GLOBAL_CONSTANT(KEY_KP_0), BIND_GLOBAL_CONSTANT(KEY_KP_1), BIND_GLOBAL_CONSTANT(KEY_KP_2), BIND_GLOBAL_CONSTANT(KEY_KP_3), BIND_GLOBAL_CONSTANT(KEY_KP_4), BIND_GLOBAL_CONSTANT(KEY_KP_5), BIND_GLOBAL_CONSTANT(KEY_KP_6), BIND_GLOBAL_CONSTANT(KEY_KP_7), BIND_GLOBAL_CONSTANT(KEY_KP_8), BIND_GLOBAL_CONSTANT(KEY_KP_9), BIND_GLOBAL_CONSTANT(KEY_SUPER_L), BIND_GLOBAL_CONSTANT(KEY_SUPER_R), BIND_GLOBAL_CONSTANT(KEY_MENU), BIND_GLOBAL_CONSTANT(KEY_HYPER_L), BIND_GLOBAL_CONSTANT(KEY_HYPER_R), BIND_GLOBAL_CONSTANT(KEY_HELP), BIND_GLOBAL_CONSTANT(KEY_DIRECTION_L), BIND_GLOBAL_CONSTANT(KEY_DIRECTION_R), BIND_GLOBAL_CONSTANT(KEY_BACK), BIND_GLOBAL_CONSTANT(KEY_FORWARD), BIND_GLOBAL_CONSTANT(KEY_STOP), BIND_GLOBAL_CONSTANT(KEY_REFRESH), BIND_GLOBAL_CONSTANT(KEY_VOLUMEDOWN), BIND_GLOBAL_CONSTANT(KEY_VOLUMEMUTE), BIND_GLOBAL_CONSTANT(KEY_VOLUMEUP), BIND_GLOBAL_CONSTANT(KEY_BASSBOOST), BIND_GLOBAL_CONSTANT(KEY_BASSUP), BIND_GLOBAL_CONSTANT(KEY_BASSDOWN), BIND_GLOBAL_CONSTANT(KEY_TREBLEUP), BIND_GLOBAL_CONSTANT(KEY_TREBLEDOWN), BIND_GLOBAL_CONSTANT(KEY_MEDIAPLAY), BIND_GLOBAL_CONSTANT(KEY_MEDIASTOP), BIND_GLOBAL_CONSTANT(KEY_MEDIAPREVIOUS), BIND_GLOBAL_CONSTANT(KEY_MEDIANEXT), BIND_GLOBAL_CONSTANT(KEY_MEDIARECORD), BIND_GLOBAL_CONSTANT(KEY_HOMEPAGE), BIND_GLOBAL_CONSTANT(KEY_FAVORITES), BIND_GLOBAL_CONSTANT(KEY_SEARCH), BIND_GLOBAL_CONSTANT(KEY_STANDBY), BIND_GLOBAL_CONSTANT(KEY_OPENURL), BIND_GLOBAL_CONSTANT(KEY_LAUNCHMAIL), BIND_GLOBAL_CONSTANT(KEY_LAUNCHMEDIA), BIND_GLOBAL_CONSTANT(KEY_LAUNCH0), BIND_GLOBAL_CONSTANT(KEY_LAUNCH1), BIND_GLOBAL_CONSTANT(KEY_LAUNCH2), BIND_GLOBAL_CONSTANT(KEY_LAUNCH3), BIND_GLOBAL_CONSTANT(KEY_LAUNCH4), BIND_GLOBAL_CONSTANT(KEY_LAUNCH5), BIND_GLOBAL_CONSTANT(KEY_LAUNCH6), BIND_GLOBAL_CONSTANT(KEY_LAUNCH7), BIND_GLOBAL_CONSTANT(KEY_LAUNCH8), BIND_GLOBAL_CONSTANT(KEY_LAUNCH9), BIND_GLOBAL_CONSTANT(KEY_LAUNCHA), BIND_GLOBAL_CONSTANT(KEY_LAUNCHB), BIND_GLOBAL_CONSTANT(KEY_LAUNCHC), BIND_GLOBAL_CONSTANT(KEY_LAUNCHD), BIND_GLOBAL_CONSTANT(KEY_LAUNCHE), BIND_GLOBAL_CONSTANT(KEY_LAUNCHF), BIND_GLOBAL_CONSTANT(KEY_UNKNOWN), BIND_GLOBAL_CONSTANT(KEY_SPACE), BIND_GLOBAL_CONSTANT(KEY_EXCLAM), BIND_GLOBAL_CONSTANT(KEY_QUOTEDBL), BIND_GLOBAL_CONSTANT(KEY_NUMBERSIGN), BIND_GLOBAL_CONSTANT(KEY_DOLLAR), BIND_GLOBAL_CONSTANT(KEY_PERCENT), BIND_GLOBAL_CONSTANT(KEY_AMPERSAND), BIND_GLOBAL_CONSTANT(KEY_APOSTROPHE), BIND_GLOBAL_CONSTANT(KEY_PARENLEFT), BIND_GLOBAL_CONSTANT(KEY_PARENRIGHT), BIND_GLOBAL_CONSTANT(KEY_ASTERISK), BIND_GLOBAL_CONSTANT(KEY_PLUS), BIND_GLOBAL_CONSTANT(KEY_COMMA), BIND_GLOBAL_CONSTANT(KEY_MINUS), BIND_GLOBAL_CONSTANT(KEY_PERIOD), BIND_GLOBAL_CONSTANT(KEY_SLASH), BIND_GLOBAL_CONSTANT(KEY_0), BIND_GLOBAL_CONSTANT(KEY_1), BIND_GLOBAL_CONSTANT(KEY_2), BIND_GLOBAL_CONSTANT(KEY_3), BIND_GLOBAL_CONSTANT(KEY_4), BIND_GLOBAL_CONSTANT(KEY_5), BIND_GLOBAL_CONSTANT(KEY_6), BIND_GLOBAL_CONSTANT(KEY_7), BIND_GLOBAL_CONSTANT(KEY_8), BIND_GLOBAL_CONSTANT(KEY_9), BIND_GLOBAL_CONSTANT(KEY_COLON), BIND_GLOBAL_CONSTANT(KEY_SEMICOLON), BIND_GLOBAL_CONSTANT(KEY_LESS), BIND_GLOBAL_CONSTANT(KEY_EQUAL), BIND_GLOBAL_CONSTANT(KEY_GREATER), BIND_GLOBAL_CONSTANT(KEY_QUESTION), BIND_GLOBAL_CONSTANT(KEY_AT), BIND_GLOBAL_CONSTANT(KEY_A), BIND_GLOBAL_CONSTANT(KEY_B), BIND_GLOBAL_CONSTANT(KEY_C), BIND_GLOBAL_CONSTANT(KEY_D), BIND_GLOBAL_CONSTANT(KEY_E), BIND_GLOBAL_CONSTANT(KEY_F), BIND_GLOBAL_CONSTANT(KEY_G), BIND_GLOBAL_CONSTANT(KEY_H), BIND_GLOBAL_CONSTANT(KEY_I), BIND_GLOBAL_CONSTANT(KEY_J), BIND_GLOBAL_CONSTANT(KEY_K), BIND_GLOBAL_CONSTANT(KEY_L), BIND_GLOBAL_CONSTANT(KEY_M), BIND_GLOBAL_CONSTANT(KEY_N), BIND_GLOBAL_CONSTANT(KEY_O), BIND_GLOBAL_CONSTANT(KEY_P), BIND_GLOBAL_CONSTANT(KEY_Q), BIND_GLOBAL_CONSTANT(KEY_R), BIND_GLOBAL_CONSTANT(KEY_S), BIND_GLOBAL_CONSTANT(KEY_T), BIND_GLOBAL_CONSTANT(KEY_U), BIND_GLOBAL_CONSTANT(KEY_V), BIND_GLOBAL_CONSTANT(KEY_W), BIND_GLOBAL_CONSTANT(KEY_X), BIND_GLOBAL_CONSTANT(KEY_Y), BIND_GLOBAL_CONSTANT(KEY_Z), BIND_GLOBAL_CONSTANT(KEY_BRACKETLEFT), BIND_GLOBAL_CONSTANT(KEY_BACKSLASH), BIND_GLOBAL_CONSTANT(KEY_BRACKETRIGHT), BIND_GLOBAL_CONSTANT(KEY_ASCIICIRCUM), BIND_GLOBAL_CONSTANT(KEY_UNDERSCORE), BIND_GLOBAL_CONSTANT(KEY_QUOTELEFT), BIND_GLOBAL_CONSTANT(KEY_BRACELEFT), BIND_GLOBAL_CONSTANT(KEY_BAR), BIND_GLOBAL_CONSTANT(KEY_BRACERIGHT), BIND_GLOBAL_CONSTANT(KEY_ASCIITILDE), BIND_GLOBAL_CONSTANT(KEY_NOBREAKSPACE), BIND_GLOBAL_CONSTANT(KEY_EXCLAMDOWN), BIND_GLOBAL_CONSTANT(KEY_CENT), BIND_GLOBAL_CONSTANT(KEY_STERLING), BIND_GLOBAL_CONSTANT(KEY_CURRENCY), BIND_GLOBAL_CONSTANT(KEY_YEN), BIND_GLOBAL_CONSTANT(KEY_BROKENBAR), BIND_GLOBAL_CONSTANT(KEY_SECTION), BIND_GLOBAL_CONSTANT(KEY_DIAERESIS), BIND_GLOBAL_CONSTANT(KEY_COPYRIGHT), BIND_GLOBAL_CONSTANT(KEY_ORDFEMININE), BIND_GLOBAL_CONSTANT(KEY_GUILLEMOTLEFT), BIND_GLOBAL_CONSTANT(KEY_NOTSIGN), BIND_GLOBAL_CONSTANT(KEY_HYPHEN), BIND_GLOBAL_CONSTANT(KEY_REGISTERED), BIND_GLOBAL_CONSTANT(KEY_MACRON), BIND_GLOBAL_CONSTANT(KEY_DEGREE), BIND_GLOBAL_CONSTANT(KEY_PLUSMINUS), BIND_GLOBAL_CONSTANT(KEY_TWOSUPERIOR), BIND_GLOBAL_CONSTANT(KEY_THREESUPERIOR), BIND_GLOBAL_CONSTANT(KEY_ACUTE), BIND_GLOBAL_CONSTANT(KEY_MU), BIND_GLOBAL_CONSTANT(KEY_PARAGRAPH), BIND_GLOBAL_CONSTANT(KEY_PERIODCENTERED), BIND_GLOBAL_CONSTANT(KEY_CEDILLA), BIND_GLOBAL_CONSTANT(KEY_ONESUPERIOR), BIND_GLOBAL_CONSTANT(KEY_MASCULINE), BIND_GLOBAL_CONSTANT(KEY_GUILLEMOTRIGHT), BIND_GLOBAL_CONSTANT(KEY_ONEQUARTER), BIND_GLOBAL_CONSTANT(KEY_ONEHALF), BIND_GLOBAL_CONSTANT(KEY_THREEQUARTERS), BIND_GLOBAL_CONSTANT(KEY_QUESTIONDOWN), BIND_GLOBAL_CONSTANT(KEY_AGRAVE), BIND_GLOBAL_CONSTANT(KEY_AACUTE), BIND_GLOBAL_CONSTANT(KEY_ACIRCUMFLEX), BIND_GLOBAL_CONSTANT(KEY_ATILDE), BIND_GLOBAL_CONSTANT(KEY_ADIAERESIS), BIND_GLOBAL_CONSTANT(KEY_ARING), BIND_GLOBAL_CONSTANT(KEY_AE), BIND_GLOBAL_CONSTANT(KEY_CCEDILLA), BIND_GLOBAL_CONSTANT(KEY_EGRAVE), BIND_GLOBAL_CONSTANT(KEY_EACUTE), BIND_GLOBAL_CONSTANT(KEY_ECIRCUMFLEX), BIND_GLOBAL_CONSTANT(KEY_EDIAERESIS), BIND_GLOBAL_CONSTANT(KEY_IGRAVE), BIND_GLOBAL_CONSTANT(KEY_IACUTE), BIND_GLOBAL_CONSTANT(KEY_ICIRCUMFLEX), BIND_GLOBAL_CONSTANT(KEY_IDIAERESIS), BIND_GLOBAL_CONSTANT(KEY_ETH), BIND_GLOBAL_CONSTANT(KEY_NTILDE), BIND_GLOBAL_CONSTANT(KEY_OGRAVE), BIND_GLOBAL_CONSTANT(KEY_OACUTE), BIND_GLOBAL_CONSTANT(KEY_OCIRCUMFLEX), BIND_GLOBAL_CONSTANT(KEY_OTILDE), BIND_GLOBAL_CONSTANT(KEY_ODIAERESIS), BIND_GLOBAL_CONSTANT(KEY_MULTIPLY), BIND_GLOBAL_CONSTANT(KEY_OOBLIQUE), BIND_GLOBAL_CONSTANT(KEY_UGRAVE), BIND_GLOBAL_CONSTANT(KEY_UACUTE), BIND_GLOBAL_CONSTANT(KEY_UCIRCUMFLEX), BIND_GLOBAL_CONSTANT(KEY_UDIAERESIS), BIND_GLOBAL_CONSTANT(KEY_YACUTE), BIND_GLOBAL_CONSTANT(KEY_THORN), BIND_GLOBAL_CONSTANT(KEY_SSHARP), BIND_GLOBAL_CONSTANT(KEY_DIVISION), BIND_GLOBAL_CONSTANT(KEY_YDIAERESIS), BIND_GLOBAL_CONSTANT(KEY_CODE_MASK), BIND_GLOBAL_CONSTANT(KEY_MODIFIER_MASK), BIND_GLOBAL_CONSTANT(KEY_MASK_SHIFT), BIND_GLOBAL_CONSTANT(KEY_MASK_ALT), BIND_GLOBAL_CONSTANT(KEY_MASK_META), BIND_GLOBAL_CONSTANT(KEY_MASK_CTRL), BIND_GLOBAL_CONSTANT(KEY_MASK_CMD), BIND_GLOBAL_CONSTANT(KEY_MASK_KPAD), BIND_GLOBAL_CONSTANT(KEY_MASK_GROUP_SWITCH), // mouse BIND_GLOBAL_CONSTANT(BUTTON_LEFT), BIND_GLOBAL_CONSTANT(BUTTON_RIGHT), BIND_GLOBAL_CONSTANT(BUTTON_MIDDLE), BIND_GLOBAL_CONSTANT(BUTTON_WHEEL_UP), BIND_GLOBAL_CONSTANT(BUTTON_WHEEL_DOWN), BIND_GLOBAL_CONSTANT(BUTTON_WHEEL_LEFT), BIND_GLOBAL_CONSTANT(BUTTON_WHEEL_RIGHT), BIND_GLOBAL_CONSTANT(BUTTON_MASK_LEFT), BIND_GLOBAL_CONSTANT(BUTTON_MASK_RIGHT), BIND_GLOBAL_CONSTANT(BUTTON_MASK_MIDDLE), //joypads BIND_GLOBAL_CONSTANT(JOY_BUTTON_0), BIND_GLOBAL_CONSTANT(JOY_BUTTON_1), BIND_GLOBAL_CONSTANT(JOY_BUTTON_2), BIND_GLOBAL_CONSTANT(JOY_BUTTON_3), BIND_GLOBAL_CONSTANT(JOY_BUTTON_4), BIND_GLOBAL_CONSTANT(JOY_BUTTON_5), BIND_GLOBAL_CONSTANT(JOY_BUTTON_6), BIND_GLOBAL_CONSTANT(JOY_BUTTON_7), BIND_GLOBAL_CONSTANT(JOY_BUTTON_8), BIND_GLOBAL_CONSTANT(JOY_BUTTON_9), BIND_GLOBAL_CONSTANT(JOY_BUTTON_10), BIND_GLOBAL_CONSTANT(JOY_BUTTON_11), BIND_GLOBAL_CONSTANT(JOY_BUTTON_12), BIND_GLOBAL_CONSTANT(JOY_BUTTON_13), BIND_GLOBAL_CONSTANT(JOY_BUTTON_14), BIND_GLOBAL_CONSTANT(JOY_BUTTON_15), BIND_GLOBAL_CONSTANT(JOY_BUTTON_MAX), BIND_GLOBAL_CONSTANT(JOY_SONY_CIRCLE), BIND_GLOBAL_CONSTANT(JOY_SONY_X), BIND_GLOBAL_CONSTANT(JOY_SONY_SQUARE), BIND_GLOBAL_CONSTANT(JOY_SONY_TRIANGLE), BIND_GLOBAL_CONSTANT(JOY_XBOX_B), BIND_GLOBAL_CONSTANT(JOY_XBOX_A), BIND_GLOBAL_CONSTANT(JOY_XBOX_X), BIND_GLOBAL_CONSTANT(JOY_XBOX_Y), BIND_GLOBAL_CONSTANT(JOY_DS_A), BIND_GLOBAL_CONSTANT(JOY_DS_B), BIND_GLOBAL_CONSTANT(JOY_DS_X), BIND_GLOBAL_CONSTANT(JOY_DS_Y), BIND_GLOBAL_CONSTANT(JOY_SELECT), BIND_GLOBAL_CONSTANT(JOY_START), BIND_GLOBAL_CONSTANT(JOY_DPAD_UP), BIND_GLOBAL_CONSTANT(JOY_DPAD_DOWN), BIND_GLOBAL_CONSTANT(JOY_DPAD_LEFT), BIND_GLOBAL_CONSTANT(JOY_DPAD_RIGHT), BIND_GLOBAL_CONSTANT(JOY_L), BIND_GLOBAL_CONSTANT(JOY_L2), BIND_GLOBAL_CONSTANT(JOY_L3), BIND_GLOBAL_CONSTANT(JOY_R), BIND_GLOBAL_CONSTANT(JOY_R2), BIND_GLOBAL_CONSTANT(JOY_R3), BIND_GLOBAL_CONSTANT(JOY_AXIS_0), BIND_GLOBAL_CONSTANT(JOY_AXIS_1), BIND_GLOBAL_CONSTANT(JOY_AXIS_2), BIND_GLOBAL_CONSTANT(JOY_AXIS_3), BIND_GLOBAL_CONSTANT(JOY_AXIS_4), BIND_GLOBAL_CONSTANT(JOY_AXIS_5), BIND_GLOBAL_CONSTANT(JOY_AXIS_6), BIND_GLOBAL_CONSTANT(JOY_AXIS_7), BIND_GLOBAL_CONSTANT(JOY_AXIS_MAX), BIND_GLOBAL_CONSTANT(JOY_ANALOG_LX), BIND_GLOBAL_CONSTANT(JOY_ANALOG_LY), BIND_GLOBAL_CONSTANT(JOY_ANALOG_RX), BIND_GLOBAL_CONSTANT(JOY_ANALOG_RY), BIND_GLOBAL_CONSTANT(JOY_ANALOG_L2), BIND_GLOBAL_CONSTANT(JOY_ANALOG_R2), // error list BIND_GLOBAL_CONSTANT(OK), BIND_GLOBAL_CONSTANT(FAILED), ///< Generic fail error BIND_GLOBAL_CONSTANT(ERR_UNAVAILABLE), ///< What is requested is unsupported/unavailable BIND_GLOBAL_CONSTANT(ERR_UNCONFIGURED), ///< The object being used hasn't been properly set up yet BIND_GLOBAL_CONSTANT(ERR_UNAUTHORIZED), ///< Missing credentials for requested resource BIND_GLOBAL_CONSTANT(ERR_PARAMETER_RANGE_ERROR), ///< Parameter given out of range BIND_GLOBAL_CONSTANT(ERR_OUT_OF_MEMORY), ///< Out of memory BIND_GLOBAL_CONSTANT(ERR_FILE_NOT_FOUND), BIND_GLOBAL_CONSTANT(ERR_FILE_BAD_DRIVE), BIND_GLOBAL_CONSTANT(ERR_FILE_BAD_PATH), BIND_GLOBAL_CONSTANT(ERR_FILE_NO_PERMISSION), BIND_GLOBAL_CONSTANT(ERR_FILE_ALREADY_IN_USE), BIND_GLOBAL_CONSTANT(ERR_FILE_CANT_OPEN), BIND_GLOBAL_CONSTANT(ERR_FILE_CANT_WRITE), BIND_GLOBAL_CONSTANT(ERR_FILE_CANT_READ), BIND_GLOBAL_CONSTANT(ERR_FILE_UNRECOGNIZED), BIND_GLOBAL_CONSTANT(ERR_FILE_CORRUPT), BIND_GLOBAL_CONSTANT(ERR_FILE_MISSING_DEPENDENCIES), BIND_GLOBAL_CONSTANT(ERR_FILE_EOF), BIND_GLOBAL_CONSTANT(ERR_CANT_OPEN), ///< Can't open a resource/socket/file BIND_GLOBAL_CONSTANT(ERR_CANT_CREATE), BIND_GLOBAL_CONSTANT(ERR_PARSE_ERROR), BIND_GLOBAL_CONSTANT(ERR_QUERY_FAILED), BIND_GLOBAL_CONSTANT(ERR_ALREADY_IN_USE), BIND_GLOBAL_CONSTANT(ERR_LOCKED), ///< resource is locked BIND_GLOBAL_CONSTANT(ERR_TIMEOUT), BIND_GLOBAL_CONSTANT(ERR_CANT_AQUIRE_RESOURCE), BIND_GLOBAL_CONSTANT(ERR_INVALID_DATA), ///< Data passed is invalid BIND_GLOBAL_CONSTANT(ERR_INVALID_PARAMETER), ///< Parameter passed is invalid BIND_GLOBAL_CONSTANT(ERR_ALREADY_EXISTS), ///< When adding ), item already exists BIND_GLOBAL_CONSTANT(ERR_DOES_NOT_EXIST), ///< When retrieving/erasing ), it item does not exist BIND_GLOBAL_CONSTANT(ERR_DATABASE_CANT_READ), ///< database is full BIND_GLOBAL_CONSTANT(ERR_DATABASE_CANT_WRITE), ///< database is full BIND_GLOBAL_CONSTANT(ERR_COMPILATION_FAILED), BIND_GLOBAL_CONSTANT(ERR_METHOD_NOT_FOUND), BIND_GLOBAL_CONSTANT(ERR_LINK_FAILED), BIND_GLOBAL_CONSTANT(ERR_SCRIPT_FAILED), BIND_GLOBAL_CONSTANT(ERR_CYCLIC_LINK), BIND_GLOBAL_CONSTANT(ERR_BUSY), BIND_GLOBAL_CONSTANT(ERR_HELP), ///< user requested help!! BIND_GLOBAL_CONSTANT(ERR_BUG), ///< a bug in the software certainly happened ), due to a double check failing or unexpected behavior. BIND_GLOBAL_CONSTANT(ERR_WTF), BIND_GLOBAL_CONSTANT(PROPERTY_HINT_NONE), BIND_GLOBAL_CONSTANT(PROPERTY_HINT_RANGE), BIND_GLOBAL_CONSTANT(PROPERTY_HINT_EXP_RANGE), BIND_GLOBAL_CONSTANT(PROPERTY_HINT_ENUM), BIND_GLOBAL_CONSTANT(PROPERTY_HINT_EXP_EASING), BIND_GLOBAL_CONSTANT(PROPERTY_HINT_LENGTH), BIND_GLOBAL_CONSTANT(PROPERTY_HINT_KEY_ACCEL), BIND_GLOBAL_CONSTANT(PROPERTY_HINT_FLAGS), BIND_GLOBAL_CONSTANT(PROPERTY_HINT_LAYERS_2D_RENDER), BIND_GLOBAL_CONSTANT(PROPERTY_HINT_LAYERS_2D_PHYSICS), BIND_GLOBAL_CONSTANT(PROPERTY_HINT_LAYERS_3D_RENDER), BIND_GLOBAL_CONSTANT(PROPERTY_HINT_LAYERS_3D_PHYSICS), BIND_GLOBAL_CONSTANT(PROPERTY_HINT_FILE), BIND_GLOBAL_CONSTANT(PROPERTY_HINT_DIR), BIND_GLOBAL_CONSTANT(PROPERTY_HINT_GLOBAL_FILE), BIND_GLOBAL_CONSTANT(PROPERTY_HINT_GLOBAL_DIR), BIND_GLOBAL_CONSTANT(PROPERTY_HINT_RESOURCE_TYPE), BIND_GLOBAL_CONSTANT(PROPERTY_HINT_MULTILINE_TEXT), BIND_GLOBAL_CONSTANT(PROPERTY_HINT_COLOR_NO_ALPHA), BIND_GLOBAL_CONSTANT(PROPERTY_HINT_IMAGE_COMPRESS_LOSSY), BIND_GLOBAL_CONSTANT(PROPERTY_HINT_IMAGE_COMPRESS_LOSSLESS), BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_STORAGE), BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_EDITOR), BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_NETWORK), BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_EDITOR_HELPER), BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_CHECKABLE), BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_CHECKED), BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_INTERNATIONALIZED), BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_GROUP), BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_CATEGORY), BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_STORE_IF_NONZERO), BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_STORE_IF_NONONE), BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_NO_INSTANCE_STATE), BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_RESTART_IF_CHANGED), BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_SCRIPT_VARIABLE), BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_DEFAULT), BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_DEFAULT_INTL), BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_NOEDITOR), BIND_GLOBAL_CONSTANT(METHOD_FLAG_NORMAL), BIND_GLOBAL_CONSTANT(METHOD_FLAG_EDITOR), BIND_GLOBAL_CONSTANT(METHOD_FLAG_NOSCRIPT), BIND_GLOBAL_CONSTANT(METHOD_FLAG_CONST), BIND_GLOBAL_CONSTANT(METHOD_FLAG_REVERSE), BIND_GLOBAL_CONSTANT(METHOD_FLAG_VIRTUAL), BIND_GLOBAL_CONSTANT(METHOD_FLAG_FROM_SCRIPT), BIND_GLOBAL_CONSTANT(METHOD_FLAGS_DEFAULT), { "TYPE_NIL", Variant::NIL }, { "TYPE_BOOL", Variant::BOOL }, { "TYPE_INT", Variant::INT }, { "TYPE_REAL", Variant::REAL }, { "TYPE_STRING", Variant::STRING }, { "TYPE_VECTOR2", Variant::VECTOR2 }, // 5 { "TYPE_RECT2", Variant::RECT2 }, { "TYPE_VECTOR3", Variant::VECTOR3 }, { "TYPE_TRANSFORM2D", Variant::TRANSFORM2D }, { "TYPE_PLANE", Variant::PLANE }, { "TYPE_QUAT", Variant::QUAT }, // 10 { "TYPE_RECT3", Variant::RECT3 }, { "TYPE_BASIS", Variant::BASIS }, { "TYPE_TRANSFORM", Variant::TRANSFORM }, { "TYPE_COLOR", Variant::COLOR }, { "TYPE_NODE_PATH", Variant::NODE_PATH }, // 15 { "TYPE_RID", Variant::_RID }, { "TYPE_OBJECT", Variant::OBJECT }, { "TYPE_INPUT_EVENT", Variant::INPUT_EVENT }, { "TYPE_DICTIONARY", Variant::DICTIONARY }, { "TYPE_ARRAY", Variant::ARRAY }, // 20 { "TYPE_RAW_ARRAY", Variant::POOL_BYTE_ARRAY }, { "TYPE_INT_ARRAY", Variant::POOL_INT_ARRAY }, { "TYPE_REAL_ARRAY", Variant::POOL_REAL_ARRAY }, { "TYPE_STRING_ARRAY", Variant::POOL_STRING_ARRAY }, { "TYPE_VECTOR2_ARRAY", Variant::POOL_VECTOR2_ARRAY }, // 25 { "TYPE_VECTOR3_ARRAY", Variant::POOL_VECTOR3_ARRAY }, { "TYPE_COLOR_ARRAY", Variant::POOL_COLOR_ARRAY }, { "TYPE_MAX", Variant::VARIANT_MAX }, { NULL, 0 } }; int GlobalConstants::get_global_constant_count() { int i = 0; while (_global_constants[i].name) i++; return i; } const char *GlobalConstants::get_global_constant_name(int p_idx) { return _global_constants[p_idx].name; } int GlobalConstants::get_global_constant_value(int p_idx) { return _global_constants[p_idx].value; }