Fix remove-while-iterating delegate bug in MissionsManager::RefreshDailyMissions
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user