diff --git a/apps/openmw/mwlua/inputbindings.cpp b/apps/openmw/mwlua/inputbindings.cpp index b528d1b563..303c25f864 100644 --- a/apps/openmw/mwlua/inputbindings.cpp +++ b/apps/openmw/mwlua/inputbindings.cpp @@ -71,210 +71,210 @@ namespace MWLua api["getControlSwitch"] = [input](std::string_view key) { return input->getControlSwitch(key); }; api["setControlSwitch"] = [input](std::string_view key, bool v) { input->toggleControlSwitch(key, v); }; - api["ACTION"] = LuaUtil::makeReadOnly(context.mLua->sol().create_table_with( - "GameMenu", MWInput::A_GameMenu, - "Screenshot", MWInput::A_Screenshot, - "Inventory", MWInput::A_Inventory, - "Console", MWInput::A_Console, + api["ACTION"] = LuaUtil::makeReadOnly(context.mLua->tableFromPairs({ + {"GameMenu", MWInput::A_GameMenu}, + {"Screenshot", MWInput::A_Screenshot}, + {"Inventory", MWInput::A_Inventory}, + {"Console", MWInput::A_Console}, - "MoveLeft", MWInput::A_MoveLeft, - "MoveRight", MWInput::A_MoveRight, - "MoveForward", MWInput::A_MoveForward, - "MoveBackward", MWInput::A_MoveBackward, + {"MoveLeft", MWInput::A_MoveLeft}, + {"MoveRight", MWInput::A_MoveRight}, + {"MoveForward", MWInput::A_MoveForward}, + {"MoveBackward", MWInput::A_MoveBackward}, - "Activate", MWInput::A_Activate, - "Use", MWInput::A_Use, - "Jump", MWInput::A_Jump, - "AutoMove", MWInput::A_AutoMove, - "Rest", MWInput::A_Rest, - "Journal", MWInput::A_Journal, - "Weapon", MWInput::A_Weapon, - "Spell", MWInput::A_Spell, - "Run", MWInput::A_Run, - "CycleSpellLeft", MWInput::A_CycleSpellLeft, - "CycleSpellRight", MWInput::A_CycleSpellRight, - "CycleWeaponLeft", MWInput::A_CycleWeaponLeft, - "CycleWeaponRight", MWInput::A_CycleWeaponRight, - "ToggleSneak", MWInput::A_ToggleSneak, - "AlwaysRun", MWInput::A_AlwaysRun, - "Sneak", MWInput::A_Sneak, + {"Activate", MWInput::A_Activate}, + {"Use", MWInput::A_Use}, + {"Jump", MWInput::A_Jump}, + {"AutoMove", MWInput::A_AutoMove}, + {"Rest", MWInput::A_Rest}, + {"Journal", MWInput::A_Journal}, + {"Weapon", MWInput::A_Weapon}, + {"Spell", MWInput::A_Spell}, + {"Run", MWInput::A_Run}, + {"CycleSpellLeft", MWInput::A_CycleSpellLeft}, + {"CycleSpellRight", MWInput::A_CycleSpellRight}, + {"CycleWeaponLeft", MWInput::A_CycleWeaponLeft}, + {"CycleWeaponRight", MWInput::A_CycleWeaponRight}, + {"ToggleSneak", MWInput::A_ToggleSneak}, + {"AlwaysRun", MWInput::A_AlwaysRun}, + {"Sneak", MWInput::A_Sneak}, - "QuickSave", MWInput::A_QuickSave, - "QuickLoad", MWInput::A_QuickLoad, - "QuickMenu", MWInput::A_QuickMenu, - "ToggleWeapon", MWInput::A_ToggleWeapon, - "ToggleSpell", MWInput::A_ToggleSpell, - "TogglePOV", MWInput::A_TogglePOV, + {"QuickSave", MWInput::A_QuickSave}, + {"QuickLoad", MWInput::A_QuickLoad}, + {"QuickMenu", MWInput::A_QuickMenu}, + {"ToggleWeapon", MWInput::A_ToggleWeapon}, + {"ToggleSpell", MWInput::A_ToggleSpell}, + {"TogglePOV", MWInput::A_TogglePOV}, - "QuickKey1", MWInput::A_QuickKey1, - "QuickKey2", MWInput::A_QuickKey2, - "QuickKey3", MWInput::A_QuickKey3, - "QuickKey4", MWInput::A_QuickKey4, - "QuickKey5", MWInput::A_QuickKey5, - "QuickKey6", MWInput::A_QuickKey6, - "QuickKey7", MWInput::A_QuickKey7, - "QuickKey8", MWInput::A_QuickKey8, - "QuickKey9", MWInput::A_QuickKey9, - "QuickKey10", MWInput::A_QuickKey10, - "QuickKeysMenu", MWInput::A_QuickKeysMenu, + {"QuickKey1", MWInput::A_QuickKey1}, + {"QuickKey2", MWInput::A_QuickKey2}, + {"QuickKey3", MWInput::A_QuickKey3}, + {"QuickKey4", MWInput::A_QuickKey4}, + {"QuickKey5", MWInput::A_QuickKey5}, + {"QuickKey6", MWInput::A_QuickKey6}, + {"QuickKey7", MWInput::A_QuickKey7}, + {"QuickKey8", MWInput::A_QuickKey8}, + {"QuickKey9", MWInput::A_QuickKey9}, + {"QuickKey10", MWInput::A_QuickKey10}, + {"QuickKeysMenu", MWInput::A_QuickKeysMenu}, - "ToggleHUD", MWInput::A_ToggleHUD, - "ToggleDebug", MWInput::A_ToggleDebug, + {"ToggleHUD", MWInput::A_ToggleHUD}, + {"ToggleDebug", MWInput::A_ToggleDebug}, - "ZoomIn", MWInput::A_ZoomIn, - "ZoomOut", MWInput::A_ZoomOut - )); + {"ZoomIn", MWInput::A_ZoomIn}, + {"ZoomOut", MWInput::A_ZoomOut} + })); - api["CONTROL_SWITCH"] = LuaUtil::makeReadOnly(context.mLua->sol().create_table_with( - "Controls", "playercontrols", - "Fighting", "playerfighting", - "Jumping", "playerjumping", - "Looking", "playerlooking", - "Magic", "playermagic", - "ViewMode", "playerviewswitch", - "VanityMode", "vanitymode" - )); + api["CONTROL_SWITCH"] = LuaUtil::makeReadOnly(context.mLua->tableFromPairs({ + {"Controls", "playercontrols"}, + {"Fighting", "playerfighting"}, + {"Jumping", "playerjumping"}, + {"Looking", "playerlooking"}, + {"Magic", "playermagic"}, + {"ViewMode", "playerviewswitch"}, + {"VanityMode", "vanitymode"} + })); - api["CONTROLLER_BUTTON"] = LuaUtil::makeReadOnly(context.mLua->sol().create_table_with( - "A", SDL_CONTROLLER_BUTTON_A, - "B", SDL_CONTROLLER_BUTTON_B, - "X", SDL_CONTROLLER_BUTTON_X, - "Y", SDL_CONTROLLER_BUTTON_Y, - "Back", SDL_CONTROLLER_BUTTON_BACK, - "Guide", SDL_CONTROLLER_BUTTON_GUIDE, - "Start", SDL_CONTROLLER_BUTTON_START, - "LeftStick", SDL_CONTROLLER_BUTTON_LEFTSTICK, - "RightStick", SDL_CONTROLLER_BUTTON_RIGHTSTICK, - "LeftShoulder", SDL_CONTROLLER_BUTTON_LEFTSHOULDER, - "RightShoulder", SDL_CONTROLLER_BUTTON_RIGHTSHOULDER, - "DPadUp", SDL_CONTROLLER_BUTTON_DPAD_UP, - "DPadDown", SDL_CONTROLLER_BUTTON_DPAD_DOWN, - "DPadLeft", SDL_CONTROLLER_BUTTON_DPAD_LEFT, - "DPadRight", SDL_CONTROLLER_BUTTON_DPAD_RIGHT - )); + api["CONTROLLER_BUTTON"] = LuaUtil::makeReadOnly(context.mLua->tableFromPairs({ + {"A", SDL_CONTROLLER_BUTTON_A}, + {"B", SDL_CONTROLLER_BUTTON_B}, + {"X", SDL_CONTROLLER_BUTTON_X}, + {"Y", SDL_CONTROLLER_BUTTON_Y}, + {"Back", SDL_CONTROLLER_BUTTON_BACK}, + {"Guide", SDL_CONTROLLER_BUTTON_GUIDE}, + {"Start", SDL_CONTROLLER_BUTTON_START}, + {"LeftStick", SDL_CONTROLLER_BUTTON_LEFTSTICK}, + {"RightStick", SDL_CONTROLLER_BUTTON_RIGHTSTICK}, + {"LeftShoulder", SDL_CONTROLLER_BUTTON_LEFTSHOULDER}, + {"RightShoulder", SDL_CONTROLLER_BUTTON_RIGHTSHOULDER}, + {"DPadUp", SDL_CONTROLLER_BUTTON_DPAD_UP}, + {"DPadDown", SDL_CONTROLLER_BUTTON_DPAD_DOWN}, + {"DPadLeft", SDL_CONTROLLER_BUTTON_DPAD_LEFT}, + {"DPadRight", SDL_CONTROLLER_BUTTON_DPAD_RIGHT} + })); - api["CONTROLLER_AXIS"] = LuaUtil::makeReadOnly(context.mLua->sol().create_table_with( - "LeftX", SDL_CONTROLLER_AXIS_LEFTX, - "LeftY", SDL_CONTROLLER_AXIS_LEFTY, - "RightX", SDL_CONTROLLER_AXIS_RIGHTX, - "RightY", SDL_CONTROLLER_AXIS_RIGHTY, - "TriggerLeft", SDL_CONTROLLER_AXIS_TRIGGERLEFT, - "TriggerRight", SDL_CONTROLLER_AXIS_TRIGGERRIGHT, + api["CONTROLLER_AXIS"] = LuaUtil::makeReadOnly(context.mLua->tableFromPairs({ + {"LeftX", SDL_CONTROLLER_AXIS_LEFTX}, + {"LeftY", SDL_CONTROLLER_AXIS_LEFTY}, + {"RightX", SDL_CONTROLLER_AXIS_RIGHTX}, + {"RightY", SDL_CONTROLLER_AXIS_RIGHTY}, + {"TriggerLeft", SDL_CONTROLLER_AXIS_TRIGGERLEFT}, + {"TriggerRight", SDL_CONTROLLER_AXIS_TRIGGERRIGHT}, - "LookUpDown", SDL_CONTROLLER_AXIS_MAX + MWInput::A_LookUpDown, - "LookLeftRight", SDL_CONTROLLER_AXIS_MAX + MWInput::A_LookLeftRight, - "MoveForwardBackward", SDL_CONTROLLER_AXIS_MAX + MWInput::A_MoveForwardBackward, - "MoveLeftRight", SDL_CONTROLLER_AXIS_MAX + MWInput::A_MoveLeftRight - )); + {"LookUpDown", SDL_CONTROLLER_AXIS_MAX + MWInput::A_LookUpDown}, + {"LookLeftRight", SDL_CONTROLLER_AXIS_MAX + MWInput::A_LookLeftRight}, + {"MoveForwardBackward", SDL_CONTROLLER_AXIS_MAX + MWInput::A_MoveForwardBackward}, + {"MoveLeftRight", SDL_CONTROLLER_AXIS_MAX + MWInput::A_MoveLeftRight} + })); - api["KEY"] = LuaUtil::makeReadOnly(context.mLua->sol().create_table_with( - "_0", SDL_SCANCODE_0, - "_1", SDL_SCANCODE_1, - "_2", SDL_SCANCODE_2, - "_3", SDL_SCANCODE_3, - "_4", SDL_SCANCODE_4, - "_5", SDL_SCANCODE_5, - "_6", SDL_SCANCODE_6, - "_7", SDL_SCANCODE_7, - "_8", SDL_SCANCODE_8, - "_9", SDL_SCANCODE_9, + api["KEY"] = LuaUtil::makeReadOnly(context.mLua->tableFromPairs({ + {"_0", SDL_SCANCODE_0}, + {"_1", SDL_SCANCODE_1}, + {"_2", SDL_SCANCODE_2}, + {"_3", SDL_SCANCODE_3}, + {"_4", SDL_SCANCODE_4}, + {"_5", SDL_SCANCODE_5}, + {"_6", SDL_SCANCODE_6}, + {"_7", SDL_SCANCODE_7}, + {"_8", SDL_SCANCODE_8}, + {"_9", SDL_SCANCODE_9}, - "NP_0", SDL_SCANCODE_KP_0, - "NP_1", SDL_SCANCODE_KP_1, - "NP_2", SDL_SCANCODE_KP_2, - "NP_3", SDL_SCANCODE_KP_3, - "NP_4", SDL_SCANCODE_KP_4, - "NP_5", SDL_SCANCODE_KP_5, - "NP_6", SDL_SCANCODE_KP_6, - "NP_7", SDL_SCANCODE_KP_7, - "NP_8", SDL_SCANCODE_KP_8, - "NP_9", SDL_SCANCODE_KP_9, - "NP_Divide", SDL_SCANCODE_KP_DIVIDE, - "NP_Enter", SDL_SCANCODE_KP_ENTER, - "NP_Minus", SDL_SCANCODE_KP_MINUS, - "NP_Multiply", SDL_SCANCODE_KP_MULTIPLY, - "NP_Delete", SDL_SCANCODE_KP_PERIOD, - "NP_Plus", SDL_SCANCODE_KP_PLUS, + {"NP_0", SDL_SCANCODE_KP_0}, + {"NP_1", SDL_SCANCODE_KP_1}, + {"NP_2", SDL_SCANCODE_KP_2}, + {"NP_3", SDL_SCANCODE_KP_3}, + {"NP_4", SDL_SCANCODE_KP_4}, + {"NP_5", SDL_SCANCODE_KP_5}, + {"NP_6", SDL_SCANCODE_KP_6}, + {"NP_7", SDL_SCANCODE_KP_7}, + {"NP_8", SDL_SCANCODE_KP_8}, + {"NP_9", SDL_SCANCODE_KP_9}, + {"NP_Divide", SDL_SCANCODE_KP_DIVIDE}, + {"NP_Enter", SDL_SCANCODE_KP_ENTER}, + {"NP_Minus", SDL_SCANCODE_KP_MINUS}, + {"NP_Multiply", SDL_SCANCODE_KP_MULTIPLY}, + {"NP_Delete", SDL_SCANCODE_KP_PERIOD}, + {"NP_Plus", SDL_SCANCODE_KP_PLUS}, - "F1", SDL_SCANCODE_F1, - "F2", SDL_SCANCODE_F2, - "F3", SDL_SCANCODE_F3, - "F4", SDL_SCANCODE_F4, - "F5", SDL_SCANCODE_F5, - "F6", SDL_SCANCODE_F6, - "F7", SDL_SCANCODE_F7, - "F8", SDL_SCANCODE_F8, - "F9", SDL_SCANCODE_F9, - "F10", SDL_SCANCODE_F10, - "F11", SDL_SCANCODE_F11, - "F12", SDL_SCANCODE_F12, + {"F1", SDL_SCANCODE_F1}, + {"F2", SDL_SCANCODE_F2}, + {"F3", SDL_SCANCODE_F3}, + {"F4", SDL_SCANCODE_F4}, + {"F5", SDL_SCANCODE_F5}, + {"F6", SDL_SCANCODE_F6}, + {"F7", SDL_SCANCODE_F7}, + {"F8", SDL_SCANCODE_F8}, + {"F9", SDL_SCANCODE_F9}, + {"F10", SDL_SCANCODE_F10}, + {"F11", SDL_SCANCODE_F11}, + {"F12", SDL_SCANCODE_F12}, - "A", SDL_SCANCODE_A, - "B", SDL_SCANCODE_B, - "C", SDL_SCANCODE_C, - "D", SDL_SCANCODE_D, - "E", SDL_SCANCODE_E, - "F", SDL_SCANCODE_F, - "G", SDL_SCANCODE_G, - "H", SDL_SCANCODE_H, - "I", SDL_SCANCODE_I, - "J", SDL_SCANCODE_J, - "K", SDL_SCANCODE_K, - "L", SDL_SCANCODE_L, - "M", SDL_SCANCODE_M, - "N", SDL_SCANCODE_N, - "O", SDL_SCANCODE_O, - "P", SDL_SCANCODE_P, - "Q", SDL_SCANCODE_Q, - "R", SDL_SCANCODE_R, - "S", SDL_SCANCODE_S, - "T", SDL_SCANCODE_T, - "U", SDL_SCANCODE_U, - "V", SDL_SCANCODE_V, - "W", SDL_SCANCODE_W, - "X", SDL_SCANCODE_X, - "Y", SDL_SCANCODE_Y, - "Z", SDL_SCANCODE_Z, + {"A", SDL_SCANCODE_A}, + {"B", SDL_SCANCODE_B}, + {"C", SDL_SCANCODE_C}, + {"D", SDL_SCANCODE_D}, + {"E", SDL_SCANCODE_E}, + {"F", SDL_SCANCODE_F}, + {"G", SDL_SCANCODE_G}, + {"H", SDL_SCANCODE_H}, + {"I", SDL_SCANCODE_I}, + {"J", SDL_SCANCODE_J}, + {"K", SDL_SCANCODE_K}, + {"L", SDL_SCANCODE_L}, + {"M", SDL_SCANCODE_M}, + {"N", SDL_SCANCODE_N}, + {"O", SDL_SCANCODE_O}, + {"P", SDL_SCANCODE_P}, + {"Q", SDL_SCANCODE_Q}, + {"R", SDL_SCANCODE_R}, + {"S", SDL_SCANCODE_S}, + {"T", SDL_SCANCODE_T}, + {"U", SDL_SCANCODE_U}, + {"V", SDL_SCANCODE_V}, + {"W", SDL_SCANCODE_W}, + {"X", SDL_SCANCODE_X}, + {"Y", SDL_SCANCODE_Y}, + {"Z", SDL_SCANCODE_Z}, - "LeftArrow", SDL_SCANCODE_LEFT, - "RightArrow", SDL_SCANCODE_RIGHT, - "UpArrow", SDL_SCANCODE_UP, - "DownArrow", SDL_SCANCODE_DOWN, + {"LeftArrow", SDL_SCANCODE_LEFT}, + {"RightArrow", SDL_SCANCODE_RIGHT}, + {"UpArrow", SDL_SCANCODE_UP}, + {"DownArrow", SDL_SCANCODE_DOWN}, - "LeftAlt", SDL_SCANCODE_LALT, - "LeftCtrl", SDL_SCANCODE_LCTRL, - "LeftBracket", SDL_SCANCODE_LEFTBRACKET, - "LeftSuper", SDL_SCANCODE_LGUI, - "LeftShift", SDL_SCANCODE_LSHIFT, - "RightAlt", SDL_SCANCODE_RALT, - "RightCtrl", SDL_SCANCODE_RCTRL, - "RightSuper", SDL_SCANCODE_RGUI, - "RightBracket", SDL_SCANCODE_RIGHTBRACKET, - "RightShift", SDL_SCANCODE_RSHIFT, + {"LeftAlt", SDL_SCANCODE_LALT}, + {"LeftCtrl", SDL_SCANCODE_LCTRL}, + {"LeftBracket", SDL_SCANCODE_LEFTBRACKET}, + {"LeftSuper", SDL_SCANCODE_LGUI}, + {"LeftShift", SDL_SCANCODE_LSHIFT}, + {"RightAlt", SDL_SCANCODE_RALT}, + {"RightCtrl", SDL_SCANCODE_RCTRL}, + {"RightSuper", SDL_SCANCODE_RGUI}, + {"RightBracket", SDL_SCANCODE_RIGHTBRACKET}, + {"RightShift", SDL_SCANCODE_RSHIFT}, - "BackSlash", SDL_SCANCODE_BACKSLASH, - "Backspace", SDL_SCANCODE_BACKSPACE, - "CapsLock", SDL_SCANCODE_CAPSLOCK, - "Comma", SDL_SCANCODE_COMMA, - "Delete", SDL_SCANCODE_DELETE, - "End", SDL_SCANCODE_END, - "Enter", SDL_SCANCODE_RETURN, - "Equals", SDL_SCANCODE_EQUALS, - "Escape", SDL_SCANCODE_ESCAPE, - "Home", SDL_SCANCODE_HOME, - "Insert", SDL_SCANCODE_INSERT, - "Minus", SDL_SCANCODE_MINUS, - "NumLock", SDL_SCANCODE_NUMLOCKCLEAR, - "PageDown", SDL_SCANCODE_PAGEDOWN, - "PageUp", SDL_SCANCODE_PAGEUP, - "Pause", SDL_SCANCODE_PAUSE, - "PrintScreen", SDL_SCANCODE_PRINTSCREEN, - "ScrollLock", SDL_SCANCODE_SCROLLLOCK, - "Semicolon", SDL_SCANCODE_SEMICOLON, - "Slash", SDL_SCANCODE_SLASH, - "Space", SDL_SCANCODE_SPACE, - "Tab", SDL_SCANCODE_TAB - )); + {"BackSlash", SDL_SCANCODE_BACKSLASH}, + {"Backspace", SDL_SCANCODE_BACKSPACE}, + {"CapsLock", SDL_SCANCODE_CAPSLOCK}, + {"Comma", SDL_SCANCODE_COMMA}, + {"Delete", SDL_SCANCODE_DELETE}, + {"End", SDL_SCANCODE_END}, + {"Enter", SDL_SCANCODE_RETURN}, + {"Equals", SDL_SCANCODE_EQUALS}, + {"Escape", SDL_SCANCODE_ESCAPE}, + {"Home", SDL_SCANCODE_HOME}, + {"Insert", SDL_SCANCODE_INSERT}, + {"Minus", SDL_SCANCODE_MINUS}, + {"NumLock", SDL_SCANCODE_NUMLOCKCLEAR}, + {"PageDown", SDL_SCANCODE_PAGEDOWN}, + {"PageUp", SDL_SCANCODE_PAGEUP}, + {"Pause", SDL_SCANCODE_PAUSE}, + {"PrintScreen", SDL_SCANCODE_PRINTSCREEN}, + {"ScrollLock", SDL_SCANCODE_SCROLLLOCK}, + {"Semicolon", SDL_SCANCODE_SEMICOLON}, + {"Slash", SDL_SCANCODE_SLASH}, + {"Space", SDL_SCANCODE_SPACE}, + {"Tab", SDL_SCANCODE_TAB} + })); return LuaUtil::makeReadOnly(api); } diff --git a/apps/openmw/mwlua/luabindings.cpp b/apps/openmw/mwlua/luabindings.cpp index f9d3911aa8..07e8dcc30c 100644 --- a/apps/openmw/mwlua/luabindings.cpp +++ b/apps/openmw/mwlua/luabindings.cpp @@ -43,27 +43,27 @@ namespace MWLua "Activator", "Armor", "Book", "Clothing", "Creature", "Door", "Ingredient", "Light", "Miscellaneous", "NPC", "Player", "Potion", "Static", "Weapon" }); - api["EQUIPMENT_SLOT"] = LuaUtil::makeReadOnly(lua->sol().create_table_with( - "Helmet", MWWorld::InventoryStore::Slot_Helmet, - "Cuirass", MWWorld::InventoryStore::Slot_Cuirass, - "Greaves", MWWorld::InventoryStore::Slot_Greaves, - "LeftPauldron", MWWorld::InventoryStore::Slot_LeftPauldron, - "RightPauldron", MWWorld::InventoryStore::Slot_RightPauldron, - "LeftGauntlet", MWWorld::InventoryStore::Slot_LeftGauntlet, - "RightGauntlet", MWWorld::InventoryStore::Slot_RightGauntlet, - "Boots", MWWorld::InventoryStore::Slot_Boots, - "Shirt", MWWorld::InventoryStore::Slot_Shirt, - "Pants", MWWorld::InventoryStore::Slot_Pants, - "Skirt", MWWorld::InventoryStore::Slot_Skirt, - "Robe", MWWorld::InventoryStore::Slot_Robe, - "LeftRing", MWWorld::InventoryStore::Slot_LeftRing, - "RightRing", MWWorld::InventoryStore::Slot_RightRing, - "Amulet", MWWorld::InventoryStore::Slot_Amulet, - "Belt", MWWorld::InventoryStore::Slot_Belt, - "CarriedRight", MWWorld::InventoryStore::Slot_CarriedRight, - "CarriedLeft", MWWorld::InventoryStore::Slot_CarriedLeft, - "Ammunition", MWWorld::InventoryStore::Slot_Ammunition - )); + api["EQUIPMENT_SLOT"] = LuaUtil::makeReadOnly(context.mLua->tableFromPairs({ + {"Helmet", MWWorld::InventoryStore::Slot_Helmet}, + {"Cuirass", MWWorld::InventoryStore::Slot_Cuirass}, + {"Greaves", MWWorld::InventoryStore::Slot_Greaves}, + {"LeftPauldron", MWWorld::InventoryStore::Slot_LeftPauldron}, + {"RightPauldron", MWWorld::InventoryStore::Slot_RightPauldron}, + {"LeftGauntlet", MWWorld::InventoryStore::Slot_LeftGauntlet}, + {"RightGauntlet", MWWorld::InventoryStore::Slot_RightGauntlet}, + {"Boots", MWWorld::InventoryStore::Slot_Boots}, + {"Shirt", MWWorld::InventoryStore::Slot_Shirt}, + {"Pants", MWWorld::InventoryStore::Slot_Pants}, + {"Skirt", MWWorld::InventoryStore::Slot_Skirt}, + {"Robe", MWWorld::InventoryStore::Slot_Robe}, + {"LeftRing", MWWorld::InventoryStore::Slot_LeftRing}, + {"RightRing", MWWorld::InventoryStore::Slot_RightRing}, + {"Amulet", MWWorld::InventoryStore::Slot_Amulet}, + {"Belt", MWWorld::InventoryStore::Slot_Belt}, + {"CarriedRight", MWWorld::InventoryStore::Slot_CarriedRight}, + {"CarriedLeft", MWWorld::InventoryStore::Slot_CarriedLeft}, + {"Ammunition", MWWorld::InventoryStore::Slot_Ammunition} + })); return LuaUtil::makeReadOnly(api); } diff --git a/apps/openmw/mwlua/nearbybindings.cpp b/apps/openmw/mwlua/nearbybindings.cpp index 011d0ae9f3..624cf69da6 100644 --- a/apps/openmw/mwlua/nearbybindings.cpp +++ b/apps/openmw/mwlua/nearbybindings.cpp @@ -47,14 +47,15 @@ namespace MWLua return LObject(getId(r.mHitObject), worldView->getObjectRegistry()); }); - api["COLLISION_TYPE"] = LuaUtil::makeReadOnly(context.mLua->sol().create_table_with( - "World", MWPhysics::CollisionType_World, - "Door", MWPhysics::CollisionType_Door, - "Actor", MWPhysics::CollisionType_Actor, - "HeightMap", MWPhysics::CollisionType_HeightMap, - "Projectile", MWPhysics::CollisionType_Projectile, - "Water", MWPhysics::CollisionType_Water, - "Default", MWPhysics::CollisionType_Default)); + api["COLLISION_TYPE"] = LuaUtil::makeReadOnly(context.mLua->tableFromPairs({ + {"World", MWPhysics::CollisionType_World}, + {"Door", MWPhysics::CollisionType_Door}, + {"Actor", MWPhysics::CollisionType_Actor}, + {"HeightMap", MWPhysics::CollisionType_HeightMap}, + {"Projectile", MWPhysics::CollisionType_Projectile}, + {"Water", MWPhysics::CollisionType_Water}, + {"Default", MWPhysics::CollisionType_Default} + })); api["castRay"] = [](const osg::Vec3f& from, const osg::Vec3f& to, sol::optional options) { diff --git a/components/lua/luastate.hpp b/components/lua/luastate.hpp index 7ac5af0b1b..b302e565f4 100644 --- a/components/lua/luastate.hpp +++ b/components/lua/luastate.hpp @@ -38,6 +38,15 @@ namespace LuaUtil // A shortcut to create a new Lua table. sol::table newTable() { return sol::table(mLua, sol::create); } + template + sol::table tableFromPairs(std::initializer_list> list) + { + sol::table res(mLua, sol::create); + for (const auto& [k, v] : list) + res[k] = v; + return res; + } + // Registers a package that will be available from every sandbox via `require(name)`. // The package can be either a sol::table with an API or a sol::function. If it is a function, // it will be evaluated (once per sandbox) the first time when requested. If the package