diff options
Diffstat (limited to 'src/event.cpp')
-rw-r--r-- | src/event.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/event.cpp b/src/event.cpp index 65fdee8a..d503ad58 100644 --- a/src/event.cpp +++ b/src/event.cpp @@ -96,4 +96,24 @@ double Event::getFloat(const std::string &key) const throw (BadEvent) return static_cast<FloatData *>(it->second)->getData(); } +void Event::setBool(const std::string &key, bool value) throw (BadEvent) +{ + if (mData.find(key) != mData.end()) + throw KEY_ALREADY_EXISTS; + + mData[key] = new BoolData(value); +} + +bool Event::getBool(const std::string &key) const throw (BadEvent) +{ + VariableMap::const_iterator it = mData.find(key); + if (it == mData.end()) + throw BAD_KEY; + + if (it->second->getType() != VariableData::DATA_BOOL) + throw BAD_VALUE; + + return static_cast<BoolData *>(it->second)->getData(); +} + } // namespace Mana |