diff --git a/CHANGELOG.md b/CHANGELOG.md index 76c9640d..1199c720 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,15 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [Unreleased] + +This is a bugfix release with containing bugfixes backported from the next major release of the plugin as documented below. + +### Fixed + +- Fix various bugs inside the SGPlayerController which occur when the thumb and pinky fingers are simultaneously touching different SGTouchComponents, or only one of them is in touch with such a component. In this case pinky's buzz and force-feedback levels are determined from the SGTouchComponent that is in collision with the thumb instead of the one that is touched by the pinky. Or, the pinky could ignore the buzz and force-feedback level if the thumb is not in collision with an SGTouchComponent. Or, the pinky could have reacted with a buzz or force feedback while only the thumb is in contact with an SGTouchComponent. +- Fix the BuzzDuration UPROPERTY range in order not to get clamped at 100.0f and also use float values for ClampMin and UIMin specifiers instead of integer values. + ## [1.9.6] - 2024-02-14 This is a bugfix release. diff --git a/Source/SenseGlove/Private/SenseGlove/GameFramework/SGPlayerController.cpp b/Source/SenseGlove/Private/SenseGlove/GameFramework/SGPlayerController.cpp index 6c01fa10..76577ff2 100644 --- a/Source/SenseGlove/Private/SenseGlove/GameFramework/SGPlayerController.cpp +++ b/Source/SenseGlove/Private/SenseGlove/GameFramework/SGPlayerController.cpp @@ -262,7 +262,7 @@ USGBuzzCommand* ASGPlayerController::FImpl::GetBuzzCommand( const int32 IndexBuzzLevel = GetBuzzLevel(ActorIndexTouching); const int32 MiddleBuzzLevel = GetBuzzLevel(ActorMiddleTouching); const int32 RingBuzzLevel = GetBuzzLevel(ActorRingTouching); - const int32 PinkyBuzzLevel = GetBuzzLevel(ActorThumbTouching); + const int32 PinkyBuzzLevel = GetBuzzLevel(ActorPinkyTouching); if (ThumbBuzzLevel <= 0 && IndexBuzzLevel <= 0 && MiddleBuzzLevel <= 0 && RingBuzzLevel <= 0 && PinkyBuzzLevel <= 0) { @@ -292,7 +292,7 @@ USGForceFeedbackCommand* ASGPlayerController::FImpl::GetForceFeedbackCommand( const int32 IndexForceFeedbackLevel = GetForceFeedbackLevel(ActorIndexTouching); const int32 MiddleForceFeedbackLevel = GetForceFeedbackLevel(ActorMiddleTouching); const int32 RingForceFeedbackLevel = GetForceFeedbackLevel(ActorRingTouching); - const int32 PinkyForceFeedbackLevel = GetForceFeedbackLevel(ActorThumbTouching); + const int32 PinkyForceFeedbackLevel = GetForceFeedbackLevel(ActorPinkyTouching); if (ThumbForceFeedbackLevel <= 0 && IndexForceFeedbackLevel <= 0 && MiddleForceFeedbackLevel <= 0 && RingForceFeedbackLevel <= 0 && PinkyForceFeedbackLevel <= 0) diff --git a/Source/SenseGlove/Public/SenseGlove/Components/SGTouchComponent.h b/Source/SenseGlove/Public/SenseGlove/Components/SGTouchComponent.h index 1cef800d..16423bfe 100644 --- a/Source/SenseGlove/Public/SenseGlove/Components/SGTouchComponent.h +++ b/Source/SenseGlove/Public/SenseGlove/Components/SGTouchComponent.h @@ -57,8 +57,7 @@ private: meta=(AllowPrivateAccess="false", ClampMin = "0", ClampMax = "100", UIMin = "0", UIMax = "100")) int32 BuzzLevel; - UPROPERTY(EditAnywhere, Category="SenseGlove", - meta=(AllowPrivateAccess="false", ClampMin = "0", ClampMax = "100", UIMin = "0", UIMax = "100")) + UPROPERTY(EditAnywhere, Category="SenseGlove", meta=(AllowPrivateAccess="false", ClampMin = "0.0", UIMin = "0.0")) float BuzzDuration; UPROPERTY(EditAnywhere, Category="SenseGlove",