diff options
author | zelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-11-29 06:09:05 +0000 |
---|---|---|
committer | zelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-11-29 06:09:05 +0000 |
commit | 54a8ee37c5d6bee4ed77eef17bad080c0f81b175 (patch) | |
tree | 716c830d70191daf73308a8926f4095d7d7a75ae /crawl-ref/source/chardump.cc | |
parent | f44df6134a719e58bb61f48c4d6d12089dd69cb8 (diff) | |
download | crawl-ref-54a8ee37c5d6bee4ed77eef17bad080c0f81b175.tar.gz crawl-ref-54a8ee37c5d6bee4ed77eef17bad080c0f81b175.zip |
Changed player attribute type from unsigned char to unsigned long. Breaks
savefile compatibility.
Keep track of how much gold the player has collected, spent at shops,
donated, and otherwise used (like at ziggurats) and include that info
in the misc section of the character dump file.
Place-holder for chaos spawn monster.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7683 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/chardump.cc')
-rw-r--r-- | crawl-ref/source/chardump.cc | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/crawl-ref/source/chardump.cc b/crawl-ref/source/chardump.cc index c02ecac128..155168a3db 100644 --- a/crawl-ref/source/chardump.cc +++ b/crawl-ref/source/chardump.cc @@ -65,6 +65,7 @@ static void _sdump_burden(dump_params &); static void _sdump_hunger(dump_params &); static void _sdump_transform(dump_params &); static void _sdump_visits(dump_params &); +static void _sdump_gold(dump_params &); static void _sdump_misc(dump_params &); static void _sdump_turns_by_place(dump_params &); static void _sdump_notes(dump_params &); @@ -118,6 +119,7 @@ static dump_section_handler dump_handlers[] = { { "hunger", _sdump_hunger }, { "transform", _sdump_transform }, { "visits", _sdump_visits }, + { "gold", _sdump_gold }, { "misc", _sdump_misc }, { "turns_by_place", _sdump_turns_by_place}, { "notes", _sdump_notes }, @@ -329,6 +331,49 @@ static void _sdump_visits(dump_params &par) text += "\n"; } +static void _sdump_gold(dump_params &par) +{ + std::string &text(par.text); + + int lines = 0; + + const char* have = "have "; + if (par.se) // you died -> past tense + have = ""; + + if (you.attribute[ATTR_GOLD_FOUND] > 0) + { + lines++; + text += make_stringf("You %scollected %d gold pieces.\n", have, + you.attribute[ATTR_GOLD_FOUND]); + } + + if (you.attribute[ATTR_PURCHASES] > 0) + { + lines++; + text += make_stringf("You %sspent %d gold pieces at shops.\n", have, + you.attribute[ATTR_PURCHASES]); + } + + if (you.attribute[ATTR_DONATIONS] > 0) + { + lines++; + text += make_stringf("You %sdonated %d gold pices.\n", have, + you.attribute[ATTR_DONATIONS]); + } + + if (you.attribute[ATTR_MISC_SPENDING] > 0) + { + lines++; + text += make_stringf("You %sused %d gold pieces for miscellaneous " + "purposes.\n", have, + you.attribute[ATTR_MISC_SPENDING]); + } + + if (lines > 0) + text += "\n"; +} + static void _sdump_misc(dump_params &par) { _sdump_location(par); @@ -337,6 +382,7 @@ static void _sdump_misc(dump_params &par) _sdump_hunger(par); _sdump_transform(par); _sdump_visits(par); + _sdump_gold(par); } #define TO_PERCENT(x, y) (100.0f * ((float) (x)) / ((float) (y))) |