60 lines
2.5 KiB
C
60 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();
|
||
|
|
};
|