MCPcopy Create free account
hub / github.com/DFHack/dfhack / populateFortColumn

Method populateFortColumn

plugins/dwarfmonitor.cpp:460–807  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

458 }
459
460 void populateFortColumn()
461 {
462 selected_column = 0;
463 fort_activity_count = 0;
464
465 auto last_selected_index = fort_activity_column.highlighted_index;
466 fort_activity_column.clear();
467 fort_activity_totals.clear();
468 dwarf_activity_values.clear();
469 category_breakdown.clear();
470
471 for (auto it = work_history.begin(); it != work_history.end();)
472 {
473 auto unit = it->first;
474 if (!Units::isActive(unit))
475 {
476 work_history.erase(it++);
477 continue;
478 }
479
480 deque<activity_type> *work_list = &it->second;
481 ++it;
482
483 size_t count = window_days * ticks_per_day;
484 for (auto entry = work_list->rbegin(); entry != work_list->rend() && count > 0; entry++, count--)
485 {
486 if (*entry == JOB_UNKNOWN)
487 continue;
488
489 ++fort_activity_count;
490
491 auto real_activity = *entry;
492 if (real_activity < 0)
493 {
494 addFortActivity(real_activity);
495 }
496 else
497 {
498 auto activity = static_cast<df::job_type>(real_activity);
499
500 switch (activity)
501 {
502 case job_type::Eat:
503 case job_type::Drink:
504 case job_type::DrinkItem:
505 case job_type::Sleep:
506 case job_type::AttendParty:
507 case job_type::Rest:
508 case job_type::CleanSelf:
509 case job_type::DrinkBlood:
510 real_activity = JOB_LEISURE;
511 break;
512
513 case job_type::Kidnap:
514 case job_type::StartingFistFight:
515 case job_type::SeekInfant:
516 case job_type::SeekArtifact:
517 case job_type::GoShopping:

Callers

nothing calls this directly

Calls 10

sortFunction · 0.85
getPercentageFunction · 0.85
fixWidthMethod · 0.80
filterDisplayMethod · 0.80
setHighlightMethod · 0.80
clearMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
eraseMethod · 0.45
findMethod · 0.45

Tested by

no test coverage detected