diff options
author | Matthew Cline <zelgadis@sourceforge.net> | 2009-11-22 20:56:08 -0800 |
---|---|---|
committer | Matthew Cline <zelgadis@sourceforge.net> | 2009-11-22 21:02:48 -0800 |
commit | ce0b009e851f37ee522e7e0ef420a0e9fb0b246e (patch) | |
tree | 8c363c6cf37ebc36f2c615a666b00ebe3ce1b978 /crawl-ref/source/macro.cc | |
parent | 55abf2cd3e897e7c06b860427a31484810b203dc (diff) | |
download | crawl-ref-ce0b009e851f37ee522e7e0ef420a0e9fb0b246e.tar.gz crawl-ref-ce0b009e851f37ee522e7e0ef420a0e9fb0b246e.zip |
New class pause_all_key_recorders
If declared on the stack, it will pause all key recorders as soon as
declared, then return them to their previous pausing state when it goes
out of scope.
Diffstat (limited to 'crawl-ref/source/macro.cc')
-rw-r--r-- | crawl-ref/source/macro.cc | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/crawl-ref/source/macro.cc b/crawl-ref/source/macro.cc index 25e916430f..d1fa5f004e 100644 --- a/crawl-ref/source/macro.cc +++ b/crawl-ref/source/macro.cc @@ -995,6 +995,21 @@ void key_recorder::clear() macro_trigger_keys.clear(); } +pause_all_key_recorders::pause_all_key_recorders() +{ + for (unsigned int i = 0; i < recorders.size(); i++) + { + prev_pause_status.push_back(recorders[i]->paused); + recorders[i]->paused = true; + } +} + +pause_all_key_recorders::~pause_all_key_recorders() +{ + for (unsigned int i = 0; i < recorders.size(); i++) + recorders[i]->paused = prev_pause_status[i]; +} + void add_key_recorder(key_recorder* recorder) { for (int i = 0, size = recorders.size(); i < size; i++) |