diff options
author | Alexander Gavriliuk <alexandrgproductengine@lindenlab.com> | 2023-11-23 22:04:49 +0100 |
---|---|---|
committer | Guru <alexandrgproductengine@lindenlab.com> | 2023-11-24 17:41:23 +0100 |
commit | 110eb2c989b6655796c15a657d0898375027f3f2 (patch) | |
tree | aba267b14f5a9735b585918e2df81a4fd77e182a /indra/llcharacter | |
parent | 9bf5ad98e508690efd334806885b6d1666bee602 (diff) |
SL-20442 Add an 'Until shortcut key released' option to gestures so we can do properly user-mappable keys
Diffstat (limited to 'indra/llcharacter')
-rw-r--r-- | indra/llcharacter/llmultigesture.cpp | 13 | ||||
-rw-r--r-- | indra/llcharacter/llmultigesture.h | 26 |
2 files changed, 15 insertions, 24 deletions
diff --git a/indra/llcharacter/llmultigesture.cpp b/indra/llcharacter/llmultigesture.cpp index 511d931569..15cad4ea16 100644 --- a/indra/llcharacter/llmultigesture.cpp +++ b/indra/llcharacter/llmultigesture.cpp @@ -42,16 +42,6 @@ const S32 GESTURE_VERSION = 2; // LLMultiGesture //--------------------------------------------------------------------------- LLMultiGesture::LLMultiGesture() -: mKey(), - mMask(), - mName(), - mTrigger(), - mReplaceText(), - mSteps(), - mPlaying(FALSE), - mCurrentStep(0), - mDoneCallback(NULL), - mCallbackData(NULL) { reset(); } @@ -67,10 +57,11 @@ void LLMultiGesture::reset() mPlaying = FALSE; mCurrentStep = 0; mWaitTimer.reset(); + mWaitingAnimations = FALSE; + mWaitingKeyRelease = FALSE; mWaitingTimer = FALSE; mTriggeredByKey = FALSE; mKeyReleased = FALSE; - mWaitingAnimations = FALSE; mWaitingAtEnd = FALSE; mRequestedAnimIDs.clear(); mPlayingAnimIDs.clear(); diff --git a/indra/llcharacter/llmultigesture.h b/indra/llcharacter/llmultigesture.h index 1865ec089c..a664b45a97 100644 --- a/indra/llcharacter/llmultigesture.h +++ b/indra/llcharacter/llmultigesture.h @@ -59,11 +59,11 @@ protected: const LLMultiGesture& operator=(const LLMultiGesture& rhs); public: - KEY mKey; - MASK mMask; + KEY mKey { 0 }; + MASK mMask { 0 }; // This name can be empty if the inventory item is not around and - // the gesture manager has not yet set the name + // the gesture manager has not yet set the name std::string mName; // String, like "/foo" or "hello" that makes it play @@ -75,34 +75,34 @@ public: std::vector<LLGestureStep*> mSteps; // Is the gesture currently playing? - BOOL mPlaying; + BOOL mPlaying { FALSE }; // "instruction pointer" for steps - S32 mCurrentStep; + S32 mCurrentStep { 0 }; // We're waiting for triggered animations to stop playing - BOOL mWaitingAnimations; + BOOL mWaitingAnimations { FALSE }; // We're waiting for key release - BOOL mWaitingKeyRelease; + BOOL mWaitingKeyRelease { FALSE }; // We're waiting a fixed amount of time - BOOL mWaitingTimer; + BOOL mWaitingTimer { FALSE }; // We're waiting for triggered animations to stop playing - BOOL mTriggeredByKey; + BOOL mTriggeredByKey { FALSE }; // Has the key been released? - BOOL mKeyReleased; + BOOL mKeyReleased { FALSE }; // Waiting after the last step played for all animations to complete - BOOL mWaitingAtEnd; + BOOL mWaitingAtEnd { FALSE }; // Timer for waiting LLFrameTimer mWaitTimer; - void (*mDoneCallback)(LLMultiGesture* gesture, void* data); - void* mCallbackData; + void (*mDoneCallback)(LLMultiGesture* gesture, void* data) { NULL }; + void* mCallbackData { NULL }; // Animations that we requested to start std::set<LLUUID> mRequestedAnimIDs; |