Clean-up of hiscores.cc.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3794 c06c8d41-db1a-0410-9941-cceddc491573
WRPGGZRVGWWYCBWL5W5HMAM7CWLYICKZ6A36ZGQ3UEDW5O25FMOQC VQFVTC262JZIE7VHTN3OZHJ3AZROBKSOYK2AD2SWNIGPLJZT5PSAC 2T77DOO37HCQ7SVMDKOEXUTWR3WIHFM2RLRYANM5YBZAK5CCZROAC 6OKX22MRDGVHJE334AIXTV6NE7VJDYJLREGTWEGOVFSBYFIVASRAC TLDLODGU4NH47F32G3WS652E4AYA5ZGYS6TIOS6V2TEJJLNQ6WXQC 6O5667Y65C5GTP4V3NBKWUN22IRGCAXEELJ6MCANMYPBOKDUO75QC 2VVUGQRAV56RGTMOREX6ZQNJXDRYPLH5FS73JDZ4J46ECWV4CWAQC SVY2PTCLXR3KNPQAWXVXTTGCC5DR334HOAKHYO3VDDRWM2BWMALAC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC Z3RI4XAN7J2GUABAQ5G6YIOQYMBOAEQFFGRBWHMUEB2A2QYXO5MQC SVFEYUMU7YSZYB3B33RJYJZRRELJ2PJFJXX6NRUV3NSWKMBT56EQC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC RISMOCQM6BKK4XSIRKYLOBB2UPDYJNDAL6OGIIR5GGNZQAK5YSZAC OTHTO2GQ6S7DWMZ5BT7CB2OEK54XLL4NMH4G4DNCHEBGGCY6Y2XQC GR6ZABTGAAQTKZBVA7PTOYQG6G3ACF62ITT5COLHTRN2HGIPRG2AC YRY2TC3VHOYE47M23UJGUWDGF7H7WGU7WLWI4SUNM4EDNTGUPHGAC LY3EVV7EUNULYH3WSDZDLZYPJM4LHLOJTT3WETKYIJTKUP7UQPZAC 6HG6JFO47Y3BZLU7Y6G3R2CX6JFGN4X5PKK6S5IGUXUYQ5GVZYFQC DUN7EE7M7EH27OMYTBAAN2KIPQH4T375WLDSV2M3C7V54C4QOVXAC TAVHZJPVNJBZR7CUURAOYNDZPNVQ3AGHTXDEP5K4JGYETBLQJDRQC KXUQB3WNWC5IFL6VFWADEPQMMU3VV3NDI5FLA666PGOEWFYUHCLQC M5ZDZJBTOJ7SWQPZZQPC24JYZKP26MWSRDHXBWQE2MPPL6WCXOIQC ZBPZZ5A7AB2VFZKQ2UJXVDGUK22OCZJCEN2RWTGDGK3VXFCCDKVAC KFULGQQOHWUTXOM3BXCCYPGGVGGY4Z6265XUFRCBPNLTZAEHJZSQC TV3ZC6WOZKSQQJQN26JIVKCHK6UK7WMDBYZDUYRWEAZ4JB4YVNAAC 5UVDIVD4NSXA52U4QMQIVST3GSZJ2A2YZK3RUEXKPM43YVQ7LI5AC XDJGQNFELURGXMUAOOVALQMSLAJVHMG63KPKVA33HTJFVZROGZ4AC static FILE *hs_open(const char *mode, const std::string &filename);static void hs_close(FILE *handle, const char *mode,const std::string &filename);static bool hs_read(FILE *scores, scorefile_entry &dest);static void hs_write(FILE *scores, scorefile_entry &entry);static time_t parse_time(const std::string &st);
static FILE *_hs_open(const char *mode, const std::string &filename);static void _hs_close(FILE *handle, const char *mode,const std::string &filename);static bool _hs_read(FILE *scores, scorefile_entry &dest);static void _hs_write(FILE *scores, scorefile_entry &entry);static time_t _parse_time(const std::string &st);
return se.hiscore_line(verbose?scorefile_entry::DDV_VERBOSE: scorefile_entry::DDV_NORMAL );
return se.hiscore_line( verbose ? scorefile_entry::DDV_VERBOSE: scorefile_entry::DDV_NORMAL );
date.tm_mon = val_char( st[4] ) * 10 + val_char( st[5] );date.tm_mday = val_char( st[6] ) * 10 + val_char( st[7] );date.tm_hour = val_char( st[8] ) * 10 + val_char( st[9] );date.tm_min = val_char( st[10] ) * 10 + val_char( st[11] );date.tm_sec = val_char( st[12] ) * 10 + val_char( st[13] );
date.tm_mon = _val_char( st[4] ) * 10 + _val_char( st[5] );date.tm_mday = _val_char( st[6] ) * 10 + _val_char( st[7] );date.tm_hour = _val_char( st[8] ) * 10 + _val_char( st[9] );date.tm_min = _val_char( st[10] ) * 10 + _val_char( st[11] );date.tm_sec = _val_char( st[12] ) * 10 + _val_char( st[13] );
version = se.version;points = se.points;name = se.name;uid = se.uid;race = se.race;cls = se.cls;race_class_name = se.race_class_name;lvl = se.lvl;best_skill = se.best_skill;best_skill_lvl = se.best_skill_lvl;death_type = se.death_type;death_source = se.death_source;mon_num = se.mon_num;
version = se.version;points = se.points;name = se.name;uid = se.uid;race = se.race;cls = se.cls;race_class_name = se.race_class_name;lvl = se.lvl;best_skill = se.best_skill;best_skill_lvl = se.best_skill_lvl;death_type = se.death_type;death_source = se.death_source;mon_num = se.mon_num;
auxkilldata = se.auxkilldata;dlvl = se.dlvl;level_type = se.level_type;branch = se.branch;final_hp = se.final_hp;final_max_hp = se.final_max_hp;final_max_max_hp = se.final_max_max_hp;damage = se.damage;str = se.str;intel = se.intel;dex = se.dex;god = se.god;piety = se.piety;penance = se.penance;wiz_mode = se.wiz_mode;birth_time = se.birth_time;death_time = se.death_time;real_time = se.real_time;num_turns = se.num_turns;num_diff_runes = se.num_diff_runes;num_runes = se.num_runes;
auxkilldata = se.auxkilldata;dlvl = se.dlvl;level_type = se.level_type;branch = se.branch;final_hp = se.final_hp;final_max_hp = se.final_max_hp;final_max_max_hp = se.final_max_max_hp;damage = se.damage;str = se.str;intel = se.intel;dex = se.dex;god = se.god;piety = se.piety;penance = se.penance;wiz_mode = se.wiz_mode;birth_time = se.birth_time;death_time = se.death_time;real_time = se.real_time;num_turns = se.num_turns;num_diff_runes = se.num_diff_runes;num_runes = se.num_runes;
points = fields->long_field("sc");name = fields->str_field("name");uid = fields->int_field("uid");race = str_to_species(fields->str_field("race"));cls = get_class_by_name(fields->str_field("cls").c_str());
points = fields->long_field("sc");
auxkilldata = fields->str_field("kaux");branch = str_to_branch(fields->str_field("br"), BRANCH_MAIN_DUNGEON);dlvl = fields->int_field("lvl");level_type = str_to_level_area_type(fields->str_field("ltyp"));
auxkilldata = fields->str_field("kaux");
final_hp = fields->int_field("hp");final_max_hp = fields->int_field("mhp");
branch = str_to_branch(fields->str_field("br"), BRANCH_MAIN_DUNGEON);dlvl = fields->int_field("lvl");level_type = _str_to_level_area_type(fields->str_field("ltyp"));final_hp = fields->int_field("hp");final_max_hp = fields->int_field("mhp");
get_species_abbrev(race),get_class_abbrev(cls));fields->add_field("xl", "%d", lvl);fields->add_field("sk", "%s", skill_name(best_skill));
get_species_abbrev(race), get_class_abbrev(cls));fields->add_field("xl", "%d", lvl);fields->add_field("sk", "%s", skill_name(best_skill));
place_name(get_packed_place(branch, dlvl, level_type),false, true).c_str());fields->add_field("br", "%s", short_branch_name(branch));fields->add_field("lvl", "%d", dlvl);
place_name(get_packed_place(branch, dlvl, level_type),false, true).c_str());fields->add_field("br", "%s", _short_branch_name(branch));fields->add_field("lvl", "%d", dlvl);
points = -1;name[0] = 0;uid = 0;race = 0;cls = 0;lvl = 0;race_class_name[0] = 0;best_skill = 0;best_skill_lvl = 0;death_type = KILLED_BY_SOMETHING;death_source = 0;mon_num = 0;
points = -1;name[0] = 0;uid = 0;race = 0;cls = 0;lvl = 0;race_class_name[0] = 0;best_skill = 0;best_skill_lvl = 0;death_type = KILLED_BY_SOMETHING;death_source = 0;mon_num = 0;
auxkilldata[0] = 0;dlvl = 0;level_type = LEVEL_DUNGEON;branch = BRANCH_MAIN_DUNGEON;final_hp = -1;final_max_hp = -1;final_max_max_hp = -1;str = -1;intel = -1;dex = -1;damage = -1;god = GOD_NO_GOD;piety = -1;penance = -1;wiz_mode = 0;birth_time = 0;death_time = 0;real_time = -1;num_turns = -1;num_diff_runes = 0;num_runes = 0;
auxkilldata[0] = 0;dlvl = 0;level_type = LEVEL_DUNGEON;branch = BRANCH_MAIN_DUNGEON;final_hp = -1;final_max_hp = -1;final_max_max_hp = -1;str = -1;intel = -1;dex = -1;damage = -1;god = GOD_NO_GOD;piety = -1;penance = -1;wiz_mode = 0;birth_time = 0;death_time = 0;real_time = -1;num_turns = -1;num_diff_runes = 0;num_runes = 0;}static int _award_modified_experience(){int xp = you.experience;int result = 0;if (xp <= 250000)return ((xp * 7) / 10);result += (250000 * 7) / 10;xp -= 250000;if (xp <= 750000){result += (xp * 4) / 10;return (result);}result += (750000 * 4) / 10;xp -= 750000;if (xp <= 2000000){result += (xp * 2) / 10;return (result);}result += (2000000 * 2) / 10;xp -= 2000000;result += (xp / 10);return (result);
/** old scoring system:** Gold* + 0.7 * Experience* + (distinct Runes +2)^2 * 1000, winners with distinct runes >= 3 only* + value of Inventory, for winners only*** new scoring system, as suggested by Lemuel:** Gold* + 0.7 * Experience up to 250,000* + 0.4 * Experience between 250,000 and 1,000,000* + 0.2 * Experience between 1,000,000 and 3,000,000* + 0.1 * Experience above 3,000,000* + (distinct Runes +2)^2 * 1000, winners with distinct runes >= 3 only* + value of Inventory, for winners only* + (250,000 * distinct Runes) * (25,000/(turns/rune)), for winners only**/
dlvl = player_branch_depth();branch = you.where_are_you; // no adjustments necessary.
dlvl = player_branch_depth();branch = you.where_are_you; // no adjustments necessary.
return make_stringf("%8ld %-10s %s-%02d%s", points, scname.c_str(),char_desc.c_str(), lvl, (wiz_mode == 1) ? "W" : "" );
return make_stringf( "%8ld %-10s %s-%02d%s", points, scname.c_str(),char_desc.c_str(), lvl, (wiz_mode == 1) ? "W" : "" );
(piety > 160) ? "the Champion" :(piety >= 120) ? "a High Priest" :(piety >= 100) ? "an Elder" :(piety >= 75) ? "a Priest" :(piety >= 50) ? "a Believer" :(piety >= 30) ? "a Follower"
(piety > 160) ? "the Champion" :(piety >= 120) ? "a High Priest" :(piety >= 100) ? "an Elder" :(piety >= 75) ? "a Priest" :(piety >= 50) ? "a Believer" :(piety >= 30) ? "a Follower"