diff --git a/src/linkgraph/linkgraphschedule.cpp b/src/linkgraph/linkgraphschedule.cpp index 806e31c58a..f27053da6a 100644 --- a/src/linkgraph/linkgraphschedule.cpp +++ b/src/linkgraph/linkgraphschedule.cpp @@ -336,6 +336,17 @@ void StateGameLoop_LinkGraphPauseControl() } } +/** + * Pause the game on load if we would do a join with the next link graph job, but it is still running, and it would not + * be caught by a call to StateGameLoop_LinkGraphPauseControl(). + */ +void AfterLoad_LinkGraphPauseControl() +{ + if (LinkGraphSchedule::instance.IsJoinWithUnfinishedJobDue()) { + _pause_mode |= PM_PAUSED_LINK_GRAPH; + } +} + /** * Spawn or join a link graph job or compress a link graph if any link graph is * due to do so. diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp index 9bfbac79c7..f25286f35a 100644 --- a/src/saveload/afterload.cpp +++ b/src/saveload/afterload.cpp @@ -3665,6 +3665,11 @@ bool AfterLoadGame() default: break; } + if (!_networking || _network_server) { + extern void AfterLoad_LinkGraphPauseControl(); + AfterLoad_LinkGraphPauseControl(); + } + return true; }