Clamp link graph compression ticks when loading old saves

This commit is contained in:
Jonathan G Rennison
2024-02-22 00:02:23 +00:00
parent 57a4586f08
commit 58f2e0cdf0

View File

@@ -271,15 +271,17 @@ void LinkGraphFixupAfterLoad(bool compression_was_date)
/* last_compression was previously a Date, change it to a StateTicks */ /* last_compression was previously a Date, change it to a StateTicks */
for (LinkGraph *lg : LinkGraph::Iterate()) { for (LinkGraph *lg : LinkGraph::Iterate()) {
if (compression_was_date) lg->last_compression = DateToStateTicks((EconTime::Date)lg->last_compression).base(); if (compression_was_date) lg->last_compression = DateToStateTicks((EconTime::Date)lg->last_compression).base();
lg->last_compression -= _state_ticks.base();
lg->last_compression += _scaled_tick_counter; lg->last_compression += _scaled_tick_counter;
lg->last_compression -= _state_ticks.base();
if (lg->last_compression > _scaled_tick_counter) lg->last_compression = _scaled_tick_counter;
} }
for (LinkGraphJob *lgj : LinkGraphJob::Iterate()) { for (LinkGraphJob *lgj : LinkGraphJob::Iterate()) {
LinkGraph *lg = &(const_cast<LinkGraph &>(lgj->Graph())); LinkGraph *lg = &(const_cast<LinkGraph &>(lgj->Graph()));
if (compression_was_date) lg->last_compression = DateToStateTicks((EconTime::Date)lg->last_compression).base(); if (compression_was_date) lg->last_compression = DateToStateTicks((EconTime::Date)lg->last_compression).base();
lg->last_compression -= _state_ticks.base();
lg->last_compression += _scaled_tick_counter; lg->last_compression += _scaled_tick_counter;
lg->last_compression -= _state_ticks.base();
if (lg->last_compression > _scaled_tick_counter) lg->last_compression = _scaled_tick_counter;
/* Change start and join ticks from DateTicks to ScaledTickCounter */ /* Change start and join ticks from DateTicks to ScaledTickCounter */
auto convert = [&](ScaledTickCounter &tick) { auto convert = [&](ScaledTickCounter &tick) {