LifePlay-Revival/Source/LifePlay/LPUserSettings.h
edujiro5972 8084622450 LifePlay UE 5.8 : état de développement au 2026-10-19
Tickets : REP1-T4

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 22:57:42 +02:00

59 lines
2.5 KiB
C++

// Lot STC - vitesse de camera adossee a GameUserSettings.ini (STC-SPEC, partie 2).
//
// La valeur de reference de la vitesse de camera est la section [/Script/LifePlay.LPUserSettings] de
// GameUserSettings.ini (PIE : Saved/Config/WindowsEditor/, jeu : Saved/Config/Windows/). GI.CameraSpeed n'en est
// qu'une recopie : ApplyCameraSpeedAtStartup la remplit au demarrage (apres GI.LoadSettings), SetCameraSpeed la met a
// jour quand le joueur bouge le slider du menu Settings. L'ini n'est ecrit que si la valeur change, ou une fois au
// premier lancement (bCameraSpeedSet faux) : la valeur de GI, issue de GameSettings.sav, est alors reprise et bornee.
// GameSettings.sav garde son champ CameraSpeed, recopie de GI par GI.SaveSettings.
// Valeurs permises : entiers de 1 a 7 (slider a pas de 1), 3 par defaut.
#pragma once
#include "CoreMinimal.h"
#include "Kismet/BlueprintFunctionLibrary.h"
#include "UObject/Object.h"
#include "LPUserSettings.generated.h"
/** Reglages du joueur propres a LifePlay, enregistres dans GameUserSettings.ini (objet par defaut seulement). */
UCLASS(config = GameUserSettings)
class LIFEPLAY_API ULPUserSettings : public UObject
{
GENERATED_BODY()
public:
/** Vitesse de camera choisie dans le menu Settings (1 a 7). */
UPROPERTY(config)
float CameraSpeed = 3.f;
/** Faux tant que l'entree n'a jamais ete ecrite (premier lancement : reprise de GI.CameraSpeed). */
UPROPERTY(config)
bool bCameraSpeedSet = false;
};
UCLASS()
class LIFEPLAY_API ULPUserSettingsLibrary : public UBlueprintFunctionLibrary
{
GENERATED_BODY()
public:
/** Arrondit a l'entier le plus proche et borne entre 1 et 7. */
UFUNCTION(BlueprintPure, Category = "LifePlay|Settings")
static float ClampCameraSpeed(float V);
/**
* A appeler au demarrage, apres GI.LoadSettings : recopie dans GI.CameraSpeed la valeur de GameUserSettings.ini.
* Premier lancement (entree jamais ecrite) : reprend GI.CameraSpeed (lu dans GameSettings.sav), la borne, l'ecrit
* dans GI et dans l'ini.
*/
UFUNCTION(BlueprintCallable, Category = "LifePlay|Settings")
static void ApplyCameraSpeedAtStartup(UObject* GameInstance);
/** Slider du menu Settings : borne V, l'ecrit dans GI.CameraSpeed et, si elle change, dans GameUserSettings.ini. */
UFUNCTION(BlueprintCallable, Category = "LifePlay|Settings")
static void SetCameraSpeed(UObject* GameInstance, float V);
/** Vitesse de camera enregistree dans GameUserSettings.ini, bornee (3 si jamais ecrite). */
UFUNCTION(BlueprintPure, Category = "LifePlay|Settings")
static float GetCameraSpeed();
};