Untitled
unknown
c_cpp
3 years ago
3.1 kB
9
Indexable
ifdef PLATFORM_PS5 #if PLATFORM_PS5 { FPS5TriggerEffectProperty RightTrigger( FPS5TriggerEffectProperty::TriggerMask::Right ); FPS5TriggerEffectProperty LeftTrigger( FPS5TriggerEffectProperty::TriggerMask::Left ); TArray< uint8 > StrengthArray; StrengthArray.Init( 0, 10 ); FRobinFancyControllerTriggerResistanceObject* BestResistOption = nullptr; if( TriggerResistanceObjects.IsValidIndex( 0 ) ) { BestResistOption = &TriggerResistanceObjects[ 0 ]; for( FRobinFancyControllerTriggerResistanceObject& NextObject : TriggerResistanceObjects ) { if( NextObject.Object && ( ( NextObject.Active && NextObject.PriorityLevel >= BestResistOption->PriorityLevel ) || ( !BestResistOption->Active && NextObject.Active ) ) ) { BestResistOption = &NextObject; } } if( BestResistOption && BestResistOption->Object && BestResistOption->Active ) { uint8 FeedbackStrength = BestResistOption->Strength; // test StrengthArray.Empty(); StrengthArray.Init( FeedbackStrength, 10 ); if( BestResistOption->Initial ) { if( StrengthArray.IsValidIndex( 0 ) ) { StrengthArray[ 0 ] = FeedbackStrength; } } if( BestResistOption->TargetTrigger == ERobinFancyControllerTargetTrigger::Right || BestResistOption->TargetTrigger == ERobinFancyControllerTargetTrigger::Both ) { RightTrigger.SetFeedback( StrengthArray ); GetInputInterface()->SetDeviceProperty( GetControllerId(), &RightTrigger ); } if( BestResistOption->TargetTrigger == ERobinFancyControllerTargetTrigger::Left || BestResistOption->TargetTrigger == ERobinFancyControllerTargetTrigger::Both ) { LeftTrigger.SetFeedback( StrengthArray ); GetInputInterface()->SetDeviceProperty( GetControllerId(), &LeftTrigger ); } } else { TriggerResistanceObjects.Empty(); } } else { StrengthArray.Empty(); StrengthArray.Init( 0, 10 ); RightTrigger.SetFeedback( StrengthArray ); LeftTrigger.SetFeedback( StrengthArray ); GetInputInterface()->SetDeviceProperty( GetControllerId(), &RightTrigger ); GetInputInterface()->SetDeviceProperty( GetControllerId(), &LeftTrigger ); } } // Color FRobinFancyControllerColorChangeObject* BestColorOption = nullptr; if( ColorChangingObjects.IsValidIndex( 0 ) ) { BestColorOption = &ColorChangingObjects[ 0 ]; for( FRobinFancyControllerColorChangeObject& Next : ColorChangingObjects ) { if( ( Next.Active && Next.PriorityLevel >= BestColorOption->PriorityLevel ) || ( !BestColorOption->Active && Next.Active ) ) { BestColorOption = &Next; } } if( BestColorOption && BestColorOption->Object && BestColorOption->Active ) { FColor const Color = BestColorOption->Color.ToFColor( true ); GetInputInterface()->SetLightColor( GetControllerId(), Color ); } else { GetInputInterface()->ResetLightColor( GetControllerId() ); ColorChangingObjects.Empty(); } } else { GetInputInterface()->ResetLightColor( GetControllerId() ); } #endif #endif
Editor is loading...