![]()
|
|
This should never have run for bAlreadyAssigned = true. Only if false, an actor will actually have been added to the workshop (ResetWorkshop doesn't remove any actors from the workshop, not even temporarily).
Checking for bAlreadyAssigned == false now before running the resource recalculation. In that case, we also don't have to care about RecalculateWorkshopResources() returning 'false' because it doesn't include any actors whose workshopID doesn't match.
Checking for bAlreadyAssigned == false now before running the resource recalculation. In that case, we also don't have to care about RecalculateWorkshopResources() returning 'false' because it doesn't include any actors whose workshopID doesn't match.
Oh, fair enough. bResetMode and bAlreadyAssigned are usually equal in most cases anyway, but I suppose checking bAlreadyAssigned makes more sense. I checked the rest of the game code and it looks like there are a few rare cases where a new actor is added with the bResetMode flag set for some reason, so that should fix that if it ever comes up.
Just to confirm that it works, since it's been a while since I submitted this, I haven't noticed a single instance of settler under/overcounting ever since I implemented my version of the fix in ~200 hours or so. Prior to it I'd notice that at least one settlement would be badly over-counted nearly every time I checked the map/pip-boy numbers in a while, so even my slightly imperfect fix was a huge improvement.
Just to confirm that it works, since it's been a while since I submitted this, I haven't noticed a single instance of settler under/overcounting ever since I implemented my version of the fix in ~200 hours or so. Prior to it I'd notice that at least one settlement would be badly over-counted nearly every time I checked the map/pip-boy numbers in a while, so even my slightly imperfect fix was a huge improvement.
Showing Comments 1 - 2 of 2