Running supply recursively here is problematic, because it can draw
supplies from the outer supply's destination, which can then end up
with less than it asked for.
Serving as supply source never puts a unit that is in supply out of
supply. So, the recursive supply here denies the sink its supplies to
put a supply unit somewhere else back in supply. That's robbing Peter
to pay Paul. Drop it.
if (can_move >= wanted) {
land.lnd_item[type] -= wanted;
if (can_move >= wanted) {
land.lnd_item[type] -= wanted;
-
- /* resupply the supply unit */
- resupply_commod(&land, type);
-
land.lnd_mobil -= roundavg(wanted * weight * move_cost);
if (actually_doit)
land.lnd_mobil -= roundavg(wanted * weight * move_cost);
if (actually_doit)