From 1c5023795822db90335ec8ddeca3e8d0806146b7 Mon Sep 17 00:00:00 2001 From: koritsa Date: Mon, 18 May 2026 20:57:34 +0300 Subject: [PATCH] Resolve Money duplication between ANakedDesireCharacter and UGlobalSaveGameData --- Source/NakedDesire/Global/Constants.h | 1 + Source/NakedDesire/Player/NakedDesireCharacter.cpp | 5 +++++ Source/NakedDesire/Player/NakedDesireCharacter.h | 2 +- Source/NakedDesire/SaveGame/GlobalSaveGameData.cpp | 14 ++++++++------ Source/NakedDesire/SaveGame/GlobalSaveGameData.h | 4 ++-- 5 files changed, 17 insertions(+), 9 deletions(-) diff --git a/Source/NakedDesire/Global/Constants.h b/Source/NakedDesire/Global/Constants.h index 4f3b3575..86c9ab4a 100644 --- a/Source/NakedDesire/Global/Constants.h +++ b/Source/NakedDesire/Global/Constants.h @@ -5,4 +5,5 @@ #define SLOT_NAME "Slot2" #define SLOT_PLAYER 0 #define IS_DEMO false +#define STARTING_MONEY 1000 diff --git a/Source/NakedDesire/Player/NakedDesireCharacter.cpp b/Source/NakedDesire/Player/NakedDesireCharacter.cpp index 6aa755f2..5bb15de4 100644 --- a/Source/NakedDesire/Player/NakedDesireCharacter.cpp +++ b/Source/NakedDesire/Player/NakedDesireCharacter.cpp @@ -154,6 +154,11 @@ void ANakedDesireCharacter::BeginPlay() UGlobalSaveGameData* SaveGameData = UGlobalSaveGameData::LoadOrCreateSaveGame(DefaultPlayerClothing, DefaultWardrobeClothing); + if (SaveGameData) + { + Money = FMath::RoundToInt(SaveGameData->Money); + } + SetupClothingSlots(); ClothingManager->OnClothingEquip.AddUniqueDynamic(this, &ANakedDesireCharacter::OnClothingEquip); diff --git a/Source/NakedDesire/Player/NakedDesireCharacter.h b/Source/NakedDesire/Player/NakedDesireCharacter.h index 3c490085..d17ddbae 100644 --- a/Source/NakedDesire/Player/NakedDesireCharacter.h +++ b/Source/NakedDesire/Player/NakedDesireCharacter.h @@ -136,7 +136,7 @@ public: float RunSpeed = 500.0f; UPROPERTY(BlueprintReadWrite) - int Money = 300000; + int Money = 0; int XP = 0; diff --git a/Source/NakedDesire/SaveGame/GlobalSaveGameData.cpp b/Source/NakedDesire/SaveGame/GlobalSaveGameData.cpp index d4786e96..e2ad4b34 100644 --- a/Source/NakedDesire/SaveGame/GlobalSaveGameData.cpp +++ b/Source/NakedDesire/SaveGame/GlobalSaveGameData.cpp @@ -8,7 +8,7 @@ #include "NakedDesire/Clothing/ClothingItemData.h" #include "NakedDesire/Clothing/ClothingList.h" -UGlobalSaveGameData* UGlobalSaveGameData::CreateNewSaveGame(TArray CurrentWardrobeClothing, TArray CurrentPlayerClothing) +UGlobalSaveGameData* UGlobalSaveGameData::CreateNewSaveGame(TArray CurrentWardrobeClothing, TArray CurrentPlayerClothing, float InMoney) { UGlobalSaveGameData* NewSave = Cast( UGameplayStatics::CreateSaveGameObject(UGlobalSaveGameData::StaticClass()) @@ -19,11 +19,13 @@ UGlobalSaveGameData* UGlobalSaveGameData::CreateNewSaveGame(TArrayMoney = InMoney; + for (const UClothingItemData* Item : CurrentWardrobeClothing) { NewSave->WardrobeClothing.Add(Item->ToSaveData()); } - + for (const UClothingItemData* Item : CurrentPlayerClothing) { NewSave->PlayerClothing.Add(Item->ToSaveData()); @@ -44,7 +46,7 @@ UGlobalSaveGameData* UGlobalSaveGameData::LoadOrCreateSaveGame(UClothingList* De UGlobalSaveGameData* NewSave = nullptr; if (DefaultWardrobeClothing && DefaultPlayerClothing) { - NewSave = CreateNewSaveGame(DefaultWardrobeClothing->ClothingItems, DefaultPlayerClothing->ClothingItems); + NewSave = CreateNewSaveGame(DefaultWardrobeClothing->ClothingItems, DefaultPlayerClothing->ClothingItems, STARTING_MONEY); } if (NewSave) @@ -56,11 +58,11 @@ UGlobalSaveGameData* UGlobalSaveGameData::LoadOrCreateSaveGame(UClothingList* De } bool UGlobalSaveGameData::SaveGame(const TArray CurrentWardrobeClothing, - const TArray CurrentPlayerClothing) + const TArray CurrentPlayerClothing, int32 Money) { - if (UGlobalSaveGameData* SaveGame = CreateNewSaveGame(CurrentWardrobeClothing, CurrentPlayerClothing)) + if (UGlobalSaveGameData* Save = CreateNewSaveGame(CurrentWardrobeClothing, CurrentPlayerClothing, (float)Money)) { - return UGameplayStatics::SaveGameToSlot(SaveGame, SLOT_NAME, SLOT_PLAYER); + return UGameplayStatics::SaveGameToSlot(Save, SLOT_NAME, SLOT_PLAYER); } return false; diff --git a/Source/NakedDesire/SaveGame/GlobalSaveGameData.h b/Source/NakedDesire/SaveGame/GlobalSaveGameData.h index ea3d9cfd..0ed9631b 100644 --- a/Source/NakedDesire/SaveGame/GlobalSaveGameData.h +++ b/Source/NakedDesire/SaveGame/GlobalSaveGameData.h @@ -34,8 +34,8 @@ public: static UGlobalSaveGameData* LoadOrCreateSaveGame(UClothingList* DefaultPlayerClothing, UClothingList* DefaultWardrobeClothing); UFUNCTION(BlueprintCallable) - static bool SaveGame(TArray CurrentWardrobeClothing, TArray CurrentPlayerClothing); + static bool SaveGame(TArray CurrentWardrobeClothing, TArray CurrentPlayerClothing, int32 Money); private: - static UGlobalSaveGameData* CreateNewSaveGame(TArray CurrentWardrobeClothing, TArray CurrentPlayerClothing); + static UGlobalSaveGameData* CreateNewSaveGame(TArray CurrentWardrobeClothing, TArray CurrentPlayerClothing, float InMoney); };