Nightinggale
Deity
- Joined
- Feb 2, 2009
- Messages
- 5,279
Surprisingly CvPlot::hasYield() takes no arguments. The return bool tells if the plot produces any yield, but not anything about which yields it produces. This mean breeding yields doesn't matter as those plots will always be true due to other yields not affected by colony storage. The output is affected by colony buildings (docks), which is why all owned plots in a two plot radius are recalculated whenever a building is added or removed.But did you also test Lifestock Breeding (of Horses, Cattle and Sheep) ?
Because the Yield output from the plot depends on the amount of those Yields stored in the city and is thus highly dynamic.
I added an assert to check cache vs calculated result and I haven't managed to trigger that assert. I'm fairly confident that it works.
The only way I can see breeding yields as a problem would be if the plot can only produce breeding yields meaning the plot can't produce any yield at all until something is stored in the colony. That could be fixed, but at a performance cost. I would say we shouldn't worry about this as it would require heavy XML modifications to even trigger this scenario.