Fix remove-while-iterating delegate bug in MissionsManager::RefreshDailyMissions

This commit is contained in:
2026-05-18 20:49:33 +03:00
parent d94fdafdac
commit a5bd139f62
@@ -52,15 +52,15 @@ void UMissionsManager::CollectRewards()
void UMissionsManager::RefreshDailyMissions(const TArray<UMission*>& NewMissions) void UMissionsManager::RefreshDailyMissions(const TArray<UMission*>& NewMissions)
{ {
for (auto Mission : AvailableMissions) for (UMission* Mission : AvailableMissions)
{ {
Mission->OnComplete.RemoveAll(this); Mission->OnComplete.RemoveAll(this);
AvailableMissions.Remove(Mission);
} }
AvailableMissions.Reset();
AvailableMissions.Append(NewMissions); AvailableMissions.Append(NewMissions);
for (auto Mission : AvailableMissions) for (UMission* Mission : AvailableMissions)
{ {
Mission->Init(Player); Mission->Init(Player);
Mission->OnComplete.AddUObject(this, &UMissionsManager::CompleteMission); Mission->OnComplete.AddUObject(this, &UMissionsManager::CompleteMission);