diff options
author | Pete Hurst <pete@streamuniverse.tv> | 2013-06-24 00:42:11 +0100 |
---|---|---|
committer | Pete Hurst <pete@streamuniverse.tv> | 2013-06-24 00:42:11 +0100 |
commit | 1cc1d03c18bf89cdb604b02b4031775c5a0ed763 (patch) | |
tree | 1987a3f3194bcaba1d28563dab593b3a5b4f5d88 /crawl-ref/source/spl-pick.h | |
parent | 57d3b8a80fd46a46853ee536c04474c6fd3564f7 (diff) | |
download | crawl-ref-1cc1d03c18bf89cdb604b02b4031775c5a0ed763.tar.gz crawl-ref-1cc1d03c18bf89cdb604b02b4031775c5a0ed763.zip |
Add missing spell_picker files
Diffstat (limited to 'crawl-ref/source/spl-pick.h')
-rw-r--r-- | crawl-ref/source/spl-pick.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/crawl-ref/source/spl-pick.h b/crawl-ref/source/spl-pick.h new file mode 100644 index 0000000000..c9dbc03fdb --- /dev/null +++ b/crawl-ref/source/spl-pick.h @@ -0,0 +1,31 @@ +/** + * @file + * @brief Functions for picking from lists of spells. +**/ + +#ifndef SPL_PICK_H +#define SPL_PICK_H + +#include "externs.h" +#include "random-pick.h" + +#define spell_entry random_pick_entry<spell_type> +typedef bool (*spell_pick_vetoer)(spell_type); + +// Subclass a spell picker using the random_picker template +class spell_picker : public random_picker<spell_type, NUM_SPELLS> +{ +public: + spell_picker(spell_pick_vetoer _veto = nullptr) : veto_func(_veto) { }; + + spell_type pick_with_veto(const spell_entry *weights, int level, + spell_type none, + spell_pick_vetoer veto_func = nullptr); + + virtual bool veto(spell_type spell); + +protected: + spell_pick_vetoer veto_func; +}; + +#endif |