Fixed savegame

This commit is contained in:
2026-05-27 23:21:23 +03:00
parent bc498d98a8
commit 891a0744a0
4 changed files with 21 additions and 24 deletions
Binary file not shown.
Binary file not shown.
+11 -14
View File
@@ -20,19 +20,6 @@ bool USaveSubsystem::SaveGame(const FString& SlotName) const
return UGlobalSaveGameData::SaveGame(CurrentSave, SlotName); return UGlobalSaveGameData::SaveGame(CurrentSave, SlotName);
} }
void USaveSubsystem::AddItem(const FItemSaveRecord& Record)
{
Items.Add(Record);
}
void USaveSubsystem::RemoveItem(const FGuid& InstanceId)
{
Items.RemoveAll([InstanceId](const FItemSaveRecord& Item)
{
return Item.InstanceId == InstanceId;
});
}
void USaveSubsystem::Initialize(FSubsystemCollectionBase& Collection) void USaveSubsystem::Initialize(FSubsystemCollectionBase& Collection)
{ {
Super::Initialize(Collection); Super::Initialize(Collection);
@@ -56,6 +43,16 @@ UGlobalSaveGameData* USaveSubsystem::GetCurrentSave()
return CurrentSave; return CurrentSave;
} }
void USaveSubsystem::BP_LoadGame()
{
LoadGame();
}
void USaveSubsystem::BP_SaveGame()
{
SaveGame();
}
void USaveSubsystem::PopulateStartingData(UGlobalSaveGameData* Save) const void USaveSubsystem::PopulateStartingData(UGlobalSaveGameData* Save) const
{ {
if (!Save) if (!Save)
@@ -77,4 +74,4 @@ void USaveSubsystem::PopulateStartingData(UGlobalSaveGameData* Save) const
Record.Init(Instance); Record.Init(Instance);
Save->EquippedItems.Add(Record); Save->EquippedItems.Add(Record);
} }
} }
+7 -7
View File
@@ -19,13 +19,16 @@ public:
void LoadGame(const FString& SlotName = DefaultSaveSlotName); void LoadGame(const FString& SlotName = DefaultSaveSlotName);
bool SaveGame(const FString& SlotName = DefaultSaveSlotName) const; bool SaveGame(const FString& SlotName = DefaultSaveSlotName) const;
const TArray<FItemSaveRecord>& GetItems() const { return Items; }
void AddItem(const FItemSaveRecord& Record);
void RemoveItem(const FGuid& InstanceId);
virtual void Initialize(FSubsystemCollectionBase& Collection) override; virtual void Initialize(FSubsystemCollectionBase& Collection) override;
UGlobalSaveGameData* GetCurrentSave(); UGlobalSaveGameData* GetCurrentSave();
protected:
UFUNCTION(BlueprintCallable)
void BP_LoadGame();
UFUNCTION(BlueprintCallable)
void BP_SaveGame();
private: private:
void PopulateStartingData(UGlobalSaveGameData* Save) const; void PopulateStartingData(UGlobalSaveGameData* Save) const;
@@ -33,9 +36,6 @@ private:
UPROPERTY() UPROPERTY()
FString ActiveSlotName = DefaultSaveSlotName; FString ActiveSlotName = DefaultSaveSlotName;
UPROPERTY()
TArray<FItemSaveRecord> Items;
UPROPERTY() UPROPERTY()
TObjectPtr<UGlobalSaveGameData> CurrentSave; TObjectPtr<UGlobalSaveGameData> CurrentSave;
}; };