|
|
|
@ -254,7 +254,7 @@ public:
|
|
|
|
|
if (!resume_time)
|
|
|
|
|
want_resumed = false;
|
|
|
|
|
else if (world->frame_counter >= resume_time)
|
|
|
|
|
actual_job->flags.bits.suspend = false;
|
|
|
|
|
set_resumed(true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -262,7 +262,7 @@ public:
|
|
|
|
|
{
|
|
|
|
|
actual_job = job;
|
|
|
|
|
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_time = world->frame_counter + resume_delay;
|
|
|
|
@ -272,16 +272,23 @@ public:
|
|
|
|
|
{
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
resume_time = 0;
|
|
|
|
|
if (isActuallyResumed())
|
|
|
|
|
resume_delay = DAY_TICKS;
|
|
|
|
|
|
|
|
|
|
if (!actual_job->flags.bits.suspend)
|
|
|
|
|
{
|
|
|
|
|
actual_job->flags.bits.suspend = true;
|
|
|
|
|
actual_job->unk_v4020_1 = -1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
want_resumed = resume;
|
|
|
|
|