From 6eee6e9468ff64d0c533150fce3f8dedbedc2f7f Mon Sep 17 00:00:00 2001 From: Dave Corley Date: Mon, 22 Jul 2024 15:44:42 -0500 Subject: [PATCH 1/4] CLEANUP(animationbindings): camelCase all the things --- apps/openmw/mwlua/animationbindings.cpp | 28 ++++++++++++------------- apps/openmw/mwlua/luamanagerimp.cpp | 12 +++++------ 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/apps/openmw/mwlua/animationbindings.cpp b/apps/openmw/mwlua/animationbindings.cpp index f20b22e35f..17dd9aef42 100644 --- a/apps/openmw/mwlua/animationbindings.cpp +++ b/apps/openmw/mwlua/animationbindings.cpp @@ -234,9 +234,9 @@ namespace MWLua [mechanics](const sol::object& object, const std::string& groupname, const sol::table& options) { uint32_t numberOfLoops = options.get_or("loops", std::numeric_limits::max()); float speed = options.get_or("speed", 1.f); - std::string startKey = options.get_or("startkey", "start"); - std::string stopKey = options.get_or("stopkey", "stop"); - bool forceLoop = options.get_or("forceloop", false); + std::string startKey = options.get_or("startKey", "start"); + std::string stopKey = options.get_or("stopKey", "stop"); + bool forceLoop = options.get_or("forceLoop", false); MWWorld::Ptr ptr = getMutablePtrOrThrow(ObjectVariant(object)); mechanics->playAnimationGroupLua(ptr, groupname, numberOfLoops, speed, startKey, stopKey, forceLoop); @@ -247,20 +247,20 @@ namespace MWLua ptr, groupname, std::numeric_limits::max(), 1, "start", "stop", false); }); - api["playBlended"] = [](const sol::object& object, std::string_view groupname, const sol::table& options) { + api["playBlended"] = [](const sol::object& object, std::string_view groupName, const sol::table& options) { uint32_t loops = options.get_or("loops", 0u); MWRender::Animation::AnimPriority priority = getPriorityArgument(options); - BlendMask blendMask = options.get_or("blendmask", BlendMask::BlendMask_All); - bool autoDisable = options.get_or("autodisable", true); + BlendMask blendMask = options.get_or("blendMask", BlendMask::BlendMask_All); + bool autoDisable = options.get_or("autoDisable", true); float speed = options.get_or("speed", 1.0f); - std::string start = options.get_or("startkey", "start"); - std::string stop = options.get_or("stopkey", "stop"); - float startpoint = options.get_or("startpoint", 0.0f); - bool forceLoop = options.get_or("forceloop", false); + std::string start = options.get_or("startKey", "start"); + std::string stop = options.get_or("stopKey", "stop"); + float startPoint = options.get_or("startPoint", 0.0f); + bool forceLoop = options.get_or("forceLoop", false); auto animation = getMutableAnimationOrThrow(ObjectVariant(object)); - animation->play(groupname, priority, blendMask, autoDisable, speed, start, stop, startpoint, loops, - forceLoop || animation->isLoopingAnimation(groupname)); + animation->play(groupName, priority, blendMask, autoDisable, speed, start, stop, startPoint, loops, + forceLoop || animation->isLoopingAnimation(groupName)); }; api["hasGroup"] = [](const sol::object& object, std::string_view groupname) -> bool { @@ -287,11 +287,11 @@ namespace MWLua context.mLuaManager->addAction( [object = ObjectVariant(object), model = getStaticModelOrThrow(staticOrID), effectId = options.get_or("vfxId", ""), loop = options.get_or("loop", false), - bonename = options.get_or("bonename", ""), + boneName = options.get_or("boneName", ""), particleTexture = options.get_or("particleTextureOverride", "")] { MWRender::Animation* anim = getMutableAnimationOrThrow(ObjectVariant(object)); - anim->addEffect(model, effectId, loop, bonename, particleTexture); + anim->addEffect(model, effectId, loop, boneName, particleTexture); }, "addVfxAction"); }); diff --git a/apps/openmw/mwlua/luamanagerimp.cpp b/apps/openmw/mwlua/luamanagerimp.cpp index 5c8a3ff909..b15fb2f5bf 100644 --- a/apps/openmw/mwlua/luamanagerimp.cpp +++ b/apps/openmw/mwlua/luamanagerimp.cpp @@ -426,14 +426,14 @@ namespace MWLua std::string_view start, std::string_view stop, float startpoint, uint32_t loops, bool loopfallback) { sol::table options = mLua.newTable(); - options["blendmask"] = blendMask; - options["autodisable"] = autodisable; + options["blendMask"] = blendMask; + options["autoDisable"] = autodisable; options["speed"] = speedmult; - options["startkey"] = start; - options["stopkey"] = stop; - options["startpoint"] = startpoint; + options["startKey"] = start; + options["stopKey"] = stop; + options["startPoint"] = startpoint; options["loops"] = loops; - options["forceloop"] = loopfallback; + options["forceLoop"] = loopfallback; bool priorityAsTable = false; for (uint32_t i = 1; i < MWRender::sNumBlendMasks; i++) From 86f33cb6fe42ce295cde4828b512c3d8e3559479 Mon Sep 17 00:00:00 2001 From: Dave Corley Date: Tue, 23 Jul 2024 11:39:06 -0500 Subject: [PATCH 2/4] CLEANUP(animationbindings): Lowercase all input groupnames --- apps/openmw/mwlua/animationbindings.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/openmw/mwlua/animationbindings.cpp b/apps/openmw/mwlua/animationbindings.cpp index 17dd9aef42..79df7b4285 100644 --- a/apps/openmw/mwlua/animationbindings.cpp +++ b/apps/openmw/mwlua/animationbindings.cpp @@ -258,9 +258,11 @@ namespace MWLua float startPoint = options.get_or("startPoint", 0.0f); bool forceLoop = options.get_or("forceLoop", false); + const std::string_view lowerGroup = { Misc::StringUtils::lowerCase(groupName) }; + auto animation = getMutableAnimationOrThrow(ObjectVariant(object)); - animation->play(groupName, priority, blendMask, autoDisable, speed, start, stop, startPoint, loops, - forceLoop || animation->isLoopingAnimation(groupName)); + animation->play(lowerGroup, priority, blendMask, autoDisable, speed, start, stop, startPoint, loops, + forceLoop || animation->isLoopingAnimation(lowerGroup)); }; api["hasGroup"] = [](const sol::object& object, std::string_view groupname) -> bool { From 277f7d17e85f4ab9075ed1da9d56fd40cb596d92 Mon Sep 17 00:00:00 2001 From: Dave Corley Date: Tue, 23 Jul 2024 11:41:59 -0500 Subject: [PATCH 3/4] CLEANUP(animation.lua): Camelcase everything --- files/lua_api/openmw/animation.lua | 56 +++++++++++++++--------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/files/lua_api/openmw/animation.lua b/files/lua_api/openmw/animation.lua index 98cb3436b4..e62440edac 100644 --- a/files/lua_api/openmw/animation.lua +++ b/files/lua_api/openmw/animation.lua @@ -71,20 +71,20 @@ -- Check if the given animation group is currently playing -- @function [parent=#animation] isPlaying -- @param openmw.core#GameObject actor --- @param #string groupname +-- @param #string groupName -- @return #boolean --- -- Get the current absolute time of the given animation group if it is playing, or -1 if it is not playing. -- @function [parent=#animation] getCurrentTime -- @param openmw.core#GameObject actor --- @param #string groupname +-- @param #string groupName -- @return #number --- -- Check whether the animation is a looping animation or not. This is determined by a combination --- of groupname, some of which are hardcoded to be looping, and the presence of loop start/stop keys. --- The groupnames that are hardcoded as looping are the following, as well as per-weapon-type suffixed variants of each. +-- of groupName, some of which are hardcoded to be looping, and the presence of loop start/stop keys. +-- The groupNames that are hardcoded as looping are the following, as well as per-weapon-type suffixed variants of each. -- "walkforward", "walkback", "walkleft", "walkright", "swimwalkforward", "swimwalkback", "swimwalkleft", "swimwalkright", -- "runforward", "runback", "runleft", "runright", "swimrunforward", "swimrunback", "swimrunleft", "swimrunright", -- "sneakforward", "sneakback", "sneakleft", "sneakright", "turnleft", "turnright", "swimturnleft", "swimturnright", @@ -93,7 +93,7 @@ -- "inventoryweapontwohand", "inventoryweapontwowide" -- @function [parent=#animation] isLoopingAnimation -- @param openmw.core#GameObject actor --- @param #string groupname +-- @param #string groupName -- @return #boolean @@ -102,35 +102,35 @@ -- Can be used only in local scripts on self. -- @function [parent=#animation] cancel -- @param openmw.core#GameObject actor --- @param #string groupname +-- @param #string groupName --- -- Enables or disables looping for the given animation group. Looping is enabled by default. -- Can be used only in local scripts on self. -- @function [parent=#animation] setLoopingEnabled -- @param openmw.core#GameObject actor --- @param #string groupname +-- @param #string groupName -- @param #boolean enabled --- -- Returns the completion of the animation, or nil if the animation group is not active. -- @function [parent=#animation] getCompletion -- @param openmw.core#GameObject actor --- @param #string groupname +-- @param #string groupName -- @return #number, #nil --- -- Returns the remaining number of loops, not counting the current loop, or nil if the animation group is not active. -- @function [parent=#animation] getLoopCount -- @param openmw.core#GameObject actor --- @param #string groupname +-- @param #string groupName -- @return #number, #nil --- -- Get the current playback speed of an animation group, or nil if the animation group is not active. -- @function [parent=#animation] getSpeed -- @param openmw.core#GameObject actor --- @param #string groupname +-- @param #string groupName -- @return #number, #nil --- @@ -139,7 +139,7 @@ -- Can be used only in local scripts on self. -- @function [parent=#animation] setSpeed -- @param openmw.core#GameObject actor --- @param #string groupname +-- @param #string groupName -- @param #number speed The new animation speed, where speed=1 is normal speed. --- @@ -156,14 +156,14 @@ -- Can be used only in local scripts on self. -- @function [parent=#animation] playQueued -- @param openmw.core#GameObject actor --- @param #string groupname +-- @param #string groupName -- @param #table options A table of play options. Can contain: -- -- * `loops` - a number >= 0, the number of times the animation should loop after the first play (default: infinite). -- * `speed` - a floating point number >= 0, the speed at which the animation should play (default: 1); --- * `startkey` - the animation key at which the animation should start (default: "start") --- * `stopkey` - the animation key at which the animation should end (default: "stop") --- * `forceloop` - a boolean, to set if the animation should loop even if it's not a looping animation (default: false) +-- * `startKey` - the animation key at which the animation should start (default: "start") +-- * `stopKey` - the animation key at which the animation should end (default: "stop") +-- * `forceLoop` - a boolean, to set if the animation should loop even if it's not a looping animation (default: false) -- -- @usage -- Play death1 without waiting. Equivalent to playgroup, death1, 1 -- anim.clearAnimationQueue(self, false) @@ -171,7 +171,7 @@ -- -- @usage -- Play an animation group with custom start/stop keys -- anim.clearAnimationQueue(self, false) --- anim.playQueued(self, 'spellcast', { startkey = 'self start', stopkey = 'self stop' }) +-- anim.playQueued(self, 'spellcast', { startKey = 'self start', stopKey = 'self stop' }) -- --- @@ -182,38 +182,38 @@ -- Can be used only in local scripts on self. -- @function [parent=#animation] playBlended -- @param openmw.core#GameObject actor --- @param #string groupname +-- @param #string groupName -- @param #table options A table of play options. Can contain: -- -- * `loops` - a number >= 0, the number of times the animation should loop after the first play (default: 0). -- * `priority` - Either a single #Priority value that will be assigned to all bone groups. Or a table mapping bone groups to its priority (default: PRIORITY.Default). --- * `blendmask` - A mask of which bone groups to include in the animation (Default: BLEND_MASK.All. --- * `autodisable` - If true, the animation will be immediately removed upon finishing, which means information will not be possible to query once completed. (Default: true) +-- * `blendMask` - A mask of which bone groups to include in the animation (Default: BLEND_MASK.All. +-- * `autoDisable` - If true, the animation will be immediately removed upon finishing, which means information will not be possible to query once completed. (Default: true) -- * `speed` - a floating point number >= 0, the speed at which the animation should play (default: 1) --- * `startkey` - the animation key at which the animation should start (default: "start") --- * `stopkey` - the animation key at which the animation should end (default: "stop") --- * `startpoint` - a floating point number 0 <= value <= 1, starting completion of the animation (default: 0) --- * `forceloop` - a boolean, to set if the animation should loop even if it's not a looping animation (default: false) +-- * `startKey` - the animation key at which the animation should start (default: "start") +-- * `stopKey` - the animation key at which the animation should end (default: "stop") +-- * `startPoint` - a floating point number 0 <= value <= 1, starting completion of the animation (default: 0) +-- * `forceLoop` - a boolean, to set if the animation should loop even if it's not a looping animation (default: false) --- -- Check if the actor's animation has the given animation group or not. -- @function [parent=#animation] hasGroup -- @param openmw.core#GameObject actor --- @param #string groupname +-- @param #string groupName -- @return #boolean --- -- Check if the actor's skeleton has the given bone or not -- @function [parent=#animation] hasBone -- @param openmw.core#GameObject actor --- @param #string bonename +-- @param #string boneName -- @return #boolean --- -- Get the current active animation for a bone group -- @function [parent=#animation] getActiveGroup -- @param openmw.core#GameObject actor --- @param #number bonegroup Bone group enum, see @{openmw.animation#BONE_GROUP} +-- @param #number boneGroup Bone group enum, see @{openmw.animation#BONE_GROUP} -- @return #string --- @@ -225,12 +225,12 @@ -- @param #table options optional table of parameters. Can contain: -- -- * `loop` - boolean, if true the effect will loop until removed (default: 0). --- * `bonename` - name of the bone to attach the vfx to. (default: "") +-- * `boneName` - name of the bone to attach the vfx to. (default: "") -- * `particle` - name of the particle texture to use. (default: "") -- * `vfxId` - a string ID that can be used to remove the effect later, using #removeVfx, and to avoid duplicate effects. The default value of "" can have duplicates. To avoid interaction with the engine, use unique identifiers unrelated to magic effect IDs. The engine uses this identifier to add and remove magic effects based on what effects are active on the actor. If this is set equal to the @{openmw.core#MagicEffectId} identifier of the magic effect being added, for example core.magic.EFFECT_TYPE.FireDamage, then the engine will remove it once the fire damage effect on the actor reaches 0. (Default: ""). -- -- @usage local mgef = core.magic.effects.records[myEffectName] --- anim.addVfx(self, 'VFX_Hands', {bonename = 'Bip01 L Hand', particle = mgef.particle, loop = mgef.continuousVfx, vfxId = mgef.id..'_myuniquenamehere'}) +-- anim.addVfx(self, 'VFX_Hands', {boneName = 'Bip01 L Hand', particle = mgef.particle, loop = mgef.continuousVfx, vfxId = mgef.id..'_myuniquenamehere'}) -- -- later: -- anim.removeVfx(self, mgef.id..'_myuniquenamehere') -- From c90af583b2f2d536fd75db3650ee50504cefa92d Mon Sep 17 00:00:00 2001 From: Dave Corley Date: Tue, 23 Jul 2024 11:43:10 -0500 Subject: [PATCH 4/4] FEAT(CMakeLists): Increment API revision --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 83d81999ec..50e197281f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -82,7 +82,7 @@ message(STATUS "Configuring OpenMW...") set(OPENMW_VERSION_MAJOR 0) set(OPENMW_VERSION_MINOR 49) set(OPENMW_VERSION_RELEASE 0) -set(OPENMW_LUA_API_REVISION 64) +set(OPENMW_LUA_API_REVISION 65) set(OPENMW_POSTPROCESSING_API_REVISION 1) set(OPENMW_VERSION_COMMITHASH "")