44 lines
889 B
C++
44 lines
889 B
C++
#include "SaveSubsystem.h"
|
|
#include "GlobalSaveGameData.h"
|
|
#include "ItemSaveRecord.h"
|
|
|
|
void USaveSubsystem::LoadGame(const FString& SlotName)
|
|
{
|
|
CurrentSave = UGlobalSaveGameData::LoadGame(SlotName);
|
|
}
|
|
|
|
bool USaveSubsystem::SaveGame(const FString& SlotName) const
|
|
{
|
|
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)
|
|
{
|
|
Super::Initialize(Collection);
|
|
|
|
LoadGame();
|
|
}
|
|
|
|
UGlobalSaveGameData* USaveSubsystem::GetCurrentSave()
|
|
{
|
|
if (!CurrentSave)
|
|
{
|
|
CurrentSave = UGlobalSaveGameData::LoadOrCreateSaveGame(ActiveSlotName);
|
|
}
|
|
|
|
return CurrentSave;
|
|
}
|