diff options
author | dshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-01-17 08:03:38 +0000 |
---|---|---|
committer | dshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-01-17 08:03:38 +0000 |
commit | 0cb37ef9c9aa55e1a24816666080b54b554843cb (patch) | |
tree | edc15278241ca4689c0f9da45f9842a99b219b10 /crawl-ref/source/shopping.h | |
parent | e086d5eefd17d2977bd4b84aaf9f9631ae154700 (diff) | |
download | crawl-ref-0cb37ef9c9aa55e1a24816666080b54b554843cb.tar.gz crawl-ref-0cb37ef9c9aa55e1a24816666080b54b554843cb.zip |
The stash-tracker also needs shop SIGHUP protection.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@859 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/shopping.h')
-rw-r--r-- | crawl-ref/source/shopping.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/crawl-ref/source/shopping.h b/crawl-ref/source/shopping.h index fd33af98f5..39e9c48a4c 100644 --- a/crawl-ref/source/shopping.h +++ b/crawl-ref/source/shopping.h @@ -15,6 +15,7 @@ #define SHOPPING_H #include "externs.h" +#include "itemname.h" void shop_init_id_type(int shoptype, id_fix_arr &shop_id); void shop_uninit_id_type(int shoptype, const id_fix_arr &shop_id); @@ -45,4 +46,25 @@ const shop_struct *get_shop(int sx, int sy); * *********************************************************************** */ const char *shop_name(int sx, int sy); +// Protect the id array against being clobbered by a SIGHUP with the +// character in a shop. +extern id_arr shop_backup_id; +class shopping_hup_protect +{ +public: + shopping_hup_protect() : shopping(crawl_state.shopping) + { + save_id(shop_backup_id); + crawl_state.shopping = true; + } + + ~shopping_hup_protect() + { + crawl_state.shopping = shopping; + } + +private: + bool shopping; +}; + #endif |