Merge remote-tracking branch 'acwatkins/feature/fixStuckWorkflowJobs' into develop

develop
lethosor 2015-05-24 11:44:45 -04:00
commit c5f61af172
1 changed files with 11 additions and 4 deletions

@ -254,7 +254,7 @@ public:
if (!resume_time) if (!resume_time)
want_resumed = false; want_resumed = false;
else if (world->frame_counter >= resume_time) else if (world->frame_counter >= resume_time)
actual_job->flags.bits.suspend = false; set_resumed(true);
} }
} }
@ -262,7 +262,7 @@ public:
{ {
actual_job = job; actual_job = job;
job->flags.bits.repeat = true; job->flags.bits.repeat = true;
job->flags.bits.suspend = true; set_resumed(false);
resume_delay = std::min(DAY_TICKS*MONTH_DAYS, 5*resume_delay/3); resume_delay = std::min(DAY_TICKS*MONTH_DAYS, 5*resume_delay/3);
resume_time = world->frame_counter + resume_delay; resume_time = world->frame_counter + resume_delay;
@ -272,16 +272,23 @@ public:
{ {
if (resume) if (resume)
{ {
if (world->frame_counter >= resume_time) if (world->frame_counter >= resume_time && actual_job->flags.bits.suspend)
{
actual_job->unk_v4020_1 = -1;
actual_job->flags.bits.suspend = false; actual_job->flags.bits.suspend = false;
} }
}
else else
{ {
resume_time = 0; resume_time = 0;
if (isActuallyResumed()) if (isActuallyResumed())
resume_delay = DAY_TICKS; resume_delay = DAY_TICKS;
if (!actual_job->flags.bits.suspend)
{
actual_job->flags.bits.suspend = true; actual_job->flags.bits.suspend = true;
actual_job->unk_v4020_1 = -1;
}
} }
want_resumed = resume; want_resumed = resume;