diff --git a/src/openttd.cpp b/src/openttd.cpp index 27336705ce..c3dfcfa661 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -1687,8 +1687,17 @@ void CheckCaches(bool force_check, std::function log) if (_order_destination_refcount_map_valid) { btree::btree_map saved_order_destination_refcount_map = std::move(_order_destination_refcount_map); + for (auto iter = saved_order_destination_refcount_map.begin(); iter != saved_order_destination_refcount_map.end();) { + if (iter->second == 0) { + iter = saved_order_destination_refcount_map.erase(iter); + } else { + ++iter; + } + } IntialiseOrderDestinationRefcountMap(); if (saved_order_destination_refcount_map != _order_destination_refcount_map) CCLOG("Order destination refcount map mismatch"); + } else { + CCLOG("Order destination refcount map not valid"); } #undef CCLOG