summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/tilereg-skl.cc
diff options
context:
space:
mode:
authorRaphael Langella <raphael.langella@gmail.com>2011-10-05 18:49:24 +0200
committerRaphael Langella <raphael.langella@gmail.com>2011-10-06 00:39:45 +0200
commitf502aa4e4babb88fa16935affedba565f5005d67 (patch)
tree654f7712141da01753f4ea1870686d8accb2a4ce /crawl-ref/source/tilereg-skl.cc
parent7eaacbd1186644c32bf06f30dea0d3a3e878d8b0 (diff)
downloadcrawl-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.cc12
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);