|
@@ -175,13 +175,13 @@ void StateGameLoop_LinkGraphPauseControl
|
|
|
/* We are paused waiting on a job, check the job every tick. */
|
|
|
if (!LinkGraphSchedule::instance.IsJoinWithUnfinishedJobDue()) {
|
|
|
Command<CMD_PAUSE>::Post(PM_PAUSED_LINK_GRAPH, false);
|
|
|
}
|
|
|
} else if (_pause_mode == PM_UNPAUSED &&
|
|
|
TimerGameCalendar::date_fract == LinkGraphSchedule::SPAWN_JOIN_TICK - 2 &&
|
|
|
static_cast<int32_t>(TimerGameCalendar::date) % (_settings_game.linkgraph.recalc_interval / SECONDS_PER_DAY) == (_settings_game.linkgraph.recalc_interval / SECONDS_PER_DAY) / 2 &&
|
|
|
static_cast<int32_t>(TimerGameCalendar::date) % (_settings_game.linkgraph.recalc_interval / CalendarTime::SECONDS_PER_DAY) == (_settings_game.linkgraph.recalc_interval / CalendarTime::SECONDS_PER_DAY) / 2 &&
|
|
|
LinkGraphSchedule::instance.IsJoinWithUnfinishedJobDue()) {
|
|
|
/* Perform check two TimerGameCalendar::date_fract ticks before we would join, to make
|
|
|
* sure it also works in multiplayer. */
|
|
|
Command<CMD_PAUSE>::Post(PM_PAUSED_LINK_GRAPH, true);
|
|
|
}
|
|
|
}
|
|
@@ -202,16 +202,16 @@ void AfterLoad_LinkGraphPauseControl()
|
|
|
* Spawn or join a link graph job or compress a link graph if any link graph is
|
|
|
* due to do so.
|
|
|
*/
|
|
|
void OnTick_LinkGraph()
|
|
|
{
|
|
|
if (TimerGameCalendar::date_fract != LinkGraphSchedule::SPAWN_JOIN_TICK) return;
|
|
|
TimerGameCalendar::Date offset = static_cast<int32_t>(TimerGameCalendar::date) % (_settings_game.linkgraph.recalc_interval / SECONDS_PER_DAY);
|
|
|
TimerGameCalendar::Date offset = static_cast<int32_t>(TimerGameCalendar::date) % (_settings_game.linkgraph.recalc_interval / CalendarTime::SECONDS_PER_DAY);
|
|
|
if (offset == 0) {
|
|
|
LinkGraphSchedule::instance.SpawnNext();
|
|
|
} else if (offset == (_settings_game.linkgraph.recalc_interval / SECONDS_PER_DAY) / 2) {
|
|
|
} else if (offset == (_settings_game.linkgraph.recalc_interval / CalendarTime::SECONDS_PER_DAY) / 2) {
|
|
|
if (!_networking || _network_server) {
|
|
|
PerformanceMeasurer::SetInactive(PFE_GL_LINKGRAPH);
|
|
|
LinkGraphSchedule::instance.JoinNext();
|
|
|
} else {
|
|
|
PerformanceMeasurer framerate(PFE_GL_LINKGRAPH);
|
|
|
LinkGraphSchedule::instance.JoinNext();
|