summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/hiscores.cc
diff options
context:
space:
mode:
authorelliptic <hyperelliptical@gmail.com>2013-12-09 21:51:43 -0500
committerelliptic <hyperelliptical@gmail.com>2013-12-09 21:56:39 -0500
commit5d3c58f3e0e05d2f547c0e2235cdac8cb4cae3db (patch)
tree09025fdbca9152eea01dd34bd32357819a3630fd /crawl-ref/source/hiscores.cc
parent0234849a946b3cc03c2c03eeed2b5163a43551cf (diff)
downloadcrawl-ref-5d3c58f3e0e05d2f547c0e2235cdac8cb4cae3db.tar.gz
crawl-ref-5d3c58f3e0e05d2f547c0e2235cdac8cb4cae3db.zip
Use the correct title in scorefile_entry stuff.
This fixes issues with the wrong UC title appearing sometimes if str > dex but base str < base dex (or the reverse).
Diffstat (limited to 'crawl-ref/source/hiscores.cc')
-rw-r--r--crawl-ref/source/hiscores.cc13
1 files changed, 6 insertions, 7 deletions
diff --git a/crawl-ref/source/hiscores.cc b/crawl-ref/source/hiscores.cc
index 3e3eccd494..7891ac28dc 100644
--- a/crawl-ref/source/hiscores.cc
+++ b/crawl-ref/source/hiscores.cc
@@ -693,6 +693,7 @@ void scorefile_entry::init_from(const scorefile_entry &se)
lvl = se.lvl;
best_skill = se.best_skill;
best_skill_lvl = se.best_skill_lvl;
+ title = se.title;
death_type = se.death_type;
death_source = se.death_source;
death_source_name = se.death_source_name;
@@ -897,6 +898,7 @@ void scorefile_entry::init_with_fields()
best_skill = str_to_skill(fields->str_field("sk"));
best_skill_lvl = fields->int_field("sklev");
+ title = fields->str_field("title");
death_type = _str_to_kill_method(fields->str_field("ktyp"));
death_source_name = fields->str_field("killer");
@@ -983,9 +985,7 @@ void scorefile_entry::set_base_xlog_fields() const
fields->add_field("xl", "%d", lvl);
fields->add_field("sk", "%s", skill_name(best_skill));
fields->add_field("sklev", "%d", best_skill_lvl);
- fields->add_field("title", "%s",
- skill_title(best_skill, best_skill_lvl,
- race, str, dex, god).c_str());
+ fields->add_field("title", "%s", title.c_str());
fields->add_field("place", "%s",
place_name(get_packed_place(branch, dlvl),
@@ -1298,6 +1298,7 @@ void scorefile_entry::reset()
race_class_name.clear();
best_skill = SK_NONE;
best_skill_lvl = 0;
+ title.clear();
death_type = KILLED_BY_SOMETHING;
death_source = NON_MONSTER;
death_source_name.clear();
@@ -1465,6 +1466,7 @@ void scorefile_entry::init(time_t dt)
lvl = you.experience_level;
best_skill = ::best_skill(SK_FIRST_SKILL, SK_LAST_SKILL);
best_skill_lvl = you.skills[ best_skill ];
+ title = player_title();
// Note all skills at level 27, and also all skills at level >= 15.
for (int i = SK_FIRST_SKILL; i < NUM_SKILLS; ++i)
@@ -1804,10 +1806,7 @@ scorefile_entry::character_description(death_desc_verbosity verbosity) const
if (verbose)
{
snprintf(buf, HIGHSCORE_SIZE, "%8d %s the %s (level %d",
- points, name.c_str(),
- skill_title(best_skill, best_skill_lvl,
- race, str, dex, god, piety).c_str(),
- lvl);
+ points, name.c_str(), title.c_str(), lvl);
desc = buf;
}
else