From a246c08cef5e4d598fc07a681eb971bfbcf01519 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Fri, 7 Oct 2005 00:12:32 +0000 Subject: Modified finding NPC as by timonator's suggestion in order to allow NPCs to be clicked on their heads too. Also made start to tile engine improvement by adding the Sprite class that is now used by the floor items for being displayed on the map. Finally added documentation to Item class and splitted out Properties class from Map. --- src/properties.h | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 src/properties.h (limited to 'src/properties.h') diff --git a/src/properties.h b/src/properties.h new file mode 100644 index 00000000..ccf8cd00 --- /dev/null +++ b/src/properties.h @@ -0,0 +1,84 @@ +/* + * The Mana World + * Copyright 2004 The Mana World Development Team + * + * This file is part of The Mana World. + * + * The Mana World is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * The Mana World is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with The Mana World; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * $Id$ + */ + +#ifndef _TMW_PROPERTIES_H_ +#define _TMW_PROPERTIES_H_ + +#include +#include + +/** + * A class holding a set of properties. + */ +class Properties +{ + public: + virtual + ~Properties() {} + + /** + * Get a map property. + * + * @return the value of the given property or an empty string when it + * doesn't exist. + */ + const std::string& + getProperty(const std::string &name) + { + const static std::string undefined = ""; + std::map::const_iterator i = + properties.find(name); + + if (i != properties.end()) + { + return (*i).second; + } + else + { + return undefined; + } + } + + /** + * Returns whether a certain property is available. + */ + bool + hasProperty(const std::string &name) + { + return (properties.find(name) != properties.end()); + } + + /** + * Set a map property. + */ + void + setProperty(const std::string &name, const std::string &value) + { + properties[name] = value; + } + + private: + std::map properties; +}; + +#endif -- cgit v1.2.3-70-g09d2