summaryrefslogtreecommitdiff
path: root/src/properties.h
diff options
context:
space:
mode:
authorBjørn Lindeijer <bjorn@lindeijer.nl>2005-10-07 00:12:32 +0000
committerBjørn Lindeijer <bjorn@lindeijer.nl>2005-10-07 00:12:32 +0000
commita246c08cef5e4d598fc07a681eb971bfbcf01519 (patch)
treeff1813b11379ddef2c5be627aafcf3329170a293 /src/properties.h
parent09db562f2fca5c49fa1a92ba0b6dc60db479ae08 (diff)
downloadmana-client-a246c08cef5e4d598fc07a681eb971bfbcf01519.tar.gz
mana-client-a246c08cef5e4d598fc07a681eb971bfbcf01519.tar.bz2
mana-client-a246c08cef5e4d598fc07a681eb971bfbcf01519.tar.xz
mana-client-a246c08cef5e4d598fc07a681eb971bfbcf01519.zip
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.
Diffstat (limited to 'src/properties.h')
-rw-r--r--src/properties.h84
1 files changed, 84 insertions, 0 deletions
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 <map>
+#include <string>
+
+/**
+ * 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<std::string, std::string>::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<std::string, std::string> properties;
+};
+
+#endif