diff options
author | Raphael Langella <raphael.langella@gmail.com> | 2011-10-05 18:49:24 +0200 |
---|---|---|
committer | Raphael Langella <raphael.langella@gmail.com> | 2011-10-06 00:39:45 +0200 |
commit | f502aa4e4babb88fa16935affedba565f5005d67 (patch) | |
tree | 654f7712141da01753f4ea1870686d8accb2a4ce /crawl-ref/source/tilereg-skl.cc | |
parent | 7eaacbd1186644c32bf06f30dea0d3a3e878d8b0 (diff) | |
download | crawl-ref-f502aa4e4babb88fa16935affedba565f5005d67.tar.gz crawl-ref-f502aa4e4babb88fa16935affedba565f5005d67.zip |
Skill training code clean-up and tweaks.
Some general refactoring and simplification.
Simplified initialisation of the various arrays and exercise queue.
No more "You stop training foo" messages at startup.
Skills are displayed in grey whenever their training percentage is nil.
Skills that start with some points but with a level < 1.0 still get some
training percentage. More generally, there shouldn't be any special case
for "unknown" skills anymore.
Diffstat (limited to 'crawl-ref/source/tilereg-skl.cc')
-rw-r--r-- | crawl-ref/source/tilereg-skl.cc | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/crawl-ref/source/tilereg-skl.cc b/crawl-ref/source/tilereg-skl.cc index 82b5a658f3..c9cdcffd5f 100644 --- a/crawl-ref/source/tilereg-skl.cc +++ b/crawl-ref/source/tilereg-skl.cc @@ -6,6 +6,7 @@ #include "cio.h" #include "libutil.h" +#include "options.h" #include "skills.h" #include "skills2.h" #include "stuff.h" @@ -76,7 +77,10 @@ int SkillRegion::handle_mouse(MouseEvent &event) else { tiles.set_need_redraw(); - you.train[skill] = !you.train[skill]; + if (Options.skill_focus == SKM_FOCUS_OFF) + you.train[skill] = !you.train[skill]; + else + you.train[skill] = (you.train[skill] + 1) % 3; reset_training(); } return CK_MOUSE_CMD; @@ -110,7 +114,7 @@ bool SkillRegion::update_tip_text(std::string& tip) const int flag = m_items[item_idx].flag; if (flag & TILEI_FLAG_INVALID) - tip = "You don't have this skill yet."; + tip = "You cannot train this skill now."; else { const skill_type skill = (skill_type) m_items[item_idx].idx; @@ -231,14 +235,14 @@ void SkillRegion::update() InventoryTile desc; if (you.skills[skill] >= 27) desc.tile = tileidx_skill(skill, -1); - else if (!you.can_train[skill]) + else if (!you.training[skill]) desc.tile = tileidx_skill(skill, 0); else desc.tile = tileidx_skill(skill, you.train[skill]); desc.idx = idx; desc.quantity = you.skills[skill]; - if (you.skills[skill] == 0 || you.skills[skill] >= 27) + if (!you.can_train[skill] || you.skills[skill] >= 27) desc.flag |= TILEI_FLAG_INVALID; m_items.push_back(desc); |