Simplify class

This commit is contained in:
baz 2025-08-15 22:30:39 +01:00
parent 44e6876a8c
commit a8aeedf7ce
2 changed files with 46 additions and 29 deletions

View File

@ -39,25 +39,15 @@ void UOptionsMenuWidget::NativeConstruct()
if (ResetToDefaultsButton) if (ResetToDefaultsButton)
{ {
ResetToDefaultsButton->OnClicked.AddUniqueDynamic(this, &UOptionsMenuWidget::ResetToDefaultsOnClicked); ResetToDefaultsButton->OnClicked.AddUniqueDynamic(this, &UOptionsMenuWidget::ResetToDefaultsOnClicked);
ResetToDefaultsButton->OnClicked.AddUniqueDynamic(this, &UOptionsMenuWidget::PlayClickedSound); ResetToDefaultsButton->OnHovered.AddUniqueDynamic(this, &UOptionsMenuWidget::ResetToDefaultsButtonOnHovered);
ResetToDefaultsButton->OnUnhovered.AddUniqueDynamic(this, &UOptionsMenuWidget::ResetToDefaultsButtonOnUnhovered);
ResetToDefaultsButton->OnHovered.AddUniqueDynamic(this, &UOptionsMenuWidget::PlayHoveredSound);
ResetToDefaultsButton->OnHovered.AddUniqueDynamic(this, &UOptionsMenuWidget::ResetToDefaultsTextBlockHoveredDelegate);
ResetToDefaultsButton->OnUnhovered.AddUniqueDynamic(this, &UOptionsMenuWidget::ResetToDefaultsTextBlockUnhoveredDelegate);
ResetToDefaultsButton->OnUnhovered.AddUniqueDynamic(this, &UOptionsMenuWidget::PlayUnhoveredSound);
} }
if (ReturnButton) if (ReturnButton)
{ {
ReturnButton->OnClicked.AddUniqueDynamic(this, &UOptionsMenuWidget::ReturnButtonOnClicked); ReturnButton->OnClicked.AddUniqueDynamic(this, &UOptionsMenuWidget::ReturnButtonOnClicked);
ReturnButton->OnClicked.AddUniqueDynamic(this, &UOptionsMenuWidget::PlayClickedSound); ReturnButton->OnHovered.AddUniqueDynamic(this, &UOptionsMenuWidget::ReturnButtonOnHovered);
ReturnButton->OnUnhovered.AddUniqueDynamic(this, &UOptionsMenuWidget::ReturnButtonOnUnhovered);
ReturnButton->OnHovered.AddUniqueDynamic(this, &UOptionsMenuWidget::PlayHoveredSound);
ReturnButton->OnHovered.AddUniqueDynamic(this, &UOptionsMenuWidget::ReturnTextBlockHoveredDelegate);
ReturnButton->OnUnhovered.AddUniqueDynamic(this, &UOptionsMenuWidget::ReturnTextBlockUnhoveredDelegate);
ReturnButton->OnUnhovered.AddUniqueDynamic(this, &UOptionsMenuWidget::PlayUnhoveredSound);
} }
} }
@ -129,9 +119,9 @@ void UOptionsMenuWidget::GenerateRefreshRateOptions()
RefreshRateComboBox->ClearOptions(); RefreshRateComboBox->ClearOptions();
TArray<uint32> RefreshRates; TArray<uint32> RefreshRates;
GetListOfUniqueRefreshRates(RefreshRates); GetListOfUniqueRefreshRates(RefreshRates);
for (uint32 RefreshRate : RefreshRates) for (uint32 RefreshRate : RefreshRates)
{ {
RefreshRateComboBox->AddOption(FString::FromInt(RefreshRate)); RefreshRateComboBox->AddOption(FString::FromInt(RefreshRate));
@ -268,13 +258,15 @@ void UOptionsMenuWidget::OnAudioLeverValueChanged(float Value)
MasterSoundClass->Properties.Volume = FMath::Clamp(Value, 0.0f, 1.0f); MasterSoundClass->Properties.Volume = FMath::Clamp(Value, 0.0f, 1.0f);
int AudioLevel = FMath::Clamp(Value, 0.0f, 1.0f) * 100.0f; int AudioLevel = FMath::Clamp(Value, 0.0f, 1.0f) * 100.0f;
MasterAudioTextBlock->SetText(FText::FromString(FString::FromInt(AudioLevel) + "%")); MasterAudioTextBlock->SetText(FText::FromString(FString::FromInt(AudioLevel) + "%"));
} }
} }
void UOptionsMenuWidget::ResetToDefaultsOnClicked() void UOptionsMenuWidget::ResetToDefaultsOnClicked()
{ {
PlayClickedSound();
// Set Resolution to Monitor Res // Set Resolution to Monitor Res
TArray<FIntPoint> Resolutions; TArray<FIntPoint> Resolutions;
UKismetSystemLibrary::GetSupportedFullscreenResolutions(Resolutions); UKismetSystemLibrary::GetSupportedFullscreenResolutions(Resolutions);
@ -282,7 +274,8 @@ void UOptionsMenuWidget::ResetToDefaultsOnClicked()
if (Resolutions.Num() > 0) if (Resolutions.Num() > 0)
{ {
GEngine->GameUserSettings->SetScreenResolution(Resolutions.Last()); GEngine->GameUserSettings->SetScreenResolution(Resolutions.Last());
FString ResolutionString = FString::FromInt(Resolutions.Last().X) + "x" + FString::FromInt(Resolutions.Last().Y); FString ResolutionString = FString::FromInt(Resolutions.Last().X) + "x" +
FString::FromInt(Resolutions.Last().Y);
ResolutionComboBox->SetSelectedOption(ResolutionString); ResolutionComboBox->SetSelectedOption(ResolutionString);
} }
else else
@ -292,7 +285,7 @@ void UOptionsMenuWidget::ResetToDefaultsOnClicked()
FString ResolutionString = FString::FromInt(1920) + "x" + FString::FromInt(1080); FString ResolutionString = FString::FromInt(1920) + "x" + FString::FromInt(1080);
ResolutionComboBox->SetSelectedOption(ResolutionString); ResolutionComboBox->SetSelectedOption(ResolutionString);
} }
// Set Fullscreen // Set Fullscreen
GEngine->GameUserSettings->SetFullscreenMode(EWindowMode::Fullscreen); GEngine->GameUserSettings->SetFullscreenMode(EWindowMode::Fullscreen);
WindowTypeComboBox->SetSelectedOption(LexToString(GEngine->GameUserSettings->GetFullscreenMode())); WindowTypeComboBox->SetSelectedOption(LexToString(GEngine->GameUserSettings->GetFullscreenMode()));
@ -322,6 +315,8 @@ void UOptionsMenuWidget::ResetToDefaultsOnClicked()
void UOptionsMenuWidget::ReturnButtonOnClicked() void UOptionsMenuWidget::ReturnButtonOnClicked()
{ {
PlayClickedSound();
if (MainMenuMenuWidget) if (MainMenuMenuWidget)
{ {
RemoveFromParent(); RemoveFromParent();
@ -336,6 +331,30 @@ void UOptionsMenuWidget::ReturnButtonOnClicked()
} }
} }
void UOptionsMenuWidget::ResetToDefaultsButtonOnHovered()
{
PlayHoveredSound();
SetTextBlockHovered(ResetToDefaultsBlock);
}
void UOptionsMenuWidget::ResetToDefaultsButtonOnUnhovered()
{
PlayUnhoveredSound();
SetTextBlockUnhovered(ResetToDefaultsBlock);
}
void UOptionsMenuWidget::ReturnButtonOnHovered()
{
PlayHoveredSound();
SetTextBlockHovered(ReturnBlock);
}
void UOptionsMenuWidget::ReturnButtonOnUnhovered()
{
PlayUnhoveredSound();
SetTextBlockUnhovered(ReturnBlock);
}
void UOptionsMenuWidget::GetListOfUniqueRefreshRates(TArray<uint32>& RefreshRates) void UOptionsMenuWidget::GetListOfUniqueRefreshRates(TArray<uint32>& RefreshRates)
{ {
FScreenResolutionArray ScreenResolutions; FScreenResolutionArray ScreenResolutions;

View File

@ -58,12 +58,10 @@ class VAMPIRES_API UOptionsMenuWidget : public UVampireInteractiveWidget
UPROPERTY(EditDefaultsOnly, Category = "Widget Settings | Sound Settings") UPROPERTY(EditDefaultsOnly, Category = "Widget Settings | Sound Settings")
TObjectPtr<USoundClass> MasterSoundClass = nullptr; TObjectPtr<USoundClass> MasterSoundClass = nullptr;
protected:
UFUNCTION() UFUNCTION()
virtual void NativeConstruct() override; virtual void NativeConstruct() override;
private:
void GenerateWindowTypeOptions(); void GenerateWindowTypeOptions();
void GenerateResolutionOptions(); void GenerateResolutionOptions();
@ -104,16 +102,16 @@ private:
void ReturnButtonOnClicked(); void ReturnButtonOnClicked();
UFUNCTION() UFUNCTION()
void ResetToDefaultsTextBlockHoveredDelegate() { SetTextBlockHovered(ResetToDefaultsBlock); } void ResetToDefaultsButtonOnHovered();
UFUNCTION() UFUNCTION()
void ResetToDefaultsTextBlockUnhoveredDelegate() { SetTextBlockUnhovered(ResetToDefaultsBlock); } void ResetToDefaultsButtonOnUnhovered();
UFUNCTION()
void ReturnTextBlockHoveredDelegate() { SetTextBlockHovered(ReturnBlock); }
UFUNCTION() UFUNCTION()
void ReturnTextBlockUnhoveredDelegate() { SetTextBlockUnhovered(ReturnBlock); } void ReturnButtonOnHovered();
UFUNCTION()
void ReturnButtonOnUnhovered();
void GetListOfUniqueRefreshRates(TArray<uint32>& RefreshRates); void GetListOfUniqueRefreshRates(TArray<uint32>& RefreshRates);
}; };