summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crawl-ref/source/acr.cc6
-rw-r--r--crawl-ref/source/chardump.cc2
-rw-r--r--crawl-ref/source/stash.cc5
3 files changed, 7 insertions, 6 deletions
diff --git a/crawl-ref/source/acr.cc b/crawl-ref/source/acr.cc
index c9dcd815d8..969fff663f 100644
--- a/crawl-ref/source/acr.cc
+++ b/crawl-ref/source/acr.cc
@@ -1441,12 +1441,6 @@ static void _input()
_world_reacts();
return;
}
- else
- {
- // Don't do this while delayed, so as to not slow down resting
- // and travel by iterating over all stahses once per player turn.
- StashTrack.update_corpses();
- }
if ( you.turn_is_over )
{
diff --git a/crawl-ref/source/chardump.cc b/crawl-ref/source/chardump.cc
index fd54f88a5b..832ffd76ea 100644
--- a/crawl-ref/source/chardump.cc
+++ b/crawl-ref/source/chardump.cc
@@ -1197,6 +1197,8 @@ static bool write_dump( const std::string &fname, dump_params &par)
file_name += strip_filename_unsafe_chars(fname);
+ StashTrack.update_corpses();
+
std::string stash_file_name;
stash_file_name = file_name;
stash_file_name += ".lst";
diff --git a/crawl-ref/source/stash.cc b/crawl-ref/source/stash.cc
index 694a2996a4..7bfcd18ba8 100644
--- a/crawl-ref/source/stash.cc
+++ b/crawl-ref/source/stash.cc
@@ -615,6 +615,9 @@ void Stash::_update_corpses(long rot_time)
void Stash::add_item(const item_def &item, bool add_to_front)
{
+ if (_is_rottable(item))
+ StashTrack.update_corpses();
+
if (add_to_front)
items.insert(items.begin(), item);
else
@@ -1569,6 +1572,8 @@ void StashTracker::search_stashes()
{
char buf[400];
+ this->update_corpses();
+
stash_search_reader reader(buf, sizeof buf);
bool validline = false;