| 427 | } |
| 428 | |
| 429 | static void adjust_unit_counters(df::unit * unit, int32_t timeskip) { |
| 430 | auto * c1 = &unit->counters; |
| 431 | decrement_counter(c1, &df::unit::T_counters::job_counter, timeskip); |
| 432 | decrement_counter(c1, &df::unit::T_counters::swap_counter, timeskip); |
| 433 | decrement_counter(c1, &df::unit::T_counters::winded, timeskip); |
| 434 | decrement_counter(c1, &df::unit::T_counters::stunned, timeskip); |
| 435 | decrement_counter(c1, &df::unit::T_counters::unconscious, timeskip); |
| 436 | decrement_counter(c1, &df::unit::T_counters::suffocation, timeskip); |
| 437 | decrement_counter(c1, &df::unit::T_counters::webbed, timeskip); |
| 438 | decrement_counter(c1, &df::unit::T_counters::soldier_mood_countdown, timeskip); |
| 439 | decrement_counter(c1, &df::unit::T_counters::pain, timeskip); |
| 440 | decrement_counter(c1, &df::unit::T_counters::nausea, timeskip); |
| 441 | decrement_counter(c1, &df::unit::T_counters::dizziness, timeskip); |
| 442 | auto * c2 = &unit->counters2; |
| 443 | decrement_counter(c2, &df::unit::T_counters2::paralysis, timeskip); |
| 444 | decrement_counter(c2, &df::unit::T_counters2::numbness, timeskip); |
| 445 | decrement_counter(c2, &df::unit::T_counters2::fever, timeskip); |
| 446 | decrement_counter(c2, &df::unit::T_counters2::exhaustion, timeskip * 3); |
| 447 | increment_counter(c2, &df::unit::T_counters2::hunger_timer, timeskip); |
| 448 | increment_counter(c2, &df::unit::T_counters2::thirst_timer, timeskip); |
| 449 | auto job = unit->job.current_job; |
| 450 | if (job && job->job_type == df::job_type::Rest) |
| 451 | decrement_counter(c2, &df::unit::T_counters2::sleepiness_timer, timeskip * 200); |
| 452 | else if (job && job->job_type == df::job_type::Sleep) |
| 453 | decrement_counter(c2, &df::unit::T_counters2::sleepiness_timer, timeskip * 19); |
| 454 | else |
| 455 | increment_counter(c2, &df::unit::T_counters2::sleepiness_timer, timeskip); |
| 456 | decrement_counter(c2, &df::unit::T_counters2::stomach_content, timeskip * 5); |
| 457 | decrement_counter(c2, &df::unit::T_counters2::stomach_food, timeskip * 5); |
| 458 | decrement_counter(c2, &df::unit::T_counters2::vomit_timeout, timeskip); |
| 459 | // stored_fat wanders about based on other state; we can likely leave it alone and |
| 460 | // not materially affect gameplay |
| 461 | } |
| 462 | |
| 463 | // need to manually adjust job completion_timer values for jobs that are controlled by unit actions |
| 464 | // with a timer of 1, which are destroyed immediately after they are created. longer-lived unit |
no test coverage detected