summaryrefslogtreecommitdiff
path: root/graphs/cpp/war/regiment.cc
blob: 3534ced776fd2e6623a895ca0154548ba21d4f45 (plain)
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
34
35
36
37
38
#include "regiment.hh"

#include <vector>

void Regiment::join_by(Regiment& r)
{
    if (r.soldiers_.empty())
        return;
    std::vector<Soldier*> v{ r.soldiers_.rbegin(), r.soldiers_.rend() };
    while (!v.empty())
    {
        this->soldiers_.push_back(v.back());
        v.pop_back();
    }
    r.soldiers_.clear();
}
size_t Regiment::count() const
{
    return soldiers_.size();
}
void Regiment::add_soldier(Soldier* s)
{
    soldiers_.push_back(s);
}
void Regiment::print_state() const
{
    for (auto soldier : soldiers_)
    {
        soldier->print_state();
    }
}
void Regiment::scream() const
{
    for (auto soldier : soldiers_)
    {
        soldier->scream();
    }
}