diff options
author | Bardur Arantsson <bardur@scientician.net> | 2016-09-17 09:58:13 +0200 |
---|---|---|
committer | Bardur Arantsson <bardur@scientician.net> | 2016-09-17 09:58:13 +0200 |
commit | 10c45c9975c076476cf1bcb6a1260c1ee055a6a1 (patch) | |
tree | 54b3d9115f245eb5524e11ee34b685405575a797 /src/skills.cc | |
parent | 0a16384475488d682e33c8d55691e5d9417412ac (diff) |
Change 'abilities' member of player_* to a std::vector<>
Diffstat (limited to 'src/skills.cc')
-rw-r--r-- | src/skills.cc | 46 |
1 files changed, 14 insertions, 32 deletions
diff --git a/src/skills.cc b/src/skills.cc index bc508c54..70665a49 100644 --- a/src/skills.cc +++ b/src/skills.cc @@ -1749,41 +1749,23 @@ void do_cmd_ability() */ void apply_level_abilities(int level) { - int i; - - for (i = 0; i < 10; i++) + auto apply = [level](std::vector<player_race_ability_type> const &abilities) -> void { - if (cp_ptr->abilities[i].level == level) - { - if ((level > 1) && (!ab_info[cp_ptr->abilities[i].ability].acquired)) - { - cmsg_format(TERM_L_GREEN, "You have learned the ability '%s'.", ab_info[cp_ptr->abilities[i].ability].name); - } - ab_info[cp_ptr->abilities[i].ability].acquired = TRUE; - } - if (spp_ptr->abilities[i].level == level) + for (auto const &a: abilities) { - if ((level > 1) && (!ab_info[spp_ptr->abilities[i].ability].acquired)) + if (a.level == level) { - cmsg_format(TERM_L_GREEN, "You have learned the ability '%s'.", ab_info[spp_ptr->abilities[i].ability].name); - } - ab_info[spp_ptr->abilities[i].ability].acquired = TRUE; - } - if (rp_ptr->abilities[i].level == level) - { - if ((level > 1) && (!ab_info[rp_ptr->abilities[i].ability].acquired)) - { - cmsg_format(TERM_L_GREEN, "You have learned the ability '%s'.", ab_info[rp_ptr->abilities[i].ability].name); - } - ab_info[rp_ptr->abilities[i].ability].acquired = TRUE; - } - if (rmp_ptr->abilities[i].level == level) - { - if ((level > 1) && (!ab_info[rmp_ptr->abilities[i].ability].acquired)) - { - cmsg_format(TERM_L_GREEN, "You have learned the ability '%s'.", ab_info[rmp_ptr->abilities[i].ability].name); + if ((level > 1) && (!ab_info[a.ability].acquired)) + { + cmsg_format(TERM_L_GREEN, "You have learned the ability '%s'.", ab_info[a.ability].name); + } + ab_info[a.ability].acquired = TRUE; } - ab_info[rmp_ptr->abilities[i].ability].acquired = TRUE; } - } + }; + + apply(cp_ptr->abilities); + apply(spp_ptr->abilities); + apply(rp_ptr->abilities); + apply(rmp_ptr->abilities); } |