summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/hiscores.cc
diff options
context:
space:
mode:
authordshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2009-07-25 16:25:25 +0000
committerdshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2009-07-25 16:25:25 +0000
commitb736da84096898e66c6cd777020319d4391b604c (patch)
treeac7b0684ea88b1438eb19a7260bc3d4123ee82d0 /crawl-ref/source/hiscores.cc
parent3cd7d88e4a445431c8ce6f1e8b6c107228649b4e (diff)
downloadcrawl-ref-b736da84096898e66c6cd777020319d4391b604c.tar.gz
crawl-ref-b736da84096898e66c6cd777020319d4391b604c.zip
More milestones and logfile fields for the Crawl tournament.
Add milestones for worshipping and renouncing gods. Record number of kills and all skills at level 27 in the logfile and milestones. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10406 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/hiscores.cc')
-rw-r--r--crawl-ref/source/hiscores.cc23
1 files changed, 23 insertions, 0 deletions
diff --git a/crawl-ref/source/hiscores.cc b/crawl-ref/source/hiscores.cc
index 5207bf3109..03180c5b12 100644
--- a/crawl-ref/source/hiscores.cc
+++ b/crawl-ref/source/hiscores.cc
@@ -43,6 +43,7 @@ REVISION("$Rev$");
#include "itemname.h"
#include "itemprop.h"
#include "items.h"
+#include "Kills.h"
#include "libutil.h"
#include "message.h"
#include "mon-util.h"
@@ -521,6 +522,8 @@ void scorefile_entry::init_from(const scorefile_entry &se)
num_turns = se.num_turns;
num_diff_runes = se.num_diff_runes;
num_runes = se.num_runes;
+ kills = se.kills;
+ maxed_skills = se.maxed_skills;
}
bool scorefile_entry::parse(const std::string &line)
@@ -617,6 +620,9 @@ void scorefile_entry::init_with_fields()
num_diff_runes = fields->int_field("urune");
num_runes = fields->int_field("nrune");
+
+ kills = fields->long_field("kills");
+ maxed_skills = fields->str_field("maxskills");
}
void scorefile_entry::set_base_xlog_fields() const
@@ -679,6 +685,10 @@ void scorefile_entry::set_base_xlog_fields() const
if (num_runes)
fields->add_field("nrune", "%d", num_runes);
+
+ fields->add_field("kills", "%ld", kills);
+ if (!maxed_skills.empty())
+ fields->add_field("maxskills", "%s", maxed_skills.c_str());
}
void scorefile_entry::set_score_fields() const
@@ -874,6 +884,8 @@ void scorefile_entry::reset()
num_turns = -1;
num_diff_runes = 0;
num_runes = 0;
+ kills = 0L;
+ maxed_skills.clear();
}
static int _award_modified_experience()
@@ -1023,6 +1035,17 @@ void scorefile_entry::init()
best_skill = ::best_skill( SK_FIGHTING, NUM_SKILLS - 1, 99 );
best_skill_lvl = you.skills[ best_skill ];
+ // Note all skills at level 27.
+ for (int sk = 0; sk < NUM_SKILLS; ++sk) {
+ if (you.skills[sk] == 27) {
+ if (!maxed_skills.empty())
+ maxed_skills += ",";
+ maxed_skills += skill_name(sk);
+ }
+ }
+
+ kills = you.kills->total_kills();
+
final_hp = you.hp;
final_max_hp = you.hp_max;
final_max_max_hp = get_real_hp(true, true);