File: skill_ui.cpp

package info (click to toggle)
cataclysm-dda 0.H-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 710,808 kB
  • sloc: cpp: 524,019; python: 11,580; sh: 1,228; makefile: 1,169; xml: 507; javascript: 150; sql: 56; exp: 41; perl: 37
file content (33 lines) | stat: -rw-r--r-- 1,057 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include "skill_ui.h"

#include "type_id.h"
#include "ui.h"

std::vector<HeaderSkill> get_HeaderSkills( const std::vector<const Skill *> &sorted_skills )
{
    std::vector<HeaderSkill> skill_list;
    skill_displayType_id prev_type = skill_displayType_id::NULL_ID();
    for( const Skill * const &s : sorted_skills ) {
        if( s->display_category() != prev_type ) {
            prev_type = s->display_category();
            skill_list.emplace_back( s, true );
        }
        skill_list.emplace_back( s, false );
    }
    return skill_list;
}

template void skip_skill_headers<int>( const std::vector<HeaderSkill> &, int &, bool );
template void skip_skill_headers<unsigned>( const std::vector<HeaderSkill> &, unsigned &, bool );

template<typename V>
void skip_skill_headers( const std::vector<HeaderSkill> &skillslist, V &line, bool inc )
{
    const V prev_line = line;
    while( skillslist[line].is_header ) {
        line = inc_clamp_wrap( line, inc, skillslist.size() );
        if( line == prev_line ) {
            break;
        }
    }
}